` hardbreak markers trailing `--` after a signature slice
+const stripDelimiterHardbreaks = body =>
+ body.replace(/(--)\s*(?:\\\s*)+$/, '$1');
+
+// Strip standalone blank-paragraph markers (`\` on their own lines).
+const stripTrailingBlankLine = body => body.replace(/\n(?:\s*\\\n)+$/, '');
+
/**
* Adds the signature delimiter to the beginning of the signature.
*
@@ -66,15 +160,39 @@ export function findSignatureInBody(body, signature) {
return -1;
}
+/**
+ * Gets the effective channel type for formatting purposes.
+ * For Twilio channels, returns WhatsApp or Twilio based on medium.
+ *
+ * @param {string} channelType - The channel type
+ * @param {string} medium - Optional. The medium for Twilio channels (sms/whatsapp)
+ * @returns {string} - The effective channel type for formatting
+ */
+export function getEffectiveChannelType(channelType, medium) {
+ if (channelType === INBOX_TYPES.TWILIO) {
+ return medium === TWILIO_CHANNEL_MEDIUM.WHATSAPP
+ ? INBOX_TYPES.WHATSAPP
+ : INBOX_TYPES.TWILIO;
+ }
+ return channelType;
+}
+
/**
* Appends the signature to the body, separated by the signature delimiter.
+ * Automatically strips unsupported formatting based on channel capabilities.
*
* @param {string} body - The body to append the signature to.
* @param {string} signature - The signature to append.
+ * @param {string} channelType - Optional. The effective channel type to determine supported formatting.
+ * For Twilio channels, pass the result of getEffectiveChannelType().
* @returns {string} - The body with the signature appended.
*/
-export function appendSignature(body, signature) {
- const cleanedSignature = cleanSignature(signature);
+export function appendSignature(body, signature, channelType) {
+ // Strip only unsupported formatting based on channel capabilities
+ const preparedSignature = channelType
+ ? stripUnsupportedMarkdown(signature, channelType)
+ : signature;
+ const cleanedSignature = cleanSignature(preparedSignature);
// if signature is already present, return body
if (findSignatureInBody(body, cleanedSignature) > -1) {
return body;
@@ -85,16 +203,29 @@ export function appendSignature(body, signature) {
/**
* Removes the signature from the body, along with the signature delimiter.
+ * Tries multiple signature variants: original, channel-stripped, and fully stripped.
*
* @param {string} body - The body to remove the signature from.
* @param {string} signature - The signature to remove.
+ * @param {string} channelType - Optional. The effective channel type for channel-specific stripping.
* @returns {string} - The body with the signature removed.
*/
-export function removeSignature(body, signature) {
- // this will find the index of the signature if it exists
- // Regardless of extra spaces or new lines after the signature, the index will be the same if present
- const cleanedSignature = cleanSignature(signature);
- const signatureIndex = findSignatureInBody(body, cleanedSignature);
+export function removeSignature(body, signature, channelType) {
+ // Build unique list of signature variants to try
+ const channelStripped = channelType
+ ? cleanSignature(stripUnsupportedMarkdown(signature, channelType))
+ : null;
+ const signaturesToTry = [
+ cleanSignature(signature),
+ channelStripped,
+ cleanSignature(extractTextFromMarkdown(signature)),
+ ].filter((sig, i, arr) => sig && arr.indexOf(sig) === i); // Remove nulls and duplicates
+
+ // Find the first matching signature
+ const signatureIndex = signaturesToTry.reduce(
+ (index, sig) => (index === -1 ? findSignatureInBody(body, sig) : index),
+ -1
+ );
// no need to trim the ends here, because it will simply be removed in the next method
let newBody = body;
@@ -103,20 +234,21 @@ export function removeSignature(body, signature) {
// trimming will ensure any spaces or new lines before the signature are removed
// This means we will have the delimiter at the end
if (signatureIndex > -1) {
- newBody = newBody.substring(0, signatureIndex).trimEnd();
+ newBody = stripDelimiterHardbreaks(
+ newBody.substring(0, signatureIndex)
+ ).trimEnd();
}
- // let's find the delimiter and remove it
- const delimiterIndex = newBody.lastIndexOf(SIGNATURE_DELIMITER);
- if (
- delimiterIndex !== -1 &&
- delimiterIndex === newBody.length - SIGNATURE_DELIMITER.length // this will ensure the delimiter is at the end
- ) {
+ // Remove delimiter if it's at the end
+ if (newBody.endsWith(SIGNATURE_DELIMITER)) {
// if the delimiter is at the end, remove it
- newBody = newBody.substring(0, delimiterIndex);
+ newBody = newBody.slice(0, -SIGNATURE_DELIMITER.length);
+ // strip any trailing blank-line markers
+ if (signatureIndex > -1) {
+ newBody = stripTrailingBlankLine(newBody);
+ }
}
- // return the value
return newBody;
}
@@ -135,28 +267,6 @@ export function replaceSignature(body, oldSignature, newSignature) {
return appendSignature(withoutSignature, newSignature);
}
-/**
- * Extract text from markdown, and remove all images, code blocks, links, headers, bold, italic, lists etc.
- * Links will be converted to text, and not removed.
- *
- * @param {string} markdown - markdown text to be extracted
- * @returns
- */
-export function extractTextFromMarkdown(markdown) {
- return markdown
- .replace(/```[\s\S]*?```/g, '') // Remove code blocks
- .replace(/`.*?`/g, '') // Remove inline code
- .replace(/!\[.*?\]\(.*?\)/g, '') // Remove images before removing links
- .replace(/\[([^\]]+)\]\([^)]+\)/g, '$1') // Remove links but keep the text
- .replace(/#+\s*|[*_-]{1,3}/g, '') // Remove headers, bold, italic, lists etc.
- .split('\n')
- .map(line => line.trim())
- .filter(Boolean)
- .join('\n') // Trim each line & remove any lines only having spaces
- .replace(/\n{2,}/g, '\n') // Remove multiple consecutive newlines (blank lines)
- .trim(); // Trim any extra space
-}
-
/**
* Scrolls the editor view into current cursor position
*
@@ -177,6 +287,18 @@ export const scrollCursorIntoView = view => {
}
};
+/**
+ * Collapse the current selection to a cursor near its head. Used to override
+ * the default Escape -> selectParentNode behavior which would otherwise keep
+ * the text highlight visible.
+ *
+ * @param {EditorView} view - The ProseMirror EditorView
+ */
+export const collapseSelection = view => {
+ const { tr, selection } = view.state;
+ view.dispatch(tr.setSelection(Selection.near(selection.$head)));
+};
+
/**
* Returns a transaction that inserts a node into editor at the given position
* Has an optional param 'content' to check if the
@@ -258,26 +380,247 @@ export const findNodeToInsertImage = (editorState, fileUrl) => {
};
/**
- * Set URL with query and size.
+ * Strips unsupported markdown formatting from content based on the editor schema.
+ * This ensures canned responses with rich formatting can be inserted into channels
+ * that don't support certain formatting (e.g., API channels don't support bold).
*
- * @param {Object} selectedImageNode - The current selected node.
- * @param {Object} size - The size to set.
- * @param {Object} editorView - The editor view.
+ * @param {string} content - The markdown content to sanitize
+ * @param {Object} schema - The ProseMirror schema with supported marks and nodes
+ * @returns {string} - Content with unsupported formatting stripped
*/
-export function setURLWithQueryAndSize(selectedImageNode, size, editorView) {
- if (selectedImageNode) {
- // Create and apply the transaction
- const tr = editorView.state.tr.setNodeMarkup(
- editorView.state.selection.from,
- null,
- {
- src: selectedImageNode.src,
- height: size.height,
- }
- );
+export function stripUnsupportedFormatting(content, schema) {
+ if (!content || typeof content !== 'string') return content;
+ if (!schema) return content;
- if (tr.docChanged) {
- editorView.dispatch(tr);
+ let sanitizedContent = content;
+
+ // Get supported marks and nodes from the schema
+ // Note: ProseMirror uses snake_case internally (code_block, bullet_list, etc.)
+ // but our FORMATTING constant uses camelCase (codeBlock, bulletList, etc.)
+ // We use camelcase-keys to normalize node names for comparison
+ const supportedMarks = Object.keys(schema.marks || {});
+ const nodeKeys = Object.keys(schema.nodes || {});
+ const nodeKeysObj = Object.fromEntries(nodeKeys.map(k => [k, true]));
+ const supportedNodes = Object.keys(camelcaseKeys(nodeKeysObj));
+
+ // Process each formatting type in order (codeBlock before code is important!)
+ MARKDOWN_PATTERNS.forEach(({ type, patterns }) => {
+ // Check if this format type is supported by the schema
+ const isMarkSupported = supportedMarks.includes(type);
+ const isNodeSupported = supportedNodes.includes(type);
+
+ // If not supported, strip the formatting
+ if (!isMarkSupported && !isNodeSupported) {
+ patterns.forEach(({ pattern, replacement }) => {
+ sanitizedContent = sanitizedContent.replace(pattern, replacement);
+ });
}
- }
+ });
+
+ return sanitizedContent;
}
+
+/**
+ * Content Node Creation Helper Functions for
+ * - mention
+ * - canned response
+ * - variable
+ * - emoji
+ */
+
+/**
+ * Centralized node creation function that handles the creation of different types of nodes based on the specified type.
+ * @param {Object} editorView - The editor view instance.
+ * @param {string} nodeType - The type of node to create ('mention', 'cannedResponse', 'variable', 'emoji').
+ * @param {Object|string} content - The content needed to create the node, which varies based on node type.
+ * @returns {Object|null} - The created ProseMirror node or null if the type is not supported.
+ */
+const createNode = (editorView, nodeType, content) => {
+ const { state } = editorView;
+ switch (nodeType) {
+ case 'mention': {
+ const mentionType = content.type || 'user';
+ const displayName = content.displayName || content.name;
+
+ const mentionNode = state.schema.nodes.mention.create({
+ userId: content.id,
+ userFullName: displayName,
+ mentionType,
+ });
+
+ return mentionNode;
+ }
+ case 'cannedResponse': {
+ // Strip unsupported formatting before parsing to ensure content can be inserted
+ // into channels that don't support certain markdown features (e.g., API channels)
+ const sanitizedContent = stripUnsupportedFormatting(
+ content,
+ state.schema
+ );
+ return new MessageMarkdownTransformer(state.schema).parse(
+ sanitizedContent
+ );
+ }
+ case 'variable':
+ return state.schema.text(`{{${content}}}`);
+ case 'emoji':
+ return state.schema.text(content);
+ case 'tool': {
+ return state.schema.nodes.tools.create({
+ id: content.id,
+ name: content.title,
+ });
+ }
+ default:
+ return null;
+ }
+};
+
+/**
+ * Object mapping types to their respective node creation functions.
+ */
+const nodeCreators = {
+ mention: (editorView, content, from, to) => ({
+ node: createNode(editorView, 'mention', content),
+ from,
+ to,
+ }),
+ cannedResponse: (editorView, content, from, to, variables) => {
+ const updatedMessage = replaceVariablesInMessage({
+ message: content,
+ variables,
+ });
+ const node = createNode(editorView, 'cannedResponse', updatedMessage);
+ return {
+ node,
+ from: node.textContent === updatedMessage ? from : from - 1,
+ to,
+ };
+ },
+ variable: (editorView, content, from, to) => ({
+ node: createNode(editorView, 'variable', content),
+ from,
+ to,
+ }),
+ emoji: (editorView, content, from, to) => ({
+ node: createNode(editorView, 'emoji', content),
+ from,
+ to,
+ }),
+ tool: (editorView, content, from, to) => ({
+ node: createNode(editorView, 'tool', content),
+ from,
+ to,
+ }),
+};
+
+/**
+ * Retrieves a content node based on the specified type and content, using a functional approach to select the appropriate node creation function.
+ * @param {Object} editorView - The editor view instance.
+ * @param {string} type - The type of content node to create ('mention', 'cannedResponse', 'variable', 'emoji').
+ * @param {string|Object} content - The content to be transformed into a node.
+ * @param {Object} range - An object containing 'from' and 'to' properties indicating the range in the document where the node should be placed.
+ * @param {Object} variables - Optional. Variables to replace in the content, used for 'cannedResponse' type.
+ * @returns {Object} - An object containing the created node and the updated 'from' and 'to' positions.
+ */
+export const getContentNode = (
+ editorView,
+ type,
+ content,
+ { from, to },
+ variables
+) => {
+ const creator = nodeCreators[type];
+ return creator
+ ? creator(editorView, content, from, to, variables)
+ : { node: null, from, to };
+};
+
+/**
+ * Get the formatting configuration for a specific channel type.
+ * Returns the appropriate marks, nodes, and menu items for the editor.
+ * TODO: We're hiding captain, enable it back when we add selection improvements
+ *
+ * @param {string} channelType - The channel type (e.g., 'Channel::FacebookPage', 'Channel::WebWidget')
+ * @returns {Object} The formatting configuration with marks, nodes, and menu properties
+ */
+export function getFormattingForEditor(channelType, showCaptain = false) {
+ const formatting = FORMATTING[channelType] || FORMATTING['Context::Default'];
+ return {
+ ...formatting,
+ menu: showCaptain
+ ? formatting.menu
+ : formatting.menu.filter(item => item !== 'copilot'),
+ };
+}
+
+/**
+ * Menu Positioning Helpers
+ * Handles floating menu bar positioning for text selection in the editor.
+ */
+
+const MENU_CONFIG = { H: 46, W: 300, GAP: 10 };
+
+/**
+ * Calculate selection coordinates with bias to handle line-wraps correctly.
+ * @param {EditorView} editorView - ProseMirror editor view
+ * @param {Selection} selection - Current text selection
+ * @param {DOMRect} rect - Container bounding rect
+ * @returns {{start: Object, end: Object, selTop: number, onTop: boolean}}
+ */
+export function getSelectionCoords(editorView, selection, rect) {
+ const start = editorView.coordsAtPos(selection.from, 1);
+ const end = editorView.coordsAtPos(selection.to, -1);
+
+ const selTop = Math.min(start.top, end.top);
+ const spaceAbove = selTop - rect.top;
+ const onTop =
+ spaceAbove > MENU_CONFIG.H + MENU_CONFIG.GAP || end.bottom > rect.bottom;
+
+ return { start, end, selTop, onTop };
+}
+
+/**
+ * Calculate anchor position based on selection visibility and RTL direction.
+ * @param {Object} coords - Selection coordinates from getSelectionCoords
+ * @param {DOMRect} rect - Container bounding rect
+ * @param {boolean} isRtl - Whether text direction is RTL
+ * @returns {number} Anchor x-position for menu
+ */
+export function getMenuAnchor(coords, rect, isRtl) {
+ const { start, end, onTop } = coords;
+
+ if (!onTop) return end.left;
+
+ // If start of selection is visible, align to text. Else stick to container edge.
+ if (start.top >= rect.top) return isRtl ? start.right : start.left;
+
+ return isRtl ? rect.right - MENU_CONFIG.GAP : rect.left + MENU_CONFIG.GAP;
+}
+
+/**
+ * Calculate final menu position (left, top) within container bounds.
+ * @param {Object} coords - Selection coordinates from getSelectionCoords
+ * @param {DOMRect} rect - Container bounding rect
+ * @param {boolean} isRtl - Whether text direction is RTL
+ * @returns {{left: number, top: number, width: number}}
+ */
+export function calculateMenuPosition(coords, rect, isRtl) {
+ const { start, end, selTop, onTop } = coords;
+
+ const anchor = getMenuAnchor(coords, rect, isRtl);
+
+ // Calculate Left: shift by width if RTL, then make relative to container
+ const rawLeft = (isRtl ? anchor - MENU_CONFIG.W : anchor) - rect.left;
+
+ // Ensure menu stays within container bounds
+ const left = Math.min(Math.max(0, rawLeft), rect.width - MENU_CONFIG.W);
+
+ // Calculate Top: align to selection or bottom of selection
+ const top = onTop
+ ? Math.max(-26, selTop - rect.top - MENU_CONFIG.H - MENU_CONFIG.GAP)
+ : Math.max(start.bottom, end.bottom) - rect.top + MENU_CONFIG.GAP;
+ return { left, top, width: MENU_CONFIG.W };
+}
+
+/* End Menu Positioning Helpers */
diff --git a/app/javascript/dashboard/helper/emailQuoteExtractor.js b/app/javascript/dashboard/helper/emailQuoteExtractor.js
new file mode 100644
index 000000000..f29d48cca
--- /dev/null
+++ b/app/javascript/dashboard/helper/emailQuoteExtractor.js
@@ -0,0 +1,158 @@
+import DOMPurify from 'dompurify';
+
+// Quote detection strategies
+const QUOTE_INDICATORS = [
+ '.gmail_quote_container',
+ '.gmail_quote',
+ '.OutlookQuote',
+ '.email-quote',
+ '.quoted-text',
+ '.quote',
+ '[class*="quote"]',
+ '[class*="Quote"]',
+];
+
+const BLOCKQUOTE_FALLBACK_SELECTOR = 'blockquote';
+
+// Regex patterns for quote identification
+const QUOTE_PATTERNS = [
+ /On .* wrote:/i,
+ /-----Original Message-----/i,
+ /Sent: /i,
+ /From: /i,
+];
+
+export class EmailQuoteExtractor {
+ /**
+ * Remove quotes from email HTML and return cleaned HTML
+ * @param {string} htmlContent - Full HTML content of the email
+ * @returns {string} HTML content with quotes removed
+ */
+ static extractQuotes(htmlContent) {
+ // Create a temporary DOM element to parse HTML
+ const tempDiv = document.createElement('div');
+ tempDiv.innerHTML = DOMPurify.sanitize(htmlContent);
+
+ // Remove elements matching class selectors
+ QUOTE_INDICATORS.forEach(selector => {
+ tempDiv.querySelectorAll(selector).forEach(el => {
+ el.remove();
+ });
+ });
+
+ this.removeTrailingBlockquote(tempDiv);
+
+ // Remove text-based quotes
+ const textNodeQuotes = this.findTextNodeQuotes(tempDiv);
+ textNodeQuotes.forEach(el => {
+ el.remove();
+ });
+
+ return tempDiv.innerHTML;
+ }
+
+ /**
+ * Check if HTML content contains any quotes
+ * @param {string} htmlContent - Full HTML content of the email
+ * @returns {boolean} True if quotes are detected, false otherwise
+ */
+ static hasQuotes(htmlContent) {
+ const tempDiv = document.createElement('div');
+ tempDiv.innerHTML = DOMPurify.sanitize(htmlContent);
+
+ // Check for class-based quotes
+ // eslint-disable-next-line no-restricted-syntax
+ for (const selector of QUOTE_INDICATORS) {
+ if (tempDiv.querySelector(selector)) {
+ return true;
+ }
+ }
+
+ if (this.findTrailingBlockquote(tempDiv)) {
+ return true;
+ }
+
+ // Check for text-based quotes
+ const textNodeQuotes = this.findTextNodeQuotes(tempDiv);
+ return textNodeQuotes.length > 0;
+ }
+
+ /**
+ * Find text nodes that match quote patterns
+ * @param {Element} rootElement - Root element to search
+ * @returns {Element[]} Array of parent block elements containing quote-like text
+ */
+ static findTextNodeQuotes(rootElement) {
+ const quoteBlocks = [];
+ const treeWalker = document.createTreeWalker(
+ rootElement,
+ NodeFilter.SHOW_TEXT,
+ null,
+ false
+ );
+
+ for (
+ let currentNode = treeWalker.nextNode();
+ currentNode !== null;
+ currentNode = treeWalker.nextNode()
+ ) {
+ const isQuoteLike = QUOTE_PATTERNS.some(pattern =>
+ pattern.test(currentNode.textContent)
+ );
+
+ if (isQuoteLike) {
+ const parentBlock = this.findParentBlock(currentNode);
+ if (parentBlock && !quoteBlocks.includes(parentBlock)) {
+ quoteBlocks.push(parentBlock);
+ }
+ }
+ }
+
+ return quoteBlocks;
+ }
+
+ /**
+ * Find the closest block-level parent element by recursively traversing up the DOM tree.
+ * This method searches for common block-level elements like DIV, P, BLOCKQUOTE, and SECTION
+ * that contain the text node. It's used to identify and remove entire block-level elements
+ * that contain quote-like text, rather than just removing the text node itself. This ensures
+ * proper structural removal of quoted content while maintaining HTML integrity.
+ * @param {Node} node - Starting node to find parent
+ * @returns {Element|null} Block-level parent element
+ */
+ static findParentBlock(node) {
+ const blockElements = ['DIV', 'P', 'BLOCKQUOTE', 'SECTION'];
+ let current = node.parentElement;
+
+ while (current) {
+ if (blockElements.includes(current.tagName)) {
+ return current;
+ }
+ current = current.parentElement;
+ }
+
+ return null;
+ }
+
+ /**
+ * Remove fallback blockquote if it is the last top-level element.
+ * @param {Element} rootElement - Root element containing the HTML
+ */
+ static removeTrailingBlockquote(rootElement) {
+ const trailingBlockquote = this.findTrailingBlockquote(rootElement);
+ trailingBlockquote?.remove();
+ }
+
+ /**
+ * Locate a fallback blockquote that is the last top-level element.
+ * @param {Element} rootElement - Root element containing the HTML
+ * @returns {Element|null} The trailing blockquote element if present
+ */
+ static findTrailingBlockquote(rootElement) {
+ const lastElement = rootElement.lastElementChild;
+ if (lastElement?.matches?.(BLOCKQUOTE_FALLBACK_SELECTOR)) {
+ return lastElement;
+ }
+ return null;
+ }
+}
diff --git a/app/javascript/dashboard/helper/facebookScopes.js b/app/javascript/dashboard/helper/facebookScopes.js
new file mode 100644
index 000000000..755b3f465
--- /dev/null
+++ b/app/javascript/dashboard/helper/facebookScopes.js
@@ -0,0 +1,22 @@
+export const FACEBOOK_PAGE_SCOPES = [
+ 'pages_manage_metadata',
+ 'business_management',
+ 'pages_messaging',
+ 'pages_show_list',
+ 'pages_read_engagement',
+];
+
+export const INSTAGRAM_SCOPES = [
+ 'instagram_basic',
+ 'instagram_manage_messages',
+];
+
+export const buildFacebookLoginScopes = ({
+ includeInstagramScopes = false,
+} = {}) => {
+ const scopes = [...FACEBOOK_PAGE_SCOPES];
+ if (includeInstagramScopes) {
+ scopes.push(...INSTAGRAM_SCOPES);
+ }
+ return scopes.join(',');
+};
diff --git a/app/javascript/dashboard/helper/featureHelper.js b/app/javascript/dashboard/helper/featureHelper.js
new file mode 100644
index 000000000..c90ec15db
--- /dev/null
+++ b/app/javascript/dashboard/helper/featureHelper.js
@@ -0,0 +1,27 @@
+const FEATURE_HELP_URLS = {
+ agent_bots: 'https://chwt.app/hc/agent-bots',
+ agents: 'https://chwt.app/hc/agents',
+ audit_logs: 'https://chwt.app/hc/audit-logs',
+ campaigns: 'https://chwt.app/hc/campaigns',
+ canned_responses: 'https://chwt.app/hc/canned',
+ channel_email: 'https://chwt.app/hc/email',
+ channel_facebook: 'https://chwt.app/hc/fb',
+ custom_attributes: 'https://chwt.app/hc/custom-attributes',
+ dashboard_apps: 'https://chwt.app/hc/dashboard-apps',
+ help_center: 'https://chwt.app/hc/help-center',
+ inboxes: 'https://chwt.app/hc/inboxes',
+ integrations: 'https://chwt.app/hc/integrations',
+ labels: 'https://chwt.app/hc/labels',
+ macros: 'https://chwt.app/hc/macros',
+ reports: 'https://chwt.app/hc/reports',
+ sla: 'https://chwt.app/hc/sla',
+ team_management: 'https://chwt.app/hc/teams',
+ webhook: 'https://chwt.app/hc/webhooks',
+ billing: 'https://chwt.app/pricing',
+ saml: 'https://chwt.app/hc/saml',
+ captain_billing: 'https://chwt.app/hc/captain_billing',
+};
+
+export function getHelpUrlForFeature(featureName) {
+ return FEATURE_HELP_URLS[featureName];
+}
diff --git a/app/javascript/dashboard/helper/inbox.js b/app/javascript/dashboard/helper/inbox.js
index 1174fd45a..f47df9e5b 100644
--- a/app/javascript/dashboard/helper/inbox.js
+++ b/app/javascript/dashboard/helper/inbox.js
@@ -1,4 +1,76 @@
-import { INBOX_TYPES } from 'shared/mixins/inboxMixin';
+export const INBOX_TYPES = {
+ WEB: 'Channel::WebWidget',
+ FB: 'Channel::FacebookPage',
+ TWITTER: 'Channel::TwitterProfile',
+ TWILIO: 'Channel::TwilioSms',
+ WHATSAPP: 'Channel::Whatsapp',
+ API: 'Channel::Api',
+ EMAIL: 'Channel::Email',
+ TELEGRAM: 'Channel::Telegram',
+ LINE: 'Channel::Line',
+ SMS: 'Channel::Sms',
+ INSTAGRAM: 'Channel::Instagram',
+ TIKTOK: 'Channel::Tiktok',
+};
+
+// Add providers here as they gain voice capability (e.g., WhatsApp Cloud, Twilio WhatsApp)
+export const VOICE_CALL_PROVIDERS = {
+ TWILIO: 'twilio',
+ WHATSAPP: 'whatsapp',
+};
+
+export const getVoiceCallProvider = inbox => {
+ if (!inbox) return null;
+
+ // Callers pass either snake_case (raw API) or camelCase (after camelcaseKeys) shapes.
+ const channelType = inbox.channel_type || inbox.channelType;
+ const voiceEnabled = inbox.voice_enabled || inbox.voiceEnabled;
+
+ if (!voiceEnabled) return null;
+
+ if (channelType === INBOX_TYPES.TWILIO) return VOICE_CALL_PROVIDERS.TWILIO;
+ if (channelType === INBOX_TYPES.WHATSAPP)
+ return VOICE_CALL_PROVIDERS.WHATSAPP;
+
+ return null;
+};
+
+export const isVoiceCallEnabled = inbox => getVoiceCallProvider(inbox) !== null;
+
+export const TWILIO_CHANNEL_MEDIUM = {
+ WHATSAPP: 'whatsapp',
+ SMS: 'sms',
+};
+
+const INBOX_ICON_MAP_FILL = {
+ [INBOX_TYPES.WEB]: 'i-ri-global-fill',
+ [INBOX_TYPES.FB]: 'i-ri-messenger-fill',
+ [INBOX_TYPES.TWITTER]: 'i-ri-twitter-x-fill',
+ [INBOX_TYPES.WHATSAPP]: 'i-ri-whatsapp-fill',
+ [INBOX_TYPES.API]: 'i-ri-cloudy-fill',
+ [INBOX_TYPES.EMAIL]: 'i-ri-mail-fill',
+ [INBOX_TYPES.TELEGRAM]: 'i-ri-telegram-fill',
+ [INBOX_TYPES.LINE]: 'i-ri-line-fill',
+ [INBOX_TYPES.INSTAGRAM]: 'i-ri-instagram-fill',
+ [INBOX_TYPES.TIKTOK]: 'i-ri-tiktok-fill',
+};
+
+const DEFAULT_ICON_FILL = 'i-ri-chat-1-fill';
+
+const INBOX_ICON_MAP_LINE = {
+ [INBOX_TYPES.WEB]: 'i-woot-website',
+ [INBOX_TYPES.FB]: 'i-woot-messenger',
+ [INBOX_TYPES.TWITTER]: 'i-woot-x',
+ [INBOX_TYPES.WHATSAPP]: 'i-woot-whatsapp',
+ [INBOX_TYPES.API]: 'i-woot-api',
+ [INBOX_TYPES.EMAIL]: 'i-woot-mail',
+ [INBOX_TYPES.TELEGRAM]: 'i-woot-telegram',
+ [INBOX_TYPES.LINE]: 'i-woot-line',
+ [INBOX_TYPES.INSTAGRAM]: 'i-woot-instagram',
+ [INBOX_TYPES.TIKTOK]: 'i-woot-tiktok',
+};
+
+const DEFAULT_ICON_LINE = 'i-ri-chat-1-line';
export const getInboxSource = (type, phoneNumber, inbox) => {
switch (type) {
@@ -81,13 +153,34 @@ export const getInboxClassByType = (type, phoneNumber) => {
case INBOX_TYPES.LINE:
return 'brand-line';
+ case INBOX_TYPES.INSTAGRAM:
+ return 'brand-instagram';
+
+ case INBOX_TYPES.TIKTOK:
+ return 'brand-tiktok';
+
default:
return 'chat';
}
};
+export const getInboxIconByType = (type, medium, variant = 'fill') => {
+ const iconMap =
+ variant === 'fill' ? INBOX_ICON_MAP_FILL : INBOX_ICON_MAP_LINE;
+ const defaultIcon =
+ variant === 'fill' ? DEFAULT_ICON_FILL : DEFAULT_ICON_LINE;
+
+ // Special case for Twilio (whatsapp and sms)
+ if (type === INBOX_TYPES.TWILIO && medium === 'whatsapp') {
+ return iconMap[INBOX_TYPES.WHATSAPP];
+ }
+
+ return iconMap[type] ?? defaultIcon;
+};
+
export const getInboxWarningIconClass = (type, reauthorizationRequired) => {
- if (type === INBOX_TYPES.FB && reauthorizationRequired) {
+ const allowedInboxTypes = [INBOX_TYPES.FB, INBOX_TYPES.EMAIL];
+ if (allowedInboxTypes.includes(type) && reauthorizationRequired) {
return 'warning';
}
return '';
diff --git a/app/javascript/dashboard/helper/markdownEmbeds.js b/app/javascript/dashboard/helper/markdownEmbeds.js
new file mode 100644
index 000000000..116290220
--- /dev/null
+++ b/app/javascript/dashboard/helper/markdownEmbeds.js
@@ -0,0 +1,11 @@
+import config from '../../../../config/markdown_embeds.yml';
+
+// Gists rely on document.write() and can't render inline in the editor.
+const NON_PREVIEWABLE_EMBEDS = new Set(['github_gist']);
+
+export const embeds = Object.entries(config)
+ .filter(([key]) => !NON_PREVIEWABLE_EMBEDS.has(key))
+ .map(([, { regex, template }]) => ({
+ regex: new RegExp(regex),
+ template,
+ }));
diff --git a/app/javascript/dashboard/helper/permissionsHelper.js b/app/javascript/dashboard/helper/permissionsHelper.js
new file mode 100644
index 000000000..cb736f4ab
--- /dev/null
+++ b/app/javascript/dashboard/helper/permissionsHelper.js
@@ -0,0 +1,55 @@
+export const hasPermissions = (
+ requiredPermissions = [],
+ availablePermissions = []
+) => {
+ return requiredPermissions.some(permission =>
+ availablePermissions.includes(permission)
+ );
+};
+
+export const getCurrentAccount = ({ accounts } = {}, accountId = null) => {
+ return accounts.find(account => Number(account.id) === Number(accountId));
+};
+
+export const getUserPermissions = (user, accountId) => {
+ const currentAccount = getCurrentAccount(user, accountId) || {};
+ return currentAccount.permissions || [];
+};
+
+export const getUserRole = (user, accountId) => {
+ const currentAccount = getCurrentAccount(user, accountId) || {};
+ if (currentAccount.custom_role_id) {
+ return 'custom_role';
+ }
+
+ return currentAccount.role || 'agent';
+};
+
+/**
+ * Filters and transforms items based on user permissions.
+ *
+ * @param {Object} items - An object containing items to be filtered.
+ * @param {Array} userPermissions - Array of permissions the user has.
+ * @param {Function} getPermissions - Function to extract required permissions from an item.
+ * @param {Function} [transformItem] - Optional function to transform each item after filtering.
+ * @returns {Array} Filtered and transformed items.
+ */
+export const filterItemsByPermission = (
+ items,
+ userPermissions,
+ getPermissions,
+ transformItem = (key, item) => ({ key, ...item })
+) => {
+ // Helper function to check if an item has the required permissions
+ const hasRequiredPermissions = item => {
+ const requiredPermissions = getPermissions(item);
+ return (
+ requiredPermissions.length === 0 ||
+ hasPermissions(requiredPermissions, userPermissions)
+ );
+ };
+
+ return Object.entries(items)
+ .filter(([, item]) => hasRequiredPermissions(item)) // Keep only items with required permissions
+ .map(([key, item]) => transformItem(key, item)); // Transform each remaining item
+};
diff --git a/app/javascript/dashboard/helper/portalHelper.js b/app/javascript/dashboard/helper/portalHelper.js
index 648891a0e..89f13f8cd 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,8 +46,167 @@ export const buildPortalArticleURL = (
portalSlug,
categorySlug,
locale,
- articleSlug
+ articleSlug,
+ customDomain
) => {
- const portalURL = buildPortalURL(portalSlug);
+ const portalURL = buildPortalURL(portalSlug, customDomain);
return `${portalURL}/articles/${articleSlug}`;
};
+
+export const getArticleStatus = status => {
+ switch (status) {
+ case 'draft':
+ return 0;
+ case 'published':
+ return 1;
+ case 'archived':
+ return 2;
+ default:
+ return undefined;
+ }
+};
+
+export const ARTICLE_STATUSES = {
+ DRAFT: 'draft',
+ PUBLISHED: 'published',
+ ARCHIVED: 'archived',
+};
+
+export const ARTICLE_MENU_ITEMS = {
+ publish: {
+ label: 'HELP_CENTER.ARTICLES_PAGE.ARTICLE_CARD.CARD.DROPDOWN_MENU.PUBLISH',
+ value: ARTICLE_STATUSES.PUBLISHED,
+ action: 'publish',
+ icon: 'i-lucide-check',
+ },
+ draft: {
+ label: 'HELP_CENTER.ARTICLES_PAGE.ARTICLE_CARD.CARD.DROPDOWN_MENU.DRAFT',
+ value: ARTICLE_STATUSES.DRAFT,
+ action: 'draft',
+ icon: 'i-lucide-pencil-line',
+ },
+ archive: {
+ label: 'HELP_CENTER.ARTICLES_PAGE.ARTICLE_CARD.CARD.DROPDOWN_MENU.ARCHIVE',
+ value: ARTICLE_STATUSES.ARCHIVED,
+ action: 'archive',
+ icon: 'i-lucide-archive-restore',
+ },
+ translate: {
+ label:
+ 'HELP_CENTER.ARTICLES_PAGE.ARTICLE_CARD.CARD.DROPDOWN_MENU.TRANSLATE',
+ value: 'translate',
+ action: 'translate',
+ icon: 'i-lucide-languages',
+ },
+ delete: {
+ label: 'HELP_CENTER.ARTICLES_PAGE.ARTICLE_CARD.CARD.DROPDOWN_MENU.DELETE',
+ value: 'delete',
+ action: 'delete',
+ icon: 'i-lucide-trash',
+ },
+};
+
+export const ARTICLE_MENU_OPTIONS = {
+ [ARTICLE_STATUSES.ARCHIVED]: ['publish', 'draft', 'translate'],
+ [ARTICLE_STATUSES.DRAFT]: ['publish', 'archive', 'translate'],
+ [ARTICLE_STATUSES.PUBLISHED]: ['draft', 'archive', 'translate'],
+};
+
+export const ARTICLE_TABS = {
+ ALL: 'all',
+ MINE: 'mine',
+ DRAFT: 'draft',
+ ARCHIVED: 'archived',
+};
+
+export const CATEGORY_ALL = 'all';
+
+export const ARTICLE_TABS_OPTIONS = [
+ {
+ key: 'ALL',
+ value: 'all',
+ },
+ {
+ key: 'MINE',
+ value: 'mine',
+ },
+ {
+ key: 'DRAFT',
+ value: 'draft',
+ },
+ {
+ key: 'ARCHIVED',
+ value: 'archived',
+ },
+];
+
+export const LOCALE_MENU_ITEMS = {
+ makeDefault: {
+ label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MAKE_DEFAULT',
+ action: 'change-default',
+ value: 'default',
+ icon: 'i-lucide-star',
+ },
+ moveToDraft: {
+ label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.MOVE_TO_DRAFT',
+ action: 'move-to-draft',
+ value: 'draft',
+ icon: 'i-lucide-eye-off',
+ },
+ publishLocale: {
+ label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.PUBLISH_LOCALE',
+ action: 'publish-locale',
+ value: 'publish',
+ icon: 'i-lucide-eye',
+ },
+ customizeContent: {
+ label:
+ 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.CUSTOMIZE_CONTENT',
+ action: 'customize-content',
+ value: 'customize-content',
+ icon: 'i-lucide-pencil',
+ },
+ delete: {
+ label: 'HELP_CENTER.LOCALES_PAGE.LOCALE_CARD.DROPDOWN_MENU.DELETE',
+ action: 'delete',
+ value: 'delete',
+ icon: 'i-lucide-trash',
+ },
+};
+
+const disableLocaleMenuItems = menuItems =>
+ menuItems.map(item => ({ ...item, disabled: true }));
+
+export const buildLocaleMenuItems = ({ isDefault, isDraft }) => {
+ if (isDefault) {
+ return [
+ ...disableLocaleMenuItems([
+ LOCALE_MENU_ITEMS.makeDefault,
+ LOCALE_MENU_ITEMS.moveToDraft,
+ ]),
+ LOCALE_MENU_ITEMS.customizeContent,
+ ...disableLocaleMenuItems([LOCALE_MENU_ITEMS.delete]),
+ ];
+ }
+
+ if (isDraft) {
+ return [
+ LOCALE_MENU_ITEMS.publishLocale,
+ LOCALE_MENU_ITEMS.customizeContent,
+ LOCALE_MENU_ITEMS.delete,
+ ];
+ }
+
+ return [
+ LOCALE_MENU_ITEMS.makeDefault,
+ LOCALE_MENU_ITEMS.moveToDraft,
+ LOCALE_MENU_ITEMS.customizeContent,
+ LOCALE_MENU_ITEMS.delete,
+ ];
+};
+
+export const ARTICLE_EDITOR_STATUS_OPTIONS = {
+ published: ['archive', 'draft'],
+ archived: ['draft'],
+ draft: ['archive'],
+};
diff --git a/app/javascript/dashboard/helper/pushHelper.js b/app/javascript/dashboard/helper/pushHelper.js
index e62d51ca2..44757ffcd 100644
--- a/app/javascript/dashboard/helper/pushHelper.js
+++ b/app/javascript/dashboard/helper/pushHelper.js
@@ -1,6 +1,7 @@
/* eslint-disable no-console */
import NotificationSubscriptions from '../api/notificationSubscription';
import auth from '../api/auth';
+import { useAlert } from 'dashboard/composables';
export const verifyServiceWorkerExistence = (callback = () => {}) => {
if (!('serviceWorker' in navigator)) {
@@ -67,20 +68,18 @@ export const registerSubscription = (onSuccess = () => {}) => {
.then(() => {
onSuccess();
})
- .catch(() => {
- window.bus.$emit(
- 'newToastMessage',
- 'This browser does not support desktop notification'
- );
+ .catch(error => {
+ // eslint-disable-next-line no-console
+ console.error('Push subscription registration failed:', error);
+ useAlert('This browser does not support desktop notification');
});
};
export const requestPushPermissions = ({ onSuccess }) => {
if (!('Notification' in window)) {
- window.bus.$emit(
- 'newToastMessage',
- 'This browser does not support desktop notification'
- );
+ // eslint-disable-next-line no-console
+ console.warn('Notification is not supported');
+ useAlert('This browser does not support desktop notification');
} else if (Notification.permission === 'granted') {
registerSubscription(onSuccess);
} else if (Notification.permission !== 'denied') {
diff --git a/app/javascript/dashboard/helper/quotedEmailHelper.js b/app/javascript/dashboard/helper/quotedEmailHelper.js
new file mode 100644
index 000000000..9809b61bf
--- /dev/null
+++ b/app/javascript/dashboard/helper/quotedEmailHelper.js
@@ -0,0 +1,333 @@
+import { format, parseISO, isValid as isValidDate } from 'date-fns';
+import DOMPurify from 'dompurify';
+
+/**
+ * Extracts plain text from HTML content
+ * @param {string} html - HTML content to convert
+ * @returns {string} Plain text content
+ */
+export const extractPlainTextFromHtml = html => {
+ if (!html) {
+ return '';
+ }
+ if (typeof document === 'undefined') {
+ return html.replace(/<[^>]*>/g, ' ');
+ }
+ const tempDiv = document.createElement('div');
+ tempDiv.innerHTML = DOMPurify.sanitize(html);
+ return tempDiv.textContent || tempDiv.innerText || '';
+};
+
+/**
+ * Extracts sender name from email message
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} contact - Contact object
+ * @returns {string} Sender name
+ */
+export const getEmailSenderName = (lastEmail, contact) => {
+ const senderName = lastEmail?.sender?.name;
+ if (senderName && senderName.trim()) {
+ return senderName.trim();
+ }
+
+ const contactName = contact?.name;
+ return contactName && contactName.trim() ? contactName.trim() : '';
+};
+
+/**
+ * Extracts sender email from email message
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} contact - Contact object
+ * @returns {string} Sender email address
+ */
+export const getEmailSenderEmail = (lastEmail, contact) => {
+ const senderEmail = lastEmail?.sender?.email;
+ if (senderEmail && senderEmail.trim()) {
+ return senderEmail.trim();
+ }
+
+ const contentAttributes =
+ lastEmail?.contentAttributes || lastEmail?.content_attributes || {};
+ const emailMeta = contentAttributes.email || {};
+
+ if (Array.isArray(emailMeta.from) && emailMeta.from.length > 0) {
+ const fromAddress = emailMeta.from[0];
+ if (fromAddress && fromAddress.trim()) {
+ return fromAddress.trim();
+ }
+ }
+
+ const contactEmail = contact?.email;
+ return contactEmail && contactEmail.trim() ? contactEmail.trim() : '';
+};
+
+/**
+ * Extracts date from email message
+ * @param {Object} lastEmail - Last email message object
+ * @returns {Date|null} Email date
+ */
+export const getEmailDate = lastEmail => {
+ const contentAttributes =
+ lastEmail?.contentAttributes || lastEmail?.content_attributes || {};
+ const emailMeta = contentAttributes.email || {};
+
+ if (emailMeta.date) {
+ const parsedDate = parseISO(emailMeta.date);
+ if (isValidDate(parsedDate)) {
+ return parsedDate;
+ }
+ }
+
+ const createdAt = lastEmail?.created_at;
+ if (createdAt) {
+ const timestamp = Number(createdAt);
+ if (!Number.isNaN(timestamp)) {
+ const milliseconds = timestamp > 1e12 ? timestamp : timestamp * 1000;
+ const derivedDate = new Date(milliseconds);
+ if (!Number.isNaN(derivedDate.getTime())) {
+ return derivedDate;
+ }
+ }
+ }
+
+ return null;
+};
+
+/**
+ * Formats date for quoted email header
+ * @param {Date} date - Date to format
+ * @returns {string} Formatted date string
+ */
+export const formatQuotedEmailDate = date => {
+ try {
+ return format(date, "EEE, MMM d, yyyy 'at' p");
+ } catch (error) {
+ const fallbackDate = new Date(date);
+ if (!Number.isNaN(fallbackDate.getTime())) {
+ return format(fallbackDate, "EEE, MMM d, yyyy 'at' p");
+ }
+ }
+
+ return '';
+};
+
+/**
+ * Extracts inbox email address from last email message
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} inbox - Inbox object
+ * @returns {string} Inbox email address
+ */
+export const getInboxEmail = (lastEmail, inbox) => {
+ const contentAttributes =
+ lastEmail?.contentAttributes || lastEmail?.content_attributes || {};
+ const emailMeta = contentAttributes.email || {};
+
+ if (Array.isArray(emailMeta.to) && emailMeta.to.length > 0) {
+ const toAddress = emailMeta.to[0];
+ if (toAddress && toAddress.trim()) {
+ return toAddress.trim();
+ }
+ }
+
+ const inboxEmail = inbox?.email;
+ return inboxEmail && inboxEmail.trim() ? inboxEmail.trim() : '';
+};
+
+/**
+ * Builds quoted email header from contact (for incoming messages)
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} contact - Contact object
+ * @returns {string} Formatted header string
+ */
+export const buildQuotedEmailHeaderFromContact = (lastEmail, contact) => {
+ if (!lastEmail) {
+ return '';
+ }
+
+ const quotedDate = getEmailDate(lastEmail);
+ const senderEmail = getEmailSenderEmail(lastEmail, contact);
+
+ if (!quotedDate || !senderEmail) {
+ return '';
+ }
+
+ const formattedDate = formatQuotedEmailDate(quotedDate);
+ if (!formattedDate) {
+ return '';
+ }
+
+ const senderName = getEmailSenderName(lastEmail, contact);
+ const hasName = !!senderName;
+ const contactLabel = hasName
+ ? `${senderName} <${senderEmail}>`
+ : `<${senderEmail}>`;
+
+ return `On ${formattedDate} ${contactLabel} wrote:`;
+};
+
+/**
+ * Builds quoted email header from inbox (for outgoing messages)
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} inbox - Inbox object
+ * @returns {string} Formatted header string
+ */
+export const buildQuotedEmailHeaderFromInbox = (lastEmail, inbox) => {
+ if (!lastEmail) {
+ return '';
+ }
+
+ const quotedDate = getEmailDate(lastEmail);
+ const inboxEmail = getInboxEmail(lastEmail, inbox);
+
+ if (!quotedDate || !inboxEmail) {
+ return '';
+ }
+
+ const formattedDate = formatQuotedEmailDate(quotedDate);
+ if (!formattedDate) {
+ return '';
+ }
+
+ const inboxName = inbox?.name;
+ const hasName = !!inboxName;
+ const inboxLabel = hasName
+ ? `${inboxName} <${inboxEmail}>`
+ : `<${inboxEmail}>`;
+
+ return `On ${formattedDate} ${inboxLabel} wrote:`;
+};
+
+/**
+ * Builds quoted email header based on message type
+ * @param {Object} lastEmail - Last email message object
+ * @param {Object} contact - Contact object
+ * @param {Object} inbox - Inbox object
+ * @returns {string} Formatted header string
+ */
+export const buildQuotedEmailHeader = (lastEmail, contact, inbox) => {
+ if (!lastEmail) {
+ return '';
+ }
+
+ // MESSAGE_TYPE.OUTGOING = 1, MESSAGE_TYPE.INCOMING = 0
+ const isOutgoing = lastEmail.message_type === 1;
+
+ if (isOutgoing) {
+ return buildQuotedEmailHeaderFromInbox(lastEmail, inbox);
+ }
+
+ return buildQuotedEmailHeaderFromContact(lastEmail, contact);
+};
+
+/**
+ * Formats text as markdown blockquote
+ * @param {string} text - Text to format
+ * @param {string} header - Optional header to prepend
+ * @returns {string} Formatted blockquote
+ */
+export const formatQuotedTextAsBlockquote = (text, header = '') => {
+ const normalizedLines = text
+ ? String(text).replace(/\r\n/g, '\n').split('\n')
+ : [];
+
+ if (!header && !normalizedLines.length) {
+ return '';
+ }
+
+ const quotedLines = [];
+
+ if (header) {
+ quotedLines.push(`> ${header}`);
+ quotedLines.push('>');
+ }
+
+ normalizedLines.forEach(line => {
+ const trimmedLine = line.trimEnd();
+ quotedLines.push(trimmedLine ? `> ${trimmedLine}` : '>');
+ });
+
+ return quotedLines.join('\n');
+};
+
+/**
+ * Extracts quoted email text from last email message
+ * @param {Object} lastEmail - Last email message object
+ * @returns {string} Quoted email text
+ */
+export const extractQuotedEmailText = lastEmail => {
+ if (!lastEmail) {
+ return '';
+ }
+
+ const contentAttributes =
+ lastEmail.contentAttributes || lastEmail.content_attributes || {};
+ const emailContent = contentAttributes.email || {};
+ const textContent = emailContent.textContent || emailContent.text_content;
+
+ if (textContent?.reply) {
+ return textContent.reply;
+ }
+ if (textContent?.full) {
+ return textContent.full;
+ }
+
+ const htmlContent = emailContent.htmlContent || emailContent.html_content;
+ if (htmlContent?.reply) {
+ return extractPlainTextFromHtml(htmlContent.reply);
+ }
+ if (htmlContent?.full) {
+ return extractPlainTextFromHtml(htmlContent.full);
+ }
+
+ const fallbackContent =
+ lastEmail.content || lastEmail.processed_message_content || '';
+
+ return fallbackContent;
+};
+
+/**
+ * Truncates text for preview display
+ * @param {string} text - Text to truncate
+ * @param {number} maxLength - Maximum length (default: 80)
+ * @returns {string} Truncated text
+ */
+export const truncatePreviewText = (text, maxLength = 80) => {
+ const preview = text.trim().replace(/\s+/g, ' ');
+ if (!preview) {
+ return '';
+ }
+
+ if (preview.length <= maxLength) {
+ return preview;
+ }
+ return `${preview.slice(0, maxLength - 3)}...`;
+};
+
+/**
+ * Appends quoted text to message
+ * @param {string} message - Original message
+ * @param {string} quotedText - Text to quote
+ * @param {string} header - Quote header
+ * @returns {string} Message with quoted text appended
+ */
+export const appendQuotedTextToMessage = (message, quotedText, header) => {
+ const baseMessage = message ? String(message) : '';
+ const quotedBlock = formatQuotedTextAsBlockquote(quotedText, header);
+
+ if (!quotedBlock) {
+ return baseMessage;
+ }
+
+ if (!baseMessage) {
+ return quotedBlock;
+ }
+
+ let separator = '\n\n';
+ if (baseMessage.endsWith('\n\n')) {
+ separator = '';
+ } else if (baseMessage.endsWith('\n')) {
+ separator = '\n';
+ }
+
+ return `${baseMessage}${separator}${quotedBlock}`;
+};
diff --git a/app/javascript/dashboard/helper/routeHelpers.js b/app/javascript/dashboard/helper/routeHelpers.js
index 8ecc71164..292e5e6e1 100644
--- a/app/javascript/dashboard/helper/routeHelpers.js
+++ b/app/javascript/dashboard/helper/routeHelpers.js
@@ -1,19 +1,43 @@
-// eslint-disable-next-line default-param-last
-export const getCurrentAccount = ({ accounts } = {}, accountId) => {
- return accounts.find(account => account.id === accountId);
+import {
+ hasPermissions,
+ getUserPermissions,
+ getCurrentAccount,
+} from './permissionsHelper';
+
+import {
+ ROLES,
+ CONVERSATION_PERMISSIONS,
+ CONTACT_PERMISSIONS,
+ REPORTS_PERMISSIONS,
+ PORTAL_PERMISSIONS,
+} from 'dashboard/constants/permissions.js';
+
+export const routeIsAccessibleFor = (route, userPermissions = []) => {
+ const { meta: { permissions: routePermissions = [] } = {} } = route;
+ return hasPermissions(routePermissions, userPermissions);
};
-// eslint-disable-next-line default-param-last
-export const getUserRole = ({ accounts } = {}, accountId) => {
- const currentAccount = getCurrentAccount({ accounts }, accountId) || {};
- return currentAccount.role || null;
+export const defaultRedirectPage = (to, permissions) => {
+ const { accountId } = to.params;
+
+ const permissionRoutes = [
+ {
+ permissions: [...ROLES, ...CONVERSATION_PERMISSIONS],
+ path: 'dashboard',
+ },
+ { permissions: [CONTACT_PERMISSIONS], path: 'contacts' },
+ { permissions: [REPORTS_PERMISSIONS], path: 'reports/overview' },
+ { permissions: [PORTAL_PERMISSIONS], path: 'portals' },
+ ];
+
+ const route = permissionRoutes.find(({ permissions: routePermissions }) =>
+ hasPermissions(routePermissions, permissions)
+ );
+
+ return `accounts/${accountId}/${route ? route.path : 'dashboard'}`;
};
-export const routeIsAccessibleFor = (route, role, roleWiseRoutes) => {
- return roleWiseRoutes[role].includes(route);
-};
-
-const validateActiveAccountRoutes = (to, user, roleWiseRoutes) => {
+const validateActiveAccountRoutes = (to, user) => {
// If the current account is active, then check for the route permissions
const accountDashboardURL = `accounts/${to.params.accountId}/dashboard`;
@@ -22,15 +46,15 @@ const validateActiveAccountRoutes = (to, user, roleWiseRoutes) => {
return accountDashboardURL;
}
- const userRole = getUserRole(user, Number(to.params.accountId));
- const isAccessible = routeIsAccessibleFor(to.name, userRole, roleWiseRoutes);
+ const userPermissions = getUserPermissions(user, to.params.accountId);
+
+ const isAccessible = routeIsAccessibleFor(to, userPermissions);
// If the route is not accessible for the user, return to dashboard screen
- return isAccessible ? null : accountDashboardURL;
+ return isAccessible ? null : defaultRedirectPage(to, userPermissions);
};
-export const validateLoggedInRoutes = (to, user, roleWiseRoutes) => {
+export const validateLoggedInRoutes = (to, user) => {
const currentAccount = getCurrentAccount(user, Number(to.params.accountId));
-
// If current account is missing, either user does not have
// access to the account or the account is deleted, return to login screen
if (!currentAccount) {
@@ -40,7 +64,7 @@ export const validateLoggedInRoutes = (to, user, roleWiseRoutes) => {
const isCurrentAccountActive = currentAccount.status === 'active';
if (isCurrentAccountActive) {
- return validateActiveAccountRoutes(to, user, roleWiseRoutes);
+ return validateActiveAccountRoutes(to, user);
}
// If the current account is not active, then redirect the user to the suspended screen
@@ -52,8 +76,22 @@ export const validateLoggedInRoutes = (to, user, roleWiseRoutes) => {
return null;
};
-export const isAConversationRoute = routeName =>
- [
+export const isAConversationRoute = (
+ routeName,
+ includeBase = false,
+ includeExtended = true
+) => {
+ const baseRoutes = [
+ 'home',
+ 'conversation_mentions',
+ 'conversation_unattended',
+ 'inbox_dashboard',
+ 'label_conversations',
+ 'team_conversations',
+ 'folder_conversations',
+ 'conversation_participating',
+ ];
+ const extendedRoutes = [
'inbox_conversation',
'conversation_through_mentions',
'conversation_through_unattended',
@@ -62,7 +100,15 @@ export const isAConversationRoute = routeName =>
'conversations_through_team',
'conversations_through_folders',
'conversation_through_participating',
- ].includes(routeName);
+ ];
+
+ const routes = [
+ ...(includeBase ? baseRoutes : []),
+ ...(includeExtended ? extendedRoutes : []),
+ ];
+
+ return routes.includes(routeName);
+};
export const getConversationDashboardRoute = routeName => {
switch (routeName) {
@@ -87,5 +133,14 @@ export const getConversationDashboardRoute = routeName => {
}
};
-export const isAInboxViewRoute = routeName =>
- ['inbox_view_conversation'].includes(routeName);
+export const isAInboxViewRoute = (routeName, includeBase = false) => {
+ const baseRoutes = ['inbox_view'];
+ const extendedRoutes = ['inbox_view_conversation'];
+ const routeNames = includeBase
+ ? [...baseRoutes, ...extendedRoutes]
+ : extendedRoutes;
+ return routeNames.includes(routeName);
+};
+
+export const isNotificationRoute = routeName =>
+ routeName === 'notifications_index';
diff --git a/app/javascript/dashboard/helper/scriptHelpers.js b/app/javascript/dashboard/helper/scriptHelpers.js
index 1169f2ee8..f779a586d 100644
--- a/app/javascript/dashboard/helper/scriptHelpers.js
+++ b/app/javascript/dashboard/helper/scriptHelpers.js
@@ -1,38 +1,32 @@
+import {
+ ANALYTICS_IDENTITY,
+ CHATWOOT_RESET,
+ CHATWOOT_SET_USER,
+} from '../constants/appEvents';
import AnalyticsHelper from './AnalyticsHelper';
-import LogRocket from 'logrocket';
import DashboardAudioNotificationHelper from './AudioAlerts/DashboardAudioNotificationHelper';
-
-export const CHATWOOT_SET_USER = 'CHATWOOT_SET_USER';
-export const CHATWOOT_RESET = 'CHATWOOT_RESET';
-
-export const ANALYTICS_IDENTITY = 'ANALYTICS_IDENTITY';
-export const ANALYTICS_RESET = 'ANALYTICS_RESET';
+import { emitter } from 'shared/helpers/mitt';
export const initializeAnalyticsEvents = () => {
- window.bus.$on(ANALYTICS_IDENTITY, ({ user }) => {
+ AnalyticsHelper.init();
+ emitter.on(ANALYTICS_IDENTITY, ({ user }) => {
AnalyticsHelper.identify(user);
- if (window.logRocketProjectId) {
- LogRocket.identify(user.id, {
- email: user.email,
- name: user.name,
- });
- }
});
};
-const initializeAudioAlerts = user => {
+export const initializeAudioAlerts = user => {
const { ui_settings: uiSettings } = user || {};
const {
always_play_audio_alert: alwaysPlayAudioAlert,
enable_audio_alerts: audioAlertType,
alert_if_unread_assigned_conversation_exist: alertIfUnreadConversationExist,
notification_tone: audioAlertTone,
- // UI Settings can be undefined initally as we don't send the
+ // UI Settings can be undefined initially as we don't send the
// entire payload for the user during the signup process.
} = uiSettings || {};
- DashboardAudioNotificationHelper.setInstanceValues({
- currentUserId: user.id,
+ DashboardAudioNotificationHelper.set({
+ currentUser: user,
audioAlertType: audioAlertType || 'none',
audioAlertTone: audioAlertTone || 'ding',
alwaysPlayAudioAlert: alwaysPlayAudioAlert || false,
@@ -41,12 +35,12 @@ const initializeAudioAlerts = user => {
};
export const initializeChatwootEvents = () => {
- window.bus.$on(CHATWOOT_RESET, () => {
+ emitter.on(CHATWOOT_RESET, () => {
if (window.$chatwoot) {
window.$chatwoot.reset();
}
});
- window.bus.$on(CHATWOOT_SET_USER, ({ user }) => {
+ emitter.on(CHATWOOT_SET_USER, ({ user }) => {
if (window.$chatwoot) {
window.$chatwoot.setUser(user.email, {
avatar_url: user.avatar_url,
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/index.js b/app/javascript/dashboard/helper/snoozeDateParser/index.js
new file mode 100644
index 000000000..bbdd01326
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/index.js
@@ -0,0 +1,12 @@
+/**
+ * snoozeDateParser — Natural language date/time parser for snooze.
+ *
+ * Barrel re-export from submodules:
+ * - parser.js: core parsing engine (parseDateFromText)
+ * - localization.js: multilingual suggestion generator (generateDateSuggestions)
+ * - suggestions.js: compositional suggestion engine
+ * - tokenMaps.js: shared token maps and utility functions
+ */
+
+export { parseDateFromText } from './parser';
+export { generateDateSuggestions } from './localization';
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/localization.js b/app/javascript/dashboard/helper/snoozeDateParser/localization.js
new file mode 100644
index 000000000..8ffabe05a
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/localization.js
@@ -0,0 +1,415 @@
+/**
+ * Handles non-English input and generates the final suggestion list.
+ * Translates localized words to English before parsing, then converts
+ * suggestion labels back to the user's language for display.
+ */
+
+import {
+ WEEKDAY_MAP,
+ MONTH_MAP,
+ UNIT_MAP,
+ WORD_NUMBER_MAP,
+ RELATIVE_DAY_MAP,
+ TIME_OF_DAY_MAP,
+ sanitize,
+ stripNoise,
+ normalizeDigits,
+} from './tokenMaps';
+
+import { parseDateFromText } from './parser';
+import { buildSuggestionCandidates, MAX_SUGGESTIONS } from './suggestions';
+
+// ─── English Reference Data ─────────────────────────────────────────────────
+
+const EN_WEEKDAYS_LIST = [
+ 'monday',
+ 'tuesday',
+ 'wednesday',
+ 'thursday',
+ 'friday',
+ 'saturday',
+ 'sunday',
+];
+
+const EN_MONTHS_LIST = [
+ 'january',
+ 'february',
+ 'march',
+ 'april',
+ 'may',
+ 'june',
+ 'july',
+ 'august',
+ 'september',
+ 'october',
+ 'november',
+ 'december',
+];
+
+const EN_DEFAULTS = {
+ UNITS: {
+ MINUTE: 'minute',
+ MINUTES: 'minutes',
+ HOUR: 'hour',
+ HOURS: 'hours',
+ DAY: 'day',
+ DAYS: 'days',
+ WEEK: 'week',
+ WEEKS: 'weeks',
+ MONTH: 'month',
+ MONTHS: 'months',
+ YEAR: 'year',
+ YEARS: 'years',
+ },
+ RELATIVE: {
+ TOMORROW: 'tomorrow',
+ DAY_AFTER_TOMORROW: 'day after tomorrow',
+ NEXT_WEEK: 'next week',
+ NEXT_MONTH: 'next month',
+ THIS_WEEKEND: 'this weekend',
+ NEXT_WEEKEND: 'next weekend',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'morning',
+ AFTERNOON: 'afternoon',
+ EVENING: 'evening',
+ NIGHT: 'night',
+ NOON: 'noon',
+ MIDNIGHT: 'midnight',
+ },
+ WORD_NUMBERS: {
+ ONE: 'one',
+ TWO: 'two',
+ THREE: 'three',
+ FOUR: 'four',
+ FIVE: 'five',
+ SIX: 'six',
+ SEVEN: 'seven',
+ EIGHT: 'eight',
+ NINE: 'nine',
+ TEN: 'ten',
+ TWELVE: 'twelve',
+ FIFTEEN: 'fifteen',
+ TWENTY: 'twenty',
+ THIRTY: 'thirty',
+ },
+ ORDINALS: {
+ FIRST: 'first',
+ SECOND: 'second',
+ THIRD: 'third',
+ FOURTH: 'fourth',
+ FIFTH: 'fifth',
+ },
+ MERIDIEM: { AM: 'am', PM: 'pm' },
+ HALF: 'half',
+ NEXT: 'next',
+ THIS: 'this',
+ AT: 'at',
+ IN: 'in',
+ OF: 'of',
+ AFTER: 'after',
+ WEEK: 'week',
+ DAY: 'day',
+ FROM_NOW: 'from now',
+ NEXT_YEAR: 'next year',
+};
+
+const STRUCTURAL_WORDS = [
+ 'at',
+ 'in',
+ 'next',
+ 'this',
+ 'from',
+ 'now',
+ 'after',
+ 'half',
+ 'same',
+ 'time',
+ 'weekend',
+ 'end',
+ 'of',
+ 'the',
+ 'eod',
+ 'am',
+ 'pm',
+ 'week',
+ 'day',
+ 'first',
+ 'second',
+ 'third',
+ 'fourth',
+ 'fifth',
+];
+
+const ENGLISH_VOCAB = new Set([
+ ...Object.keys(WEEKDAY_MAP),
+ ...Object.keys(MONTH_MAP),
+ ...Object.keys(UNIT_MAP),
+ ...Object.keys(WORD_NUMBER_MAP),
+ ...Object.keys(RELATIVE_DAY_MAP),
+ ...Object.keys(TIME_OF_DAY_MAP),
+ ...EN_WEEKDAYS_LIST,
+ ...EN_MONTHS_LIST,
+ ...STRUCTURAL_WORDS,
+]);
+
+// ─── Regex for token replacement ────────────────────────────────────────────
+
+const MONTH_NAMES = Object.keys(MONTH_MAP).join('|');
+const MONTH_NAME_RE = new RegExp(`\\b(?:${MONTH_NAMES})\\b`, 'i');
+const NUM_TOD_RE =
+ /\b(\d{1,2}(?::\d{2})?)\s+(morning|noon|afternoon|evening|night)\b/g;
+const TOD_TO_MERIDIEM = {
+ morning: 'am',
+ noon: 'pm',
+ afternoon: 'pm',
+ evening: 'pm',
+ night: 'pm',
+};
+const CJK_CHAR_RE =
+ /[\p{Script=Han}\p{Script=Hiragana}\p{Script=Katakana}\p{Script=Hangul}]/u;
+
+// ─── Translation Cache ──────────────────────────────────────────────────────
+
+const safeString = v => (v == null ? '' : String(v));
+const MAX_PAIRS_CACHE = 20;
+const pairsCache = new Map();
+const CACHE_SECTIONS = [
+ 'UNITS',
+ 'RELATIVE',
+ 'TIME_OF_DAY',
+ 'WORD_NUMBERS',
+ 'ORDINALS',
+ 'MERIDIEM',
+];
+const SINGLE_KEYS = [
+ 'HALF',
+ 'NEXT',
+ 'THIS',
+ 'AT',
+ 'IN',
+ 'OF',
+ 'AFTER',
+ 'WEEK',
+ 'DAY',
+ 'FROM_NOW',
+ 'NEXT_YEAR',
+];
+
+/** Create a string key from translations so we can cache results. */
+const translationSignature = translations => {
+ if (!translations || typeof translations !== 'object') return 'none';
+ return [
+ ...CACHE_SECTIONS.flatMap(section => {
+ const values = translations[section] || {};
+ return Object.keys(values)
+ .sort()
+ .map(k => `${section}.${k}:${safeString(values[k]).toLowerCase()}`);
+ }),
+ ...SINGLE_KEYS.map(
+ k => `${k}:${safeString(translations[k]).toLowerCase()}`
+ ),
+ ].join('|');
+};
+
+/** Build a list of [localWord, englishWord] pairs from the translations and browser locale. */
+const buildReplacementPairsUncached = (translations, locale) => {
+ const pairs = [];
+ const seen = new Set();
+ const t = translations || {};
+
+ const addPair = (local, en) => {
+ const l = sanitize(safeString(local));
+ const e = safeString(en).toLowerCase();
+ const key = `${l}\0${e}`;
+ if (l && e && l !== e && !seen.has(key)) {
+ seen.add(key);
+ pairs.push([l, e]);
+ }
+ };
+
+ CACHE_SECTIONS.forEach(section => {
+ const localSection = t[section] || {};
+ const enSection = EN_DEFAULTS[section] || {};
+ Object.keys(enSection).forEach(key => {
+ addPair(localSection[key], enSection[key]);
+ });
+ });
+
+ SINGLE_KEYS.forEach(key => addPair(t[key], EN_DEFAULTS[key]));
+
+ try {
+ const wdFmt = new Intl.DateTimeFormat(locale, { weekday: 'long' });
+ // Jan 1, 2024 is a Monday — aligns with EN_WEEKDAYS_LIST[0]='monday'
+ EN_WEEKDAYS_LIST.forEach((en, i) => {
+ addPair(wdFmt.format(new Date(2024, 0, i + 1)), en);
+ });
+ } catch {
+ /* locale not supported */
+ }
+
+ try {
+ const moFmt = new Intl.DateTimeFormat(locale, { month: 'long' });
+ EN_MONTHS_LIST.forEach((en, i) => {
+ addPair(moFmt.format(new Date(2024, i, 1)), en);
+ });
+ } catch {
+ /* locale not supported */
+ }
+
+ pairs.sort((a, b) => b[0].length - a[0].length);
+ return pairs;
+};
+
+/** Same as above but cached. Keeps up to 20 entries to avoid rebuilding every call. */
+const buildReplacementPairs = (translations, locale) => {
+ const cacheKey = `${locale || ''}:${translationSignature(translations)}`;
+ if (pairsCache.has(cacheKey)) return pairsCache.get(cacheKey);
+ const pairs = buildReplacementPairsUncached(translations, locale);
+ if (pairsCache.size >= MAX_PAIRS_CACHE)
+ pairsCache.delete(pairsCache.keys().next().value);
+ pairsCache.set(cacheKey, pairs);
+ return pairs;
+};
+
+// ─── Token Replacement ──────────────────────────────────────────────────────
+
+const escapeRegex = s => s.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+
+/** Swap localized words for their English versions in the text. */
+const substituteLocalTokens = (text, pairs) => {
+ let r = text;
+ pairs.forEach(([local, en]) => {
+ if (CJK_CHAR_RE.test(local)) {
+ const re = new RegExp(escapeRegex(local), 'g');
+ r = r.replace(re, ` ${en} `);
+ } else {
+ const re = new RegExp(`(?<=^|\\s)${escapeRegex(local)}(?=\\s|$)`, 'g');
+ r = r.replace(re, en);
+ }
+ });
+ return r;
+};
+
+/** Drop any words the parser wouldn't understand (keeps English words and numbers). */
+const filterToEnglishVocab = text =>
+ normalizeDigits(text)
+ .replace(/(\d+)h\b/g, '$1:00')
+ .split(/\s+/)
+ .filter(w => /[\d:]/.test(w) || ENGLISH_VOCAB.has(w.toLowerCase()))
+ .join(' ')
+ .replace(/\s+/g, ' ')
+ .trim();
+
+/** Move "next year" to the right spot so the parser can read it (after the month, before time). */
+const repositionNextYear = text => {
+ if (!MONTH_NAME_RE.test(text)) return text;
+ let r = text.replace(/\b(?:next\s+)?year\b/i, m =>
+ /next/i.test(m) ? m : 'next year'
+ );
+ if (!/\bnext\s+year\b/i.test(r)) return r;
+ const withoutNY = r.replace(/\bnext\s+year\b/i, '').trim();
+ const timeRe = /(?:(?:at\s+)?\d{1,2}(?::\d{2})?\s*(?:am|pm)?)\s*$/i;
+ const timePart = withoutNY.match(timeRe);
+ if (timePart) {
+ const beforeTime = withoutNY.slice(0, timePart.index).trim();
+ r = `${beforeTime} next year ${timePart[0].trim()}`;
+ } else {
+ r = `${withoutNY} next year`;
+ }
+ return r;
+};
+
+/** Run the full translation pipeline: swap tokens, filter, fix am/pm, reposition "next year". */
+const replaceTokens = (text, pairs) => {
+ const substituted = substituteLocalTokens(text, pairs);
+ const filtered = filterToEnglishVocab(substituted);
+ const fixed = filtered.replace(
+ NUM_TOD_RE,
+ (_, t, tod) => `${t}${TOD_TO_MERIDIEM[tod]}`
+ );
+ return stripNoise(repositionNextYear(fixed));
+};
+
+/** Convert English words back to the user's language for display. */
+const reverseTokens = (text, pairs) =>
+ pairs.reduce(
+ (r, [local, en]) =>
+ r.replace(
+ new RegExp(`(?<=^|\\s)${escapeRegex(en)}(?=\\s|$)`, 'g'),
+ local
+ ),
+ text
+ );
+
+// ─── Main Suggestion Generator ──────────────────────────────────────────────
+
+/**
+ * Generate snooze suggestions from what the user has typed so far.
+ * Works with any language if translations are provided. Returns up to 5
+ * unique results, each with a label, date, and unix timestamp.
+ *
+ * @param {string} text - what the user typed
+ * @param {Date} [referenceDate] - treat as "now" (defaults to current time)
+ * @param {{ translations?: object, locale?: string }} [options] - i18n config
+ * @returns {Array<{ label: string, date: Date, unix: number }>}
+ */
+export const generateDateSuggestions = (
+ text,
+ referenceDate = new Date(),
+ { translations, locale } = {}
+) => {
+ if (!text || typeof text !== 'string') return [];
+ const normalized = sanitize(text);
+ if (!normalized) return [];
+
+ const stripped = stripNoise(normalized);
+ const pairs =
+ locale && locale !== 'en'
+ ? buildReplacementPairs(translations, locale)
+ : [];
+
+ // Try English parse first, then translated parse if we have locale pairs.
+ // This avoids the problem where a single overlapping word (e.g. "in" in German)
+ // would skip token translation entirely.
+ const directParse = parseDateFromText(stripped, referenceDate);
+
+ const translated = pairs.length ? replaceTokens(normalized, pairs) : null;
+ const translatedParse =
+ translated && translated !== stripped
+ ? parseDateFromText(translated, referenceDate)
+ : null;
+
+ // Prefer direct English parse; fall back to translated parse
+ const useTranslated = !directParse && !!translatedParse;
+ const englishInput = useTranslated ? translated : stripped;
+
+ const seen = new Set();
+ const results = [];
+
+ const exact = directParse || translatedParse;
+ if (exact) {
+ seen.add(exact.unix);
+ const exactLabel =
+ useTranslated && pairs.length
+ ? reverseTokens(englishInput, pairs)
+ : englishInput;
+ results.push({ label: exactLabel, query: englishInput, ...exact });
+ }
+
+ buildSuggestionCandidates(englishInput).some(candidate => {
+ if (results.length >= MAX_SUGGESTIONS) return true;
+ const result = parseDateFromText(candidate, referenceDate);
+ if (result && !seen.has(result.unix)) {
+ seen.add(result.unix);
+ const label =
+ useTranslated && pairs.length
+ ? reverseTokens(candidate, pairs)
+ : candidate;
+ results.push({ label, query: candidate, ...result });
+ }
+ return false;
+ });
+
+ return results;
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/parser.js b/app/javascript/dashboard/helper/snoozeDateParser/parser.js
new file mode 100644
index 000000000..e076da712
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/parser.js
@@ -0,0 +1,820 @@
+/**
+ * Parses natural language text into a future date.
+ *
+ * Flow: clean the input → try each matcher in order → return the first future date.
+ * The MATCHERS order matters — see the comment above the array.
+ */
+
+import {
+ add,
+ startOfDay,
+ getDay,
+ isSaturday,
+ isSunday,
+ nextFriday,
+ nextSaturday,
+ getUnixTime,
+ isValid,
+ startOfWeek,
+ addWeeks,
+ isAfter,
+ isBefore,
+ endOfMonth,
+} from 'date-fns';
+
+import {
+ WEEKDAY_MAP,
+ MONTH_MAP,
+ RELATIVE_DAY_MAP,
+ UNIT_MAP,
+ WORD_NUMBER_MAP,
+ NEXT_WEEKDAY_FN,
+ TIME_OF_DAY_MAP,
+ TOD_HOUR_RANGE,
+ HALF_UNIT_DURATIONS,
+ sanitize,
+ stripNoise,
+ parseNumber,
+ parseTimeString,
+ applyTimeToDate,
+ applyTimeOrDefault,
+ strictDate,
+ futureOrNextYear,
+ ensureFutureOrNextDay,
+ inferHoursFromTOD,
+ addFractionalSafe,
+} from './tokenMaps';
+
+// ─── Regex Fragments (derived from maps) ────────────────────────────────────
+
+const WEEKDAY_NAMES = Object.keys(WEEKDAY_MAP).join('|');
+const MONTH_NAMES = Object.keys(MONTH_MAP).join('|');
+const UNIT_NAMES = Object.keys(UNIT_MAP).join('|');
+const WORD_NUMBERS = Object.keys(WORD_NUMBER_MAP).join('|');
+const RELATIVE_DAYS = Object.keys(RELATIVE_DAY_MAP).join('|');
+const TIME_OF_DAY_NAMES = 'morning|afternoon|evening|night|noon|midnight';
+
+const NUM_RE = `(\\d+(?:\\.5)?|${WORD_NUMBERS})`;
+const UNIT_RE = `(${UNIT_NAMES})`;
+const TIME_SUFFIX_RE =
+ '(?:\\s+(?:at\\s+)?(\\d{1,2}(?::\\d{2})?\\s*(?:am|pm|a\\.m\\.?|p\\.m\\.?)?|\\d{1,2}:\\d{2}))?';
+
+const ORDINAL_MAP = {
+ first: 1,
+ second: 2,
+ third: 3,
+ fourth: 4,
+ fifth: 5,
+ sixth: 6,
+ seventh: 7,
+ eighth: 8,
+ ninth: 9,
+ tenth: 10,
+};
+const parseOrdinal = str => {
+ if (ORDINAL_MAP[str]) return ORDINAL_MAP[str];
+ return parseInt(str.replace(/(?:st|nd|rd|th)$/, ''), 10) || null;
+};
+const ORDINAL_WORDS = Object.keys(ORDINAL_MAP).join('|');
+const ORDINAL_RE = `(\\d{1,2}(?:st|nd|rd|th)?|${ORDINAL_WORDS})`;
+
+// ─── Pre-compiled Regexes ───────────────────────────────────────────────────
+
+const HALF_UNIT_RE = /^(?:in\s+)?half\s+(?:an?\s+)?(hour|day|week|month|year)$/;
+const RELATIVE_DURATION_RE = new RegExp(`^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}$`);
+const RELATIVE_DURATION_AFTER_RE = new RegExp(
+ `^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}\\s+after$`
+);
+const DURATION_FROM_NOW_RE = new RegExp(
+ `^${NUM_RE}\\s+${UNIT_RE}\\s+from\\s+now$`
+);
+const RELATIVE_DAY_ONLY_RE = new RegExp(`^(${RELATIVE_DAYS})$`);
+const RELATIVE_DAY_TOD_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?(${TIME_OF_DAY_NAMES})$`
+);
+const RELATIVE_DAY_MERIDIEM_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?(am|pm)$`
+);
+const RELATIVE_DAY_TOD_TIME_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?(${TIME_OF_DAY_NAMES})\\s+(\\d{1,2}(?::\\d{2})?)$`
+);
+const RELATIVE_DAY_AT_TIME_RE = new RegExp(
+ `^(${RELATIVE_DAYS})\\s+(?:at\\s+)?` +
+ '(\\d{1,2}(?::\\d{2})?\\s*' +
+ '(?:am|pm|a\\.m\\.?|p\\.m\\.?)?|\\d{1,2}:\\d{2})$'
+);
+const RELATIVE_DAY_SAME_TIME_RE = new RegExp(
+ `^(?:(${RELATIVE_DAYS})\\s+(?:same\\s+time|this\\s+time)|(?:same\\s+time|this\\s+time)\\s+(${RELATIVE_DAYS}))$`
+);
+const NEXT_UNIT_RE = new RegExp(
+ `^next\\s+(hour|minute|week|month|year)${TIME_SUFFIX_RE}$`
+);
+const NEXT_MONTH_RE = new RegExp(`^next\\s+(${MONTH_NAMES})${TIME_SUFFIX_RE}$`);
+const NEXT_WEEKDAY_TOD_RE = new RegExp(
+ `^next\\s+(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const NEXT_WEEKDAY_RE = new RegExp(
+ `^(?:(${WEEKDAY_NAMES})\\s+(?:of\\s+)?next\\s+week` +
+ `|next\\s+week\\s+(${WEEKDAY_NAMES})` +
+ `|next\\s+(${WEEKDAY_NAMES}))${TIME_SUFFIX_RE}$`
+);
+const SAME_TIME_WEEKDAY_RE = new RegExp(
+ `^(?:same\\s+time|this\\s+time)\\s+(${WEEKDAY_NAMES})$`
+);
+const WEEKDAY_TOD_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?` +
+ `(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const WEEKDAY_TOD_TIME_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?` +
+ `(${WEEKDAY_NAMES})\\s+(${TIME_OF_DAY_NAMES})\\s+(\\d{1,2}(?::\\d{2})?)$`
+);
+const WEEKDAY_TIME_RE = new RegExp(
+ `^(?:(?:this|upcoming|coming)\\s+)?(${WEEKDAY_NAMES})${TIME_SUFFIX_RE}$`
+);
+const TIME_ONLY_MERIDIEM_RE =
+ /^(?:at\s+)?(\d{1,2}(?::\d{2})?\s*(?:am|pm|a\.m\.?|p\.m\.?))$/;
+const TIME_ONLY_24H_RE = /^(?:at\s+)?(\d{1,2}:\d{2})$/;
+const TOD_WITH_TIME_RE = new RegExp(
+ `^(?:(?:this|the)\\s+)?(${TIME_OF_DAY_NAMES})\\s+` +
+ '(?:at\\s+)?(\\d{1,2}(?::\\d{2})?\\s*' +
+ '(?:am|pm|a\\.m\\.?|p\\.m\\.?)?)$'
+);
+const TOD_PLAIN_RE = new RegExp(
+ '(?:(?:later|in)\\s+)?(?:(?:this|the)\\s+)?' +
+ `(?:${TIME_OF_DAY_NAMES}|eod|end of day|end of the day)$`
+);
+const ABSOLUTE_DATE_RE = new RegExp(
+ `^(${MONTH_NAMES})\\s+(\\d{1,2})(?:st|nd|rd|th)?` +
+ `(?:[,\\s]+(\\d{4}|next\\s+year))?${TIME_SUFFIX_RE}$`
+);
+const ABSOLUTE_DATE_REVERSED_RE = new RegExp(
+ `^(\\d{1,2})(?:st|nd|rd|th)?\\s+(${MONTH_NAMES})` +
+ `(?:[,\\s]+(\\d{4}|next\\s+year))?${TIME_SUFFIX_RE}$`
+);
+const MONTH_YEAR_RE = new RegExp(`^(${MONTH_NAMES})\\s+(\\d{4})$`);
+// "april first week", "first week of april", "march 2nd day", "5th day of jan"
+const MONTH_ORDINAL_RE = new RegExp(
+ `^(?:(${MONTH_NAMES})\\s+${ORDINAL_RE}\\s+(week|day)|${ORDINAL_RE}\\s+(week|day)\\s+of\\s+(${MONTH_NAMES}))${TIME_SUFFIX_RE}$`
+);
+const DAY_AFTER_TOMORROW_RE = new RegExp(
+ `^day\\s+after\\s+tomorrow${TIME_SUFFIX_RE}$`
+);
+
+const COMPOUND_DURATION_RE = new RegExp(
+ `^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}\\s+(?:and\\s+)?${NUM_RE}\\s+${UNIT_RE}$`
+);
+const DURATION_AT_TIME_RE = new RegExp(
+ `^(?:in\\s+)?${NUM_RE}\\s+${UNIT_RE}\\s+at\\s+` +
+ '(\\d{1,2}(?::\\d{2})?\\s*(?:am|pm|a\\.m\\.?|p\\.m\\.?)?)$'
+);
+const END_OF_RE = /^end\s+of\s+(?:the\s+)?(week|month|day)$/;
+const END_OF_NEXT_RE = /^end\s+of\s+(?:the\s+)?next\s+(week|month)$/;
+const START_OF_NEXT_RE =
+ /^(?:beginning|start)\s+of\s+(?:the\s+)?next\s+(week|month)$/;
+const LATER_TODAY_RE = /^later\s+(?:today|this\s+(?:afternoon|evening))$/;
+const EARLY_LATE_TOD_RE = new RegExp(
+ `^(early|late)\\s+(${TIME_OF_DAY_NAMES})$`
+);
+const ONE_AND_HALF_RE = new RegExp(
+ `^(?:in\\s+)?(?:one\\s+and\\s+(?:a\\s+)?half|an?\\s+hour\\s+and\\s+(?:a\\s+)?half)(?:\\s+${UNIT_RE})?$`
+);
+const NEXT_BUSINESS_DAY_RE = /^next\s+(?:business|working)\s+day$/;
+
+const TIME_SUFFIX_COMPILED = new RegExp(`${TIME_SUFFIX_RE}$`);
+const ISO_DATE_RE = new RegExp(
+ `^(\\d{4})-(\\d{1,2})-(\\d{1,2})${TIME_SUFFIX_COMPILED.source}`
+);
+const SLASH_DATE_RE = new RegExp(
+ `^(\\d{1,2})/(\\d{1,2})/(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+const DASH_DATE_RE = new RegExp(
+ `^(\\d{1,2})-(\\d{1,2})-(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+const DOT_DATE_RE = new RegExp(
+ `^(\\d{1,2})\\.(\\d{1,2})\\.(\\d{4})${TIME_SUFFIX_COMPILED.source}`
+);
+
+// ─── Pattern Matchers ───────────────────────────────────────────────────────
+
+/** Read amount and unit from a regex match, then add to now. */
+const parseDuration = (match, now) => {
+ if (!match) return null;
+ const amount = parseNumber(match[1]);
+ const unit = UNIT_MAP[match[2]];
+ if (amount == null || !unit) return null;
+ return addFractionalSafe(now, unit, amount);
+};
+
+/** Handle "in 2 hours", "half day", "3h30m", "5 min from now". */
+const matchDuration = (text, now) => {
+ const half = text.match(HALF_UNIT_RE);
+ if (half) {
+ return HALF_UNIT_DURATIONS[half[1]]
+ ? add(now, HALF_UNIT_DURATIONS[half[1]])
+ : null;
+ }
+
+ // "one and a half hours", "an hour and a half"
+ const oneHalf = text.match(ONE_AND_HALF_RE);
+ if (oneHalf) {
+ const unit = UNIT_MAP[oneHalf[1]] || 'hours';
+ return addFractionalSafe(now, unit, 1.5);
+ }
+
+ const compound = text.match(COMPOUND_DURATION_RE);
+ if (compound) {
+ const a1 = parseNumber(compound[1]);
+ const u1 = UNIT_MAP[compound[2]];
+ const a2 = parseNumber(compound[3]);
+ const u2 = UNIT_MAP[compound[4]];
+ if (a1 == null || !u1 || a2 == null || !u2) {
+ return null;
+ }
+ return add(add(now, { [u1]: a1 }), { [u2]: a2 });
+ }
+
+ const atTime = text.match(DURATION_AT_TIME_RE);
+ if (atTime) {
+ const amount = parseNumber(atTime[1]);
+ const unit = UNIT_MAP[atTime[2]];
+ const time = parseTimeString(atTime[3]);
+ if (amount == null || !unit || !time) {
+ return null;
+ }
+ return applyTimeToDate(
+ add(now, { [unit]: amount }),
+ time.hours,
+ time.minutes
+ );
+ }
+
+ return (
+ parseDuration(text.match(DURATION_FROM_NOW_RE), now) ||
+ parseDuration(text.match(RELATIVE_DURATION_AFTER_RE), now) ||
+ parseDuration(text.match(RELATIVE_DURATION_RE), now)
+ );
+};
+
+/** Set time on a day offset. If the result is already past, move to the next day. */
+const applyTimeWithRollover = (offset, hours, minutes, now) => {
+ const base = add(startOfDay(now), { days: offset });
+ const date = applyTimeToDate(base, hours, minutes);
+ if (isAfter(date, now)) return date;
+ return applyTimeToDate(add(base, { days: 1 }), hours, minutes);
+};
+
+/** Handle "today", "tonight", "tomorrow" with optional time. */
+const matchRelativeDay = (text, now) => {
+ const dayOnlyMatch = text.match(RELATIVE_DAY_ONLY_RE);
+ if (dayOnlyMatch) {
+ const key = dayOnlyMatch[1];
+ const offset = RELATIVE_DAY_MAP[key];
+ if (key === 'tonight' || key === 'tonite') {
+ return ensureFutureOrNextDay(
+ applyTimeToDate(add(startOfDay(now), { days: offset }), 20, 0),
+ now
+ );
+ }
+ if (offset === 1) {
+ return applyTimeToDate(add(startOfDay(now), { days: 1 }), 9, 0);
+ }
+ return add(now, { hours: 1 });
+ }
+
+ const dayTodTimeMatch = text.match(RELATIVE_DAY_TOD_TIME_RE);
+ if (dayTodTimeMatch) {
+ const timeParts = dayTodTimeMatch[3].split(':');
+ const time = inferHoursFromTOD(
+ dayTodTimeMatch[2],
+ timeParts[0],
+ timeParts[1]
+ );
+ if (!time) return null;
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayTodTimeMatch[1]],
+ time.hours,
+ time.minutes,
+ now
+ );
+ }
+
+ const dayTodMatch = text.match(RELATIVE_DAY_TOD_RE);
+ if (dayTodMatch) {
+ const { hours, minutes } = TIME_OF_DAY_MAP[dayTodMatch[2]];
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayTodMatch[1]],
+ hours,
+ minutes,
+ now
+ );
+ }
+
+ const dayMeridiemMatch = text.match(RELATIVE_DAY_MERIDIEM_RE);
+ if (dayMeridiemMatch) {
+ const [, dayKey, meridiem] = dayMeridiemMatch;
+ const hours = meridiem === 'am' ? 9 : 14;
+ return applyTimeWithRollover(RELATIVE_DAY_MAP[dayKey], hours, 0, now);
+ }
+
+ const dayAtTimeMatch = text.match(RELATIVE_DAY_AT_TIME_RE);
+ if (dayAtTimeMatch) {
+ const [, dayKey, timeRaw] = dayAtTimeMatch;
+ const bare = /^(tonight|tonite)$/.test(dayKey) && !/[ap]m/i.test(timeRaw);
+ const time = bare
+ ? inferHoursFromTOD('tonight', ...timeRaw.split(':'))
+ : parseTimeString(timeRaw);
+ if (!time) return null;
+ return applyTimeWithRollover(
+ RELATIVE_DAY_MAP[dayKey],
+ time.hours,
+ time.minutes,
+ now
+ );
+ }
+
+ const sameTimeMatch = text.match(RELATIVE_DAY_SAME_TIME_RE);
+ if (sameTimeMatch) {
+ const offset = RELATIVE_DAY_MAP[sameTimeMatch[1] || sameTimeMatch[2]];
+ if (offset <= 0) return null;
+ return applyTimeToDate(
+ add(startOfDay(now), { days: offset }),
+ now.getHours(),
+ now.getMinutes()
+ );
+ }
+
+ return null;
+};
+
+/** Find the given weekday in next week (not this week). */
+const nextWeekdayInNextWeek = (dayIndex, now) => {
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const date = fn(now);
+ const sameWeek =
+ startOfWeek(now, { weekStartsOn: 1 }).getTime() ===
+ startOfWeek(date, { weekStartsOn: 1 }).getTime();
+ return sameWeek ? fn(date) : date;
+};
+
+/** Handle "next friday", "next week", "next month", "next january", etc. */
+const matchNextPattern = (text, now) => {
+ const nextUnitMatch = text.match(NEXT_UNIT_RE);
+ if (nextUnitMatch) {
+ const unit = nextUnitMatch[1];
+ if (unit === 'hour') return add(now, { hours: 1 });
+ if (unit === 'minute') return add(now, { minutes: 1 });
+ if (unit === 'week') {
+ const base = startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 });
+ return applyTimeOrDefault(base, nextUnitMatch[2]);
+ }
+ const base = add(startOfDay(now), { [`${unit}s`]: 1 });
+ return applyTimeOrDefault(base, nextUnitMatch[2]);
+ }
+
+ const nextMonthMatch = text.match(NEXT_MONTH_RE);
+ if (nextMonthMatch) {
+ const monthIdx = MONTH_MAP[nextMonthMatch[1]];
+ let year = now.getFullYear();
+ if (monthIdx <= now.getMonth()) year += 1;
+ const base = new Date(year, monthIdx, 1);
+ return applyTimeOrDefault(base, nextMonthMatch[2]);
+ }
+
+ // "next monday morning", "next friday midnight" — weekday + time-of-day
+ const nextTodMatch = text.match(NEXT_WEEKDAY_TOD_RE);
+ if (nextTodMatch) {
+ const date = nextWeekdayInNextWeek(WEEKDAY_MAP[nextTodMatch[1]], now);
+ if (!date) return null;
+ const { hours, minutes } = TIME_OF_DAY_MAP[nextTodMatch[2]];
+ return applyTimeToDate(date, hours, minutes);
+ }
+
+ // "monday of next week", "next week monday", "next friday" — all with optional time
+ const weekdayMatch = text.match(NEXT_WEEKDAY_RE);
+ if (weekdayMatch) {
+ const dayName = weekdayMatch[1] || weekdayMatch[2] || weekdayMatch[3];
+ const date = nextWeekdayInNextWeek(WEEKDAY_MAP[dayName], now);
+ if (!date) return null;
+ return applyTimeOrDefault(date, weekdayMatch[4]);
+ }
+
+ return null;
+};
+
+/** Find the next occurrence of a weekday, with optional time. */
+const resolveWeekdayDate = (dayIndex, timeStr, now) => {
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ let adjusted = timeStr;
+ if (timeStr && /^\d{1,2}$/.test(timeStr.trim())) {
+ const h = parseInt(timeStr, 10);
+ if (h >= 1 && h <= 7) adjusted = `${h}pm`;
+ }
+
+ if (getDay(now) === dayIndex) {
+ const todayDate = applyTimeOrDefault(now, adjusted);
+ if (todayDate && isAfter(todayDate, now)) return todayDate;
+ }
+
+ return applyTimeOrDefault(fn(now), adjusted);
+};
+
+/** Handle "friday", "monday 3pm", "wed morning", "same time friday". */
+const matchWeekday = (text, now) => {
+ const sameTimeWeekday = text.match(SAME_TIME_WEEKDAY_RE);
+ if (sameTimeWeekday) {
+ const dayIndex = WEEKDAY_MAP[sameTimeWeekday[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const target = fn(now);
+ return applyTimeToDate(target, now.getHours(), now.getMinutes());
+ }
+
+ // "monday morning 6", "friday evening 7" — weekday + tod + bare number
+ const todTimeMatch = text.match(WEEKDAY_TOD_TIME_RE);
+ if (todTimeMatch) {
+ const dayIndex = WEEKDAY_MAP[todTimeMatch[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const timeParts = todTimeMatch[3].split(':');
+ const time = inferHoursFromTOD(todTimeMatch[2], timeParts[0], timeParts[1]);
+ if (!time) return null;
+ const target =
+ getDay(now) === dayIndex ? startOfDay(now) : startOfDay(fn(now));
+ const date = applyTimeToDate(target, time.hours, time.minutes);
+ return isAfter(date, now)
+ ? date
+ : applyTimeToDate(fn(now), time.hours, time.minutes);
+ }
+
+ // "monday morning", "friday midnight", "wednesday evening", etc.
+ const todMatch = text.match(WEEKDAY_TOD_RE);
+ if (todMatch) {
+ const dayIndex = WEEKDAY_MAP[todMatch[1]];
+ const fn = NEXT_WEEKDAY_FN[dayIndex];
+ if (!fn) return null;
+ const { hours, minutes } = TIME_OF_DAY_MAP[todMatch[2]];
+ const target =
+ getDay(now) === dayIndex ? startOfDay(now) : startOfDay(fn(now));
+ const date = applyTimeToDate(target, hours, minutes);
+ return isAfter(date, now) ? date : applyTimeToDate(fn(now), hours, minutes);
+ }
+
+ const match = text.match(WEEKDAY_TIME_RE);
+ if (!match) return null;
+
+ return resolveWeekdayDate(WEEKDAY_MAP[match[1]], match[2], now);
+};
+
+/** Handle a standalone time like "3pm", "14:30", "at 9am". */
+const matchTimeOnly = (text, now) => {
+ const match =
+ text.match(TIME_ONLY_MERIDIEM_RE) || text.match(TIME_ONLY_24H_RE);
+ if (!match) return null;
+
+ const time = parseTimeString(match[1]);
+ if (!time) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, time.hours, time.minutes),
+ now
+ );
+};
+
+/** Handle "morning", "evening 6pm", "eod", "this afternoon". */
+const matchTimeOfDay = (text, now) => {
+ const todWithTime = text.match(TOD_WITH_TIME_RE);
+ if (todWithTime) {
+ const rawTime = todWithTime[2].trim();
+ const hasMeridiem = /(?:am|pm|a\.m|p\.m)/i.test(rawTime);
+ let time;
+ if (hasMeridiem) {
+ time = parseTimeString(rawTime);
+ const range = TOD_HOUR_RANGE[todWithTime[1]];
+ if (!time) return null;
+ if (range) {
+ const h = time.hours === 0 ? 24 : time.hours;
+ if (h < range[0] || h >= range[1]) return null;
+ }
+ } else {
+ const parts = rawTime.split(':');
+ time = inferHoursFromTOD(todWithTime[1], parts[0], parts[1]);
+ }
+ if (!time) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, time.hours, time.minutes),
+ now
+ );
+ }
+
+ // "early morning" → 7am, "late evening" → 21:00, "late night" → 23:00
+ const earlyLate = text.match(EARLY_LATE_TOD_RE);
+ if (earlyLate) {
+ const tod = TIME_OF_DAY_MAP[earlyLate[2]];
+ if (!tod) return null;
+ const shift = earlyLate[1] === 'early' ? -1 : 2;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, tod.hours + shift, 0),
+ now
+ );
+ }
+
+ const match = text.match(TOD_PLAIN_RE);
+ if (!match) return null;
+
+ const key = text
+ .replace(/^(?:later|in)\s+/, '')
+ .replace(/^(?:this|the)\s+/, '')
+ .trim();
+ const tod = TIME_OF_DAY_MAP[key];
+ if (!tod) return null;
+ return ensureFutureOrNextDay(
+ applyTimeToDate(now, tod.hours, tod.minutes),
+ now
+ );
+};
+
+/** Turn month + day + optional year into a future date. */
+const resolveAbsoluteDate = (month, day, yearStr, timeStr, now) => {
+ let year = now.getFullYear();
+ if (yearStr && /next\s+year/i.test(yearStr)) {
+ year += 1;
+ } else if (yearStr) {
+ year = parseInt(yearStr, 10);
+ }
+ if (yearStr) {
+ const base = strictDate(year, month, day);
+ if (!base) return null;
+ const date = applyTimeOrDefault(base, timeStr);
+ return date && isAfter(date, now) ? date : null;
+ }
+ return futureOrNextYear(year, month, day, timeStr, now);
+};
+
+/** Handle "jan 15", "15 march", "december 2025". */
+const matchNamedDate = (text, now) => {
+ const abs = text.match(ABSOLUTE_DATE_RE);
+ if (abs) {
+ return resolveAbsoluteDate(
+ MONTH_MAP[abs[1]],
+ parseInt(abs[2], 10),
+ abs[3],
+ abs[4],
+ now
+ );
+ }
+
+ const rev = text.match(ABSOLUTE_DATE_REVERSED_RE);
+ if (rev) {
+ return resolveAbsoluteDate(
+ MONTH_MAP[rev[2]],
+ parseInt(rev[1], 10),
+ rev[3],
+ rev[4],
+ now
+ );
+ }
+
+ const my = text.match(MONTH_YEAR_RE);
+ if (my) {
+ const date = new Date(parseInt(my[2], 10), MONTH_MAP[my[1]], 1);
+ if (!isValid(date)) return null;
+ const result = applyTimeToDate(date, 9, 0);
+ return isAfter(result, now) ? result : null;
+ }
+
+ // "april first week", "first week of april", "march 2nd day", etc.
+ const mo = text.match(MONTH_ORDINAL_RE);
+ if (mo) {
+ // Groups: (1)month-A (2)ordinal-A (3)unit-A | (4)ordinal-B (5)unit-B (6)month-B (7)time
+ const monthIdx = MONTH_MAP[mo[1] || mo[6]];
+ const num = parseOrdinal(mo[2] || mo[4]);
+ const unit = mo[3] || mo[5];
+ const timeStr = mo[7];
+
+ if (!num || num < 1) return null;
+
+ if (unit === 'day') {
+ if (num > 31) return null;
+ return resolveAbsoluteDate(monthIdx, num, null, timeStr, now);
+ }
+
+ // unit === 'week'
+ if (num > 5) return null;
+ const weekStartDay = (num - 1) * 7 + 1;
+ let year = now.getFullYear();
+ if (
+ monthIdx < now.getMonth() ||
+ (monthIdx === now.getMonth() && now.getDate() > weekStartDay)
+ ) {
+ year += 1;
+ }
+ // Reject if weekStartDay overflows the month (e.g. feb fifth week = day 29 in non-leap)
+ const daysInMonth = new Date(year, monthIdx + 1, 0).getDate();
+ if (weekStartDay > daysInMonth) return null;
+ const d = new Date(year, monthIdx, weekStartDay);
+ if (!isValid(d)) return null;
+ const result = applyTimeOrDefault(d, timeStr);
+ return result && isAfter(result, now) ? result : null;
+ }
+
+ return null;
+};
+
+/** Build a date from year/month/day numbers, with optional time. */
+const buildDateWithOptionalTime = (year, month, day, timeStr) => {
+ const date = strictDate(year, month, day);
+ if (!date) return null;
+ return applyTimeOrDefault(date, timeStr);
+};
+
+// When both values are ≤ 12 (ambiguous), dayFirst controls the fallback:
+// dayFirst=false (slash M/D/Y) → month first
+// dayFirst=true (dash/dot D-M-Y, D.M.Y) → day first
+const disambiguateDayMonth = (a, b, dayFirst = false) => {
+ if (a > 12) return { day: a, month: b - 1 };
+ if (b > 12) return { month: a - 1, day: b };
+ return dayFirst ? { day: a, month: b - 1 } : { month: a - 1, day: b };
+};
+
+/** Handle formal dates: "2025-01-15", "1/15/2025", "15.01.2025". */
+const matchFormalDate = (text, now) => {
+ const ensureFuture = date => (date && isAfter(date, now) ? date : null);
+
+ const isoMatch = text.match(ISO_DATE_RE);
+ if (isoMatch) {
+ return ensureFuture(
+ buildDateWithOptionalTime(
+ parseInt(isoMatch[1], 10),
+ parseInt(isoMatch[2], 10) - 1,
+ parseInt(isoMatch[3], 10),
+ isoMatch[4]
+ )
+ );
+ }
+
+ // Slash = M/D/Y (US), Dash/Dot = D-M-Y / D.M.Y (European)
+ const formats = [
+ { re: SLASH_DATE_RE, dayFirst: false },
+ { re: DASH_DATE_RE, dayFirst: true },
+ { re: DOT_DATE_RE, dayFirst: true },
+ ];
+ let result = null;
+ formats.some(({ re, dayFirst }) => {
+ const m = text.match(re);
+ if (!m) return false;
+ const { month, day } = disambiguateDayMonth(
+ parseInt(m[1], 10),
+ parseInt(m[2], 10),
+ dayFirst
+ );
+ result = ensureFuture(
+ buildDateWithOptionalTime(parseInt(m[3], 10), month, day, m[4])
+ );
+ return true;
+ });
+ return result;
+};
+
+/** Handle "day after tomorrow", "end of week", "this weekend", "later today". */
+const matchSpecial = (text, now) => {
+ const dat = text.match(DAY_AFTER_TOMORROW_RE);
+ if (dat) return applyTimeOrDefault(add(startOfDay(now), { days: 2 }), dat[1]);
+
+ const eof = text.match(END_OF_RE);
+ if (eof) {
+ if (eof[1] === 'day') return applyTimeToDate(now, 17, 0);
+ if (eof[1] === 'week') {
+ const fri = applyTimeToDate(now, 17, 0);
+ if (getDay(now) === 5 && isAfter(fri, now)) return fri;
+ return applyTimeToDate(nextFriday(now), 17, 0);
+ }
+ if (eof[1] === 'month') {
+ const eom = applyTimeToDate(endOfMonth(now), 17, 0);
+ if (isAfter(eom, now)) return eom;
+ return applyTimeToDate(endOfMonth(add(now, { months: 1 })), 17, 0);
+ }
+ }
+
+ // "end of next week", "end of next month"
+ const eofNext = text.match(END_OF_NEXT_RE);
+ if (eofNext) {
+ if (eofNext[1] === 'week') {
+ const nextWeekStart = startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 });
+ return applyTimeToDate(add(nextWeekStart, { days: 4 }), 17, 0);
+ }
+ if (eofNext[1] === 'month') {
+ return applyTimeToDate(endOfMonth(add(now, { months: 1 })), 17, 0);
+ }
+ }
+
+ // "beginning of next week", "start of next month"
+ const sofNext = text.match(START_OF_NEXT_RE);
+ if (sofNext) {
+ if (sofNext[1] === 'week') {
+ return applyTimeToDate(
+ startOfWeek(addWeeks(now, 1), { weekStartsOn: 1 }),
+ 9,
+ 0
+ );
+ }
+ if (sofNext[1] === 'month') {
+ const nextMonth = new Date(now.getFullYear(), now.getMonth() + 1, 1);
+ return applyTimeToDate(nextMonth, 9, 0);
+ }
+ }
+
+ // "next business day", "next working day"
+ if (NEXT_BUSINESS_DAY_RE.test(text)) {
+ let d = add(startOfDay(now), { days: 1 });
+ while (isSaturday(d) || isSunday(d)) d = add(d, { days: 1 });
+ return applyTimeToDate(d, 9, 0);
+ }
+
+ if (LATER_TODAY_RE.test(text)) return add(now, { hours: 3 });
+
+ const weekendMatch = text.match(
+ /^(this weekend|weekend|next weekend)(?:\s+(?:at\s+)?(.+))?$/
+ );
+ if (weekendMatch) {
+ const isNext = weekendMatch[1] === 'next weekend';
+ const timeStr = weekendMatch[2];
+
+ if (isNext) {
+ const sat = nextSaturday(now);
+ const d = isSaturday(now) || isSunday(now) ? sat : add(sat, { weeks: 1 });
+ return applyTimeOrDefault(d, timeStr);
+ }
+
+ if (isSaturday(now)) {
+ if (!timeStr) {
+ if (now.getHours() < 10) return applyTimeToDate(now, 10, 0);
+ if (now.getHours() < 18) return add(now, { hours: 2 });
+ return applyTimeToDate(add(startOfDay(now), { days: 1 }), 10, 0);
+ }
+ const today = applyTimeOrDefault(now, timeStr);
+ if (today && isAfter(today, now)) return today;
+ return applyTimeOrDefault(add(startOfDay(now), { days: 1 }), timeStr);
+ }
+ if (isSunday(now)) {
+ if (!timeStr) {
+ if (now.getHours() < 10) return applyTimeToDate(now, 10, 0);
+ return add(now, { hours: 2 });
+ }
+ const today = applyTimeOrDefault(now, timeStr);
+ if (today && isAfter(today, now)) return today;
+ }
+ return applyTimeOrDefault(nextSaturday(now), timeStr);
+ }
+
+ return null;
+};
+
+// ─── Main Parser ────────────────────────────────────────────────────────────
+
+// Order matters — first match wins. Common patterns go first.
+// Do not reorder without running the spec.
+const MATCHERS = [
+ matchDuration, // "in 2 hours", "half day", "3h30m"
+ matchSpecial, // "end of week", "later today", "this weekend"
+ matchRelativeDay, // "tomorrow 3pm", "tonight", "today morning"
+ matchNextPattern, // "next friday", "next week", "next month"
+ matchTimeOfDay, // "morning", "evening 6pm", "eod"
+ matchWeekday, // "friday", "monday 3pm", "wed morning"
+ matchTimeOnly, // "3pm", "14:30" (must be after weekday to avoid conflicts)
+ matchNamedDate, // "jan 15", "march 20 next year"
+ matchFormalDate, // "2025-01-15", "1/15/2025" (least common, last)
+];
+
+/**
+ * Parse free-form text into a future date.
+ * Returns { date, unix } or null. Only returns dates after referenceDate.
+ *
+ * @param {string} text - user input like "in 2 hours" or "next friday 3pm"
+ * @param {Date} [referenceDate] - treat as "now" (defaults to current time)
+ * @returns {{ date: Date, unix: number } | null}
+ */
+export const parseDateFromText = (text, referenceDate = new Date()) => {
+ if (!text || typeof text !== 'string') return null;
+
+ const normalized = stripNoise(sanitize(text));
+ if (!normalized) return null;
+
+ const maxDate = add(referenceDate, { years: 999 });
+
+ const isValidFuture = d =>
+ d && isValid(d) && isAfter(d, referenceDate) && !isBefore(maxDate, d);
+
+ let result = null;
+ MATCHERS.some(matcher => {
+ const d = matcher(normalized, referenceDate);
+ if (isValidFuture(d)) {
+ result = { date: d, unix: getUnixTime(d) };
+ return true;
+ }
+ return false;
+ });
+
+ return result;
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js b/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js
new file mode 100644
index 000000000..2efd77d74
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/suggestions.js
@@ -0,0 +1,101 @@
+/**
+ * Builds autocomplete suggestions as the user types a snooze date.
+ * Matches partial input against known phrases and ranks them by closeness.
+ */
+
+import {
+ UNIT_MAP,
+ WEEKDAY_MAP,
+ TIME_OF_DAY_MAP,
+ RELATIVE_DAY_MAP,
+ WORD_NUMBER_MAP,
+ MONTH_MAP,
+ HALF_UNIT_DURATIONS,
+} from './tokenMaps';
+
+const SUGGESTION_UNITS = [...new Set(Object.values(UNIT_MAP))].filter(
+ u => u !== 'seconds'
+);
+
+const FULL_WEEKDAYS = Object.keys(WEEKDAY_MAP).filter(k => k.length > 3);
+const TOD_NAMES = Object.keys(TIME_OF_DAY_MAP).filter(k => !k.includes(' '));
+const MONTH_NAMES_LONG = Object.keys(MONTH_MAP).filter(k => k.length > 3);
+
+const ALL_SUGGESTION_PHRASES = [
+ ...Object.keys(RELATIVE_DAY_MAP),
+ ...FULL_WEEKDAYS,
+ ...TOD_NAMES,
+ 'next week',
+ 'next month',
+ 'this weekend',
+ 'next weekend',
+ 'day after tomorrow',
+ 'later today',
+ 'end of day',
+ 'end of week',
+ 'end of month',
+ ...['morning', 'afternoon', 'evening'].map(tod => `tomorrow ${tod}`),
+ ...FULL_WEEKDAYS.map(wd => `next ${wd}`),
+ ...FULL_WEEKDAYS.map(wd => `this ${wd}`),
+ ...FULL_WEEKDAYS.flatMap(wd => TOD_NAMES.map(tod => `${wd} ${tod}`)),
+ ...FULL_WEEKDAYS.flatMap(wd => TOD_NAMES.map(tod => `next ${wd} ${tod}`)),
+ ...MONTH_NAMES_LONG.map(m => `${m} 1`),
+];
+
+/** Check how closely the input matches a candidate. -1 = no match, 0 = exact prefix, N = extra words needed. */
+const prefixMatchScore = (candidate, input) => {
+ if (candidate === input) return -1;
+ if (candidate.startsWith(input)) return 0;
+ const inputWords = input.split(' ');
+ const candidateWords = candidate.split(' ');
+ const lastIdx = inputWords.reduce((prev, iw) => {
+ if (prev === -2) return -2;
+ const idx = candidateWords.findIndex(
+ (cw, ci) => ci > prev && cw.startsWith(iw)
+ );
+ return idx === -1 ? -2 : idx;
+ }, -1);
+ if (lastIdx === -2) return -1;
+ return candidateWords.length - inputWords.length;
+};
+
+export const MAX_SUGGESTIONS = 5;
+
+/** Turn user input into a ranked list of suggestion strings to try parsing. */
+export const buildSuggestionCandidates = text => {
+ if (!text) return [];
+
+ if (/^\d/.test(text)) {
+ const num = text.match(/^\d+(?:\.5)?/)[0];
+ const candidates = SUGGESTION_UNITS.map(u => `${num} ${u}`);
+ const trimmed = text.replace(/\s+/g, ' ').trim();
+ const spaced = trimmed.replace(/(\d)([a-z])/i, '$1 $2');
+ return spaced.length > num.length
+ ? candidates.filter(c => c.startsWith(spaced))
+ : candidates;
+ }
+
+ if (text.length >= 2 && 'half'.startsWith(text)) {
+ return Object.keys(HALF_UNIT_DURATIONS).map(u => `half ${u}`);
+ }
+
+ const wordNum = WORD_NUMBER_MAP[text];
+ if (wordNum != null && wordNum >= 1) {
+ return SUGGESTION_UNITS.map(u => `${wordNum} ${u}`);
+ }
+
+ const scored = ALL_SUGGESTION_PHRASES.reduce((acc, candidate) => {
+ const score = prefixMatchScore(candidate, text);
+ if (score >= 0) acc.push({ candidate, score });
+ return acc;
+ }, []);
+ scored.sort((a, b) => a.score - b.score);
+ const seen = new Set();
+ return scored.reduce((acc, { candidate }) => {
+ if (acc.length < MAX_SUGGESTIONS * 3 && !seen.has(candidate)) {
+ seen.add(candidate);
+ acc.push(candidate);
+ }
+ return acc;
+ }, []);
+};
diff --git a/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js b/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js
new file mode 100644
index 000000000..0397a9483
--- /dev/null
+++ b/app/javascript/dashboard/helper/snoozeDateParser/tokenMaps.js
@@ -0,0 +1,395 @@
+/**
+ * Shared lookup tables and helper functions used by the parser,
+ * suggestions, and localization modules.
+ */
+
+import {
+ add,
+ set,
+ isValid,
+ isAfter,
+ nextMonday,
+ nextTuesday,
+ nextWednesday,
+ nextThursday,
+ nextFriday,
+ nextSaturday,
+ nextSunday,
+} from 'date-fns';
+
+// ─── Token Maps ──────────────────────────────────────────────────────────────
+// All keys are lowercase. Short forms and full names both work.
+
+/** Weekday name or short form → day index (0 = Sunday). */
+export const WEEKDAY_MAP = {
+ sunday: 0,
+ sun: 0,
+ monday: 1,
+ mon: 1,
+ tuesday: 2,
+ tue: 2,
+ tues: 2,
+ wednesday: 3,
+ wed: 3,
+ thursday: 4,
+ thu: 4,
+ thur: 4,
+ thurs: 4,
+ friday: 5,
+ fri: 5,
+ saturday: 6,
+ sat: 6,
+};
+
+/** Month name or short form → month index (0 = January). */
+export const MONTH_MAP = {
+ january: 0,
+ jan: 0,
+ february: 1,
+ feb: 1,
+ march: 2,
+ mar: 2,
+ april: 3,
+ apr: 3,
+ may: 4,
+ june: 5,
+ jun: 5,
+ july: 6,
+ jul: 6,
+ august: 7,
+ aug: 7,
+ september: 8,
+ sep: 8,
+ sept: 8,
+ october: 9,
+ oct: 9,
+ november: 10,
+ nov: 10,
+ december: 11,
+ dec: 11,
+};
+
+/** Words like "today" or "tomorrow" → how many days from now. */
+export const RELATIVE_DAY_MAP = {
+ today: 0,
+ tonight: 0,
+ tonite: 0,
+ tomorrow: 1,
+ tmr: 1,
+ tmrw: 1,
+};
+
+/** Unit shorthand → full unit name used by date-fns. */
+export const UNIT_MAP = {
+ m: 'minutes',
+ min: 'minutes',
+ mins: 'minutes',
+ minute: 'minutes',
+ minutes: 'minutes',
+ h: 'hours',
+ hr: 'hours',
+ hrs: 'hours',
+ hour: 'hours',
+ hours: 'hours',
+ d: 'days',
+ day: 'days',
+ days: 'days',
+ w: 'weeks',
+ wk: 'weeks',
+ wks: 'weeks',
+ week: 'weeks',
+ weeks: 'weeks',
+ mo: 'months',
+ month: 'months',
+ months: 'months',
+ y: 'years',
+ yr: 'years',
+ yrs: 'years',
+ year: 'years',
+ years: 'years',
+};
+
+/** English number words → their numeric value. */
+export const WORD_NUMBER_MAP = {
+ a: 1,
+ an: 1,
+ one: 1,
+ couple: 2,
+ few: 3,
+ two: 2,
+ three: 3,
+ four: 4,
+ five: 5,
+ six: 6,
+ seven: 7,
+ eight: 8,
+ nine: 9,
+ ten: 10,
+ eleven: 11,
+ twelve: 12,
+ thirteen: 13,
+ fourteen: 14,
+ fifteen: 15,
+ sixteen: 16,
+ seventeen: 17,
+ eighteen: 18,
+ nineteen: 19,
+ twenty: 20,
+ thirty: 30,
+ forty: 40,
+ fifty: 50,
+ sixty: 60,
+ ninety: 90,
+ half: 0.5,
+};
+
+/** Day index → the date-fns function that finds the next occurrence. */
+export const NEXT_WEEKDAY_FN = {
+ 0: nextSunday,
+ 1: nextMonday,
+ 2: nextTuesday,
+ 3: nextWednesday,
+ 4: nextThursday,
+ 5: nextFriday,
+ 6: nextSaturday,
+};
+
+/** Time-of-day label → default hour and minute. */
+export const TIME_OF_DAY_MAP = {
+ morning: { hours: 9, minutes: 0 },
+ noon: { hours: 12, minutes: 0 },
+ afternoon: { hours: 14, minutes: 0 },
+ evening: { hours: 18, minutes: 0 },
+ night: { hours: 20, minutes: 0 },
+ tonight: { hours: 20, minutes: 0 },
+ midnight: { hours: 0, minutes: 0 },
+ eod: { hours: 17, minutes: 0 },
+ 'end of day': { hours: 17, minutes: 0 },
+ 'end of the day': { hours: 17, minutes: 0 },
+};
+
+/** Allowed hour range per label — used to pick am or pm when not specified. */
+export const TOD_HOUR_RANGE = {
+ morning: [4, 12],
+ noon: [11, 13],
+ afternoon: [12, 18],
+ evening: [16, 22],
+ night: [18, 24],
+ tonight: [18, 24],
+ midnight: [23, 25],
+};
+
+/** What "half hour", "half day", etc. actually mean in date-fns terms. */
+export const HALF_UNIT_DURATIONS = {
+ hour: { minutes: 30 },
+ day: { hours: 12 },
+ week: { days: 3, hours: 12 },
+ month: { days: 15 },
+ year: { months: 6 },
+};
+
+const FRACTIONAL_CONVERT = {
+ hours: { unit: 'minutes', factor: 60 },
+ days: { unit: 'hours', factor: 24 },
+ weeks: { unit: 'days', factor: 7 },
+ months: { unit: 'days', factor: 30 },
+ years: { unit: 'months', factor: 12 },
+};
+
+// ─── Unicode / Normalization ────────────────────────────────────────────────
+// Turn non-ASCII digits and punctuation into plain ASCII so the
+// parser only has to deal with standard characters.
+
+const UNICODE_DIGIT_RANGES = [
+ [0x30, 0x39],
+ [0x660, 0x669], // Arabic-Indic
+ [0x6f0, 0x6f9], // Eastern Arabic-Indic
+ [0x966, 0x96f], // Devanagari
+ [0x9e6, 0x9ef], // Bengali
+ [0xa66, 0xa6f], // Gurmukhi
+ [0xae6, 0xaef], // Gujarati
+ [0xb66, 0xb6f], // Oriya
+ [0xbe6, 0xbef], // Tamil
+ [0xc66, 0xc6f], // Telugu
+ [0xce6, 0xcef], // Kannada
+ [0xd66, 0xd6f], // Malayalam
+];
+
+const toAsciiDigit = char => {
+ const code = char.codePointAt(0);
+ const range = UNICODE_DIGIT_RANGES.find(
+ ([start, end]) => code >= start && code <= end
+ );
+ if (!range) return char;
+ return String(code - range[0]);
+};
+
+/** Turn non-ASCII digits (Arabic, Devanagari, etc.) into 0-9. */
+export const normalizeDigits = text => text.replace(/\p{Nd}/gu, toAsciiDigit);
+
+const ARABIC_PUNCT_MAP = {
+ '\u061f': '?',
+ '\u060c': ',',
+ '\u061b': ';',
+ '\u066b': '.',
+};
+
+const NOISE_RE =
+ /^(?:(?:can|could|will|would)\s+you\s+)?(?:(?:please|pls|plz|kindly)\s+)?(?:(?:snooze|remind(?:\s+me)?|set(?:\s+(?:a|the))?(?:\s+(?:reminder|deadline|snooze|timer))?|add(?:\s+(?:a|the))?(?:\s+(?:reminder|deadline|snooze))?|schedule|postpone|defer|delay|push)(?:\s+(?:it|this))?\s+)?(?:(?:on|to|for|at|until|till|by|from|after|within)\s+)?/;
+
+const APPROX_RE = /^(?:approx(?:imately)?|around|about|roughly|~)\s+/;
+
+/** Clean up raw input: lowercase, remove punctuation, collapse spaces. */
+export const sanitize = text =>
+ normalizeDigits(
+ text
+ .normalize('NFKC')
+ .toLowerCase()
+ .replace(/[\u200f\u200e\u066c\u0640]/g, '')
+ .replace(/[\u064b-\u065f]/g, '')
+ .replace(/\u00a0/g, ' ')
+ .replace(/[\u061f\u060c\u061b\u066b]/g, c => ARABIC_PUNCT_MAP[c])
+ )
+ .replace(/[,!?;]+/g, ' ')
+ .replace(/\.+$/g, '')
+ .replace(/\s+/g, ' ')
+ .trim();
+
+/** Strip filler words like "please snooze for" and fix typos like "tommorow". */
+export const stripNoise = text => {
+ let r = text
+ .replace(/\ba\s+fortnight\b/g, '2 weeks')
+ .replace(/\bfortnight\b/g, '2 weeks')
+ .replace(NOISE_RE, '')
+ .replace(APPROX_RE, '')
+ .replace(/^the\s+/, '')
+ .replace(/\bnxt\b/g, 'next')
+ .replace(/\ba\s+couple\s+of\b/g, 'couple')
+ .replace(/\bcouple\s+of\b/g, 'couple')
+ .replace(/\ba\s+couple\b/g, 'couple')
+ .replace(/\ba\s+few\b/g, 'few')
+ .replace(
+ /\b(\d+)\s*(?:h|hr|hours?)[\s]*(\d+)\s*(?:m|min|minutes?)\b/g,
+ (_, h, m) =>
+ `${h} ${h === '1' ? 'hour' : 'hours'} ${m} ${m === '1' ? 'minute' : 'minutes'}`
+ )
+ .replace(/\b(\d+)h\b/g, (_, h) => `${h} ${h === '1' ? 'hour' : 'hours'}`)
+ .replace(
+ /\b(\d+)m\b/g,
+ (_, m) => `${m} ${m === '1' ? 'minute' : 'minutes'}`
+ )
+ .replace(/\btomm?orow\b/g, 'tomorrow')
+ .replace(/\s+later$/, '')
+ .trim();
+ // bare unit without number: "month later" → "1 month", "week" stays
+ r = r.replace(/^(minutes?|hours?|days?|weeks?|months?|years?)$/, '1 $1');
+ return r;
+};
+
+// ─── Utility Functions ──────────────────────────────────────────────────────
+
+/** Turn a string into a number. Works with digits ("5") and words ("five"). */
+export const parseNumber = str => {
+ if (!str) return null;
+ const lower = normalizeDigits(str.toLowerCase().trim());
+ if (WORD_NUMBER_MAP[lower] !== undefined) return WORD_NUMBER_MAP[lower];
+ const num = Number(lower);
+ return Number.isNaN(num) ? null : num;
+};
+
+/** Set the time on a date, clearing seconds and milliseconds. */
+export const applyTimeToDate = (date, hours, minutes = 0) =>
+ set(date, { hours, minutes, seconds: 0, milliseconds: 0 });
+
+/** Parse "3pm", "14:30", or "2:00am" into { hours, minutes }. Returns null if invalid. */
+export const parseTimeString = timeStr => {
+ if (!timeStr) return null;
+ const match = timeStr
+ .toLowerCase()
+ .replace(/\s+/g, '')
+ .match(/^(\d{1,2})(?::(\d{2}))?\s*(am|pm|a\.m\.?|p\.m\.?)?$/);
+ if (!match) return null;
+
+ const raw = parseInt(match[1], 10);
+ const minutes = match[2] ? parseInt(match[2], 10) : 0;
+ const meridiem = match[3]?.replace(/\./g, '');
+ if (meridiem && (raw < 1 || raw > 12)) return null;
+
+ const toHours = (h, m) => {
+ if (m === 'pm' && h < 12) return h + 12;
+ if (m === 'am' && h === 12) return 0;
+ return h;
+ };
+ const hours = toHours(raw, meridiem);
+ if (hours > 23 || minutes > 59) return null;
+ return { hours, minutes };
+};
+
+/** Apply a time string to a date. Falls back to 9 AM if no time is given. */
+export const applyTimeOrDefault = (date, timeStr, defaultHours = 9) => {
+ if (timeStr) {
+ const time = parseTimeString(timeStr);
+ if (!time) return null;
+ return applyTimeToDate(date, time.hours, time.minutes);
+ }
+ return applyTimeToDate(date, defaultHours, 0);
+};
+
+/** Build a Date only if the day actually exists (e.g. rejects Feb 30). */
+export const strictDate = (year, month, day) => {
+ const date = new Date(year, month, day);
+ if (
+ !isValid(date) ||
+ date.getFullYear() !== year ||
+ date.getMonth() !== month ||
+ date.getDate() !== day
+ )
+ return null;
+ return date;
+};
+
+/** Try up to 8 years ahead to find a valid future date (handles Feb 29 leap years). */
+export const futureOrNextYear = (year, month, day, timeStr, now) => {
+ for (let i = 0; i < 9; i += 1) {
+ const base = strictDate(year + i, month, day);
+ if (base) {
+ const date = applyTimeOrDefault(base, timeStr);
+ if (!date) return null;
+ if (isAfter(date, now)) return date;
+ }
+ }
+ return null;
+};
+
+/** If the date is already past, push it to the next day. */
+export const ensureFutureOrNextDay = (date, now) =>
+ isAfter(date, now) ? date : add(date, { days: 1 });
+
+/** Figure out am/pm from context: "morning 6" → 6am, "evening 6" → 6pm. */
+export const inferHoursFromTOD = (todLabel, rawHour, rawMinutes) => {
+ const h = parseInt(rawHour, 10);
+ const m = rawMinutes ? parseInt(rawMinutes, 10) : 0;
+ if (Number.isNaN(h) || h < 1 || h > 12 || m > 59) return null;
+ const range = TOD_HOUR_RANGE[todLabel];
+ if (!range) return { hours: h, minutes: m };
+ // Try both am and pm interpretations, pick the one in range
+ const am = h === 12 ? 0 : h;
+ const pm = h === 12 ? 12 : h + 12;
+ const inRange = v => v >= range[0] && v < range[1];
+ if (inRange(am)) return { hours: am, minutes: m };
+ if (inRange(pm)) return { hours: pm, minutes: m };
+ const mid = (range[0] + range[1]) / 2;
+ return {
+ hours: Math.abs(am - mid) <= Math.abs(pm - mid) ? am : pm,
+ minutes: m,
+ };
+};
+
+/** Add a duration that might be fractional, e.g. 1.5 hours becomes 90 minutes. */
+export const addFractionalSafe = (date, unit, amount) => {
+ if (Number.isInteger(amount)) return add(date, { [unit]: amount });
+ if (amount % 1 !== 0.5) return null;
+ const conv = FRACTIONAL_CONVERT[unit];
+ if (conv) return add(date, { [conv.unit]: Math.round(amount * conv.factor) });
+ return add(date, { [unit]: Math.round(amount) });
+};
diff --git a/app/javascript/dashboard/helper/snoozeHelpers.js b/app/javascript/dashboard/helper/snoozeHelpers.js
index b758a69f4..73f18e58f 100644
--- a/app/javascript/dashboard/helper/snoozeHelpers.js
+++ b/app/javascript/dashboard/helper/snoozeHelpers.js
@@ -7,11 +7,17 @@ import {
startOfMonth,
isMonday,
isToday,
+ isSameYear,
setHours,
setMinutes,
setSeconds,
} from 'date-fns';
import wootConstants from 'dashboard/constants/globals';
+import {
+ generateDateSuggestions,
+ parseDateFromText,
+} from 'dashboard/helper/snoozeDateParser';
+import { UNIT_MAP } from 'dashboard/helper/snoozeDateParser/tokenMaps';
const SNOOZE_OPTIONS = wootConstants.SNOOZE_OPTIONS;
@@ -33,36 +39,113 @@ export const findStartOfNextMonth = currentDate => {
});
};
-export const findNextDay = currentDate => {
- return add(currentDate, { days: 1 });
-};
+export const findNextDay = currentDate => add(currentDate, { days: 1 });
-export const setHoursToNine = date => {
- return setSeconds(setMinutes(setHours(date, 9), 0), 0);
+export const setHoursToNine = date =>
+ setSeconds(setMinutes(setHours(date, 9), 0), 0);
+
+const SNOOZE_RESOLVERS = {
+ [SNOOZE_OPTIONS.AN_HOUR_FROM_NOW]: d => add(d, { hours: 1 }),
+ [SNOOZE_OPTIONS.UNTIL_TOMORROW]: d => setHoursToNine(findNextDay(d)),
+ [SNOOZE_OPTIONS.UNTIL_NEXT_WEEK]: d => setHoursToNine(findStartOfNextWeek(d)),
+ [SNOOZE_OPTIONS.UNTIL_NEXT_MONTH]: d =>
+ setHoursToNine(findStartOfNextMonth(d)),
};
export const findSnoozeTime = (snoozeType, currentDate = new Date()) => {
- let parsedDate = null;
- if (snoozeType === SNOOZE_OPTIONS.AN_HOUR_FROM_NOW) {
- parsedDate = add(currentDate, { hours: 1 });
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_TOMORROW) {
- parsedDate = setHoursToNine(findNextDay(currentDate));
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_NEXT_WEEK) {
- parsedDate = setHoursToNine(findStartOfNextWeek(currentDate));
- } else if (snoozeType === SNOOZE_OPTIONS.UNTIL_NEXT_MONTH) {
- parsedDate = setHoursToNine(findStartOfNextMonth(currentDate));
- }
-
- return parsedDate ? getUnixTime(parsedDate) : null;
+ const resolve = SNOOZE_RESOLVERS[snoozeType];
+ return resolve ? getUnixTime(resolve(currentDate)) : null;
};
+
export const snoozedReopenTime = snoozedUntil => {
- if (!snoozedUntil) {
- return null;
- }
+ if (!snoozedUntil) return null;
const date = new Date(snoozedUntil);
+ if (isToday(date)) return format(date, 'h.mmaaa');
+ if (!isSameYear(date, new Date())) return format(date, 'd MMM yyyy, h.mmaaa');
+ return format(date, 'd MMM, h.mmaaa');
+};
- if (isToday(date)) {
- return format(date, 'h.mmaaa');
+export const snoozedReopenTimeToTimestamp = snoozedUntil =>
+ snoozedUntil ? getUnixTime(new Date(snoozedUntil)) : null;
+
+const formatSnoozeDate = (snoozeDate, currentDate, locale = 'en') => {
+ const sameYear = isSameYear(snoozeDate, currentDate);
+ try {
+ const opts = {
+ weekday: 'short',
+ day: 'numeric',
+ month: 'short',
+ hour: 'numeric',
+ minute: '2-digit',
+ hour12: true,
+ ...(sameYear ? {} : { year: 'numeric' }),
+ };
+ return new Intl.DateTimeFormat(locale, opts).format(snoozeDate);
+ } catch {
+ return sameYear
+ ? format(snoozeDate, 'EEE, d MMM, h:mm a')
+ : format(snoozeDate, 'EEE, d MMM yyyy, h:mm a');
}
- return snoozedUntil ? format(date, 'd MMM, h.mmaaa') : null;
+};
+
+const expandUnit = (num, abbr) => {
+ const full = UNIT_MAP[abbr];
+ if (!full) return `${num} ${abbr}`;
+ return parseFloat(num) === 1
+ ? `${num} ${full.replace(/s$/, '')}`
+ : `${num} ${full}`;
+};
+
+const capitalizeLabel = text => {
+ const expanded = text
+ .replace(
+ /^(\d+)h(\d+)m(?:in)?$/i,
+ (_, h, m) => `${expandUnit(h, 'h')} ${expandUnit(m, 'm')}`
+ )
+ .replace(/^(\d+(?:\.5)?)\s*([a-z]+)$/i, (_, n, u) =>
+ UNIT_MAP[u.toLowerCase()] ? expandUnit(n, u.toLowerCase()) : `${n} ${u}`
+ );
+ return expanded.replace(/^\w/, c => c.toUpperCase());
+};
+
+export const generateSnoozeSuggestions = (
+ searchText,
+ currentDate = new Date(),
+ { translations, locale } = {}
+) => {
+ const suggestions = generateDateSuggestions(searchText, currentDate, {
+ translations,
+ locale,
+ });
+ return suggestions.map(s => ({
+ date: s.date,
+ unixTime: s.unix,
+ query: s.query,
+ label: capitalizeLabel(s.label),
+ formattedDate: formatSnoozeDate(s.date, currentDate, locale),
+ resolve: () => parseDateFromText(s.query)?.unix ?? s.unix,
+ }));
+};
+
+const UNIT_SHORT = {
+ minute: 'm',
+ minutes: 'm',
+ hour: 'h',
+ hours: 'h',
+ day: 'd',
+ days: 'd',
+ month: 'mo',
+ months: 'mo',
+ year: 'y',
+ years: 'y',
+};
+
+export const shortenSnoozeTime = snoozedUntil => {
+ if (!snoozedUntil) return null;
+ return snoozedUntil
+ .replace(/^in\s+/i, '')
+ .replace(
+ /\s(minute|hour|day|month|year)s?\b/gi,
+ (match, unit) => UNIT_SHORT[unit.toLowerCase()] || match
+ );
};
diff --git a/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js b/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js
index d96b643b4..84ab8c8e0 100644
--- a/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js
+++ b/app/javascript/dashboard/helper/specs/CacheHelper/DataManger.spec.js
@@ -4,7 +4,7 @@ describe('DataManager', () => {
const accountId = 'test-account';
let dataManager;
- beforeAll(async () => {
+ beforeEach(async () => {
dataManager = new DataManager(accountId);
await dataManager.initDb();
});
diff --git a/app/javascript/dashboard/helper/specs/DOMHelpers.spec.js b/app/javascript/dashboard/helper/specs/DOMHelpers.spec.js
new file mode 100644
index 000000000..fb3f01c45
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/DOMHelpers.spec.js
@@ -0,0 +1,95 @@
+import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
+import { loadScript } from '../DOMHelpers';
+import { JSDOM } from 'jsdom';
+
+describe('loadScript', () => {
+ let dom;
+ let window;
+ let document;
+
+ beforeEach(() => {
+ dom = new JSDOM('', {
+ url: 'http://localhost',
+ });
+ window = dom.window;
+ document = window.document;
+ global.document = document;
+ });
+
+ afterEach(() => {
+ vi.restoreAllMocks();
+ delete global.document;
+ });
+
+ it('should load a script successfully', async () => {
+ const src = 'https://example.com/script.js';
+ const loadPromise = loadScript(src, {});
+
+ // Simulate successful script load
+ setTimeout(() => {
+ const script = document.querySelector(`script[src="${src}"]`);
+ if (script) {
+ script.dispatchEvent(new window.Event('load'));
+ }
+ }, 0);
+
+ const script = await loadPromise;
+
+ expect(script).toBeTruthy();
+ expect(script.getAttribute('src')).toBe(src);
+ expect(script.getAttribute('data-loaded')).toBe('true');
+ });
+
+ it('should not load a script if document is not available', async () => {
+ delete global.document;
+ const result = await loadScript('https://example.com/script.js', {});
+ expect(result).toBe(false);
+ });
+
+ it('should use an existing script if already present', async () => {
+ const src = 'https://example.com/existing-script.js';
+ const existingScript = document.createElement('script');
+ existingScript.src = src;
+ existingScript.setAttribute('data-loaded', 'true');
+ document.head.appendChild(existingScript);
+
+ const script = await loadScript(src, {});
+
+ expect(script).toBe(existingScript);
+ });
+
+ it('should set custom attributes on the script element', async () => {
+ const src = 'https://example.com/custom-script.js';
+ const options = {
+ type: 'module',
+ async: false,
+ defer: true,
+ crossOrigin: 'anonymous',
+ noModule: true,
+ referrerPolicy: 'origin',
+ id: 'custom-script',
+ attrs: { 'data-custom': 'value' },
+ };
+
+ const loadPromise = loadScript(src, options);
+
+ // Simulate successful script load
+ setTimeout(() => {
+ const script = document.querySelector(`script[src="${src}"]`);
+ if (script) {
+ script.dispatchEvent(new window.Event('load'));
+ }
+ }, 0);
+
+ const script = await loadPromise;
+
+ expect(script.type).toBe('module');
+ expect(script.async).toBe(false);
+ expect(script.defer).toBe(true);
+ expect(script.crossOrigin).toBe('anonymous');
+ expect(script.noModule).toBe(true);
+ expect(script.referrerPolicy).toBe('origin');
+ expect(script.id).toBe('custom-script');
+ expect(script.getAttribute('data-custom')).toBe('value');
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/ReconnectService.spec.js b/app/javascript/dashboard/helper/specs/ReconnectService.spec.js
new file mode 100644
index 000000000..60bd825ee
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/ReconnectService.spec.js
@@ -0,0 +1,349 @@
+import { emitter } from 'shared/helpers/mitt';
+import { BUS_EVENTS } from 'shared/constants/busEvents';
+import { differenceInSeconds } from 'date-fns';
+import {
+ isAConversationRoute,
+ isAInboxViewRoute,
+ isNotificationRoute,
+} from 'dashboard/helper/routeHelpers';
+import ReconnectService from 'dashboard/helper/ReconnectService';
+
+vi.mock('shared/helpers/mitt', () => ({
+ emitter: {
+ on: vi.fn(),
+ off: vi.fn(),
+ emit: vi.fn(),
+ },
+}));
+
+vi.mock('date-fns', () => ({
+ differenceInSeconds: vi.fn(),
+}));
+
+vi.mock('dashboard/helper/routeHelpers', () => ({
+ isAConversationRoute: vi.fn(),
+ isAInboxViewRoute: vi.fn(),
+ isNotificationRoute: vi.fn(),
+}));
+
+const storeMock = {
+ dispatch: vi.fn(),
+ getters: {
+ getAppliedConversationFiltersQuery: [],
+ 'customViews/getActiveConversationFolder': { query: {} },
+ 'notifications/getNotificationFilters': {},
+ },
+};
+
+const routerMock = {
+ currentRoute: {
+ value: {
+ name: '',
+ params: { conversation_id: null },
+ },
+ },
+};
+
+describe('ReconnectService', () => {
+ let reconnectService;
+
+ beforeEach(() => {
+ window.addEventListener = vi.fn();
+ window.removeEventListener = vi.fn();
+ Object.defineProperty(window, 'location', {
+ configurable: true,
+ value: { reload: vi.fn() },
+ });
+ reconnectService = new ReconnectService(storeMock, routerMock);
+ });
+
+ afterEach(() => {
+ vi.clearAllMocks();
+ });
+
+ describe('constructor', () => {
+ it('should initialize with store, router, and setup event listeners', () => {
+ expect(reconnectService.store).toBe(storeMock);
+ expect(reconnectService.router).toBe(routerMock);
+ expect(window.addEventListener).toHaveBeenCalledWith(
+ 'online',
+ reconnectService.handleOnlineEvent
+ );
+ expect(emitter.on).toHaveBeenCalledWith(
+ BUS_EVENTS.WEBSOCKET_RECONNECT,
+ reconnectService.onReconnect
+ );
+ expect(emitter.on).toHaveBeenCalledWith(
+ BUS_EVENTS.WEBSOCKET_DISCONNECT,
+ reconnectService.onDisconnect
+ );
+ });
+ });
+
+ describe('disconnect', () => {
+ it('should remove event listeners', () => {
+ reconnectService.disconnect();
+ expect(window.removeEventListener).toHaveBeenCalledWith(
+ 'online',
+ reconnectService.handleOnlineEvent
+ );
+ expect(emitter.off).toHaveBeenCalledWith(
+ BUS_EVENTS.WEBSOCKET_RECONNECT,
+ reconnectService.onReconnect
+ );
+ expect(emitter.off).toHaveBeenCalledWith(
+ BUS_EVENTS.WEBSOCKET_DISCONNECT,
+ reconnectService.onDisconnect
+ );
+ });
+ });
+
+ describe('getSecondsSinceDisconnect', () => {
+ it('should return 0 if disconnectTime is null', () => {
+ reconnectService.disconnectTime = null;
+ expect(reconnectService.getSecondsSinceDisconnect()).toBe(0);
+ });
+
+ it('should return the number of seconds + threshold since disconnect', () => {
+ reconnectService.disconnectTime = new Date();
+ differenceInSeconds.mockReturnValue(100);
+ expect(reconnectService.getSecondsSinceDisconnect()).toBe(100);
+ });
+ });
+
+ describe('handleOnlineEvent', () => {
+ it('should reload the page if disconnected for more than 3 hours', () => {
+ reconnectService.getSecondsSinceDisconnect = vi
+ .fn()
+ .mockReturnValue(10801);
+ reconnectService.handleOnlineEvent();
+ expect(window.location.reload).toHaveBeenCalled();
+ });
+
+ it('should not reload the page if disconnected for less than 3 hours', () => {
+ reconnectService.getSecondsSinceDisconnect = vi
+ .fn()
+ .mockReturnValue(10799);
+ reconnectService.handleOnlineEvent();
+ expect(window.location.reload).not.toHaveBeenCalled();
+ });
+ });
+
+ describe('fetchConversations', () => {
+ it('should update the filters with disconnected time and the threshold', async () => {
+ reconnectService.getSecondsSinceDisconnect = vi.fn().mockReturnValue(100);
+ await reconnectService.fetchConversations();
+ expect(storeMock.dispatch).toHaveBeenCalledWith('updateChatListFilters', {
+ page: null,
+ updatedWithin: 115,
+ });
+ });
+
+ it('should dispatch updateChatListFilters and fetchAllConversations', async () => {
+ reconnectService.getSecondsSinceDisconnect = vi.fn().mockReturnValue(100);
+ await reconnectService.fetchConversations();
+ expect(storeMock.dispatch).toHaveBeenCalledWith('updateChatListFilters', {
+ page: null,
+ updatedWithin: 115,
+ });
+ expect(storeMock.dispatch).toHaveBeenCalledWith('fetchAllConversations');
+ });
+
+ it('should dispatch updateChatListFilters and reset updatedWithin', async () => {
+ reconnectService.getSecondsSinceDisconnect = vi.fn().mockReturnValue(100);
+ await reconnectService.fetchConversations();
+ expect(storeMock.dispatch).toHaveBeenCalledWith('updateChatListFilters', {
+ updatedWithin: null,
+ });
+ });
+ });
+
+ describe('fetchFilteredOrSavedConversations', () => {
+ it('should dispatch fetchFilteredConversations', async () => {
+ const payload = { test: 'data' };
+ await reconnectService.fetchFilteredOrSavedConversations(payload);
+ expect(storeMock.dispatch).toHaveBeenCalledWith(
+ 'fetchFilteredConversations',
+ { queryData: payload, page: 1 }
+ );
+ });
+ });
+
+ describe('fetchConversationsOnReconnect', () => {
+ it('should fetch filtered or saved conversations if query exists', async () => {
+ storeMock.getters.getAppliedConversationFiltersQuery = {
+ payload: [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: ['open'],
+ },
+ ],
+ };
+ const spy = vi.spyOn(
+ reconnectService,
+ 'fetchFilteredOrSavedConversations'
+ );
+
+ await reconnectService.fetchConversationsOnReconnect();
+
+ expect(spy).toHaveBeenCalledWith(
+ storeMock.getters.getAppliedConversationFiltersQuery
+ );
+ });
+
+ it('should fetch all conversations if no query exists', async () => {
+ storeMock.getters.getAppliedConversationFiltersQuery = [];
+ storeMock.getters['customViews/getActiveConversationFolder'] = {
+ query: null,
+ };
+
+ const spy = vi.spyOn(reconnectService, 'fetchConversations');
+
+ await reconnectService.fetchConversationsOnReconnect();
+
+ expect(spy).toHaveBeenCalled();
+ });
+
+ it('should fetch filtered or saved conversations if active folder query exists and no applied query', async () => {
+ storeMock.getters.getAppliedConversationFiltersQuery = [];
+ storeMock.getters['customViews/getActiveConversationFolder'] = {
+ query: { test: 'activeFolderQuery' },
+ };
+
+ const spy = vi.spyOn(
+ reconnectService,
+ 'fetchFilteredOrSavedConversations'
+ );
+
+ await reconnectService.fetchConversationsOnReconnect();
+
+ expect(spy).toHaveBeenCalledWith({ test: 'activeFolderQuery' });
+ });
+ });
+
+ describe('fetchConversationMessagesOnReconnect', () => {
+ it('should dispatch syncActiveConversationMessages if conversationId exists', async () => {
+ routerMock.currentRoute.value.params.conversation_id = 1;
+ await reconnectService.fetchConversationMessagesOnReconnect();
+ expect(storeMock.dispatch).toHaveBeenCalledWith(
+ 'syncActiveConversationMessages',
+ { conversationId: 1 }
+ );
+ });
+
+ it('should not dispatch syncActiveConversationMessages if conversationId does not exist', async () => {
+ routerMock.currentRoute.value.params.conversation_id = null;
+ await reconnectService.fetchConversationMessagesOnReconnect();
+ expect(storeMock.dispatch).not.toHaveBeenCalledWith(
+ 'syncActiveConversationMessages',
+ expect.anything()
+ );
+ });
+ });
+
+ describe('fetchNotificationsOnReconnect', () => {
+ it('should dispatch notifications/index', async () => {
+ const filter = { test: 'filter' };
+ await reconnectService.fetchNotificationsOnReconnect(filter);
+ expect(storeMock.dispatch).toHaveBeenCalledWith('notifications/index', {
+ ...filter,
+ page: 1,
+ });
+ });
+ });
+
+ describe('revalidateCaches', () => {
+ it('should dispatch revalidate actions for labels, inboxes, and teams', async () => {
+ storeMock.dispatch.mockResolvedValueOnce({
+ label: 'labelKey',
+ inbox: 'inboxKey',
+ team: 'teamKey',
+ });
+ await reconnectService.revalidateCaches();
+ expect(storeMock.dispatch).toHaveBeenCalledWith('accounts/getCacheKeys');
+ expect(storeMock.dispatch).toHaveBeenCalledWith('labels/revalidate', {
+ newKey: 'labelKey',
+ });
+ expect(storeMock.dispatch).toHaveBeenCalledWith('inboxes/revalidate', {
+ newKey: 'inboxKey',
+ });
+ expect(storeMock.dispatch).toHaveBeenCalledWith('teams/revalidate', {
+ newKey: 'teamKey',
+ });
+ });
+ });
+
+ describe('handleRouteSpecificFetch', () => {
+ it('should fetch conversations and messages if current route is a conversation route', async () => {
+ isAConversationRoute.mockReturnValue(true);
+ const spyConversations = vi.spyOn(
+ reconnectService,
+ 'fetchConversationsOnReconnect'
+ );
+ const spyMessages = vi.spyOn(
+ reconnectService,
+ 'fetchConversationMessagesOnReconnect'
+ );
+ await reconnectService.handleRouteSpecificFetch();
+ expect(spyConversations).toHaveBeenCalled();
+ expect(spyMessages).toHaveBeenCalled();
+ });
+
+ it('should fetch notifications if current route is an inbox view route', async () => {
+ isAInboxViewRoute.mockReturnValue(true);
+ const spy = vi.spyOn(reconnectService, 'fetchNotificationsOnReconnect');
+ await reconnectService.handleRouteSpecificFetch();
+ expect(spy).toHaveBeenCalled();
+ });
+
+ it('should fetch notifications if current route is a notification route', async () => {
+ isNotificationRoute.mockReturnValue(true);
+ const spy = vi.spyOn(reconnectService, 'fetchNotificationsOnReconnect');
+ await reconnectService.handleRouteSpecificFetch();
+ expect(spy).toHaveBeenCalled();
+ });
+ });
+
+ describe('setConversationLastMessageId', () => {
+ it('should dispatch setConversationLastMessageId if conversationId exists', async () => {
+ routerMock.currentRoute.value.params.conversation_id = 1;
+ await reconnectService.setConversationLastMessageId();
+ expect(storeMock.dispatch).toHaveBeenCalledWith(
+ 'setConversationLastMessageId',
+ { conversationId: 1 }
+ );
+ });
+
+ it('should not dispatch setConversationLastMessageId if conversationId does not exist', async () => {
+ routerMock.currentRoute.value.params.conversation_id = null;
+ await reconnectService.setConversationLastMessageId();
+ expect(storeMock.dispatch).not.toHaveBeenCalledWith(
+ 'setConversationLastMessageId',
+ expect.anything()
+ );
+ });
+ });
+
+ describe('onDisconnect', () => {
+ it('should set disconnectTime and call setConversationLastMessageId', () => {
+ reconnectService.setConversationLastMessageId = vi.fn();
+ reconnectService.onDisconnect();
+ expect(reconnectService.disconnectTime).toBeInstanceOf(Date);
+ expect(reconnectService.setConversationLastMessageId).toHaveBeenCalled();
+ });
+ });
+
+ describe('onReconnect', () => {
+ it('should handle route-specific fetch, revalidate caches, and emit WEBSOCKET_RECONNECT_COMPLETED event', async () => {
+ reconnectService.handleRouteSpecificFetch = vi.fn();
+ reconnectService.revalidateCaches = vi.fn();
+ await reconnectService.onReconnect();
+ expect(reconnectService.handleRouteSpecificFetch).toHaveBeenCalled();
+ expect(reconnectService.revalidateCaches).toHaveBeenCalled();
+ expect(emitter.emit).toHaveBeenCalledWith(
+ BUS_EVENTS.WEBSOCKET_RECONNECT_COMPLETED
+ );
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/Timer.spec.js b/app/javascript/dashboard/helper/specs/Timer.spec.js
new file mode 100644
index 000000000..8886726cc
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/Timer.spec.js
@@ -0,0 +1,113 @@
+import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
+import Timer from '../Timer';
+
+describe('Timer', () => {
+ beforeEach(() => {
+ vi.useFakeTimers();
+ });
+
+ afterEach(() => {
+ vi.restoreAllMocks();
+ vi.useRealTimers();
+ });
+
+ describe('constructor', () => {
+ it('initializes with elapsed 0 and no interval', () => {
+ const timer = new Timer();
+ expect(timer.elapsed).toBe(0);
+ expect(timer.intervalId).toBeNull();
+ });
+
+ it('accepts an onTick callback', () => {
+ const onTick = vi.fn();
+ const timer = new Timer(onTick);
+ expect(timer.onTick).toBe(onTick);
+ });
+ });
+
+ describe('start', () => {
+ it('starts the timer and increments elapsed every second', () => {
+ const timer = new Timer();
+ timer.start();
+
+ expect(timer.elapsed).toBe(0);
+
+ vi.advanceTimersByTime(1000);
+ expect(timer.elapsed).toBe(1);
+
+ vi.advanceTimersByTime(1000);
+ expect(timer.elapsed).toBe(2);
+
+ vi.advanceTimersByTime(3000);
+ expect(timer.elapsed).toBe(5);
+ });
+
+ it('calls onTick callback with elapsed value', () => {
+ const onTick = vi.fn();
+ const timer = new Timer(onTick);
+ timer.start();
+
+ vi.advanceTimersByTime(1000);
+ expect(onTick).toHaveBeenCalledWith(1);
+
+ vi.advanceTimersByTime(1000);
+ expect(onTick).toHaveBeenCalledWith(2);
+
+ expect(onTick).toHaveBeenCalledTimes(2);
+ });
+
+ it('resets elapsed to 0 when restarted', () => {
+ const timer = new Timer();
+ timer.start();
+
+ vi.advanceTimersByTime(5000);
+ expect(timer.elapsed).toBe(5);
+
+ timer.start();
+ expect(timer.elapsed).toBe(0);
+
+ vi.advanceTimersByTime(2000);
+ expect(timer.elapsed).toBe(2);
+ });
+
+ it('clears previous interval when restarted', () => {
+ const timer = new Timer();
+ timer.start();
+ const firstIntervalId = timer.intervalId;
+
+ timer.start();
+ expect(timer.intervalId).not.toBe(firstIntervalId);
+ });
+ });
+
+ describe('stop', () => {
+ it('stops the timer and resets elapsed to 0', () => {
+ const timer = new Timer();
+ timer.start();
+
+ vi.advanceTimersByTime(3000);
+ expect(timer.elapsed).toBe(3);
+
+ timer.stop();
+ expect(timer.elapsed).toBe(0);
+ expect(timer.intervalId).toBeNull();
+ });
+
+ it('prevents further increments after stopping', () => {
+ const timer = new Timer();
+ timer.start();
+
+ vi.advanceTimersByTime(2000);
+ timer.stop();
+
+ vi.advanceTimersByTime(5000);
+ expect(timer.elapsed).toBe(0);
+ });
+
+ it('handles stop when timer is not running', () => {
+ const timer = new Timer();
+ expect(() => timer.stop()).not.toThrow();
+ expect(timer.elapsed).toBe(0);
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/URLHelper.spec.js b/app/javascript/dashboard/helper/specs/URLHelper.spec.js
index d137c367c..cd7479509 100644
--- a/app/javascript/dashboard/helper/specs/URLHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/URLHelper.spec.js
@@ -5,6 +5,10 @@ import {
conversationListPageURL,
getArticleSearchURL,
hasValidAvatarUrl,
+ timeStampAppendedURL,
+ getHostNameFromURL,
+ extractFilenameFromUrl,
+ sanitizeAllowedDomains,
} from '../URLHelper';
describe('#URL Helpers', () => {
@@ -36,6 +40,15 @@ describe('#URL Helpers', () => {
'/app/accounts/1/custom_view/1'
);
});
+
+ it('should return url to participating conversations', () => {
+ expect(
+ conversationListPageURL({
+ accountId: 1,
+ conversationType: 'participating',
+ })
+ ).toBe('/app/accounts/1/participating/conversations');
+ });
});
describe('conversationUrl', () => {
it('should return direct conversation URL if activeInbox is nil', () => {
@@ -190,4 +203,157 @@ describe('#URL Helpers', () => {
expect(hasValidAvatarUrl()).toBe(false);
});
});
+
+ describe('timeStampAppendedURL', () => {
+ const FIXED_TIMESTAMP = 1234567890000;
+
+ beforeEach(() => {
+ vi.spyOn(Date, 'now').mockImplementation(() => FIXED_TIMESTAMP);
+ });
+
+ afterEach(() => {
+ vi.restoreAllMocks();
+ });
+
+ it('should append timestamp to a URL without query parameters', () => {
+ const input = 'https://example.com/audio.mp3';
+ const expected = `https://example.com/audio.mp3?t=${FIXED_TIMESTAMP}`;
+ expect(timeStampAppendedURL(input)).toBe(expected);
+ });
+
+ it('should append timestamp to a URL with existing query parameters', () => {
+ const input = 'https://example.com/audio.mp3?volume=50';
+ const expected = `https://example.com/audio.mp3?volume=50&t=${FIXED_TIMESTAMP}`;
+ expect(timeStampAppendedURL(input)).toBe(expected);
+ });
+
+ it('should not append timestamp if it already exists', () => {
+ const input = 'https://example.com/audio.mp3?t=9876543210';
+ expect(timeStampAppendedURL(input)).toBe(input);
+ });
+
+ it('should handle URLs with hash fragments', () => {
+ const input = 'https://example.com/audio.mp3#section1';
+ const expected = `https://example.com/audio.mp3?t=${FIXED_TIMESTAMP}#section1`;
+ expect(timeStampAppendedURL(input)).toBe(expected);
+ });
+
+ it('should handle complex URLs', () => {
+ const input =
+ 'https://example.com/path/to/audio.mp3?key1=value1&key2=value2#fragment';
+ const expected = `https://example.com/path/to/audio.mp3?key1=value1&key2=value2&t=${FIXED_TIMESTAMP}#fragment`;
+ expect(timeStampAppendedURL(input)).toBe(expected);
+ });
+
+ it('should throw an error for invalid URLs', () => {
+ const input = 'not a valid url';
+ expect(() => timeStampAppendedURL(input)).toThrow();
+ });
+ });
+
+ describe('getHostNameFromURL', () => {
+ it('should return the hostname from a valid URL', () => {
+ expect(getHostNameFromURL('https://example.com/path')).toBe(
+ 'example.com'
+ );
+ });
+
+ it('should return null for an invalid URL', () => {
+ expect(getHostNameFromURL('not a valid url')).toBe(null);
+ });
+
+ it('should return null for an empty string', () => {
+ expect(getHostNameFromURL('')).toBe(null);
+ });
+
+ it('should return null for undefined input', () => {
+ expect(getHostNameFromURL(undefined)).toBe(null);
+ });
+
+ it('should correctly handle URLs with non-standard TLDs', () => {
+ expect(getHostNameFromURL('https://chatwoot.help')).toBe('chatwoot.help');
+ });
+ });
+
+ describe('extractFilenameFromUrl', () => {
+ it('should extract filename from a valid URL', () => {
+ expect(
+ extractFilenameFromUrl('https://example.com/path/to/file.jpg')
+ ).toBe('file.jpg');
+ expect(extractFilenameFromUrl('https://example.com/image.png')).toBe(
+ 'image.png'
+ );
+ expect(
+ extractFilenameFromUrl(
+ 'https://example.com/folder/document.pdf?query=1'
+ )
+ ).toBe('document.pdf');
+ expect(
+ extractFilenameFromUrl('https://example.com/file.txt#section')
+ ).toBe('file.txt');
+ });
+
+ it('should handle URLs without filename', () => {
+ expect(extractFilenameFromUrl('https://example.com/')).toBe(
+ 'https://example.com/'
+ );
+ expect(extractFilenameFromUrl('https://example.com')).toBe(
+ 'https://example.com'
+ );
+ });
+
+ it('should handle invalid URLs gracefully', () => {
+ expect(extractFilenameFromUrl('not-a-url/file.txt')).toBe('file.txt');
+ expect(extractFilenameFromUrl('invalid-url')).toBe('invalid-url');
+ });
+
+ it('should handle edge cases', () => {
+ expect(extractFilenameFromUrl('')).toBe('');
+ expect(extractFilenameFromUrl(null)).toBe(null);
+ expect(extractFilenameFromUrl(undefined)).toBe(undefined);
+ expect(extractFilenameFromUrl(123)).toBe(123);
+ });
+
+ it('should handle URLs with query parameters and fragments', () => {
+ expect(
+ extractFilenameFromUrl(
+ 'https://example.com/file.jpg?size=large&format=png'
+ )
+ ).toBe('file.jpg');
+ expect(
+ extractFilenameFromUrl('https://example.com/file.pdf#page=1')
+ ).toBe('file.pdf');
+ expect(
+ extractFilenameFromUrl('https://example.com/file.doc?v=1#section')
+ ).toBe('file.doc');
+ });
+ });
+
+ describe('sanitizeAllowedDomains', () => {
+ it('returns empty string for falsy input', () => {
+ expect(sanitizeAllowedDomains('')).toBe('');
+ expect(sanitizeAllowedDomains(null)).toBe('');
+ expect(sanitizeAllowedDomains(undefined)).toBe('');
+ });
+
+ it('trims whitespace and converts newlines to commas', () => {
+ const input = ' example.com \n foo.bar\nbar.baz ';
+ expect(sanitizeAllowedDomains(input)).toBe('example.com,foo.bar,bar.baz');
+ });
+
+ it('handles Windows newlines and mixed spacing', () => {
+ const input = ' example.com\r\n\tfoo.bar , bar.baz ';
+ expect(sanitizeAllowedDomains(input)).toBe('example.com,foo.bar,bar.baz');
+ });
+
+ it('removes empty values from repeated commas', () => {
+ const input = ',,example.com,,foo.bar,,';
+ expect(sanitizeAllowedDomains(input)).toBe('example.com,foo.bar');
+ });
+
+ it('lowercases entries and de-duplicates preserving order', () => {
+ const input = 'Example.com,FOO.bar,example.com,Bar.Baz,foo.BAR';
+ expect(sanitizeAllowedDomains(input)).toBe('example.com,foo.bar,bar.baz');
+ });
+ });
});
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..8ba411a5f
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/actionCable.spec.js
@@ -0,0 +1,163 @@
+import { describe, it, beforeEach, afterEach, 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,
+ 'accounts/isFeatureEnabledonAccount': vi.fn(() => true),
+ },
+ },
+ };
+
+ actionCable = ActionCableConnector.init(store.$store, 'test-token');
+ });
+
+ afterEach(() => {
+ vi.useRealTimers();
+ });
+ 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
+ );
+ });
+ });
+
+ describe('conversation unread count event handlers', () => {
+ it('should register the conversation.unread_count_changed event handler', () => {
+ expect(Object.keys(actionCable.events)).toContain(
+ 'conversation.unread_count_changed'
+ );
+ expect(actionCable.events['conversation.unread_count_changed']).toBe(
+ actionCable.onConversationUnreadCountChanged
+ );
+ });
+
+ it('should refetch unread counts when unread count changes', () => {
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ expect(mockDispatch).toHaveBeenCalledWith('conversationUnreadCounts/get');
+ });
+
+ it('does not refetch unread counts when unread count feature is disabled', () => {
+ store.$store.getters[
+ 'accounts/isFeatureEnabledonAccount'
+ ].mockReturnValue(false);
+
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ expect(mockDispatch).not.toHaveBeenCalledWith(
+ 'conversationUnreadCounts/get'
+ );
+ });
+
+ it('should throttle unread count refetches for repeated events', () => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date('2026-01-01T00:00:00Z'));
+
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ expect(mockDispatch).toHaveBeenCalledTimes(1);
+
+ vi.advanceTimersByTime(4999);
+ expect(mockDispatch).toHaveBeenCalledTimes(1);
+
+ vi.advanceTimersByTime(1);
+ expect(mockDispatch).toHaveBeenCalledTimes(2);
+ expect(mockDispatch).toHaveBeenLastCalledWith(
+ 'conversationUnreadCounts/get'
+ );
+ });
+
+ it('clears pending unread count refetch before immediate refetch', () => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date('2026-01-01T00:00:00Z'));
+
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ vi.advanceTimersByTime(1000);
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ vi.setSystemTime(new Date('2026-01-01T00:00:06Z'));
+ actionCable.onReceived({
+ event: 'conversation.unread_count_changed',
+ data: { account_id: 1 },
+ });
+
+ expect(mockDispatch).toHaveBeenCalledTimes(2);
+
+ vi.advanceTimersByTime(4000);
+ expect(mockDispatch).toHaveBeenCalledTimes(2);
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/agentHelper.spec.js b/app/javascript/dashboard/helper/specs/agentHelper.spec.js
new file mode 100644
index 000000000..273834a11
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/agentHelper.spec.js
@@ -0,0 +1,94 @@
+import {
+ getAgentsByAvailability,
+ getSortedAgentsByAvailability,
+ getAgentsByUpdatedPresence,
+} from '../agentHelper';
+import {
+ allAgentsData,
+ onlineAgentsData,
+ busyAgentsData,
+ offlineAgentsData,
+ sortedByAvailability,
+ formattedAgentsByPresenceOnline,
+ formattedAgentsByPresenceOffline,
+} from 'dashboard/helper/specs/fixtures/agentFixtures';
+
+describe('agentHelper', () => {
+ describe('getAgentsByAvailability', () => {
+ it('returns agents by availability', () => {
+ expect(getAgentsByAvailability(allAgentsData, 'online')).toEqual(
+ onlineAgentsData
+ );
+ expect(getAgentsByAvailability(allAgentsData, 'busy')).toEqual(
+ busyAgentsData
+ );
+ expect(getAgentsByAvailability(allAgentsData, 'offline')).toEqual(
+ offlineAgentsData
+ );
+ });
+ });
+
+ describe('getSortedAgentsByAvailability', () => {
+ it('returns sorted agents by availability', () => {
+ expect(getSortedAgentsByAvailability(allAgentsData)).toEqual(
+ sortedByAvailability
+ );
+ });
+
+ it('returns an empty array when given an empty input', () => {
+ expect(getSortedAgentsByAvailability([])).toEqual([]);
+ });
+
+ it('maintains the order of agents with the same availability status', () => {
+ const result = getSortedAgentsByAvailability(allAgentsData);
+ expect(result[2].name).toBe('Honey Bee');
+ expect(result[3].name).toBe('Samuel Keta');
+ });
+ });
+
+ describe('getAgentsByUpdatedPresence', () => {
+ it('returns agents with updated presence', () => {
+ const currentUser = {
+ id: 1,
+ accounts: [{ id: 1, availability_status: 'offline' }],
+ };
+ const currentAccountId = 1;
+
+ expect(
+ getAgentsByUpdatedPresence(
+ formattedAgentsByPresenceOnline,
+ currentUser,
+ currentAccountId
+ )
+ ).toEqual(formattedAgentsByPresenceOffline);
+ });
+
+ it('does not modify other agents presence', () => {
+ const currentUser = {
+ id: 2,
+ accounts: [{ id: 1, availability_status: 'offline' }],
+ };
+ const currentAccountId = 1;
+
+ expect(
+ getAgentsByUpdatedPresence(
+ formattedAgentsByPresenceOnline,
+ currentUser,
+ currentAccountId
+ )
+ ).toEqual(formattedAgentsByPresenceOnline);
+ });
+
+ it('handles empty agent list', () => {
+ const currentUser = {
+ id: 1,
+ accounts: [{ id: 1, availability_status: 'offline' }],
+ };
+ const currentAccountId = 1;
+
+ expect(
+ getAgentsByUpdatedPresence([], currentUser, currentAccountId)
+ ).toEqual([]);
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/auditlogHelper.spec.js b/app/javascript/dashboard/helper/specs/auditlogHelper.spec.js
index 8c2486bab..0ec4f3cdf 100644
--- a/app/javascript/dashboard/helper/specs/auditlogHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/auditlogHelper.spec.js
@@ -178,5 +178,17 @@ describe('Helper functions', () => {
const logActionKey = generateLogActionKey(auditLogItem);
expect(logActionKey).toEqual('AUDIT_LOGS.ACCOUNT_USER.EDIT.OTHER');
});
+
+ it('should generate correct action key when updating a deleted user', () => {
+ const auditLogItem = {
+ auditable_type: 'AccountUser',
+ action: 'update',
+ user_id: 1,
+ auditable: null,
+ };
+
+ const logActionKey = generateLogActionKey(auditLogItem);
+ expect(logActionKey).toEqual('AUDIT_LOGS.ACCOUNT_USER.EDIT.DELETED');
+ });
});
});
diff --git a/app/javascript/dashboard/helper/specs/automationHelper.spec.js b/app/javascript/dashboard/helper/specs/automationHelper.spec.js
new file mode 100644
index 000000000..033481a0b
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/automationHelper.spec.js
@@ -0,0 +1,470 @@
+import * as helpers from 'dashboard/helper/automationHelper';
+import {
+ OPERATOR_TYPES_1,
+ OPERATOR_TYPES_3,
+ OPERATOR_TYPES_4,
+} from 'dashboard/routes/dashboard/settings/automation/operators';
+import {
+ customAttributes,
+ labels,
+ automation,
+ contactAttrs,
+ conversationAttrs,
+ expectedOutputForCustomAttributeGenerator,
+} from './fixtures/automationFixtures';
+import { AUTOMATIONS } from 'dashboard/routes/dashboard/settings/automation/constants';
+
+describe('getCustomAttributeInputType', () => {
+ it('returns the attribute input type', () => {
+ expect(helpers.getCustomAttributeInputType('date')).toEqual('date');
+ expect(helpers.getCustomAttributeInputType('date')).not.toEqual(
+ 'some_random_value'
+ );
+ expect(helpers.getCustomAttributeInputType('text')).toEqual('plain_text');
+ expect(helpers.getCustomAttributeInputType('list')).toEqual(
+ 'search_select'
+ );
+ expect(helpers.getCustomAttributeInputType('checkbox')).toEqual(
+ 'search_select'
+ );
+ expect(helpers.getCustomAttributeInputType('some_random_text')).toEqual(
+ 'plain_text'
+ );
+ });
+});
+
+describe('isACustomAttribute', () => {
+ it('returns the custom attribute value if true', () => {
+ expect(
+ helpers.isACustomAttribute(customAttributes, 'signed_up_at')
+ ).toBeTruthy();
+ expect(helpers.isACustomAttribute(customAttributes, 'status')).toBeFalsy();
+ });
+});
+
+describe('getCustomAttributeListDropdownValues', () => {
+ it('returns the attribute dropdown values', () => {
+ const myListValues = [
+ { id: 'item1', name: 'item1' },
+ { id: 'item2', name: 'item2' },
+ { id: 'item3', name: 'item3' },
+ ];
+ expect(
+ helpers.getCustomAttributeListDropdownValues(customAttributes, 'my_list')
+ ).toEqual(myListValues);
+ });
+});
+
+describe('isCustomAttributeCheckbox', () => {
+ it('checks if attribute is a checkbox', () => {
+ expect(
+ helpers.isCustomAttributeCheckbox(customAttributes, 'prime_user')
+ .attribute_display_type
+ ).toEqual('checkbox');
+ expect(
+ helpers.isCustomAttributeCheckbox(customAttributes, 'my_check')
+ .attribute_display_type
+ ).toEqual('checkbox');
+ expect(
+ helpers.isCustomAttributeCheckbox(customAttributes, 'my_list')
+ ).not.toEqual('checkbox');
+ });
+});
+
+describe('isCustomAttributeList', () => {
+ it('checks if attribute is a list', () => {
+ expect(
+ helpers.isCustomAttributeList(customAttributes, 'my_list')
+ .attribute_display_type
+ ).toEqual('list');
+ });
+});
+
+describe('getOperatorTypes', () => {
+ it('returns the correct custom attribute operators', () => {
+ expect(helpers.getOperatorTypes('list')).toEqual(OPERATOR_TYPES_1);
+ expect(helpers.getOperatorTypes('text')).toEqual(OPERATOR_TYPES_3);
+ expect(helpers.getOperatorTypes('number')).toEqual(OPERATOR_TYPES_1);
+ expect(helpers.getOperatorTypes('link')).toEqual(OPERATOR_TYPES_1);
+ expect(helpers.getOperatorTypes('date')).toEqual(OPERATOR_TYPES_4);
+ expect(helpers.getOperatorTypes('checkbox')).toEqual(OPERATOR_TYPES_1);
+ expect(helpers.getOperatorTypes('some_random')).toEqual(OPERATOR_TYPES_1);
+ });
+});
+
+describe('generateConditionOptions', () => {
+ it('returns expected conditions options array', () => {
+ const testConditions = [
+ { id: 123, title: 'Fayaz', email: 'test@test.com' },
+ { title: 'John', id: 324, email: 'test@john.com' },
+ ];
+ const expectedConditions = [
+ { id: 123, name: 'Fayaz' },
+ { id: 324, name: 'John' },
+ ];
+ expect(helpers.generateConditionOptions(testConditions)).toEqual(
+ expectedConditions
+ );
+ });
+});
+
+describe('getActionOptions', () => {
+ it('returns expected actions options array', () => {
+ const expectedOptions = [
+ { id: 'testlabel', name: 'testlabel' },
+ { id: 'snoozes', name: 'snoozes' },
+ ];
+ expect(helpers.getActionOptions({ labels, type: 'add_label' })).toEqual(
+ expectedOptions
+ );
+ });
+
+ it('adds None option when addNoneToListFn is provided', () => {
+ const mockAddNoneToListFn = list => [
+ { id: 'nil', name: 'None' },
+ ...(list || []),
+ ];
+
+ const agents = [
+ { id: 1, name: 'Agent 1' },
+ { id: 2, name: 'Agent 2' },
+ ];
+
+ const expectedOptions = [
+ { id: 'nil', name: 'None' },
+ { id: 1, name: 'Agent 1' },
+ { id: 2, name: 'Agent 2' },
+ ];
+
+ expect(
+ helpers.getActionOptions({
+ agents,
+ type: 'assign_agent',
+ addNoneToListFn: mockAddNoneToListFn,
+ })
+ ).toEqual(expectedOptions);
+ });
+
+ it('does not add None option when addNoneToListFn is not provided', () => {
+ const agents = [
+ { id: 1, name: 'Agent 1' },
+ { id: 2, name: 'Agent 2' },
+ ];
+
+ expect(
+ helpers.getActionOptions({
+ agents,
+ type: 'assign_agent',
+ })
+ ).toEqual(agents);
+ });
+});
+
+describe('getConditionOptions', () => {
+ it('returns expected conditions options', () => {
+ const testOptions = [
+ { id: 'open', name: 'Open' },
+ { id: 'resolved', name: 'Resolved' },
+ { id: 'pending', name: 'Pending' },
+ { id: 'snoozed', name: 'Snoozed' },
+ { id: 'all', name: 'All' },
+ ];
+ expect(
+ helpers.getConditionOptions({
+ customAttributes,
+ campaigns: [],
+ statusFilterOptions: testOptions,
+ type: 'status',
+ })
+ ).toEqual(testOptions);
+ });
+
+ it('returns boolean options for private_note', () => {
+ const booleanOptions = [
+ { id: true, name: 'True' },
+ { id: false, name: 'False' },
+ ];
+
+ expect(
+ helpers.getConditionOptions({
+ booleanFilterOptions: booleanOptions,
+ customAttributes,
+ type: 'private_note',
+ })
+ ).toEqual(booleanOptions);
+ });
+});
+
+describe('getFileName', () => {
+ it('returns the correct file name', () => {
+ expect(
+ helpers.getFileName(automation.actions[0], automation.files)
+ ).toEqual('pfp.jpeg');
+ });
+});
+
+describe('getDefaultConditions', () => {
+ it('returns the resp default condition model', () => {
+ const messageCreatedModel = [
+ {
+ attribute_key: 'message_type',
+ filter_operator: 'equal_to',
+ values: '',
+ query_operator: 'and',
+ custom_attribute_type: '',
+ },
+ ];
+ const genericConditionModel = [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: '',
+ query_operator: 'and',
+ custom_attribute_type: '',
+ },
+ ];
+ expect(helpers.getDefaultConditions('message_created')).toEqual(
+ messageCreatedModel
+ );
+ expect(helpers.getDefaultConditions()).toEqual(genericConditionModel);
+ });
+});
+
+describe('getDefaultActions', () => {
+ it('returns the resp default action model', () => {
+ const genericActionModel = [
+ {
+ action_name: 'assign_agent',
+ action_params: [],
+ },
+ ];
+ expect(helpers.getDefaultActions()).toEqual(genericActionModel);
+ });
+});
+
+describe('filterCustomAttributes', () => {
+ it('filters the raw custom attributes', () => {
+ const filteredAttributes = [
+ { key: 'signed_up_at', name: 'Signed Up At', type: 'date' },
+ { key: 'prime_user', name: 'Prime User', type: 'checkbox' },
+ { key: 'test', name: 'Test', type: 'text' },
+ { key: 'link', name: 'Link', type: 'link' },
+ { key: 'my_list', name: 'My List', type: 'list' },
+ { key: 'my_check', name: 'My Check', type: 'checkbox' },
+ { key: 'conlist', name: 'ConList', type: 'list' },
+ { key: 'asdf', name: 'asdf', type: 'link' },
+ ];
+ expect(helpers.filterCustomAttributes(customAttributes)).toEqual(
+ filteredAttributes
+ );
+ });
+});
+
+describe('getStandardAttributeInputType', () => {
+ it('returns the resp default action model', () => {
+ expect(
+ helpers.getStandardAttributeInputType(
+ AUTOMATIONS,
+ 'message_created',
+ 'message_type'
+ )
+ ).toEqual('search_select');
+ expect(
+ helpers.getStandardAttributeInputType(
+ AUTOMATIONS,
+ 'conversation_created',
+ 'status'
+ )
+ ).toEqual('multi_select');
+ expect(
+ helpers.getStandardAttributeInputType(
+ AUTOMATIONS,
+ 'conversation_updated',
+ 'referer'
+ )
+ ).toEqual('plain_text');
+ });
+});
+
+describe('generateAutomationPayload', () => {
+ it('returns the resp default action model', () => {
+ const testPayload = {
+ name: 'Test',
+ description: 'This is a test',
+ event_name: 'conversation_created',
+ conditions: [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: [{ id: 'open', name: 'Open' }],
+ query_operator: 'and',
+ },
+ ],
+ actions: [
+ {
+ action_name: 'add_label',
+ action_params: [{ id: 2, name: 'testlabel' }],
+ },
+ ],
+ };
+ const expectedPayload = {
+ name: 'Test',
+ description: 'This is a test',
+ event_name: 'conversation_created',
+ conditions: [
+ {
+ attribute_key: 'status',
+ filter_operator: 'equal_to',
+ values: ['open'],
+ },
+ ],
+ actions: [
+ {
+ action_name: 'add_label',
+ action_params: [2],
+ },
+ ],
+ };
+ expect(helpers.generateAutomationPayload(testPayload)).toEqual(
+ expectedPayload
+ );
+ });
+});
+
+describe('isCustomAttribute', () => {
+ it('returns the resp default action model', () => {
+ const attrs = helpers.filterCustomAttributes(customAttributes);
+ expect(helpers.isCustomAttribute(attrs, 'my_list')).toBeTruthy();
+ expect(helpers.isCustomAttribute(attrs, 'my_check')).toBeTruthy();
+ expect(helpers.isCustomAttribute(attrs, 'signed_up_at')).toBeTruthy();
+ expect(helpers.isCustomAttribute(attrs, 'link')).toBeTruthy();
+ expect(helpers.isCustomAttribute(attrs, 'prime_user')).toBeTruthy();
+ expect(helpers.isCustomAttribute(attrs, 'hello')).toBeFalsy();
+ });
+});
+
+describe('generateCustomAttributes', () => {
+ it('generates and returns correct condition attribute', () => {
+ expect(
+ helpers.generateCustomAttributes(
+ conversationAttrs,
+ contactAttrs,
+ 'Conversation Custom Attributes',
+ 'Contact Custom Attributes'
+ )
+ ).toEqual(expectedOutputForCustomAttributeGenerator);
+ });
+});
+
+describe('getAttributes', () => {
+ it('returns the conditions for the given automation type', () => {
+ const result = helpers.getAttributes(AUTOMATIONS, 'message_created');
+ expect(result).toEqual(AUTOMATIONS.message_created.conditions);
+ });
+});
+
+describe('getAttributes', () => {
+ it('returns the conditions for the given automation type', () => {
+ const result = helpers.getAttributes(AUTOMATIONS, 'message_created');
+ expect(result).toEqual(AUTOMATIONS.message_created.conditions);
+ });
+});
+
+describe('getAutomationType', () => {
+ it('returns the automation type for the given key', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getAutomationType(
+ AUTOMATIONS,
+ mockAutomation,
+ 'message_type'
+ );
+ expect(result).toEqual(
+ AUTOMATIONS.message_created.conditions.find(c => c.key === 'message_type')
+ );
+ });
+});
+
+describe('getInputType', () => {
+ it('returns the input type for a custom attribute', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getInputType(
+ customAttributes,
+ AUTOMATIONS,
+ mockAutomation,
+ 'signed_up_at'
+ );
+ expect(result).toEqual('date');
+ });
+
+ it('returns the input type for a standard attribute', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getInputType(
+ customAttributes,
+ AUTOMATIONS,
+ mockAutomation,
+ 'message_type'
+ );
+ expect(result).toEqual('search_select');
+ });
+});
+
+describe('getOperators', () => {
+ it('returns operators for a custom attribute in edit mode', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getOperators(
+ customAttributes,
+ AUTOMATIONS,
+ mockAutomation,
+ 'edit',
+ 'signed_up_at'
+ );
+ expect(result).toEqual(OPERATOR_TYPES_4);
+ });
+
+ it('returns operators for a standard attribute', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getOperators(
+ customAttributes,
+ AUTOMATIONS,
+ mockAutomation,
+ 'create',
+ 'message_type'
+ );
+ expect(result).toEqual(
+ AUTOMATIONS.message_created.conditions.find(c => c.key === 'message_type')
+ .filterOperators
+ );
+ });
+});
+
+describe('getCustomAttributeType', () => {
+ it('returns the custom attribute type for the given key', () => {
+ const mockAutomation = { event_name: 'message_created' };
+ const result = helpers.getCustomAttributeType(
+ AUTOMATIONS,
+ mockAutomation,
+ 'message_type'
+ );
+ expect(result).toEqual(
+ AUTOMATIONS.message_created.conditions.find(c => c.key === 'message_type')
+ .customAttributeType
+ );
+ });
+});
+
+describe('showActionInput', () => {
+ it('returns false for send_email_to_team and send_message actions', () => {
+ expect(helpers.showActionInput([], 'send_email_to_team')).toBe(false);
+ expect(helpers.showActionInput([], 'send_message')).toBe(false);
+ });
+
+ it('returns true if the action has an input type', () => {
+ const mockActionTypes = [{ key: 'add_label', inputType: 'select' }];
+ expect(helpers.showActionInput(mockActionTypes, 'add_label')).toBe(true);
+ });
+
+ it('returns false if the action does not have an input type', () => {
+ const mockActionTypes = [{ key: 'some_action', inputType: null }];
+ expect(helpers.showActionInput(mockActionTypes, 'some_action')).toBe(false);
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/commons.spec.js b/app/javascript/dashboard/helper/specs/commons.spec.js
index 85e2beb37..d892d3a94 100644
--- a/app/javascript/dashboard/helper/specs/commons.spec.js
+++ b/app/javascript/dashboard/helper/specs/commons.spec.js
@@ -4,19 +4,22 @@ import {
convertToAttributeSlug,
convertToCategorySlug,
convertToPortalSlug,
+ sanitizeVariableSearchKey,
+ formatToTitleCase,
} from '../commons';
describe('#getTypingUsersText', () => {
it('returns the correct text is there is only one typing user', () => {
- expect(getTypingUsersText([{ name: 'Pranav' }])).toEqual(
- 'Pranav is typing'
- );
+ expect(getTypingUsersText([{ name: 'Pranav' }])).toEqual([
+ 'TYPING.ONE',
+ { user: 'Pranav' },
+ ]);
});
it('returns the correct text is there are two typing users', () => {
expect(
getTypingUsersText([{ name: 'Pranav' }, { name: 'Nithin' }])
- ).toEqual('Pranav and Nithin are typing');
+ ).toEqual(['TYPING.TWO', { user: 'Pranav', secondUser: 'Nithin' }]);
});
it('returns the correct text is there are more than two users are typing', () => {
@@ -27,7 +30,7 @@ describe('#getTypingUsersText', () => {
{ name: 'Subin' },
{ name: 'Sojan' },
])
- ).toEqual('Pranav and 3 others are typing');
+ ).toEqual(['TYPING.MULTIPLE', { user: 'Pranav', count: 3 }]);
});
});
@@ -36,16 +39,14 @@ describe('#createPendingMessage', () => {
message: 'hi',
};
it('returns the pending message with expected new keys', () => {
- expect(createPendingMessage(message)).toHaveProperty(
- 'content',
- 'id',
- 'status',
- 'echo_id',
- 'status',
- 'created_at',
- 'message_type',
- 'conversation_id'
- );
+ expect(createPendingMessage(message)).toMatchObject({
+ content: expect.anything(),
+ id: expect.anything(),
+ status: expect.anything(),
+ echo_id: expect.anything(),
+ created_at: expect.anything(),
+ message_type: expect.anything(),
+ });
});
it('returns the pending message with status progress', () => {
@@ -61,23 +62,20 @@ describe('#createPendingMessage', () => {
});
});
- it('returns the pending message with attachmnet key if file is passed', () => {
+ it('returns the pending message with attachment key if file is passed', () => {
const messageWithFile = {
message: 'hi',
file: {},
};
- expect(createPendingMessage(messageWithFile)).toHaveProperty(
- 'content',
- 'id',
- 'status',
- 'echo_id',
- 'status',
- 'created_at',
- 'message_type',
- 'conversation_id',
- 'attachments',
- 'private'
- );
+ expect(createPendingMessage(messageWithFile)).toMatchObject({
+ content: expect.anything(),
+ id: expect.anything(),
+ status: expect.anything(),
+ echo_id: expect.anything(),
+ created_at: expect.anything(),
+ message_type: expect.anything(),
+ attachments: [{ id: expect.anything() }],
+ });
});
it('returns the pending message to have one attachment', () => {
@@ -111,3 +109,85 @@ describe('convertToPortalSlug', () => {
expect(convertToPortalSlug('Room rental')).toBe('room-rental');
});
});
+
+describe('sanitizeVariableSearchKey', () => {
+ it('removes braces', () => {
+ expect(sanitizeVariableSearchKey('{{contact.name}}')).toBe('contact.name');
+ });
+
+ it('removes right braces', () => {
+ expect(sanitizeVariableSearchKey('contact.name}}')).toBe('contact.name');
+ });
+
+ it('removes braces, comma and whitespace', () => {
+ expect(sanitizeVariableSearchKey(' {{contact.name }},')).toBe(
+ 'contact.name'
+ );
+ });
+
+ it('trims whitespace', () => {
+ expect(sanitizeVariableSearchKey(' contact.name ')).toBe('contact.name');
+ });
+
+ it('handles multiple commas', () => {
+ expect(sanitizeVariableSearchKey('{{contact.name}},,')).toBe(
+ 'contact.name'
+ );
+ });
+
+ it('returns empty string when only braces/commas/whitespace', () => {
+ expect(sanitizeVariableSearchKey(' { }, , ')).toBe('');
+ });
+
+ it('returns empty string for undefined input', () => {
+ expect(sanitizeVariableSearchKey()).toBe('');
+ });
+});
+
+describe('formatToTitleCase', () => {
+ it('converts underscore-separated string to title case', () => {
+ expect(formatToTitleCase('round_robin')).toBe('Round Robin');
+ });
+
+ it('converts single word to title case', () => {
+ expect(formatToTitleCase('priority')).toBe('Priority');
+ });
+
+ it('converts multiple underscores to title case', () => {
+ expect(formatToTitleCase('auto_assignment_policy')).toBe(
+ 'Auto Assignment Policy'
+ );
+ });
+
+ it('handles already capitalized words', () => {
+ expect(formatToTitleCase('HIGH_PRIORITY')).toBe('HIGH PRIORITY');
+ });
+
+ it('handles mixed case with underscores', () => {
+ expect(formatToTitleCase('first_Name_last')).toBe('First Name Last');
+ });
+
+ it('handles empty string', () => {
+ expect(formatToTitleCase('')).toBe('');
+ });
+
+ it('handles null input', () => {
+ expect(formatToTitleCase(null)).toBe('');
+ });
+
+ it('handles undefined input', () => {
+ expect(formatToTitleCase(undefined)).toBe('');
+ });
+
+ it('handles string without underscores', () => {
+ expect(formatToTitleCase('hello')).toBe('Hello');
+ });
+
+ it('handles string with numbers', () => {
+ expect(formatToTitleCase('priority_1_high')).toBe('Priority 1 High');
+ });
+
+ it('handles leading and trailing underscores', () => {
+ expect(formatToTitleCase('_leading_trailing_')).toBe('Leading Trailing');
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/conversationHelper.spec.js b/app/javascript/dashboard/helper/specs/conversationHelper.spec.js
new file mode 100644
index 000000000..1bd74508d
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/conversationHelper.spec.js
@@ -0,0 +1,101 @@
+import {
+ filterDuplicateSourceMessages,
+ getLastMessage,
+ getReadMessages,
+ getUnreadMessages,
+} from '../conversationHelper';
+import {
+ conversationData,
+ lastMessageData,
+ readMessagesData,
+ unReadMessagesData,
+} from './fixtures/conversationFixtures';
+
+describe('conversationHelper', () => {
+ describe('#filterDuplicateSourceMessages', () => {
+ it('returns messages without duplicate source_id and all messages without source_id', () => {
+ const input = [
+ { source_id: null, id: 1 },
+ { source_id: '', id: 2 },
+ { id: 3 },
+ { source_id: 'wa_1', id: 4 },
+ { source_id: 'wa_1', id: 5 },
+ { source_id: 'wa_1', id: 6 },
+ { source_id: 'wa_2', id: 7 },
+ { source_id: 'wa_2', id: 8 },
+ { source_id: 'wa_3', id: 9 },
+ ];
+ const expected = [
+ { source_id: null, id: 1 },
+ { source_id: '', id: 2 },
+ { id: 3 },
+ { source_id: 'wa_1', id: 4 },
+ { source_id: 'wa_2', id: 7 },
+ { source_id: 'wa_3', id: 9 },
+ ];
+ expect(filterDuplicateSourceMessages(input)).toEqual(expected);
+ });
+ });
+
+ describe('#readMessages', () => {
+ it('should return read messages if conversation is passed', () => {
+ expect(
+ getReadMessages(
+ conversationData.messages,
+ conversationData.agent_last_seen_at
+ )
+ ).toEqual(readMessagesData);
+ });
+ });
+
+ describe('#unReadMessages', () => {
+ it('should return unread messages if conversation is passed', () => {
+ expect(
+ getUnreadMessages(
+ conversationData.messages,
+ conversationData.agent_last_seen_at
+ )
+ ).toEqual(unReadMessagesData);
+ });
+ });
+
+ describe('#lastMessage', () => {
+ it("should return last activity message if both api and store doesn't have other messages", () => {
+ const testConversation = {
+ messages: [conversationData.messages[0]],
+ last_non_activity_message: null,
+ };
+ expect(getLastMessage(testConversation)).toEqual(
+ testConversation.messages[0]
+ );
+ });
+
+ it('should return message from store if store has latest message', () => {
+ const testConversation = {
+ messages: [],
+ last_non_activity_message: lastMessageData,
+ };
+ expect(getLastMessage(testConversation)).toEqual(lastMessageData);
+ });
+
+ it('should return last non activity message from store if api value is empty', () => {
+ const testConversation = {
+ messages: [conversationData.messages[0], conversationData.messages[1]],
+ last_non_activity_message: null,
+ };
+ expect(getLastMessage(testConversation)).toEqual(
+ testConversation.messages[1]
+ );
+ });
+
+ it("should return last non activity message from store if store doesn't have any messages", () => {
+ const testConversation = {
+ messages: [conversationData.messages[1], conversationData.messages[2]],
+ last_non_activity_message: conversationData.messages[0],
+ };
+ expect(getLastMessage(testConversation)).toEqual(
+ testConversation.messages[1]
+ );
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/customViewsHelper.spec.js b/app/javascript/dashboard/helper/specs/customViewsHelper.spec.js
index 0709c4e8d..e5d6b8de6 100644
--- a/app/javascript/dashboard/helper/specs/customViewsHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/customViewsHelper.spec.js
@@ -273,6 +273,41 @@ describe('customViewsHelper', () => {
};
expect(generateValuesForEditCustomViews(filter, params)).toEqual('1');
});
+
+ it('returns contact name for contact filters when contact is available', () => {
+ const filter = {
+ attribute_key: 'contact_id',
+ filter_operator: 'equal_to',
+ values: [123],
+ };
+ const params = {
+ contacts: [{ id: 123, name: 'John Doe' }],
+ filterTypes: advancedFilterTypes,
+ allCustomAttributes: [],
+ };
+
+ expect(generateValuesForEditCustomViews(filter, params)).toEqual({
+ id: 123,
+ name: 'John Doe',
+ });
+ });
+
+ it('returns fallback contact display value when contact is not available', () => {
+ const filter = {
+ attribute_key: 'contact_id',
+ filter_operator: 'equal_to',
+ values: [123],
+ };
+ const params = {
+ filterTypes: advancedFilterTypes,
+ allCustomAttributes: [],
+ };
+
+ expect(generateValuesForEditCustomViews(filter, params)).toEqual({
+ id: 123,
+ name: 'Contact #123',
+ });
+ });
});
describe('#generateCustomAttributesInputType', () => {
diff --git a/app/javascript/dashboard/helper/specs/editorContentHelper.spec.js b/app/javascript/dashboard/helper/specs/editorContentHelper.spec.js
new file mode 100644
index 000000000..4efb4d1d9
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/editorContentHelper.spec.js
@@ -0,0 +1,137 @@
+// Moved from editorHelper.spec.js to editorContentHelper.spec.js
+// the mock of chatwoot/prosemirror-schema is getting conflicted with other specs
+import { getContentNode } from '../editorHelper';
+import { MessageMarkdownTransformer } from '@chatwoot/prosemirror-schema';
+import { replaceVariablesInMessage } from '@chatwoot/utils';
+
+vi.mock('@chatwoot/prosemirror-schema', () => ({
+ MessageMarkdownTransformer: vi.fn(),
+}));
+
+vi.mock('@chatwoot/utils', () => ({
+ replaceVariablesInMessage: vi.fn(),
+}));
+
+describe('getContentNode', () => {
+ let editorView;
+
+ beforeEach(() => {
+ editorView = {
+ state: {
+ schema: {
+ nodes: {
+ mention: {
+ create: vi.fn(),
+ },
+ },
+ text: vi.fn(),
+ },
+ },
+ };
+ });
+
+ describe('getMentionNode', () => {
+ it('should create a mention node', () => {
+ const content = { id: 1, name: 'John Doe' };
+ const from = 0;
+ const to = 10;
+ getContentNode(editorView, 'mention', content, {
+ from,
+ to,
+ });
+
+ expect(editorView.state.schema.nodes.mention.create).toHaveBeenCalledWith(
+ {
+ userId: content.id,
+ userFullName: content.name,
+ mentionType: 'user',
+ }
+ );
+ });
+ });
+
+ describe('getCannedResponseNode', () => {
+ it('should create a canned response node', () => {
+ const content = 'Hello {{name}}';
+ const variables = { name: 'John' };
+ const from = 0;
+ const to = 10;
+ const updatedMessage = 'Hello John';
+
+ // Mock the node that will be returned by parse
+ const mockNode = { textContent: updatedMessage };
+
+ replaceVariablesInMessage.mockReturnValue(updatedMessage);
+
+ // Mock MessageMarkdownTransformer instance with parse method
+ const mockTransformer = {
+ parse: vi.fn().mockReturnValue(mockNode),
+ };
+ MessageMarkdownTransformer.mockImplementation(() => mockTransformer);
+
+ const result = getContentNode(
+ editorView,
+ 'cannedResponse',
+ content,
+ { from, to },
+ variables
+ );
+
+ expect(replaceVariablesInMessage).toHaveBeenCalledWith({
+ message: content,
+ variables,
+ });
+ expect(MessageMarkdownTransformer).toHaveBeenCalledWith(
+ editorView.state.schema
+ );
+ expect(mockTransformer.parse).toHaveBeenCalledWith(updatedMessage);
+ expect(result.node).toBe(mockNode);
+ expect(result.node.textContent).toBe(updatedMessage);
+ // When textContent matches updatedMessage, from should remain unchanged
+ expect(result.from).toBe(from);
+ expect(result.to).toBe(to);
+ });
+ });
+
+ describe('getVariableNode', () => {
+ it('should create a variable node', () => {
+ const content = 'name';
+ const from = 0;
+ const to = 10;
+ getContentNode(editorView, 'variable', content, {
+ from,
+ to,
+ });
+
+ expect(editorView.state.schema.text).toHaveBeenCalledWith('{{name}}');
+ });
+ });
+
+ describe('getEmojiNode', () => {
+ it('should create an emoji node', () => {
+ const content = '😊';
+ const from = 0;
+ const to = 2;
+ getContentNode(editorView, 'emoji', content, {
+ from,
+ to,
+ });
+
+ expect(editorView.state.schema.text).toHaveBeenCalledWith('😊');
+ });
+ });
+
+ describe('getContentNode', () => {
+ it('should return null for invalid type', () => {
+ const content = 'invalid';
+ const from = 0;
+ const to = 10;
+ const { node } = getContentNode(editorView, 'invalid', content, {
+ from,
+ to,
+ });
+
+ expect(node).toBeNull();
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/editorHelper.spec.js b/app/javascript/dashboard/helper/specs/editorHelper.spec.js
index 55d0fe853..7d32f63e0 100644
--- a/app/javascript/dashboard/helper/specs/editorHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/editorHelper.spec.js
@@ -1,29 +1,53 @@
+import { EditorState, EditorView } from '@chatwoot/prosemirror-schema';
+import { FORMATTING } from 'dashboard/constants/editor';
+import { Schema } from 'prosemirror-model';
import {
- findSignatureInBody,
appendSignature,
+ calculateMenuPosition,
+ cleanSignature,
+ collapseSelection,
+ extractTextFromMarkdown,
+ findNodeToInsertImage,
+ findSignatureInBody,
+ getContentNode,
+ getFormattingForEditor,
+ getMenuAnchor,
+ getSelectionCoords,
+ insertAtCursor,
removeSignature,
replaceSignature,
- cleanSignature,
- extractTextFromMarkdown,
- insertAtCursor,
- findNodeToInsertImage,
- setURLWithQueryAndSize,
+ stripInlineBase64Images,
+ stripUnsupportedFormatting,
+ stripUnsupportedMarkdown,
} from '../editorHelper';
-import { EditorState } from 'prosemirror-state';
-import { EditorView } from 'prosemirror-view';
-import { Schema } from 'prosemirror-model';
// Define a basic ProseMirror schema
const schema = new Schema({
nodes: {
doc: { content: 'paragraph+' },
paragraph: {
- content: 'text*',
+ content: 'inline*',
+ group: 'block',
toDOM: () => ['p', 0], // Represents a paragraph as a tag in the DOM.
},
text: {
+ group: 'inline',
toDOM: node => node.text, // Represents text as its actual string value.
},
+ mention: {
+ attrs: {
+ userId: { default: '' },
+ userFullName: { default: '' },
+ mentionType: { default: 'user' },
+ },
+ inline: true,
+ group: 'inline',
+ toDOM: node => [
+ 'span',
+ { class: 'mention' },
+ `@${node.attrs.userFullName}`,
+ ],
+ },
},
});
@@ -121,6 +145,139 @@ describe('appendSignature', () => {
});
});
+describe('stripUnsupportedMarkdown', () => {
+ const richSignature =
+ '**Bold** _italic_ [link](http://example.com) ';
+
+ it('keeps all formatting for Email channel (supports image, link, strong, em)', () => {
+ const result = stripUnsupportedMarkdown(richSignature, 'Channel::Email');
+ expect(result).toContain('**Bold**');
+ expect(result).toContain('_italic_');
+ expect(result).toContain('[link](http://example.com)');
+ expect(result).toContain('');
+ });
+ it('strips images but keeps bold/italic for Api channel', () => {
+ const result = stripUnsupportedMarkdown(richSignature, 'Channel::Api');
+ expect(result).toContain('**Bold**');
+ expect(result).toContain('_italic_');
+ expect(result).toContain('link'); // link text kept
+ expect(result).not.toContain('[link]('); // link syntax removed
+ expect(result).not.toContain('; // image removed
+ });
+ it('strips images but keeps bold/italic/link for Telegram channel', () => {
+ const result = stripUnsupportedMarkdown(richSignature, 'Channel::Telegram');
+ expect(result).toContain('**Bold**');
+ expect(result).toContain('_italic_');
+ expect(result).toContain('[link](http://example.com)');
+ expect(result).not.toContain(';
+ });
+ it('strips all formatting for SMS channel', () => {
+ const result = stripUnsupportedMarkdown(richSignature, 'Channel::Sms');
+ expect(result).toContain('Bold');
+ expect(result).toContain('italic');
+ expect(result).toContain('link');
+ expect(result).not.toContain('**');
+ expect(result).not.toContain('_');
+ expect(result).not.toContain('[');
+ expect(result).not.toContain(';
+ });
+ it('returns empty string for empty input', () => {
+ expect(stripUnsupportedMarkdown('', 'Channel::Api')).toBe('');
+ expect(stripUnsupportedMarkdown(null, 'Channel::Api')).toBe('');
+ });
+
+ describe('with cleanWhitespace parameter', () => {
+ const textWithWhitespace =
+ '**Bold** text\n\nWith multiple\n\nLine breaks\n\n And spaces ';
+
+ it('cleans whitespace when cleanWhitespace=true (default)', () => {
+ const result = stripUnsupportedMarkdown(
+ textWithWhitespace,
+ 'Channel::Api',
+ true
+ );
+ expect(result).toBe(
+ '**Bold** text\nWith multiple\nLine breaks\nAnd spaces'
+ );
+ expect(result).not.toContain('\n\n');
+ expect(result).not.toContain(' ');
+ });
+
+ it('preserves whitespace when cleanWhitespace=false', () => {
+ const result = stripUnsupportedMarkdown(
+ textWithWhitespace,
+ 'Channel::Api',
+ false
+ );
+ expect(result).toContain('\n\n');
+ expect(result).toContain(' And spaces ');
+ expect(result).toBe(
+ '**Bold** text\n\nWith multiple\n\nLine breaks\n\n And spaces '
+ );
+ });
+
+ it('strips formatting but preserves whitespace for messages', () => {
+ const messageWithFormatting = '**Bold**\n\n`code`\n\nNormal text';
+ const result = stripUnsupportedMarkdown(
+ messageWithFormatting,
+ 'Channel::Sms',
+ false
+ );
+ expect(result).toBe('Bold\n\ncode\n\nNormal text');
+ expect(result).toContain('\n\n');
+ expect(result).not.toContain('**');
+ expect(result).not.toContain('`');
+ });
+ });
+});
+
+describe('appendSignature with channelType', () => {
+ const signatureWithImage =
+ 'Thanks\n';
+
+ it('keeps images for Email channel', () => {
+ const result = appendSignature(
+ 'Hello',
+ signatureWithImage,
+ 'Channel::Email'
+ );
+ expect(result).toContain(';
+ });
+ it('keeps images for WebWidget channel', () => {
+ const result = appendSignature(
+ 'Hello',
+ signatureWithImage,
+ 'Channel::WebWidget'
+ );
+ expect(result).toContain(';
+ });
+ it('strips images but keeps text for Api channel', () => {
+ const result = appendSignature('Hello', signatureWithImage, 'Channel::Api');
+ expect(result).not.toContain(';
+ expect(result).toContain('Thanks');
+ });
+ it('strips images but keeps text for WhatsApp channel', () => {
+ const result = appendSignature(
+ 'Hello',
+ signatureWithImage,
+ 'Channel::Whatsapp'
+ );
+ expect(result).not.toContain(';
+ expect(result).toContain('Thanks');
+ });
+ it('keeps images when channelType is not provided', () => {
+ const result = appendSignature('Hello', signatureWithImage);
+ expect(result).toContain(';
+ });
+ it('keeps bold/italic for channels that support them', () => {
+ const boldSignature = '**Bold** *italic* Thanks';
+ const result = appendSignature('Hello', boldSignature, 'Channel::Api');
+ // Api supports strong and em
+ expect(result).toContain('**Bold**');
+ expect(result).toContain('*italic*');
+ });
+});
+
describe('cleanSignature', () => {
it('removes any instance of horizontal rule', () => {
const options = [
@@ -177,6 +334,69 @@ describe('removeSignature', () => {
'This is a test\n\n'
);
});
+ it('strips blank-paragraph marker before the delimiter', () => {
+ expect(removeSignature('hey\n\n\\\n--\n\nHello there', 'Hello there')).toBe(
+ 'hey'
+ );
+ });
+ it('strips multiple consecutive blank-paragraph markers before the delimiter', () => {
+ expect(
+ removeSignature('wewe\n\n\\\n\\\n\\\n--\n\nHello there', 'Hello there')
+ ).toBe('wewe');
+ });
+ it('strips dangling hardbreak when signature shared a paragraph with "--"', () => {
+ expect(removeSignature('hey\n\n--\\\nHello there', 'Hello there')).toBe(
+ 'hey\n\n'
+ );
+ });
+ it('preserves trailing backslash in user text when appending', () => {
+ expect(appendSignature('The path is C:\\', 'Best\nAgent')).toContain(
+ 'C:\\'
+ );
+ expect(appendSignature('C:\\\n', 'Best\nAgent')).toContain('C:\\');
+ expect(appendSignature('C:\\\n\n', 'Best\nAgent')).toContain('C:\\');
+ });
+ it('preserves trailing backslash in user text when removing', () => {
+ expect(removeSignature('C:\\\n--\n\nBest\nAgent', 'Best\nAgent')).toContain(
+ 'C:\\'
+ );
+ expect(removeSignature('C:\\\n--', 'no matching sig')).toContain('C:\\');
+ expect(removeSignature('C:\\\nBest\\\nAgent', 'Best\nAgent')).toContain(
+ 'C:\\'
+ );
+ expect(removeSignature('notes\n\\\n--', 'no matching sig')).toContain('\\');
+ });
+});
+
+describe('removeSignature with stripped signature', () => {
+ const signatureWithImage =
+ 'Thanks\n';
+
+ it('removes stripped signature from body', () => {
+ // Simulate a body where signature was added with images stripped
+ const bodyWithStrippedSignature = 'Hello\n\n--\n\nThanks';
+ const result = removeSignature(
+ bodyWithStrippedSignature,
+ signatureWithImage
+ );
+ expect(result).toBe('Hello\n\n');
+ });
+ it('removes original signature from body', () => {
+ // Simulate a body where signature was added with images (using cleanSignature format)
+ const cleanedSig = cleanSignature(signatureWithImage);
+ const bodyWithOriginalSignature = `Hello\n\n--\n\n${cleanedSig}`;
+ const result = removeSignature(
+ bodyWithOriginalSignature,
+ signatureWithImage
+ );
+ expect(result).toBe('Hello\n\n');
+ });
+ it('handles signature without images', () => {
+ const simpleSignature = 'Best regards';
+ const body = 'Hello\n\n--\n\nBest regards';
+ const result = removeSignature(body, simpleSignature);
+ expect(result).toBe('Hello\n\n');
+ });
});
describe('replaceSignature', () => {
@@ -235,21 +455,78 @@ describe('extractTextFromMarkdown', () => {
});
});
+describe('stripInlineBase64Images', () => {
+ it('removes markdown data:image base64 images and sets hasInlineImages', () => {
+ const content =
+ 'Hello\n\nWorld';
+ const { sanitizedContent, hasInlineImages } =
+ stripInlineBase64Images(content);
+
+ expect(hasInlineImages).toBe(true);
+ expect(sanitizedContent).not.toContain('data:image/png;base64');
+ expect(sanitizedContent).toContain('Hello');
+ expect(sanitizedContent).toContain('World');
+ });
+
+ it('leaves hosted image markdown unchanged', () => {
+ const content = '';
+ const { sanitizedContent, hasInlineImages } =
+ stripInlineBase64Images(content);
+
+ expect(hasInlineImages).toBe(false);
+ expect(sanitizedContent).toBe(content);
+ });
+
+ it('returns empty hasInlineImages for empty input', () => {
+ expect(stripInlineBase64Images('')).toEqual({
+ sanitizedContent: '',
+ hasInlineImages: false,
+ });
+ });
+});
+
+describe('collapseSelection', () => {
+ it('collapses a text range to a cursor at its head', () => {
+ const editorView = new EditorView(document.body, {
+ state: createEditorState('Hello world'),
+ });
+
+ // Build a TextSelection via the initial selection's constructor (avoids
+ // importing prosemirror-state, which isn't a direct dep).
+ const { doc, selection } = editorView.state;
+ editorView.dispatch(
+ editorView.state.tr.setSelection(selection.constructor.create(doc, 1, 6))
+ );
+ expect(editorView.state.selection.empty).toBe(false);
+
+ collapseSelection(editorView);
+
+ expect(editorView.state.selection.empty).toBe(true);
+ expect(editorView.state.selection.head).toBe(6);
+ });
+
+ it('leaves an already-collapsed selection as a cursor', () => {
+ const editorView = new EditorView(document.body, {
+ state: createEditorState('Hi'),
+ });
+
+ collapseSelection(editorView);
+
+ expect(editorView.state.selection.empty).toBe(true);
+ });
+});
+
describe('insertAtCursor', () => {
it('should return undefined if editorView is not provided', () => {
const result = insertAtCursor(undefined, schema.text('Hello'), 0);
expect(result).toBeUndefined();
});
- it('should unwrap doc nodes that are wrapped in a paragraph', () => {
- const docNode = schema.node('doc', null, [
- schema.node('paragraph', null, [schema.text('Hello')]),
- ]);
-
+ it('should insert text node at cursor position', () => {
const editorState = createEditorState();
const editorView = new EditorView(document.body, { state: editorState });
- insertAtCursor(editorView, docNode, 0);
+ insertAtCursor(editorView, schema.text('Hello'), 0);
// Check if node was unwrapped and inserted correctly
expect(editorView.state.doc.firstChild.firstChild.text).toBe('Hello');
@@ -283,17 +560,17 @@ describe('findNodeToInsertImage', () => {
mockEditorState = {
selection: {
$from: {
- node: jest.fn(() => ({})),
+ node: vi.fn(() => ({})),
},
from: 0,
},
schema: {
nodes: {
image: {
- create: jest.fn(attrs => ({ type: { name: 'image' }, attrs })),
+ create: vi.fn(attrs => ({ type: { name: 'image' }, attrs })),
},
paragraph: {
- create: jest.fn((_, node) => ({
+ create: vi.fn((_, node) => ({
type: { name: 'paragraph' },
content: [node],
})),
@@ -375,67 +652,510 @@ describe('findNodeToInsertImage', () => {
});
});
-describe('setURLWithQueryAndSize', () => {
- let selectedNode;
- let editorView;
+describe('getContentNode', () => {
+ let mockEditorView;
beforeEach(() => {
- selectedNode = {
- setAttribute: jest.fn(),
- };
-
- const tr = {
- setNodeMarkup: jest.fn().mockReturnValue({
- docChanged: true,
- }),
- };
-
- const state = {
- selection: { from: 0 },
- tr,
- };
-
- editorView = {
- state,
- dispatch: jest.fn(),
+ mockEditorView = {
+ state: {
+ schema: {
+ nodes: {
+ mention: {
+ create: vi.fn(attrs => ({
+ type: { name: 'mention' },
+ attrs,
+ })),
+ },
+ },
+ text: vi.fn(content => ({ type: { name: 'text' }, text: content })),
+ },
+ },
};
});
- it('updates the URL with the given size and updates the editor view', () => {
- const size = { height: '20px' };
+ describe('mention node creation', () => {
+ it('creates a user mention node with correct attributes', () => {
+ const userContent = {
+ id: '123',
+ name: 'John Doe',
+ type: 'user',
+ };
- setURLWithQueryAndSize(selectedNode, size, editorView);
+ const result = getContentNode(mockEditorView, 'mention', userContent, {
+ from: 0,
+ to: 5,
+ });
- // Check if the editor view is updated
- expect(editorView.dispatch).toHaveBeenCalledTimes(1);
- });
+ expect(
+ mockEditorView.state.schema.nodes.mention.create
+ ).toHaveBeenCalledWith({
+ userId: '123',
+ userFullName: 'John Doe',
+ mentionType: 'user',
+ });
- it('updates the URL with the given size and updates the editor view with original size', () => {
- const size = { height: 'auto' };
-
- setURLWithQueryAndSize(selectedNode, size, editorView);
-
- // Check if the editor view is updated
- expect(editorView.dispatch).toHaveBeenCalledTimes(1);
- });
-
- it('does not update the editor view if the document has not changed', () => {
- editorView.state.tr.setNodeMarkup = jest.fn().mockReturnValue({
- docChanged: false,
+ expect(result).toEqual({
+ node: {
+ type: { name: 'mention' },
+ attrs: {
+ userId: '123',
+ userFullName: 'John Doe',
+ mentionType: 'user',
+ },
+ },
+ from: 0,
+ to: 5,
+ });
});
- const size = { height: '20px' };
+ it('creates a team mention node with correct attributes', () => {
+ const teamContent = {
+ id: '456',
+ name: 'Support Team',
+ type: 'team',
+ };
- setURLWithQueryAndSize(selectedNode, size, editorView);
+ const result = getContentNode(mockEditorView, 'mention', teamContent, {
+ from: 0,
+ to: 5,
+ });
- // Check if the editor view dispatch was not called
- expect(editorView.dispatch).not.toHaveBeenCalled();
+ expect(
+ mockEditorView.state.schema.nodes.mention.create
+ ).toHaveBeenCalledWith({
+ userId: '456',
+ userFullName: 'Support Team',
+ mentionType: 'team',
+ });
+
+ expect(result).toEqual({
+ node: {
+ type: { name: 'mention' },
+ attrs: {
+ userId: '456',
+ userFullName: 'Support Team',
+ mentionType: 'team',
+ },
+ },
+ from: 0,
+ to: 5,
+ });
+ });
+
+ it('defaults to user mention type when type is not specified', () => {
+ const contentWithoutType = {
+ id: '789',
+ name: 'Jane Smith',
+ };
+
+ getContentNode(mockEditorView, 'mention', contentWithoutType, {
+ from: 0,
+ to: 5,
+ });
+
+ expect(
+ mockEditorView.state.schema.nodes.mention.create
+ ).toHaveBeenCalledWith({
+ userId: '789',
+ userFullName: 'Jane Smith',
+ mentionType: 'user',
+ });
+ });
+
+ it('uses displayName over name when both are provided', () => {
+ const contentWithDisplayName = {
+ id: '101',
+ name: 'john_doe',
+ displayName: 'John Doe (Admin)',
+ type: 'user',
+ };
+
+ getContentNode(mockEditorView, 'mention', contentWithDisplayName, {
+ from: 0,
+ to: 5,
+ });
+
+ expect(
+ mockEditorView.state.schema.nodes.mention.create
+ ).toHaveBeenCalledWith({
+ userId: '101',
+ userFullName: 'John Doe (Admin)',
+ mentionType: 'user',
+ });
+ });
+
+ it('handles missing displayName by falling back to name', () => {
+ const contentWithoutDisplayName = {
+ id: '102',
+ name: 'jane_smith',
+ type: 'user',
+ };
+
+ getContentNode(mockEditorView, 'mention', contentWithoutDisplayName, {
+ from: 0,
+ to: 5,
+ });
+
+ expect(
+ mockEditorView.state.schema.nodes.mention.create
+ ).toHaveBeenCalledWith({
+ userId: '102',
+ userFullName: 'jane_smith',
+ mentionType: 'user',
+ });
+ });
});
- it('does not perform any operations if selectedNode is not provided', () => {
- setURLWithQueryAndSize(null, { height: '20px' }, editorView);
+ describe('unsupported node types', () => {
+ it('returns null node for unsupported type', () => {
+ const result = getContentNode(mockEditorView, 'unsupported', 'content', {
+ from: 0,
+ to: 5,
+ });
- // Ensure the dispatch method wasn't called
- expect(editorView.dispatch).not.toHaveBeenCalled();
+ expect(result).toEqual({
+ node: null,
+ from: 0,
+ to: 5,
+ });
+ });
+ });
+});
+
+describe('getFormattingForEditor', () => {
+ describe('context-specific formatting', () => {
+ it('returns default formatting for Context::Default', () => {
+ const result = getFormattingForEditor('Context::Default');
+
+ expect(result).toEqual(FORMATTING['Context::Default']);
+ });
+
+ it('returns signature formatting for Context::MessageSignature', () => {
+ const result = getFormattingForEditor('Context::MessageSignature');
+
+ expect(result).toEqual(FORMATTING['Context::MessageSignature']);
+ });
+
+ it('returns widget builder formatting for Context::InboxSettings', () => {
+ const result = getFormattingForEditor('Context::InboxSettings');
+
+ expect(result).toEqual(FORMATTING['Context::InboxSettings']);
+ });
+ });
+
+ describe('fallback behavior', () => {
+ it('returns default formatting for unknown channel type', () => {
+ const result = getFormattingForEditor('Channel::Unknown');
+
+ expect(result).toEqual(FORMATTING['Context::Default']);
+ });
+
+ it('returns default formatting for null channel type', () => {
+ const result = getFormattingForEditor(null);
+
+ expect(result).toEqual(FORMATTING['Context::Default']);
+ });
+
+ it('returns default formatting for undefined channel type', () => {
+ const result = getFormattingForEditor(undefined);
+
+ expect(result).toEqual(FORMATTING['Context::Default']);
+ });
+
+ it('returns default formatting for empty string', () => {
+ const result = getFormattingForEditor('');
+
+ expect(result).toEqual(FORMATTING['Context::Default']);
+ });
+ });
+
+ describe('return value structure', () => {
+ it('always returns an object with marks, nodes, and menu properties', () => {
+ const result = getFormattingForEditor('Channel::Email');
+
+ expect(result).toHaveProperty('marks');
+ expect(result).toHaveProperty('nodes');
+ expect(result).toHaveProperty('menu');
+ expect(Array.isArray(result.marks)).toBe(true);
+ expect(Array.isArray(result.nodes)).toBe(true);
+ expect(Array.isArray(result.menu)).toBe(true);
+ });
+ });
+});
+
+describe('stripUnsupportedFormatting', () => {
+ describe('when schema supports all formatting', () => {
+ const fullSchema = {
+ marks: { strong: {}, em: {}, code: {}, strike: {}, link: {} },
+ nodes: { bulletList: {}, orderedList: {}, codeBlock: {}, blockquote: {} },
+ };
+
+ it('preserves all formatting when schema supports it', () => {
+ const content = '**bold** and *italic* and `code`';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+
+ it('preserves links when schema supports them', () => {
+ const content = 'Check [this link](https://example.com)';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+
+ it('preserves autolinks when schema supports links', () => {
+ const content = 'Check out ';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+
+ it('preserves various URI scheme autolinks', () => {
+ const content =
+ 'Email or call ';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+
+ it('preserves email autolinks', () => {
+ const content = 'Contact us at ';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+
+ it('preserves lists when schema supports them', () => {
+ const content = '- item 1\n- item 2\n1. first\n2. second';
+ expect(stripUnsupportedFormatting(content, fullSchema)).toBe(content);
+ });
+ });
+
+ describe('when schema has no formatting support (eg:SMS channel)', () => {
+ const emptySchema = {
+ marks: {},
+ nodes: {},
+ };
+
+ it('strips bold formatting', () => {
+ expect(stripUnsupportedFormatting('**bold text**', emptySchema)).toBe(
+ 'bold text'
+ );
+ expect(stripUnsupportedFormatting('__bold text__', emptySchema)).toBe(
+ 'bold text'
+ );
+ });
+
+ it('strips italic formatting', () => {
+ expect(stripUnsupportedFormatting('*italic text*', emptySchema)).toBe(
+ 'italic text'
+ );
+ expect(stripUnsupportedFormatting('_italic text_', emptySchema)).toBe(
+ 'italic text'
+ );
+ });
+
+ it('preserves underscores in URLs and mid-word positions', () => {
+ // Underscores in URLs should not be stripped as italic formatting
+ expect(
+ stripUnsupportedFormatting(
+ 'https://www.chatwoot.com/new_first_second-third/ssd',
+ emptySchema
+ )
+ ).toBe('https://www.chatwoot.com/new_first_second-third/ssd');
+
+ // Underscores in variable names should not be stripped
+ expect(
+ stripUnsupportedFormatting('some_variable_name', emptySchema)
+ ).toBe('some_variable_name');
+
+ // But actual italic formatting with spaces should still be stripped
+ expect(
+ stripUnsupportedFormatting('hello _world_ there', emptySchema)
+ ).toBe('hello world there');
+ });
+
+ it('strips inline code formatting', () => {
+ expect(stripUnsupportedFormatting('`inline code`', emptySchema)).toBe(
+ 'inline code'
+ );
+ });
+
+ it('strips strikethrough formatting', () => {
+ expect(stripUnsupportedFormatting('~~strikethrough~~', emptySchema)).toBe(
+ 'strikethrough'
+ );
+ });
+
+ it('strips links but keeps text', () => {
+ expect(
+ stripUnsupportedFormatting(
+ 'Check [this link](https://example.com)',
+ emptySchema
+ )
+ ).toBe('Check this link');
+ });
+
+ it('converts autolinks to plain URLs when schema does not support links', () => {
+ const content = 'Visit for more info';
+ const expected = 'Visit https://cegrafic.com/catalogo/ for more info';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+
+ it('handles multiple autolinks in content', () => {
+ const content = 'Check and ';
+ const expected = 'Check https://example.com and https://test.com';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+
+ it('converts URI scheme autolinks to plain text', () => {
+ const content =
+ 'Email or call ';
+ const expected =
+ 'Email mailto:support@example.com or call tel:+1234567890';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+
+ it('converts email autolinks to plain text', () => {
+ const content = 'Reach us at for help';
+ const expected = 'Reach us at admin@chatwoot.com for help';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+
+ it('handles mixed autolink types', () => {
+ const content = 'Visit or email ';
+ const expected = 'Visit https://example.com or email info@example.com';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+
+ it('strips bullet list markers', () => {
+ expect(
+ stripUnsupportedFormatting('- item 1\n- item 2', emptySchema)
+ ).toBe('item 1\nitem 2');
+ expect(
+ stripUnsupportedFormatting('* item 1\n* item 2', emptySchema)
+ ).toBe('item 1\nitem 2');
+ });
+
+ it('strips ordered list markers', () => {
+ expect(
+ stripUnsupportedFormatting('1. first\n2. second', emptySchema)
+ ).toBe('first\nsecond');
+ });
+
+ it('strips code block markers', () => {
+ expect(
+ stripUnsupportedFormatting('```javascript\ncode here\n```', emptySchema)
+ ).toBe('code here\n');
+ });
+
+ it('strips blockquote markers', () => {
+ expect(stripUnsupportedFormatting('> quoted text', emptySchema)).toBe(
+ 'quoted text'
+ );
+ });
+
+ it('handles complex content with multiple formatting types', () => {
+ const content =
+ '**Bold** and *italic* with `code` and [link](url)\n- list item';
+ const expected = 'Bold and italic with code and link\nlist item';
+ expect(stripUnsupportedFormatting(content, emptySchema)).toBe(expected);
+ });
+ });
+
+ describe('when schema has partial support', () => {
+ const partialSchema = {
+ marks: { strong: {}, em: {} },
+ nodes: {},
+ };
+
+ it('preserves supported marks and strips unsupported ones', () => {
+ const content = '**bold** and `code`';
+ expect(stripUnsupportedFormatting(content, partialSchema)).toBe(
+ '**bold** and code'
+ );
+ });
+
+ it('strips unsupported nodes but keeps supported marks', () => {
+ const content = '**bold** text\n- list item';
+ expect(stripUnsupportedFormatting(content, partialSchema)).toBe(
+ '**bold** text\nlist item'
+ );
+ });
+ });
+
+ describe('edge cases', () => {
+ it('returns content unchanged if content is empty', () => {
+ expect(stripUnsupportedFormatting('', {})).toBe('');
+ });
+
+ it('returns content unchanged if content is null', () => {
+ expect(stripUnsupportedFormatting(null, {})).toBe(null);
+ });
+
+ it('returns content unchanged if content is undefined', () => {
+ expect(stripUnsupportedFormatting(undefined, {})).toBe(undefined);
+ });
+
+ it('returns content unchanged if schema is null', () => {
+ expect(stripUnsupportedFormatting('**bold**', null)).toBe('**bold**');
+ });
+
+ it('handles nested formatting correctly', () => {
+ const emptySchema = { marks: {}, nodes: {} };
+ // After stripping bold (**), the remaining *and italic* becomes italic and is stripped too
+ expect(
+ stripUnsupportedFormatting('**bold *and italic***', emptySchema)
+ ).toBe('bold and italic');
+ });
+ });
+});
+
+describe('Menu positioning helpers', () => {
+ const mockEditorView = {
+ coordsAtPos: vi.fn((pos, bias) => {
+ // Return different coords based on position
+ if (bias === 1) return { top: 100, bottom: 120, left: 50, right: 100 };
+ return { top: 100, bottom: 120, left: 150, right: 200 };
+ }),
+ };
+
+ const wrapperRect = { top: 50, bottom: 300, left: 0, right: 400, width: 400 };
+
+ describe('getSelectionCoords', () => {
+ it('returns selection coordinates with onTop flag', () => {
+ const selection = { from: 0, to: 10 };
+ const result = getSelectionCoords(mockEditorView, selection, wrapperRect);
+
+ expect(result).toHaveProperty('start');
+ expect(result).toHaveProperty('end');
+ expect(result).toHaveProperty('selTop');
+ expect(result).toHaveProperty('onTop');
+ });
+ });
+
+ describe('getMenuAnchor', () => {
+ it('returns end.left when menu is below selection', () => {
+ const coords = { start: { left: 50 }, end: { left: 150 }, onTop: false };
+ expect(getMenuAnchor(coords, wrapperRect, false)).toBe(150);
+ });
+
+ it('returns start.left for LTR when menu is above and visible', () => {
+ const coords = { start: { top: 100, left: 50 }, end: {}, onTop: true };
+ expect(getMenuAnchor(coords, wrapperRect, false)).toBe(50);
+ });
+
+ it('returns start.right for RTL when menu is above and visible', () => {
+ const coords = { start: { top: 100, right: 100 }, end: {}, onTop: true };
+ expect(getMenuAnchor(coords, wrapperRect, true)).toBe(100);
+ });
+ });
+
+ describe('calculateMenuPosition', () => {
+ it('returns bounded left and top positions', () => {
+ const coords = {
+ start: { top: 100, bottom: 120, left: 50 },
+ end: { top: 100, bottom: 120, left: 150 },
+ selTop: 100,
+ onTop: false,
+ };
+ const result = calculateMenuPosition(coords, wrapperRect, false);
+
+ expect(result).toHaveProperty('left');
+ expect(result).toHaveProperty('top');
+ expect(result).toHaveProperty('width', 300);
+ expect(result.left).toBeGreaterThanOrEqual(0);
+ });
});
});
diff --git a/app/javascript/dashboard/helper/specs/emailQuoteExtractor.spec.js b/app/javascript/dashboard/helper/specs/emailQuoteExtractor.spec.js
new file mode 100644
index 000000000..20b50581b
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/emailQuoteExtractor.spec.js
@@ -0,0 +1,153 @@
+import { describe, it, expect } from 'vitest';
+import { EmailQuoteExtractor } from '../emailQuoteExtractor.js';
+
+const SAMPLE_EMAIL_HTML = `
+method
+
+On Mon, Sep 29, 2025 at 5:18 PM John shivam@chatwoot.com wrote:
+Hi
+
+On Mon, Sep 29, 2025 at 5:17 PM Shivam Mishra shivam@chatwoot.com wrote:
+Yes, it is.
+On Mon, Sep 29, 2025 at 5:16 PM John from Shaneforwoot < shaneforwoot@gmail.com> wrote:
+
+Hey
+On Mon, Sep 29, 2025 at 4:59 PM John shivam@chatwoot.com wrote:
+This is another quoted quoted text reply
+This is nice
+On Mon, Sep 29, 2025 at 4:21 PM John from Shaneforwoot < > shaneforwoot@gmail.com> wrote:
+Hey there, this is a reply from Chatwoot, notice the quoted text
+Hey there
+This is an email text, enjoy reading this
+-- Shivam Mishra, Chatwoot
+
+
+
+`;
+
+const EMAIL_WITH_SIGNATURE = `
+Latest reply here.
+Thanks,
+Jane Doe
+
+ On Mon, Sep 22, Someone wrote:
+ Previous reply content
+
+`;
+
+const EMAIL_WITH_FOLLOW_UP_CONTENT = `
+
+ Inline quote that should stay
+
+Internal note follows
+Regards,
+`;
+
+describe('EmailQuoteExtractor', () => {
+ it('removes blockquote-based quotes from the email body', () => {
+ const cleanedHtml = EmailQuoteExtractor.extractQuotes(SAMPLE_EMAIL_HTML);
+
+ const container = document.createElement('div');
+ container.innerHTML = cleanedHtml;
+
+ expect(container.querySelectorAll('blockquote').length).toBe(0);
+ expect(container.textContent?.trim()).toBe('method');
+ expect(container.textContent).not.toContain(
+ 'On Mon, Sep 29, 2025 at 5:18 PM'
+ );
+ });
+
+ it('keeps blockquote fallback when it is not the last top-level element', () => {
+ const cleanedHtml = EmailQuoteExtractor.extractQuotes(
+ EMAIL_WITH_FOLLOW_UP_CONTENT
+ );
+
+ const container = document.createElement('div');
+ container.innerHTML = cleanedHtml;
+
+ expect(container.querySelector('blockquote')).not.toBeNull();
+ expect(container.lastElementChild?.tagName).toBe('P');
+ });
+
+ it('detects quote indicators in nested blockquotes', () => {
+ const result = EmailQuoteExtractor.hasQuotes(SAMPLE_EMAIL_HTML);
+ expect(result).toBe(true);
+ });
+
+ it('does not flag blockquotes that are followed by other elements', () => {
+ expect(EmailQuoteExtractor.hasQuotes(EMAIL_WITH_FOLLOW_UP_CONTENT)).toBe(
+ false
+ );
+ });
+
+ it('returns false when no quote indicators are present', () => {
+ const html = 'Plain content
';
+ expect(EmailQuoteExtractor.hasQuotes(html)).toBe(false);
+ });
+
+ it('removes trailing blockquotes while preserving trailing signatures', () => {
+ const cleanedHtml = EmailQuoteExtractor.extractQuotes(EMAIL_WITH_SIGNATURE);
+
+ expect(cleanedHtml).toContain('Thanks,
');
+ expect(cleanedHtml).toContain('Jane Doe
');
+ expect(cleanedHtml).not.toContain(' {
+ expect(EmailQuoteExtractor.hasQuotes(EMAIL_WITH_SIGNATURE)).toBe(true);
+ });
+
+ describe('HTML sanitization', () => {
+ it('removes onerror handlers from img tags in extractQuotes', () => {
+ const maliciousHtml = 'Hello
';
+ const cleanedHtml = EmailQuoteExtractor.extractQuotes(maliciousHtml);
+
+ expect(cleanedHtml).not.toContain('onerror');
+ expect(cleanedHtml).toContain('Hello
');
+ });
+
+ it('removes onerror handlers from img tags in hasQuotes', () => {
+ const maliciousHtml = 'Hello
';
+ // Should not throw and should safely check for quotes
+ const result = EmailQuoteExtractor.hasQuotes(maliciousHtml);
+ expect(result).toBe(false);
+ });
+
+ it('removes script tags in extractQuotes', () => {
+ const maliciousHtml =
+ 'Content
More
';
+ const cleanedHtml = EmailQuoteExtractor.extractQuotes(maliciousHtml);
+
+ expect(cleanedHtml).not.toContain('\n ',
+ '\n \n ',
website_token: 'yZ7USzaEs7hrwUAHLGwjbxJ1',
selected_feature_flags: ['attachments', 'emoji_picker', 'end_conversation'],
reply_time: 'in_a_few_minutes',
@@ -636,16 +641,16 @@ export const statusFilterOptions = [
];
export const languages = allLanguages;
export const countries = allCountries;
-export const MESSAGE_CONDITION_VALUES = [
- {
- id: 'incoming',
- name: 'Incoming Message',
- },
- {
- id: 'outgoing',
- name: 'Outgoing Message',
- },
-];
+
+export const messageTypeOptions = MESSAGE_CONDITION_VALUES.map(item => ({
+ id: item.id,
+ name: `AUTOMATION.MESSAGE_TYPES.${item.i18nKey}`,
+}));
+
+export const priorityOptions = PRIORITY_CONDITION_VALUES.map(item => ({
+ id: item.id,
+ name: `AUTOMATION.PRIORITY_TYPES.${item.i18nKey}`,
+}));
export const automationToSubmit = {
name: 'Fayaz',
diff --git a/app/javascript/dashboard/helper/specs/fixtures/conversationFixtures.js b/app/javascript/dashboard/helper/specs/fixtures/conversationFixtures.js
new file mode 100644
index 000000000..9a53c6c6d
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/fixtures/conversationFixtures.js
@@ -0,0 +1,185 @@
+export const conversationData = {
+ meta: {
+ sender: {
+ additional_attributes: {
+ created_at_ip: '127.0.0.1',
+ },
+ availability_status: 'offline',
+ email: null,
+ id: 5017687,
+ name: 'long-flower-143',
+ phone_number: null,
+ thumbnail: '',
+ custom_attributes: {},
+ },
+ channel: 'Channel::WebWidget',
+ assignee: {
+ account_id: 1,
+ availability_status: 'offline',
+ confirmed: true,
+ email: 'muhsin@chatwoot.com',
+ available_name: 'Muhsin Keloth',
+ id: 21,
+ name: 'Muhsin Keloth',
+ role: 'administrator',
+ thumbnail: 'http://example.com/image.png',
+ },
+ },
+ id: 5815,
+ messages: [
+ {
+ id: 438072,
+ content: 'Campaign after 5 seconds',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5811,
+ message_type: 1,
+ created_at: 1620980262,
+ updated_at: '2021-05-14T08:17:42.041Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: null,
+ content_attributes: {},
+ sender_type: 'User',
+ sender_id: 1,
+ external_source_ids: {},
+ },
+ {
+ id: 4382131101,
+ content: 'Hello',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5815,
+ message_type: 0,
+ created_at: 1621145476,
+ updated_at: '2021-05-16T05:48:43.910Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: 'text',
+ content_attributes: {},
+ sender_type: null,
+ sender_id: null,
+ external_source_ids: {},
+ },
+ {
+ id: 438100,
+ content: 'Hey',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5815,
+ message_type: 0,
+ created_at: 1621145476,
+ updated_at: '2021-05-16T05:48:43.910Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: 'text',
+ content_attributes: {},
+ sender_type: null,
+ sender_id: null,
+ external_source_ids: {},
+ },
+ ],
+ inbox_id: 37,
+ status: 'open',
+ muted: false,
+ can_reply: true,
+ timestamp: 1621144123,
+ contact_last_seen_at: 0,
+ agent_last_seen_at: 1621144123,
+ unread_count: 0,
+ additional_attributes: {
+ browser: {
+ device_name: 'Unknown',
+ browser_name: 'Chrome',
+ platform_name: 'macOS',
+ browser_version: '90.0.4430.212',
+ platform_version: '10.15.7',
+ },
+ widget_language: null,
+ browser_language: 'en',
+ },
+ account_id: 1,
+ labels: [],
+};
+
+export const lastMessageData = {
+ id: 438100,
+ content: 'Hey',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5815,
+ message_type: 0,
+ created_at: 1621145476,
+ updated_at: '2021-05-16T05:48:43.910Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: 'text',
+ content_attributes: {},
+ sender_type: null,
+ sender_id: null,
+ external_source_ids: {},
+};
+
+export const readMessagesData = [
+ {
+ id: 438072,
+ content: 'Campaign after 5 seconds',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5811,
+ message_type: 1,
+ created_at: 1620980262,
+ updated_at: '2021-05-14T08:17:42.041Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: null,
+ content_attributes: {},
+ sender_type: 'User',
+ sender_id: 1,
+ external_source_ids: {},
+ },
+];
+
+export const unReadMessagesData = [
+ {
+ id: 4382131101,
+ content: 'Hello',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5815,
+ message_type: 0,
+ created_at: 1621145476,
+ updated_at: '2021-05-16T05:48:43.910Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: 'text',
+ content_attributes: {},
+ sender_type: null,
+ sender_id: null,
+ external_source_ids: {},
+ },
+ {
+ id: 438100,
+ content: 'Hey',
+ account_id: 1,
+ inbox_id: 37,
+ conversation_id: 5815,
+ message_type: 0,
+ created_at: 1621145476,
+ updated_at: '2021-05-16T05:48:43.910Z',
+ private: false,
+ status: 'sent',
+ source_id: null,
+ content_type: 'text',
+ content_attributes: {},
+ sender_type: null,
+ sender_id: null,
+ external_source_ids: {},
+ },
+];
diff --git a/app/javascript/dashboard/helper/specs/inbox.spec.js b/app/javascript/dashboard/helper/specs/inbox.spec.js
index 7a9d71e79..775f05d3a 100644
--- a/app/javascript/dashboard/helper/specs/inbox.spec.js
+++ b/app/javascript/dashboard/helper/specs/inbox.spec.js
@@ -1,4 +1,9 @@
-import { getInboxClassByType, getInboxWarningIconClass } from '../inbox';
+import {
+ INBOX_TYPES,
+ getInboxClassByType,
+ getInboxIconByType,
+ getInboxWarningIconClass,
+} from '../inbox';
describe('#Inbox Helpers', () => {
describe('getInboxClassByType', () => {
@@ -33,6 +38,125 @@ describe('#Inbox Helpers', () => {
it('should return correct class for Email', () => {
expect(getInboxClassByType('Channel::Email')).toEqual('mail');
});
+ it('should return correct class for TikTok', () => {
+ expect(getInboxClassByType(INBOX_TYPES.TIKTOK)).toEqual('brand-tiktok');
+ });
+ });
+
+ describe('getInboxIconByType', () => {
+ describe('fill variant (default)', () => {
+ it('returns correct icon for web widget', () => {
+ expect(getInboxIconByType(INBOX_TYPES.WEB)).toBe('i-ri-global-fill');
+ });
+
+ it('returns correct icon for Facebook', () => {
+ expect(getInboxIconByType(INBOX_TYPES.FB)).toBe('i-ri-messenger-fill');
+ });
+
+ it('returns correct icon for Twitter', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TWITTER)).toBe(
+ 'i-ri-twitter-x-fill'
+ );
+ });
+
+ it('returns correct icon for WhatsApp', () => {
+ expect(getInboxIconByType(INBOX_TYPES.WHATSAPP)).toBe(
+ 'i-ri-whatsapp-fill'
+ );
+ });
+
+ it('returns correct icon for API', () => {
+ expect(getInboxIconByType(INBOX_TYPES.API)).toBe('i-ri-cloudy-fill');
+ });
+
+ it('returns correct icon for Email', () => {
+ expect(getInboxIconByType(INBOX_TYPES.EMAIL)).toBe('i-ri-mail-fill');
+ });
+
+ it('returns correct icon for Telegram', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TELEGRAM)).toBe(
+ 'i-ri-telegram-fill'
+ );
+ });
+
+ it('returns correct icon for Line', () => {
+ expect(getInboxIconByType(INBOX_TYPES.LINE)).toBe('i-ri-line-fill');
+ });
+
+ it('returns correct icon for TikTok', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TIKTOK)).toBe('i-ri-tiktok-fill');
+ });
+
+ it('returns default icon for unknown type', () => {
+ expect(getInboxIconByType('UNKNOWN_TYPE')).toBe('i-ri-chat-1-fill');
+ });
+
+ it('returns default icon for undefined type', () => {
+ expect(getInboxIconByType(undefined)).toBe('i-ri-chat-1-fill');
+ });
+ });
+
+ describe('line variant', () => {
+ it('returns correct line icon for web widget', () => {
+ expect(getInboxIconByType(INBOX_TYPES.WEB, null, 'line')).toBe(
+ 'i-woot-website'
+ );
+ });
+
+ it('returns correct line icon for Facebook', () => {
+ expect(getInboxIconByType(INBOX_TYPES.FB, null, 'line')).toBe(
+ 'i-woot-messenger'
+ );
+ });
+
+ it('returns correct line icon for TikTok', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TIKTOK, null, 'line')).toBe(
+ 'i-woot-tiktok'
+ );
+ });
+
+ it('returns correct line icon for unknown type', () => {
+ expect(getInboxIconByType('UNKNOWN_TYPE', null, 'line')).toBe(
+ 'i-ri-chat-1-line'
+ );
+ });
+ });
+
+ describe('Twilio cases', () => {
+ describe('fill variant', () => {
+ it('returns WhatsApp icon for Twilio WhatsApp number', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'whatsapp')).toBe(
+ 'i-ri-whatsapp-fill'
+ );
+ });
+
+ it('returns SMS icon for regular Twilio number', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'sms')).toBe(
+ 'i-ri-chat-1-fill'
+ );
+ });
+
+ it('returns SMS icon when phone number is undefined', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TWILIO, undefined)).toBe(
+ 'i-ri-chat-1-fill'
+ );
+ });
+ });
+
+ describe('line variant', () => {
+ it('returns WhatsApp line icon for Twilio WhatsApp number', () => {
+ expect(
+ getInboxIconByType(INBOX_TYPES.TWILIO, 'whatsapp', 'line')
+ ).toBe('i-woot-whatsapp');
+ });
+
+ it('returns SMS line icon for regular Twilio number', () => {
+ expect(getInboxIconByType(INBOX_TYPES.TWILIO, 'sms', 'line')).toBe(
+ 'i-ri-chat-1-line'
+ );
+ });
+ });
+ });
});
describe('getInboxWarningIconClass', () => {
diff --git a/app/javascript/dashboard/helper/specs/macrosHelper.spec.js b/app/javascript/dashboard/helper/specs/macrosHelper.spec.js
index 26e435826..fb5b62b38 100644
--- a/app/javascript/dashboard/helper/specs/macrosHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/macrosHelper.spec.js
@@ -36,7 +36,7 @@ describe('#resolveActionName', () => {
expect(resolveActionName(MACRO_ACTION_TYPES[1].key)).not.toEqual(
MACRO_ACTION_TYPES[0].label
);
- expect(resolveActionName('change_priority')).toEqual('Change Priority');
+ expect(resolveActionName('change_priority')).toEqual('CHANGE_PRIORITY'); // Translated
});
});
@@ -45,6 +45,10 @@ describe('#resolveTeamIds', () => {
const resolvedTeams = '⚙️ sales team, 🤷♂️ fayaz';
expect(resolveTeamIds(teams, [1, 2])).toEqual(resolvedTeams);
});
+
+ it('resolves nil as None', () => {
+ expect(resolveTeamIds(teams, ['nil'])).toEqual('None');
+ });
});
describe('#resolveLabels', () => {
@@ -59,6 +63,10 @@ describe('#resolveAgents', () => {
const resolvedAgents = 'John Doe';
expect(resolveAgents(agents, [1])).toEqual(resolvedAgents);
});
+
+ it('resolves nil and self values', () => {
+ expect(resolveAgents(agents, ['nil', 'self'])).toEqual('None, Self');
+ });
});
describe('#getFileName', () => {
diff --git a/app/javascript/dashboard/helper/specs/permissionsHelper.spec.js b/app/javascript/dashboard/helper/specs/permissionsHelper.spec.js
new file mode 100644
index 000000000..7fe26119d
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/permissionsHelper.spec.js
@@ -0,0 +1,153 @@
+import {
+ getCurrentAccount,
+ getUserPermissions,
+ hasPermissions,
+ filterItemsByPermission,
+} from '../permissionsHelper';
+
+describe('#getCurrentAccount', () => {
+ it('should return the current account', () => {
+ expect(getCurrentAccount({ accounts: [{ id: 1 }] }, 1)).toEqual({ id: 1 });
+ expect(getCurrentAccount({ accounts: [] }, 1)).toEqual(undefined);
+ });
+});
+
+describe('#getUserPermissions', () => {
+ it('should return the correct permissions', () => {
+ const user = {
+ accounts: [
+ { id: 1, permissions: ['conversations_manage'] },
+ { id: 3, permissions: ['contacts_manage'] },
+ ],
+ };
+ expect(getUserPermissions(user, 1)).toEqual(['conversations_manage']);
+ expect(getUserPermissions(user, '3')).toEqual(['contacts_manage']);
+ expect(getUserPermissions(user, 2)).toEqual([]);
+ });
+});
+
+describe('hasPermissions', () => {
+ it('returns true if permission is present', () => {
+ expect(
+ hasPermissions(['contact_manage'], ['team_manage', 'contact_manage'])
+ ).toBe(true);
+ });
+
+ it('returns true if permission is not present', () => {
+ expect(
+ hasPermissions(['contact_manage'], ['team_manage', 'user_manage'])
+ ).toBe(false);
+ expect(hasPermissions()).toBe(false);
+ expect(hasPermissions([])).toBe(false);
+ });
+});
+
+describe('filterItemsByPermission', () => {
+ const items = {
+ item1: { name: 'Item 1', permissions: ['agent', 'administrator'] },
+ item2: {
+ name: 'Item 2',
+ permissions: [
+ 'conversation_manage',
+ 'conversation_unassigned_manage',
+ 'conversation_participating_manage',
+ ],
+ },
+ item3: { name: 'Item 3', permissions: ['contact_manage'] },
+ item4: { name: 'Item 4', permissions: ['report_manage'] },
+ item5: { name: 'Item 5', permissions: ['knowledge_base_manage'] },
+ item6: {
+ name: 'Item 6',
+ permissions: [
+ 'agent',
+ 'administrator',
+ 'conversation_manage',
+ 'conversation_unassigned_manage',
+ 'conversation_participating_manage',
+ 'contact_manage',
+ 'report_manage',
+ 'knowledge_base_manage',
+ ],
+ },
+ item7: { name: 'Item 7', permissions: [] },
+ };
+
+ const getPermissions = item => item.permissions;
+
+ it('filters items based on user permissions', () => {
+ const userPermissions = ['agent', 'contact_manage', 'report_manage'];
+ const result = filterItemsByPermission(
+ items,
+ userPermissions,
+ getPermissions
+ );
+
+ expect(result).toHaveLength(5);
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item1', name: 'Item 1' })
+ );
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item3', name: 'Item 3' })
+ );
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item4', name: 'Item 4' })
+ );
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item6', name: 'Item 6' })
+ );
+ });
+
+ it('includes items with empty permissions', () => {
+ const userPermissions = [];
+ const result = filterItemsByPermission(
+ items,
+ userPermissions,
+ getPermissions
+ );
+
+ expect(result).toHaveLength(1);
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item7', name: 'Item 7' })
+ );
+ });
+
+ it('uses custom transform function when provided', () => {
+ const userPermissions = ['agent', 'contact_manage'];
+ const customTransform = (key, item) => ({ id: key, title: item.name });
+ const result = filterItemsByPermission(
+ items,
+ userPermissions,
+ getPermissions,
+ customTransform
+ );
+
+ expect(result).toHaveLength(4);
+ expect(result).toContainEqual({ id: 'item1', title: 'Item 1' });
+ expect(result).toContainEqual({ id: 'item3', title: 'Item 3' });
+ expect(result).toContainEqual({ id: 'item6', title: 'Item 6' });
+ });
+
+ it('handles empty items object', () => {
+ const result = filterItemsByPermission({}, ['agent'], getPermissions);
+
+ expect(result).toHaveLength(0);
+ });
+
+ it('handles custom getPermissions function', () => {
+ const customItems = {
+ item1: { name: 'Item 1', requiredPerms: ['agent', 'administrator'] },
+ item2: { name: 'Item 2', requiredPerms: ['contact_manage'] },
+ };
+ const customGetPermissions = item => item.requiredPerms;
+ const result = filterItemsByPermission(
+ customItems,
+ ['agent'],
+ customGetPermissions
+ );
+
+ expect(result).toHaveLength(1);
+ expect(result).toContainEqual(
+ expect.objectContaining({ key: 'item1', name: 'Item 1' })
+ );
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/portalHelper.spec.js b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
index 9c1a47255..e8d200518 100644
--- a/app/javascript/dashboard/helper/specs/portalHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/portalHelper.spec.js
@@ -1,4 +1,8 @@
-import { buildPortalArticleURL, buildPortalURL } from '../portalHelper';
+import {
+ buildLocaleMenuItems,
+ buildPortalArticleURL,
+ buildPortalURL,
+} from '../portalHelper';
describe('PortalHelper', () => {
describe('buildPortalURL', () => {
@@ -25,5 +29,85 @@ 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');
+ });
+ });
+
+ describe('buildLocaleMenuItems', () => {
+ it('disables other actions but keeps customize enabled for the default locale', () => {
+ const items = buildLocaleMenuItems({ isDefault: true, isDraft: false });
+ const customize = items.find(item => item.action === 'customize-content');
+
+ expect(customize).toBeTruthy();
+ expect(customize.disabled).toBeFalsy();
+ expect(
+ items
+ .filter(item => item.action !== 'customize-content')
+ .every(item => item.disabled)
+ ).toBe(true);
+ });
+
+ it('returns publish, customize, and delete actions for draft locales', () => {
+ expect(
+ buildLocaleMenuItems({
+ isDefault: false,
+ isDraft: true,
+ }).map(({ action }) => action)
+ ).toEqual(['publish-locale', 'customize-content', 'delete']);
+ });
+
+ it('returns default, draft, customize, and delete actions for live locales', () => {
+ expect(
+ buildLocaleMenuItems({
+ isDefault: false,
+ isDraft: false,
+ }).map(({ action }) => action)
+ ).toEqual([
+ 'change-default',
+ 'move-to-draft',
+ 'customize-content',
+ 'delete',
+ ]);
+ });
});
});
diff --git a/app/javascript/dashboard/helper/specs/quotedEmailHelper.spec.js b/app/javascript/dashboard/helper/specs/quotedEmailHelper.spec.js
new file mode 100644
index 000000000..bc38d09a8
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/quotedEmailHelper.spec.js
@@ -0,0 +1,461 @@
+import {
+ extractPlainTextFromHtml,
+ getEmailSenderName,
+ getEmailSenderEmail,
+ getEmailDate,
+ formatQuotedEmailDate,
+ getInboxEmail,
+ buildQuotedEmailHeader,
+ buildQuotedEmailHeaderFromContact,
+ buildQuotedEmailHeaderFromInbox,
+ formatQuotedTextAsBlockquote,
+ extractQuotedEmailText,
+ truncatePreviewText,
+ appendQuotedTextToMessage,
+} from '../quotedEmailHelper';
+
+describe('quotedEmailHelper', () => {
+ describe('extractPlainTextFromHtml', () => {
+ it('returns empty string for null or undefined', () => {
+ expect(extractPlainTextFromHtml(null)).toBe('');
+ expect(extractPlainTextFromHtml(undefined)).toBe('');
+ });
+
+ it('strips HTML tags and returns plain text', () => {
+ const html = 'Hello world
';
+ const result = extractPlainTextFromHtml(html);
+ expect(result).toBe('Hello world');
+ });
+
+ it('handles complex HTML structure', () => {
+ const html = '';
+ const result = extractPlainTextFromHtml(html);
+ expect(result).toContain('Line 1');
+ expect(result).toContain('Line 2');
+ });
+
+ it('sanitizes onerror handlers from img tags', () => {
+ const html = 'Hello
';
+ const result = extractPlainTextFromHtml(html);
+ expect(result).toBe('Hello');
+ });
+
+ it('sanitizes script tags', () => {
+ const html = 'Safe
Content
';
+ const result = extractPlainTextFromHtml(html);
+ expect(result).toContain('Safe');
+ expect(result).toContain('Content');
+ expect(result).not.toContain('alert');
+ });
+
+ it('sanitizes onclick handlers', () => {
+ const html = 'Click me
';
+ const result = extractPlainTextFromHtml(html);
+ expect(result).toBe('Click me');
+ });
+ });
+
+ describe('getEmailSenderName', () => {
+ it('returns sender name from lastEmail', () => {
+ const lastEmail = { sender: { name: 'John Doe' } };
+ const result = getEmailSenderName(lastEmail, {});
+ expect(result).toBe('John Doe');
+ });
+
+ it('returns contact name if sender name not available', () => {
+ const lastEmail = { sender: {} };
+ const contact = { name: 'Jane Smith' };
+ const result = getEmailSenderName(lastEmail, contact);
+ expect(result).toBe('Jane Smith');
+ });
+
+ it('returns empty string if neither available', () => {
+ const result = getEmailSenderName({}, {});
+ expect(result).toBe('');
+ });
+
+ it('trims whitespace from names', () => {
+ const lastEmail = { sender: { name: ' John Doe ' } };
+ const result = getEmailSenderName(lastEmail, {});
+ expect(result).toBe('John Doe');
+ });
+ });
+
+ describe('getEmailSenderEmail', () => {
+ it('returns sender email from lastEmail', () => {
+ const lastEmail = { sender: { email: 'john@example.com' } };
+ const result = getEmailSenderEmail(lastEmail, {});
+ expect(result).toBe('john@example.com');
+ });
+
+ it('returns email from contentAttributes if sender email not available', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { from: ['jane@example.com'] },
+ },
+ };
+ const result = getEmailSenderEmail(lastEmail, {});
+ expect(result).toBe('jane@example.com');
+ });
+
+ it('returns contact email as fallback', () => {
+ const lastEmail = {};
+ const contact = { email: 'contact@example.com' };
+ const result = getEmailSenderEmail(lastEmail, contact);
+ expect(result).toBe('contact@example.com');
+ });
+
+ it('trims whitespace from emails', () => {
+ const lastEmail = { sender: { email: ' john@example.com ' } };
+ const result = getEmailSenderEmail(lastEmail, {});
+ expect(result).toBe('john@example.com');
+ });
+ });
+
+ describe('getEmailDate', () => {
+ it('returns parsed date from email metadata', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { date: '2024-01-15T10:30:00Z' },
+ },
+ };
+ const result = getEmailDate(lastEmail);
+ expect(result).toBeInstanceOf(Date);
+ });
+
+ it('returns date from created_at timestamp', () => {
+ const lastEmail = { created_at: 1705318200 };
+ const result = getEmailDate(lastEmail);
+ expect(result).toBeInstanceOf(Date);
+ });
+
+ it('handles millisecond timestamps', () => {
+ const lastEmail = { created_at: 1705318200000 };
+ const result = getEmailDate(lastEmail);
+ expect(result).toBeInstanceOf(Date);
+ });
+
+ it('returns null if no valid date found', () => {
+ const result = getEmailDate({});
+ expect(result).toBeNull();
+ });
+ });
+
+ describe('formatQuotedEmailDate', () => {
+ it('formats date correctly', () => {
+ const date = new Date('2024-01-15T10:30:00Z');
+ const result = formatQuotedEmailDate(date);
+ expect(result).toMatch(/Mon, Jan 15, 2024 at/);
+ });
+
+ it('returns empty string for invalid date', () => {
+ const result = formatQuotedEmailDate('invalid');
+ expect(result).toBe('');
+ });
+ });
+
+ describe('getInboxEmail', () => {
+ it('returns email from contentAttributes.email.to', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { to: ['inbox@example.com'] },
+ },
+ };
+ const result = getInboxEmail(lastEmail, {});
+ expect(result).toBe('inbox@example.com');
+ });
+
+ it('returns inbox email as fallback', () => {
+ const lastEmail = {};
+ const inbox = { email: 'support@example.com' };
+ const result = getInboxEmail(lastEmail, inbox);
+ expect(result).toBe('support@example.com');
+ });
+
+ it('returns empty string if no email found', () => {
+ expect(getInboxEmail({}, {})).toBe('');
+ });
+
+ it('trims whitespace from emails', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { to: [' inbox@example.com '] },
+ },
+ };
+ const result = getInboxEmail(lastEmail, {});
+ expect(result).toBe('inbox@example.com');
+ });
+ });
+
+ describe('buildQuotedEmailHeaderFromContact', () => {
+ it('builds complete header with name and email', () => {
+ const lastEmail = {
+ sender: { name: 'John Doe', email: 'john@example.com' },
+ contentAttributes: {
+ email: { date: '2024-01-15T10:30:00Z' },
+ },
+ };
+ const result = buildQuotedEmailHeaderFromContact(lastEmail, {});
+ expect(result).toContain('John Doe');
+ expect(result).toContain('john@example.com');
+ expect(result).toContain('wrote:');
+ });
+
+ it('builds header without name if not available', () => {
+ const lastEmail = {
+ sender: { email: 'john@example.com' },
+ contentAttributes: {
+ email: { date: '2024-01-15T10:30:00Z' },
+ },
+ };
+ const result = buildQuotedEmailHeaderFromContact(lastEmail, {});
+ expect(result).toContain('');
+ expect(result).not.toContain('undefined');
+ });
+
+ it('returns empty string if missing required data', () => {
+ expect(buildQuotedEmailHeaderFromContact(null, {})).toBe('');
+ expect(buildQuotedEmailHeaderFromContact({}, {})).toBe('');
+ });
+ });
+
+ describe('buildQuotedEmailHeaderFromInbox', () => {
+ it('builds complete header with inbox name and email', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: {
+ date: '2024-01-15T10:30:00Z',
+ to: ['support@example.com'],
+ },
+ },
+ };
+ const inbox = { name: 'Support Team', email: 'support@example.com' };
+ const result = buildQuotedEmailHeaderFromInbox(lastEmail, inbox);
+ expect(result).toContain('Support Team');
+ expect(result).toContain('support@example.com');
+ expect(result).toContain('wrote:');
+ });
+
+ it('builds header without name if not available', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: {
+ date: '2024-01-15T10:30:00Z',
+ to: ['inbox@example.com'],
+ },
+ },
+ };
+ const inbox = { email: 'inbox@example.com' };
+ const result = buildQuotedEmailHeaderFromInbox(lastEmail, inbox);
+ expect(result).toContain('');
+ expect(result).not.toContain('undefined');
+ });
+
+ it('returns empty string if missing required data', () => {
+ expect(buildQuotedEmailHeaderFromInbox(null, {})).toBe('');
+ expect(buildQuotedEmailHeaderFromInbox({}, {})).toBe('');
+ });
+ });
+
+ describe('buildQuotedEmailHeader', () => {
+ it('uses inbox email for outgoing messages (message_type: 1)', () => {
+ const lastEmail = {
+ message_type: 1,
+ contentAttributes: {
+ email: {
+ date: '2024-01-15T10:30:00Z',
+ to: ['support@example.com'],
+ },
+ },
+ };
+ const inbox = { name: 'Support', email: 'support@example.com' };
+ const contact = { name: 'John Doe', email: 'john@example.com' };
+ const result = buildQuotedEmailHeader(lastEmail, contact, inbox);
+ expect(result).toContain('Support');
+ expect(result).toContain('support@example.com');
+ expect(result).not.toContain('John Doe');
+ });
+
+ it('uses contact email for incoming messages (message_type: 0)', () => {
+ const lastEmail = {
+ message_type: 0,
+ sender: { name: 'Jane Smith', email: 'jane@example.com' },
+ contentAttributes: {
+ email: { date: '2024-01-15T10:30:00Z' },
+ },
+ };
+ const inbox = { name: 'Support', email: 'support@example.com' };
+ const contact = { name: 'Jane Smith', email: 'jane@example.com' };
+ const result = buildQuotedEmailHeader(lastEmail, contact, inbox);
+ expect(result).toContain('Jane Smith');
+ expect(result).toContain('jane@example.com');
+ expect(result).not.toContain('Support');
+ });
+
+ it('returns empty string if missing required data', () => {
+ expect(buildQuotedEmailHeader(null, {}, {})).toBe('');
+ expect(buildQuotedEmailHeader({}, {}, {})).toBe('');
+ });
+ });
+
+ describe('formatQuotedTextAsBlockquote', () => {
+ it('formats single line text', () => {
+ const result = formatQuotedTextAsBlockquote('Hello world');
+ expect(result).toBe('> Hello world');
+ });
+
+ it('formats multi-line text', () => {
+ const text = 'Line 1\nLine 2\nLine 3';
+ const result = formatQuotedTextAsBlockquote(text);
+ expect(result).toBe('> Line 1\n> Line 2\n> Line 3');
+ });
+
+ it('includes header if provided', () => {
+ const result = formatQuotedTextAsBlockquote('Hello', 'Header text');
+ expect(result).toContain('> Header text');
+ expect(result).toContain('>\n> Hello');
+ });
+
+ it('handles empty lines correctly', () => {
+ const text = 'Line 1\n\nLine 3';
+ const result = formatQuotedTextAsBlockquote(text);
+ expect(result).toBe('> Line 1\n>\n> Line 3');
+ });
+
+ it('returns empty string for empty input', () => {
+ expect(formatQuotedTextAsBlockquote('')).toBe('');
+ expect(formatQuotedTextAsBlockquote('', '')).toBe('');
+ });
+
+ it('handles Windows line endings', () => {
+ const text = 'Line 1\r\nLine 2';
+ const result = formatQuotedTextAsBlockquote(text);
+ expect(result).toBe('> Line 1\n> Line 2');
+ });
+ });
+
+ describe('extractQuotedEmailText', () => {
+ it('extracts text from textContent.reply', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { textContent: { reply: 'Reply text' } },
+ },
+ };
+ const result = extractQuotedEmailText(lastEmail);
+ expect(result).toBe('Reply text');
+ });
+
+ it('falls back to textContent.full', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { textContent: { full: 'Full text' } },
+ },
+ };
+ const result = extractQuotedEmailText(lastEmail);
+ expect(result).toBe('Full text');
+ });
+
+ it('extracts from htmlContent and converts to plain text', () => {
+ const lastEmail = {
+ contentAttributes: {
+ email: { htmlContent: { reply: 'HTML reply
' } },
+ },
+ };
+ const result = extractQuotedEmailText(lastEmail);
+ expect(result).toBe('HTML reply');
+ });
+
+ it('uses fallback content if structured content not available', () => {
+ const lastEmail = { content: 'Fallback content' };
+ const result = extractQuotedEmailText(lastEmail);
+ expect(result).toBe('Fallback content');
+ });
+
+ it('returns empty string for null or missing email', () => {
+ expect(extractQuotedEmailText(null)).toBe('');
+ expect(extractQuotedEmailText({})).toBe('');
+ });
+ });
+
+ describe('truncatePreviewText', () => {
+ it('returns full text if under max length', () => {
+ const text = 'Short text';
+ const result = truncatePreviewText(text, 80);
+ expect(result).toBe('Short text');
+ });
+
+ it('truncates text exceeding max length', () => {
+ const text = 'A'.repeat(100);
+ const result = truncatePreviewText(text, 80);
+ expect(result).toHaveLength(80);
+ expect(result).toContain('...');
+ });
+
+ it('collapses multiple spaces', () => {
+ const text = 'Text with spaces';
+ const result = truncatePreviewText(text);
+ expect(result).toBe('Text with spaces');
+ });
+
+ it('trims whitespace', () => {
+ const text = ' Text with spaces ';
+ const result = truncatePreviewText(text);
+ expect(result).toBe('Text with spaces');
+ });
+
+ it('returns empty string for empty input', () => {
+ expect(truncatePreviewText('')).toBe('');
+ expect(truncatePreviewText(' ')).toBe('');
+ });
+
+ it('uses default max length of 80', () => {
+ const text = 'A'.repeat(100);
+ const result = truncatePreviewText(text);
+ expect(result).toHaveLength(80);
+ });
+ });
+
+ describe('appendQuotedTextToMessage', () => {
+ it('appends quoted text to message', () => {
+ const message = 'My reply';
+ const quotedText = 'Original message';
+ const header = 'On date sender wrote:';
+ const result = appendQuotedTextToMessage(message, quotedText, header);
+
+ expect(result).toContain('My reply');
+ expect(result).toContain('> On date sender wrote:');
+ expect(result).toContain('> Original message');
+ });
+
+ it('returns only quoted text if message is empty', () => {
+ const result = appendQuotedTextToMessage('', 'Quoted', 'Header');
+ expect(result).toContain('> Header');
+ expect(result).toContain('> Quoted');
+ expect(result).not.toContain('\n\n\n');
+ });
+
+ it('returns message if no quoted text', () => {
+ const result = appendQuotedTextToMessage('Message', '', '');
+ expect(result).toBe('Message');
+ });
+
+ it('handles proper spacing with double newline', () => {
+ const result = appendQuotedTextToMessage('Message', 'Quoted', 'Header');
+ expect(result).toContain('Message\n\n>');
+ });
+
+ it('does not add extra newlines if message already ends with newlines', () => {
+ const result = appendQuotedTextToMessage(
+ 'Message\n\n',
+ 'Quoted',
+ 'Header'
+ );
+ expect(result).not.toContain('\n\n\n');
+ });
+
+ it('adds single newline if message ends with one newline', () => {
+ const result = appendQuotedTextToMessage('Message\n', 'Quoted', 'Header');
+ expect(result).toContain('Message\n\n>');
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/routeHelpers.spec.js b/app/javascript/dashboard/helper/specs/routeHelpers.spec.js
index d473585a1..30cd51ae8 100644
--- a/app/javascript/dashboard/helper/specs/routeHelpers.spec.js
+++ b/app/javascript/dashboard/helper/specs/routeHelpers.spec.js
@@ -1,50 +1,76 @@
import {
getConversationDashboardRoute,
- getCurrentAccount,
- getUserRole,
isAConversationRoute,
+ defaultRedirectPage,
routeIsAccessibleFor,
validateLoggedInRoutes,
isAInboxViewRoute,
} from '../routeHelpers';
-describe('#getCurrentAccount', () => {
- it('should return the current account', () => {
- expect(getCurrentAccount({ accounts: [{ id: 1 }] }, 1)).toEqual({ id: 1 });
- expect(getCurrentAccount({ accounts: [] }, 1)).toEqual(undefined);
- });
-});
-
-describe('#getUserRole', () => {
- it('should return the current role', () => {
- expect(
- getUserRole({ accounts: [{ id: 1, role: 'administrator' }] }, 1)
- ).toEqual('administrator');
- expect(getUserRole({ accounts: [] }, 1)).toEqual(null);
- });
-});
-
describe('#routeIsAccessibleFor', () => {
it('should return the correct access', () => {
- const roleWiseRoutes = { agent: ['conversations'], admin: ['billing'] };
- expect(routeIsAccessibleFor('billing', 'agent', roleWiseRoutes)).toEqual(
- false
- );
- expect(routeIsAccessibleFor('billing', 'admin', roleWiseRoutes)).toEqual(
- true
+ let route = { meta: { permissions: ['administrator'] } };
+ expect(routeIsAccessibleFor(route, ['agent'])).toEqual(false);
+ expect(routeIsAccessibleFor(route, ['administrator'])).toEqual(true);
+ });
+});
+
+describe('#defaultRedirectPage', () => {
+ const to = {
+ params: { accountId: '2' },
+ fullPath: '/app/accounts/2/dashboard',
+ name: 'home',
+ };
+
+ it('should return dashboard route for users with conversation permissions', () => {
+ const permissions = ['conversation_manage', 'agent'];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/dashboard');
+ });
+
+ it('should return contacts route for users with contact permissions', () => {
+ const permissions = ['contact_manage'];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/contacts');
+ });
+
+ it('should return reports route for users with report permissions', () => {
+ const permissions = ['report_manage'];
+ expect(defaultRedirectPage(to, permissions)).toBe(
+ 'accounts/2/reports/overview'
);
});
+
+ it('should return portals route for users with portal permissions', () => {
+ const permissions = ['knowledge_base_manage'];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/portals');
+ });
+
+ it('should return dashboard route as default for users with custom roles', () => {
+ const permissions = ['custom_role'];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/dashboard');
+ });
+
+ it('should return dashboard route for users with administrator role', () => {
+ const permissions = ['administrator'];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/dashboard');
+ });
+
+ it('should return dashboard route for users with multiple permissions', () => {
+ const permissions = [
+ 'contact_manage',
+ 'custom_role',
+ 'conversation_manage',
+ 'agent',
+ 'administrator',
+ ];
+ expect(defaultRedirectPage(to, permissions)).toBe('accounts/2/dashboard');
+ });
});
describe('#validateLoggedInRoutes', () => {
describe('when account access is missing', () => {
it('should return the login route', () => {
expect(
- validateLoggedInRoutes(
- { params: { accountId: 1 } },
- { accounts: [] },
- {}
- )
+ validateLoggedInRoutes({ params: { accountId: 1 } }, { accounts: [] })
).toEqual(`app/login`);
});
});
@@ -53,9 +79,12 @@ describe('#validateLoggedInRoutes', () => {
it('return suspended route', () => {
expect(
validateLoggedInRoutes(
- { name: 'conversations', params: { accountId: 1 } },
- { accounts: [{ id: 1, role: 'agent', status: 'suspended' }] },
- { agent: ['conversations'] }
+ {
+ name: 'conversations',
+ params: { accountId: 1 },
+ meta: { permissions: ['agent'] },
+ },
+ { accounts: [{ id: 1, role: 'agent', status: 'suspended' }] }
)
).toEqual(`accounts/1/suspended`);
});
@@ -65,9 +94,22 @@ describe('#validateLoggedInRoutes', () => {
it('returns null (no action required)', () => {
expect(
validateLoggedInRoutes(
- { name: 'conversations', params: { accountId: 1 } },
- { accounts: [{ id: 1, role: 'agent', status: 'active' }] },
- { agent: ['conversations'] }
+ {
+ name: 'conversations',
+ params: { accountId: 1 },
+ meta: { permissions: ['agent'] },
+ },
+ {
+ permissions: ['agent'],
+ accounts: [
+ {
+ id: 1,
+ role: 'agent',
+ permissions: ['agent'],
+ status: 'active',
+ },
+ ],
+ }
)
).toEqual(null);
});
@@ -76,9 +118,12 @@ describe('#validateLoggedInRoutes', () => {
it('returns dashboard url', () => {
expect(
validateLoggedInRoutes(
- { name: 'conversations', params: { accountId: 1 } },
- { accounts: [{ id: 1, role: 'agent', status: 'active' }] },
- { admin: ['conversations'], agent: [] }
+ {
+ name: 'billing',
+ params: { accountId: 1 },
+ meta: { permissions: ['administrator'] },
+ },
+ { accounts: [{ id: 1, role: 'agent', status: 'active' }] }
)
).toEqual(`accounts/1/dashboard`);
});
@@ -88,8 +133,7 @@ describe('#validateLoggedInRoutes', () => {
expect(
validateLoggedInRoutes(
{ name: 'account_suspended', params: { accountId: 1 } },
- { accounts: [{ id: 1, role: 'agent', status: 'active' }] },
- { agent: ['account_suspended'] }
+ { accounts: [{ id: 1, role: 'agent', status: 'active' }] }
)
).toEqual(`accounts/1/dashboard`);
});
@@ -106,6 +150,51 @@ describe('isAConversationRoute', () => {
expect(isAConversationRoute('conversations_through_team')).toBe(true);
expect(isAConversationRoute('dashboard')).toBe(false);
});
+
+ it('returns true if base conversation route name is provided and includeBase is true', () => {
+ expect(isAConversationRoute('home', true)).toBe(true);
+ expect(isAConversationRoute('conversation_mentions', true)).toBe(true);
+ expect(isAConversationRoute('conversation_unattended', true)).toBe(true);
+ expect(isAConversationRoute('inbox_dashboard', true)).toBe(true);
+ expect(isAConversationRoute('label_conversations', true)).toBe(true);
+ expect(isAConversationRoute('team_conversations', true)).toBe(true);
+ expect(isAConversationRoute('folder_conversations', true)).toBe(true);
+ expect(isAConversationRoute('conversation_participating', true)).toBe(true);
+ });
+
+ it('returns false if base conversation route name is provided and includeBase is false', () => {
+ expect(isAConversationRoute('home', false)).toBe(false);
+ expect(isAConversationRoute('conversation_mentions', false)).toBe(false);
+ expect(isAConversationRoute('conversation_unattended', false)).toBe(false);
+ expect(isAConversationRoute('inbox_dashboard', false)).toBe(false);
+ expect(isAConversationRoute('label_conversations', false)).toBe(false);
+ expect(isAConversationRoute('team_conversations', false)).toBe(false);
+ expect(isAConversationRoute('folder_conversations', false)).toBe(false);
+ expect(isAConversationRoute('conversation_participating', false)).toBe(
+ false
+ );
+ });
+
+ it('returns true if base conversation route name is provided and includeBase and includeExtended is true', () => {
+ expect(isAConversationRoute('home', true, true)).toBe(true);
+ expect(isAConversationRoute('conversation_mentions', true, true)).toBe(
+ true
+ );
+ expect(isAConversationRoute('conversation_unattended', true, true)).toBe(
+ true
+ );
+ expect(isAConversationRoute('inbox_dashboard', true, true)).toBe(true);
+ expect(isAConversationRoute('label_conversations', true, true)).toBe(true);
+ expect(isAConversationRoute('team_conversations', true, true)).toBe(true);
+ expect(isAConversationRoute('folder_conversations', true, true)).toBe(true);
+ expect(isAConversationRoute('conversation_participating', true, true)).toBe(
+ true
+ );
+ });
+
+ it('returns false if base conversation route name is not provided', () => {
+ expect(isAConversationRoute('')).toBe(false);
+ });
});
describe('getConversationDashboardRoute', () => {
@@ -141,4 +230,12 @@ describe('isAInboxViewRoute', () => {
expect(isAInboxViewRoute('inbox_view_conversation')).toBe(true);
expect(isAInboxViewRoute('inbox_conversation')).toBe(false);
});
+
+ it('returns true if base inbox view route name is provided and includeBase is true', () => {
+ expect(isAInboxViewRoute('inbox_view', true)).toBe(true);
+ });
+
+ it('returns false if base inbox view route name is provided and includeBase is false', () => {
+ expect(isAInboxViewRoute('inbox_view')).toBe(false);
+ });
});
diff --git a/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js b/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js
new file mode 100644
index 000000000..0c0bab385
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/snoozeDateParser.spec.js
@@ -0,0 +1,1810 @@
+import {
+ parseDateFromText,
+ generateDateSuggestions,
+} from '../snoozeDateParser';
+
+const now = new Date('2023-06-16T10:00:00');
+
+const examples = [
+ 'mar 20 next year',
+ 'snooze for a day',
+ 'snooze till jan 2028',
+ '3 weeks',
+ '5 d',
+ 'two months',
+ 'half day',
+ 'a week',
+ 'tomorrow',
+ 'tomorrow at 3pm',
+ 'tonight',
+ 'next friday',
+ 'next week',
+ 'next month',
+ 'friday',
+ 'this friday at 13:00',
+ 'march 5th',
+ 'jan 20',
+ 'march 5 at 2pm',
+ 'in 10 days',
+ 'snooze for 2 hours',
+ 'for 3 weeks',
+ 'day after tomorrow',
+ 'this weekend',
+ 'next weekend',
+ 'morning',
+ 'eod',
+ 'at 3pm',
+ '9:30am',
+ '15 jan',
+ '2025-01-15',
+ '01/15/2025',
+ 'tomorrow morning',
+ 'this afternoon',
+ 'in half an hour',
+ '5 minutes from now',
+ // New natural language patterns
+ 'Tonight at 8 PM',
+ 'Tomorrow same time',
+ 'Upcoming Friday',
+ 'Monday of next week',
+ 'Approx 2 hours from now',
+ 'next hour',
+ 'add a deadline on march 30th',
+ 'remind me tomorrow at 9am',
+ 'please snooze for 3 days',
+ 'coming wednesday',
+ 'about 30 minutes from now',
+ 'schedule on jan 15',
+ 'postpone till next week',
+ 'tomorrow this time',
+ 'midnight',
+ 'monday next week',
+ 'next week monday',
+ 'same time friday',
+ 'this time wednesday',
+ 'morning 6am',
+ 'evening 7pm',
+ 'afternoon at 2pm',
+];
+
+describe('snooze examples', () => {
+ examples.forEach(input => {
+ it(`"${input}" parses to a future date`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).not.toBeNull();
+ expect(result.date).toBeInstanceOf(Date);
+ expect(result.date > now).toBe(true);
+ expect(typeof result.unix).toBe('number');
+ });
+ });
+});
+
+const invalidDates = [
+ 'feb 30',
+ 'feb 31',
+ 'apr 31',
+ 'jun 31',
+ 'feb 30 2025',
+ '30 feb',
+ '31st feb 2025',
+ // Past formal dates should also return null
+ '2020-01-15',
+ '01/15/2020',
+ '15-01-2020',
+];
+
+describe('today at past time should roll forward', () => {
+ it('"today at 9am" (already past 10am) should roll to tomorrow', () => {
+ const result = parseDateFromText('today at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"today at 3pm" (still future) should stay today', () => {
+ const result = parseDateFromText('today at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('invalid dates should return null', () => {
+ invalidDates.forEach(input => {
+ it(`"${input}" → null`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).toBeNull();
+ });
+ });
+});
+
+// ─── Regression Test Matrix ───────────────────────────────────────────────────
+
+describe('regression: leap day / end-of-month', () => {
+ const jan30 = new Date('2024-01-30T10:00:00');
+
+ it('feb 29 on leap year (2024) should resolve', () => {
+ const result = parseDateFromText('feb 29', jan30);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+
+ it('feb 29 on non-leap year should return null', () => {
+ const jan2025 = new Date('2025-01-30T10:00:00');
+ const result = parseDateFromText('feb 29 2025', jan2025);
+ expect(result).toBeNull();
+ });
+
+ it('feb 29 2028 explicit leap year should resolve', () => {
+ const result = parseDateFromText('feb 29 2028', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2028);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+
+ it('feb 29 without year in non-leap year scans to next leap year', () => {
+ const mar2025 = new Date('2025-03-01T10:00:00');
+ const result = parseDateFromText('feb 29', mar2025);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2028);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(29);
+ });
+});
+
+describe('regression: "next year" suffix', () => {
+ it('"feb 20 next year" resolves to next year', () => {
+ const result = parseDateFromText('feb 20 next year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(20);
+ });
+
+ it('"20 feb next year" (reversed) resolves to next year', () => {
+ const result = parseDateFromText('20 feb next year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(20);
+ });
+
+ it('"dec 25 next year at 3pm" resolves with time', () => {
+ const result = parseDateFromText('dec 25 next year at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: weekend semantics', () => {
+ it('"this weekend" on Saturday morning should be today', () => {
+ const satMorning = new Date('2023-06-17T07:00:00');
+ const result = parseDateFromText('this weekend', satMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(10);
+ });
+
+ it('"this weekend" on Sunday should be today', () => {
+ const sunMorning = new Date('2023-06-18T07:00:00');
+ const result = parseDateFromText('this weekend', sunMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(18);
+ expect(result.date.getHours()).toEqual(10);
+ });
+
+ it('"next weekend" on Saturday should skip to next Saturday', () => {
+ const satMorning = new Date('2023-06-17T07:00:00');
+ const result = parseDateFromText('next weekend', satMorning);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(24);
+ });
+
+ it('"this weekend" on a weekday should be next Saturday', () => {
+ const result = parseDateFromText('this weekend', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+});
+
+describe('regression: ambiguous numeric dates', () => {
+ it('"01/05/2025" treats first number as month (US format)', () => {
+ const result = parseDateFromText('01/05/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(5);
+ });
+
+ it('"13/05/2025" disambiguates — 13 must be day', () => {
+ const result = parseDateFromText('13/05/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(4);
+ expect(result.date.getDate()).toEqual(13);
+ });
+});
+
+describe('regression: same-time edge cases', () => {
+ it('"today same time" should return null (not future)', () => {
+ const result = parseDateFromText('today same time', now);
+ expect(result).toBeNull();
+ });
+
+ it('"tomorrow same time" preserves hour and minute', () => {
+ const at1430 = new Date('2023-06-16T14:30:00');
+ const result = parseDateFromText('tomorrow same time', at1430);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"tomorrow same time" with seconds does not produce past', () => {
+ const at1030WithSecs = new Date('2023-06-16T10:00:45.500');
+ const result = parseDateFromText('tomorrow same time', at1030WithSecs);
+ expect(result).not.toBeNull();
+ expect(result.date > at1030WithSecs).toBe(true);
+ });
+});
+
+describe('regression: future-only rollover', () => {
+ it('"today morning" at 11am rolls to tomorrow morning', () => {
+ const at11am = new Date('2023-06-16T11:00:00');
+ const result = parseDateFromText('today morning', at11am);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"today afternoon" at 10am stays today', () => {
+ const result = parseDateFromText('today afternoon', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"at 9am" when it is 10am rolls to tomorrow', () => {
+ const result = parseDateFromText('at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+
+ it('past formal date "2020-06-01" returns null', () => {
+ const result = parseDateFromText('2020-06-01', now);
+ expect(result).toBeNull();
+ });
+
+ it('past month-day "jan 1" rolls to next year', () => {
+ const result = parseDateFromText('jan 1', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ });
+
+ it('past month-name with explicit year "jan 5 2024" returns null', () => {
+ const feb2025 = new Date('2025-02-01T10:00:00');
+ const result = parseDateFromText('jan 5 2024', feb2025);
+ expect(result).toBeNull();
+ });
+
+ it('past reversed date with explicit year "5 jan 2024" returns null', () => {
+ const feb2025 = new Date('2025-02-01T10:00:00');
+ const result = parseDateFromText('5 jan 2024', feb2025);
+ expect(result).toBeNull();
+ });
+
+ it('future month-name with explicit year "dec 25 2025" resolves', () => {
+ const result = parseDateFromText('dec 25 2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(11);
+ expect(result.date.getDate()).toEqual(25);
+ });
+});
+
+describe('regression: noise-stripped bare durations', () => {
+ it('"approx 2 hours" resolves (noise stripped to "2 hours")', () => {
+ const result = parseDateFromText('approx 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"about 3 days" resolves', () => {
+ const result = parseDateFromText('about 3 days', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"roughly 30 minutes" resolves', () => {
+ const result = parseDateFromText('roughly 30 minutes', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"~ 1 hour" resolves', () => {
+ const result = parseDateFromText('~ 1 hour', now);
+ expect(result).not.toBeNull();
+ });
+});
+
+describe('regression: invalid meridiem inputs', () => {
+ it('"0am" should return null', () => {
+ const result = parseDateFromText('tomorrow at 0am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"13pm" should return null', () => {
+ const result = parseDateFromText('tomorrow at 13pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0pm" should return null', () => {
+ const result = parseDateFromText('tomorrow at 0pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"12am" is valid (midnight)', () => {
+ const result = parseDateFromText('tomorrow at 12am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(0);
+ });
+
+ it('"12pm" is valid (noon)', () => {
+ const result = parseDateFromText('tomorrow at 12pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+});
+
+describe('regression: strict future (> not >=)', () => {
+ it('"today at 10:00am" when now is exactly 10:00:00 rolls to tomorrow', () => {
+ const exact10 = new Date('2023-06-16T10:00:00.000');
+ const result = parseDateFromText('today at 10am', exact10);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+
+ it('"eod" at exactly 5pm rolls to tomorrow', () => {
+ const exact5pm = new Date('2023-06-16T17:00:00.000');
+ const result = parseDateFromText('eod', exact5pm);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ });
+});
+
+describe('regression: DST / month-end rollovers', () => {
+ it('"in 1 day" always advances by ~24h regardless of DST', () => {
+ const ref = new Date('2025-03-09T01:00:00');
+ const result = parseDateFromText('in 1 day', ref);
+ expect(result).not.toBeNull();
+ const diffMs = result.date.getTime() - ref.getTime();
+ const diffHours = diffMs / (1000 * 60 * 60);
+ // date-fns add({ days: 1 }) adds a calendar day; exact hours vary by TZ
+ expect(diffHours).toBeGreaterThanOrEqual(22);
+ expect(diffHours).toBeLessThanOrEqual(48);
+ });
+
+ it('"tomorrow" at end of month (Jan 31 → Feb 1)', () => {
+ const jan31 = new Date('2025-01-31T10:00:00');
+ const result = parseDateFromText('tomorrow', jan31);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(1);
+ });
+
+ it('"in 1 month" from Jan 31 clamps to Feb 28 (date-fns behavior)', () => {
+ const jan31 = new Date('2025-01-31T10:00:00');
+ const result = parseDateFromText('in 1 month', jan31);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(1);
+ expect(result.date.getDate()).toEqual(28);
+ expect(result.date > jan31).toBe(true);
+ });
+
+ it('"next friday" across year boundary (Dec 29 → Jan 2026)', () => {
+ const dec29 = new Date('2025-12-29T10:00:00');
+ const result = parseDateFromText('next friday', dec29);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2026);
+ expect(result.date.getMonth()).toEqual(0);
+ });
+});
+
+describe('regression: max 999 years cap', () => {
+ it('"jan 1 9999" should return null (>999 years from now)', () => {
+ const result = parseDateFromText('jan 1 9999', now);
+ expect(result).toBeNull();
+ });
+
+ it('"dec 25 2999" should resolve (within 999 years)', () => {
+ const result = parseDateFromText('dec 25 2999', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"9999-01-01" should return null', () => {
+ const result = parseDateFromText('9999-01-01', now);
+ expect(result).toBeNull();
+ });
+});
+
+describe('regression: invalid time in applyTimeOrDefault', () => {
+ it('"next monday at 99" should return null (invalid hour)', () => {
+ const result = parseDateFromText('next monday at 99', now);
+ expect(result).toBeNull();
+ });
+
+ it('"jan 5 at 25" should return null (invalid hour)', () => {
+ const result = parseDateFromText('jan 5 at 25', now);
+ expect(result).toBeNull();
+ });
+
+ it('"friday at 10:99" should return null (invalid minutes)', () => {
+ const result = parseDateFromText('friday at 10:99', now);
+ expect(result).toBeNull();
+ });
+
+ it('"tomorrow at 3pm" is still valid', () => {
+ const result = parseDateFromText('tomorrow at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: zero durations rejected', () => {
+ it('"0 minutes" should return null', () => {
+ const result = parseDateFromText('0 minutes', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0 days" should return null', () => {
+ const result = parseDateFromText('0 days', now);
+ expect(result).toBeNull();
+ });
+
+ it('"in 0 hours" should return null', () => {
+ const result = parseDateFromText('in 0 hours', now);
+ expect(result).toBeNull();
+ });
+
+ it('"0 days from now" should return null', () => {
+ const result = parseDateFromText('0 days from now', now);
+ expect(result).toBeNull();
+ });
+
+ it('"1 minute" is still valid', () => {
+ const result = parseDateFromText('1 minute', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+});
+
+describe('regression: today date with default 9am past now', () => {
+ it('"jun 16" at 10am defaults to 9am which is past → rolls to next year', () => {
+ // now = 2023-06-16T10:00:00 (Friday)
+ // "jun 16" defaults to 9am today → past → futureOrNextYear bumps to 2024
+ const result = parseDateFromText('jun 16', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2024);
+ expect(result.date.getMonth()).toEqual(5);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"jun 16 at 3pm" at 10am stays today (3pm is future)', () => {
+ const result = parseDateFromText('jun 16 at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2023);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: 24h time support', () => {
+ it('"today at 14:30" resolves to 2:30pm today', () => {
+ const result = parseDateFromText('today at 14:30', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"tomorrow at 14:00" resolves', () => {
+ const result = parseDateFromText('tomorrow at 14:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(17);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"jan 15 at 14:00" resolves with 24h time', () => {
+ const result = parseDateFromText('jan 15 at 14:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ expect(result.date.getMinutes()).toEqual(0);
+ });
+
+ it('"next monday 18:00" resolves', () => {
+ const result = parseDateFromText('next monday 18:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(18);
+ });
+
+ it('"friday 16:30" resolves', () => {
+ const result = parseDateFromText('friday 16:30', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(16);
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"day after tomorrow 13:00" resolves', () => {
+ const result = parseDateFromText('day after tomorrow 13:00', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(18);
+ expect(result.date.getHours()).toEqual(13);
+ });
+});
+
+// ─── parseDateFromText direct tests ──────────────────────────────────────────
+
+describe('parseDateFromText: relative durations', () => {
+ it('"in 2 hours" adds 2 hours', () => {
+ const result = parseDateFromText('in 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+
+ it('"half hour" adds 30 minutes', () => {
+ const result = parseDateFromText('half hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"3 days from now" adds 3 days', () => {
+ const result = parseDateFromText('3 days from now', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(19);
+ });
+
+ it('"a week" adds 7 days', () => {
+ const result = parseDateFromText('a week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(23);
+ });
+
+ it('"two months" adds 2 months', () => {
+ const result = parseDateFromText('two months', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(7);
+ });
+});
+
+describe('parseDateFromText: next patterns', () => {
+ it('"next week" returns next Monday 9am', () => {
+ const result = parseDateFromText('next week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(1);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"next month" returns same day next month at 9am', () => {
+ // add(startOfDay(Jun 16), { months: 1 }) → Jul 16
+ const result = parseDateFromText('next month', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(6);
+ expect(result.date.getDate()).toEqual(16);
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"next hour" adds 1 hour', () => {
+ const result = parseDateFromText('next hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(11);
+ });
+});
+
+describe('parseDateFromText: weekday patterns', () => {
+ it('"friday" returns this friday with default time', () => {
+ const result = parseDateFromText('friday', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(5);
+ });
+
+ it('"this wednesday at 2pm" returns wednesday 2pm', () => {
+ const result = parseDateFromText('this wednesday at 2pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(3);
+ expect(result.date.getHours()).toEqual(14);
+ });
+
+ it('"upcoming thursday" returns next thursday', () => {
+ const result = parseDateFromText('upcoming thursday', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(4);
+ });
+});
+
+describe('parseDateFromText: formal date formats', () => {
+ it('"2025-01-15" parses YYYY-MM-DD', () => {
+ const result = parseDateFromText('2025-01-15', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"01/15/2025" parses MM/DD/YYYY', () => {
+ const result = parseDateFromText('01/15/2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"15-01-2025" parses DD-MM-YYYY', () => {
+ const result = parseDateFromText('15-01-2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(15);
+ expect(result.date.getMonth()).toEqual(0);
+ });
+
+ it('"05-04-2027" ambiguous dash → day-first (April 5)', () => {
+ const result = parseDateFromText('05-04-2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(5);
+ expect(result.date.getMonth()).toEqual(3);
+ });
+
+ it('"05.04.2027" ambiguous dot → day-first (April 5)', () => {
+ const result = parseDateFromText('05.04.2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(5);
+ expect(result.date.getMonth()).toEqual(3);
+ });
+
+ it('"05/04/2027" ambiguous slash → month-first (May 4)', () => {
+ const result = parseDateFromText('05/04/2027', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(4);
+ expect(result.date.getDate()).toEqual(4);
+ });
+});
+
+describe('parseDateFromText: returns null for garbage', () => {
+ it('empty string returns null', () => {
+ expect(parseDateFromText('', now)).toBeNull();
+ });
+
+ it('random text returns null', () => {
+ expect(parseDateFromText('hello world', now)).toBeNull();
+ });
+
+ it('null input returns null', () => {
+ expect(parseDateFromText(null, now)).toBeNull();
+ });
+
+ it('number input returns null', () => {
+ expect(parseDateFromText(123, now)).toBeNull();
+ });
+});
+
+describe('regression: mid-text punctuation is stripped', () => {
+ it('"today, at 3pm" resolves (comma stripped)', () => {
+ const result = parseDateFromText('today, at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+
+ it('"tomorrow; 9am" resolves (semicolon stripped)', () => {
+ const result = parseDateFromText('tomorrow; 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(9);
+ });
+
+ it('"jan 15, 2025" resolves (comma after day)', () => {
+ const result = parseDateFromText('jan 15, 2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(15);
+ });
+
+ it('"next friday!" resolves (trailing punctuation)', () => {
+ const result = parseDateFromText('next friday!', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toEqual(5);
+ });
+
+ it('"tomorrow at 3p.m." still works (periods preserved for a.m./p.m.)', () => {
+ const result = parseDateFromText('tomorrow at 3p.m.', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(15);
+ });
+});
+
+describe('regression: contradictory time-of-day + time rejected', () => {
+ it('"morning 7pm" returns null', () => {
+ const result = parseDateFromText('morning 7pm', now);
+ expect(result).toBeNull();
+ });
+
+ it('"evening 6am" returns null', () => {
+ const result = parseDateFromText('evening 6am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"night 8am" returns null', () => {
+ const result = parseDateFromText('night 8am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"afternoon 7am" returns null', () => {
+ const result = parseDateFromText('afternoon 7am', now);
+ expect(result).toBeNull();
+ });
+
+ it('"morning 6am" is valid (consistent)', () => {
+ const result = parseDateFromText('morning 6am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(6);
+ });
+
+ it('"evening 7pm" is valid (consistent)', () => {
+ const result = parseDateFromText('evening 7pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(19);
+ });
+
+ it('"afternoon at 2pm" is valid (consistent)', () => {
+ const result = parseDateFromText('afternoon at 2pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(14);
+ });
+});
+
+describe('generateDateSuggestions', () => {
+ describe('half suggestions', () => {
+ it('"half" returns half hour/day/week/month/year suggestions', () => {
+ const results = generateDateSuggestions('half', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('half hour');
+ expect(labels).toContain('half day');
+ expect(labels).toContain('half week');
+ expect(labels).toContain('half month');
+ expect(labels).toContain('half year');
+ });
+
+ it('"ha" returns half suggestions (partial match)', () => {
+ const results = generateDateSuggestions('ha', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('half hour');
+ expect(labels).toContain('half day');
+ });
+
+ it('"hal" returns half suggestions (partial match)', () => {
+ const results = generateDateSuggestions('hal', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toMatch(/^half /);
+ });
+ });
+
+ describe('word number suggestions', () => {
+ it('"two" returns duration suggestions', () => {
+ const results = generateDateSuggestions('two', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('2 minutes');
+ expect(labels).toContain('2 hours');
+ expect(labels).toContain('2 days');
+ });
+
+ it('"ten" returns duration suggestions', () => {
+ const results = generateDateSuggestions('ten', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('10 minutes');
+ expect(labels).toContain('10 hours');
+ });
+
+ it('"five" returns duration suggestions', () => {
+ const results = generateDateSuggestions('five', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('5 minutes');
+ expect(labels).toContain('5 hours');
+ expect(labels).toContain('5 days');
+ });
+ });
+
+ describe('no seconds in suggestions', () => {
+ it('"2" does not suggest seconds', () => {
+ const results = generateDateSuggestions('2', now);
+ const labels = results.map(r => r.label);
+ expect(labels).not.toContain('2 seconds');
+ expect(labels).toContain('2 minutes');
+ });
+
+ it('"100" does not suggest seconds', () => {
+ const results = generateDateSuggestions('100', now);
+ const labels = results.map(r => r.label);
+ const hasSeconds = labels.some(l => l.includes('seconds'));
+ expect(hasSeconds).toBe(false);
+ });
+ });
+
+ describe('decimal number suggestions', () => {
+ it('"1.5" returns duration suggestions', () => {
+ const results = generateDateSuggestions('1.5', now);
+ const labels = results.map(r => r.label);
+ expect(labels).toContain('1.5 hours');
+ expect(labels).toContain('1.5 days');
+ });
+ });
+
+ describe('caps at MAX_SUGGESTIONS', () => {
+ it('returns at most 5 results', () => {
+ const results = generateDateSuggestions('2', now);
+ expect(results.length).toBeLessThanOrEqual(5);
+ });
+ });
+
+ describe('smart compositional suggestions', () => {
+ it('"mon" suggests monday + time-of-day variants (noon, afternoon, evening, night)', () => {
+ const results = generateDateSuggestions('mon', now);
+ const labels = results.map(r => r.label);
+ // "monday morning" (9am) is deduped with "monday" (default 9am), so noon+ appear
+ expect(labels.some(l => /monday\s+afternoon/.test(l))).toBe(true);
+ expect(labels.some(l => /monday\s+evening/.test(l))).toBe(true);
+ });
+
+ it('"monday" suggests multiple time-of-day variants', () => {
+ const results = generateDateSuggestions('monday', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('monday afternoon'))).toBe(true);
+ expect(labels.some(l => l.includes('monday evening'))).toBe(true);
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ });
+
+ it('"fri" suggests friday + time-of-day variants', () => {
+ const results = generateDateSuggestions('fri', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => /friday/.test(l))).toBe(true);
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ });
+
+ it('"tomorrow m" suggests tomorrow morning', () => {
+ const results = generateDateSuggestions('tomorrow m', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('tomorrow morning'))).toBe(true);
+ });
+
+ it('"tomorrow a" suggests tomorrow afternoon', () => {
+ const results = generateDateSuggestions('tomorrow a', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('tomorrow afternoon'))).toBe(true);
+ });
+
+ it('"next mon" suggests next monday and next month', () => {
+ const results = generateDateSuggestions('next mon', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next mon'))).toBe(true);
+ });
+
+ it('"next monday m" suggests next monday morning', () => {
+ const results = generateDateSuggestions('next monday m', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next monday morning'))).toBe(true);
+ });
+
+ it('"t" suggests today, tonight, tomorrow', () => {
+ const results = generateDateSuggestions('t', now);
+ const labels = results.map(r => r.label);
+ expect(
+ labels.some(l => l === 'today' || l === 'tonight' || l === 'tomorrow')
+ ).toBe(true);
+ });
+
+ it('"n" suggests next week, next month, next weekdays', () => {
+ const results = generateDateSuggestions('n', now);
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => l.includes('next'))).toBe(true);
+ });
+
+ it('all suggestions parse to valid future dates', () => {
+ const inputs = ['mon', 'monday', 'fri', 'tomorrow m', 'next mon', 't'];
+ inputs.forEach(input => {
+ const results = generateDateSuggestions(input, now);
+ results.forEach(r => {
+ expect(r.date).toBeInstanceOf(Date);
+ expect(r.date > now).toBe(true);
+ expect(typeof r.unix).toBe('number');
+ });
+ });
+ });
+ });
+});
+
+describe('bare number + time-of-day context inference', () => {
+ it('"morning 6" parses to 6am', () => {
+ const result = parseDateFromText('morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"evening 7" parses to 7pm (19:00)', () => {
+ const result = parseDateFromText('evening 7', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(19);
+ });
+
+ it('"afternoon 3" parses to 3pm (15:00)', () => {
+ const result = parseDateFromText('afternoon 3', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"night 9" parses to 9pm (21:00)', () => {
+ const result = parseDateFromText('night 9', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(21);
+ });
+
+ it('"tomorrow morning 6" parses to tomorrow 6am', () => {
+ const result = parseDateFromText('tomorrow morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"tomorrow evening 7" parses to tomorrow 7pm', () => {
+ const result = parseDateFromText('tomorrow evening 7', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(19);
+ });
+
+ it('"monday morning 6" parses to next monday 6am', () => {
+ const result = parseDateFromText('monday morning 6', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('"friday evening 8" parses to friday 8pm', () => {
+ const result = parseDateFromText('friday evening 8', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(20);
+ });
+
+ it('explicit meridiem still works: "morning 6am" → 6am', () => {
+ const result = parseDateFromText('morning 6am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(6);
+ });
+
+ it('contradictory meridiem still rejected: "morning 7pm" → null', () => {
+ expect(parseDateFromText('morning 7pm', now)).toBeNull();
+ });
+});
+
+// Pin exact output for ~35 common phrases so any matcher reorder or refactor
+// that changes behavior will fail loudly. Reference: 2023-06-16T10:00:00 (Fri).
+
+describe('golden tests: pinned phrase → exact date/time', () => {
+ // [input, expectedYear, expectedMonth(0-based), expectedDay, expectedHour, expectedMinute]
+ const golden = [
+ // ── Durations ──
+ ['in 30 minutes', 2023, 5, 16, 10, 30],
+ ['in 2 hours', 2023, 5, 16, 12, 0],
+ ['in 3 days', 2023, 5, 19, 10, 0],
+ ['a week', 2023, 5, 23, 10, 0],
+ ['two months', 2023, 7, 16, 10, 0],
+ ['half hour', 2023, 5, 16, 10, 30],
+ ['half day', 2023, 5, 16, 22, 0],
+ ['1.5 hours', 2023, 5, 16, 11, 30],
+ ['1h30m', 2023, 5, 16, 11, 30],
+ ['couple hours', 2023, 5, 16, 12, 0],
+ ['few hours', 2023, 5, 16, 13, 0],
+
+ // ── Relative days ──
+ ['tomorrow', 2023, 5, 17, 9, 0],
+ ['tomorrow at 3pm', 2023, 5, 17, 15, 0],
+ ['tomorrow at 14:30', 2023, 5, 17, 14, 30],
+ ['tonight', 2023, 5, 16, 20, 0],
+ ['today at 3pm', 2023, 5, 16, 15, 0],
+ ['tomorrow morning', 2023, 5, 17, 9, 0],
+ ['tomorrow evening', 2023, 5, 17, 18, 0],
+ ['day after tomorrow', 2023, 5, 18, 9, 0],
+
+ // ── Time-of-day ──
+ ['morning', 2023, 5, 17, 9, 0],
+ ['this afternoon', 2023, 5, 16, 14, 0],
+ ['eod', 2023, 5, 16, 17, 0],
+ ['later today', 2023, 5, 16, 13, 0],
+
+ // ── Standalone time ──
+ ['at 3pm', 2023, 5, 16, 15, 0],
+
+ // ── Next patterns ──
+ ['next hour', 2023, 5, 16, 11, 0],
+ ['next week', 2023, 5, 19, 9, 0],
+ ['next month', 2023, 6, 16, 9, 0],
+
+ // ── Weekdays ──
+ ['friday', 2023, 5, 23, 9, 0],
+ ['monday 3pm', 2023, 5, 19, 15, 0],
+
+ // ── Named dates ──
+ ['jan 15', 2024, 0, 15, 9, 0],
+ ['march 5 at 2pm', 2024, 2, 5, 14, 0],
+ ['dec 25 2025', 2025, 11, 25, 9, 0],
+
+ // ── Month ordinal week ──
+ ['july 1st week', 2023, 6, 1, 9, 0], // July 1st week = July 1
+ ['july 2nd week', 2023, 6, 8, 9, 0], // July 2nd week = July 8
+ ['july 3rd week', 2023, 6, 15, 9, 0], // July 3rd week = July 15
+ ['aug 1st week', 2023, 7, 1, 9, 0], // August 1st week = Aug 1
+ ['feb 2nd week at 3pm', 2024, 1, 8, 15, 0], // Feb 2nd week with time
+ ['march first week', 2024, 2, 1, 9, 0], // Ordinal: first
+ ['march second week', 2024, 2, 8, 9, 0], // Ordinal: second
+ ['april third week', 2024, 3, 15, 9, 0], // Ordinal: third
+ ['may fourth week', 2024, 4, 22, 9, 0], // Ordinal: fourth
+ ['june fifth week', 2023, 5, 29, 9, 0], // Ordinal: fifth (same year since we're before week 5)
+
+ // ── Month ordinal day ──
+ ['april first day', 2024, 3, 1, 9, 0],
+ ['april second day', 2024, 3, 2, 9, 0],
+ ['july third day', 2023, 6, 3, 9, 0],
+ ['march 5th day', 2024, 2, 5, 9, 0],
+ ['jan tenth day at 2pm', 2024, 0, 10, 14, 0],
+
+ // ── Reversed order: ordinal unit of month ──
+ ['first week of april', 2024, 3, 1, 9, 0],
+ ['2nd week of july', 2023, 6, 8, 9, 0],
+ ['third day of march', 2024, 2, 3, 9, 0],
+ ['5th day of jan at 2pm', 2024, 0, 5, 14, 0],
+ ['second week of feb at 3pm', 2024, 1, 8, 15, 0],
+
+ // ── Formal dates ──
+ ['2025-01-15', 2025, 0, 15, 9, 0],
+ ['01/15/2025', 2025, 0, 15, 9, 0],
+
+ // ── Tonight bare-hour (must infer PM, not AM) ──
+ ['tonight 8', 2023, 5, 16, 20, 0],
+ ['tonite 7', 2023, 5, 16, 19, 0],
+ ['tonight 11', 2023, 5, 16, 23, 0],
+ ['today 8', 2023, 5, 17, 8, 0], // 8am is past → rolls to next day
+
+ // ── Shorthand durations ──
+ ['2h', 2023, 5, 16, 12, 0],
+ ['30m', 2023, 5, 16, 10, 30],
+ ['1h30minutes', 2023, 5, 16, 11, 30],
+ ['2hr15min', 2023, 5, 16, 12, 15],
+
+ // ── Couple / few ──
+ ['couple hours', 2023, 5, 16, 12, 0],
+ ['a couple of days', 2023, 5, 18, 10, 0],
+ ['a few minutes', 2023, 5, 16, 10, 3],
+ ['in a few hours', 2023, 5, 16, 13, 0],
+
+ // ── Fortnight ──
+ ['fortnight', 2023, 5, 30, 10, 0],
+ ['in a fortnight', 2023, 5, 30, 10, 0],
+
+ // ── X later ──
+ ['2 days later', 2023, 5, 18, 10, 0],
+ ['a week later', 2023, 5, 23, 10, 0],
+ ['month later', 2023, 6, 16, 10, 0],
+
+ // ── Same time reversed ──
+ ['same time tomorrow', 2023, 5, 17, 10, 0],
+
+ // ── Early / late time of day ──
+ ['early morning', 2023, 5, 17, 8, 0],
+ ['late evening', 2023, 5, 16, 20, 0],
+ ['late night', 2023, 5, 16, 22, 0],
+
+ // ── Beginning / end of next ──
+ ['beginning of next week', 2023, 5, 19, 9, 0],
+ ['start of next week', 2023, 5, 19, 9, 0],
+ ['end of next week', 2023, 5, 23, 17, 0],
+ ['end of next month', 2023, 6, 31, 17, 0],
+ ['beginning of next month', 2023, 6, 1, 9, 0],
+
+ // ── Next business day ──
+ ['next business day', 2023, 5, 19, 9, 0],
+ ['next working day', 2023, 5, 19, 9, 0],
+
+ // ── One and a half ──
+ ['one and a half hours', 2023, 5, 16, 11, 30],
+ ['an hour and a half', 2023, 5, 16, 11, 30],
+
+ // ── Noise prefix: after / within ──
+ ['after 2 hours', 2023, 5, 16, 12, 0],
+ ['within a week', 2023, 5, 23, 10, 0],
+
+ // ── The day after tomorrow ──
+ ['the day after tomorrow', 2023, 5, 18, 9, 0],
+
+ // ── Special ──
+ ['this weekend', 2023, 5, 17, 9, 0],
+ ['end of month', 2023, 5, 30, 17, 0],
+ ];
+
+ golden.forEach(([input, yr, mo, day, hr, min]) => {
+ it(`"${input}" → ${yr}-${String(mo + 1).padStart(2, '0')}-${String(day).padStart(2, '0')} ${String(hr).padStart(2, '0')}:${String(min).padStart(2, '0')}`, () => {
+ const result = parseDateFromText(input, now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toBe(yr);
+ expect(result.date.getMonth()).toBe(mo);
+ expect(result.date.getDate()).toBe(day);
+ expect(result.date.getHours()).toBe(hr);
+ expect(result.date.getMinutes()).toBe(min);
+ });
+ });
+});
+
+describe('regression: month-ordinal week overflow (P1)', () => {
+ it('"feb fifth week" returns null in non-leap year (would overflow into March)', () => {
+ const ref = new Date(2023, 0, 10, 10, 0, 0);
+ expect(parseDateFromText('feb fifth week', ref)).toBeNull();
+ });
+
+ it('"feb fourth week" is still valid', () => {
+ const ref = new Date(2023, 0, 10, 10, 0, 0);
+ const result = parseDateFromText('feb fourth week', ref);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toBe(1);
+ });
+});
+
+describe('localized suggestions with Malayalam translations', () => {
+ const mlTranslations = {
+ UNITS: {
+ MINUTE: 'മിനിറ്റ്',
+ MINUTES: 'മിനിറ്റ്',
+ HOUR: 'മണിക്കൂർ',
+ HOURS: 'മണിക്കൂർ',
+ DAY: 'ദിവസം',
+ DAYS: 'ദിവസം',
+ WEEK: 'ആഴ്ച',
+ WEEKS: 'ആഴ്ച',
+ MONTH: 'മാസം',
+ MONTHS: 'മാസം',
+ YEAR: 'വർഷം',
+ YEARS: 'വർഷം',
+ },
+ HALF: 'അര',
+ NEXT: 'അടുത്ത',
+ THIS: 'ഈ',
+ AT: 'സമയം',
+ IN: 'കഴിഞ്ഞ്',
+ FROM_NOW: 'ഇപ്പോൾ മുതൽ',
+ NEXT_YEAR: 'അടുത്ത വർഷം',
+ MERIDIEM: { AM: 'രാവിലെ', PM: 'വൈകുന്നേരം' },
+ RELATIVE: {
+ TOMORROW: 'നാളെ',
+ DAY_AFTER_TOMORROW: 'മറ്റന്നാൾ',
+ NEXT_WEEK: 'അടുത്ത ആഴ്ച',
+ NEXT_MONTH: 'അടുത്ത മാസം',
+ THIS_WEEKEND: 'ഈ വാരാന്ത്യം',
+ NEXT_WEEKEND: 'അടുത്ത വാരാന്ത്യം',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'രാവിലെ',
+ AFTERNOON: 'ഉച്ചയ്ക്ക്',
+ EVENING: 'വൈകുന്നേരം',
+ NIGHT: 'രാത്രി',
+ NOON: 'ഉച്ച',
+ MIDNIGHT: 'അർദ്ധരാത്രി',
+ },
+ WORD_NUMBERS: {
+ ONE: 'ഒന്ന്',
+ TWO: 'രണ്ട്',
+ THREE: 'മൂന്ന്',
+ FOUR: 'നാല്',
+ FIVE: 'അഞ്ച്',
+ SIX: 'ആറ്',
+ SEVEN: 'ഏഴ്',
+ EIGHT: 'എട്ട്',
+ NINE: 'ഒൻപത്',
+ TEN: 'പത്ത്',
+ TWELVE: 'പന്ത്രണ്ട്',
+ FIFTEEN: 'പതിനഞ്ച്',
+ TWENTY: 'ഇരുപത്',
+ THIRTY: 'മുപ്പത്',
+ },
+ };
+
+ it('Malayalam "നാളെ രാവിലെ 6" parses to tomorrow 6am', () => {
+ const results = generateDateSuggestions('നാളെ രാവിലെ 6', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(6);
+ });
+
+ it('Malayalam "നാളെ" (tomorrow) generates multiple suggestions', () => {
+ const results = generateDateSuggestions('നാളെ', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ expect(results.length).toBeGreaterThanOrEqual(3);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Malayalam suggestion labels are in Malayalam, not English', () => {
+ const results = generateDateSuggestions('നാളെ', now, {
+ translations: mlTranslations,
+ locale: 'ml',
+ });
+ const labels = results.map(r => r.label);
+ expect(labels.some(l => /നാളെ/.test(l))).toBe(true);
+ expect(labels.every(l => !/\btomorrow\b/.test(l))).toBe(true);
+ });
+});
+
+describe('chrono-level patterns', () => {
+ describe('tomorrow at TOD', () => {
+ it('"tomorrow at noon" parses to tomorrow 12pm', () => {
+ const result = parseDateFromText('tomorrow at noon', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(17);
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"tomorrow at midnight" parses to tomorrow 0am', () => {
+ const result = parseDateFromText('tomorrow at midnight', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(0);
+ });
+
+ it('"tomorrow at evening" parses to tomorrow 6pm', () => {
+ const result = parseDateFromText('tomorrow at evening', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(18);
+ });
+ });
+
+ describe('duration at time', () => {
+ it('"in 2 days at 3pm" parses correctly', () => {
+ const result = parseDateFromText('in 2 days at 3pm', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(18);
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"in 1 week at 9am" parses correctly', () => {
+ const result = parseDateFromText('in 1 week at 9am', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(9);
+ });
+ });
+
+ describe('end of period', () => {
+ it('"end of day" parses to today 5pm', () => {
+ const result = parseDateFromText('end of day', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of the week" parses to next friday 5pm', () => {
+ const result = parseDateFromText('end of the week', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDay()).toBe(5);
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of month" parses to last day of month 5pm', () => {
+ const result = parseDateFromText('end of month', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toBe(30);
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"end of month" on last day after 5pm rolls to next month-end', () => {
+ const lastDayLate = new Date('2025-06-30T18:00:00');
+ const result = parseDateFromText('end of month', lastDayLate);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toBe(6);
+ expect(result.date.getDate()).toBe(31);
+ expect(result.date.getHours()).toBe(17);
+ });
+ });
+
+ describe('later today', () => {
+ it('"later today" parses to +3 hours from now', () => {
+ const result = parseDateFromText('later today', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(13);
+ });
+ });
+
+ describe('compound durations', () => {
+ it('"1 hour 30 minutes" parses correctly', () => {
+ const result = parseDateFromText('1 hour 30 minutes', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(11);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+
+ it('"1h30m" parses correctly', () => {
+ const result = parseDateFromText('1h30m', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(11);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+
+ it('"2 hours and 30 minutes" parses correctly', () => {
+ const result = parseDateFromText('2 hours and 30 minutes', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ expect(result.date.getMinutes()).toBe(30);
+ });
+ });
+
+ describe('aliases and shortcuts', () => {
+ it('"tonite" parses to tonight (8pm)', () => {
+ const result = parseDateFromText('tonite', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(20);
+ });
+
+ it('"couple hours" parses to +2 hours', () => {
+ const result = parseDateFromText('couple hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"couple of hours" parses to +2 hours', () => {
+ const result = parseDateFromText('couple of hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(12);
+ });
+
+ it('"few hours" parses to +3 hours', () => {
+ const result = parseDateFromText('few hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(13);
+ });
+
+ it('"nxt week" parses like "next week"', () => {
+ const result = parseDateFromText('nxt week', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"nxt monday" parses like "next monday"', () => {
+ const result = parseDateFromText('nxt monday', now);
+ expect(result).not.toBeNull();
+ });
+ });
+
+ describe('weekday bare hour defaults to PM', () => {
+ it('"monday at 3" parses to 3pm', () => {
+ const result = parseDateFromText('monday at 3', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(15);
+ });
+
+ it('"friday at 5" parses to 5pm', () => {
+ const result = parseDateFromText('friday at 5', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(17);
+ });
+
+ it('"monday at 9" stays 9am (hour >= 8)', () => {
+ const result = parseDateFromText('monday at 9', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toBe(9);
+ });
+ });
+});
+
+describe('dot-delimited dates', () => {
+ it('"12.12.2034" parses to Dec 12 2034', () => {
+ const result = parseDateFromText('12.12.2034', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2034);
+ expect(result.date.getMonth()).toEqual(11);
+ expect(result.date.getDate()).toEqual(12);
+ });
+
+ it('"01.06.2025" parses correctly', () => {
+ const result = parseDateFromText('01.06.2025', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ });
+});
+
+describe('noise word stripping', () => {
+ it('"snooze this for 5 minutes" parses', () => {
+ const result = parseDateFromText('snooze this for 5 minutes', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"please snooze this for half a day" parses', () => {
+ const result = parseDateFromText('please snooze this for half a day', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"snooze this until tomorrow" parses', () => {
+ const result = parseDateFromText('snooze this until tomorrow', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"after ten year" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after ten year', now);
+ expect(result).not.toBeNull();
+ });
+
+ it('"after 2 hours" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after 2 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(12);
+ });
+
+ it('"after 3 days" strips "after" and parses as duration', () => {
+ const result = parseDateFromText('after 3 days', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getDate()).toEqual(19);
+ });
+
+ it('"schedule this for 2025-01-15" parses', () => {
+ const result = parseDateFromText('schedule this for 2025-01-15', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getFullYear()).toEqual(2025);
+ expect(result.date.getMonth()).toEqual(0);
+ expect(result.date.getDate()).toEqual(15);
+ });
+});
+
+describe('half unit parsing', () => {
+ it('"half hour" adds 30 minutes', () => {
+ const result = parseDateFromText('half hour', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMinutes()).toEqual(30);
+ });
+
+ it('"half day" adds 12 hours', () => {
+ const result = parseDateFromText('half day', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getHours()).toEqual(22);
+ });
+
+ it('"half week" parses to a future date', () => {
+ const result = parseDateFromText('half week', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"half month" parses to a future date', () => {
+ const result = parseDateFromText('half month', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"half year" parses to ~6 months ahead', () => {
+ const result = parseDateFromText('half year', now);
+ expect(result).not.toBeNull();
+ expect(result.date.getMonth()).toEqual(11);
+ });
+});
+
+describe('decimal duration parsing (only .5 allowed)', () => {
+ it('"1.5 hours" parses correctly', () => {
+ const result = parseDateFromText('1.5 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"1.5 days" parses correctly', () => {
+ const result = parseDateFromText('1.5 days', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"0.5 hours" parses correctly', () => {
+ const result = parseDateFromText('0.5 hours', now);
+ expect(result).not.toBeNull();
+ expect(result.date > now).toBe(true);
+ });
+
+ it('"1.3 hours" returns null (only .5 allowed)', () => {
+ expect(parseDateFromText('1.3 hours', now)).toBeNull();
+ });
+
+ it('"2.7 days" returns null (only .5 allowed)', () => {
+ expect(parseDateFromText('2.7 days', now)).toBeNull();
+ });
+});
+
+// ─── Multilingual / Localized Input Regressions ─────────────────────────────
+
+describe('generateDateSuggestions — localized input regressions', () => {
+ const arTranslations = {
+ UNITS: {
+ MINUTE: 'دقيقة',
+ MINUTES: 'دقائق',
+ HOUR: 'ساعة',
+ HOURS: 'ساعات',
+ DAY: 'يوم',
+ DAYS: 'أيام',
+ WEEK: 'أسبوع',
+ WEEKS: 'أسابيع',
+ MONTH: 'شهر',
+ MONTHS: 'أشهر',
+ YEAR: 'سنة',
+ YEARS: 'سنوات',
+ },
+ HALF: 'نصف',
+ NEXT: 'القادم',
+ THIS: 'هذا',
+ AT: 'الساعة',
+ IN: 'في',
+ FROM_NOW: 'من الآن',
+ NEXT_YEAR: 'العام المقبل',
+ MERIDIEM: { AM: 'صباحاً', PM: 'مساءً' },
+ RELATIVE: {
+ TOMORROW: 'غداً',
+ DAY_AFTER_TOMORROW: 'بعد غد',
+ NEXT_WEEK: 'الأسبوع القادم',
+ NEXT_MONTH: 'الشهر القادم',
+ THIS_WEEKEND: 'نهاية هذا الأسبوع',
+ NEXT_WEEKEND: 'نهاية الأسبوع القادم',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'صباحاً',
+ AFTERNOON: 'بعد الظهر',
+ EVENING: 'مساءً',
+ NIGHT: 'ليلاً',
+ NOON: 'ظهراً',
+ MIDNIGHT: 'منتصف الليل',
+ },
+ WORD_NUMBERS: {
+ ONE: 'واحد',
+ TWO: 'اثنان',
+ THREE: 'ثلاثة',
+ FOUR: 'أربعة',
+ FIVE: 'خمسة',
+ SIX: 'ستة',
+ SEVEN: 'سبعة',
+ EIGHT: 'ثمانية',
+ NINE: 'تسعة',
+ TEN: 'عشرة',
+ TWELVE: 'اثنا عشر',
+ FIFTEEN: 'خمسة عشر',
+ TWENTY: 'عشرون',
+ THIRTY: 'ثلاثون',
+ },
+ };
+
+ const hiTranslations = {
+ UNITS: {
+ MINUTE: 'मिनट',
+ MINUTES: 'मिनट',
+ HOUR: 'घंटा',
+ HOURS: 'घंटे',
+ DAY: 'दिन',
+ DAYS: 'दिन',
+ WEEK: 'सप्ताह',
+ WEEKS: 'सप्ताह',
+ MONTH: 'महीना',
+ MONTHS: 'महीने',
+ YEAR: 'साल',
+ YEARS: 'साल',
+ },
+ HALF: 'आधा',
+ NEXT: 'अगला',
+ THIS: 'यह',
+ AT: 'बजे',
+ IN: 'में',
+ FROM_NOW: 'अब से',
+ NEXT_YEAR: 'अगले साल',
+ MERIDIEM: { AM: 'सुबह', PM: 'शाम' },
+ RELATIVE: {
+ TOMORROW: 'कल',
+ DAY_AFTER_TOMORROW: 'परसों',
+ NEXT_WEEK: 'अगले सप्ताह',
+ NEXT_MONTH: 'अगले महीने',
+ THIS_WEEKEND: 'इस सप्ताहांत',
+ NEXT_WEEKEND: 'अगले सप्ताहांत',
+ },
+ TIME_OF_DAY: {
+ MORNING: 'सुबह',
+ AFTERNOON: 'दोपहर',
+ EVENING: 'शाम',
+ NIGHT: 'रात',
+ NOON: 'दोपहर',
+ MIDNIGHT: 'आधी रात',
+ },
+ WORD_NUMBERS: {
+ ONE: 'एक',
+ TWO: 'दो',
+ THREE: 'तीन',
+ FOUR: 'चार',
+ FIVE: 'पाँच',
+ SIX: 'छह',
+ SEVEN: 'सात',
+ EIGHT: 'आठ',
+ NINE: 'नौ',
+ TEN: 'दस',
+ TWELVE: 'बारह',
+ FIFTEEN: 'पंद्रह',
+ TWENTY: 'बीस',
+ THIRTY: 'तीस',
+ },
+ };
+
+ const zhTWSnoozeTranslations = {
+ UNITS: {
+ HOUR: '小時',
+ HOURS: '小時',
+ DAY: '天',
+ DAYS: '天',
+ },
+ HALF: '半',
+ RELATIVE: {
+ TOMORROW: '明天',
+ },
+ MERIDIEM: {
+ AM: '上午',
+ PM: '下午',
+ },
+ AFTER: '後',
+ };
+
+ describe('P1: short non-English tokens must NOT produce spurious half-duration suggestions', () => {
+ it('Arabic "غد" does not produce half-duration suggestions', () => {
+ const results = generateDateSuggestions('غد', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ const halfLabels = results.filter(r => /half/i.test(r.label));
+ expect(halfLabels).toHaveLength(0);
+ });
+
+ it('Hindi "सु" does not produce half-duration suggestions', () => {
+ const results = generateDateSuggestions('सु', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ const halfLabels = results.filter(r => /half/i.test(r.label));
+ expect(halfLabels).toHaveLength(0);
+ });
+ });
+
+ describe('P1: MERIDIEM vs TIME_OF_DAY — "tomorrow morning" must parse in locales where AM = morning', () => {
+ it('Arabic "غداً صباحاً" (tomorrow morning) parses correctly', () => {
+ const results = generateDateSuggestions('غداً صباحاً', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ const first = results[0];
+ expect(first.date.getDate()).toBe(17);
+ expect(first.date.getHours()).toBe(9);
+ });
+
+ it('Hindi "कल सुबह" (tomorrow morning) parses correctly', () => {
+ const results = generateDateSuggestions('कल सुबह', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ const first = results[0];
+ expect(first.date.getDate()).toBe(17);
+ expect(first.date.getHours()).toBe(9);
+ });
+ });
+
+ describe('basic localized parsing still works', () => {
+ it('Arabic "غداً" (tomorrow) parses to tomorrow 9am', () => {
+ const results = generateDateSuggestions('غداً', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Hindi "कल" (tomorrow) parses to tomorrow', () => {
+ const results = generateDateSuggestions('कल', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+
+ it('Arabic "غداً،" (tomorrow with attached Arabic comma) parses correctly', () => {
+ const results = generateDateSuggestions('غداً،', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ });
+ });
+
+ describe('localized Unicode digits', () => {
+ it('Arabic-Indic digits parse in time expressions', () => {
+ const results = generateDateSuggestions('غداً الساعة ١٢:٣٠', now, {
+ translations: arTranslations,
+ locale: 'ar',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(12);
+ expect(results[0].date.getMinutes()).toBe(30);
+ });
+
+ it('Devanagari digits parse in time-of-day expressions', () => {
+ const results = generateDateSuggestions('कल सुबह ६', now, {
+ translations: hiTranslations,
+ locale: 'hi',
+ });
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(6);
+ });
+ });
+
+ describe('zh_TW compact CJK inputs', () => {
+ const options = {
+ translations: zhTWSnoozeTranslations,
+ locale: 'zh-TW',
+ };
+
+ it('parses "2小時後" (2 hours from now) without spaces', () => {
+ const results = generateDateSuggestions('2小時後', now, options);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(16);
+ expect(results[0].date.getHours()).toBe(12);
+ expect(results[0].date.getMinutes()).toBe(0);
+ });
+
+ it('parses "半天" (half day) without spaces', () => {
+ const results = generateDateSuggestions('半天', now, options);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(16);
+ expect(results[0].date.getHours()).toBe(22);
+ expect(results[0].date.getMinutes()).toBe(0);
+ });
+
+ it('parses "明天 上午" (tomorrow AM) into tomorrow 9am', () => {
+ const results = generateDateSuggestions('明天 上午', now, options);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].date.getDate()).toBe(17);
+ expect(results[0].date.getHours()).toBe(9);
+ expect(results[0].date.getMinutes()).toBe(0);
+ });
+ });
+});
+
+describe('no-space duration suggestions', () => {
+ it('"1d" generates day suggestions', () => {
+ const results = generateDateSuggestions('1d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 days');
+ });
+
+ it('"2min" generates minute suggestions', () => {
+ const results = generateDateSuggestions('2min', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 minutes');
+ });
+
+ it('"1h" generates hour suggestions', () => {
+ const results = generateDateSuggestions('1h', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('"2ho" generates hour suggestions (partial match)', () => {
+ const results = generateDateSuggestions('2ho', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 hours');
+ });
+
+ it('"3w" generates week suggestions', () => {
+ const results = generateDateSuggestions('3w', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('3 weeks');
+ });
+
+ it('"1h30m" generates compound suggestion', () => {
+ const results = generateDateSuggestions('1h30m', now);
+ expect(results.length).toBeGreaterThan(0);
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js b/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
index 27a4d1b63..5c0b9db59 100644
--- a/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
+++ b/app/javascript/dashboard/helper/specs/snoozeHelpers.spec.js
@@ -5,6 +5,9 @@ import {
findStartOfNextMonth,
findNextDay,
setHoursToNine,
+ snoozedReopenTimeToTimestamp,
+ shortenSnoozeTime,
+ generateSnoozeSuggestions,
} from '../snoozeHelpers';
describe('#Snooze Helpers', () => {
@@ -89,12 +92,26 @@ describe('#Snooze Helpers', () => {
});
describe('snoozedReopenTime', () => {
- it('should return nil if snoozedUntil is nil', () => {
- expect(snoozedReopenTime(null)).toEqual(null);
+ beforeEach(() => {
+ vi.useFakeTimers();
+ vi.setSystemTime(new Date('2024-01-01T12:00:00Z'));
});
- it('should return formatted date if snoozedUntil is not nil', () => {
+ afterEach(() => {
+ vi.useRealTimers();
+ });
+
+ it('should return formatted date with year if snoozedUntil is not in current year', () => {
+ // Input is 09:00 UTC.
+ // If your environment is UTC, this will be 9.00am.
expect(snoozedReopenTime('2023-06-07T09:00:00.000Z')).toEqual(
+ '7 Jun 2023, 9.00am'
+ );
+ });
+
+ it('should return formatted date without year if snoozedUntil is in current year', () => {
+ // This uses 2024 because we mocked the system time above
+ expect(snoozedReopenTime('2024-06-07T09:00:00.000Z')).toEqual(
'7 Jun, 9.00am'
);
});
@@ -107,4 +124,97 @@ describe('#Snooze Helpers', () => {
expect(findNextDay(today)).toEqual(nextDay);
});
});
+
+ describe('snoozedReopenTimeToTimestamp', () => {
+ it('should return timestamp if snoozedUntil is not nil', () => {
+ expect(snoozedReopenTimeToTimestamp('2023-06-07T09:00:00.000Z')).toEqual(
+ 1686128400
+ );
+ });
+ it('should return nil if snoozedUntil is nil', () => {
+ expect(snoozedReopenTimeToTimestamp(null)).toEqual(null);
+ });
+ });
+
+ describe('shortenSnoozeTime', () => {
+ it('should return shortened time if snoozedUntil is not nil and day is passed', () => {
+ expect(shortenSnoozeTime('1 day')).toEqual('1d');
+ });
+
+ it('should return shortened time if snoozedUntil is not nil and month is passed', () => {
+ expect(shortenSnoozeTime('1 month')).toEqual('1mo');
+ });
+
+ it('should return shortened time if snoozedUntil is not nil and year is passed', () => {
+ expect(shortenSnoozeTime('1 year')).toEqual('1y');
+ });
+
+ it('should return shortened time if snoozedUntil is not nil and hour is passed', () => {
+ expect(shortenSnoozeTime('1 hour')).toEqual('1h');
+ });
+
+ it('should return shortened time if snoozedUntil is not nil and minutes is passed', () => {
+ expect(shortenSnoozeTime('1 minutes')).toEqual('1m');
+ });
+
+ it('should return shortened time if snoozedUntil is not nil and in is passed', () => {
+ expect(shortenSnoozeTime('in 1 hour')).toEqual('1h');
+ });
+
+ it('should return nil if snoozedUntil is nil', () => {
+ expect(shortenSnoozeTime(null)).toEqual(null);
+ });
+ });
+
+ describe('generateSnoozeSuggestions label expansion', () => {
+ const now = new Date('2023-06-16T10:00:00');
+
+ it('expands abbreviated units: "1d" → "1 Day"', () => {
+ const results = generateSnoozeSuggestions('1d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 day');
+ });
+
+ it('expands abbreviated units: "2 d" → "2 Days"', () => {
+ const results = generateSnoozeSuggestions('2 d', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 days');
+ });
+
+ it('expands abbreviated units: "1h" → "1 Hour"', () => {
+ const results = generateSnoozeSuggestions('1h', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('expands abbreviated units: "2min" → "2 Minutes"', () => {
+ const results = generateSnoozeSuggestions('2min', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 minutes');
+ });
+
+ it('handles singular: "1 hours" → "1 Hour"', () => {
+ const results = generateSnoozeSuggestions('1 hours', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour');
+ });
+
+ it('handles singular: "1 minutes" → "1 Minute"', () => {
+ const results = generateSnoozeSuggestions('1 minutes', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 minute');
+ });
+
+ it('keeps plural for non-1: "2 days" → "2 Days"', () => {
+ const results = generateSnoozeSuggestions('2 days', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('2 days');
+ });
+
+ it('expands compound: "1h30m" → "1 Hour 30 Minutes"', () => {
+ const results = generateSnoozeSuggestions('1h30m', now);
+ expect(results.length).toBeGreaterThan(0);
+ expect(results[0].label).toBe('1 hour 30 minutes');
+ });
+ });
});
diff --git a/app/javascript/dashboard/helper/specs/templateHelper.spec.js b/app/javascript/dashboard/helper/specs/templateHelper.spec.js
new file mode 100644
index 000000000..375e38a2d
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/templateHelper.spec.js
@@ -0,0 +1,369 @@
+import {
+ replaceTemplateVariables,
+ buildTemplateParameters,
+ processVariable,
+ allKeysRequired,
+} from '../templateHelper';
+import { templates } from '../../store/modules/specs/inboxes/templateFixtures';
+
+describe('templateHelper', () => {
+ const technicianTemplate = templates.find(t => t.name === 'technician_visit');
+
+ describe('processVariable', () => {
+ it('should remove curly braces from variables', () => {
+ expect(processVariable('{{name}}')).toBe('name');
+ expect(processVariable('{{1}}')).toBe('1');
+ expect(processVariable('{{customer_id}}')).toBe('customer_id');
+ });
+ });
+
+ describe('allKeysRequired', () => {
+ it('should return true when all keys have values', () => {
+ const obj = { name: 'John', age: '30' };
+ expect(allKeysRequired(obj)).toBe(true);
+ });
+
+ it('should return false when some keys are empty', () => {
+ const obj = { name: 'John', age: '' };
+ expect(allKeysRequired(obj)).toBe(false);
+ });
+
+ it('should return true for empty object', () => {
+ expect(allKeysRequired({})).toBe(true);
+ });
+ });
+
+ describe('replaceTemplateVariables', () => {
+ const templateText =
+ "Hi {{1}}, we're scheduling a technician visit to {{2}} on {{3}} between {{4}} and {{5}}. Please confirm if this time slot works for you.";
+
+ it('should replace all variables with provided values', () => {
+ const processedParams = {
+ body: {
+ 1: 'John',
+ 2: '123 Main St',
+ 3: '2025-01-15',
+ 4: '10:00 AM',
+ 5: '2:00 PM',
+ },
+ };
+
+ const result = replaceTemplateVariables(templateText, processedParams);
+ expect(result).toBe(
+ "Hi John, we're scheduling a technician visit to 123 Main St on 2025-01-15 between 10:00 AM and 2:00 PM. Please confirm if this time slot works for you."
+ );
+ });
+
+ it('should keep original variable format when no replacement value provided', () => {
+ const processedParams = {
+ body: {
+ 1: 'John',
+ 3: '2025-01-15',
+ },
+ };
+
+ const result = replaceTemplateVariables(templateText, processedParams);
+ expect(result).toContain('John');
+ expect(result).toContain('2025-01-15');
+ expect(result).toContain('{{2}}');
+ expect(result).toContain('{{4}}');
+ expect(result).toContain('{{5}}');
+ });
+
+ it('should handle empty processedParams', () => {
+ const result = replaceTemplateVariables(templateText, {});
+ expect(result).toBe(templateText);
+ });
+ });
+
+ describe('buildTemplateParameters', () => {
+ it('should build parameters for template with body variables', () => {
+ const result = buildTemplateParameters(technicianTemplate, false);
+
+ expect(result.body).toEqual({
+ 1: '',
+ 2: '',
+ 3: '',
+ 4: '',
+ 5: '',
+ });
+ });
+
+ it('should include header parameters when hasMediaHeader is true', () => {
+ const imageTemplate = templates.find(
+ t => t.name === 'order_confirmation'
+ );
+ const result = buildTemplateParameters(imageTemplate, true);
+
+ expect(result.header).toEqual({
+ media_url: '',
+ media_type: 'image',
+ });
+ });
+
+ it('should not include header parameters when hasMediaHeader is false', () => {
+ const result = buildTemplateParameters(technicianTemplate, false);
+ expect(result.header).toBeUndefined();
+ });
+
+ it('should handle template with no body component', () => {
+ const templateWithoutBody = {
+ components: [{ type: 'HEADER', format: 'TEXT' }],
+ };
+
+ const result = buildTemplateParameters(templateWithoutBody, false);
+ expect(result).toEqual({});
+ });
+
+ it('should handle template with no variables', () => {
+ const templateWithoutVars = templates.find(
+ t => t.name === 'no_variable_template'
+ );
+ const result = buildTemplateParameters(templateWithoutVars, false);
+
+ expect(result.body).toBeUndefined();
+ });
+
+ it('should handle URL buttons with variables for non-authentication templates', () => {
+ const templateWithUrlButton = {
+ category: 'MARKETING',
+ components: [
+ {
+ type: 'BODY',
+ text: 'Check out our website at {{site_url}}',
+ },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ {
+ type: 'URL',
+ url: 'https://example.com/{{campaign_id}}',
+ text: 'Visit Site',
+ },
+ ],
+ },
+ ],
+ };
+
+ const result = buildTemplateParameters(templateWithUrlButton, false);
+ expect(result.buttons).toEqual([
+ {
+ type: 'url',
+ parameter: '',
+ url: 'https://example.com/{{campaign_id}}',
+ variables: ['campaign_id'],
+ },
+ ]);
+ });
+
+ it('should handle templates with no variables', () => {
+ const emptyTemplate = templates.find(
+ t => t.name === 'no_variable_template'
+ );
+ const result = buildTemplateParameters(emptyTemplate, false);
+ expect(result).toEqual({});
+ });
+
+ it('should build parameters for templates with multiple component types', () => {
+ const complexTemplate = {
+ components: [
+ { type: 'HEADER', format: 'IMAGE' },
+ { type: 'BODY', text: 'Hi {{1}}, your order {{2}} is ready!' },
+ { type: 'FOOTER', text: 'Thank you for your business' },
+ {
+ type: 'BUTTONS',
+ buttons: [{ type: 'URL', url: 'https://example.com/{{3}}' }],
+ },
+ ],
+ };
+
+ const result = buildTemplateParameters(complexTemplate, true);
+
+ expect(result.header).toEqual({
+ media_url: '',
+ media_type: 'image',
+ });
+ expect(result.body).toEqual({ 1: '', 2: '' });
+ expect(result.buttons).toEqual([
+ {
+ type: 'url',
+ parameter: '',
+ url: 'https://example.com/{{3}}',
+ variables: ['3'],
+ },
+ ]);
+ });
+
+ it('should handle copy code buttons correctly', () => {
+ const copyCodeTemplate = templates.find(
+ t => t.name === 'discount_coupon'
+ );
+ const result = buildTemplateParameters(copyCodeTemplate, false);
+
+ expect(result.body).toBeDefined();
+ expect(result.buttons).toEqual([
+ {
+ type: 'copy_code',
+ parameter: '',
+ },
+ ]);
+ });
+
+ it('should handle templates with document headers', () => {
+ const documentTemplate = templates.find(
+ t => t.name === 'purchase_receipt'
+ );
+ const result = buildTemplateParameters(documentTemplate, true);
+
+ expect(result.header).toEqual({
+ media_url: '',
+ media_type: 'document',
+ media_name: '',
+ });
+ expect(result.body).toEqual({
+ 1: '',
+ 2: '',
+ 3: '',
+ });
+ });
+
+ it('should handle video header templates', () => {
+ const videoTemplate = templates.find(t => t.name === 'training_video');
+ const result = buildTemplateParameters(videoTemplate, true);
+
+ expect(result.header).toEqual({
+ media_url: '',
+ media_type: 'video',
+ });
+ expect(result.body).toEqual({
+ name: '',
+ date: '',
+ });
+ });
+ });
+
+ describe('enhanced format validation', () => {
+ it('should validate enhanced format structure', () => {
+ const processedParams = {
+ body: { 1: 'John', 2: 'Order123' },
+ header: {
+ media_url: 'https://example.com/image.jpg',
+ media_type: 'image',
+ },
+ buttons: [{ type: 'copy_code', parameter: 'SAVE20' }],
+ };
+
+ // Test that structure is properly formed
+ expect(processedParams.body).toBeDefined();
+ expect(typeof processedParams.body).toBe('object');
+ expect(processedParams.header).toBeDefined();
+ expect(Array.isArray(processedParams.buttons)).toBe(true);
+ });
+
+ it('should handle empty component sections', () => {
+ const processedParams = {
+ body: {},
+ header: {},
+ buttons: [],
+ };
+
+ expect(allKeysRequired(processedParams.body)).toBe(true);
+ expect(allKeysRequired(processedParams.header)).toBe(true);
+ expect(processedParams.buttons.length).toBe(0);
+ });
+
+ it('should validate parameter completeness', () => {
+ const incompleteParams = {
+ body: { 1: 'John', 2: '' },
+ };
+
+ expect(allKeysRequired(incompleteParams.body)).toBe(false);
+ });
+
+ it('should handle edge cases in processVariable', () => {
+ expect(processVariable('{{')).toBe('');
+ expect(processVariable('}}')).toBe('');
+ expect(processVariable('')).toBe('');
+ expect(processVariable('{{nested{{variable}}}}')).toBe('nestedvariable');
+ });
+
+ it('should handle special characters in template variables', () => {
+ /* eslint-disable no-template-curly-in-string */
+ const templateText =
+ 'Welcome {{user_name}}, your order #{{order_id}} costs ${{amount}}';
+ /* eslint-enable no-template-curly-in-string */
+ const processedParams = {
+ body: {
+ user_name: 'John & Jane',
+ order_id: '12345',
+ amount: '99.99',
+ },
+ };
+
+ const result = replaceTemplateVariables(templateText, processedParams);
+ expect(result).toBe(
+ 'Welcome John & Jane, your order #12345 costs $99.99'
+ );
+ });
+
+ it('should handle templates with mixed parameter types', () => {
+ const mixedTemplate = {
+ components: [
+ { type: 'HEADER', format: 'VIDEO' },
+ { type: 'BODY', text: 'Order {{order_id}} status: {{status}}' },
+ { type: 'FOOTER', text: 'Thank you' },
+ {
+ type: 'BUTTONS',
+ buttons: [
+ { type: 'URL', url: 'https://track.com/{{order_id}}' },
+ { type: 'COPY_CODE' },
+ { type: 'PHONE_NUMBER', phone_number: '+1234567890' },
+ ],
+ },
+ ],
+ };
+
+ const result = buildTemplateParameters(mixedTemplate, true);
+
+ expect(result.header).toEqual({
+ media_url: '',
+ media_type: 'video',
+ });
+ expect(result.body).toEqual({
+ order_id: '',
+ status: '',
+ });
+ expect(result.buttons).toHaveLength(2); // URL and COPY_CODE (PHONE_NUMBER doesn't need parameters)
+ expect(result.buttons[0].type).toBe('url');
+ expect(result.buttons[1].type).toBe('copy_code');
+ });
+
+ it('should handle templates with no processable components', () => {
+ const emptyTemplate = {
+ components: [
+ { type: 'HEADER', format: 'TEXT', text: 'Static Header' },
+ { type: 'BODY', text: 'Static body with no variables' },
+ { type: 'FOOTER', text: 'Static footer' },
+ ],
+ };
+
+ const result = buildTemplateParameters(emptyTemplate, false);
+ expect(result).toEqual({});
+ });
+
+ it('should validate that replaceTemplateVariables preserves unreplaced variables', () => {
+ const templateText = 'Hi {{name}}, order {{order_id}} is {{status}}';
+ const partialParams = {
+ body: {
+ name: 'John',
+ // order_id missing
+ status: 'ready',
+ },
+ };
+
+ const result = replaceTemplateVariables(templateText, partialParams);
+ expect(result).toBe('Hi John, order {{order_id}} is ready');
+ expect(result).toContain('{{order_id}}'); // Unreplaced variable preserved
+ });
+ });
+});
diff --git a/app/javascript/dashboard/helper/specs/themeHelper.spec.js b/app/javascript/dashboard/helper/specs/themeHelper.spec.js
index 745d71560..0e75d6c75 100644
--- a/app/javascript/dashboard/helper/specs/themeHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/themeHelper.spec.js
@@ -1,7 +1,7 @@
import { setColorTheme } from 'dashboard/helper/themeHelper.js';
import { LocalStorage } from 'shared/helpers/localStorage';
-jest.mock('shared/helpers/localStorage');
+vi.mock('shared/helpers/localStorage');
describe('setColorTheme', () => {
it('should set body class to dark if selectedColorScheme is dark', () => {
diff --git a/app/javascript/dashboard/helper/specs/uploadHelper.spec.js b/app/javascript/dashboard/helper/specs/uploadHelper.spec.js
index a31ff16bb..3217388f5 100644
--- a/app/javascript/dashboard/helper/specs/uploadHelper.spec.js
+++ b/app/javascript/dashboard/helper/specs/uploadHelper.spec.js
@@ -1,53 +1,93 @@
-import { uploadFile } from '../uploadHelper';
import axios from 'axios';
+import { uploadExternalImage, uploadFile } from '../uploadHelper';
-// Mocking axios using jest-mock-axios
global.axios = axios;
-jest.mock('axios');
+vi.mock('axios');
-describe('#Upload Helpers', () => {
+describe('Upload Helpers', () => {
afterEach(() => {
- // Cleaning up the mock after each test
axios.post.mockReset();
});
- it('should send a POST request with correct data', async () => {
- const mockFile = new File(['dummy content'], 'example.png', {
- type: 'image/png',
+ describe('uploadFile', () => {
+ it('should send a POST request with correct data', async () => {
+ const mockFile = new File(['dummy content'], 'example.png', {
+ type: 'image/png',
+ });
+ const mockResponse = {
+ data: {
+ file_url: 'https://example.com/fileUrl',
+ blob_key: 'blobKey123',
+ blob_id: 'blobId456',
+ },
+ };
+
+ axios.post.mockResolvedValueOnce(mockResponse);
+
+ const result = await uploadFile(mockFile, '1602');
+
+ expect(axios.post).toHaveBeenCalledWith(
+ '/api/v1/accounts/1602/upload',
+ expect.any(FormData),
+ { headers: { 'Content-Type': 'multipart/form-data' } }
+ );
+
+ expect(result).toEqual({
+ fileUrl: 'https://example.com/fileUrl',
+ blobKey: 'blobKey123',
+ blobId: 'blobId456',
+ });
});
- const mockResponse = {
- data: {
- file_url: 'https://example.com/fileUrl',
- blob_key: 'blobKey123',
- blob_id: 'blobId456',
- },
- };
- axios.post.mockResolvedValueOnce(mockResponse);
+ it('should handle errors', async () => {
+ const mockFile = new File(['dummy content'], 'example.png', {
+ type: 'image/png',
+ });
+ const mockError = new Error('Failed to upload');
- const result = await uploadFile(mockFile, '1602');
+ axios.post.mockRejectedValueOnce(mockError);
- expect(axios.post).toHaveBeenCalledWith(
- '/api/v1/accounts/1602/upload',
- expect.any(FormData),
- { headers: { 'Content-Type': 'multipart/form-data' } }
- );
-
- expect(result).toEqual({
- fileUrl: 'https://example.com/fileUrl',
- blobKey: 'blobKey123',
- blobId: 'blobId456',
+ await expect(uploadFile(mockFile)).rejects.toThrow('Failed to upload');
});
});
- it('should handle errors', async () => {
- const mockFile = new File(['dummy content'], 'example.png', {
- type: 'image/png',
+ describe('uploadExternalImage', () => {
+ it('should send a POST request with correct data', async () => {
+ const mockUrl = 'https://example.com/image.jpg';
+ const mockResponse = {
+ data: {
+ file_url: 'https://example.com/fileUrl',
+ blob_key: 'blobKey123',
+ blob_id: 'blobId456',
+ },
+ };
+
+ axios.post.mockResolvedValueOnce(mockResponse);
+
+ const result = await uploadExternalImage(mockUrl, '1602');
+
+ expect(axios.post).toHaveBeenCalledWith(
+ '/api/v1/accounts/1602/upload',
+ { external_url: mockUrl },
+ { headers: { 'Content-Type': 'application/json' } }
+ );
+
+ expect(result).toEqual({
+ fileUrl: 'https://example.com/fileUrl',
+ blobKey: 'blobKey123',
+ blobId: 'blobId456',
+ });
});
- const mockError = new Error('Failed to upload');
- axios.post.mockRejectedValueOnce(mockError);
+ it('should handle errors', async () => {
+ const mockUrl = 'https://example.com/image.jpg';
+ const mockError = new Error('Failed to upload');
- await expect(uploadFile(mockFile)).rejects.toThrow('Failed to upload');
+ axios.post.mockRejectedValueOnce(mockError);
+
+ await expect(uploadExternalImage(mockUrl)).rejects.toThrow(
+ 'Failed to upload'
+ );
+ });
});
});
diff --git a/app/javascript/dashboard/helper/specs/validations.spec.js b/app/javascript/dashboard/helper/specs/validations.spec.js
new file mode 100644
index 000000000..e697fbffd
--- /dev/null
+++ b/app/javascript/dashboard/helper/specs/validations.spec.js
@@ -0,0 +1,86 @@
+import { describe, it, expect } from 'vitest';
+import { validateAutomation } from '../validations';
+
+describe('validateAutomation', () => {
+ it('should return no errors for a valid automation', () => {
+ const validAutomation = {
+ name: 'Test Automation',
+ description: 'A test automation',
+ event_name: 'message_created',
+ conditions: [
+ {
+ attribute_key: 'content',
+ filter_operator: 'contains',
+ values: 'hello',
+ },
+ ],
+ actions: [
+ { action_name: 'send_message', action_params: ['Hello there!'] },
+ ],
+ };
+ const errors = validateAutomation(validAutomation);
+ expect(errors).toEqual({});
+ });
+
+ it('should return errors for missing basic fields', () => {
+ const invalidAutomation = {
+ name: '',
+ description: '',
+ event_name: '',
+ conditions: [],
+ actions: [],
+ };
+ const errors = validateAutomation(invalidAutomation);
+ expect(errors).toHaveProperty('name');
+ expect(errors).toHaveProperty('description');
+ expect(errors).toHaveProperty('event_name');
+ });
+
+ it('should return errors for invalid conditions', () => {
+ const automationWithInvalidConditions = {
+ name: 'Test',
+ description: 'Test',
+ event_name: 'message_created',
+ conditions: [{ attribute_key: '', filter_operator: '', values: '' }],
+ actions: [{ action_name: 'send_message', action_params: ['Hello'] }],
+ };
+ const errors = validateAutomation(automationWithInvalidConditions);
+ expect(errors).toHaveProperty('condition_0');
+ });
+
+ it('should return errors for invalid actions', () => {
+ const automationWithInvalidActions = {
+ name: 'Test',
+ description: 'Test',
+ event_name: 'message_created',
+ conditions: [
+ {
+ attribute_key: 'content',
+ filter_operator: 'contains',
+ values: 'hello',
+ },
+ ],
+ actions: [{ action_name: 'send_message', action_params: [] }],
+ };
+ const errors = validateAutomation(automationWithInvalidActions);
+ expect(errors).toHaveProperty('action_0');
+ });
+
+ it('should not require action params for specific actions', () => {
+ const automationWithNoParamAction = {
+ name: 'Test',
+ description: 'Test',
+ event_name: 'message_created',
+ conditions: [
+ {
+ attribute_key: 'content',
+ filter_operator: 'contains',
+ values: 'hello',
+ },
+ ],
+ actions: [{ action_name: 'mute_conversation' }],
+ };
+ const errors = validateAutomation(automationWithNoParamAction);
+ expect(errors).toEqual({});
+ });
+});
diff --git a/app/javascript/dashboard/helper/templateHelper.js b/app/javascript/dashboard/helper/templateHelper.js
new file mode 100644
index 000000000..1fb61d760
--- /dev/null
+++ b/app/javascript/dashboard/helper/templateHelper.js
@@ -0,0 +1,96 @@
+// Constants
+export const DEFAULT_LANGUAGE = 'en';
+export const DEFAULT_CATEGORY = 'UTILITY';
+export const COMPONENT_TYPES = {
+ HEADER: 'HEADER',
+ BODY: 'BODY',
+ BUTTONS: 'BUTTONS',
+};
+export const MEDIA_FORMATS = ['IMAGE', 'VIDEO', 'DOCUMENT'];
+
+export const findComponentByType = (template, type) =>
+ template.components?.find(component => component.type === type);
+
+export const processVariable = str => {
+ return str.replace(/{{|}}/g, '');
+};
+
+export const allKeysRequired = value => {
+ const keys = Object.keys(value);
+ return keys.every(key => value[key]);
+};
+
+export const replaceTemplateVariables = (templateText, processedParams) => {
+ return templateText.replace(/{{([^}]+)}}/g, (match, variable) => {
+ const variableKey = processVariable(variable);
+ return processedParams.body?.[variableKey] || `{{${variable}}}`;
+ });
+};
+
+export const buildTemplateParameters = (template, hasMediaHeaderValue) => {
+ const allVariables = {};
+
+ const bodyComponent = findComponentByType(template, COMPONENT_TYPES.BODY);
+ const headerComponent = findComponentByType(template, COMPONENT_TYPES.HEADER);
+
+ if (!bodyComponent) return allVariables;
+
+ const templateString = bodyComponent.text;
+
+ // Process body variables
+ const matchedVariables = templateString.match(/{{([^}]+)}}/g);
+ if (matchedVariables) {
+ allVariables.body = {};
+ matchedVariables.forEach(variable => {
+ const key = processVariable(variable);
+ allVariables.body[key] = '';
+ });
+ }
+
+ if (hasMediaHeaderValue) {
+ if (!allVariables.header) allVariables.header = {};
+ allVariables.header.media_url = '';
+ allVariables.header.media_type = headerComponent.format.toLowerCase();
+
+ // For document templates, include media_name field for filename support
+ if (headerComponent.format.toLowerCase() === 'document') {
+ allVariables.header.media_name = '';
+ }
+ }
+
+ // Process button variables
+ const buttonComponents = template.components.filter(
+ component => component.type === COMPONENT_TYPES.BUTTONS
+ );
+
+ buttonComponents.forEach(buttonComponent => {
+ if (buttonComponent.buttons) {
+ buttonComponent.buttons.forEach((button, index) => {
+ // Handle URL buttons with variables
+ if (button.type === 'URL' && button.url && button.url.includes('{{')) {
+ const buttonVars = button.url.match(/{{([^}]+)}}/g) || [];
+ if (buttonVars.length > 0) {
+ if (!allVariables.buttons) allVariables.buttons = [];
+ allVariables.buttons[index] = {
+ type: 'url',
+ parameter: '',
+ url: button.url,
+ variables: buttonVars.map(v => processVariable(v)),
+ };
+ }
+ }
+
+ // Handle copy code buttons
+ if (button.type === 'COPY_CODE') {
+ if (!allVariables.buttons) allVariables.buttons = [];
+ allVariables.buttons[index] = {
+ type: 'copy_code',
+ parameter: '',
+ };
+ }
+ });
+ }
+ });
+
+ return allVariables;
+};
diff --git a/app/javascript/dashboard/helper/themeHelper.js b/app/javascript/dashboard/helper/themeHelper.js
index b19b0541a..159d94373 100644
--- a/app/javascript/dashboard/helper/themeHelper.js
+++ b/app/javascript/dashboard/helper/themeHelper.js
@@ -9,9 +9,9 @@ export const setColorTheme = isOSOnDarkMode => {
selectedColorScheme === 'dark'
) {
document.body.classList.add('dark');
- document.documentElement.setAttribute('style', 'color-scheme: dark;');
+ document.documentElement.style.setProperty('color-scheme', 'dark');
} else {
document.body.classList.remove('dark');
- document.documentElement.setAttribute('style', 'color-scheme: light;');
+ document.documentElement.style.setProperty('color-scheme', 'light');
}
};
diff --git a/app/javascript/dashboard/helper/uploadHelper.js b/app/javascript/dashboard/helper/uploadHelper.js
index 2a1b9d9cd..6dc1069ce 100644
--- a/app/javascript/dashboard/helper/uploadHelper.js
+++ b/app/javascript/dashboard/helper/uploadHelper.js
@@ -19,26 +19,47 @@ const HEADERS = {
* The function uses FormData to wrap the file and axios to send the request.
*
* @param {File} file - The file to be uploaded. It should be a File object (typically coming from a file input element).
+ * @param {string} accountId - The account ID.
* @returns {Promise} A promise that resolves with the server's response when the upload is successful, or rejects if there's an error.
*/
export async function uploadFile(file, accountId) {
- // Create a new FormData instance.
- let formData = new FormData();
-
if (!accountId) {
accountId = window.location.pathname.split('/')[3];
}
// Append the file to the FormData instance under the key 'attachment'.
+ let formData = new FormData();
formData.append('attachment', file);
- // Use axios to send a POST request to the upload endpoint.
const { data } = await axios.post(
`/api/${API_VERSION}/accounts/${accountId}/upload`,
formData,
- {
- headers: HEADERS,
- }
+ { headers: HEADERS }
+ );
+
+ return {
+ fileUrl: data.file_url,
+ blobKey: data.blob_key,
+ blobId: data.blob_id,
+ };
+}
+
+/**
+ * Uploads an image from an external URL.
+ *
+ * @param {string} url - The external URL of the image.
+ * @param {string} accountId - The account ID.
+ * @returns {Promise} A promise that resolves with the server's response.
+ */
+export async function uploadExternalImage(url, accountId) {
+ if (!accountId) {
+ accountId = window.location.pathname.split('/')[3];
+ }
+
+ const { data } = await axios.post(
+ `/api/${API_VERSION}/accounts/${accountId}/upload`,
+ { external_url: url },
+ { headers: { 'Content-Type': 'application/json' } }
);
return {
diff --git a/app/javascript/dashboard/helper/validations.js b/app/javascript/dashboard/helper/validations.js
new file mode 100644
index 000000000..eaea81eb7
--- /dev/null
+++ b/app/javascript/dashboard/helper/validations.js
@@ -0,0 +1,190 @@
+export const ATTRIBUTE_KEY_REQUIRED = 'ATTRIBUTE_KEY_REQUIRED';
+export const FILTER_OPERATOR_REQUIRED = 'FILTER_OPERATOR_REQUIRED';
+export const VALUE_REQUIRED = 'VALUE_REQUIRED';
+export const VALUE_MUST_BE_BETWEEN_1_AND_998 =
+ 'VALUE_MUST_BE_BETWEEN_1_AND_998';
+export const ACTION_PARAMETERS_REQUIRED = 'ACTION_PARAMETERS_REQUIRED';
+export const ATLEAST_ONE_CONDITION_REQUIRED = 'ATLEAST_ONE_CONDITION_REQUIRED';
+export const ATLEAST_ONE_ACTION_REQUIRED = 'ATLEAST_ONE_ACTION_REQUIRED';
+
+const isEmptyValue = value => {
+ if (!value) {
+ return true;
+ }
+
+ if (Array.isArray(value)) {
+ return !value.length;
+ }
+
+ // We can safely check the type here as both the null value
+ // and the array is ruled out earlier.
+ if (typeof value === 'object') {
+ return !Object.keys(value).length;
+ }
+
+ return false;
+};
+// ------------------------------------------------------------------
+// ------------------------ Filter Validation -----------------------
+// ------------------------------------------------------------------
+
+/**
+ * Validates a single filter for conversations or contacts.
+ *
+ * @param {Object} filter - The filter object to validate.
+ * @param {string} filter.attribute_key - The key of the attribute to filter on.
+ * @param {string} filter.filter_operator - The operator to use for filtering.
+ * @param {string|number|Array} [filter.values] - The value(s) to filter by (required for most operators).
+ *
+ * @returns {string|null} An error message if validation fails, or null if validation passes.
+ */
+export const validateSingleFilter = filter => {
+ if (!filter.attribute_key) {
+ return ATTRIBUTE_KEY_REQUIRED;
+ }
+
+ if (!filter.filter_operator) {
+ return FILTER_OPERATOR_REQUIRED;
+ }
+
+ const operatorRequiresValue = !['is_present', 'is_not_present'].includes(
+ filter.filter_operator
+ );
+
+ if (operatorRequiresValue && isEmptyValue(filter.values)) {
+ return VALUE_REQUIRED;
+ }
+
+ if (
+ filter.filter_operator === 'days_before' &&
+ (parseInt(filter.values, 10) <= 0 || parseInt(filter.values, 10) >= 999)
+ ) {
+ return VALUE_MUST_BE_BETWEEN_1_AND_998;
+ }
+
+ return null;
+};
+
+// ------------------------------------------------------------------
+// ---------------------- Automation Validation ---------------------
+// ------------------------------------------------------------------
+
+/**
+ * Validates the basic fields of an automation object.
+ *
+ * @param {Object} automation - The automation object to validate.
+ * @returns {Object} An object containing any validation errors.
+ */
+const validateBasicFields = automation => {
+ const errors = {};
+ const requiredFields = ['name', 'description', 'event_name'];
+
+ requiredFields.forEach(field => {
+ if (!automation[field]) {
+ errors[field] = `${
+ field.charAt(0).toUpperCase() + field.slice(1)
+ } is required`;
+ }
+ });
+
+ return errors;
+};
+
+/**
+ * Validates the conditions of an automation object.
+ *
+ * @param {Array} conditions - The conditions to validate.
+ * @returns {Object} An object containing any validation errors.
+ */
+export const validateConditions = conditions => {
+ const errors = {};
+
+ if (!conditions || conditions.length === 0) {
+ errors.conditions = ATLEAST_ONE_CONDITION_REQUIRED;
+ return errors;
+ }
+
+ conditions.forEach((condition, index) => {
+ const error = validateSingleFilter(condition);
+ if (error) {
+ errors[`condition_${index}`] = error;
+ }
+ });
+
+ return errors;
+};
+
+/**
+ * Validates a single action of an automation object.
+ *
+ * @param {Object} action - The action to validate.
+ * @returns {string|null} An error message if validation fails, or null if validation passes.
+ */
+const validateSingleAction = action => {
+ const noParamActions = [
+ 'mute_conversation',
+ 'snooze_conversation',
+ 'resolve_conversation',
+ 'remove_assigned_agent',
+ 'remove_assigned_team',
+ 'open_conversation',
+ 'pending_conversation',
+ ];
+
+ if (
+ !noParamActions.includes(action.action_name) &&
+ (!action.action_params || action.action_params.length === 0)
+ ) {
+ return ACTION_PARAMETERS_REQUIRED;
+ }
+
+ return null;
+};
+
+/**
+ * Validates the actions of an automation object.
+ *
+ * @param {Array} actions - The actions to validate.
+ * @returns {Object} An object containing any validation errors.
+ */
+export const validateActions = actions => {
+ if (!actions || actions.length === 0) {
+ return { actions: ATLEAST_ONE_ACTION_REQUIRED };
+ }
+
+ return actions.reduce((errors, action, index) => {
+ const error = validateSingleAction(action);
+ if (error) {
+ errors[`action_${index}`] = error;
+ }
+ return errors;
+ }, {});
+};
+
+/**
+ * Validates an automation object.
+ *
+ * @param {Object} automation - The automation object to validate.
+ * @param {string} automation.name - The name of the automation.
+ * @param {string} automation.description - The description of the automation.
+ * @param {string} automation.event_name - The name of the event that triggers the automation.
+ * @param {Array} automation.conditions - An array of condition objects for the automation.
+ * @param {string} automation.conditions[].filter_operator - The operator for the condition.
+ * @param {string|number} [automation.conditions[].values] - The value(s) for the condition.
+ * @param {Array} automation.actions - An array of action objects for the automation.
+ * @param {string} automation.actions[].action_name - The name of the action.
+ * @param {Array} [automation.actions[].action_params] - The parameters for the action.
+ *
+ * @returns {Object} An object containing any validation errors.
+ */
+export const validateAutomation = automation => {
+ const basicErrors = validateBasicFields(automation);
+ const conditionErrors = validateConditions(automation.conditions);
+ const actionErrors = validateActions(automation.actions);
+
+ return {
+ ...basicErrors,
+ ...conditionErrors,
+ ...actionErrors,
+ };
+};
diff --git a/app/javascript/dashboard/helper/voice.js b/app/javascript/dashboard/helper/voice.js
new file mode 100644
index 000000000..eaa523d75
--- /dev/null
+++ b/app/javascript/dashboard/helper/voice.js
@@ -0,0 +1,214 @@
+import { CONTENT_TYPES } from 'dashboard/components-next/message/constants';
+import { MESSAGE_TYPE } from 'shared/constants/messages';
+import { useCallsStore } from 'dashboard/stores/calls';
+import types from 'dashboard/store/mutation-types';
+
+export const TERMINAL_STATUSES = [
+ 'completed',
+ 'busy',
+ 'failed',
+ 'no-answer',
+ 'canceled',
+ 'missed',
+ 'ended',
+];
+
+export const isInbound = direction => direction === 'inbound';
+
+const isVoiceCallMessage = message => {
+ return CONTENT_TYPES.VOICE_CALL === message?.content_type;
+};
+
+const shouldSkipCall = (callDirection, senderId, currentUserId) => {
+ return callDirection === 'outbound' && senderId !== currentUserId;
+};
+
+const extractAssigneeId = conversation => {
+ return conversation?.assignee_id || conversation?.meta?.assignee?.id || null;
+};
+
+const isAssignedToAnotherAgent = (assigneeId, currentUserId) => {
+ if (currentUserId == null) return false;
+ return !!assigneeId && assigneeId !== currentUserId;
+};
+
+const shouldShowCall = ({
+ callDirection,
+ senderId,
+ assigneeId,
+ currentUserId,
+}) => {
+ if (shouldSkipCall(callDirection, senderId, currentUserId)) return false;
+ // Outbound calls are scoped to the initiator via shouldSkipCall; the
+ // conversation may be auto-assigned to a different agent on creation, so
+ // skip the assignee filter for outbound to avoid hiding the caller's own widget.
+ if (callDirection === 'outbound') return true;
+ return !isAssignedToAnotherAgent(assigneeId, currentUserId);
+};
+
+// Offline/busy agents shouldn't get a ringing popup for inbound calls, but
+// outbound calls always belong to the initiator regardless of their status,
+// and existing (already-surfaced) calls keep going so a status change
+// mid-call doesn't yank away an active widget.
+const shouldRingInbound = (callDirection, currentUserAvailability) => {
+ if (callDirection === 'outbound') return true;
+ return currentUserAvailability === 'online';
+};
+
+function extractCallerSnapshot(message) {
+ // Snapshot caller info from the message at add-time so the widget can keep
+ // rendering it after the user navigates away from a conversation list that
+ // had the conversation hydrated (and Vuex evicts it from the store).
+ // Only incoming messages carry the contact as the sender; on outbound calls
+ // the sender is the initiating agent, so skip the snapshot and let the widget
+ // fall back to the conversation's contact (conversation.meta.sender).
+ if (message?.message_type !== MESSAGE_TYPE.INCOMING) return null;
+ const sender = message?.sender;
+ if (!sender) return null;
+ return {
+ name: sender.name,
+ phone: sender.phone_number,
+ avatar: sender.avatar || sender.thumbnail,
+ additionalAttributes: sender.additional_attributes || {},
+ };
+}
+
+function extractCallData(message) {
+ const call = message?.call || {};
+ return {
+ callSid: call.provider_call_id,
+ callId: call.id,
+ provider: call.provider,
+ status: call.status,
+ callDirection: call.direction === 'outgoing' ? 'outbound' : 'inbound',
+ conversationId: message?.conversation_id,
+ inboxId: message?.inbox_id ?? message?.conversation?.inbox_id,
+ assigneeId: extractAssigneeId(message?.conversation),
+ senderId: message?.sender?.id,
+ caller: extractCallerSnapshot(message),
+ };
+}
+
+export function handleVoiceCallCreated(
+ message,
+ currentUserId,
+ currentUserAvailability
+) {
+ if (!isVoiceCallMessage(message)) return;
+
+ const {
+ callSid,
+ callId,
+ provider,
+ callDirection,
+ conversationId,
+ inboxId,
+ assigneeId,
+ senderId,
+ } = extractCallData(message);
+
+ if (
+ !shouldShowCall({
+ callDirection,
+ senderId,
+ assigneeId,
+ currentUserId,
+ })
+ ) {
+ return;
+ }
+
+ if (!shouldRingInbound(callDirection, currentUserAvailability)) return;
+
+ const callsStore = useCallsStore();
+ callsStore.addCall({
+ callSid,
+ callId,
+ provider,
+ conversationId,
+ inboxId,
+ callDirection,
+ senderId,
+ caller: extractCallerSnapshot(message),
+ });
+}
+
+export function handleVoiceCallUpdated(
+ commit,
+ message,
+ currentUserId,
+ currentUserAvailability
+) {
+ if (!isVoiceCallMessage(message)) return;
+
+ const {
+ callSid,
+ callId,
+ provider,
+ status,
+ callDirection,
+ conversationId,
+ inboxId,
+ assigneeId,
+ senderId,
+ } = extractCallData(message);
+
+ const callsStore = useCallsStore();
+
+ callsStore.handleCallStatusChanged({ callSid, status, conversationId });
+
+ commit(types.UPDATE_MESSAGE_CALL_STATUS, {
+ conversationId,
+ callStatus: status,
+ callSid,
+ });
+
+ if (
+ !shouldShowCall({
+ callDirection,
+ senderId,
+ assigneeId,
+ currentUserId,
+ })
+ ) {
+ callsStore.removeCall(callSid);
+ return;
+ }
+
+ if (status === 'ringing') {
+ if (!shouldRingInbound(callDirection, currentUserAvailability)) return;
+
+ callsStore.addCall({
+ callSid,
+ callId,
+ provider,
+ conversationId,
+ inboxId,
+ callDirection,
+ senderId,
+ caller: extractCallerSnapshot(message),
+ });
+ }
+}
+
+export function syncConversationCallVisibility(conversation, currentUserId) {
+ const assigneeId = extractAssigneeId(conversation);
+ if (!isAssignedToAnotherAgent(assigneeId, currentUserId)) return;
+
+ // Outbound calls belong to the initiator regardless of who the conversation
+ // is currently assigned to (auto-assignment may flip mid-call). Mirror
+ // shouldShowCall's outbound exception so an in-progress outbound call isn't
+ // ripped out from under the caller when the conversation reassigns.
+ const callsStore = useCallsStore();
+ const callsToRemove = callsStore.calls.filter(
+ call =>
+ call.conversationId === conversation.id &&
+ !shouldShowCall({
+ callDirection: call.callDirection,
+ senderId: call.senderId,
+ assigneeId,
+ currentUserId,
+ })
+ );
+ callsToRemove.forEach(call => callsStore.removeCall(call.callSid));
+}
diff --git a/app/javascript/dashboard/i18n/index.js b/app/javascript/dashboard/i18n/index.js
index d0e85b43a..ace78673d 100644
--- a/app/javascript/dashboard/i18n/index.js
+++ b/app/javascript/dashboard/i18n/index.js
@@ -1,4 +1,5 @@
import ar from './locale/ar';
+import bg from './locale/bg';
import ca from './locale/ca';
import cs from './locale/cs';
import da from './locale/da';
@@ -6,6 +7,7 @@ import de from './locale/de';
import el from './locale/el';
import en from './locale/en';
import es from './locale/es';
+import et from './locale/et';
import fa from './locale/fa';
import fi from './locale/fi';
import fr from './locale/fr';
@@ -40,6 +42,7 @@ import lt from './locale/lt';
export default {
ar,
+ bg,
ca,
cs,
da,
@@ -47,6 +50,7 @@ export default {
el,
en,
es,
+ et,
fa,
fi,
fr,
diff --git a/app/javascript/dashboard/i18n/locale/am/advancedFilters.json b/app/javascript/dashboard/i18n/locale/am/advancedFilters.json
index 170f01d7f..a991cb25b 100644
--- a/app/javascript/dashboard/i18n/locale/am/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/am/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/am/agentBots.json b/app/javascript/dashboard/i18n/locale/am/agentBots.json
index fb744b4a9..87c9ff2b3 100644
--- a/app/javascript/dashboard/i18n/locale/am/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/am/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "ምስጢሩን ወደ ክሊፕቦርድ ቅዳ",
+ "COPY_SUCCESS": "ምስጢሩ ወደ ክሊፕቦርድ ተቀድሷል",
+ "TOGGLE": "የምስጢሩን ማየት አሳይ/ደብቅ",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "ተጠናቀቀ",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
index b563de61f..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Add Agent",
"LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
index 64a0e83d6..4e2be9be4 100644
--- a/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "ኩባንያ"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "ኩባንያ"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/auditLogs.json b/app/javascript/dashboard/i18n/locale/am/auditLogs.json
index d30ec0091..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/am/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/am/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "Activity",
- "Time",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Activity",
+ "TIME": "Time",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 469df1c24..6558e9386 100644
--- a/app/javascript/dashboard/i18n/locale/am/automation.json
+++ b/app/javascript/dashboard/i18n/locale/am/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "የግል ማስታወሻ",
+ "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",
+ "COMPANY_NAME": "ኩባንያ",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/bulkActions.json b/app/javascript/dashboard/i18n/locale/am/bulkActions.json
index 6af8316e9..6b922bc7b 100644
--- a/app/javascript/dashboard/i18n/locale/am/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/am/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/campaign.json b/app/javascript/dashboard/i18n/locale/am/campaign.json
index bbcc463ee..55de22367 100644
--- a/app/javascript/dashboard/i18n/locale/am/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/am/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "በሂደት ላይ",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "በሂደት ላይ",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
index a23fc14ac..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/am/chatlist.json b/app/javascript/dashboard/i18n/locale/am/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/am/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/am/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/companies.json b/app/javascript/dashboard/i18n/locale/am/companies.json
new file mode 100644
index 000000000..1eb18f365
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "ባህሪያት",
+ "CONTACTS": "እውቂያዎች",
+ "HISTORY": "ታሪክ",
+ "NOTES": "ማስታወሻዎች"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "እውቂያ አክል",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "እውቂያዎችን ይፈልጉ...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "አንድም እውቂያ አልተገኘም.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "ኩባንያ",
+ "CONTACT_LABEL": "እውቂያ",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "ተፈጥሯል {date}",
+ "LAST_ACTIVE": "መጨረሻ እንቅስቃሴ {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "ዶሜይን"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/components.json b/app/javascript/dashboard/i18n/locale/am/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/contact.json b/app/javascript/dashboard/i18n/locale/am/contact.json
index 791279899..aa025f30c 100644
--- a/app/javascript/dashboard/i18n/locale/am/contact.json
+++ b/app/javascript/dashboard/i18n/locale/am/contact.json
@@ -1,382 +1,666 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
- "EMAIL_ADDRESS": "Email Address",
- "PHONE_NUMBER": "Phone number",
- "IDENTIFIER": "Identifier",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
- "COMPANY": "Company",
- "LOCATION": "Location",
- "BROWSER_LANGUAGE": "Browser Language",
- "CONVERSATION_TITLE": "Conversation Details",
- "VIEW_PROFILE": "View Profile",
- "BROWSER": "Browser",
- "OS": "Operating System",
- "INITIATED_FROM": "Initiated from",
- "INITIATED_AT": "Initiated at",
- "IP_ADDRESS": "IP Address",
- "CREATED_AT_LABEL": "Created",
- "NEW_MESSAGE": "New message",
+ "NOT_AVAILABLE": "አይገኝም",
+ "EMAIL_ADDRESS": "ኢሜይል አድራሻ",
+ "PHONE_NUMBER": "ስልክ ቁጥር",
+ "IDENTIFIER": "መለያ",
+ "COPY_SUCCESSFUL": "ወደ ክሊፕቦርድ ተቀይሯል",
+ "COMPANY": "ኩባንያ",
+ "LOCATION": "አካባቢ",
+ "BROWSER_LANGUAGE": "የአሳሽ ቋንቋ",
+ "CONVERSATION_TITLE": "የውይይት ዝርዝሮች",
+ "VIEW_PROFILE": "መገለጫ እይ",
+ "BROWSER": "አሳሽ መሣሪያ",
+ "OS": "ኦፕሬቲንግ ስስተም",
+ "INITIATED_FROM": "ከዚህ ተጀምሯል",
+ "INITIATED_AT": "በዚህ ጊዜ ተጀምሯል",
+ "IP_ADDRESS": "የIP አድራሻ",
+ "CREATED_AT_LABEL": "የተፈጠረበት",
+ "NEW_MESSAGE": "አዲስ መልእክት",
+ "CALL": "ደውል",
+ "CALL_INITIATED": "ለእውነተኛው እውቀት መደወል እየተከናወነ ነው…",
+ "CALL_FAILED": "ጥሪውን መጀመር አልቻልንም። እባክዎ ደግመው ይሞክሩ።.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "የድምፅ ኢንቦክስ ይምረጡ"
+ },
"CONVERSATIONS": {
- "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
- "TITLE": "Previous Conversations"
+ "NO_RECORDS_FOUND": "ከዚህ እውነተኛ ግንኙነት ጋር የተያያዙ ያለፉ ውይይቶች አልተገኙም።.",
+ "TITLE": "የቀድሞ ውይይቶች"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Contact Labels",
- "ERROR": "Couldn't update labels"
+ "TITLE": "የእውቂያ መለያዎች",
+ "ERROR": "መለያዎችን ማዘመን አልተቻለም"
},
"CONVERSATION": {
- "TITLE": "Conversation Labels",
- "ADD_BUTTON": "Add Labels"
+ "TITLE": "የውይይት መለያዎች",
+ "ADD_BUTTON": "መለያዎችን አክል"
},
"LABEL_SELECT": {
- "TITLE": "Add Labels",
- "PLACEHOLDER": "Search labels",
- "NO_RESULT": "No labels found",
- "CREATE_LABEL": "Create new label"
+ "TITLE": "መለያዎችን ያክሉ",
+ "PLACEHOLDER": "መለያዎችን ይፈልጉ",
+ "NO_RESULT": "መለያዎች አልተገኙም",
+ "CREATE_LABEL": "አዲስ ሌብል ይፍጠሩ"
}
},
- "MERGE_CONTACT": "Merge contact",
- "CONTACT_ACTIONS": "Contact actions",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "MERGE_CONTACT": "አገናኝ አንድ አድርግ",
+ "CONTACT_ACTIONS": "የእውቂያ እርምጃዎች",
+ "MUTE_CONTACT": "እውቂያን አጥፋ",
+ "UNMUTE_CONTACT": "እውቂያን አንቀላፋ",
+ "MUTED_SUCCESS": "ይህ እውነተኛ ግንኙነት በተሳካ ሁኔታ ተከልክሏል። በወደፊቱ ውይይቶች ላይ ምንም ማሳወቂያ አታገኙም።.",
+ "UNMUTED_SUCCESS": "ይህ እውነተኛ ግንኙነት በተሳካ ሁኔታ ከተከልከለ ተነስቷል።.",
+ "SEND_TRANSCRIPT": "ቅጽ ላክ",
+ "EDIT_LABEL": "አርትዕ",
"SIDEBAR_SECTIONS": {
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "CUSTOM_ATTRIBUTES": "ብለዋይ ባህሪያት",
+ "CONTACT_LABELS": "የእውቂያ መለያዎች",
+ "PREVIOUS_CONVERSATIONS": "ያለፉ ውይይቶች",
+ "NO_RECORDS_FOUND": "ባህሪያት አልተገኙም"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Edit Contact",
- "TITLE": "Edit contact",
- "DESC": "Edit contact details"
- },
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress. You will be notified on email when the export file is ready to download.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
+ "BUTTON_LABEL": "ንግግር አርትዕ",
+ "TITLE": "ንግግር አስተካክል",
+ "DESC": "የንግግር ዝርዝሮችን አስተካክል"
},
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Delete Contact",
- "TITLE": "Delete contact",
- "DESC": "Delete contact details",
+ "BUTTON_LABEL": "እውቂያ ሰርዝ",
+ "TITLE": "እውቂያ ሰርዝ",
+ "DESC": "የእውቂያ ዝርዝሮች ሰርዝ",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete",
- "NO": "No, Keep"
+ "TITLE": "ማጥፋት አረጋግጥ",
+ "MESSAGE": "ማጥፋት እርግጠኛ ነህ ",
+ "YES": "አዎን፣ አጥፋ",
+ "NO": "አይ፣ አስቀምጥ"
},
"API": {
- "SUCCESS_MESSAGE": "Contact deleted successfully",
- "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ "SUCCESS_MESSAGE": "እውነተኛ ተገናኝ ተሰርዟል",
+ "ERROR_MESSAGE": "እውነተኛውን ግንኙነት ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
}
},
"CONTACT_FORM": {
"FORM": {
- "SUBMIT": "Submit",
- "CANCEL": "Cancel",
+ "SUBMIT": "አስገባ",
+ "CANCEL": "ተወው",
"AVATAR": {
- "LABEL": "Contact Avatar"
+ "LABEL": "የእውቂያ ፎቶ"
},
"NAME": {
- "PLACEHOLDER": "Enter the full name of the contact",
- "LABEL": "Full Name"
+ "PLACEHOLDER": "የእውቂያን ሙሉ ስም ያስገቡ",
+ "LABEL": "ሙሉ ስም"
},
"BIO": {
- "PLACEHOLDER": "Enter the bio of the contact",
- "LABEL": "Bio"
+ "PLACEHOLDER": "የእውቂያን ራእይ ያስገቡ",
+ "LABEL": "ራእይ"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "Email Address",
- "DUPLICATE": "This email address is in use for another contact.",
- "ERROR": "Please enter a valid email address."
+ "PLACEHOLDER": "የእውቂያ ኢሜይል አድራሻ አስገባ",
+ "LABEL": "የኢሜይል አድራሻ",
+ "DUPLICATE": "ይህ ኢሜይል አድራሻ ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።.",
+ "ERROR": "እባክዎ ትክክለኛ ኢሜይል አድራሻ ያስገቡ።."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Enter the phone number of the contact",
- "LABEL": "Phone Number",
- "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]. You can select the dial code from the dropdown.",
- "ERROR": "Phone number should be either empty or of E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
- "DUPLICATE": "This phone number is in use for another contact."
+ "PLACEHOLDER": "የእውቂያ ስልክ ቁጥር አስገባ",
+ "LABEL": "የስልክ ቁጥር",
+ "HELP": "ስልክ ቁጥር እንደ E.164 ቅርጸ ቁጥር መሆን አለበት ለምሳሌ፡ +1415555555 [+][የሀገር ኮድ][የአካባቢ ኮድ][የአካባቢ ስልክ ቁጥር]። ከዝርዝር ዝርዝር የዳይል ኮድ መምረጥ ይችላሉ።.",
+ "ERROR": "ስልክ ቁጥሩ ባዶ ወይም በE.164 ቅርጸ ቁጥር መሆን አለበት",
+ "DIAL_CODE_ERROR": "እባክዎ ከዝርዝሩ ውስጥ የዳይል ኮድ ይምረጡ",
+ "DUPLICATE": "ይህ ስልክ ቁጥር ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።."
},
"LOCATION": {
- "PLACEHOLDER": "Enter the location of the contact",
- "LABEL": "Location"
+ "PLACEHOLDER": "የእውቂያውን ቦታ ያስገቡ",
+ "LABEL": "ቦታ"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Enter the company name",
- "LABEL": "Company Name"
+ "PLACEHOLDER": "የኩባንያውን ስም ያስገቡ",
+ "LABEL": "የኩባንያ ስም"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
- "LABEL": "Country Name",
- "SELECT_PLACEHOLDER": "Select",
- "REMOVE": "Remove",
- "SELECT_COUNTRY": "Select Country"
+ "PLACEHOLDER": "የሀገር ስም ያስገቡ",
+ "LABEL": "የሀገር ስም",
+ "SELECT_PLACEHOLDER": "ይምረጡ",
+ "REMOVE": "አስወግዱ",
+ "SELECT_COUNTRY": "አገር ይምረጡ"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "የከተማውን ስም ያስገቡ",
+ "LABEL": "የከተማ ስም"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
- "PLACEHOLDER": "Enter the Facebook username",
+ "PLACEHOLDER": "የFacebook የተጠቃሚ ስም ያስገቡ",
"LABEL": "Facebook"
},
"TWITTER": {
- "PLACEHOLDER": "Enter the Twitter username",
+ "PLACEHOLDER": "Twitter የተጠቃሚ ስም ያስገቡ",
"LABEL": "Twitter"
},
"LINKEDIN": {
- "PLACEHOLDER": "Enter the LinkedIn username",
+ "PLACEHOLDER": "LinkedIn የተጠቃሚ ስም ያስገቡ",
"LABEL": "LinkedIn"
},
"GITHUB": {
- "PLACEHOLDER": "Enter the Github username",
+ "PLACEHOLDER": "Github የተጠቃሚ ስም አስገባ",
"LABEL": "Github"
}
}
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "Contact avatar deleted successfully",
- "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
+ "SUCCESS_MESSAGE": "የእውቂያ ፎቶ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "የእውነተኛውን ግንኙነት አባት ምስል ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
}
},
- "SUCCESS_MESSAGE": "Contact saved successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "እውቀቱ በተሳካ ሁኔታ ተቀምጧል",
+ "ERROR_MESSAGE": "ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Start conversation",
- "TITLE": "New conversation",
- "DESC": "Start a new conversation by sending a new message.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "BUTTON_LABEL": "ውይይት ጀምር",
+ "TITLE": "አዲስ ውይይት",
+ "DESC": "አዲስ መልእክት በማስተላለፍ አዲስ ውይይት ይጀምሩ።.",
+ "NO_INBOX": "ከዚህ እውነተኛ ግንኙነት ጋር አዲስ ውይይት ለመጀመር የሚገባ ኢንቦክስ አልተገኘም።.",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "ወደ"
},
"INBOX": {
- "LABEL": "Via Inbox",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "LABEL": "በInbox እንደ መንገድ",
+ "PLACEHOLDER": "የምንጭ ኢንቦክስ ይምረጡ",
+ "ERROR": "ኢንቦክስ ይምረጡ"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
- "ERROR": "Subject can't be empty"
+ "LABEL": "ርዕስ",
+ "PLACEHOLDER": "ርዕስ",
+ "ERROR": "ርዕስ ባዶ መሆን አይችልም"
},
"MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "LABEL": "መልእክት",
+ "PLACEHOLDER": "መልእክትዎን እዚህ ይጽፉ",
+ "ERROR": "መልእክት ባዶ መሆን አይችልም"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "ፋይሎችን ይምረጡ",
+ "HELP_TEXT": "ፋይሎችን እዚህ ያስነሱ ወይም ለመጫን ፋይሎችን ይምረጡ"
},
- "SUBMIT": "Send message",
- "CANCEL": "Cancel",
- "SUCCESS_MESSAGE": "Message sent!",
- "GO_TO_CONVERSATION": "View",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "SUBMIT": "መልእክት ላክ",
+ "CANCEL": "ሰርዝ",
+ "SUCCESS_MESSAGE": "መልእክት ተልኳል!",
+ "GO_TO_CONVERSATION": "እይ",
+ "ERROR_MESSAGE": "መልእክት ማስተላለፊያ አልተሳካም! እንደገና ይሞክሩ"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "ማህበራዊ መለያዎች"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
- "BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "BUTTON": "ባለሙያ ባህሪ ያክሉ",
+ "COPY_SUCCESSFUL": "በቅጂ ሰንጠረዥ ተሳክቷል",
+ "SHOW_MORE": "ሁሉንም ባህሪያት አሳይ",
+ "SHOW_LESS": "ትንሽ ባህሪያት አሳይ",
"ACTIONS": {
- "COPY": "Copy attribute",
- "DELETE": "Delete attribute",
- "EDIT": "Edit attribute"
+ "COPY": "ባህሪውን ቅጂ አድርግ",
+ "DELETE": "ባህሪውን አስወግድ",
+ "EDIT": "ባህሪውን አርትዕ"
},
"ADD": {
- "TITLE": "Create custom attribute",
- "DESC": "Add custom information to this contact."
+ "TITLE": "ባለሙያ ባህሪ ይፍጠሩ",
+ "DESC": "ለዚህ እውነተኛ ግንኙነት ብለው የተለየ መረጃ ያክሉ።."
},
"FORM": {
- "CREATE": "Add attribute",
- "CANCEL": "Cancel",
+ "CREATE": "ባህሪ ያክሉ",
+ "CANCEL": "ሰርዝ",
"NAME": {
- "LABEL": "Custom attribute name",
- "PLACEHOLDER": "Eg: shopify id",
- "ERROR": "Invalid custom attribute name"
+ "LABEL": "የተለየ ባህሪ ስም",
+ "PLACEHOLDER": "ለምሳሌ፡ shopify id",
+ "ERROR": "የተሳሳተ የብለት ባህሪ ስም"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "የባህሪ እሴት",
+ "PLACEHOLDER": "ለምሳሌ፡ 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "አዲስ ባህሪ ፍጠር ",
+ "SUCCESS": "ባህሪው በተሳካ ሁኔታ ተጨምሯል",
+ "ERROR": "ባህሪውን ማከማቸት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "ባህሪው በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR": "ባህሪውን ማዘመን አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "ባህሪው በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR": "ባህሪውን ማስወገድ አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "ባህሪዎችን ያክሉ",
+ "PLACEHOLDER": "ባህሪዎችን ይፈልጉ",
+ "NO_RESULT": "ባህሪዎች አልተገኙም"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
- "NO_RESULT": "No result found"
+ "PLACEHOLDER": "እሴት ይምረጡ",
+ "SEARCH_INPUT_PLACEHOLDER": "እሴት ፈልግ",
+ "NO_RESULT": "ውጤት አልተገኘም"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "Invalid URL",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "ትክክለኛ እሴት ያስፈልጋል",
+ "INVALID_URL": "የተሳሳተ URL",
+ "INVALID_INPUT": "ልክ ያልሆነ ግቤት"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
- "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’s attributes will take precedence.",
+ "TITLE": "እያንዳንዱን አገናኝ",
+ "DESCRIPTION": "እውነተኛዎችን ለሁለት ፕሮፋይሎች አንድ ለማድረግ ያጣሩ፣ ሁሉንም ባህሪያትና ውይይቶች ጨምሮ። በግጭት ሁኔታ ዋናው እውነተኛ ባህሪያት ቅድሚያ ይኖራቸዋል።.",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "ዋና እያንዳንዱ",
+ "HELP_LABEL": "ለማጥፋት ነው"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "ለመቀላቀል ያለው እውቂያ",
+ "PLACEHOLDER": "እውቂያ ፈልግ",
+ "HELP_LABEL": "ሊጠበቅ የሚገባ"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "ማጠቃለያ",
+ "DELETE_WARNING": "{primaryContactName} የሚባለው እውነተኛ ግንኙነት ይሰረዝ።.",
+ "ATTRIBUTE_WARNING": "{primaryContactName} የሚባለው የእውነተኛ ግንኙነት ዝርዝሮች ወደ {parentContactName} ይቅደምታሉ።."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "አንዳንድ ነገር ተሳስቷል። እባክዎ በኋላ ደግመው ይሞክሩ።."
},
"FORM": {
- "SUBMIT": " Merge contacts",
- "CANCEL": "Cancel",
+ "SUBMIT": " ንግግሮችን አንቀሳቅስ",
+ "CANCEL": "ተወው",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "ለመአንቀሳቀስ ልጅ ንግግር ይምረጡ"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "ንግግሩ በተሳካ ሁኔታ ተያይዟል",
+ "ERROR_MESSAGE": "እባክዎ እንደገና ይሞክሩ፤ እውቂያዎችን ማዋቀር አልተቻለም!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(መለያ: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "እውቂያዎች",
+ "SEARCH_TITLE": "እውቂያዎችን ይፈልጉ",
+ "ACTIVE_TITLE": "ንቁ እውቂያዎች",
+ "SEARCH_PLACEHOLDER": "ፈልግ...",
+ "MESSAGE_BUTTON": "መልእክት",
+ "SEND_MESSAGE": "መልእክት ላክ",
+ "BLOCK_CONTACT": "እውቂያ አካውንት አክል",
+ "UNBLOCK_CONTACT": "እውቂያ አካውንት አልክ",
+ "BREADCRUMB": {
+ "CONTACTS": "እውቂያዎች"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "እውቂያ አክል",
+ "EXPORT_CONTACT": "እውቂያዎችን ውጣ",
+ "IMPORT_CONTACT": "እውቂያዎችን አስመጣ",
+ "SAVE_CONTACT": "እውቂያ አስቀምጥ",
+ "EMAIL_ADDRESS_DUPLICATE": "ይህ ኢሜይል አድራሻ ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።.",
+ "PHONE_NUMBER_DUPLICATE": "ይህ ስልክ ቁጥር ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።.",
+ "SUCCESS_MESSAGE": "እውቂያ በተሳካ ሁኔታ ተቀምጧል",
+ "ERROR_MESSAGE": "እውነተኛውን ግንኙነት ማስቀመጥ አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "ይህ እውነተኛ እንደተከለከለ ተሳክቷል",
+ "BLOCK_ERROR_MESSAGE": "እውነተኛውን ግንኙነት መከልከል አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "UNBLOCK_SUCCESS_MESSAGE": "ይህ እውነተኛ በተሳካ ሁኔታ ከተከለከለ ተለይቷል",
+ "UNBLOCK_ERROR_MESSAGE": "እውነተኛውን ግንኙነት ከመከልከል መነሳት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "IMPORT_CONTACT": {
+ "TITLE": "እያካተቱ አድራሻዎች",
+ "DESCRIPTION": "እውነተኛዎችን በCSV ፋይል በመጫን ያስመጡ።.",
+ "DOWNLOAD_LABEL": "ናሙና የCSV ፋይል ያውርዱ።.",
+ "LABEL": "CSV ፋይል፡:",
+ "CHOOSE_FILE": "ፋይል ይምረጡ",
+ "CHANGE": "ቀይር",
+ "CANCEL": "ሰርዝ",
+ "IMPORT": "አስመጣ",
+ "SUCCESS_MESSAGE": "እስከ አስመጣ ሲጠናቀቅ በኢሜይል ይማሳውቃሉ።.",
+ "ERROR_MESSAGE": "ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "ኮንታክቶችን ውጣ",
+ "DESCRIPTION": "በፍጥነት ከኮንታክቶችዎ ዝርዝር ያለው ኮምፕሪሃንሲቭ ዝርዝር ያለውን csv ፋይል ውጣ",
+ "CONFIRM": "ውጣ",
+ "SUCCESS_MESSAGE": "የማስወገጃ ሂደት በመካከል ነው። የማስወገጃ ፋይል ለማውረድ ሲዝግጅ በኢሜይል ይማሳውቃሉ።.",
+ "ERROR_MESSAGE": "ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
+ },
+ "SORT_BY": {
+ "LABEL": "በደረጃ ያደርጉ",
+ "OPTIONS": {
+ "NAME": "ስም",
+ "EMAIL": "ኢሜይል",
+ "PHONE_NUMBER": "ስልክ ቁጥር",
+ "COMPANY": "ኩባንያ",
+ "COUNTRY": "አገር",
+ "CITY": "ከተማ",
+ "LAST_ACTIVITY": "የመጨረሻ እንቅስቃሴ",
+ "CREATED_AT": "ተፈጥሯል በ"
+ }
+ },
+ "ORDER": {
+ "LABEL": "ቅደም ተከተል",
+ "OPTIONS": {
+ "ASCENDING": "ከታች ወደ ላይ",
+ "DESCENDING": "ከላይ ወደ ታች"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "ይህን አጣሪ ማስቀመጥ ይፈልጋሉ?",
+ "CONFIRM": "አጣሪ አስቀምጥ",
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የፊልተሩን ስም ያስገቡ",
+ "ERROR": "ትክክለኛ ስም ያስገቡ",
+ "SUCCESS_MESSAGE": "ፊልተሩ በተሳካ ሁኔታ ተቀምጧል",
+ "ERROR_MESSAGE": "መለያዎችን ማስቀመጥ አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "ማጥፋትን አረጋግጡ",
+ "DESCRIPTION": "እርግጠኛ ነዎት ይህን አሰሳ ማጥፋት ይፈልጋሉ?",
+ "CONFIRM": "አዎን፣ አጥፋ",
+ "CANCEL": "አይ፣ ሰርዝ",
+ "SUCCESS_MESSAGE": "አሰሳው በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "መለያዎችን ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "ስም",
+ "EMAIL": "ኢሜይል",
+ "PHONE_NUMBER": "ስልክ ቁጥር",
+ "IDENTIFIER": "መለያ",
+ "COUNTRY": "አገር",
+ "CITY": "ከተማ",
+ "COMPANY": "ኩባንያ",
+ "CREATED_AT": "ተፈጥሯል በ",
+ "LAST_ACTIVITY": "መጨረሻ እንቅስቃሴ",
+ "REFERER_LINK": "የመግቢያ አገናኝ አገናኝ",
+ "BLOCKED": "ተከለ",
+ "BLOCKED_TRUE": "እውነት",
+ "BLOCKED_FALSE": "ሐሰት",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "ፈልጋቶችን አጽዳ",
+ "UPDATE_SEGMENT": "ክፍል አዘምን",
+ "APPLY_FILTERS": "ፈልጋቶችን አተግብር",
+ "ADD_FILTER": "ፊልተር አክል"
+ },
+ "TITLE": "እውቂያዎችን ፊልተር አድርግ",
+ "EDIT_SEGMENT": "ክፍል አርትዕ",
+ "SEGMENT": {
+ "LABEL": "የክፍል ስም",
+ "INPUT_PLACEHOLDER": "የክፍል ስም አስገባ"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} ተጨማሪ አሰላለፊዎች",
+ "CLEAR_FILTERS": "አሰላለፊዎችን አጽዳ"
+ }
+ },
+ "CARD": {
+ "OF": "ከ",
+ "VIEW_DETAILS": "ዝርዝሮችን እይ",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "የእውቂያ ዝርዝሮችን አርትዕ",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "የመጀመሪያ ስም አስገባ"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "የአያያዝ ስም ያስገቡ"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "የኢሜል አድራሻ ያስገቡ",
+ "DUPLICATE": "ይህ ኢሜይል አድራሻ ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "የስልክ ቁጥር ያስገቡ",
+ "DUPLICATE": "ይህ ስልክ ቁጥር ለሌላ እውነተኛ ግንኙነት ተጠቃሚ ነው።."
+ },
+ "CITY": {
+ "PLACEHOLDER": "የከተማ ስም ያስገቡ"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "ሀገር ይምረጡ"
+ },
+ "BIO": {
+ "PLACEHOLDER": "ባዮ አስገባ"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "የኩባንያ ስም አስገባ"
+ }
+ },
+ "UPDATE_BUTTON": "እውነተኛውን አገናኝ አዘምን",
+ "SUCCESS_MESSAGE": "እውነተኛው አገናኝ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "እውነተኛውን ግንኙነት ማዘመን አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "ማህበራዊ መረጃ አገናኝ አርትዕ",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook አክል"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github አክል"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagram አክል"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Telegram ያክሉ"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "TikTok ያክሉ"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn አክል"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter አክል"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "ይህ እርምጃ ቋሚ ነው እና መመለስ አይቻልም።",
+ "BUTTON": "አሁን ሰርዝ"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "ተፈጥሯል {date}",
+ "LAST_ACTIVITY": "መጨረሻ እንቅስቃሴ {date}",
+ "DELETE_CONTACT_DESCRIPTION": "ይህን እውነተኛ ሁኔታ ለማጥፋት ያስችላል። ይህ እርምጃ አልተቀየረም",
+ "DELETE_CONTACT": "እውነተኛ ሁኔታ ሰጥተው ያጥፉ",
+ "DELETE_DIALOG": {
+ "TITLE": "ማጥፋት አረጋግጥ",
+ "DESCRIPTION": "ይህን እውቂያ ማጥፋት እርግጠኛ ነዎት?",
+ "CONFIRM": "አዎን፣ አጥፋ",
+ "API": {
+ "SUCCESS_MESSAGE": "እውነተኛ ተገናኝ ተሰርዟል",
+ "ERROR_MESSAGE": "እውነተኛውን ግንኙነት ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "አባት ምስል ማስገባት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "SUCCESS_MESSAGE": "አቫታር በተሳካ ሁኔታ ተሰብስቧል"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "አቫታር በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "አባት ምስል ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "ባህሪያት",
+ "HISTORY": "ታሪክ",
+ "NOTES": "ማስታወሻዎች",
+ "MERGE": "አንድነት አድርግ"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "ከዚህ እውነተኛ ግንኙነት ጋር የተያያዙ የቀድሞ ውይይቶች የሉም"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "ለባህሪዎች ፈልግ",
+ "UNUSED_ATTRIBUTES": "{count} ተጠቃሚ ባህሪ | {count} ያልተጠቀሙ ባህሪዎች",
+ "EMPTY_STATE": "በዚህ መለያ ውስጥ የእውነተኛ ግንኙነት ብለው የተለየ ባህሪያት አልተገኙም። በቅንብሮች ውስጥ ብለው የተለየ ባህሪ ማፍጠር ይችላሉ።.",
+ "YES": "አዎን",
+ "NO": "አይ",
+ "TRIGGER": {
+ "SELECT": "እሴት ይምረጡ",
+ "INPUT": "እባክዎ እሴት ያስገቡ"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "የተሳሳተ ቁጥር",
+ "REQUIRED": "ትክክለኛ እሴት አስፈላጊ ነው",
+ "INVALID_INPUT": "የተሳሳተ ግቤት",
+ "INVALID_URL": "የተሳሳተ URL",
+ "INVALID_DATE": "የተሳሳተ ቀን"
+ },
+ "NO_ATTRIBUTES": "ምንም ባህሪያት አልተገኙም",
+ "API": {
+ "SUCCESS_MESSAGE": "ባህሪው በተሳካ ሁኔታ ተሻሽሏል",
+ "DELETE_SUCCESS_MESSAGE": "ባህሪው በተሳካ ሁኔታ ተሰርዟል",
+ "UPDATE_ERROR": "ባህሪውን ማሻሻል አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ",
+ "DELETE_ERROR": "ባህሪውን ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
+ }
+ },
+ "MERGE": {
+ "TITLE": "ንግግር አንድ አድርግ",
+ "DESCRIPTION": "ሁለት ፕሮፋይሎችን አንድ ለማድረግ ያጣሩ፣ ሁሉንም ባህሪያትና ውይይቶች ጨምሮ። በግጭት ሁኔታ ዋናው እውነተኛ ባህሪያት ቅድሚያ ይኖራቸዋል።.",
+ "PRIMARY": "ዋና እውቂያ",
+ "PRIMARY_HELP_LABEL": "ለመቀመጥ",
+ "PRIMARY_REQUIRED_ERROR": "ከመቀጠል በፊት ለመቀላቀል እባክዎ እውቂያ ይምረጡ",
+ "PARENT": "ለመቀላቀል",
+ "PARENT_HELP_LABEL": "ለማጥፋት",
+ "EMPTY_STATE": "አንድም እውቂያ አልተገኘም",
+ "PLACEHOLDER": "ዋና እውቂያ ይፈልጉ",
+ "SEARCH_PLACEHOLDER": "እውቂያ ይፈልጉ",
+ "SEARCH_ERROR_MESSAGE": "እውነተኛዎችን ለመፈለግ አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "SUCCESS_MESSAGE": "እውቂያ በተሳካ ሁኔታ ተዋህዷል",
+ "ERROR_MESSAGE": "እባክዎ እንደገና ይሞክሩ፤ እባክዎ አድራሻዎችን ማያያዣ አልተሳካም!",
+ "IS_SEARCHING": "በመፈለግ ላይ...",
+ "BUTTONS": {
+ "CANCEL": "ሰርዝ",
+ "CONFIRM": "አድራሻ አያያዥ"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "ማስታወሻ ያክሉ",
+ "WROTE": "ጻፈ",
+ "YOU": "አንተ",
+ "SAVE": "ማስታወሻ አስቀምጥ",
+ "ADD_NOTE": "የእውቂያ ማስታወሻ አክል",
+ "EXPAND": "አስፋፋ",
+ "COLLAPSE": "ሰብስብ",
+ "NO_NOTES": "ማስታወሻዎች የሉም፣ ከእውቂያው ዝርዝር ገፅ ላይ ማስታወሻዎችን መጨመር ይችላሉ።",
+ "EMPTY_STATE": "ከዚህ እውነተኛ ግንኙነት ጋር የተያያዙ ማስታወሻዎች አልተገኙም። በላይ ባለው ሳጥን ውስጥ በመጻፍ ማስታወሻ ማክለት ይችላሉ።.",
+ "CONVERSATION_EMPTY_STATE": "እስካሁን ማስታወሻዎች አልተገኙም። አዲስ ማስታወሻ ለመፍጠር የማስታወሻ አዝራር ይጠቀሙ።."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "በዚህ መለያ ውስጥ አንድም እውቂያ አልተገኘም",
+ "SUBTITLE": "ከታች ያለውን አዝራር በመጫን አዲስ እውቂያዎችን ጀምር",
+ "BUTTON_LABEL": "እውቂያ አክል",
+ "SEARCH_EMPTY_STATE_TITLE": "በፍለጋዎ ምንም እውቂያ አልተስማማም 🔍",
+ "LIST_EMPTY_STATE_TITLE": "በዚህ እይታ ውስጥ እውቂያ አይገኝም 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "በአሁኑ ጊዜ ንቁ እውቂያዎች የሉም 🌙"
+ },
+ "LOAD_MORE": "ተጨማሪ አስገባ"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "መለያዎችን መሰጠት",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "መለያዎች በተሳካ ሁኔታ ተመዝግበዋል።.",
+ "ASSIGN_LABELS_FAILED": "መለያዎችን ማስመዝገብ አልተሳካም",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "ለተመረጡት እውነተኛዎች የሚያክሉትን መለያዎች ይምረጡ።.",
+ "NO_LABELS_FOUND": "እስካሁን መለያዎች አልተገኙም።.",
+ "SELECTED_COUNT": "{count} ተመርጧል",
+ "CLEAR_SELECTION": "ምርጫ አጽዳ",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "DELETE_CONTACTS": "ሰርዝ",
+ "DELETE_SUCCESS": "እውነተኛዎች በተሳካ ሁኔታ ተሰርዟል።.",
+ "DELETE_FAILED": "እውነተኛዎችን ማጥፋት አልተቻለም።.",
+ "DELETE_DIALOG": {
+ "TITLE": "የተመረጡትን እያጥፉ",
+ "SINGULAR_TITLE": "የተመረጡትን እውቂያ ሰርዝ",
+ "DESCRIPTION": "ይህ የተመረጡትን {count} እውነተኛዎች በቋሚነት ይሰረዝ። ይህ እርምጃ አይተካልም።.",
+ "SINGULAR_DESCRIPTION": "ይህ የተመረጠውን እውነተኛ ግንኙነት በቋሚነት ይሰረዝ። ይህ እርምጃ አይተካልም።.",
+ "CONFIRM_MULTIPLE": "እውቂያዎችን ሰርዝ",
+ "CONFIRM_SINGLE": "እውቂያ ሰርዝ"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "ፍለጋው አልተጠናቀቀም። እባክዎ ደግመው ይሞክሩ።."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "እይ",
+ "SUCCESS_MESSAGE": "መልእክቱ በተሳካ ሁኔታ ተልኳል!",
+ "ERROR_MESSAGE": "ውይይቱን ሲፈጥሩ ስህተት ተከስቷል። እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "NO_INBOX_ALERT": "ከዚህ እውነተኛ ግንኙነት ጋር ለመጀመር የሚገባ ኢንቦክስ አልተገኘም።.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "ወደ፡:",
+ "TAG_INPUT_PLACEHOLDER": "በስም፣ በኢሜይል ወይም በስልክ ቁጥር ለመፈለግ ቢያንስ 2 ቁምፊዎችን ያስገቡ",
+ "CONTACT_CREATING": "እውቂያ በማፍጠር ላይ..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "በኩል፡:",
+ "BUTTON": "ኢንቦክሶችን አሳይ"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "ርዕስ :",
+ "SUBJECT_PLACEHOLDER": "የኢሜል ርዕስዎን እዚህ ያስገቡ",
+ "CC_LABEL": "ቅድሚያ ተቀባይ:",
+ "CC_PLACEHOLDER": "በኢሜይል ለመፈለግ ቢያንስ 2 ቁምፊዎችን ያስገቡ",
+ "BCC_LABEL": "በቅርብ ተቀባይ:",
+ "BCC_PLACEHOLDER": "በኢሜይል ለመፈለግ ቢያንስ 2 ቁምፊዎችን ያስገቡ",
+ "BCC_BUTTON": "በቅርብ ተቀባይ"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "መልእክትዎን እዚህ ይጽፉ..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "አብነት ይምረጡ",
+ "SEARCH_PLACEHOLDER": "አብነቶችን ይፈልጉ",
+ "EMPTY_STATE": "አንድም አብነት አልተገኘም",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp አብነት: {templateName}",
+ "VARIABLES": "ተለዋዋጮች",
+ "BACK": "ተመለስ",
+ "SEND_MESSAGE": "መልእክት ላክ"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "አብነት ይምረጡ",
+ "SEARCH_PLACEHOLDER": "አብነቶችን ይፈልጉ",
+ "EMPTY_STATE": "አብነቶች አልተገኙም",
+ "TEMPLATE_PARSER": {
+ "BACK": "ተመለስ",
+ "SEND_MESSAGE": "መልእክት ላክ"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "ሰርዝ",
+ "SEND": "ላክ ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/contactFilters.json b/app/javascript/dashboard/i18n/locale/am/contactFilters.json
index 09a543984..4c62f0789 100644
--- a/app/javascript/dashboard/i18n/locale/am/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/am/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/am/contentTemplates.json b/app/javascript/dashboard/i18n/locale/am/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/conversation.json b/app/javascript/dashboard/i18n/locale/am/conversation.json
index 227c802d6..a6803eae1 100644
--- a/app/javascript/dashboard/i18n/locale/am/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/am/conversation.json
@@ -6,65 +6,123 @@
"SWITCH_VIEW_LAYOUT": "Switch the layout",
"DASHBOARD_APP_TAB_MESSAGES": "Messages",
"UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
- "NO_MESSAGE_2": " to send a message to your page!",
- "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.",
- "NO_INBOX_2": " to get started",
- "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
- "SEARCH_MESSAGES": "Search for messages in conversations",
+ "NO_MESSAGE_1": "የደንበኞች መልእክቶች በኢንቦክስዎ አልተገኙም።",
+ "NO_MESSAGE_2": " ወደ ገፅዎ መልእክት ለመላክ!",
+ "NO_INBOX_1": "እሺ! አሁን ምንም ኢንቦክስ አልጨመሩም።",
+ "NO_INBOX_2": " ለመጀመር",
+ "NO_INBOX_AGENT": "ወይ! ምንም ኢንቦክስ አባል አይደለህም። እባክዎ አስተዳዳሪዎን ያነጋግሩ",
+ "SEARCH_MESSAGES": "መልእክቶችን በውይይቶች ውስጥ ይፈልጉ",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
},
"SEARCH": {
- "TITLE": "Search messages",
+ "TITLE": "መልእክቶችን ይፈልጉ",
"RESULT_TITLE": "Search Results",
- "LOADING_MESSAGE": "Crunching data...",
+ "LOADING_MESSAGE": "መረጃ በማስተናገድ ላይ...",
"PLACEHOLDER": "Type any text to search messages",
"NO_MATCHING_RESULTS": "No results found."
},
"UNREAD_MESSAGES": "Unread Messages",
"UNREAD_MESSAGE": "Unread Message",
- "CLICK_HERE": "Click here",
- "LOADING_INBOXES": "Loading inboxes",
- "LOADING_CONVERSATIONS": "Loading Conversations",
- "CANNOT_REPLY": "You cannot reply due to",
- "24_HOURS_WINDOW": "24 hour message window restriction",
+ "CLICK_HERE": "እዚህ ጠቅ ያድርጉ",
+ "LOADING_INBOXES": "ኢንቦክሶች በመጫን ላይ",
+ "LOADING_CONVERSATIONS": "ውይይቶች በመጫን ላይ",
+ "CANNOT_REPLY": "ምክንያቱን በመነሳት መልስ ማድረግ አይችሉም",
+ "24_HOURS_WINDOW": "የ24 ሰዓት መልእክት ጊዜ ገደብ",
+ "48_HOURS_WINDOW": "48 hour message window restriction",
+ "API_HOURS_WINDOW": "ለዚህ ውይይት መመለስ በ{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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
- "REPLYING_TO": "You are replying to:",
- "REMOVE_SELECTION": "Remove Selection",
- "DOWNLOAD": "Download",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "ይህ የInstagram መለያ ወደ አዲሱ የInstagram ቻናል ገቢ ሳጥን ተዛውሯል። ሁሉም አዲስ መልዕክቶች በዚያ ይታያሉ። ከአሁን ጀምሮ ከዚህ ውይይት መልዕክቶች መላክ አትችሉም።",
+ "REPLYING_TO": "ለዚህ ትመልሳለህ፦",
+ "REMOVE_SELECTION": "ምርጫ አስወግድ",
+ "DOWNLOAD": "አውርድ",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
- "RESOLVE_ACTION": "Resolve",
- "REOPEN_ACTION": "Reopen",
+ "RESOLVE_ACTION": "ተፈትኗል",
+ "REOPEN_ACTION": "እንደገና ክፈት",
"OPEN_ACTION": "Open",
- "OPEN": "More",
- "CLOSE": "Close",
- "DETAILS": "details",
+ "MORE_ACTIONS": "ተጨማሪ እርምጃዎች",
+ "OPEN": "ተጨማሪ",
+ "CLOSE": "ዝጋ",
+ "DETAILS": "ዝርዝሮች",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "ውይይት #{conversationId}ን ሰርዝ",
+ "DESCRIPTION": "ይህን ውይይት ለመሰረዝ እርግጠኛ ነዎት?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "ውይይት ሰርዝ",
+ "OPEN_IN_NEW_TAB": "በአዲስ ታብ ክፈት",
+ "COPY_LINK": "የውይይት አገናኝን ኮፒ አድርግ",
+ "COPY_LINK_SUCCESS": "የውይይት አገናኝ ወደ ቅጂ ሰሌዳ ኮፒ ተደረገ",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -132,29 +208,34 @@
"MESSAGE_SIGN_TOOLTIP": "Message signature",
"ENABLE_SIGN_TOOLTIP": "Enable signature",
"DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
- "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MSG_INPUT": "አዲስ መስመር ለማስገባት Shift + enter ይጠቀሙ። '/' በመጀመር የተዘጋጀ ምላሽ ይምረጡ።",
+ "PRIVATE_MSG_INPUT": "አዲስ መስመር ለማስገባት Shift + enter ይጠቀሙ። ይህ ለወኪሎች ብቻ ይታያል",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "ኮፒሎት ተጨማሪ እባብነቶች ስጡው, ወይም ሌላ ማንኛውንም ጥያቄ ያቀርቡ... ተከትሎ ለማስተላለፊያ ኤንተር ይጫኑ።",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
- "REPLY": "Reply",
- "PRIVATE_NOTE": "Private Note",
- "SEND": "Send",
- "CREATE": "Add Note",
+ "REPLY": "መልስ",
+ "PRIVATE_NOTE": "የግል ማስታወሻ",
+ "SEND": "ላክ",
+ "CREATE": "ማስታወሻ አክል",
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "ኮፒሎት እየሰማራ ነው",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,20 +257,32 @@
"YES": "Send",
"CANCEL": "Cancel"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
- "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
- "CHANGE_STATUS": "Conversation status changed",
+ "VISIBLE_TO_AGENTS": "የግል ማስታወሻ፡ ለአንተና ቡድንህ ብቻ ይታያል",
+ "CHANGE_STATUS": "የውይይቱ ሁኔታ ተቀይሯል",
"CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "Conversation Assignee changed",
+ "CHANGE_AGENT": "የውይይቱ ተመድብ ተቀይሯል",
"CHANGE_AGENT_FAILED": "Assignee change failed",
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "ውይይት በተሳካ ሁኔታ ተሰርዟል",
+ "FAIL_DELETE_CONVERSATION": "ውይይትን መሰረዝ አልተቻለም! እንደገና ይሞክሩ",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,47 +304,71 @@
"DELETE": "Delete",
"CANCEL": "Cancel"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
- "TITLE": "Send conversation transcript",
- "DESC": "Send a copy of the conversation transcript to the specified email address",
- "SUBMIT": "Submit",
- "CANCEL": "Cancel",
- "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
- "SEND_EMAIL_ERROR": "There was an error, please try again",
+ "TITLE": "የውይይት ጽሑፍ ላክ",
+ "DESC": "የውይይቱን ጽሑፍ ቅጂ ወደ ተጠቃሚው ኢሜይል ላክ",
+ "SUBMIT": "አስገባ",
+ "CANCEL": "ይቅር",
+ "SEND_EMAIL_SUCCESS": "የቻት አጭር መግለጫው በተሳካ ሁኔታ ተልኳል",
+ "SEND_EMAIL_ERROR": "ስህተት ተፈጥሯል፣ እባክዎ ደግመው ይሞክሩ",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
- "SEND_TO_CONTACT": "Send the transcript to the customer",
+ "SEND_TO_CONTACT": "መግለጫውን ለደንበኛው ይላኩ",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "መግለጫውን ወደ ሌላ ኢሜይል አድራሻ ይላኩ",
"EMAIL": {
- "PLACEHOLDER": "Enter an email address",
- "ERROR": "Please enter a valid email address"
+ "PLACEHOLDER": "ኢሜይል አድራሻ ያስገቡ",
+ "ERROR": "ትክክለኛ ኢሜይል አድራሻ ያስገቡ"
}
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "የእውቂያ ማስታወሻዎች",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "የተገናኙ የLinear ጉዳዮች",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/customRole.json b/app/javascript/dashboard/i18n/locale/am/customRole.json
new file mode 100644
index 000000000..f7c1709bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/datePicker.json b/app/javascript/dashboard/i18n/locale/am/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/general.json b/app/javascript/dashboard/i18n/locale/am/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/generalSettings.json b/app/javascript/dashboard/i18n/locale/am/generalSettings.json
index 185d328a5..fab8020e2 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/am/helpCenter.json b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
index 6c4238b92..ef480e1ee 100644
--- a/app/javascript/dashboard/i18n/locale/am/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/am/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "የእርዳታ ማዕከል",
+ "NEW_PAGE": {
+ "DESCRIPTION": "ለደንበኞችዎ ራስ-አገልግሎት የሚሰጥ የእርዳታ ማዕከላዊ ፖርታሎችን ይፍጠሩ። እነሱን በፍጥነት መልሶችን ለማግኘት እንዲረዱ እና የደንበኞች ድጋፍን እንዲያሻሽሉ ጥረት ያድርጉ።.",
+ "CREATE_PORTAL_BUTTON": "መስኮት ፍጠር"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
- "NEW_BUTTON": "New Article",
+ "FILTER": "በይፋ ያስተካክሉ",
+ "SORT": "በይፋ ያደርጉ",
+ "LOCALE": "ቋንቋ",
+ "SETTINGS_BUTTON": "ቅንብሮች",
+ "NEW_BUTTON": "አዲስ ጽሑፍ",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "ተለቀቀ",
+ "DRAFT": "እቅድ",
+ "ARCHIVED": "ተቀምጧል"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "ሁሉም ጽሁፎች",
+ "MINE": "የእኔ ጽሁፎች",
+ "DRAFT": "የስነምግባር ጽሁፎች",
+ "ARCHIVED": "ተቀምጠው ያሉ ጽሁፎች"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "ቋንቋ ይምረጡ",
+ "PLACEHOLDER": "ቋንቋ ይምረጡ",
+ "NO_RESULT": "ቋንቋ አልተገኘም",
+ "SEARCH_PLACEHOLDER": "ቋንቋ ፈልግ"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "ሁሉም ጽሑፎች",
+ "PUBLISH_BUTTON": "አስተዋውቅ",
+ "MOVE_TO_ARCHIVE_BUTTON": "ወደ ተቀመጠ ማውጫ አስቀምጥ",
+ "PREVIEW": "ቅድመ እይታ",
+ "ADD_TRANSLATION": "ትርጉም አክል",
+ "OPEN_SIDEBAR": "አጠገብ በር ክፈት",
+ "CLOSE_SIDEBAR": "አጠገብ በር ዝጋ",
+ "SAVING": "እየተቀማጭ ነው...",
+ "SAVED": "ተቀምጧል"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
- "UPLOADING": "Uploading...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "TITLE": "ምስል አስገባ",
+ "UPLOADING": "እየሰራ ነው...",
+ "SUCCESS": "ምስል በተሳካ ሁኔታ ተሰብስቧል",
+ "ERROR": "ምስል ሲሰብስብ ስህተት አጋጥሟል",
+ "UN_AUTHORIZED_ERROR": "ምስሎችን ለማስገባት ፈቃድ የለዎትም",
+ "ERROR_FILE_SIZE": "የምስል መጠን ከ {size}MB በታች መሆን አለበት",
+ "ERROR_FILE_FORMAT": "የምስል ቅርጸ ቅርጸት እንዲሁም jpg, jpeg ወይም png መሆን አለበት",
+ "ERROR_FILE_DIMENSIONS": "የምስል ስፋት ከ 2000 x 2000 በታች መሆን አለበት"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "የጽሑፍ ቅንብሮች",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "ምድብ",
+ "TITLE": "ምድብ ይምረጡ",
+ "PLACEHOLDER": "ምድብ ይምረጡ",
+ "NO_RESULT": "ምድብ አልተገኘም",
+ "SEARCH_PLACEHOLDER": "ምድብ ይፈልጉ"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "ደራሲ",
+ "TITLE": "ደራሲ ይምረጡ",
+ "PLACEHOLDER": "ደራሲ ይምረጡ",
+ "NO_RESULT": "ደራሲዎች አልተገኙም",
+ "SEARCH_PLACEHOLDER": "ደራሲ ይፈልጉ"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "ሜታ ርዕስ",
+ "PLACEHOLDER": "ሜታ ርዕስ ያክሉ"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "ሜታ መግለጫ",
+ "PLACEHOLDER": "ለSEO ውጤቶች የተሻለ ሜታ መግለጫዎን ያክሉ..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "ሜታ መለያዎች",
+ "PLACEHOLDER": "በኮማ የተለያዩ ሜታ መለያዎችን ያክሉ..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "ጽሑፉን ያርክቡ",
+ "DELETE": "ጽሑፉን ሰርዝ"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "ያልተደራጀ",
+ "SEARCH_RESULTS": "{query} የፈለጉት ውጤቶች",
+ "EMPTY_TEXT": "ለመልሶች ሰነዶችን ለማስገባት ፈልጉ።.",
+ "SEARCH_LOADER": "በመፈለግ ላይ...",
+ "INSERT_ARTICLE": "አስገባ",
+ "NO_RESULT": "ምንም ጽሑፎች አልተገኙም",
+ "COPY_LINK": "የጽሑፍ አገናኝ ወደ ቅጅ ቦርድ ቅዳ",
+ "OPEN_LINK": "ጽሑፉን በአዲስ ትር ክፈት",
+ "PREVIEW_LINK": "ጽሑፉን ቅድመ እይታ"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "ፖርታሎች",
+ "DEFAULT": "ነባሪ",
+ "NEW_BUTTON": "አዲስ ፖርታል",
+ "ACTIVE_BADGE": "ንቁ",
+ "CHOOSE_LOCALE_LABEL": "አካባቢ ይምረጡ",
+ "LOADING_MESSAGE": "ፖርታሎች በመጫን ላይ...",
+ "ARTICLES_LABEL": "ጽሁፎች",
+ "NO_PORTALS_MESSAGE": "ተገኝቷል የለም ፖርታሎች",
+ "ADD_NEW_LOCALE": "አዲስ አካባቢ ያክሉ",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
- "CANCEL_BUTTON_LABEL": "Cancel",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "TITLE": "ፖርታሎች",
+ "PORTAL_SETTINGS": "የፖርታል ቅንብሮች",
+ "SUBTITLE": "እርስዎ ብዙ ፖርታሎች አሏቸው እና ለእያንዳንዱ ፖርታል በተለያዩ ቋንቋዎች ሊኖሩ ይችላሉ።.",
+ "CANCEL_BUTTON_LABEL": "ተወው",
+ "CHOOSE_LOCALE_BUTTON": "ቋንቋ ይምረጡ"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
- "SETTINGS": "Settings",
- "DELETE": "Delete"
+ "COUNT_LABEL": "ጽሁፎች",
+ "ADD": "ቋንቋ አክል",
+ "VISIT": "ጣቢያውን ጎብኝዎት",
+ "SETTINGS": "ቅንብሮች",
+ "DELETE": "ሰርዝ"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "የጣቢያ ቅንብሮች",
"ITEMS": {
- "NAME": "Name",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "NAME": "ስም",
+ "DOMAIN": "ብለዋል የተለየ ድር ስፍራ",
+ "SLUG": "ስልግ",
+ "TITLE": "የፖርታል ርዕስ",
+ "THEME": "የገጽታ ቀለም",
+ "SUB_TEXT": "የፖርታል ንዑስ ጽሑፍ"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "የሚገኙ ቋንቋዎች",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
- "DELETE": "Delete",
- "DEFAULT_LOCALE": "Default"
+ "NAME": "የቋንቋ ስም",
+ "CODE": "የቋንቋ ኮድ",
+ "ARTICLE_COUNT": "የጽሑፍ ብዛት",
+ "CATEGORIES": "የምድቦች ብዛት",
+ "SWAP": "መቀየር",
+ "DELETE": "ሰርዝ",
+ "DEFAULT_LOCALE": "ነባሪ"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "ፖርታሉን ሰርዝ",
+ "MESSAGE": "ይህን ፖርታል ማጥፋት እርግጠኛ ነዎት",
+ "YES": "አዎን፣ ፖርታሉን ሰርዝ",
+ "NO": "አይ፣ ፖርታሉን አስቀምጥ",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "ፖርታሉ በተሳካ ሁኔታ ተሰርዟል",
+ "DELETE_ERROR": "ፖርታሉን ሲሰርዝ ስህተት አጋጥሟል"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME መመሪያዎች በተሳካ ሁኔታ ተልከዋል",
+ "ERROR_MESSAGE": "CNAME መመሪያዎችን ሲላኩ ስህተት አጋጥሟል"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "ፖርታሉን አርትዕ",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "መሠረታዊ መረጃ"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "ፖርታል ማስተካከያ"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "ምድቦች"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "ቋንቋዎች"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "በውስጥ ምድቦች",
+ "NEW_CATEGORY": "አዲስ ምድብ",
"TABLE": {
- "NAME": "Name",
- "DESCRIPTION": "Description",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "NAME": "ስም",
+ "DESCRIPTION": "መግለጫ",
+ "LOCALE": "አካባቢ",
+ "ARTICLE_COUNT": "የጽሑፎች ብዛት",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "ምድብ አርትዕ",
+ "DELETE": "ምድብ ሰርዝ"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "ምድቦች አልተገኙም"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "መሠረታዊ ቅንብሮችን አዘምን"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "የእርዳታ ማዕከል መረጃ",
+ "BODY": "ስለ ፖርታል መሰረታዊ መረጃ"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "የእርዳታ ማዕከል ቅኝት",
+ "BODY": "ፖርታልን ቅኝት አድርግ"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "ተሰማሚ! 🎉",
+ "BODY": "ሁሉም ተዘጋጅቷል!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
- "BACK_BUTTON": "Back",
+ "BACK_BUTTON": "ተመለስ",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "ፖርታል ፍጠር",
+ "TITLE": "የእርዳታ ማዕከል መረጃ",
+ "CREATE_BASIC_SETTING_BUTTON": "የፖርታል መሰረታዊ ቅንብሮችን ፍጠር"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "ፖርታል ማስተካከያ",
+ "TITLE": "የእርዳታ ማዕከል ማስተካከያ",
+ "UPDATE_PORTAL_BUTTON": "የፖርታል ቅንብሮችን አዘምን"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "ተጠናቀቀ!🎉 ሁሉም ተዘጋጅቷል!",
+ "MESSAGE": "አሁን ይህ የተፈጠረውን ፖርታል በሁሉም ፖርታሎች ገፅ ላይ ማየት ይችላሉ።.",
+ "FINISH": "ወደ ሁሉም ፖርታሎች ገፅ ይሂዱ"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "ሎጎ",
+ "UPLOAD_BUTTON": "ሎጎ አስገባ",
+ "HELP_TEXT": "ይህ አርማ በፖርታል ራስጌ ላይ ይታያል።.",
+ "IMAGE_UPLOAD_SUCCESS": "ሎጎ በተሳካ ሁኔታ ተሰብስቧል",
+ "IMAGE_UPLOAD_ERROR": "ሎጎ በተሳካ ሁኔታ ተሰርዟል",
+ "IMAGE_DELETE_ERROR": "ሎጎውን ሲሰረዝ ላይ ስህተት አጋጥሟል"
},
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "LABEL": "ስም",
+ "PLACEHOLDER": "ፖርታል ስም",
+ "HELP_TEXT": "ስሙ በውስጥ በህዝብ ፊት የሚታይ ፖርታል ውስጥ ይጠቀማል።.",
+ "ERROR": "ስም ያስፈልጋል"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "ስለግ",
+ "PLACEHOLDER": "የፖርታል ስለግ ለURL አድራሻዎች",
+ "ERROR": "ስለግ አስፈላጊ ነው"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: %{exampleURL}",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "ብለይ የተለየ ድር ስፍራ",
+ "PLACEHOLDER": "የፖርታል ብለይ የተለየ ድር ስፍራ",
+ "HELP_TEXT": "ለፖርታሎችዎ ብቻ ብቻ በተለየ ድር ስፍራ ለመጠቀም ከፈለጉ ብቻ ያክሉ። ለምሳሌ፡ {exampleURL}",
+ "ERROR": "ትክክለኛ የ domain URL ያስገቡ"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: %{exampleURL}",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "የመነሻ ገፅ አገናኝ",
+ "PLACEHOLDER": "የፖርታል የመነሻ ገፅ አገናኝ",
+ "HELP_TEXT": "ከፖርታል ወደ መነሻ ገጽ ለመመለስ የሚጠቀሙት አገናኝ። ለምሳሌ፡ {exampleURL}",
+ "ERROR": "ትክክለኛ የመነሻ ገጽ URL ያስገቡ"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "የፖርታል ገጽታ ቀለም",
+ "HELP_TEXT": "ይህ ቀለም እንደ ፖርታል የገጽታ ቀለም ይታያል።."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "የገፅ ርዕስ",
+ "PLACEHOLDER": "የፖርታል ገፅ ርዕስ",
+ "HELP_TEXT": "የገፅ ርዕስ በህዝብ ፊት የሚታይ ፖርታል ውስጥ ይጠቀማል።.",
+ "ERROR": "የገፅ ርዕስ ያስፈልጋል"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "የራስጌ ጽሑፍ",
+ "PLACEHOLDER": "የፖርታል የራስጌ ጽሑፍ",
+ "HELP_TEXT": "የፖርታል ራስጌ ጽሑፍ በህዝብ ፊት የሚታይ ፖርታል ውስጥ ይጠቀማል።.",
+ "ERROR": "የፖርታል የራስጌ ጽሑፍ አስፈላጊ ነው"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "ፖርታሉ በተሳካ ሁኔታ ተፈጥሯል።.",
+ "ERROR_MESSAGE_FOR_BASIC": "ፖርታሉን ማፍጠር አልተቻለም። እባክዎ ደግመው ይሞክሩ።.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "ፖርታሉ በተሳካ ሁኔታ ተዘመኗል።.",
+ "ERROR_MESSAGE_FOR_UPDATE": "ፖርታሉን ማዘመን አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "አዲስ ቋንቋ ያክሉ",
+ "SUB_TITLE": "ይህ አዲስ ቋንቋ ወደ የተለያዩ ትርጉሞች ዝርዝርዎ ይጨምራል።.",
+ "PORTAL": "ፖርታል",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "ቋንቋ",
+ "PLACEHOLDER": "ቋንቋ ይምረጡ",
+ "ERROR": "ቋንቋ አስፈላጊ ነው"
},
"BUTTONS": {
- "CREATE": "Create locale",
- "CANCEL": "Cancel"
+ "CREATE": "ቋንቋ ፍጠር",
+ "CANCEL": "ሰርዝ"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "ቋንቋ በተሳካ ሁኔታ ታክሏል",
+ "ERROR_MESSAGE": "ቋንቋውን ማክሰኞ አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "ነባሪ ቋንቋ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "ነባሪ ቋንቋውን ማዘመን አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "ቋንቋው ከፖርታል በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ከፖርታሉ ቋንቋ ማስወገድ አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "ጽሁፎችን እየጫን ነው...",
+ "404": "ምንም ጽሑፎች ለፍለጋዎ አይዛመዱም 🔍",
+ "NO_ARTICLES": "አሁን ያሉ ጽሑፎች የሉም",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
- "STATUS": "Status",
- "LAST_EDITED": "Last edited"
+ "TITLE": "ርዕስ",
+ "CATEGORY": "ምድብ",
+ "READ_COUNT": "እይታዎች",
+ "STATUS": "ሁኔታ",
+ "LAST_EDITED": "መጨረሻ የተሻሻለ"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "በ",
+ "AUTHOR_NOT_AVAILABLE": "ደራሲው አይገኝም"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "ጽሑፉን እየተጫነ ነው...",
+ "TITLE_PLACEHOLDER": "የጽሑፍ ርዕስ እዚህ ይጻፉ",
+ "CONTENT_PLACEHOLDER": "ጽሑፍዎን እዚህ ይጻፉ",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "ጽሑፉን ማስቀመጥ ላይ ስህተት አጋጥሟል"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "ጽሑፉን ሲያቀርቡ ላይ ስህተት አጋጥሟል",
+ "SUCCESS": "ጽሑፉ በተሳካ ሁኔታ ተለቀቀ"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "ጽሑፉን ሲያርክቭ ላይ ስህተት አጋጥሟል",
+ "SUCCESS": "ጽሑፉ በተሳካ ሁኔታ ተያይዞ አለ።"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "የጽሑፍ ማቅረብ ላይ ስህተት ተከስቷል",
+ "SUCCESS": "ጽሑፍ በተሳካ ሁኔታ ተዘጋጅቷል"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
- "NO": "No, Keep it"
+ "TITLE": "ማጥፋትን ያረጋግጡ",
+ "MESSAGE": "እርግጠኛ ነዎት ጽሑፉን ማጥፋት?",
+ "YES": "አዎን፣ አጥፋ",
+ "NO": "አይ፣ አስቀምጥው"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "ጽሑፉ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ጽሑፉን ሲሰርዝ ስህተት ተከሰተ"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "ሰነዶችን ማደራጀት አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "ምደቦችን ማደራጀት አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "እባክዎ የጽሑፍ ርዕስና ይዘቱን ያክሉ ከዚያ ብቻ ቅንብሮቹን ማዘመን ይችላሉ።"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "ለጽሑፎች ፈልግ"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "ምድብ ፍጠር",
+ "SUB_TITLE": "ካተጎሪው በህዝብ ፊት የሚታይ ፖርታል ውስጥ ለሰነዶች ምደቦች ለማድረግ ይጠቀማል።.",
+ "PORTAL": "ፖርታል",
+ "LOCALE": "ቋንቋ",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የምድብ ስም",
+ "HELP_TEXT": "የካተጎሪው ስም እና አዶ በህዝብ ፊት የሚታይ ፖርታል ውስጥ ለሰነዶች ምደቦች ለማድረግ ይጠቀማል።.",
+ "ERROR": "ስም ያስፈልጋል"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "ስልግ",
+ "PLACEHOLDER": "ለURL የምድብ ስም",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug ያስፈልጋል"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "ስለ ካተጎሪው አጭር መግለጫ ያቀርቡ።.",
+ "ERROR": "መግለጫ አስፈላጊ ነው"
},
"BUTTONS": {
- "CREATE": "Create category",
- "CANCEL": "Cancel"
+ "CREATE": "ምድብ ፍጠር",
+ "CANCEL": "ሰርዝ"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "ምድብ ማፍጠር አልተቻለም"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "ምድብ አርትዕ",
+ "SUB_TITLE": "ካተጎሪውን ማስተካከል ካተጎሪውን በህዝብ ፊት የሚታይ ፖርታል ውስጥ ያዘመናል።.",
+ "PORTAL": "ፖርታል",
+ "LOCALE": "ቋንቋ",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የምድብ ስም",
+ "HELP_TEXT": "የካተጎሪው ስም እና አዶ በህዝብ ፊት የሚታይ ፖርታል ውስጥ ለሰነዶች ምደቦች ለማድረግ ይጠቀማል።.",
+ "ERROR": "ስም አስፈላጊ ነው"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "ስልግ",
+ "PLACEHOLDER": "ለURL የምድብ ስም",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug አስፈላጊ ነው"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "ስለ ካተጎሪው አጭር መግለጫ ያቀርቡ።.",
+ "ERROR": "መግለጫ አስፈላጊ ነው"
},
"BUTTONS": {
- "CREATE": "Update category",
- "CANCEL": "Cancel"
+ "CREATE": "ምድቡን አዘምን",
+ "CANCEL": "ሰርዝ"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "ምድቡን ማሻሻል አልተቻለም"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ምድቡን ማስወገድ አልተቻለም"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
- "CANCEL": "Close",
- "BACK": "Back",
- "BACK_RESULTS": "Back to results"
+ "TITLE": "ጽሑፎችን ፈልግ",
+ "PLACEHOLDER": "ጽሑፎችን ፈልግ",
+ "NO_RESULT": "ምንም ጽሑፎች አልተገኙም",
+ "SEARCHING": "በመፈለግ ላይ...",
+ "SEARCH_BUTTON": "ፈልግ",
+ "INSERT_ARTICLE": "አገናኝ አስገባ",
+ "IFRAME_ERROR": "URL ባዶ ወይም የተሳሳተ ነው። ይዘቱን ማሳየት አልተቻለም።.",
+ "OPEN_ARTICLE_SEARCH": "ከእርዳታ ማዕከል ጽሑፍ አስገባ",
+ "SUCCESS_ARTICLE_INSERTED": "ጽሑፍ በተሳካ ሁኔታ ተካተተ",
+ "PREVIEW_LINK": "ጽሑፍ አሳይ",
+ "CANCEL": "ዝጋ",
+ "BACK": "ተመለስ",
+ "BACK_RESULTS": "ወደ ውጤቶች ተመለስ"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "የእርዳታ ማዕከል",
+ "DESCRIPTION": "ተጠቃሚ መሆን የሚችሉ ራስ-አገልግሎት ፖርታሎችን ይፍጠሩ። ተጠቃሚዎችዎን ሰነዶችን ለመዳረሻ እና 24/7 ድጋፍ ለማግኘት እርዳታ ያድርጉ። ይህን ባህሪ ለማበረታታት የስብስብዎን አዘጋጅት ያዘምኑ።.",
+ "SELF_HOSTED_DESCRIPTION": "ተጠቃሚ መሆን የሚችሉ ራስ-አገልግሎት ፖርታሎችን ይፍጠሩ። ተጠቃሚዎችዎን ሰነዶችን ለመዳረሻ እና 24/7 ድጋፍ ለማግኘት እርዳታ ያድርጉ። እባክዎ ይህን ባህሪ ለማበረታታት ከአስተዳደሩ ጋር ያግኙ።.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "ተጨማሪ ያውቁ",
+ "UPGRADE": "አሻሽል"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "ብዙ መድረኮች",
+ "DESCRIPTION": "ለተለያዩ ምርቶች በአንደኛው መለያ ብዙ የእርዳታ ማዕከላዊ ፖርታሎችን ይፍጠሩ።."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "ለቋንቋዎች ሙሉ ድጋፍ",
+ "DESCRIPTION": "ፖርታሉን በቋንቋዎ ይቋንቋሉ። ሁሉንም ቋንቋዎች እና ለእያንዳንዱ ሰነድ ትርጉሞችን እንደገና እንደምናደርግ እናደግፋለን።."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "ለSEO ተስማሚ ንድፍ",
+ "DESCRIPTION": "ከSEO ተስማሚ ገፆቻችን ጋር በመጠቀም በመፈለጊያ ሞተሮች ላይ እይታዎን ለማሻሻል የሜታ መለያዎችን ያስተካክሉ።."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "ሙሉ API ድጋፍ",
+ "DESCRIPTION": "ፖርታሉን እንደ headless CMS በሶስተኛ ወገን ፊት ገጽ አወቃቀር ከሚያደርጉ ፍሬምወርኮች ጋር በAPI ይጠቀሙ።."
}
}
+ },
+ "LOADING": "በመጫን ላይ...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} እይታ | {count} እይታዎች",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "ለህትመት አድርግ",
+ "DRAFT": "እቅድ",
+ "ARCHIVE": "አርክቭ",
+ "TRANSLATE": "Translate",
+ "DELETE": "ሰርዝ"
+ },
+ "STATUS": {
+ "DRAFT": "እቅድ",
+ "PUBLISHED": "ተለቀቀ",
+ "ARCHIVED": "ተቀምጧል"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "ያልተደራጀ"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "ሁሉም ጽሁፎች",
+ "MINE": "የእኔ",
+ "DRAFT": "እቅድ",
+ "PUBLISHED": "ታተም",
+ "ARCHIVED": "ተቀምጧል"
+ },
+ "CATEGORY": {
+ "ALL": "ሁሉም ምድቦች"
+ },
+ "LOCALE": {
+ "ALL": "ሁሉም ቋንቋዎች"
+ },
+ "NEW_ARTICLE": "አዲስ ጽሑፍ"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "ጽሑፍ ይጽፉ",
+ "SUBTITLE": "ባለጠጋ ጽሑፍ ይጽፉ፣ እንጀምር!",
+ "BUTTON_LABEL": "አዲስ ጽሑፍ"
+ },
+ "MINE": {
+ "TITLE": "እዚህ ምንም ጽሑፎች አልጻፉም",
+ "SUBTITLE": "በእርስዎ የተጻፉ ሁሉም ሰነዶች እዚህ ለፈጣን መዳረሻ ይታያሉ።."
+ },
+ "DRAFT": {
+ "TITLE": "በረቂቅ ላይ ምንም ጽሑፎች የሉም",
+ "SUBTITLE": "የቅድሚያ ጽሑፎች እዚህ ይታያሉ"
+ },
+ "PUBLISHED": {
+ "TITLE": "ተለቀቁ ያልተሆኑ ጽሑፎች የሉም",
+ "SUBTITLE": "የታተመ ጽሑፎች እዚህ ይታያሉ"
+ },
+ "ARCHIVED": {
+ "TITLE": "በአርካይቭ ውስጥ ምንም ጽሑፎች የሉም",
+ "SUBTITLE": "የተአምራች ጽሑፎች በፖርታል ላይ አይታዩም፣ ይህን ለተሰረዙ ወይም የዕድሜ ያለው ገፆች ለማስመዝገብ መጠቀም ትችላለህ"
+ },
+ "CATEGORY": {
+ "TITLE": "በዚህ ምድብ ምንም ጽሑፎች የሉም",
+ "SUBTITLE": "በዚህ ምድብ ያሉ ጽሑፎች እዚህ ይታያሉ"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "SELECTED_COUNT": "{count} ተመረጡ",
+ "CLEAR_SELECTION": "ምርጫ አጽዳ",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "አስተዋውቅ",
+ "DRAFT": "እቅድ",
+ "ARCHIVE": "አርክቭ",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "አዲስ ምድብ",
+ "EDIT_CATEGORY": "ምድብ አርትዕ",
+ "CATEGORIES_COUNT": "{n} ምድብ | {n} ምድቦች",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "ምድቦች ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} ጽሑፎች) | {categoryName} ({categoryCount} ጽሑፍ)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "ምድቦች አልተገኙም",
+ "SUBTITLE": "ካተጎሪዎች እዚህ ይታያሉ። በ'አዲስ ካተጎሪ' አዝራር ቁልፍ በመጫን ካተጎሪ ማክሰኞ ይችላሉ።."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} ጽሑፍ | {count} ጽሑፎች"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "ምድብ ማፍጠር አልተቻለም"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "ምድቡን ማሻሻል አልተቻለም"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "ምድብ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ምድቡን ማስወገድ አልተቻለም"
+ }
+ },
+ "HEADER": {
+ "CREATE": "ምድብ ፍጠር",
+ "EDIT": "ምድብ አርትዕ",
+ "DESCRIPTION": "ካተጎሪውን ማስተካከል ካተጎሪውን በህዝብ ፊት የሚታይ ፖርታል ውስጥ ያዘመናል።.",
+ "PORTAL": "ፖርታል",
+ "LOCALE": "ቋንቋ"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የምድብ ስም",
+ "ERROR": "ስም አስፈላጊ ነው"
+ },
+ "SLUG": {
+ "LABEL": "ስልግ",
+ "PLACEHOLDER": "ለURL የምድብ ስም",
+ "ERROR": "Slug አስፈላጊ ነው",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "ስለ ካተጎሪው አጭር መግለጫ ያቀርቡ።.",
+ "ERROR": "መግለጫ አስፈላጊ ነው"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "ፍጠር",
+ "EDIT": "አዘምን",
+ "CANCEL": "ሰርዝ"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "ምንም ቋንቋ አልተገኘም | {n} ቋንቋ | {n} ቋንቋዎች",
+ "NEW_LOCALE_BUTTON_TEXT": "አዲስ ቋንቋ",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} ጽሑፍ | {count} ጽሑፎች",
+ "CATEGORIES_COUNT": "{count} ምድብ | {count} ምድቦች",
+ "DEFAULT": "ነባሪ",
+ "DRAFT": "እቅድ",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "እንደ ነባሪ አድርግ",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "ሰርዝ"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "አዲስ ቋንቋ አክል",
+ "DESCRIPTION": "ይህ ሰነድ በሚጻፍበት ቋንቋ ይምረጡ። ይህ ወደ የትርጉም ዝርዝርዎ ይጨምራል እና በኋላ ተጨማሪ ማክሰኞ ይችላሉ።.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "ቋንቋ ይምረጡ..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "ተለቀቀ",
+ "DRAFT": "እቅድ"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ቋንቋ በተሳካ ሁኔታ ተጨምሯል",
+ "ERROR_MESSAGE": "ቋንቋውን ማክሰኞ አልተቻለም። እባክዎ ደግመው ይሞክሩ።."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "እየተቀመጠ ነው...",
+ "SAVED": "ተቀመጠ"
+ },
+ "PREVIEW": "ቅድመ እይታ",
+ "PUBLISH": "ለማስታወቂያ",
+ "DRAFT": "እቅድ",
+ "ARCHIVE": "አርክቭ",
+ "BACK_TO_ARTICLES": "ወደ ጽሑፎች ተመለስ"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "ተጨማሪ ባህሪያት",
+ "UNCATEGORIZED": "ያልተመደበ",
+ "EDITOR_PLACEHOLDER": "አንዳንድ ነገር ይጽፉ..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "የጽሑፍ ባህሪያት",
+ "META_DESCRIPTION": "የሜታ መግለጫ",
+ "META_DESCRIPTION_PLACEHOLDER": "የሜታ መግለጫ ያክሉ",
+ "META_TITLE": "ሜታ ርዕስ",
+ "META_TITLE_PLACEHOLDER": "ሜታ ርዕስ ያክሉ",
+ "META_TAGS": "ሜታ መለያዎች",
+ "META_TAGS_PLACEHOLDER": "ሜታ መለያዎች ያክሉ"
+ },
+ "API": {
+ "ERROR": "ሰነዱን ሲቀምጥ ስህተት አጋጥሟል"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "አዲስ ፖርታል",
+ "PORTALS": "ፖርታሎች",
+ "CREATE_PORTAL": "ብዙ ፖርታሎች ፍጠርና አስተዳደር",
+ "ARTICLES": "ሐረጎች",
+ "DOMAIN": "ዶሜይን",
+ "PORTAL_NAME": "ፖርታል ስም"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "አዲስ ፖርታል ፍጠር",
+ "DESCRIPTION": "ፖርታልዎን ስም ይስጡ እና ተጠቃሚ-መልካም URL slug ይፍጠሩ። ሁለቱንም በኋላ በቅንብሮች ማስተካከል ይችላሉ።.",
+ "CONFIRM_BUTTON_LABEL": "ፍጠር",
+ "NAME": {
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የተጠቃሚ መመሪያ | Chatwoot",
+ "MESSAGE": "ለፖርታልዎ ስም ይምረጡ።.",
+ "ERROR": "ስም ያስፈልጋል"
+ },
+ "SLUG": {
+ "LABEL": "ስልግ",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug አስፈላጊ ነው",
+ "FORMAT_ERROR": "እባክዎ ትክክለኛ ስለግ ያስገቡ፣ ለምሳሌ፡ user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "ሎጎ",
+ "IMAGE_UPLOAD_ERROR": "ምስሉን ማስገባት አልተቻለም! እንደገና ይሞክሩ",
+ "IMAGE_UPLOAD_SUCCESS": "ምስሉ በተሳካ ሁኔታ ተጨምሯል። ሎጎውን ለመቀየር እባክዎ በማስቀመጥ ላይ ያጫኑ",
+ "IMAGE_DELETE_SUCCESS": "ሎጎው በተሳካ ሁኔታ ተሰርዟል",
+ "IMAGE_DELETE_ERROR": "አርማውን ማጥፋት አልተቻለም",
+ "IMAGE_UPLOAD_SIZE_ERROR": "የምስሉ መጠን ከ {size}MB በታች መሆን አለበት"
+ },
+ "NAME": {
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የፖርታሉ ስም",
+ "ERROR": "ስም አስፈላጊ ነው"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "የራስጌ ጽሑፍ",
+ "PLACEHOLDER": "የፖርታል ራስጌ ጽሑፍ"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "የገፅ ርዕስ",
+ "PLACEHOLDER": "የፖርታል ገፅ ርዕስ"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "የመነሻ ገፅ አገናኝ",
+ "PLACEHOLDER": "የፖርታል መነሻ ገጽ አገናኝ",
+ "ERROR": "እባክዎ ትክክለኛ ዩአርኤል ያስገቡ። የመነሻ ገፅ አገናኝ ከ 'http://' ወይም 'https://' መጀመሪያ መሆን አለበት።."
+ },
+ "SLUG": {
+ "LABEL": "ስለግ",
+ "PLACEHOLDER": "የፖርታል ስለግ"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "ቀጥታ የንግግር ዊጅት",
+ "PLACEHOLDER": "ቀጥታ የንግግር ዊጅት ይምረጡ",
+ "HELP_TEXT": "በእርዳታ ማዕከልዎ ላይ የሚታይ የቀጥታ ውይይት ዊጅት ይምረጡ",
+ "NONE_OPTION": "ምንም የማይታይ እቃ"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "የብራንድ ቀለም"
+ },
+ "SAVE_CHANGES": "ለውጦች አስቀምጥ"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "ብለይ የተለየ ዶሜን",
+ "LABEL": "ብለይ የተለየ ዶሜይን:",
+ "DESCRIPTION": "ፖርታልዎን በብለይ የተለየ ዶሜይን ማስተናገድ ይችላሉ። ለምሳሌ፣ ድህረ ገፅዎ yourdomain.com ከሆነ ፖርታልዎን docs.yourdomain.com ላይ ለማግኘት በዚህ መስክ ያስገቡ።.",
+ "STATUS_DESCRIPTION": "የብለይ ፖርታልዎ እንደሚሰራ በማረጋገጥ እንዲሠራ ይጀምራል።.",
+ "PLACEHOLDER": "የፖርታል ብልጥ ዶሜይን",
+ "EDIT_BUTTON": "አርትዕ",
+ "ADD_BUTTON": "ብልጥ ዶሜይን አክል",
+ "STATUS": {
+ "LIVE": "በሕይወት ላይ",
+ "PENDING": "ማረጋገጫ በመጠበቅ ላይ ነው",
+ "ERROR": "ማረጋገጫ አልተሳካም"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "ብልጥ ዶሜይን አክል",
+ "EDIT_HEADER": "ብልጥ ዶሜይን አርትዕ",
+ "ADD_CONFIRM_BUTTON_LABEL": "ዶሜይን አክል",
+ "EDIT_CONFIRM_BUTTON_LABEL": "ዶሜይን አዘምን",
+ "LABEL": "ብለይ የተሰራ ዶሜይን",
+ "PLACEHOLDER": "የፖርታል ብለይ የተሰራ ዶሜይን",
+ "ERROR": "ብለይ የተሰራ ዶሜይን አስፈላጊ ነው",
+ "FORMAT_ERROR": "እባክዎ ትክክለኛ የዶሜይን URL ያስገቡ ለምሳሌ docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "የDNS ቅንብር",
+ "DESCRIPTION": "ከDNS አቅራቢዎ ጋር ያለዎትን መለያ ይግቡ፣ እና ለsubdomain ወደ chatwoot.help የሚያመራ የCNAME መዝገብ ያክሉ",
+ "COPY": "CNAME በተሳካ ሁኔታ ተቀይሯል",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "መመሪያዎችን ላክ",
+ "DESCRIPTION": "ይህን ደረሰኝ ለማንኛውም ከእርስዎ የሚሰሩ ሰው እንዲያከናውን ቢፈልጉ ከታች ኢሜይል አድራሻ ያስገቡ እና እኛ ያስፈልጋቸውን መመሪያዎች እንልክላቸዋለን።.",
+ "PLACEHOLDER": "ኢሜይላቸውን ያስገቡ",
+ "ERROR": "ትክክለኛ ኢሜይል አድራሻ ያስገቡ",
+ "SEND_BUTTON": "ላክ"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName} አስወግድ",
+ "HEADER": "ፖርታል አስወግድ",
+ "DESCRIPTION": "ይህን ፖርታል በሙሉ ያስወግዱ። ይህ እርምጃ አይተለወጥም",
+ "DIALOG": {
+ "HEADER": "እርግጠኛ ነዎት እንደምትሰርዙ {portalName}?",
+ "DESCRIPTION": "ይህ የማይተካ ቋሚ እርምጃ ነው።.",
+ "CONFIRM_BUTTON_LABEL": "ሰርዝ"
+ }
+ },
+ "EDIT_CONFIGURATION": "ቅንብር አርትዕ"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "አስወግድ"
+ },
+ "SAVE": "ለውጦች አስቀምጥ"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "ፖርታል በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "ፖርታሉን ማፍጠር አልተቻለም"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "ፖርታሉ በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "ፖርታሉን ማዘመን አልተቻለም"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "PDF ሰነድ አስገባ",
+ "DESCRIPTION": "በAI በመጠቀም በራስሰር የሚፈጥሩ ብዙ ጥያቄዎችን ለማመንጨት PDF ሰነድ አስገባ",
+ "DRAG_DROP_TEXT": "PDF ፋይልዎን እዚህ ያስነሱ ወይም ለምረጥ ጠቅ ያድርጉ",
+ "SELECT_FILE": "PDF ፋይል ምረጥ",
+ "ADDITIONAL_CONTEXT_LABEL": "ተጨማሪ እውቀት (አማራጭ)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "የተጨማሪ ሁኔታ ወይም ለFAQ ፍጠራ መመሪያዎችን ያቀርቡ...",
+ "UPLOADING": "በማስገባት ላይ...",
+ "UPLOAD": "አስገባና አስከፋፈል",
+ "CANCEL": "ሰርዝ",
+ "ERROR_INVALID_TYPE": "እባክዎ ትክክለኛ የPDF ፋይል ይምረጡ",
+ "ERROR_FILE_TOO_LARGE": "ፋይል መጠኑ ከ512MB በታች መሆን አለበት",
+ "ERROR_UPLOAD_FAILED": "PDF ማስገባት አልተሳካም። እባክዎ ደግመው ይሞክሩ።."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF ሰነዶች",
+ "DESCRIPTION": "የተሰቀሉ የPDF ሰነዶችን ያስተዳድሩ እና ከእነሱ በመሠረት ብዙ ጥያቄዎች ያመነቱ",
+ "UPLOAD_PDF": "PDF አስገባ",
+ "UPLOAD_FIRST_PDF": "የመጀመሪያዎን PDF ያስገቡ",
+ "UPLOADED_BY": "በ... ተሰብስቧል",
+ "GENERATE_FAQS": "የተደጋጋሚ ጥያቄዎችን ያፍጠሩ",
+ "GENERATING": "እየፈጠረ ነው...",
+ "CONFIRM_DELETE": "እርግጠኛ ነዎት እንደምትሰርዙ {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "እስካሁን ድረስ PDF ሰነዶች የሉም",
+ "DESCRIPTION": "PDF ሰነዶችን አስገባ እና በAI በመጠቀም በራስሰር የተዘጋጀ የተደጋጋሚ ጥያቄዎችን ፍጠር"
+ },
+ "STATUS": {
+ "UPLOADED": "ዝግጅተዋል",
+ "PROCESSING": "በሂደት ላይ",
+ "PROCESSED": "ተጠናቋል",
+ "FAILED": "አልተሳካም"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "የይዘት ፍጠር",
+ "DESCRIPTION": "PDF ሰነዶችን ለማስገባት እና በAI በመጠቀም በራስሰር የFAQ ይዘት ለማመንጨት",
+ "UPLOAD_TITLE": "PDF ሰነድ አስገባ",
+ "DRAG_DROP": "PDF ፋይልዎን እዚህ ያስወስዱ ወይም ለምረጥ ጠቅ ያድርጉ",
+ "SELECT_FILE": "PDF ፋይል ይምረጡ",
+ "UPLOADING": "ሰነዱን እየተከናወነ ነው...",
+ "UPLOAD_SUCCESS": "ሰነዱ በተሳካ ሁኔታ ተከናውኗል!",
+ "UPLOAD_ERROR": "ሰነዱን ማስገባት አልተሳካም። እባክዎ ደግመው ይሞክሩ።.",
+ "INVALID_FILE_TYPE": "እባክዎ ትክክለኛ የPDF ፋይል ይምረጡ",
+ "FILE_TOO_LARGE": "ፋይል መጠኑ ከ512MB በታች መሆን አለበት",
+ "GENERATED_CONTENT": "የተፈጥሮ የተደጋጋሚ ጥያቄ ይዘት",
+ "PUBLISH_SELECTED": "የተመረጡን አስተዋውቅ",
+ "PUBLISHING": "እየታተም ነው...",
+ "FROM_DOCUMENT": "ከሰነድ ውስጥ",
+ "NO_CONTENT": "ምንም የተፈጠረ ይዘት አልተገኘም። ለመጀመር PDF ሰነድ ያስገቡ።.",
+ "LOADING": "የተፈጠረው ይዘት በመጫን ላይ..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/inbox.json b/app/javascript/dashboard/i18n/locale/am/inbox.json
index dcac5459f..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/am/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/am/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
index 8d1662f91..3f784dc92 100644
--- a/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/inboxMgmt.json
@@ -1,739 +1,1202 @@
{
"INBOX_MGMT": {
- "HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "HEADER": "ኢንቦክሶች",
+ "DESCRIPTION": "ቻናል ማለት ደንበኞችዎ ከእርስዎ ጋር ለመገናኘት የሚመረጡት የግንኙነት መንገድ ነው። ኢንቦክስ ለአንድ ቻናል የተለየ የግንኙነት አስተዳደር ቦታ ነው። ከኢሜይል፣ ቀጥታ ውይይት፣ ማህበራዊ ሚዲያ እና ሌሎች ምንጮች ጋር መገናኘት ይችላል።.",
+ "LEARN_MORE": "ስለ ኢንቦክሶች ተጨማሪ ያውቁ",
+ "COUNT": "{n} የግብይት ሳጥን | {n} የግብይት ሳጥኖች",
+ "SEARCH_PLACEHOLDER": "የግብይት ሳጥኖችን ፈልግ...",
+ "NO_RESULTS": "በፍለጋዎ የሚስማሙ የግብይት ሳጥኖች አልተገኙም",
+ "RECONNECTION_REQUIRED": "ኢንቦክስዎ ተቋርጧል። እስካሁን ድረስ አዲስ መልእክቶች አትቀበሉም እስከሚደገፉት ድረስ።.",
+ "CLICK_TO_RECONNECT": "እዚህ ላይ ለመደገፍ ጠቅ ያድርጉ።.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "የWhatsApp ንግድ ምዝገባዎ አልተጠናቀቀም። እባክዎ ከመገናኛ ባለሥልጣን ጋር በMeta Business Manager ውስጥ የሚታይ ስም ሁኔታዎን ያረጋግጡ።.",
+ "COMPLETE_REGISTRATION": "ምዝገባ አሟልት",
"LIST": {
- "404": "There are no inboxes attached to this account."
+ "404": "ወደዚህ መለያ የተያዙ ኢንቦክሶች የሉም።"
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "ቻናል ይምረጡ",
+ "BODY": "ከChatwoot ጋር ለመያዝ የሚፈልጉትን አቅራቢ ይምረጡ።."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "ኢንቦክስ ይፍጠሩ",
+ "BODY": "መለያዎን ያረጋግጡ እና ኢንቦክስ ይፍጠሩ።."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "ወኪሎችን ያክሉ",
+ "BODY": "ወኪሎችን ወደ የተፈጠረው ኢንቦክስ ያክሉ።."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "እንኳን ደህና መጡ!",
+ "BODY": "ሁሉም ተዘጋጅቷል!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "LABEL": "የኢንቦክስ ስም",
+ "PLACEHOLDER": "የኢንቦክስ ስምዎን ያስገቡ (ለምሳሌ፡ Acme Inc)",
+ "ERROR": "እባክዎ ትክክለኛ የኢንቦክስ ስም ያስገቡ"
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
+ "LABEL": "የድር ጣቢያ ስም",
+ "PLACEHOLDER": "የድር ጣቢያ ስምዎን ያስገቡ (ለምሳሌ፡ Acme Inc)"
},
"FB": {
- "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.",
- "CHOOSE_PAGE": "Choose Page",
- "CHOOSE_PLACEHOLDER": "Select a page from the list",
- "INBOX_NAME": "Inbox Name",
- "ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "HELP": "ማስታወሻ፡ በመግባት ብቻ የገጹ መልእክቶችን ብቻ እንደምንያዝ ነው። የግል መልእክቶችዎን በChatwoot ማድረስ አይቻልም።",
+ "CHOOSE_PAGE": "ገጽ ይምረጡ",
+ "CHOOSE_PLACEHOLDER": "ከዝርዝር ገጽ ይምረጡ",
+ "INBOX_NAME": "የኢንቦክስ ስም",
+ "ADD_NAME": "ለኢንቦክስዎ ስም ያክሉ",
+ "PICK_NAME": "ለInboxዎ ስም ይምረጡ",
+ "PICK_A_VALUE": "እሴት ይምረጡ",
+ "CREATE_INBOX": "Inbox ፍጠር"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "ከInstagram ጋር ቀጥሉ",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "የInstagram መገለጫዎን ያገናኙ",
+ "HELP": "Instagram መገለጫዎን እንደ ቻናል ለመጨመር፣ 'Continue with Instagram' በመጫን የInstagram መገለጫዎን መረጋገጥ አለብዎት ",
+ "ERROR_MESSAGE": "Instagram ጋር ለመገናኘት ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "ERROR_AUTH": "Instagram ጋር ለመገናኘት ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "NEW_INBOX_SUGGESTION": "ይህ የInstagram መለያ ቀድሞ ወደ ሌላ ኢንቦክስ ተገናኝቷል እና አሁን ወደዚህ ተለዋዋጭ ሆኗል። አዲስ መልእክቶች ሁሉ እዚህ ይታያሉ። አሮጌው ኢንቦክስ ለዚህ መለያ መልእክት ማስተላለፍ እና መቀበል አይችልም።.",
+ "DUPLICATE_INBOX_BANNER": "ይህ የInstagram መለያ ወደ አዲሱ የInstagram ቻናል ኢንቦክስ ተለዋዋጭ ሆኗል። ከዚህ ኢንቦክስ የInstagram መልእክቶችን መላክ/መቀበል አትችሉም።."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "ከTikTok ጋር ቀጥሉ",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "TikTok መገለጫዎን ያገናኙ",
+ "HELP": "TikTok መገለጫዎን እንደ ቻናል ለመጨመር፣ “Continue with TikTok” በመጫን መለያዎን መረጋገጥ አለብዎት ",
+ "ERROR_MESSAGE": "TikTok ለመገናኘት ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "ERROR_AUTH": "TikTok ለመገናኘት ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
},
"TWITTER": {
- "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "HELP": "የTwitter መገለጫዎን እንደ ቻናል ለመጨመር በ\"Sign in with Twitter\" ላይ በመጫን የTwitter መገለጫዎን መረጋገጥ አለብዎት። ",
+ "ERROR_MESSAGE": "በ Twitter ግንኙነት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "ከተጠቀሱ ትዊቶች ውስጥ ውይይቶች ፍጠር"
}
},
"WEBSITE_CHANNEL": {
- "TITLE": "Website channel",
- "DESC": "Create a channel for your website and start supporting your customers via our website widget.",
- "LOADING_MESSAGE": "Creating Website Support Channel",
+ "TITLE": "የድር ጣቢያ ቻናል",
+ "DESC": "ለድህረ ገጹ ቻናል ይፍጠሩ እና በድህረ ገጻችን ዊጅት ደንበኞቻችሁን ይደግፉ።",
+ "LOADING_MESSAGE": "የድር ጣቢያ ድጋፍ ቻናል እየተፈጠረ ነው",
"CHANNEL_AVATAR": {
- "LABEL": "Channel Avatar"
+ "LABEL": "የቻናል ፎቶ"
},
"CHANNEL_WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "Please enter a valid URL"
+ "LABEL": "Webhook አድራሻ",
+ "PLACEHOLDER": "እባክዎ የWebhook URLዎን ያስገቡ",
+ "ERROR": "እባክዎ ትክክለኛ አድራሻ ያስገቡ"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "ምስጢሩን ወደ ክሊፕቦርድ ቅዳ",
+ "COPY_SUCCESS": "ምስጢሩ ወደ ክሊፕቦርድ ተቀድሷል",
+ "TOGGLE": "የምስጢሩን ማየት አሳይ/ደብቅ",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
- "LABEL": "Website Domain",
- "PLACEHOLDER": "Enter your website domain (eg: acme.com)"
+ "LABEL": "የድር ጣቢያ ዶሜን",
+ "PLACEHOLDER": "የድር ጣቢያዎን ዶሜን ያስገቡ (ለምሳሌ፡ acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Welcome Heading",
- "PLACEHOLDER": "Hi there !"
+ "LABEL": "የእንኳን ደህና መጡ ርዕስ",
+ "PLACEHOLDER": "ሰላም እንደምን ነህ!"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "የእንኳን ደህና መጡ መልዕክት",
+ "PLACEHOLDER": "ከእኛ ጋር ቀላል መገናኘት እንደምንሠራ ነው። ማንኛውንም ጥያቄ ያቀርቡ ወይም አስተያየትዎን ያጋሩ።"
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Channel greeting message",
- "PLACEHOLDER": "Acme Inc typically replies in a few hours."
+ "LABEL": "የቻናል ደስታ መልእክት",
+ "PLACEHOLDER": "Acme Inc በተለምዶ በጥቂት ሰዓታት ውስጥ ይመልሳል።"
},
"CHANNEL_GREETING_TOGGLE": {
- "LABEL": "Enable channel greeting",
- "HELP_TEXT": "Auto-send greeting messages when customers start a conversation and send their first message.",
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "LABEL": "የቻናል ደስታ አንቀሳቅስ",
+ "HELP_TEXT": "ደንበኞች ውይይት ሲጀምሩና የመጀመሪያ መልእክት ሲልኩ ማስተላለፊያ መልእክቶችን በራስሰር ይላኩ።.",
+ "ENABLED": "ተከናውኗል",
+ "DISABLED": "ተከልክሏል"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "የመልስ ጊዜ ያስቀመጡ",
+ "IN_A_FEW_MINUTES": "በጥቂት ደቂቃዎች ውስጥ",
+ "IN_A_FEW_HOURS": "በጥቂት ሰዓታት ውስጥ",
+ "IN_A_DAY": "በአንድ ቀን ውስጥ",
+ "HELP_TEXT": "ይህ የመልስ ጊዜ በቀጥታ ውይይት ዊጅት ላይ ይታያል"
},
"WIDGET_COLOR": {
- "LABEL": "Widget Color",
- "PLACEHOLDER": "Update the widget color used in widget"
+ "LABEL": "የዊጅት ቀለም",
+ "PLACEHOLDER": "በዊጅት ውስጥ የሚጠቀም ዊጅት ቀለምን ያዘምኑ"
},
- "SUBMIT_BUTTON": "Create inbox",
+ "SUBMIT_BUTTON": "ኢንቦክስ ይፍጠሩ",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "የድህረ ገጽ ቻናል ማቅረብ አልተቻለም፣ እባክዎ እንደገና ይሞክሩ"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp ቻናል",
+ "DESC": "Twilio ያገናኙ እና በSMS ወይም WhatsApp ደንበኞቻችሁን ይደግፉ።",
"ACCOUNT_SID": {
- "LABEL": "Account SID",
- "PLACEHOLDER": "Please enter your Twilio Account SID",
- "ERROR": "This field is required"
+ "LABEL": "አካውንት SID",
+ "PLACEHOLDER": "እባክዎ የTwilio መለያ መለያዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
- "ERROR": "This field is required"
+ "USE_API_KEY": "የ API ቁልፍ ማረጋገጫ ይጠቀሙ",
+ "LABEL": "የ API ቁልፍ SID",
+ "PLACEHOLDER": "እባክዎ የ API ቁልፍ SID ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
- "ERROR": "This field is required"
+ "LABEL": "የ API ቁልፍ ምስጢር",
+ "PLACEHOLDER": "እባክዎ የAPI ቁልፍ ምስጢርዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
- "ERROR": "This field is required",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "LABEL": "የመልእክት አገልግሎት SID",
+ "PLACEHOLDER": "እባክዎ የTwilio የመልእክት አገልግሎት SID ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው",
+ "USE_MESSAGING_SERVICE": "Twilio የመልእክት አገልግሎት ይጠቀሙ"
},
"CHANNEL_TYPE": {
- "LABEL": "Channel Type",
- "ERROR": "Please select your Channel Type"
+ "LABEL": "የቻናል አይነት",
+ "ERROR": "እባክዎ የቻናል አይነትዎን ይምረጡ"
},
"AUTH_TOKEN": {
- "LABEL": "Auth Token",
- "PLACEHOLDER": "Please enter your Twilio Auth Token",
- "ERROR": "This field is required"
+ "LABEL": "የማረጋገጫ ቶክን",
+ "PLACEHOLDER": "እባክዎ የTwilio የማረጋገጫ ቶክንዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "የጣቢያ ስም",
+ "PLACEHOLDER": "እባክዎ የጣቢያ ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "ስልክ ቁጥር",
+ "PLACEHOLDER": "ከዚህ መልእክት የሚልከው የስልክ ቁጥር እባክዎ ያስገቡ።",
+ "ERROR": "እባክዎ በ`+` ምልክት የሚጀምር እና ቦታ ያልያዘ ትክክለኛ የስልክ ቁጥር ያቀርቡ።."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
+ "TITLE": "ካልባክ URL",
+ "SUBTITLE": "በTwilio ውስጥ የመልእክት እንደገና መግባት አድራሻን ከዚህ በተጠቀሰው አድራሻ ጋር መቀነባበር አለብዎት።"
},
- "SUBMIT_BUTTON": "Create Twilio Channel",
+ "SUBMIT_BUTTON": "የTwilio ቻናል ይፍጠሩ",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again"
+ "ERROR_MESSAGE": "የTwilio ማረጋገጫ መረጃዎችን ማረጋገጥ አልተቻለም፣ እባክዎ እንደገና ይሞክሩ"
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS ቻናል",
+ "DESC": "በSMS ደንበኞቻችሁን ይደግፉ።",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API አቅራቢ",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "SMS ቻናሉን ማስቀመጥ አልተቻለም"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
- "ERROR": "This field is required"
+ "LABEL": "የመለያ ቁጥር",
+ "PLACEHOLDER": "እባክዎ የBandwidth መለያ ቁጥርዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
- "ERROR": "This field is required"
+ "LABEL": "API ቁልፍ",
+ "PLACEHOLDER": "እባክዎ የBandwidth API ቁልፍዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
- "ERROR": "This field is required"
+ "LABEL": "API ምስጢር",
+ "PLACEHOLDER": "እባክዎ የBandwidth API ምስጢርዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
- "ERROR": "This field is required"
+ "LABEL": "የመተግበሪያ መለያ",
+ "PLACEHOLDER": "እባክዎ የBandwidth የመተግበሪያ መለያዎን ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "የኢንቦክስ ስም",
+ "PLACEHOLDER": "እባክዎ የኢንቦክስ ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "የስልክ ቁጥር",
+ "PLACEHOLDER": "እባክዎ መልእክት ከሚልከው ስልክ ቁጥር ያስገቡ።.",
+ "ERROR": "እባክዎ በ`+` ምልክት የሚጀምር እና ቦታ ያልያዘ ትክክለኛ የስልክ ቁጥር ያቀርቡ።."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "የባንድዊድ ቻናል ፍጠር",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "የባንድዊድ ማረጋገጫ መረጃዎችን ማረጋገጥ አልተቻለንም፣ እባክዎ እንደገና ይሞክሩ"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "TITLE": "የካልባክ አድራሻ",
+ "SUBTITLE": "በBandwidth ውስጥ የመልእክት መልስ አድራሻን ከዚህ በታች የተጠቀሰው አድራሻ ጋር መቀናበር አለቦት።."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp ቻናል",
+ "DESC": "በWhatsApp ደንበኞቻችሁን ይደግፉ።",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API አቅራቢ",
+ "WHATSAPP_EMBEDDED": "WhatsApp ቢዝነስ",
"TWILIO": "Twilio",
- "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD": "WhatsApp ክላውድ",
+ "WHATSAPP_CLOUD_DESC": "በMeta በፍጥነት ማቀናበር",
+ "TWILIO_DESC": "በTwilio መለያ ይገናኙ",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "የAPI አቅራቢዎን ይምረጡ",
+ "DESCRIPTION": "የWhatsApp አቅራቢዎን ይምረጡ። በMeta ቀጥታ ማገናኘት ይችላሉ ይህም ምንም ቅንብር አያስፈልግም፣ ወይም በTwilio በመለያዎ መረጃ ማገናኘት ይችላሉ።."
+ },
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter an inbox name",
- "ERROR": "This field is required"
+ "LABEL": "የጣቢያ ስም",
+ "PLACEHOLDER": "እባክዎ የጣቢያ ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "የስልክ ቁጥር",
+ "PLACEHOLDER": "ከዚህ መልእክት የሚልከው የስልክ ቁጥር እባክዎ ያስገቡ።",
+ "ERROR": "እባክዎ በ`+` ምልክት የሚጀምር እና ቦታ ያልያዘ ትክክለኛ የስልክ ቁጥር ያቀርቡ።."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "የስልክ ቁጥር መለያ",
+ "PLACEHOLDER": "እባክዎ ከFacebook አንደበት አሳይ ገጽ ያገኙትን የስልክ ቁጥር ID ያስገቡ።.",
+ "ERROR": "እባክዎ ትክክለኛ ዋጋ ያስገቡ።."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "የንግድ አካውንት መለያ",
+ "PLACEHOLDER": "እባክዎ ከFacebook አንደበት አሳይ ገጽ ያገኙትን የንግድ መለያ ID ያስገቡ።.",
+ "ERROR": "እባክዎ ትክክለኛ ዋጋ ያስገቡ።."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Webhook ማረጋገጫ ቶክን",
+ "PLACEHOLDER": "ለFacebook webhook ለማስተካከል የሚፈለገውን የማረጋገጫ ቶክን ያስገቡ።.",
+ "ERROR": "እባክዎ ትክክለኛ ዋጋ ያስገቡ።."
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "API ቁልፍ",
+ "SUBTITLE": "የWhatsApp API ቁልፍን ያቀናብሩ።",
+ "PLACEHOLDER": "API ቁልፍ",
+ "ERROR": "እባክዎ ትክክለኛ እሴት ያስገቡ።"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
- "WEBHOOK_URL": "Webhook URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "TITLE": "የተመለሰ አድራሻ URL",
+ "SUBTITLE": "በFacebook Developer ፖርታል ውስጥ የwebhook URL እና የማረጋገጫ ቶክን መቀናበር አለቦት።.",
+ "WEBHOOK_URL": "የWebhook URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "የWebhook ማረጋገጫ ቶክን"
+ },
+ "SUBMIT_BUTTON": "WhatsApp ቻናል ፍጠር",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "ከMeta ጋር ፈጣን ቅንብር",
+ "DESC": "ለፈጣን አዲስ ቁጥሮች ለመገናኘት WhatsApp ተዋሰነ መመዝገቢያ ሂደት ይጠቀሙ። ወደ Meta ይመለሳሉ እና ወደ WhatsApp ንግድ መለያዎ ይግቡ። የአስተዳደር መብት ከሚኖርዎት ሂደቱ ቀላል እና ቀላል ይሆናል።.",
+ "BENEFITS": {
+ "TITLE": "የተዋሰነ መመዝገቢያ ጥቅሞች፡:",
+ "EASY_SETUP": "ምንም እጅግ ቅንብር አያስፈልግም",
+ "SECURE_AUTH": "የተሰራተኛ የOAuth ማረጋገጫ",
+ "AUTO_CONFIG": "ራስሰር የwebhook እና የስልክ ቁጥር ቅንብር"
+ },
+ "LEARN_MORE": {
+ "TEXT": "ለተዋሰነ መመዝገቢያ፣ ዋጋ እና ገደቦች ተጨማሪ ለማወቅ {link} ይጎብኙ።.",
+ "LINK_TEXT": "ይህ አገናኝ"
+ },
+ "SUBMIT_BUTTON": "ከWhatsApp Business ጋር ይገናኙ",
+ "AUTH_PROCESSING": "ከMeta ጋር በመረጋገጥ ላይ ነው",
+ "WAITING_FOR_BUSINESS_INFO": "እባክዎ በMeta መስኮት ውስጥ የንግድ ቅንብር ያርኩ...",
+ "PROCESSING": "የWhatsApp ቢዝነስ መለያዎን እየተዘጋጀ ነው",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK እየተጫነ ነው...",
+ "CANCELLED": "የWhatsApp ምዝገባ ተሰርዟል",
+ "SUCCESS_TITLE": "የWhatsApp ቢዝነስ መለያ ተገናኝቷል!",
+ "WAITING_FOR_AUTH": "ለማረጋገጫ ተጠባባቂ ነው...",
+ "INVALID_BUSINESS_DATA": "ከFacebook የተቀበሉ የንግድ መረጃ ትክክል አይደለም። እባክዎ ደግመው ይሞክሩ።.",
+ "SIGNUP_ERROR": "የምዝገባ ስህተት ተፈጥሯል",
+ "AUTH_NOT_COMPLETED": "ማረጋገጫ አልተጠናቀቀም። ሂደቱን እባክዎ ዳግም ይጀምሩ።.",
+ "SUCCESS_FALLBACK": "የWhatsApp የንግድ መለያ በተሳካ ሁኔታ ተቋቋመ",
+ "MANUAL_FALLBACK": "ቁጥርዎ ከWhatsApp Business Platform (API) ጋር ከተገናኘ እና ወይም እርስዎ የቴክኖሎጂ አቅራቢ ከሆኑ እና የእርስዎን ቁጥር በራስዎ ሲያስገቡ፣ እባክዎ የ{link} ሂደትን ይጠቀሙ",
+ "MANUAL_LINK_TEXT": "የእጅ ማቀናበሪያ ሂደት",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "WhatsApp ቻናሉን ማስቀመጥ አልተቻለም"
+ }
+ },
+ "VOICE": {
+ "TITLE": "የድምጽ ቻናል",
+ "DESC": "Twilio Voice ያገናኙ እና በስልክ ጥሪዎች ደንበኞችዎን ይደግፉ።.",
+ "PHONE_NUMBER": {
+ "LABEL": "ስልክ ቁጥር",
+ "PLACEHOLDER": "ስልክ ቁጥርዎን ያስገቡ (ለምሳሌ +1234567890)",
+ "ERROR": "እባክዎ በE.164 ቅርጸ ቁጥር ትክክለኛ ስልክ ቁጥር ያቀርቡ (ለምሳሌ +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "የመለያ ቁጥር SID",
+ "PLACEHOLDER": "የTwilio የመለያ ቁጥር SID ያስገቡ",
+ "REQUIRED": "የመለያ ቁጥር SID አስፈላጊ ነው"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "የማረጋገጫ ቶክን",
+ "PLACEHOLDER": "የTwilio የማረጋገጫ ቶክንዎን ያስገቡ",
+ "REQUIRED": "የማረጋገጫ ቶክን አስፈላጊ ነው"
+ },
+ "API_KEY_SID": {
+ "LABEL": "የAPI ቁልፍ SID",
+ "PLACEHOLDER": "የTwilio API ቁልፍ SID ያስገቡ",
+ "REQUIRED": "API ቁልፍ SID አስፈላጊ ነው"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API ቁልፍ ምስጢር",
+ "PLACEHOLDER": "የTwilio API ቁልፍ ምስጢር ያስገቡ",
+ "REQUIRED": "API ቁልፍ ምስጢር አስፈላጊ ነው"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio የድምጽ አድራሻ",
+ "TWILIO_VOICE_URL_SUBTITLE": "ይህን አድራሻ እንደ Twilio የድምፅ አድራሻ እና TwiML መተግበሪያ ያስተካክሉ።.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio የሁኔታ ኮልባክ URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "ይህን አድራሻ እንደ Twilio የሁኔታ መልስ አድራሻ በስልክ ቁጥርዎ ያስተካክሉ።."
+ },
+ "SUBMIT_BUTTON": "የድምጽ ቻናል ፍጠር",
+ "API": {
+ "ERROR_MESSAGE": "የድምጽ ቻናል ማፍጠር አልተቻለንም"
}
},
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "የAPI ቻናል",
+ "DESC": "ከAPI ቻናል ጋር ያገናኙ እና ደንበኞቻችሁን ይደግፉ።",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "የቻናል ስም",
+ "PLACEHOLDER": "እባክዎ የቻናል ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
- "PLACEHOLDER": "Webhook URL"
+ "LABEL": "የWebhook URL",
+ "SUBTITLE": "በክስተት ላይ የሚመልሱበትን አድራሻ ያስተካክሉ።.",
+ "PLACEHOLDER": "የWebhook URL"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "API ቻናል ፍጠር",
"API": {
- "ERROR_MESSAGE": "We were not able to save the api channel"
+ "ERROR_MESSAGE": "API ቻናሉን ማስቀመጥ አልተቻለንም"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "ኢሜይል ቻናል",
+ "DESC": "ኢሜይል ኢንቦክስዎን ያገናኙ።.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "የቻናል ስም",
+ "PLACEHOLDER": "እባክዎ የቻናል ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"EMAIL": {
- "LABEL": "Email",
- "SUBTITLE": "Provide the email address where your customers send support requests.",
- "PLACEHOLDER": "Email"
+ "LABEL": "ኢሜይል",
+ "SUBTITLE": "ደንበኞችዎ የድጋፍ ጥያቄዎችን ለማስተላለፍ የሚጠቀሙበትን ኢሜይል አድራሻ ያስገቡ።.",
+ "PLACEHOLDER": "ኢሜይል"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "ኢሜይል ቻናል ፍጠር",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "ኢሜይል ቻናሉን ማስቀመጥ አልተቻለንም"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "የኢሜይል ኢንቦክስዎ በተሳካ ሁኔታ ተፈጥሯል! ኢሜይሎችን ለማስተላለፍና ለመቀበል SMTP እና IMAP መለያዎችን መቅነት አለቦት። እነዚህ ቅንብሮች ካልተደረጉ ኢሜይሎች አይሰሩም።.",
+ "FORWARDING_ADDRESS_LABEL": "ኢሜይሎችን ወደዚህ አድራሻ ይቀላቀሉ፡:",
+ "CONFIGURE_SMTP_IMAP_LINK": "እዚህ ጠቅ ያድርጉ",
+ "CONFIGURE_SMTP_IMAP_TEXT": " እንዲሁም IMAP እና SMTP ቅንብሮችን ለመቅከም"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE ቻናል",
+ "DESC": "ከLINE ቻናል ጋር ያገናኙ እና ደንበኞቻችሁን ይደግፉ።",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "የቻናል ስም",
+ "PLACEHOLDER": "እባክዎ የቻናል ስም ያስገቡ",
+ "ERROR": "ይህ መስክ አስፈላጊ ነው"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE የቻናል መለያ",
+ "PLACEHOLDER": "LINE የቻናል መለያ"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE የቻናል ሚስጥር",
+ "PLACEHOLDER": "LINE የቻናል ሚስጥር"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE የቻናል ቶክን",
+ "PLACEHOLDER": "LINE የቻናል ቶክን"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE ቻናል ፍጠር",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINE ቻናሉን ማስቀመጥ አልተቻለም"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "የእንደገና ጥሪ አድራሻ",
+ "SUBTITLE": "በLINE መተግበሪያ ውስጥ የwebhook አድራሻን ከዚህ በተጠቀሰው አድራሻ ጋር መቀነባበር አለብዎት።"
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram ቻናል",
+ "DESC": "ከTelegram ቻናል ጋር ያገናኙ እና ደንበኞቻችሁን ይደግፉ።",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "የቦት ቶክን",
+ "SUBTITLE": "ከTelegram BotFather ያገኙትን የቦት ቶክን ያቀናብሩ።",
+ "PLACEHOLDER": "የቦት ቶክን"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram ቻናል ፍጠር",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Telegram ቻናሉን ማስቀመጥ አልተቻለንም"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "ቻናል ይምረጡ",
+ "DESC": "Chatwoot የቀጥታ ውይይት ዊጅቶች፣ Facebook Messenger፣ WhatsApp፣ ኢሜይሎች እና ሌሎች ቻናሎችን ይደግፋል። በተለይ ቻናል ለመፍጠር ከፈለጉ በAPI ቻናል መፍጠር ይችላሉ። ለመጀመር ከታች አንዱን ቻናል ይምረጡ።.",
+ "TITLE_NEXT": "ቅንብሩን አሟልተው ያጠናቀቁ",
+ "TITLE_FINISH": "እሺ!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "ድህረ ገጽ",
+ "DESCRIPTION": "ቀጥታ የሚነጋገር ቪጅት ይፍጠሩ"
+ },
+ "FACEBOOK": {
+ "TITLE": "ፌስቡክ",
+ "DESCRIPTION": "የFacebook ገጽዎን ያገናኙ"
+ },
+ "WHATSAPP": {
+ "TITLE": "ዋትስአፕ",
+ "DESCRIPTION": "በWhatsApp ላይ ደንበኞችዎን ድጋፍ ያድርጉ"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "ኢሜይል",
+ "DESCRIPTION": "ከGmail, Outlook ወይም ከሌሎች አቅራቢዎች ጋር ያገናኙ"
+ },
+ "SMS": {
+ "TITLE": "ኤስኤምኤስ",
+ "DESCRIPTION": "ኤስኤምኤስ ቻናልን ከTwilio ወይም bandwidth ጋር ያገናኙ"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "በAPI ቻናል ለራስዎ ተለዋዋጭ ቻናል ይፍጠሩ"
+ },
+ "TELEGRAM": {
+ "TITLE": "ቴሌግራም",
+ "DESCRIPTION": "በBot ቶክን የTelegram ቻናል ያቀናብሩ"
+ },
+ "LINE": {
+ "TITLE": "ላይን",
+ "DESCRIPTION": "የLine ቻናልዎን ያካተቱ"
+ },
+ "INSTAGRAM": {
+ "TITLE": "ኢንስታግራም",
+ "DESCRIPTION": "የInstagram አካውንትዎን ያገናኙ"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "TikTok አካውንትዎን ያገናኙ"
+ },
+ "VOICE": {
+ "TITLE": "ድምጽ",
+ "DESCRIPTION": "ከTwilio Voice ጋር ያገናኙ"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agents",
- "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "TITLE": "Agent-ዎች",
+ "DESC": "እዚህ አዲስ የተፈጠረውን ኢንቦክስ ለመቆጣጠር ወኪሎችን ማከል ይችላሉ። እነዚህ የተመረጡ ወኪሎች ብቻ ወደ ኢንቦክስዎ መዳረሻ አላቸው። ከዚህ ኢንቦክስ አካል ያልሆኑ ወኪሎች ሲግቡ መልእክቶችን ማየት ወይም መልስ ማድረግ አይችሉም።
ማስታወሻ፡ እንደ አስተዳደር ባለስልጣን ሁሉንም ኢንቦክሶች ለመዳረሻ ከፈለጉ ራስዎን እንደ ወኪል ወደ ሁሉም የሚፈጥሩት ኢንቦክሶች መጨመር አለብዎት።",
+ "VALIDATION_ERROR": "ከአዲሱ ኢንቦክስዎ ቢያንስ አንድ ወኪል ያክሉ",
+ "PICK_AGENTS": "ለኢንቦክሱ ወኪሎችን ይምረጡ"
},
"DETAILS": {
- "TITLE": "Inbox Details",
- "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification."
+ "TITLE": "የኢንቦክስ ዝርዝሮች",
+ "DESC": "ከታች ያለው ከዝርዝር ማስተካከያ በተጠቃሚው ፌስቡክ ገጽ ወደ Chatwoot ለመገናኘት ይምረጡ። ለምርጥ መለያየት የእርስዎን ኢንቦክስ በተለየ ስም ማቅረብ ይችላሉ።"
},
"FINISH": {
- "TITLE": "Nailed It!",
- "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)"
+ "TITLE": "ተሳክቷል!",
+ "DESC": "የFacebook ገጹን በChatwoot ጋር በተሳካ ሁኔታ አገናኝተዋል። ቀጣዩ ጊዜ ደንበኛ ገጹን ሲያስተናግድ ውይይቱ በራስህ ኢንቦክስ ውስጥ በራስህ ይታያል።
እኛ እንዲሁም በድር ጣቢያዎ በቀላሉ ሊጨምሩት የሚችለውን የዊጅት ስክሪፕት እንሰጣለን። ይህ በድር ጣቢያዎ ሲኖር ደንበኞች ከማንኛውም ውጪ መሣሪያ እገዛ ሳይወስዱ ቀጥታ ከድር ጣቢያዎ መልእክት ማስተናገድ ይችላሉ እና ውይይቱ በChatwoot ውስጥ እዚህ ይታያል።
አሪፍ ነው, እኛም እንሞክራለን :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "የኢሜል አቅራቢዎን ይምረጡ",
+ "DESCRIPTION": "ከታች ያሉት ኢሜይል አቅራቢዎች ውስጥ አንዱን ይምረጡ። ከዚህ ውስጥ ኢሜይል አቅራቢዎት ካልተገኘው ሌላ አቅራቢ አማራጭ ማምረጥ እና IMAP እና SMTP መለያዎችን መስጠት ይችላሉ።."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft ኢሜይል",
+ "DESCRIPTION": "ለመጀመር ከMicrosoft ጋር ይግቡ ቁልፍ ይጫኑ። ወደ ኢሜይል ግባ ገጽ ይቀርባሉ። ፈቃዶቹን ከተቀበሉ በኋላ ወደ ኢንቦክስ ፍጠራ ደረጃ ይመለሳሉ።.",
+ "EMAIL_PLACEHOLDER": "ኢሜይል አድራሻ ያስገቡ",
+ "SIGN_IN": "ከMicrosoft ጋር ይግቡ",
+ "ERROR_MESSAGE": "Microsoft ለመገናኘት ስህተት ተከስቷል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "GOOGLE": {
+ "TITLE": "Google ኢሜይል",
+ "DESCRIPTION": "ለመጀመር ከGoogle ጋር ይግቡ ቁልፍ ይጫኑ። ወደ ኢሜይል ግባ ገጽ ይቀርባሉ። ፈቃዶቹን ከተቀበሉ በኋላ ወደ ኢንቦክስ ፍጠራ ደረጃ ይመለሳሉ።.",
+ "SIGN_IN": "ከGoogle ጋር ይግቡ",
+ "EMAIL_PLACEHOLDER": "ኢሜይል አድራሻ ያስገቡ",
+ "ERROR_MESSAGE": "ከGoogle ጋር ለመገናኘት ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
}
},
"DETAILS": {
- "LOADING_FB": "Authenticating you with Facebook...",
- "ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creating your Inbox...",
- "TITLE": "Configure Inbox Details",
+ "LOADING_FB": "ከFacebook ጋር እየተማረኩ ነዎት...",
+ "ERROR_FB_LOADING": "Facebook SDK ማስገባት አልተቻለም። እባክዎ ማንኛውንም የማስታወቂያ አከላካይ ይጥፋቸው እና ከሌላ አሳሽ በኩል ደግመው ይሞክሩ።.",
+ "ERROR_FB_AUTH": "አንድ ነገር ተሳስቷል፣ እባክዎ ገፁን ዳግም ያስመልክቱ...",
+ "ERROR_FB_UNAUTHORIZED": "ይህን እርምጃ ለማከናወን ፈቃድ የለዎትም። ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "እባክዎ የFacebook ገጹን ሙሉ ቁጥጥር እንዳለዎት ያረጋግጡ። ስለ Facebook ሚናዎች ተጨማሪ መረጃ እዚህ ይነብቡ።.",
+ "CREATING_CHANNEL": "ኢንቦክስዎን እየፈጠሩ ነው...",
+ "TITLE": "የኢንቦክስ ዝርዝሮችን ያቀናብሩ",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents",
- "ADD_AGENTS": "Adding Agents to your Inbox..."
+ "BUTTON_TEXT": "Agent-ዎችን ያክሉ",
+ "ADD_AGENTS": "Agent-ዎችን ወደ ኢንቦክስዎ እየጨምሩ ነው..."
},
"FINISH": {
- "TITLE": "Your Inbox is ready!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "TITLE": "ኢንቦክስዎ ዝግጅት ላይ ነው!",
+ "MESSAGE": "ከአዲሱ ቻናልዎ ጋር ከደንበኞችዎ ጋር እንዲገናኙ አሁን ትችላላችሁ። ደስታ ያለው ድጋፍ",
+ "BUTTON_TEXT": "ወደ እዚያ ይውሰዱኝ",
+ "MORE_SETTINGS": "ተጨማሪ ቅንብሮች",
+ "WEBSITE_SUCCESS": "የድር ጣቢያ ቻናል መፍጠር በተሳካ ሁኔታ ተጠናቋል። ከታች የተሳየውን ኮድ ቅዳት እና በድር ጣቢያዎ ያስገቡ። ቀጣዩ ጊዜ ደንበኛ በላይቭ ቻት ሲጠቀም ውይይቱ በራሱ በኢንቦክስዎ ይታያል።",
+ "WHATSAPP_QR_INSTRUCTION": "ለፈጣን ሙከራ የ WhatsApp ጥቅል ላይ ከላይ ያለውን QR ኮድ ይስካን ያድርጉ",
+ "MESSENGER_QR_INSTRUCTION": "ለፈጣን ሙከራ የ Facebook Messenger ጥቅል ላይ ከላይ ያለውን QR ኮድ ይስካን ያድርጉ",
+ "TELEGRAM_QR_INSTRUCTION": "ለፈጣን ሙከራ የ Telegram ጥቅል ላይ ከላይ ያለውን QR ኮድ ይስካን ያድርጉ"
},
- "REAUTH": "Reauthorize",
- "VIEW": "View",
+ "REAUTH": "እንደገና ፈቃድ ስጥ",
+ "VIEW": "እይ",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Inbox settings updated successfully",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "የኢንቦክስ ቅንብሮች በተሳካ ሁኔታ ተዘምኗል",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "ራስ-ሰዓት መስጠት በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "የኢንቦክስ ቅንብሮችን ማዘመን አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
},
"EMAIL_COLLECT_BOX": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ተከፍቷል",
+ "DISABLED": "ተሰናክሏል"
},
"ENABLE_CSAT": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ተከፍቷል",
+ "DISABLED": "ተሰናክሏል"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "የላኪው ስም",
+ "SUB_TEXT": "ከወኪሎችዎ የሚሰጥበትን ስም ለደንበኞችዎ ይምረጡ።.",
+ "FOR_EG": "ለምሳሌ፡:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "ደስተኛ",
+ "FROM": "ከ",
+ "SUBTITLE": "በመልእክት ላይ የመልስ ሰጪው የወኪሉን ስም በመጨመር እንዲደስታማ ያድርጉ።."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "ሙያዊ",
+ "SUBTITLE": "በኢሜይል ራስ ራስ ስም የተያዘውን የንግድ ስም ብቻ ይጠቀሙ።."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "የንግድ ስምዎን ያቀናብሩ",
+ "PLACEHOLDER": "የንግድ ስምዎን ያስገቡ",
+ "SAVE_BUTTON_TEXT": "አስቀምጥ"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ተከናውኗል",
+ "DISABLED": "ተሰናክሏል"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ተከናውኗል",
+ "DISABLED": "ተሰናክሏል"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "አንደኛውን ንግግር እንደገና ክፈት",
+ "DISABLED": "አዲስ ንግግሮች ፍጠር",
+ "ENABLED_DESCRIPTION": "ሲነጋገር እንደገና ከሚያስተላለፍ ጋር ያለው የቀደም ውይይት ይከፈታል።.",
+ "DISABLED_DESCRIPTION": "ከቀደም ያለው ውይይት ከተፈታ በኋላ አዲስ ውይይት ይፈጠራል።."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "አንቀሳቅስ"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "BUTTON_TEXT": "አጥፋ",
+ "AVATAR_DELETE_BUTTON_TEXT": "አቫታር ሰርዝ",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "ማጥፋትን አረጋግጥ",
+ "MESSAGE": "እርግጠኛ ነህ ለመሰረዝ ",
+ "PLACE_HOLDER": "እባክዎ {inboxName} በማለት ያረጋግጡ",
+ "YES": "አዎን፣ ሰርዝ ",
+ "NO": "አይደለም፣ አሁንም ይቆዩ "
},
"API": {
- "SUCCESS_MESSAGE": "Inbox deleted successfully",
- "ERROR_MESSAGE": "Could not delete inbox. Please try again later.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "ኢንቦክስ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ኢንቦክስ ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።",
+ "AVATAR_SUCCESS_MESSAGE": "የኢንቦክስ አቫታር በተሳካ ሁኔታ ተሰርዟል",
+ "AVATAR_ERROR_MESSAGE": "የኢንቦክስ አቫታር ማጥፋት አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።"
}
},
"TABS": {
- "SETTINGS": "Settings",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "SETTINGS": "ቅንብሮች",
+ "COLLABORATORS": "ተሳታፊዎች",
+ "CONFIGURATION": "ቅንብር",
+ "CAMPAIGN": "የዘመናዊ ዘርፎች",
+ "PRE_CHAT_FORM": "የቀደም ቻት ቅጽ",
+ "BUSINESS_HOURS": "የንግድ ሰዓታት",
+ "WIDGET_BUILDER": "የዊጅት አሰራር መሣሪያ",
+ "BOT_CONFIGURATION": "የቦት ቅንብሮች",
+ "ACCOUNT_HEALTH": "የመለያ ጤና",
+ "CSAT": "የደንበኞች ደህንነት ግምገማ (CSAT)",
+ "VOICE": "ድምጽ",
+ "CALLS": "Calls"
},
- "SETTINGS": "Settings",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "የቻናል ቅድሚያዎች",
+ "WIDGET_FEATURES": "የዊጅት ባህሪያት",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "የ WhatsApp መለያዎን ያስተዳድሩ",
+ "DESCRIPTION": "የ WhatsApp መለያዎን ሁኔታ፣ የመልእክት ገደቦችን እና ጥራት ይገምግሙ። ቅንብሮችን ያዘምኑ ወይም ችግሮችን ካሉ ያስተካክሉ።",
+ "GO_TO_SETTINGS": "ወደ Meta Business Manager ይሂዱ",
+ "NO_DATA": "የጤና ውሂብ አይገኝም",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "የስልክ ቁጥር አሳይ",
+ "TOOLTIP": "ለደንበኞች የታየ የስልክ ቁጥር"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "የንግድ ስም",
+ "TOOLTIP": "የንግድ ስም በWhatsApp ተረጋግጧል"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "የማሳያ ስም ሁኔታ",
+ "TOOLTIP": "የንግድ ስምዎ ማረጋገጫ ሁኔታ"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "የጥራት እሴት",
+ "TOOLTIP": "ለመለያዎ የWhatsApp የጥራት እሴት"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "የመልእክት ገደብ ደረጃ",
+ "TOOLTIP": "ለአካውንትዎ የዕለት መልእክት ገደብ"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "የአካውንት ሁኔታ",
+ "TOOLTIP": "የWhatsApp አካውንትዎ የአሁኑ እንቅስቃሴ ሁኔታ"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "በ24 ሰዓት ውስጥ 250 ደንበኞች",
+ "TIER_1000": "በ24 ሰዓታት ውስጥ 1K ደንበኞች",
+ "TIER_1K": "በ24 ሰዓታት ውስጥ 1K ደንበኞች",
+ "TIER_10K": "በ24 ሰዓታት ውስጥ 10K ደንበኞች",
+ "TIER_100K": "በ24 ሰዓታት ውስጥ 100K ደንበኞች",
+ "TIER_UNLIMITED": "በ24 ሰዓታት ውስጥ ያልተገደበ ደንበኞች",
+ "UNKNOWN": "እውነተኛ አሰናዳድ አይገኝም"
+ },
+ "STATUSES": {
+ "APPROVED": "ተፈቅዷል",
+ "PENDING_REVIEW": "በጥናት ላይ ነው",
+ "AVAILABLE_WITHOUT_REVIEW": "እንደ ጥናት አልተደረገም ነጻ ነው",
+ "REJECTED": "ተቀባይነት አልተሰጠም",
+ "DECLINED": "ተከለከለ",
+ "NON_EXISTS": "አልነበረም"
+ },
+ "MODES": {
+ "SANDBOX": "ሳንድቦክስ",
+ "LIVE": "ቀጥታ"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "የWebhook ቅንብር",
+ "DESCRIPTION": "ከደንበኞች መልእክቶች ለመቀበል ለWhatsApp Business መለያዎ የWebhook URL አስፈላጊ ነው",
+ "ACTION_REQUIRED": "Webhook አልተቀየረም",
+ "REGISTER_BUTTON": "Webhook ይመዝግቡ",
+ "REGISTER_SUCCESS": "Webhook በተሳካ ሁኔታ ተመዝግቧል",
+ "REGISTER_ERROR": "የwebhook ምዝገባ አልተሳካም። እባክዎ ደግመው ይሞክሩ።.",
+ "CONFIGURED_SUCCESS": "Webhook በተሳካ ሁኔታ ተቀይሯል",
+ "URL_MISMATCH": "Webhook URL አልተስማማም"
+ }
+ },
+ "SETTINGS": "ቅንብሮች",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "LABEL": "ባህሪያት",
+ "DISPLAY_FILE_PICKER": "በዊጅት ላይ የፋይል አሰሳ አሳይ",
+ "DISPLAY_EMOJI_PICKER": "በዊጅት ላይ የኢሞጂ አሰሳ አሳይ",
+ "ALLOW_END_CONVERSATION": "ተጠቃሚዎች ከዊጅት ውስጥ ውይይትን ለመጨረስ ፈቀድ",
+ "USE_INBOX_AVATAR_FOR_BOT": "ለቦቱ የኢንቦክስ ስምና አቫታር ተጠቀም"
},
"SETTINGS_POPUP": {
- "MESSENGER_HEADING": "Messenger Script",
- "MESSENGER_SUB_HEAD": "Place this button inside your body tag",
- "INBOX_AGENTS": "Agents",
- "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
- "UPDATE": "Update",
- "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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
- "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
- "HMAC_VERIFICATION": "User Identity Validation",
- "HMAC_DESCRIPTION": "With this key you can generate a secret token that can be used to verify the identity of your users.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests that cannot be verified will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
- "WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "MESSENGER_HEADING": "የመልእክት ስክሪፕት",
+ "MESSENGER_SUB_HEAD": "ይህን አዝራር በbody ታግ ውስጥ ያቀርቡ",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "የተፈቀዱ ድር ስፍራዎች",
+ "DESCRIPTION": "የቻት ዊጅትዎን ማን እንደሚጨምር ድር ጣቢያዎችን ያገዙ። ለደህንነት፣ ብቻ የእርስዎን እና የሚታመኑትን ድር ጣቢያዎች ያክሉ። አንድ ወይም ከዚያ በላይ ድር ጣቢያዎችን በኮማ በመለያየት ያክሉ። ሁሉንም ድር ጣቢያዎች ለመፍቀድ ቦታውን ባዶ ተው (ለምርት አይመከርም)።.",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "የሚሰወር ቁልፍ",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "Agent-ዎች",
+ "INBOX_AGENTS_SUB_TEXT": "ከዚህ ኢንቦክስ ውስጥ Agent-ዎችን ያክሉ ወይም ያስወግዱ",
+ "AGENT_ASSIGNMENT": "የውይይት መለያየት",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "የውይይት መለያየት ቅንብሮችን አዘምን",
+ "UPDATE": "አዘምን",
+ "ENABLE_EMAIL_COLLECT_BOX": "የኢሜይል ስብስብ ሳጥን አንቀሳቅስ",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "በአዲስ ውይይት ላይ የኢሜይል ስብስብ ሳጥን አንቀሳቅስ ወይም አቋርጥ",
+ "AUTO_ASSIGNMENT": "ራስ-ሰዓት መስጠትን አንቀሳቅስ",
+ "SENDER_NAME_SECTION": "በኢሜይል ውስጥ የAgent ስም አርግ",
+ "SENDER_NAME_SECTION_TEXT": "በኢሜይል ውስጥ የAgent ስም እንዲታይ/እንዳይታይ አርግ፣ ካልተከናወነ የንግድ ስም ይታያል",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "በኢሜል የውይይት ቀጥታነት አንቀሳቅስ",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "ከኮንታክት ኢሜይል አድራሻ ካለ ውይይቶች በኢሜይል ይቀጥላሉ።",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "የውይይት መላኪያ",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "ለአሁን ያሉ እውቂያዎች ውይይት ፍጠራ ያስተካክሉ",
+ "INBOX_UPDATE_TITLE": "የኢንቦክስ ቅንብሮች",
+ "INBOX_UPDATE_SUB_TEXT": "የኢንቦክስዎን ቅንብሮች ያዘምኑ",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "አዲስ ውይይቶችን ወደ ይህ ኢንቦክስ የተጨመሩ ወኪሎች በራስሰር ማድረግን አቅርቦ ወይም አቋርጦ ያድርጉ።",
+ "HMAC_VERIFICATION": "የተጠቃሚ መለያ ማረጋገጫ",
+ "HMAC_DESCRIPTION": "በዚህ ቁልፍ የተለየ ቶክን ማመንጨት ይችላሉ ይህም የተጠቃሚዎችዎን መለያ ለማረጋገጥ ይጠቅማል።.",
+ "HMAC_LINK_TO_DOCS": "እንደ ተጨማሪ መረጃ እዚህ ማንበብ ይችላሉ።.",
+ "HMAC_MANDATORY_VERIFICATION": "የተጠቃሚ መለያ ማረጋገጫን አጽድቅ",
+ "HMAC_MANDATORY_DESCRIPTION": "ከተከፈተ ግምገማዎች ካልተረጋገጡ ጥያቄዎች ይተንቀሳቀሳሉ።.",
+ "INBOX_IDENTIFIER": "የኢንቦክስ መለያ",
+ "INBOX_IDENTIFIER_SUB_TEXT": "የ API ደንበኞችዎን ማረጋገጫ ለማድረግ እዚህ የተሳየውን `inbox_identifier` ቶክን ይጠቀሙ።",
+ "FORWARD_EMAIL_TITLE": "ወደ ኢሜይል አስቀምጥ",
+ "FORWARD_EMAIL_SUB_TEXT": "ኢሜይሎችዎን ወደ ቀጣዩ ኢሜይል አድራሻ መላክ ይጀምሩ።",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "ኢሜይሎችን ወደ ኢንቦክስዎ መቀላቀል በዚህ መገናኛ አሁን አልተፈቀደም። ይህን ባህሪ ለመጠቀም ከአስተዳደሩ መፍቀድ አለቦት። እባክዎ ለመቀጠል ከእነርሱ ጋር ያገናኙ።.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "ከውይይት መፍታት በኋላ መልእክቶችን እንዲፈቀድ",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "ውይይቱ ከተፈታ በኋላም እንደገና መልእክቶችን ለመላክ ለመጠቀሚያ ተጠቃሚዎች ፈቃድ ይስጡ።",
+ "WHATSAPP_SECTION_SUBHEADER": "ይህ የAPI ቁልፍ ለWhatsApp API ጋር ለመያዝ ይጠቅማል።.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "ለWhatsApp API ጋር ለመያዝ አዲሱን የAPI ቁልፍ ያስገቡ።.",
+ "WHATSAPP_SECTION_TITLE": "API ቁልፍ",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API ቁልፍ አዘምን",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "አዲሱን API ቁልፍ እዚህ ያስገቡ",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "አዘምን",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "የWhatsApp ውስጥ ያለ ምዝገባ",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "ይህ ኢንቦክስ በWhatsApp ተዋሰነ መመዝገቢያ ተገናኝቷል።.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "ይህን ኢንቦክስ ለWhatsApp ንግድ ቅንብሮች ለማዘመን መቀየር ይችላሉ።.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "እንደገና ያቀናብሩ",
+ "WHATSAPP_CONNECT_TITLE": "ወደ WhatsApp ቢዝነስ ይገናኙ",
+ "WHATSAPP_CONNECT_SUBHEADER": "ለቀላል አስተዳደር ወደ WhatsApp ተዋሰነ መመዝገቢያ ይዘምኑ።.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "ይህን ኢንቦክስ ወደ WhatsApp ንግድ ያገናኙ ለተጨማሪ ባህሪያትና ቀላል አስተዳደር።.",
+ "WHATSAPP_CONNECT_BUTTON": "አገናኝ",
+ "WHATSAPP_CONNECT_SUCCESS": "ወደ WhatsApp Business በተሳካ ሁኔታ ተገናኝቷል!",
+ "WHATSAPP_CONNECT_ERROR": "ወደ WhatsApp ንግድ መገናኘት አልተሳካም። እባክዎ ደግመው ይሞክሩ።.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business በተሳካ ሁኔታ ተቀይሯል!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp ንግድ መቀየር አልተሳካም። እባክዎ ደግመው ይሞክሩ።.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp መተግበሪያ መለያ አልተቀመጠም። እባክዎ ከአስተዳደሩ ጋር ያገናኙ።.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp የቅንብር መለያ አልተቀመጠም። እባክዎ ከአስተዳደሩ ጋር ያገናኙ።.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp ግባ ተሰርዟል። እባክዎ ደግመው ይሞክሩ።.",
+ "WHATSAPP_WEBHOOK_TITLE": "የWebhook ማረጋገጫ ቶክን",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "ይህ ቶክን የwebhook መግቢያ እውነታነት ለማረጋገጥ ይጠቅማል።.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "አብራሪ አብራሪዎችን ያስተካክሉ",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "ከWhatsApp መልእክት አብነቶች እጅግ በእጅ ማስተካከል ለእንደገና የሚገኙ አብነቶችን ያዘምኑ።.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "አብነቶችን ያዘምኑ",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "የአብነት ማስተካከያ በተሳካ ሁኔታ ተጀምሯል። ለማዘመን ጥቂት ደቂቃዎች ሊወስድ ይችላል።.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "የቀደም ቻት ቅጥያ ቅንብሮችን አዘምን"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "የእርዳታ ማዕከል",
+ "PLACEHOLDER": "የእርዳታ ማዕከል ይምረጡ",
+ "SELECT_PLACEHOLDER": "የእርዳታ ማዕከል ይምረጡ",
+ "NONE": "የለም",
+ "REMOVE": "የእርዳታ ማዕከል አስወግድ",
+ "SUB_TEXT": "ከኢንቦክስ ጋር የእርዳታ ማዕከል ያክሉ"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "የራስ-ሰው መለያየት ውስጥ ያለ ከፍተኛ ድርሻ",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "ከ0 በላይ ዋጋ እባክዎ ያስገቡ።",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "ከዚህ ኢንቦክስ የሚሰጡ ውይይቶች በአጠቃላይ ቁጥር ላይ ለኤጅንት ራስ-ሰው መለያየት ያለውን ድርሻ አገደም"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "የንግግር መለያየት",
+ "DESCRIPTION": "በተመደበ የማድረግ ፖሊሲዎች መሠረት የሚገኙ ወኪሎች ወደ ውስጥ የሚገቡ ውይይቶች በራስሰር ይመደባሉ",
+ "ENABLE_AUTO_ASSIGNMENT": "የእንግዳ ውይይት ማስመዝገቢያ አባልነት አስችል",
+ "DEFAULT_RULES_TITLE": "የነባሪ የማስመዝገቢያ ህጎች",
+ "DEFAULT_RULES_DESCRIPTION": "ለሁሉም ውይይቶች የነባሪ የማስመዝገቢያ ባህሪ መጠቀም",
+ "DEFAULT_RULE_1": "በጥንቃቄ የተፈጠሩ ውይይቶች በመጀመሪያ",
+ "DEFAULT_RULE_2": "ዙር ሮቢን ስርጭት",
+ "CUSTOMIZE_WITH_POLICY": "በመለያየት ፖሊሲ ያስተካክሉ",
+ "USING_POLICY": "ለዚህ ኢንቦክስ በተለየ መለያየት ፖሊሲ ተጠቃሚ ነው",
+ "CUSTOMIZE_POLICY": "በመለያየት ፖሊሲ ያስተካክሉ",
+ "DELETE_POLICY": "ፖሊሲ አስወግድ",
+ "POLICY_LABEL": "የመስጠት ፖሊሲ",
+ "ASSIGNMENT_ORDER_LABEL": "የመስጠት ቅደም ተከተል",
+ "ASSIGNMENT_METHOD_LABEL": "የመስጠት ዘዴ",
+ "POLICY_STATUS": {
+ "ACTIVE": "ንቁ",
+ "INACTIVE": "ያልተነሳ"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "በጣም ቀድሞ የተፈጠረ",
+ "LONGEST_WAITING": "በጣም ረጅም የቆየ"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "ሩንድ ሮቢን",
+ "BALANCED": "ተመጣጣኝ ስራ መሰጠት"
+ },
+ "UPGRADE_PROMPT": "በቢዝነስ እቅድ ላይ የተለየ የስራ መሰጠት ፖሊሲዎች አሉ",
+ "UPGRADE_TO_BUSINESS": "ወደ ቢዝነስ ይዘው ይሻሽሉ",
+ "DEFAULT_POLICY_LINKED": "ነባሪ ፖሊሲ ተገናኝቷል",
+ "DEFAULT_POLICY_DESCRIPTION": "ለዚህ ኢንቦክስ ውይይቶች እንዴት እንደሚሰጡ ለማስተካከል በተለየ የማዋል ፖሊሲ ያገናኙ።.",
+ "LINK_EXISTING_POLICY": "ያለውን ፖሊሲ ይገናኙ",
+ "CREATE_NEW_POLICY": "አዲስ ፖሊሲ ይፍጠሩ",
+ "NO_POLICIES": "የማያገኙ የስራ መደበኛ ፖሊሲዎች የሉም",
+ "VIEW_ALL_POLICIES": "ሁሉንም ፖሊሲዎች እይ",
+ "CURRENT_BEHAVIOR": "አሁን የሚጠቀሙት የነባሪ የማዋል ባህሪ ነው፡:",
+ "LINK_SUCCESS": "የስራ መደበኛ ፖሊሲ በተሳካ ሁኔታ ተገናኝቷል",
+ "LINK_ERROR": "የስራ መደበኛ ፖሊሲ ለመገናኘት አልተሳካም"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "የስራ መደበኛ ፖሊሲ ማጥፋት ይፈልጋሉ?",
+ "DELETE_CONFIRM_MESSAGE": "ከዚህ የማዋል ፖሊሲ ከኢንቦክስ ማስወገድ እርግጠኛ ነዎት? ኢንቦክስ ወደ ነባሪ የማዋል ህጎች ይመለሳል።.",
+ "CANCEL": "ሰርዝ",
+ "CONFIRM_DELETE": "ሰርዝ",
+ "DELETE_SUCCESS": "የስራ መደበኛ ፖሊሲ በተሳካ ሁኔታ ተሰርዟል",
+ "DELETE_ERROR": "የስራ መደበኛ ፖሊሲ ማስወገድ አልተሳካም"
},
"FACEBOOK_REAUTHORIZE": {
- "TITLE": "Reauthorize",
- "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
- "MESSAGE_ERROR": "There was an error, please try again"
+ "TITLE": "እንደገና ፈቃድ ስጥ",
+ "SUBTITLE": "የ Facebook ግንኙነትዎ ያልተጠበቀ ስለሆነ እባክዎ የ Facebook ገጹን እንደገና ያገናኙ እንዲቀጥሉ አገልግሎቶችን",
+ "MESSAGE_SUCCESS": "እንደገና መገናኘት ተሳክቷል",
+ "MESSAGE_ERROR": "ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "የቀድሞ ቻት ቅጥያዎች ተጠቃሚ መረጃ ከመደምደሚያ በፊት ለመሰብሰብ ይፈቅዳሉ።",
+ "SET_FIELDS": "የቀደም የውይይት ቅጽ መስኮች",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "መስኮች",
+ "LABEL": "መለያ",
+ "PLACE_HOLDER": "ቦታ ማስተካከያ",
+ "KEY": "ቁልፍ",
+ "TYPE": "አይነት",
+ "REQUIRED": "አስፈላጊ"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "የቀደም ቻት ቅጽን አንቀሳቅስ",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "አዎን",
+ "DISABLED": "አይ"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "የቀደም የውይይት መልእክት",
+ "PLACEHOLDER": "ይህ መልእክት ከቅጹ ጋር ለተጠቃሚዎች ይታያል"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "ጎብኚዎች ቻት ከመጀመር በፊት ስምና ኢሜይል መስጠት አለባቸው"
+ }
+ },
+ "CSAT": {
+ "TITLE": "የCSAT አሰራር አስችል",
+ "SUBTITLE": "በውይይቶች መጨረሻ ላይ የCSAT እንቅስቃሴዎችን በራስሰር ለማንቀሳቀስ ይጠቀሙ እና ደንበኞች ስለ ድጋፍ ልምዳቸው እንዴት እንደሚሰማ ያስተውሉ። የማማለያ እና ለማሻሻል የሚያስፈልጉትን አካላት ይከታተሉ።.",
+ "DISPLAY_TYPE": {
+ "LABEL": "የማሳያ አይነት"
+ },
+ "MESSAGE": {
+ "LABEL": "መልእክት",
+ "PLACEHOLDER": "እባክዎ ከቅጽ ጋር ለሚታዩ ተጠቃሚዎች መልእክት ያስገቡ"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "የአዝራር ጽሑፍ",
+ "PLACEHOLDER": "እባክዎን ደረጃ ያስገቡ"
+ },
+ "LANGUAGE": {
+ "LABEL": "ቋንቋ",
+ "PLACEHOLDER": "የአብነት ቋንቋ ይምረጡ"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "የመልእክት አሳይ",
+ "TOOLTIP": "በWhatsApp መድረክ ላይ ሲታይ ትንሽ ልዩነት ሊኖረው ይችላል።."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "በWhatsApp ተፈቅዷል",
+ "PENDING": "የWhatsApp ፈቃድ በመጠበቅ ላይ ነው",
+ "REJECTED": "Meta አቅራቢውን አልተቀበለም",
+ "DEFAULT": "WhatsApp ማረጋገጫ ይፈልጋል",
+ "NOT_FOUND": "አብነቱ በMeta መድረክ ውስጥ አልተገኘም።."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp አቅራቢ በተሳካ ሁኔታ ተፈጥሯል እና ለማረጋገጫ ተልኳል",
+ "ERROR_MESSAGE": "WhatsApp አቅራቢ ለመፍጠር አልተሳካም"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "የምርመራ ዝርዝሮችን አርትዕ",
+ "DESCRIPTION": "ያለፈውን አብነት እናጥፋለን እና እንደገና ለWhatsApp ማረጋገጫ የሚላክ አዲስ አብነት እንፈጥራለን",
+ "CONFIRM": "አዲስ አብነት ፍጠር",
+ "CANCEL": "ተመለስ"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "የተጠቃሚነት ማስፈሪያ ይፈትሹ",
+ "HELPER_NOTE": "ለማሻሻል የUtility ተስማሚነት ከፈለጉ ከማስገባት በፊት ይህን መልእክት ይፈትሹ። ስርዓቱ ለሪፖርት ለማስገባት በተለየ የCSAT አብነት ከተለያዩ አዝራሮች ጋር ይፈጥራል። እንኳን በይዘት መሠረት Meta እንደ ማርኬቲንግ ሊያደርግ ይችላል።.",
+ "RESULT_LABEL": "የሜታ ምድብ ትንበያ",
+ "GUIDANCE_NOTE": "ይህ መምሪያ ምርመራ ነው፣ የMeta ፈቃድ አላማ አይደለም።.",
+ "SUGGESTION_LABEL": "የተጠቃሚ ደህንነት የተመነጨ እንደገና ጻፍ",
+ "APPLY": "ይህን እንደገና ጻፍ",
+ "ERROR_MESSAGE": "መልእክቱን ማስተካከል አልተቻለም። እባክዎ ደግመው ይሞክሩ።.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "ምናልባት አጠቃላይ ነገር",
+ "LIKELY_MARKETING": "ምናልባት ገበያ ነገር",
+ "UNCLEAR": "አስተላለፊ ያስፈልጋል"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "የእንቅስቃሴ ህግ",
+ "DESCRIPTION_PREFIX": "የውይይቱ ጊዜ ምርመራውን ላክ",
+ "DESCRIPTION_SUFFIX": "የማንኛውም መለያያት",
+ "OPERATOR": {
+ "CONTAINS": "ይዟል",
+ "DOES_NOT_CONTAINS": "አይዟም"
+ },
+ "SELECT_PLACEHOLDER": "መለያያቶችን ይምረጡ"
+ },
+ "NOTE": "ማስታወሻ፡ CSAT እንደገና በንግግር አንድ ጊዜ ብቻ ይላካል",
+ "WHATSAPP_NOTE": "ማስታወሻ፡ ሲቀርብ ሲሆን ስርዓቱ በWhatsApp ውስጥ ለCSAT የተለየ አብነት ይፈጥራል (በሪፖርቶች ውስጥ ደረጃና አስተያየት ለማሰብ የሚጠቀም) እና እንደ Utility ለማረጋገጥ ይላካል። Meta እንኳን በይዘት መሠረት እንደ Marketing ሊያወቅ ይችላል። ከማረጋገጥ በኋላ ምርመራዎች በምርመራ ህግ መሠረት በንግግር አንድ ጊዜ ብቻ ይላካሉ።.",
+ "API": {
+ "SUCCESS_MESSAGE": "የCSAT ቅንብሮች በተሳካ ሁኔታ ተሻሽለዋል",
+ "ERROR_MESSAGE": "የCSAT ቅንብሮችን ማዘመን አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ።."
}
},
"BUSINESS_HOURS": {
- "TITLE": "Set your availability",
- "SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "የእርስዎን እንደሚገኙበት ያስቀመጡ",
+ "SUBTITLE": "በቀጥታ ውይይት ዊጅትዎ ላይ እንደሚገኙበት ያስቀመጡ",
+ "WEEKLY_TITLE": "ሳምንታዊ ሰዓታትዎን ያስቀመጡ",
+ "TIMEZONE_LABEL": "የሰዓት ክልል ይምረጡ",
+ "UPDATE": "የንግድ ሰዓታት ቅንብሮችን አዘምን",
+ "TOGGLE_AVAILABILITY": "ለዚህ ኢንቦክስ የንግድ እንደሚገኙ አንቀሳቅስ",
+ "UNAVAILABLE_MESSAGE_LABEL": "ለጎብኚዎች የማይገኙ መልእክት",
+ "TOGGLE_HELP": "የንግድ እንደሚገኙበት ሰዓቶች ማሳያ ከተከፈተ በሁሉም ወኪሎች ከተዘጋ ቢሆንም በቀጥታ ውይይት ዊጅት የሚገኙትን ሰዓቶች ያሳያል። ከንግድ ሰዓቶች ውጭ ጎብኚዎች በመልእክትና በቀድሞ የውይይት ቅርጸ ቅጥያ ሊማሩ ይችላሉ።.",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "ቀን",
+ "AVAILABILITY": "አሰልጣኝነት",
+ "HOURS": "ሰዓታት",
+ "ENABLE": "ለዚህ ቀን እንደሚገኙ አንቀሳቅስ",
+ "UNAVAILABLE": "አይገኝም",
+ "VALIDATION_ERROR": "የመጀመሪያ ሰዓት ከመዝጊያ ሰዓት በፊት መሆን አለበት።",
+ "CHOOSE": "ይምረጡ"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "ቀኑን ሙሉ"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "የIMAP ዝርዝሮችዎን ያስቀመጡ",
+ "NOTE_TEXT": "SMTP ለማንቀሳቀስ እባክዎ IMAP ያስተካክሉ።.",
+ "UPDATE": "የIMAP ቅንብሮችን አዘምን",
+ "TOGGLE_AVAILABILITY": "ለዚህ ጣቢያ IMAP ቅንብር አንቀሳቅስ",
+ "TOGGLE_HELP": "IMAP ማግኘት ተጠቃሚው ኢሜል ለመቀበል እንዲረዳ ይረዳል",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "የIMAP ቅንብሮች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "የIMAP ቅንብሮችን ማዘመን አልተቻለም"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "አድራሻ",
+ "PLACE_HOLDER": "አድራሻ (ለምሳሌ፡ imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "ፖርት",
+ "PLACE_HOLDER": "ፖርት"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "መግቢያ",
+ "PLACE_HOLDER": "መግቢያ"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "የይለፍ ቃል",
+ "PLACE_HOLDER": "የይለፍ ቃል"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL አንቀሳቅስ",
+ "AUTH_MECHANISM": "ማረጋገጫ"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "የ MICROSOFT መለያዎን እንደገና ያረጋግጡ"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "የSMTP ዝርዝሮችዎን ያስቀመጡ",
+ "UPDATE": "የSMTP ቅንብሮችን አዘምን",
+ "TOGGLE_AVAILABILITY": "ለዚህ ጣቢያ SMTP ቅንብር አንቀሳቅስ",
+ "TOGGLE_HELP": "SMTP አንቀሳቅም ተጠቃሚው ኢሜል ለመላክ ይረዳል",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "የSMTP ቅንብሮች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "የSMTP ቅንብሮችን ማዘመን አልተቻለም"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "አድራሻ",
+ "PLACE_HOLDER": "አድራሻ (ለምሳሌ፡ smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "ፖርት",
+ "PLACE_HOLDER": "ፖርት"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "ግባ",
+ "PLACE_HOLDER": "ግባ"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "የይለፍ ቃል",
+ "PLACE_HOLDER": "የይለፍ ቃል"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "ዶሜይን",
+ "PLACE_HOLDER": "ዶሜይን"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "ምስጢር አሰራር",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL ማረጋገጫ ሁኔታ",
+ "AUTH_MECHANISM": "ማረጋገጫ"
},
- "NOTE": "Note: ",
+ "NOTE": "ማስታወሻ: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "የድህረ ገጽ አቫታር",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "አቫታሩ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "LABEL": "የድህረ ገጽ ስም",
+ "PLACE_HOLDER": "የድህረ ገጽዎን ስም ያስገቡ (ለምሳሌ፡ Acme Inc)",
+ "ERROR": "እባክዎ ትክክለኛ የድህረ ገጽ ስም ያስገቡ"
},
"WELCOME_HEADING": {
- "LABEL": "Welcome Heading",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "እንኳን ደህና መጡ ርዕስ",
+ "PLACE_HOLDER": "ሰላም እንደምን ነህ!"
},
"WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "እንኳን ደህና መጡ መልእክት",
+ "PLACE_HOLDER": "ከእኛ ጋር ቀላል ለማገናኘት እንረዳለን። ምንም ጥያቄ ካለዎት ይጠይቁ ወይም አስተያየትዎን አጋሩ።."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "የመልስ ጊዜ",
+ "IN_A_FEW_MINUTES": "በጥቂት ደቂቃዎች ውስጥ",
+ "IN_A_FEW_HOURS": "በጥቂት ሰዓታት ውስጥ",
+ "IN_A_DAY": "በአንድ ቀን ውስጥ"
},
- "WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_COLOR_LABEL": "የዊጅት ቀለም",
+ "WIDGET_BUBBLE": "በለላ",
+ "WIDGET_BUBBLE_POSITION_LABEL": "አቀማመጥ፡:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "አይነት፡:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
- "DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
- "PLACE_HOLDER": "Chat with us"
+ "DEFAULT": "ከእኛ ጋር ይወያዩ",
+ "LABEL": "የመነሻ ርዕስ",
+ "PLACE_HOLDER": "ከእኛ ጋር ይወያዩ"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "የዊጅት ቅንብሮችን አዘምን",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "የዊጅት ቅንብሮች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "የዊጅት ቅንብሮችን ማዘመን አልተቻለም"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "አሳይ",
+ "SCRIPT": "ስክሪፕት"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "ግራ",
+ "RIGHT": "ቀኝ"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "መደበኛ",
+ "EXPANDED_BUBBLE": "ተሰፋፊ ቦታ"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "ነባሪ",
+ "CHAT": "የቻት ሁኔታ"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "Typically replies in a few minutes",
- "IN_A_FEW_HOURS": "Typically replies in a few hours",
- "IN_A_DAY": "Typically replies in a day"
+ "IN_A_FEW_MINUTES": "በተለምዶ በጥቂት ደቂቃዎች ውስጥ ይመልሳል",
+ "IN_A_FEW_HOURS": "በተለምዶ በጥቂት ሰዓታት ውስጥ ይመልሳል",
+ "IN_A_DAY": "በተለምዶ በአንድ ቀን ውስጥ ይመልሳል"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Start Conversation",
- "CHAT_INPUT_PLACEHOLDER": "Type your message"
+ "START_CONVERSATION_BUTTON_TEXT": "ውይይት ጀምር",
+ "CHAT_INPUT_PLACEHOLDER": "መልእክትህን አስጻፍ"
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "We are away at the moment"
+ "ONLINE": "እኛ በመስመር ላይ ነን",
+ "OFFLINE": "አሁን ከእኛ ውጭ ነን"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "ሰላም",
+ "AGENT_MESSAGE": "ሰላም"
},
- "BRANDING_TEXT": "Powered by Chatwoot",
+ "BRANDING_TEXT": "በChatwoot የተነሳ",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "ከMicrosoft ጋር ያገናኙ"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "ከGoogle ጋር ይገናኙ"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "ሌሎች አቅራቢዎች",
+ "DESCRIPTION": "ከሌሎች አቅራቢዎች ጋር ይገናኙ"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "መልኪያ",
+ "WEB_WIDGET": "ድህረ ገጽ",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "ኤስኤምኤስ",
+ "EMAIL": "ኢሜል",
+ "TELEGRAM": "ቴሌግራም",
+ "LINE": "ላይን",
+ "API": "API ቻናል",
+ "INSTAGRAM": "ኢንስታግራም",
+ "TIKTOK": "TikTok",
+ "VOICE": "ድምጽ"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/index.js b/app/javascript/dashboard/i18n/locale/am/index.js
new file mode 100644
index 000000000..785b1e0b1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/index.js
@@ -0,0 +1,83 @@
+import advancedFilters from './advancedFilters.json';
+import agentBots from './agentBots.json';
+import agentMgmt from './agentMgmt.json';
+import attributesMgmt from './attributesMgmt.json';
+import auditLogs from './auditLogs.json';
+import automation from './automation.json';
+import bulkActions from './bulkActions.json';
+import campaign from './campaign.json';
+import cannedMgmt from './cannedMgmt.json';
+import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
+import contact from './contact.json';
+import contactFilters from './contactFilters.json';
+import conversation from './conversation.json';
+import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
+import emoji from './emoji.json';
+import general from './general.json';
+import generalSettings from './generalSettings.json';
+import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
+import inboxMgmt from './inboxMgmt.json';
+import integrationApps from './integrationApps.json';
+import integrations from './integrations.json';
+import labelsMgmt from './labelsMgmt.json';
+import login from './login.json';
+import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
+import report from './report.json';
+import resetPassword from './resetPassword.json';
+import search from './search.json';
+import setNewPassword from './setNewPassword.json';
+import settings from './settings.json';
+import signup from './signup.json';
+import sla from './sla.json';
+import teamsSettings from './teamsSettings.json';
+import whatsappTemplates from './whatsappTemplates.json';
+
+export default {
+ ...advancedFilters,
+ ...agentBots,
+ ...agentMgmt,
+ ...attributesMgmt,
+ ...auditLogs,
+ ...automation,
+ ...bulkActions,
+ ...campaign,
+ ...cannedMgmt,
+ ...chatlist,
+ ...companies,
+ ...components,
+ ...contact,
+ ...contactFilters,
+ ...conversation,
+ ...csatMgmt,
+ ...customRole,
+ ...datePicker,
+ ...emoji,
+ ...general,
+ ...generalSettings,
+ ...helpCenter,
+ ...inbox,
+ ...inboxMgmt,
+ ...integrationApps,
+ ...integrations,
+ ...labelsMgmt,
+ ...login,
+ ...macros,
+ ...mfa,
+ ...onboarding,
+ ...report,
+ ...resetPassword,
+ ...search,
+ ...setNewPassword,
+ ...settings,
+ ...signup,
+ ...sla,
+ ...teamsSettings,
+ ...whatsappTemplates,
+};
diff --git a/app/javascript/dashboard/i18n/locale/am/integrationApps.json b/app/javascript/dashboard/i18n/locale/am/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/integrations.json b/app/javascript/dashboard/i18n/locale/am/integrations.json
index 5397fcb63..8af05114c 100644
--- a/app/javascript/dashboard/i18n/locale/am/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/am/integrations.json
@@ -1,213 +1,1103 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "የShopify አገናኝ ማጥፊያ",
+ "MESSAGE": "እርግጠኛ ነዎት የShopify አገናኝነትን ማጥፊያ ይፈልጋሉ?"
+ },
+ "STORE_URL": {
+ "TITLE": "የShopify ሱቅ ያገናኙ",
+ "LABEL": "የሱቅ አድራሻ",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "የShopify ሱቅዎ የmyshopify.com አድራሻ ያስገቡ",
+ "CANCEL": "ሰርዝ",
+ "SUBMIT": "ሱቅ ያገናኙ"
+ },
+ "ERROR": "ከShopify ጋር ለመገናኘት ስህተት ተከስቷል። እባክዎ እንደገና ይሞክሩ ወይም ችግሩ ከቀጠለ ደጋፊን ያግኙ።"
+ },
+ "HEADER": "አካባቢዎች",
+ "DESCRIPTION": "Chatwoot ከብዙ መሣሪያዎችና አገልግሎቶች ጋር ተያይዞ የቡድናችሁን ብቃት ለማሻሻል ይሰራል። ከታች ያለውን ዝርዝር ይመልከቱ እና የተወደዱትን መተግበሪያዎች ያስተካክሉ።",
+ "LEARN_MORE": "ስለ አገናኝቶች ተጨማሪ ያውቁ",
+ "LOADING": "አገናኝቶችን እየሰበሰበ",
+ "SEARCH_PLACEHOLDER": "አገናኞችን ፈልግ...",
+ "NO_RESULTS": "የፈለጉትን አገናኝቶች አልተገኙም",
+ "CAPTAIN": {
+ "DISABLED": "Captain በአካውንትዎ ላይ አልተነሳም።",
+ "CLICK_HERE_TO_CONFIGURE": "ለማስተካከል እዚህ ጠቅ ያድርጉ",
+ "LOADING_CONSOLE": "Captain Console እየጫነ ነው...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain Console ለመጫን አልተሳካም። እባክዎን ዳግም ያስመልክቱ እና ይሞክሩ።"
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "ተመዝግቧል የሆኑ ክስተቶች",
+ "LEARN_MORE": "ስለ webhooks ተጨማሪ ያውቁ",
+ "SECRET": {
+ "LABEL": "ምስጢር",
+ "COPY": "ምስጢሩን ወደ ክሊፕቦርድ ቅዳ",
+ "COPY_SUCCESS": "ምስጢሩ ወደ ክሊፕቦርድ ተቀድሷል",
+ "TOGGLE": "የምስጢሩን ማየት አሳይ/ደብቅ",
+ "CREATED_DESC": "የድር ማስተካከያዎ ተፈጥሯል። የድር ማስተካከያ ፊርማዎችን ለማረጋገጥ በታች ያለውን ምስጢር ይጠቀሙ። እባክዎን አሁን ይቅዱት — በኋላም በድር ማስተካከያ አርትዕ ቅጽ ውስጥ ማግኘት ይችላሉ።",
+ "DONE": "ተጠናቀቀ"
+ },
+ "COUNT": "{n} የድር ማስተካከያ | {n} የድር ማስተካከያዎች",
+ "SEARCH_PLACEHOLDER": "የድር ማስተካከያዎችን ፈልጉ...",
+ "NO_RESULTS": "የፈለጉትን የድር ማስተካከያዎች አልተገኙም",
"FORM": {
- "CANCEL": "Cancel",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
+ "CANCEL": "ሰርዝ",
+ "DESC": "የዌብሁክ ክስተቶች በChatwoot አካውንትዎ ውስጥ ምን እንደሚከሰት በሕይወት ጊዜ መረጃ ይሰጣሉ። እባክዎ ትክክለኛ ዩአርኤል አስገባ ለመቀጠል እንዲሆን ያዘጋጁ።",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "ክስተቶች",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "ውይይት ተፈጥሯል",
+ "CONVERSATION_STATUS_CHANGED": "የውይይት ሁኔታ ተቀየረ",
+ "CONVERSATION_UPDATED": "ውይይት ተሻሽሏል",
+ "MESSAGE_CREATED": "መልእክት ተፈጥሯል",
+ "MESSAGE_UPDATED": "መልእክት ተሻሽሏል",
+ "WEBWIDGET_TRIGGERED": "በተጠቃሚው የተከፈተ ቀጥታ ውይይት ዊጅት",
+ "CONTACT_CREATED": "እውቂያ ተፈጥሯል",
+ "CONTACT_UPDATED": "እውቂያ ተሻሽሏል",
+ "CONVERSATION_TYPING_ON": "ውይይት ማስተካከያ በተጠቃሚ ላይ ነው",
+ "CONVERSATION_TYPING_OFF": "ውይይት ማስተካከያ ከተጠቃሚ ላይ አልተጠቀሰም",
+ "INBOX_UPDATED": "Inbox updated"
}
},
- "END_POINT": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: %{webhookExampleURL}",
- "ERROR": "Please enter a valid URL"
+ "NAME": {
+ "LABEL": "የWebhook ስም",
+ "PLACEHOLDER": "የWebhook ስም አስገባ"
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "Create webhook"
+ "END_POINT": {
+ "LABEL": "የዌብሁክ ዩአርኤል",
+ "PLACEHOLDER": "ለምሳሌ፡ {webhookExampleURL}",
+ "ERROR": "እባክዎ ትክክለኛ ዩአርኤል አስገባ"
+ },
+ "EDIT_SUBMIT": "ዌብሁክን አሻሽል",
+ "ADD_SUBMIT": "ዌብሁክ ፍጠር"
},
- "TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "TITLE": "ዌብሁክ",
+ "CONFIGURE": "አዋቂ አድርግ",
+ "HEADER": "የዌብሁክ ቅንብሮች",
+ "HEADER_BTN_TXT": "አዲስ ዌብሁክ አክል",
+ "LOADING": "ተያያዥ ዌብሁኮችን እየሰበሰበ ነው",
+ "SEARCH_404": "ይህን ጥያቄ የሚያስማሙ ንጥሎች የሉም",
+ "SIDEBAR_TXT": "ዌብሁኮች
ዌብሁኮች ለእያንዳንዱ አካውንት ሊቀመጡ የሚችሉ የHTTP ተጠሪዎች ናቸው። እነሱ በChatwoot ውስጥ መልእክት ፍጠር ያሉ ክስተቶች ተነስተው ይነሳሉ። ለዚህ አካውንት ከአንድ በላይ ዌብሁክ ማምረት ትችላለህ።
የዌብሁክ ለማምረት በአዲስ ዌብሁክ አክል አዝራር ጠቅ አድርግ። እንዲሁም ያለውን ዌብሁክ በመሰረዝ ትችላለህ።
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "404": "ለዚህ አካውንት የተያዙ ዌብሁኮች የሉም።",
+ "TITLE": "ዌብሁኮችን አስተዳደር አድርግ",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook መድረሻ",
+ "ACTIONS": "እርምጃዎች"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
- "TITLE": "Edit webhook",
+ "BUTTON_TEXT": "አርትዕ",
+ "TITLE": "ዌብሁክን አርትዕ",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "የዌብሁክ ቅንብር በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "ወደ Woot አገልግሎት ማገናኘት አልተቻለም፣ እባክዎ በኋላ ደግመው ይሞክሩ"
}
},
"ADD": {
- "CANCEL": "Cancel",
- "TITLE": "Add new webhook",
+ "CANCEL": "ሰርዝ",
+ "TITLE": "አዲስ ዌብሁክ አክል",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "የዌብሁክ ቅንብር በተሳካ ሁኔታ ታክሏል",
+ "ERROR_MESSAGE": "ወደ Woot አገልግሎት ማገናኘት አልተቻለም፣ እባክዎ በኋላ ደግመው ይሞክሩ"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "ሰርዝ",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "ዌብሁክ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ወደ Woot አገልግሎት ማገናኘት አልተቻለም፣ እባክዎ በኋላ ደግመው ይሞክሩ"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "Yes, Delete ",
- "NO": "No, Keep it"
+ "TITLE": "ማስረጃ አረጋግጥ",
+ "MESSAGE": "Webhook ለማስወገድ እርግጠኛ ነዎት? ({webhookURL})",
+ "YES": "አዎን፣ ሰርዝ ",
+ "NO": "አይ፣ አስቀምጥው"
}
}
},
"SLACK": {
- "DELETE": "Delete",
+ "HEADER": "Slack",
+ "DELETE": "ሰርዝ",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "አገናኝ ሰርዝ",
+ "MESSAGE": "አገናኙን ለመሰረዝ እርግጠኛ ነህ? እንደዚህ ማድረግ በSlack ስፍራህ ያሉ ውይይቶች የመዳረሻ መብት እንዲጠፋ ያደርጋል።"
},
"HELP_TEXT": {
- "TITLE": "How to use the Slack Integration?",
- "BODY": "With this integration, all of your incoming conversations will be synced to the ***%{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***%{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
- "SELECTED": "selected"
+ "TITLE": "Slack አገናኝን እንዴት መጠቀም እንደሚቻል?",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "ተመርጧል"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
- "UPDATE": "Update",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "OPTION_LABEL": "ቻናል ይምረጡ",
+ "UPDATE": "አዘምን",
+ "BUTTON_TEXT": "ቻናል ያገናኙ",
+ "DESCRIPTION": "Slack ስፍራህ ከChatwoot ጋር አሁን ተገናኝቷል። ነገር ግን አገናኙ በአሁኑ ጊዜ አልተነሳም። አገናኙን ለማንቀሳቀስ እና ቻናል ለChatwoot ለማገናኘት ከዚህ በታች ያለውን አዝራር ይጫኑ።\n\n**ማስታወሻ:** የግል ቻናል ለማገናኘት እትም ከሆነ Chatwoot መተግበሪያውን በSlack ቻናል ውስጥ ከመቀላቀል በፊት ያክሉ።",
+ "ATTENTION_REQUIRED": "ትኩረት ያስፈልጋል",
+ "EXPIRED": "የSlack አገናኝዎ ያልተጠበቀ ነው። በSlack ላይ መልዕክቶችን ለመቀጠል እባክዎ አገናኙን ሰርዝ እና ስፍራዎን እንደገና ያገናኙ።"
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "አገናኙን ለማዘምን ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "UPDATE_SUCCESS": "ቻናሉ በተሳካ ሁኔታ ተገናኝቷል",
+ "FAILED_TO_FETCH_CHANNELS": "ከSlack ቻናሎችን ለማግኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "ለመቀላቀል እዚህ ጠቅ አድርግ",
+ "LEAVE_THE_ROOM": "ከክፍሉ ውጣ",
+ "START_VIDEO_CALL_HELP_TEXT": "ከደንበኛው ጋር አዲስ የቪዲዮ ጥሪ ጀምር",
+ "JOIN_ERROR": "በጥሪው ላይ ለመቀላቀል ስህተት አጋጥሟል፣ እባክዎ ደግመው ይሞክሩ",
+ "CREATE_ERROR": "የስብሰባ አገናኝ ለመፍጠር ስህተት አጋጥሟል፣ እባክዎ ደግመው ይሞክሩ"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI እገዛ",
+ "WITH_AI": " {option} ከ AI ጋር ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "የመልስ ምክር",
+ "SUMMARIZE": "ማጠቃለያ",
+ "REPHRASE": "ጽሑፍ ያሻሽሉ",
+ "FIX_SPELLING_GRAMMAR": "ስህተትን እና አንቀሳቃሽን ያስተካክሉ",
+ "SHORTEN": "አጭር አድርግ",
+ "EXPAND": "አሰፋ",
+ "MAKE_FRIENDLY": "የመልእክት ቅኔን ወደ ደስተኛ ቀይር",
+ "MAKE_FORMAL": "ቅኔ በአካላዊ ቅኔ አጠቀም",
+ "SIMPLIFY": "ቀላል አድርግ",
+ "CONFIDENT": "እምነታማ ቃላት ይጠቀሙ",
+ "PROFESSIONAL": "ሙያዊ ቃላት ይጠቀሙ",
+ "CASUAL": "ቀላል ቃላት ይጠቀሙ",
+ "STRAIGHTFORWARD": "ቀላል ድምፅ ተጠቀም"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "መልስ አሻሽል",
+ "IMPROVE_REPLY_SELECTION": "ምርጫውን አሻሽል",
+ "CHANGE_TONE": {
+ "TITLE": "ድምፅ ቀይር",
+ "OPTIONS": {
+ "PROFESSIONAL": "ሙያዊ",
+ "CASUAL": "ቀላል ቋንቋ",
+ "STRAIGHTFORWARD": "ቀጥታ ቃል",
+ "CONFIDENT": "እምነታማ",
+ "FRIENDLY": "ደስታ ያለው"
+ }
+ },
+ "GRAMMAR": "አንተኛነትን እና ስህተትን አስተካክል",
+ "SUGGESTION": "መልስ አሳስብ",
+ "SUMMARIZE": "ውይይቱን አጠቃላይ አድርግ",
+ "ASK_COPILOT": "Copilot ጠይቅ"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "የሥነ-ምግባር ዝግጅት",
+ "GENERATED_TITLE": "የተፈጥሮ ዝግጅት",
+ "AI_WRITING": "AI በመጽሐፍ ላይ ነው",
"BUTTONS": {
- "APPLY": "Use this suggestion",
- "CANCEL": "Cancel"
+ "APPLY": "ይህን ምክር አጠቀም",
+ "CANCEL": "ሰርዝ"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "ከOpenAI ጋር አገናኝ",
+ "DESC": "ከOpenAI የGPT ሞዴሎች ጋር የተሻለ የAI ባህሪያትን ወደ ዳሽቦርድዎ ያመጡ። ለመጀመሪያ ከOpenAI አካውንትዎ የAPI ቁልፍ ያስገቡ።",
+ "KEY_PLACEHOLDER": "የOpenAI API ቁልፍዎን ያስገቡ",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "እርዳታ ይፈልጋሉ?",
+ "DISMISS": "አስወግድ",
+ "FINISH": "ቅንብሩን አሟላ"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "OpenAI አገናኝን በኋላ በፈለጉት ጊዜ ማቀናበር ይችላሉ።",
+ "SUCCESS_MESSAGE": "OpenAI አገናኝ በተሳካ ሁኔታ ተቋቋመ"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "በAI ያሻሽሉ",
+ "SUMMARY_TITLE": "ከAI ጋር ማጠቃለያ",
+ "REPLY_TITLE": "ከAI ጋር የመልስ ምክር",
+ "SUBTITLE": "በAI በመሠረት የተሻሻለ መልስ እንደሚፈጠር ነው፣ በአሁኑ የምርጫዎ ላይ የተመሠረተ።",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "ድምጽ",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "ሙያዊ",
+ "FRIENDLY": "ደስተኛ"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
- "CANCEL": "Cancel"
+ "GENERATE": "ፍጠር",
+ "GENERATING": "በመፍጠር ላይ...",
+ "CANCEL": "ሰርዝ"
},
- "GENERATE_ERROR": "There was an error processing the content, please verify your OpenAI API key and try again"
+ "GENERATE_ERROR": "ይዘቱን ለማከናወን ላይ ስህተት አጋጥሟል፣ እባክዎ የOpenAI API ቁልፍዎን ያረጋግጡ እና እንደገና ይሞክሩ"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "ሰርዝ",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "አካባቢው በተሳካ ሁኔታ ተሰርዟል"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "አገናኝ"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "የዳሽቦርድ መተግበሪያዎች",
+ "HEADER_BTN_TXT": "አዲስ የዳሽቦርድ መተግበሪያ አክል",
+ "SIDEBAR_TXT": "የዳሽቦርድ መተግበሪያዎች
የዳሽቦርድ መተግበሪያዎች ድርጅቶች በChatwoot ዳሽቦርድ ውስጥ መተግበሪያ ለመገጣጠም እንዲችሉ ያስችላቸዋል። ይህ ባህሪ በተለየ ሁኔታ መተግበሪያ ለመፍጠር እና በዳሽቦርድ ውስጥ ለተጠቃሚ መረጃ፣ ትዕዛዞቻቸው ወይም ያለፉ የክፍያ ታሪኮቻቸው ለማቅረብ ይረዳል።
በChatwoot ዳሽቦርድ ውስጥ መተግበሪያዎን ሲገጥሙ የውይይትና የእውቂያ አገናኝ እንደ መስኮት ክስተት ያገኛሉ። በገፅዎ ላይ ለመልእክት ክስተት ተቀባይ እንዲሆን አስፈጻሚ አድርጉ።
አዲስ የዳሽቦርድ መተግበሪያ ለማክለብ በ'አዲስ የዳሽቦርድ መተግበሪያ አክል' አዝራር ጠቅ አድርጉ።
",
+ "DESCRIPTION": "የዳሽቦርድ መተግበሪያዎች ድርጅቶች በዳሽቦርድ ውስጥ መተግበሪያ ለመገጣጠም እንዲችሉ ያስችላቸዋል። ይህ ባህሪ በተለየ ሁኔታ መተግበሪያ ለመፍጠር እና ለተጠቃሚ መረጃ፣ ትዕዛዞቻቸው ወይም ያለፉ የክፍያ ታሪኮቻቸው ለማቅረብ ይረዳል።",
+ "LEARN_MORE": "ስለ Dashboard መተግበሪያዎች ተጨማሪ ያውቁ",
+ "COUNT": "{n} የዳሽቦርድ መተግበሪያ | {n} የዳሽቦርድ መተግበሪያዎች",
+ "SEARCH_PLACEHOLDER": "የዳሽቦርድ መተግበሪያዎችን ይፈልጉ...",
+ "NO_RESULTS": "በፍለጋዎ የሚስማሙ የዳሽቦርድ መተግበሪያዎች አልተገኙም",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "እስካሁን በዚህ አካውንት ላይ የታካሚ የዳሽቦርድ መተግበሪያዎች የሉም",
+ "LOADING": "የዳሽቦርድ መተግበሪያዎችን እየሰበሰበ...",
+ "TABLE_HEADER": {
+ "NAME": "ስም",
+ "ENDPOINT": "መድረሻ",
+ "ACTIONS": "እርምጃዎች"
+ },
+ "EDIT_TOOLTIP": "መተግበሪያ አርትዕ",
+ "DELETE_TOOLTIP": "መተግበሪያ ሰርዝ"
},
"FORM": {
- "TITLE_LABEL": "Name",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_LABEL": "ስም",
+ "TITLE_PLACEHOLDER": "ለዳሽቦርድ መተግበሪያዎ ስም አስገባ",
+ "TITLE_ERROR": "ለዳሽቦርድ መተግበሪያ ስም አስፈላጊ ነው",
+ "URL_LABEL": "መድረሻ",
+ "URL_PLACEHOLDER": "መተግበሪያዎ የተቀመጠበትን መድረሻ ዩአርኤል አስገባ",
+ "URL_ERROR": "ትክክለኛ ዩአርኤል አስፈላጊ ነው"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
- "FORM_SUBMIT": "Submit",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "HEADER": "አዲስ የዳሽቦርድ መተግበሪያ አክል",
+ "FORM_SUBMIT": "አስገባ",
+ "FORM_CANCEL": "ሰርዝ",
+ "API_SUCCESS": "የዳሽቦርድ መተግበሪያ በተሳካ ሁኔታ ተቀይሯል",
+ "API_ERROR": "መተግበሪያ ማፍጠር አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
- "FORM_SUBMIT": "Update",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "HEADER": "የዳሽቦርድ መተግበሪያ አርትዕ",
+ "FORM_SUBMIT": "አሻሽል",
+ "FORM_CANCEL": "ሰርዝ",
+ "API_SUCCESS": "የዳሽቦርድ መተግበሪያ በተሳካ ሁኔታ ተሻሽሏል",
+ "API_ERROR": "መተግበሪያውን ማሻሻል አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "አዎን፣ ሰርዝትው",
+ "CONFIRM_NO": "አይ፣ አስቀምጥው",
+ "TITLE": "ማስረጃ አረጋግጥ",
+ "MESSAGE": "መተግበሪያውን - {appName} ለማስወገድ እርግጠኛ ነዎት?",
+ "API_SUCCESS": "የዳሽቦርድ መተግበሪያ በተሳካ ሁኔታ ተሰርዟል",
+ "API_ERROR": "መተግበሪያውን ማስወገድ አልተቻለም። እባክዎ በኋላ ደግመው ይሞክሩ"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear ጉዳይ ፍጠር/ያገናኝ",
+ "LOADING": "Linear ጉዳዮችን እየተመለከቱ...",
+ "LOADING_ERROR": "Linear ጉዳዮችን ለማግኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "CREATE": "ፍጠር",
+ "LINK": {
+ "SEARCH": "ጉዳዮችን ፈልግ",
+ "SELECT": "ጉዳይ ይምረጡ",
+ "TITLE": "አገናኝ",
+ "EMPTY_LIST": "ምንም የlinear ጉዳዮች አልተገኙም",
+ "LOADING": "በመጫን ላይ",
+ "ERROR": "Linear ጉዳዮችን ለማግኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "LINK_SUCCESS": "ጉዳዩ በተሳካ ሁኔታ ተገናኝቷል",
+ "LINK_ERROR": "ጉዳዩን ለመገናኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "LINK_TITLE": "ንግግር (#{conversationId}) ከ {name} ጋር"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linear ጉዳይ ፍጠር/ያገናኝ",
+ "DESCRIPTION": "ከውይይቶች የLinear ጉዳዮችን ፍጠር ወይም አሁን ያሉትን ለቀጣይ መከታተያ ያገናኝ።",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "ርዕስ",
+ "PLACEHOLDER": "ርዕስ ያስገቡ",
+ "REQUIRED_ERROR": "ርዕስ ያስፈልጋል"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "መግለጫ ያስገቡ"
+ },
+ "TEAM": {
+ "LABEL": "ቡድን",
+ "PLACEHOLDER": "ቡድን ይምረጡ",
+ "SEARCH": "ቡድን ይፈልጉ",
+ "REQUIRED_ERROR": "ቡድን ያስፈልጋል"
+ },
+ "ASSIGNEE": {
+ "LABEL": "ተሰጥቷል",
+ "PLACEHOLDER": "ተሰጥቷል የሚለውን ይምረጡ",
+ "SEARCH": "ተሰጥቷል የሚለውን ይፈልጉ"
+ },
+ "PRIORITY": {
+ "LABEL": "ቅደም ተከተል",
+ "PLACEHOLDER": "ቅድሚያ ይምረጡ",
+ "SEARCH": "ቅድሚያ ይፈልጉ"
+ },
+ "LABEL": {
+ "LABEL": "መለያ",
+ "PLACEHOLDER": "መለያ ይምረጡ",
+ "SEARCH": "መለያ ይፈልጉ"
+ },
+ "STATUS": {
+ "LABEL": "ሁኔታ",
+ "PLACEHOLDER": "ሁኔታ ይምረጡ",
+ "SEARCH": "ሁኔታ ይፈልጉ"
+ },
+ "PROJECT": {
+ "LABEL": "ፕሮጀክት",
+ "PLACEHOLDER": "ፕሮጀክት ይምረጡ",
+ "SEARCH": "ፕሮጀክት ይፈልጉ"
+ }
+ },
+ "CREATE": "ፍጠር",
+ "CANCEL": "ሰርዝ",
+ "CREATE_SUCCESS": "ጉዳዩ በተሳካ ሁኔታ ተፈጥሯል",
+ "CREATE_ERROR": "ጉዳዩን ለማፍራት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "LOADING_TEAM_ERROR": "ቡድኖችን ለማግኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "LOADING_TEAM_ENTITIES_ERROR": "የቡድን ንዑሶችን ለማግኘት ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ"
+ },
+ "ISSUE": {
+ "STATUS": "ሁኔታ",
+ "PRIORITY": "ቅደም ተከተል",
+ "ASSIGNEE": "ተሰጥቷል",
+ "LABELS": "መለያዎች",
+ "CREATED_AT": "ተፈጥሯል {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "አልፎ አጥፋ",
+ "SUCCESS": "ጉዳዩ በተሳካ ሁኔታ ተያይዞ ነው",
+ "ERROR": "ጉዳዩን ለመሰረዝ ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ"
+ },
+ "NO_LINKED_ISSUES": "ተገናኝቷ ያልተገኙ ችግሮች የሉም",
+ "DELETE": {
+ "TITLE": "እርግጠኛ ነዎት እንደ አንድ አካል መሳተፍ መሰረዝ ይፈልጋሉ?",
+ "MESSAGE": "እርግጠኛ ነዎት እንደ አንድ አካል መሳተፍ መሰረዝ ይፈልጋሉ?",
+ "CONFIRM": "አዎን፣ አጥፋ",
+ "CANCEL": "ሰርዝ"
+ },
+ "CTA": {
+ "TITLE": "Linear አገልግሎት ያገናኙ",
+ "AGENT_DESCRIPTION": "Linear የስራ ቦታ አልተገናኘም። ይህን አገናኝ ለመጠቀም እባክዎ አስተዳደሩን የስራ ቦታ እንዲገናኝ ይጠይቁ።",
+ "DESCRIPTION": "Linear የስራ ቦታ አልተገናኘም። ይህን አገናኝ ለመጠቀም የስራ ቦታዎን ለመገናኘት በታች ያለውን አዝራር ይጫኑ።",
+ "BUTTON_TEXT": "Linear የስራ ቦታ ያገናኙ"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "እርግጠኛ ነህ እንደ Notion አገናኝ መሰረዝ?",
+ "MESSAGE": "ይህን አገናኝ መሰረዝ የ Notion ስፔስ ወደ መዳረሻ መዳረሻዎን እንዲያስወግድ እና ሁሉንም ተያያዥ ተግባሮች እንዲቆሙ ያደርጋል።",
+ "CONFIRM": "አዎን፣ ሰርዝ",
+ "CANCEL": "ሰርዝ"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "ካፕቴን",
+ "HEADER_KNOW_MORE": "ተጨማሪ ያውቁ",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "አገልጋዮች",
+ "SWITCH_ASSISTANT": "በአገልጋዮች መካከል ቀይር",
+ "NEW_ASSISTANT": "አገልጋይ ፍጠር",
+ "EMPTY_LIST": "አንድ እርዳታ አልተገኘም፣ እባክዎ ለመጀመር አንድ ይፍጠሩ"
+ },
+ "COPILOT": {
+ "TITLE": "ኮፓይሎት",
+ "TRY_THESE_PROMPTS": "እነዚህን ጥያቄዎች ይሞክሩ",
+ "PANEL_TITLE": "ከCopilot ጋር መጀመርያ ይውሰዱ",
+ "KICK_OFF_MESSAGE": "ፈጣን ማጠቃለያ ይፈልጋሉ? ያለፉትን ውይይቶች ማረጋገጥ ይፈልጋሉ? ወይም የተሻለ መልስ ማዘጋጀት ይፈልጋሉ? Copilot እዚህ ነው ነገሮችን ለማሳካት።",
+ "SEND_MESSAGE": "መልእክት ላክ...",
+ "EMPTY_MESSAGE": "መልስ ለመፍጠር ስህተት ተከስቷል። እባክዎ እንደገና ይሞክሩ።",
+ "LOADER": "Captain እየሰራ ነው",
+ "YOU": "አንተ",
+ "USE": "ይጠቀሙበት",
+ "RESET": "እንደገና ማስጀመር",
+ "SHOW_STEPS": "እርምጃዎችን አሳይ",
+ "SELECT_ASSISTANT": "አስማሪ ይምረጡ",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "ይነጻጸሩ ይነጋገሩትን",
+ "CONTENT": "በደንበኛው እና የድጋፍ ወኪሉ መካከል የተነጋገሩትን አስፈላጊ ነጥቦች ይነጻጸሩ፣ ከዚህ ጋር ደንበኛው ያለውን ችግር፣ ጥያቄዎችና የድጋፍ ወኪሉ የሰጠውን መፍትሄ ወይም መልስ ያካትቱ።"
+ },
+ "SUGGEST": {
+ "LABEL": "መልስ ይጠቅሙ",
+ "CONTENT": "የደንበኛውን ጥያቄ ያስተካክሉ እና ችግሮቻቸውን ወይም ጥያቄዎቻቸውን በትክክል የሚያስተካክል መልስ ያዘጋጁ። መልሱ ግልጽ፣ አጭር እና አገልግሎት የሚሰጥ መሆን አለበት።"
+ },
+ "RATE": {
+ "LABEL": "ይህን ውይይት ደረጃ ያድርጉ",
+ "CONTENT": "ውይይቱን እንዴት እንደሚሰራ እና የደንበኛው ፍላጎት እንደሚሰማ ይገምግሙ። በቃል ቅርጸት፣ ግልጽነት እና ተፅዕኖ መሠረት ከ5 ውስጥ ደረጃ ያካፍሉ።"
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "ከፍተኛ ቅድሚያ ያላቸው ውይይቶች",
+ "CONTENT": "ሁሉንም ከፍተኛ ቅድሚያ ያላቸው ክፍተት ያሉ ውይይቶች ማጠቃለያ ስጠኝ። የውይይት መለያ, የደንበኛ ስም (ካለ), የመጨረሻ መልእክት ይዘት እና የተመደበው ወኪል አካትተው። በሁኔታ መሰብሰብ አድርግ።"
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "እያካተቱ ያሉ ሰዎችን ዝርዝር አሳይ",
+ "CONTENT": "ከፍተኛ 10 እያካተቱ ያሉ ሰዎችን ዝርዝር አሳይ። ስም, ኢሜል ወይም ስልክ ቁጥር (ካለ), የመጨረሻ ጊዜ እና መለያዎች (ካሉ) አካትተው።"
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "አንተ",
+ "ASSISTANT": "አስማሪ",
+ "MESSAGE_PLACEHOLDER": "መልእክትህን አስጻፍ...",
+ "HEADER": "መጫወቻ ቦታ",
+ "DESCRIPTION": "ይህን መጫወቻ ቦታ ተጠቅመህ መልእክቶችን ወደ አስማሪህ ላክ እና ትክክለኛ፣ ፈጣን እና በተጠባበቀው ቅኔ እንደሚመለስ አረጋግጥ።",
+ "CREDIT_NOTE": "እዚህ የተላኩ መልእክቶች ወደ ካፕቴን ክሬዲቶችዎ ይቆጠራሉ።"
+ },
+ "PAYWALL": {
+ "TITLE": "Captain AI እንዲጠቀሙ ያሻሽሉ",
+ "AVAILABLE_ON": "Captain በነፃ እቅድ ላይ አይገኝም።",
+ "UPGRADE_PROMPT": "እርስዎ እቅድዎን ያሻሽሉ እንዲሁም እርዳኞቻችንን፣ ኮፒሎትን እና ተጨማሪ ነገሮችን ያግኙ።",
+ "UPGRADE_NOW": "አሁን ያሻሽሉ",
+ "CANCEL_ANYTIME": "እቅድዎን በማንኛውም ጊዜ መቀየር ወይም መሰረዝ ይችላሉ"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI በኢንተርፕራይዝ እቅዶች ብቻ ይገኛል።",
+ "UPGRADE_PROMPT": "እባክዎ እቅድዎን ያሻሽሉ እንዲሁም እንደ አስማሚዎቻችን፣ ኮፓይሎት እና ተጨማሪ አገልግሎቶች ያግኙ።",
+ "ASK_ADMIN": "እባክዎ ለእቅድ ማሻሻያ ከአስተዳደሩ ጋር ያግኙ።"
+ },
+ "BANNER": {
+ "RESPONSES": "የመልስ አገዛዝዎን ከ80% በላይ ተጠቅመዋል። Captain AI ለመቀጠል እባክዎ እቅድዎን ያሻሽሉ።",
+ "DOCUMENTS": "የሰነድ አገዛዝ ደረሰ። Captain AI ለመቀጠል እባክዎ እቅድዎን ያሻሽሉ።"
+ },
+ "FORM": {
+ "CANCEL": "ሰርዝ",
+ "CREATE": "ፍጠር",
+ "EDIT": "አዘምን"
+ },
+ "ASSISTANTS": {
+ "HEADER": "እገዛ አገልጋዮች",
+ "NO_ASSISTANTS_AVAILABLE": "በአካውንትዎ ውስጥ ምንም እርዳታ አልተገኙም።",
+ "ADD_NEW": "አዲስ እገዛ አገልጋይ ፍጠር",
+ "DELETE": {
+ "TITLE": "እርግጠኛ ነህ እገዛ አገልጋዩን ለማስወገድ?",
+ "DESCRIPTION": "ይህ እርምጃ ቋሚ ነው። እገዛ አገልጋዩን ማስወገድ ከተገናኙት ሁሉ ኢንቦክሶች ይሰረዛል እና ሁሉንም የተፈጥሮ እውቀት በቋሚነት ይሰረዛል።",
+ "CONFIRM": "አዎን፣ ሰርዝ",
+ "SUCCESS_MESSAGE": "እገዛ አገልጋዩ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "እገዛ አገልጋዩን ማስወገድ ላይ ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ },
+ "FORM_DESCRIPTION": "እባክዎን ዝርዝሮቹን ይሙሉ እና እገዛ አገልጋዩን ለማስተካከል ስሙን፣ ዓላማውን እና የሚደግፍበትን ምርት ይግለጹ።",
+ "CREATE": {
+ "TITLE": "እገዛ አገልጋይ ፍጠር",
+ "SUCCESS_MESSAGE": "እገዛ አገልጋዩ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "እገዛ አገልጋዩን ለማፍራት ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ },
+ "FORM": {
+ "UPDATE": "አዘምን",
+ "SECTIONS": {
+ "BASIC_INFO": "መሠረታዊ መረጃ",
+ "SYSTEM_MESSAGES": "የስርዓት መልእክቶች",
+ "INSTRUCTIONS": "መመሪያዎች",
+ "FEATURES": "ባህሪያት",
+ "TOOLS": "መሣሪያዎች "
+ },
+ "NAME": {
+ "LABEL": "ስም",
+ "PLACEHOLDER": "የእርዳታ ስም ያስገቡ",
+ "ERROR": "ስም አስፈላጊ ነው"
+ },
+ "TEMPERATURE": {
+ "LABEL": "የምላሽ ሙቀት",
+ "DESCRIPTION": "እንዴት ፈጠራዊ ወይም ገደብ ያለ መልስ እንደሚሰጥ ያስተካክሉ። ዝቅተኛ እሴቶች ትክክለኛና ተወላጅ መልሶችን ያመነታሉ፣ ከፍተኛ እሴቶች ግን በተለያዩና ፈጠራዊ መልሶች ላይ ያስተዋውቃሉ።"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "እርዳታ መግለጫ ያስገቡ",
+ "ERROR": "መግለጫ አስፈላጊ ነው"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "የምርት ስም",
+ "PLACEHOLDER": "የምርት ስም ያስገቡ",
+ "ERROR": "የምርት ስም አስፈላጊ ነው"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "እንኳን ደህና መጡ መልእክት",
+ "PLACEHOLDER": "እንኳን ደህና መጡ መልእክት ያስገቡ"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "ማስተላለፊያ መልእክት",
+ "PLACEHOLDER": "የማስተላለፊያ መልእክት ያስገቡ"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "የመፍትሄ መልእክት",
+ "PLACEHOLDER": "የመፍትሄ መልእክት ያስገቡ"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "መመሪያዎች",
+ "PLACEHOLDER": "ለአስማሚው መመሪያዎች ያስገቡ"
+ },
+ "FEATURES": {
+ "TITLE": "ባህሪያት",
+ "ALLOW_CONVERSATION_FAQS": "ከተፈታ ውይይቶች የተፈጥሮ የተደጋጋ FAQ ያመነታሉ",
+ "ALLOW_MEMORIES": "ከደንበኞች ግንኙነቶች ቁልፍ ዝርዝሮችን እንደ ማስታወሻ ይይዙ።",
+ "ALLOW_CITATIONS": "በምላሾች ውስጥ የምንጭ ማስረጃዎችን አካትተው ይሰጡ",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "እገዛ አገልጋዩን አዘምን",
+ "SUCCESS_MESSAGE": "እገዛ አገልጋዩ በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "እገዛ አገልጋዩን ለማዘመን ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።",
+ "NOT_FOUND": "አገልጋዩን ማግኘት አልተቻለም። እባክዎ እንደገና ይሞክሩ።"
+ },
+ "SETTINGS": {
+ "HEADER": "ቅንብሮች",
+ "BASIC_SETTINGS": {
+ "TITLE": "መሠረታዊ ቅንብሮች",
+ "DESCRIPTION": "ከውይይት ሲያበቃ ወይም ወደ ሰው ሲለዋወጥ እርዳታው የሚናገረውን በቅን ያስተካክሉ።"
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "የስርዓት ቅንብሮች",
+ "DESCRIPTION": "ከውይይት ሲያበቃ ወይም ወደ ሰው ሲለዋወጥ እርዳታው የሚናገረውን በቅን ያስተካክሉ።"
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "የመዝናኛ ነገሮች",
+ "DESCRIPTION": "ከአስማሚው ጋር ተቆጣጣሪ ተጨማሪ አክል። (እንደ ታሪክ ትምህርት ትልቅ ትምህርት፡ ጥያቄ መከላከያ → ሁኔታዎች → ውጤት) ተጠቃሚውን እንዲጠቀም ያበረታታ።",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "መከላከያ መስመሮች",
+ "DESCRIPTION": "ነገሮችን በመንገድ ላይ ይጠብቃል—እንደ አስማሚዎ ሊመልስ የሚፈልጉትን የጥያቄ አይነቶች ብቻ፣ ከውጭ ወይም ከርእሰ ጉዳይ ውጭ አይደለም።"
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "የምላሽ መመሪያዎች",
+ "DESCRIPTION": "የአስማሚዎ መልሶች ስሜትና አወቃቀር—ግልጽና ደስታማ? አጭርና ቀላል? ዝርዝርና ቅንጅታዊ?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "አስማተኛውን ሰርዝ",
+ "DESCRIPTION": "ይህ እርምጃ ቋሚ ነው። እንደዚህ አስማተኛ ማስወገድ ከተገናኙት ሁሉም ኢንቦክሶች ይሰረዝ እና ሁሉንም የተፈጥሮ እውቀት ቋሚ ይሰረዝ።",
+ "BUTTON_TEXT": "{assistantName} አስወግድ"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "እገዛ አገልጋይን አርትዕ",
+ "DELETE_ASSISTANT": "እገዛ አገልጋይን ሰርዝ",
+ "VIEW_CONNECTED_INBOXES": "የተገናኙ ኢንቦክሶችን እይ"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "አሰማሪዎች አልተገኙም",
+ "SUBTITLE": "በተጠቃሚዎችዎ ፈጣና ትክክለኛ መልሶች ለማቅረብ አስማሚ ይፍጠሩ። ከእርስዎ የእርዳታ ሰነዶችና ያለፉ ውይይቶች ማማረር ይችላል።",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "የካፕቴን አስማሪ",
+ "NOTE": "Captain Assistant በቀጥታ ከደንበኞች ጋር ይገናኛል፣ ከእርዳታ ሰነዶችዎና ከያለፈው ውይይቶች ይማራል፣ እና ፈጣን፣ ትክክለኛ ምላሾችን ይሰጣል። የመጀመሪያ ጥያቄዎችን ይከታተላል፣ ፈጣን መፍትሄዎችን ሰጥቶ ከዚያ በኋላ በፍላጎት ሲኖር ወደ ወኪል ይላካል።"
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "መከላከያ መስመሮች",
+ "DESCRIPTION": "ነገሮችን በመከታተል ያደርጋል—ለእርስዎ እርዳታ የሚሰጥበትን የጥያቄ አይነት ብቻ፣ ከዚህ ውጭ ወይም ከርእሰ ጉዳይ ውጭ አይደለም።",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ንጥል ተመርጧል | {count} ንጥሎች ተመርጠዋል",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "UNSELECT_ALL": "ሁሉንም አትምረጡ ({count})",
+ "BULK_DELETE_BUTTON": "ሰርዝ"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "የምሳሌ መከላከያ መስመሮች",
+ "ADD": "ሁሉንም አክል",
+ "ADD_SINGLE": "ይህን አክል",
+ "SAVE": "አክል እና አስቀምጥ (↵)",
+ "PLACEHOLDER": "ሌላ መከላከያ ያስገቡ..."
+ },
+ "NEW": {
+ "TITLE": "መከላከያ ያክሉ",
+ "CREATE": "ፍጠር",
+ "CANCEL": "ሰርዝ",
+ "PLACEHOLDER": "ሌላ መከላከያ ያስገቡ...",
+ "TEST_ALL": "ሁሉንም ይፈትሹ"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ፈልግ..."
+ },
+ "EMPTY_MESSAGE": "ምንም መከላከያ አልተገኘም። መጀመር ዘንድ አዲስ ይፍጠሩ ወይም ምሳሌዎችን ያክሉ።",
+ "SEARCH_EMPTY_MESSAGE": "ለዚህ ፍለጋ ምንም መከላከያ አልተገኘም።",
+ "API": {
+ "ADD": {
+ "SUCCESS": "መከላከያዎች በተሳካ ሁኔታ ተጨምሯል",
+ "ERROR": "መከላከያዎችን ማክሰኞ ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "UPDATE": {
+ "SUCCESS": "መከላከያ መስመሮች በተሳካ ሁኔታ ተሻሽለዋል",
+ "ERROR": "መከላከያ መስመሮችን ለማሻሻል ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ },
+ "DELETE": {
+ "SUCCESS": "መከላከያ መስመሮች በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR": "መከላከያ መስመሮችን ለማስወገድ ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "የምላሽ መመሪያዎች",
+ "DESCRIPTION": "የእርስዎ እርዳታ መልሶች ስሜትና አወቃቀር—ግልጽና ደስተኛ? አጭርና ቀላል? ዝርዝርና ቅንጅተኛ?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ንጥል ተመረጠ | {count} ንጥሎች ተመርጠዋል",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "UNSELECT_ALL": "ሁሉንም አትምረጡ ({count})",
+ "BULK_DELETE_BUTTON": "ሰርዝ"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "የምሳሌ የመልስ መመሪያዎች",
+ "ADD": "ሁሉንም አክል",
+ "ADD_SINGLE": "ይህን አክል",
+ "SAVE": "አክል እና አስቀምጥ (↵)",
+ "PLACEHOLDER": "ሌላ የመልስ መመሪያ ያስጻፉ..."
+ },
+ "NEW": {
+ "TITLE": "የምላሽ መመሪያ አክል",
+ "CREATE": "ፍጠር",
+ "CANCEL": "ሰርዝ",
+ "PLACEHOLDER": "ሌላ የምላሽ መመሪያ ያስጽፉ...",
+ "TEST_ALL": "ሁሉንም ፈትሽ"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ፈልግ..."
+ },
+ "EMPTY_MESSAGE": "የምላሽ መመሪያዎች አልተገኙም። መጀመሪያ ለመጀመር እባክዎ አሰራሮችን ይፍጠሩ ወይም እባክዎን አሰራሮችን ያክሉ።",
+ "SEARCH_EMPTY_MESSAGE": "ለዚህ ፍለጋ ምንም የምላሽ መመሪያ አልተገኘም።",
+ "API": {
+ "ADD": {
+ "SUCCESS": "የምላሽ መመሪያዎች በተሳካ ሁኔታ ተጨምሯል",
+ "ERROR": "የምላሽ መመሪያዎችን ማክሰኞ ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "UPDATE": {
+ "SUCCESS": "የምላሽ መመሪያዎች በተሳካ ሁኔታ ተሻሽለዋል",
+ "ERROR": "የምላሽ መመሪያዎችን ለማዘምን ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "DELETE": {
+ "SUCCESS": "የምላሽ መመሪያዎች በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR": "የምላሽ መመሪያዎችን ለማስወገድ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "ስነ-ሁኔታዎች",
+ "DESCRIPTION": "ለእርዳታው አካባቢ ስጥ—እንደ “ተጠቃሚ ሲገደብ ምን ማድረግ እንደሚገባ” ወይም “በተመለሰ ጥያቄ ላይ እንዴት መሥራት እንደሚገባ”።",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ንጥል ተመረጠ | {count} ንጥሎች ተመርጠዋል",
+ "SELECT_ALL": "ሁሉንም ምረጥ ({count})",
+ "UNSELECT_ALL": "ሁሉንም አልምረጥም ({count})",
+ "BULK_DELETE_BUTTON": "ሰርዝ"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "የምሳሌ ሁኔታዎች",
+ "ADD": "ሁሉንም አክል",
+ "ADD_SINGLE": "ይህን አክል",
+ "TOOLS_USED": "ተጠቃሚ መሣሪያዎች :"
+ },
+ "NEW": {
+ "CREATE": "ስነ-ሁኔታ አክል",
+ "TITLE": "ስነ-ሁኔታ ፍጠር",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "ርዕስ",
+ "PLACEHOLDER": "ስነ-ሁኔታው ስም አስገባ",
+ "ERROR": "የስነ-ሁኔታ ስም አስፈላጊ ነው"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "እንዴት እና የት እንደሚጠቀምበት ይግለጹ",
+ "ERROR": "የስነ-ሁኔታ መግለጫ አስፈላጊ ነው"
+ },
+ "INSTRUCTION": {
+ "LABEL": "እንዴት እንደሚያስተናግድ",
+ "PLACEHOLDER": "እንዴት እና የት እንደሚያስተናግድ ይግለጹ",
+ "ERROR": "የስነ-ሁኔታ ይዘት አስፈላጊ ነው"
+ },
+ "CREATE": "ፍጠር",
+ "CANCEL": "ሰርዝ"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "ሰርዝ",
+ "UPDATE": "ለውጦችን አዘምን"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ፈልግ..."
+ },
+ "EMPTY_MESSAGE": "ምንም ስነ-ሁኔታዎች አልተገኙም። መጀመር ወይም ለመጀመር ምሳሌዎችን ያክሉ።",
+ "SEARCH_EMPTY_MESSAGE": "ለዚህ ፍለጋ ምንም ስነ-ሁኔታዎች አልተገኙም።",
+ "API": {
+ "ADD": {
+ "SUCCESS": "ስነ-ሁኔታዎች በተሳካ ሁኔታ ተጨምሯል",
+ "ERROR": "ስነ-ሁኔታዎችን ማክሰኞ ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "UPDATE": {
+ "SUCCESS": "ስነ-ሁኔታዎች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR": "ስነ-ሁኔታዎችን ማዘመን ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "DELETE": {
+ "SUCCESS": "ስነ-ሁኔታዎች በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR": "ስነ-ሁኔታዎችን ማስወገድ ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "ሰነዶች",
+ "ADD_NEW": "አዲስ ሰነድ ፍጠር",
+ "SELECTED": "{count} ተመረጡ",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "UNSELECT_ALL": "ሁሉንም አልምረጥም ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "አዎን፣ ሁሉንም አጥፋ",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "አልተሳካም"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "ተዛማጅ የFAQ ጥያቄዎች",
+ "DESCRIPTION": "እነዚህ የFAQ ጥያቄዎች ቀጥተኛ ከሰነዱ ተፈጥረዋል።"
+ },
+ "FORM_DESCRIPTION": "ሰነዱን እንደ የእውቀት ምንጭ ለማከማቸት የሰነዱን URL ያስገቡ እና ከዚያ ጋር ለማገናኘት እገዛ አገልጋይን ይምረጡ።",
+ "CREATE": {
+ "TITLE": "ሰነድ አክል",
+ "SUCCESS_MESSAGE": "ሰነዱ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "ሰነዱን ለማፍራት ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "የሰነድ አይነት",
+ "URL": "URL",
+ "PDF": "PDF ፋይል"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "የሰነዱን URL ያስገቡ",
+ "ERROR": "እባክዎን ለሰነዱ ትክክለኛ የ URL አድራሻ ያቀርቡ"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF ፋይል",
+ "CHOOSE_FILE": "PDF ፋይል ይምረጡ",
+ "ERROR": "እባክዎ የ PDF ፋይል ይምረጡ",
+ "HELP_TEXT": "ከፍተኛ የፋይል መጠን፡ 10MB",
+ "INVALID_TYPE": "እባክዎ ትክክለኛ የ PDF ፋይል ይምረጡ",
+ "TOO_LARGE": "የፋይል መጠን 10MB ከፍተኛ ደረጃን አሻሽሏል"
+ },
+ "NAME": {
+ "LABEL": "የሰነድ ስም (አማራጭ)",
+ "PLACEHOLDER": "ለሰነዱ ስም ያስገቡ"
+ }
+ },
+ "DELETE": {
+ "TITLE": "ሰነዱን ለማስወገድ እርግጠኛ ነዎት?",
+ "DESCRIPTION": "ይህ እርምጃ ቋሚ ነው። ሰነዱን ማስወገድ ሁሉንም የተፈጥሮ እውቀት በቋሚነት ይሰረዛል።",
+ "CONFIRM": "አዎን፣ ሰርዝ",
+ "SUCCESS_MESSAGE": "ሰነዱ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ሰነዱን ለማስወገድ ስህተት አጋጥሟል፣ እባክዎን እንደገና ይሞክሩ።"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "ተዛማጅ ምላሾችን እይ",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "ሰነድ ሰርዝ"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "ሰነዶች አልተገኙም",
+ "SUBTITLE": "ሰነዶች በእርስዎ አገልጋይ በተጠቃሚ ጥያቄዎች ላይ የሚሰጥ የተደጋጋሚ ጥያቄዎችን ለመፍጠር ይጠቀማሉ። ሰነዶችን ለአገልጋይዎ እውነተኛ እይታ ለማቅረብ ማስገባት ይችላሉ።",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain ሰነድ",
+ "NOTE": "በCaptain ውስጥ ሰነድ እንደ ለማድረግ ምንጭ እንደሚሰራ አገልግሎት አገልግሎት ነው። የእርዳታ ማዕከላችሁን ወይም መምሪያዎችን በመገናኘት፣ Captain ይዘቱን ማብራሪያ ማድረግ እና ለደንበኞች ጥያቄዎች ትክክለኛ ምላሾችን ማቅረብ ይችላል።"
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "መሣሪያዎች",
+ "ADD_NEW": "አዲስ መሣሪያ ይፍጠሩ",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "ምንም የተለየ መሣሪያዎች አልተገኙም",
+ "SUBTITLE": "እርስዎን ከውጭ ኤፒአይዎችና አገልግሎቶች ጋር ለማገናኘት የተለየ መሣሪያዎችን ይፍጠሩ፣ እንዲሁም እርስዎን በአካል ውስጥ መረጃ ለማግኘትና ለማከናወን ይፈቅዱ።",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "የተለየ መሣሪያዎች",
+ "NOTE": "የተለየ መሣሪያዎች እርስዎን ከውጭ ኤፒአይዎችና አገልግሎቶች ጋር ለመገናኘት ይፈቅዳሉ። መሣሪያዎችን ይፍጠሩ ለመረጃ ማግኘት፣ ለእርስዎ ተደርጎ ለማከናወን ወይም ከአሁን እንደሚገኙ ስርዓቶችዎ ጋር ለመዋሃድ እንዲቻል ያደርጉ።"
+ }
+ },
+ "FORM_DESCRIPTION": "የተለየ መሣሪያዎን ከውጭ ኤፒአይዎች ጋር ለማገናኘት ያቀናብሩ",
+ "OPTIONS": {
+ "EDIT_TOOL": "መሣሪያውን አርትዕ",
+ "DELETE_TOOL": "መሣሪያውን ሰርዝ"
+ },
+ "CREATE": {
+ "TITLE": "ብለይ የተሰራ መሣሪያ ፍጠር",
+ "SUCCESS_MESSAGE": "ብለይ የተሰራ መሣሪያ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "ብለይ የተሰራ መሣሪያ ማፍጠር አልተሳካም"
+ },
+ "EDIT": {
+ "TITLE": "ብለይ የተሰራ መሣሪያ አርትዕ",
+ "SUCCESS_MESSAGE": "ብልጥ መሣሪያ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "ብልጥ መሣሪያን ማሻሻል አልተሳካም"
+ },
+ "DELETE": {
+ "TITLE": "ብልጥ መሣሪያ ሰርዝ",
+ "DESCRIPTION": "እርግጠኛ ነህ ይህን ብልጥ መሣሪያ ማስወገድ ይፈልጋሉ? ይህ እርምጃ አይተከለከልም።",
+ "CONFIRM": "አዎን፣ ሰርዝ",
+ "SUCCESS_MESSAGE": "ብልጽግና ተጠቃሚ መሣሪያ ተሰርዟል",
+ "ERROR_MESSAGE": "ብልጽግና መሣሪያውን ማስወገድ አልተሳካም"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "የመሣሪያ ስም",
+ "PLACEHOLDER": "የትዕዛዝ ፍለጋ",
+ "ERROR": "የመሣሪያ ስም አስፈላጊ ነው",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ",
+ "PLACEHOLDER": "በትዕዛዝ መለያ የትዕዛዝ ዝርዝሮችን ይፈልጋል"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "ዘዴ"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "የመጨረሻ አድራሻ URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "ትክክለኛ ዩአርኤል ያስፈልጋል"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "የማረጋገጫ አይነት"
+ },
+ "AUTH_TYPES": {
+ "NONE": "የለም",
+ "BEARER": "Bearer ቶክን",
+ "BASIC": "መሠረታዊ ማረጋገጫ",
+ "API_KEY": "API ቁልፍ"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer ቶክን",
+ "BEARER_TOKEN_PLACEHOLDER": "የእርስዎን ባሪየር ቶክን ያስገቡ",
+ "USERNAME": "የተጠቃሚ ስም",
+ "USERNAME_PLACEHOLDER": "የተጠቃሚ ስም ያስገቡ",
+ "PASSWORD": "የይለፍ ቃል",
+ "PASSWORD_PLACEHOLDER": "የይለፍ ቃል አስገባ",
+ "API_KEY": "የራስጌ ስም",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "የራስጌ እሴት",
+ "API_VALUE_PLACEHOLDER": "የAPI ቁልፍ እሴት አስገባ"
+ },
+ "PARAMETERS": {
+ "LABEL": "ፓራሜተሮች",
+ "HELP_TEXT": "ከተጠቃሚ ጥያቄዎች የሚወጡ ፓራሜተሮችን ውስጥ አስቀምጥ"
+ },
+ "ADD_PARAMETER": "ፓራሜተር አክል",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "የፓራሜተር ስም (ለምሳሌ order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "አይነት"
+ },
+ "PARAM_TYPES": {
+ "STRING": "ሐረግ",
+ "NUMBER": "ቁጥር",
+ "BOOLEAN": "ቡሉን",
+ "ARRAY": "አደራ",
+ "OBJECT": "ነገር"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "የፓራሜተሩ መግለጫ"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "ያስፈልጋል"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "የጥያቄ አካል አብነት (አማራጭ)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "የመልስ አብነት (አማራጭ)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "የፓራሜተር ስም አስፈላጊ ነው"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ ጥያቄዎች",
+ "PENDING_FAQS": "በመጠባበቂያ ላይ ያሉ የተደጋጋሚ ጥያቄዎች",
+ "ADD_NEW": "አዲስ FAQ ፍጠር",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "ውይይት #{id}"
+ },
+ "SELECTED": "{count} ተመረጡ",
+ "SELECT_ALL": "ሁሉንም ይምረጡ ({count})",
+ "UNSELECT_ALL": "ሁሉንም አልምረጥም ({count})",
+ "SEARCH_PLACEHOLDER": "የተደጋጋሚ ጥያቄዎችን ይፈልጉ...",
+ "BULK_APPROVE_BUTTON": "አረጋግጥ",
+ "BULK_DELETE_BUTTON": "አጥፋ",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "የተደረገ ጥያቄዎች በተሳካ ሁኔታ ተፈቅዷል",
+ "ERROR_MESSAGE": "የተደረገውን ጥያቄዎች ማፈቀድ ላይ ስህተት አለ፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "BULK_DELETE": {
+ "TITLE": "ጥያቄዎችን ማጥፋት ይፈልጋሉ?",
+ "DESCRIPTION": "የተመረጡትን ጥያቄዎች ማጥፋት እርግጠኛ ነዎት? ይህ እርምጃ አይተካልም።",
+ "CONFIRM": "አዎን፣ ሁሉንም አጥፋ",
+ "SUCCESS_MESSAGE": "የተደገፉ ጥያቄዎች በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "የተደገፉ ጥያቄዎችን ማስወገድ ላይ ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "DELETE": {
+ "TITLE": "FAQ ለማጥፋት እርግጠኛ ነህ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "አዎን፣ አጥፋ",
+ "SUCCESS_MESSAGE": "FAQ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "FAQ ለማጥፋት ስህተት አጋጥሟል፣ እባክህ እንደገና ይሞክሩ።"
+ },
+ "FILTER": {
+ "ASSISTANT": "አስማሪ: {selected}",
+ "STATUS": "ሁኔታ: {selected}",
+ "ALL_ASSISTANTS": "ሁሉም"
+ },
+ "STATUS": {
+ "TITLE": "ሁኔታ",
+ "PENDING": "በመጠባበቅ ላይ",
+ "APPROVED": "ተፈቅዷል",
+ "ALL": "ሁሉም"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain ደንበኞችዎ የሚፈልጉትን አንዳንድ የተደጋጋሚ ጥያቄዎች ተገናኝቷል።",
+ "ACTION": "እዚህ ይጫኑ ለማረጋገጥ"
+ },
+ "FORM_DESCRIPTION": "ጥያቄ እና ከዚያ ተዛማጅ መልስ ወደ እውቀት ቋት ያክሉ እና ከሚዛመደው አስማሪ ይምረጡ።",
+ "CREATE": {
+ "TITLE": "ተደጋጋሚ ጥያቄ ያክሉ",
+ "SUCCESS_MESSAGE": "መልስ በተሳካ ሁኔታ ተጨምሯል።",
+ "ERROR_MESSAGE": "መልስ ሲጨምር ላይ ስህተት ተከስቷል። እባክዎ እንደገና ይሞክሩ።"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "ጥያቄ",
+ "PLACEHOLDER": "ጥያቄውን እዚህ ያስገቡ",
+ "ERROR": "እባክዎ ትክክለኛ ጥያቄ ያቀርቡ።"
+ },
+ "ANSWER": {
+ "LABEL": "መልስ",
+ "PLACEHOLDER": "መልሱን እዚህ ያስገቡ",
+ "ERROR": "እባክዎ ትክክለኛ መልስ ያቀርቡ።"
+ }
+ },
+ "EDIT": {
+ "TITLE": "የተደጋጋሚ ጥያቄዎችን አዘምን",
+ "SUCCESS_MESSAGE": "የተደጋጋሚ ጥያቄዎች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR_MESSAGE": "FAQ ለማዘመን ስህተት አጋጥሟል፣ እባክዎ እንደገና ይሞክሩ",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ እንደ ተፈቀደ ተመዝግቧል"
+ },
+ "OPTIONS": {
+ "APPROVE": "አረጋግጥ",
+ "EDIT_RESPONSE": "አርትዕ",
+ "DELETE_RESPONSE": "ሰርዝ"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "FAQ አልተገኘም",
+ "NO_PENDING_TITLE": "ለማረጋገጥ ተጠባባቂ ያልተጠበቁ የFAQ ጥያቄዎች አልተገኙም",
+ "SUBTITLE": "የተደጋጋሚ ጥያቄዎች አገልጋይዎን ከደንበኞችዎ ጥያቄዎች በፍጥነትና ትክክለኛ መልስ ለማቅረብ ይረዳሉ። እነዚህ ከይዘትዎ በራስሰር ሊፈጠሩ ወይም በእጅ ሊጨምሩ ይችላሉ።",
+ "CLEAR_SEARCH": "እየሰሩ ያሉ አሰሳዎችን አጽዳ",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain ተደጋጋሚ ጥያቄዎች",
+ "NOTE": "Captain ተደጋጋሚ ጥያቄዎች በደንበኞች መካከል የተለመዱ ጥያቄዎችን ይገነባል—እነሱ ከእርዳታ መረጃ ቤትዎ ውስጥ እንኳን ከሌለው ወይም በተደጋጋሚ የሚጠየቁ ሆነው—እና የሚዛመዱ ተደጋጋሚ ጥያቄዎችን ለድጋፍ ማሻሻል ይፈጥራል። እያንዳንዱን ምክር ማስተካከል ወይም ማቋረጥ መወሰን ይችላሉ።"
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "የተገናኙ ኢንቦክሶች",
+ "ADD_NEW": "አዲስ ኢንቦክስ ያገናኙ",
+ "OPTIONS": {
+ "DISCONNECT": "አግኝተው ይቆረጡ"
+ },
+ "DELETE": {
+ "TITLE": "እባክዎ እርግጠኛ ነዎት እንደ ኢንቦክሱ ከመገናኘት መቆለፍ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "አዎን፣ አጥፋ",
+ "SUCCESS_MESSAGE": "ኢንቦክሱ በተሳካ ሁኔታ ተቋርጧል።",
+ "ERROR_MESSAGE": "ኢንቦክሱን ለመቆለፍ ስህተት ተከስቷል፣ እባክዎ እንደገና ይሞክሩ።"
+ },
+ "FORM_DESCRIPTION": "ከአስማሚው ጋር ለመገናኘት ኢንቦክስ ይምረጡ።",
+ "CREATE": {
+ "TITLE": "ኢንቦክስ ያገናኙ",
+ "SUCCESS_MESSAGE": "ኢንቦክሱ በተሳካ ሁኔታ ተገናኝቷል።",
+ "ERROR_MESSAGE": "ኢንቦክሱን ሲገናኝ ስህተት ተከስቷል። እባክዎ እንደገና ይሞክሩ።"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "ኢንቦክስ",
+ "PLACEHOLDER": "እርዳታውን ለማስተካከል ኢንቦክሱን ይምረጡ።",
+ "ERROR": "የኢንቦክስ ምርጫ አስፈላጊ ነው።"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "ተገናኝቷ ያልሆኑ ኢንቦክሶች የሉም",
+ "SUBTITLE": "ኢንቦክስ ማገናኘት አገልጋይዎ ከደንበኞችዎ የመጀመሪያ ጥያቄዎችን ማስተካከል እና ከዚያ በኋላ ወደ እርስዎ ለማስተላለፍ ያስችላል።"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
index 09ac38551..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/am/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/am/login.json b/app/javascript/dashboard/i18n/locale/am/login.json
index fb33028d6..061284247 100644
--- a/app/javascript/dashboard/i18n/locale/am/login.json
+++ b/app/javascript/dashboard/i18n/locale/am/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create a new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/macros.json b/app/javascript/dashboard/i18n/locale/am/macros.json
index 3a59d4f26..e51975921 100644
--- a/app/javascript/dashboard/i18n/locale/am/macros.json
+++ b/app/javascript/dashboard/i18n/locale/am/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/mfa.json b/app/javascript/dashboard/i18n/locale/am/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/onboarding.json b/app/javascript/dashboard/i18n/locale/am/onboarding.json
new file mode 100644
index 000000000..bb90a36c0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "የሰዓት ክልል ይምረጡ",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "ቀጥል",
+ "SAVING": "እየተቀማጭ ነው...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/report.json b/app/javascript/dashboard/i18n/locale/am/report.json
index e3a0f31d2..20f61f618 100644
--- a/app/javascript/dashboard/i18n/locale/am/report.json
+++ b/app/javascript/dashboard/i18n/locale/am/report.json
@@ -1,82 +1,68 @@
{
"REPORT": {
"HEADER": "Conversations",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "LOADING_CHART": "ገበታ ውሂብ በማስጫን ላይ...",
+ "NO_ENOUGH_DATA": "ሪፖርት ለማመንጨት በቂ ውሂብ ነጥቦች አልደረሰንም፣ እባክዎ በኋላ ደግመው ይሞክሩ።",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "ውይይቶች",
+ "DESC": "( ጠቅላላ )"
},
"INCOMING_MESSAGES": {
"NAME": "Messages received",
- "DESC": "( Total )"
+ "DESC": "( ጠቅላላ )"
},
"OUTGOING_MESSAGES": {
"NAME": "Messages sent",
- "DESC": "( Total )"
+ "DESC": "( ጠቅላላ )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "የመፍትሄ ጊዜ",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
+ "NAME": "የመፍትሄ ብዛት",
+ "DESC": "( ጠቅላላ )"
+ },
+ "BOT_RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "አተግባር ላይ አውርድ",
+ "PLACEHOLDER": "የቀን ክልል ይምረጡ"
},
"GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
"DURATION_FILTER_LABEL": "Duration",
@@ -130,148 +116,176 @@
"groupBy": "Year"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "FILTER_DROPDOWN_LABEL": "Select Agent",
+ "HEADER": "የወኪሎች እይታ",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "LOADING_CHART": "የቅርጸ ቁምፊ ውሂብ በመጫን ላይ...",
+ "NO_ENOUGH_DATA": "ሪፖርት ለማቅረብ በቂ ውሂብ አልደረሰንም፣ እባክዎ በኋላ ደግመው ይሞክሩ።.",
+ "DOWNLOAD_AGENT_REPORTS": "የAgent ሪፖርቶችን አውርድ",
+ "FILTER_DROPDOWN_LABEL": "Agent ይምረጡ",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "ውይይቶች",
+ "DESC": "( ጠቅላላ )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "የመጣ መልእክቶች",
+ "DESC": "( ጠቅላላ )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "የሚያልኩ መልእክቶች",
+ "DESC": "( ጠቅላላ )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "የመፍትሄ ጊዜ",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "የተፈታ ብዛት",
+ "DESC": "( ጠቅላላ )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "ያለፉት 7 ቀናት"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "ያለፉት 30 ቀናት"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "ያለፉት 3 ወራት"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "ያለፉት 6 ወራት"
},
{
"id": 4,
- "name": "Last year"
+ "name": "ያለፈው ዓመት"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "በተለይ የተመረጠ ቀን ክልል"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "ተግባሩን ተፈጽም",
+ "PLACEHOLDER": "የቀን ክልል ይምረጡ"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
- "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",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "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": "የመለያ ሪፖርቶችን ይውሰዱ",
+ "FILTER_DROPDOWN_LABEL": "መለያ ይምረጡ",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "ውይይቶች",
+ "DESC": "( ድምር )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "የሚገቡ መልእክቶች",
+ "DESC": "( ድምር )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "የወጪ መልእክቶች",
+ "DESC": "( ድምር )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "የመፍትሄ ጊዜ",
+ "DESC": "( አማካይ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "የመፍትሄ ብዛት",
+ "DESC": "( ድምር )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "ያለፉ 7 ቀናት"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "ያለፉ 30 ቀናት"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "ያለፉት 3 ወራት"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "ያለፉት 6 ወራት"
},
{
"id": 4,
- "name": "Last year"
+ "name": "ያለፈው ዓመት"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "በተፈጥሮ የተመረጠ የቀን ክልል"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "ተግባር አድርግ",
+ "PLACEHOLDER": "የቀን ክልል ይምረጡ"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
+ "HEADER": "የኢንቦክስ አጠቃላይ እይታ",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
+ "LOADING_CHART": "የገቢ ግምገማ መረጃ በመጫን ላይ...",
+ "NO_ENOUGH_DATA": "ሪፖርት ለማዘጋጀት በቂ መረጃ አልተደረሰም። እባክዎ በኋላ ይሞክሩ።",
+ "DOWNLOAD_INBOX_REPORTS": "የኢንቦክስ ሪፖርቶችን ይውሰዱ",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -401,35 +424,101 @@
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "HEADER": "CSAT ሪፖርቶች",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "እውቂያ",
+ "AGENT_NAME": "Agent",
+ "RATING": "እምነት ደረጃ",
+ "FEEDBACK_TEXT": "አስተያየት አስተያየት",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "ጠቅላላ ምላሾች",
+ "TOOLTIP": "የተሰበሰበው ምላሾች ጠቅላላ ብዛት"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "የደስታ ነጥብ",
+ "TOOLTIP": "አጠቃላይ የአዎንታዊ ምላሾች ብዛት / አጠቃላይ የምላሾች ብዛት * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "የምላሽ ተመን",
+ "TOOLTIP": "አጠቃላይ የምላሾች ብዛት / አጠቃላይ የተላኩ የCSAT እቅድ መልእክቶች ብዛት * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/search.json b/app/javascript/dashboard/i18n/locale/am/search.json
index 107e64fd8..2fc8e7998 100644
--- a/app/javascript/dashboard/i18n/locale/am/search.json
+++ b/app/javascript/dashboard/i18n/locale/am/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/settings.json b/app/javascript/dashboard/i18n/locale/am/settings.json
index a953dbca0..6264307a8 100644
--- a/app/javascript/dashboard/i18n/locale/am/settings.json
+++ b/app/javascript/dashboard/i18n/locale/am/settings.json
@@ -1,325 +1,923 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
+ "LINK": "መገለጫ ቅንብሮች",
+ "TITLE": "መገለጫ ቅንብሮች",
+ "BTN_TEXT": "መገለጫ አዘምን",
+ "DELETE_AVATAR": "አቫታር ሰርዝ",
+ "AVATAR_DELETE_SUCCESS": "አቫታሩ በተሳካ ሁኔታ ተሰርዟል",
+ "AVATAR_DELETE_FAILED": "አቫታር ሲሰረዝ ስህተት አለ፣ እባክዎ እንደገና ይሞክሩ",
+ "UPDATE_SUCCESS": "መገለጫዎ በተሳካ ሁኔታ ተሻሽሏል",
+ "PASSWORD_UPDATE_SUCCESS": "የይለፍ ቃልዎ በተሳካ ሁኔታ ተቀይሯል",
+ "AFTER_EMAIL_CHANGED": "መገለጫዎ በተሳካ ሁኔታ ተሻሽሏል፣ እባክዎ እንደገና ይግቡ ምክንያቱም የግባት መረጃዎችዎ ተቀየሩ።",
"FORM": {
- "AVATAR": "Profile Image",
- "ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "PICTURE": "የመገለጫ ፎቶ",
+ "AVATAR": "የመገለጫ ምስል",
+ "ERROR": "እባክዎ የቅጽ ስህተቶችን ያስተካክሉ",
+ "REMOVE_IMAGE": "አስወግድ",
+ "UPLOAD_IMAGE": "ምስል አስገባ",
+ "UPDATE_IMAGE": "ምስል አዘምን",
"PROFILE_SECTION": {
- "TITLE": "Profile",
- "NOTE": "Your email address is your identity and is used to log in."
+ "TITLE": "መገለጫ",
+ "NOTE": "ኢሜይል አድራሻዎ መለያዎ ነው እና ለመግባት ይጠቀማል።."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "መልእክቶችን ለማስተላለፍ አስቸኳይ ቁልፍ",
+ "NOTE": "በመጻፍ ላይ የምትወዱትን መሠረት በመምረጥ ሙሉ ቁልፍ (Enter ወይም Cmd/Ctrl+Enter) ማስተካከል ይችላሉ።.",
+ "UPDATE_SUCCESS": "ቅንብሮችዎ በተሳካ ሁኔታ ተሻሽለዋል",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "አስገባ (↵)",
+ "CONTENT": "በመላክ አዝራር ላይ መጫን በመክፈት ከሆነ በEnter ቁልፍ መልእክቶችን ላክ።."
},
"CMD_ENTER_KEY": {
- "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "HEADING": "Cmd/Ctrl + አስገባ (⌘ + ↵)",
+ "CONTENT": "በመላክ አዝራር ላይ መጫን በመክፈት ከሆነ Cmd/Ctrl + Enter ቁልፍ በመጫን መልእክቶችን ላክ።."
}
}
},
- "MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
- },
- "MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
- },
- "PASSWORD_SECTION": {
- "TITLE": "Password",
- "NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
- },
- "ACCESS_TOKEN": {
- "TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
- },
- "AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
- "NONE": "None",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "INTERFACE_SECTION": {
+ "TITLE": "ቅርጸ ተነሳሽ",
+ "NOTE": "የChatwoot ዳሽቦርድዎን ቅርጸ ተነሳሽነት ያስተካክሉ።.",
+ "FONT_SIZE": {
+ "TITLE": "የፊደል መጠን",
+ "NOTE": "በዳሽቦርድ ዙሪያ የጽሑፍ መጠንን በሚወዱበት መሠረት ያስተካክሉ።.",
+ "UPDATE_SUCCESS": "የፊደል ቅንብሮችዎ በተሳካ ሁኔታ ተሻሽለዋል",
+ "UPDATE_ERROR": "ቅንብሮችን ማሻሻል ላይ ስህተት አለ፣ እባክዎ እንደገና ይሞክሩ",
+ "OPTIONS": {
+ "SMALLER": "ትንሽ",
+ "SMALL": "ትንሽ ትንሽ",
+ "DEFAULT": "ነባሪ",
+ "LARGE": "ትልቅ",
+ "LARGER": "ከፍተኛ",
+ "EXTRA_LARGE": "በጣም ትልቅ"
+ }
},
- "DEFAULT_TONE": {
- "TITLE": "Alert tone:"
- },
- "CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
+ "LANGUAGE": {
+ "TITLE": "ተመራጭ ቋንቋ",
+ "NOTE": "የምትጠቀሙበትን ቋንቋ ይምረጡ።.",
+ "UPDATE_SUCCESS": "የቋንቋ ቅንብሮችዎ በተሳካ ሁኔታ ተሻሽለዋል",
+ "UPDATE_ERROR": "በቋንቋ ቅንብሮች ማሻሻያ ላይ ስህተት አለ፣ እባክዎ እንደገና ይሞክሩ",
+ "USE_ACCOUNT_DEFAULT": "የአካውንት ነባሪ ቋንቋ ይጠቀሙ"
}
},
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "የግል መልእክት ፊርማ",
+ "NOTE": "ከማንኛውም ኢንቦክስ የምትላኩት ሁሉ መልእክት መጨረሻ ላይ የሚታይ በተለየ የመልእክት ፊርማ ይፍጠሩ። በቀጥታ ውይይት፣ ኢሜይል እና API ኢንቦክሶች ውስጥ የሚደገፍ የመስመር ላይ ምስል ማካተት ደግሞ ትችላላችሁ።.",
+ "BTN_TEXT": "የመልእክት ፊርማ አስቀምጥ",
+ "API_ERROR": "ፊርማውን ማስቀመጥ አልተቻለም! እንደገና ይሞክሩ",
+ "API_SUCCESS": "ፊርማው በተሳካ ሁኔታ ተቀምጧል",
+ "IMAGE_UPLOAD_ERROR": "ምስሉን ማስገባት አልተቻለም! እባክዎ እንደገና ይሞክሩ",
+ "IMAGE_UPLOAD_SUCCESS": "ምስሉ በተሳካ ሁኔታ ታክሏል። እባክዎ ማስቀመጫ ለማስቀመጥ ላይ ይጫኑ",
+ "IMAGE_UPLOAD_SIZE_ERROR": "የምስል መጠን ከ{size}MB በታች መሆን አለበት",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "የመልእክት ፊርማ",
+ "ERROR": "የመልእክት ፊርማ አይባዶ ሊሆን አይችልም",
+ "PLACEHOLDER": "የግል መልእክት ፊርማዎን እዚህ አስገባ።."
+ },
+ "PASSWORD_SECTION": {
+ "TITLE": "የይለፍ ቃል",
+ "NOTE": "የይለፍ ቃልዎን ማዘመን በብዙ መሣሪያዎች ውስጥ መግባቶችዎን ያስቀድማል።.",
+ "BTN_TEXT": "የይለፍ ቃል ቀይር"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "ደህንነት",
+ "NOTE": "ለመለያዎ ተጨማሪ የደህንነት ባለስልጣናት ያስተዳድሩ።.",
+ "MFA_BUTTON": "ሁለት-አምስት ማረጋገጫ ያስተካክሉ"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "የመዳረሻ ቶክን",
+ "NOTE": "ይህ ቶክን ከAPI በመሠረት የተደረገ አንደኛ አገናኝ ሲሆን ሊጠቀምበት ይችላል",
+ "COPY": "ቅዳ",
+ "RESET": "እንደገና ማስጀመር",
+ "CONFIRM_RESET": "እርግጠኛ ነህ?",
+ "CONFIRM_HINT": "ለማረጋገጥ እንደገና ጠቅ ያድርጉ",
+ "RESET_SUCCESS": "የመዳረሻ ቶክን በተሳካ ሁኔታ ተመልሷል",
+ "RESET_ERROR": "የመዳረሻ ቶክን ማስመለስ አልተቻለም። እባክዎ እንደገና ይሞክሩ"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "የድምፅ ማስጠንቀቂያዎች",
+ "NOTE": "አዲስ መልእክቶችና ውይይቶች ለማስጠንቀቂያ በዳሽቦርድ ውስጥ የድምፅ ማስጠንቀቂያዎችን አንቀሳቅሱ።.",
+ "PLAY": "ድምፅ አስተዋውቅ",
+ "ALERT_TYPES": {
+ "NONE": "የለም",
+ "MINE": "የተመደቡ",
+ "ALL": "ሁሉም",
+ "ASSIGNED": "ለእኔ የተመደቡ ውይይቶች",
+ "UNASSIGNED": "ያልተመደቡ ውይይቶች",
+ "NOTME": "ለሌሎች የተመደቡ ክፍተቶች የተከፈቱ ውይይቶች"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "አንድም አማራጭ አልምረጡም፣ የድምፅ ማስጠንቀቂያ አትቀበሉም።.",
+ "ASSIGNED": "ለእርስዎ የተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።.",
+ "UNASSIGNED": "ለማንኛውም ያልተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።.",
+ "NOTME": "ለሌሎች የተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።.",
+ "ASSIGNED+UNASSIGNED": "ለየእርስዎ የተመደቡ ውይይቶችና ለማንኛውም ያልተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።.",
+ "ASSIGNED+NOTME": "ለእርስዎ እና ለሌሎች የተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ፣ ነገር ግን ለማንኛውም ያልተመደቡ አይደሉም።.",
+ "NOTME+UNASSIGNED": "ለማንኛውም ያልተመደቡ ውይይቶችና ለሌሎች የተመደቡ ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።.",
+ "ASSIGNED+NOTME+UNASSIGNED": "ለሁሉም ውይይቶች ማስጠንቀቂያዎችን ትቀበላላችሁ።."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "ለውይይቶች የሚሰጡ ማስጠንቀቂያ ክስተቶች",
+ "NONE": "የለም",
+ "ASSIGNED": "የተመደቡ ውይይቶች",
+ "ALL_CONVERSATIONS": "ሁሉም ውይይቶች"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "የማስጠንቀቂያ ድምፅ፡:"
+ },
+ "CONDITIONS": {
+ "TITLE": "የማስጠንቀቂያ ሁኔታዎች፡:",
+ "CONDITION_ONE": "ከአሳሽ መስኮት በተጠቃሚ አይሆን ብቻ የድምፅ ማስጠንቀቂያዎችን ላክ",
+ "CONDITION_TWO": "እስከ ሁሉም የተመደቡ ውይይቶች እንደተነበቡ ድረስ በ30 ሰከንድ ያህል ማስጠንቀቂያዎችን ላክ"
+ },
+ "SOUND_PERMISSION_ERROR": "በአሳሽዎ ውስጥ ኦቶፕሌይ ተከልክሏል። ማስጠንቀቂያዎችን በራስሰር ለማድረግ በአሳሽዎ ቅንብሮች ውስጥ የድምፅ ፈቃድ አንቀሳቅሱ ወይም ገፅታውን ያገናኙ።.",
+ "READ_MORE": "ተጨማሪ ንባብ"
+ },
"EMAIL_NOTIFICATIONS_SECTION": {
- "TITLE": "Email Notifications",
- "NOTE": "Update your email notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "TITLE": "የኢሜይል ማስታወቂያዎች",
+ "NOTE": "እዚህ የኢሜይል ማስታወቂያ ቅንብሮችዎን ያዘምኑ",
+ "CONVERSATION_ASSIGNMENT": "ስለ ተመደበኝ ውይይት ኢሜይል ማስታወቂያዎችን ላክ",
+ "CONVERSATION_CREATION": "ስለ አዲስ ውይይት ኢሜይል ማስታወቂያዎችን ላክ",
+ "CONVERSATION_MENTION": "በውይይት ላይ ሲጠራህ ኢሜይል ማስታወቂያዎችን ላክ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "ስለ ተመደበኝ ውይይት አዲስ መልእክት ሲፈጠር ኢሜይል ማስታወቂያዎችን ላክ",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "በተሳታፊ ውይይት ውስጥ አዲስ መልእክት ሲፈጠር የኢሜል ማስታወቂያዎችን ላክ",
+ "SLA_MISSED_FIRST_RESPONSE": "በውይይት ውስጥ የመጀመሪያ ምላሽ SLA ሲጎድል የኢሜል ማስታወቂያዎችን ላክ",
+ "SLA_MISSED_NEXT_RESPONSE": "በውይይት ውስጥ የቀጣዩ ምላሽ SLA ሲጎድል የኢሜል ማስታወቂያዎችን ላክ",
+ "SLA_MISSED_RESOLUTION": "በውይይት ውስጥ የመፍታት ስርዓት SLA ሲጎድል የኢሜል ማስታወቂያዎችን ላክ"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "የማስታወቂያ ቅንብሮች",
+ "TYPE_TITLE": "የማስታወቂያ አይነት",
+ "EMAIL": "ኢሜል",
+ "PUSH": "ፑሽ ማስታወቂያ",
+ "TYPES": {
+ "CONVERSATION_CREATED": "አዲስ ውይይት ተፈጥሯል",
+ "CONVERSATION_ASSIGNED": "ውይይት ወደ እርስዎ ተመደበ",
+ "CONVERSATION_MENTION": "በውይይት ውስጥ ተጠቃሚ ተጠቅመዋል",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "በተመደቡ ውይይት ውስጥ አዲስ መልእክት ተፈጥሯል",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "በተሳታፊ ውይይት ውስጥ አዲስ መልእክት ተፈጥሯል",
+ "SLA_MISSED_FIRST_RESPONSE": "ውይይት የመጀመሪያ ምላሽ SLA አልተጠበቀም",
+ "SLA_MISSED_NEXT_RESPONSE": "ውይይት የቀጣዩ ምላሽ SLA አልተጠበቀም",
+ "SLA_MISSED_RESOLUTION": "ውይይት የመፍታት ስርዓት SLA አልተጠበቀም"
+ },
+ "BROWSER_PERMISSION": "ለአሳሽ በሚሰጥዎት አሳሽ ማስታወቂያዎች እንዲቀበሉ ፑሽ ማስታወቂያዎችን አንቀሳቅስ"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
- "UPDATE_ERROR": "There is an error while updating the preferences, please try again"
+ "UPDATE_SUCCESS": "የማስታወቂያ ቅንብሮችዎ በተሳካ ሁኔታ ተሻሽለዋል",
+ "UPDATE_ERROR": "ቅንብሮችን ማዘመን ላይ ስህተት አለ፣ እባክዎ እንደገና ይሞክሩ"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "TITLE": "የፓሽ ማስታወቂያዎች",
+ "NOTE": "እዚህ የፓሽ ማስታወቂያ ቅንብሮችዎን ያዘምኑ",
+ "CONVERSATION_ASSIGNMENT": "ስለ ተመደበኝ ውይይት ፓሽ ማስታወቂያዎችን ላክ",
+ "CONVERSATION_CREATION": "ስለ አዲስ ውይይት ፓሽ ማስታወቂያዎችን ላክ",
+ "CONVERSATION_MENTION": "በውይይት ላይ ሲጠራህ ፓሽ ማስታወቂያዎችን ላክ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "ስለ ተመደበኝ ውይይት አዲስ መልእክት ሲፈጠር ፓሽ ማስታወቂያዎችን ላክ",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "በተሳታፊ ውይይት ውስጥ አዲስ መልእክት ሲፈጠር የፑሽ ማስታወቂያዎችን ላክ",
+ "HAS_ENABLED_PUSH": "ለዚህ አሳሽ አሳሽ ፓሽ አንቀሳቅሷል።.",
+ "REQUEST_PUSH": "ፓሽ ማስታወቂያዎችን አንቀሳቅስ",
+ "SLA_MISSED_FIRST_RESPONSE": "በውይይት ውስጥ የመጀመሪያ ምላሽ SLA ሲጎድል የፑሽ ማስታወቂያዎችን ላክ",
+ "SLA_MISSED_NEXT_RESPONSE": "በውይይት ውስጥ የቀጣዩ ምላሽ SLA ሲጎድል የፑሽ ማስታወቂያዎችን ላክ",
+ "SLA_MISSED_RESOLUTION": "በውይይት ውስጥ የመፍታት ስርዓት SLA ሲጎድል የፑሽ ማስታወቂያዎችን ላክ"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "የመገለጫ ምስል"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "ሙሉ ስምዎ",
+ "ERROR": "እባክዎ ትክክለኛ ሙሉ ስም ያስገቡ",
+ "PLACEHOLDER": "እባክዎ ሙሉ ስምዎን ያስገቡ"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "የሚታይ ስም",
+ "ERROR": "እባክዎ ትክክለኛ የሚታይ ስም ያስገቡ",
+ "PLACEHOLDER": "እባክዎ የሚታይ ስም ያስገቡ፣ ይህ በውይይቶች ውስጥ ይታያል"
},
"AVAILABILITY": {
- "LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "LABEL": "እገኝነት",
+ "STATUS": {
+ "ONLINE": "በመስመር ላይ",
+ "BUSY": "ተጨንቋል",
+ "OFFLINE": "ኦፍላይን"
+ },
+ "SET_AVAILABILITY_SUCCESS": "እድል በተሳካ ሁኔታ ተቀመጠ",
+ "SET_AVAILABILITY_ERROR": "እድል ማቅረብ አልተቻለም፣ እባክዎ እንደገና ይሞክሩ",
+ "IMPERSONATING_ERROR": "ተጠቃሚ ሲወክል እንደምትገኙ መቀየር አይቻልም"
},
"EMAIL": {
- "LABEL": "Your email address",
- "ERROR": "Please enter a valid email address",
- "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations"
+ "LABEL": "የእርስዎ ኢሜይል አድራሻ",
+ "ERROR": "እባክዎ ትክክለኛ ኢሜይል አድራሻ ያስገቡ",
+ "PLACEHOLDER": "እባክዎ ኢሜይል አድራሻዎን ያስገቡ፣ ይህ በውይይቶች ውስጥ ይታያል"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "የአሁኑ የይለፍ ቃል",
+ "ERROR": "እባክዎ የአሁኑን የይለፍ ቃል ያስገቡ",
+ "PLACEHOLDER": "እባክዎ የአሁኑን የይለፍ ቃል ያስገቡ"
},
"PASSWORD": {
- "LABEL": "New password",
- "ERROR": "Please enter a password of length 6 or more",
- "PLACEHOLDER": "Please enter a new password"
+ "LABEL": "አዲስ የይለፍ ቃል",
+ "ERROR": "እባክዎ 6 ወይም ከዚያ በላይ የሆነ የይለፍ ቃል ያስገቡ",
+ "PLACEHOLDER": "እባክዎ አዲስ የይለፍ ቃል ያስገቡ"
},
"PASSWORD_CONFIRMATION": {
- "LABEL": "Confirm new password",
- "ERROR": "Confirm password should match the password",
- "PLACEHOLDER": "Please re-enter your new password"
+ "LABEL": "አዲሱን የይለፍ ቃል አረጋግጥ",
+ "ERROR": "የይለፍ ቃል አረጋግጥ ከየይለፍ ቃል ጋር መሳሰሉ አለበት",
+ "PLACEHOLDER": "እባክዎ አዲሱን የይለፍ ቃል ደግሞ ያስገቡ"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
- "SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "CHANGE_AVAILABILITY_STATUS": "ቀይር",
+ "CHANGE_ACCOUNTS": "መለወጥ መለያ",
+ "SWITCH_ACCOUNT": "መለወጥ አካውንት",
+ "CONTACT_SUPPORT": "ወደ ድጋፍ ይገናኙ",
+ "SELECTOR_SUBTITLE": "ከታች ያሉት ዝርዝሮች መካከል አካውንት ይምረጡ",
+ "PROFILE_SETTINGS": "የመገለጫ ቅንብሮች",
+ "YEAR_IN_REVIEW": "ዓመት በእይታ",
+ "KEYBOARD_SHORTCUTS": "የኪቦርድ አጭር መንገዶች",
+ "APPEARANCE": "መልእክት መቀየሪያ",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin ኮንሶል",
+ "DOCS": "ሰነዶችን አንብብ",
+ "CHANGELOG": "የለውጥ መዝገብ",
+ "LOGOUT": "ውጣ"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "days trial remaining.",
- "TRAIL_BUTTON": "Buy Now",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "TRIAL_MESSAGE": "የቀረው የሙከራ ቀናት።.",
+ "TRAIL_BUTTON": "አሁን ግዢ",
+ "DELETED_USER": "የተሰረዘ ተጠቃሚ",
+ "EMAIL_VERIFICATION_PENDING": "እርስዎ ኢሜይል አድራሻዎን እስካልማረኩ ይመስላል። እባክዎ ለማረጋገጫ ኢሜይል ኢንቦክስዎን ይፈትሹ።.",
+ "RESEND_VERIFICATION_MAIL": "የማረጋገጫ ኢሜል እንደገና ላክ",
+ "EMAIL_VERIFICATION_SENT": "የማረጋገጫ ኢሜይል ተልኳል። እባክዎ ኢንቦክስዎን ይፈትሹ።.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "መለያ ተሰርዟል",
+ "MESSAGE": "መለያዎ ተሰናክሏል። ለተጨማሪ መረጃ እባክዎ ወደ ድጋፍ ቡድን ይደውሉ።."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "መለያ አልተገኘም",
+ "MESSAGE_CLOUD": "አሁን በማንኛውም መለያ አካል አይደሉም። ይህ ስህተት እንደሆነ አስባለዎት እባክዎ ወደ ድጋፍ ቡድናችን ይደውሉ።.",
+ "MESSAGE_SELF_HOSTED": "አሁን በማንኛውም መለያ አካል አይደሉም። እባክዎ ወደ አስተዳደር ተገናኝ።.",
+ "LOGOUT": "ውጣ"
}
},
"COMPONENTS": {
"CODE": {
- "BUTTON_TEXT": "Copy",
- "CODEPEN": "Open in CodePen",
- "COPY_SUCCESSFUL": "Copied to clipboard"
+ "BUTTON_TEXT": "ቅዳ",
+ "CODEPEN": "በCodePen ይክፈቱ",
+ "COPY_SUCCESSFUL": "ወደ ክሊፖርድ ተቀይሯል"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "ተጨማሪ አሳይ",
+ "SHOW_LESS": "ትንሽ አሳይ"
},
"FILE_BUBBLE": {
- "DOWNLOAD": "Download",
- "UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "DOWNLOAD": "አውርድ",
+ "UPLOADING": "በማስገባት ላይ...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "ይህ ታሪክ ከአሁን በኋላ አይገኝም።.",
+ "INSTAGRAM_STORY_REPLY": "ለታሪክዎ መልሰዋል፡:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "በካርታ ይመልከቱ"
},
"FORM_BUBBLE": {
- "SUBMIT": "Submit"
+ "SUBMIT": "አስገባ"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "ይህ ምስል ከአሁን በኋላ አይገኝም።.",
+ "LOADING_FAILED": "መጫን አልተሳካም"
}
},
- "CONFIRM_EMAIL": "Verifying...",
+ "CONFIRM_EMAIL": "በማረጋገጥ ላይ...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Add Inbox"
+ "NEW_INBOX": "ኢንቦክስ አክል"
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
- "REPORTS": "Reports",
- "SETTINGS": "Settings",
- "CONTACTS": "Contacts",
- "HOME": "Home",
- "AGENTS": "Agents",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Inboxes",
- "NOTIFICATIONS": "Notifications",
- "CANNED_RESPONSES": "Canned Responses",
- "INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
- "ACCOUNT_SETTINGS": "Account Settings",
- "APPLICATIONS": "Applications",
- "LABELS": "Labels",
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
- "REPORTS_CONVERSATION": "Conversations",
+ "NO_ITEMS": "ንጥሎች የሉም",
+ "CURRENTLY_VIEWING_ACCOUNT": "አሁን ታያለህ፡:",
+ "SWITCH": "ቀይር",
+ "INBOX_VIEW": "የኢንቦክስ እይታ",
+ "CONVERSATIONS": "ውይይቶች",
+ "INBOX": "የእኔ ጥቅል ሰንድ",
+ "ALL_CONVERSATIONS": "ሁሉም ውይይቶች",
+ "MENTIONED_CONVERSATIONS": "ተጠቃሚ ማስታወሻዎች",
+ "PARTICIPATING_CONVERSATIONS": "ተሳታፊ",
+ "UNATTENDED_CONVERSATIONS": "ያልተጠበቀ",
+ "REPORTS": "ሪፖርቶች",
+ "SETTINGS": "ቅንብሮች",
+ "CONTACTS": "እውቂያዎች",
+ "ACTIVE": "ንቁ",
+ "COMPANIES": "ኩባንያዎች",
+ "ALL_COMPANIES": "ሁሉም ኩባንያዎች",
+ "CAPTAIN": "ካፕቴን",
+ "CAPTAIN_ASSISTANTS": "እርዳታ አገልጋዮች",
+ "CAPTAIN_DOCUMENTS": "ሰነዶች",
+ "CAPTAIN_RESPONSES": "ተደጋጋሚ ጥያቄዎች",
+ "CAPTAIN_TOOLS": "መሣሪያዎች",
+ "CAPTAIN_SCENARIOS": "ሁኔታዎች",
+ "CAPTAIN_PLAYGROUND": "መጫወቻ ቦታ",
+ "CAPTAIN_INBOXES": "ኢንቦክሶች",
+ "CAPTAIN_SETTINGS": "ቅንብሮች",
+ "HOME": "መነሻ",
+ "AGENTS": "ወኪሎች",
+ "AGENT_BOTS": "ቦቶች",
+ "AUDIT_LOGS": "የአዲስ ምዝገባ መዝገቦች",
+ "INBOXES": "ኢንቦክሶች",
+ "NOTIFICATIONS": "ማስታወቂያዎች",
+ "CANNED_RESPONSES": "ተዘጋጅቷ የሆነ መልስ",
+ "INTEGRATIONS": "አካባቢዎች",
+ "PROFILE_SETTINGS": "የመገለጫ ቅንብሮች",
+ "ACCOUNT_SETTINGS": "የመለያ ቅንብሮች",
+ "APPLICATIONS": "መተግበሪያዎች",
+ "LABELS": "መለያዎች",
+ "CUSTOM_ATTRIBUTES": "ብለይ ባለባት ባህሪያት",
+ "AUTOMATION": "ማስኬድ",
+ "MACROS": "ማክሮዎች",
+ "TEAMS": "ቡድኖች",
+ "BILLING": "ክፍያ",
+ "CUSTOM_VIEWS_FOLDER": "ፎልደሮች",
+ "CUSTOM_VIEWS_SEGMENTS": "ክፍሎች",
+ "ALL_CONTACTS": "ሁሉም እውቂያዎች",
+ "TAGGED_WITH": "በዚህ ተለይተዋል",
+ "NEW_LABEL": "አዲስ መለያ",
+ "NEW_TEAM": "አዲስ ቡድን",
+ "NEW_INBOX": "አዲስ ጣቢያ",
+ "REPORTS_CONVERSATION": "ውይይቶች",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
- "REPORTS_AGENT": "Agents",
- "REPORTS_LABEL": "Labels",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "LIVE_CHAT": "ቀጥታ ውይይት",
+ "SMS": "ኤስኤምኤስ",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "የዘመናዊ ማስታወቂያዎች",
+ "ONGOING": "በሂደት ላይ",
+ "ONE_OFF": "አንድ ጊዜ ብቻ",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "ቦት",
+ "REPORTS_AGENT": "ወኪሎች",
+ "REPORTS_LABEL": "መለያዎች",
+ "REPORTS_INBOX": "ጣቢያ",
+ "REPORTS_TEAM": "ቡድን",
+ "AGENT_ASSIGNMENT": "የወኪል መሰጠት",
+ "SET_AVAILABILITY_TITLE": "ራስህን እንደ ማን ያውቅ",
+ "SET_YOUR_AVAILABILITY": "እንደምትገኙ ያስቀመጡ",
"SLA": "SLA",
- "BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "CUSTOM_ROLES": "ብለይ ሚናዎች",
+ "BETA": "ቤታ",
+ "REPORTS_OVERVIEW": "አጠቃላይ እይታ",
+ "REAUTHORIZE": "የኢንቦክስ ግንኙነትዎ ተዘርግቷል፣ እባክዎ እንደገና ይገናኙ\n ለመቀጠል መልእክቶችን ለመቀበልና ለመላክ",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "የእርዳታ ማዕከል",
+ "ARTICLES": "ሰነዶች",
+ "CATEGORIES": "ምድቦች",
+ "LOCALES": "ቋንቋዎች",
+ "SETTINGS": "ቅንብሮች"
},
+ "CHANNELS": "ቻናሎች",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "ራስሰር ኦፍላይን አስመልክት",
+ "INFO_TEXT": "ሲስተሙ እርስዎን በመተግበሪያው ወይም በዳሽቦርድ ሳትጠቀሙ ራስሰር እንዲሆኑ ያደርጉ።.",
+ "INFO_SHORT": "ሲስተሙ ሲሳለቅ ራስሰር እንዲሆኑ ያደርጉ።."
},
- "DOCS": "Read docs"
+ "DOCS": "ሰነዶችን አንብቡ",
+ "SECURITY": "ደህንነት",
+ "CAPTAIN_AI": "ካፕቴን",
+ "CONVERSATION_WORKFLOW": "የውይይት ስርዓት"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "የCaptain ቅንብሮች",
+ "DESCRIPTION": "ለCaptain የAI ሞዴሎችና ባለስልጣናት ያስተካክሉ። Captain በክሬዲት መሠረት ክፍያ ያደርጋል፣ ለእያንዳንዱ እርምጃ በሞዴሉ መሠረት ክሬዲቶች ይከፈላሉ።.",
+ "LOADING": "የCaptain ቅንብር እየጫነ ነው...",
+ "LINK_TEXT": "ስለ Captain ክሬዲቶች ተጨማሪ ያውቁ",
+ "NOT_ENABLED": "Captain ለመለያዎ አልተነሳሳም። ለCaptain ባለስልጣናት ባለስልጣናት እቅድዎን ያሻሽሉ።.",
+ "MODEL_CONFIG": {
+ "TITLE": "የሞዴል ቅንብር",
+ "DESCRIPTION": "ለተለያዩ ባለስልጣናት AI ሞዴሎችን ይምረጡ።.",
+ "SELECT_MODEL": "ሞዴል ይምረጡ",
+ "CREDITS_PER_MESSAGE": "{credits} ክሬዲት/መልእክት",
+ "COMING_SOON": "በቅርብ ይመጣል",
+ "EDITOR": {
+ "TITLE": "የአርታዕት ባህሪያት",
+ "DESCRIPTION": "በመልእክት አርታዕትዎ ውስጥ ብልህ አዘጋጅ፣ የሰውነት ስህተት ማስተካከያዎች፣ የድምፅ ማስተካከያዎችና የይዘት ማሻሻያ ያቀርባል።."
+ },
+ "ASSISTANT": {
+ "TITLE": "አገልጋይ",
+ "DESCRIPTION": "ለደንበኞች ግንኙነቶች ራስ-ሰር መልሶች፣ የውይይት ማጠቃለያዎችና ብልህ የመልስ ምክሮችን ያቀርባል።."
+ },
+ "COPILOT": {
+ "TITLE": "ኮ-ፓይሎት",
+ "DESCRIPTION": "በውይይቶች ወቅት በሕይወት የሚከናወኑ የሁኔታ ምክሮች፣ የእውቀት ቤት ምክሮችና ቀድሞ የተሰጡ እይታዎችን ያቀርባል።."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "ባህሪያት",
+ "DESCRIPTION": "የAI ኃይል ያላቸውን ባለስልጣናት አብራሪዎችን አንቀሳቅሱ ወይም ዝጋ።.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "የድምጽ ትርጉም",
+ "DESCRIPTION": "የድምፅ መልእክቶችና የጥሪ መዝገቦችን በራስሰር ወደ ሊቀ መለኪያ ጽሑፍ ይቀይሩ።."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "የእርዳታ ማዕከል ፍለጋ መደበኛ እና መረጃ ማውጫ",
+ "DESCRIPTION": "በእርዳታ ማዕከል ጽሑፍ ውስጥ ለማስፈለጊያ ፍለጋ ለማድረግ AI ይጠቀሙ።."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "የመለያ ምክር",
+ "DESCRIPTION": "በውይይት ውስጥ በይዘት ትንተናና በሁኔታ በመሠረት ተዛማጅ ሌብሎችና መለያዎችን በራስሰር ይጠቅሙ።.",
+ "MODEL_TITLE": "የመለያ ምክር ሞዴል",
+ "MODEL_DESCRIPTION": "ለውይይቶች ትንተናና ለተስማሚ መለያዎች ለማቅረብ የሚጠቀሙትን AI ሞዴል ይምረጡ"
+ }
+ },
+ "API": {
+ "SUCCESS": "የCaptain ቅንብሮች በተሳካ ሁኔታ ተሻሽለዋል።.",
+ "ERROR": "የCaptain ቅንብሮችን ማሻሻያ አልተሳካም። እባክዎ እንደገና ይሞክሩ።."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "ክፍያ",
+ "DESCRIPTION": "እዚህ ምዝገባዎን ያስተዳድሩ፣ እቅድዎን ያሻሽሉ እና ለቡድንዎ ተጨማሪ ያግኙ።.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "የአሁኑ እቅድ",
+ "PLAN_NOTE": "አሁን በ**{plan}** እቅድ እና በ**{quantity}** ፈቃዶች ተመዝግበዋል",
+ "SEAT_COUNT": "የቦታ ብዛት",
+ "RENEWS_ON": "በዚህ ቀን ይደገፋል"
},
+ "VIEW_PRICING": "ዋጋዎችን እይ",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "እቅድዎን አስተዳደር",
+ "DESCRIPTION": "ያለፉትን የክፍያ ቅጾችዎን ይመልከቱ፣ የክፍያ ዝርዝሮችዎን ያርትዙ ወይም ምዝገባዎን ይቋረጡ።.",
+ "BUTTON_TXT": "ወደ ክፍያ መድረክ ሂድ"
+ },
+ "CAPTAIN": {
+ "TITLE": "ካፕቴን",
+ "DESCRIPTION": "ለCaptain AI አጠቃቀምና ክሬዲቶችን ያስተዳድሩ።.",
+ "BUTTON_TXT": "ተጨማሪ ክሬዲቶች ግዙ",
+ "DOCUMENTS": "ሰነዶች",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain በነፃ እቅድ ላይ አይገኝም፣ አሁን ያሻሽሉ እና ለአስስታንት፣ ኮፓይሎት እና ሌሎች ያግኙ።.",
+ "REFRESH_CREDITS": "አዘምን"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
- "BUTTON_TXT": "Chat with us"
+ "TITLE": "እርዳታ ይፈልጋሉ?",
+ "DESCRIPTION": "በክፍያ ጉዳዮች ተጋግሞ ነዎት? እኛ እንረዳለን።.",
+ "BUTTON_TXT": "ከእኛ ጋር ይወያዩ"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "የክፍያ መለያዎ እየተቀየረ ነው። እባክዎ ገፅታውን ያዘምኑ እና እንደገና ይሞክሩ።.",
+ "TOPUP": {
+ "BUY_CREDITS": "ተጨማሪ ክሬዲቶች ግዛ",
+ "MODAL_TITLE": "AI ክሬዲቶች ግዛ",
+ "MODAL_DESCRIPTION": "Captain AI ለተጨማሪ ክሬዲቶች ግዛ.",
+ "CREDITS": "ክሬዲቶች",
+ "ONE_TIME": "አንድ ጊዜ",
+ "POPULAR": "በጣም ተወዳጅ",
+ "NOTE_TITLE": "ማስታወሻ:",
+ "NOTE_DESCRIPTION": "ክሬዲቶች በአንድ ጊዜ ይጨምራሉ እና በ6 ወራት ውስጥ ይሟሉ። ክሬዲቶችን ለመጠቀም ንብረት ያለው ስብስብ አለበት። የተገዙ ክሬዲቶች ከወርሃዊ እቅድዎ ክሬዲቶች በኋላ ይበዛሉ።",
+ "CANCEL": "ሰርዝ",
+ "PURCHASE": "ክሬዲቶችን ግዛ",
+ "LOADING": "አማራጮች እየጫኑ ነው...",
+ "FETCH_ERROR": "የክሬዲት አማራጮችን ማስገባት አልተሳካም። እባክዎ እንደገና ይሞክሩ።.",
+ "PURCHASE_ERROR": "ግዢውን ማካሄድ አልተሳካም። እባክዎ እንደገና ይሞክሩ።.",
+ "PURCHASE_SUCCESS": "በተሳካ ሁኔታ {credits} ክሬዲቶች ወደ አካውንትዎ ተጨምሯል",
+ "CONFIRM": {
+ "TITLE": "ግዢውን አረጋግጥ",
+ "DESCRIPTION": "ለ{amount} {credits} ክሬዲቶች ማግዘት እየተዘጋጀ ነዎት።.",
+ "INSTANT_DEDUCTION_NOTE": "የተቀመጠው ካርድዎ በማረጋገጫ ጊዜ በአስቸኳይ ይከፈላል።.",
+ "GO_BACK": "ተመለስ",
+ "CONFIRM_PURCHASE": "ግዢውን አረጋግጥ"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "ደህንነት",
+ "DESCRIPTION": "የመለያዎን ደህንነት ቅንብሮች ያስተዳድሩ።.",
+ "LINK_TEXT": "ስለ SAML SSO ተጨማሪ ያውቁ",
+ "SAML_DISABLED_MESSAGE": "SAML SSO አሁን ተሰናክሏል። እባክዎ ይህን ባለስልጣንዎን ለማንቀሳቀስ ያነጋግሩ።.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "ለመለያዎ SAML አንድ ምስል መግቢያ ያስተካክሉ። ተጠቃሚዎች በኢሜይል/የይለፍ ቃል መጠቀም በመክለት በመለያ አቅራቢዎ ይማረካሉ።.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - ይህን አድራሻ በIdP ውስጥ እንደ SAML መልሶች መድረሻ ያስተካክሉ"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "የSAML ማረጋገጫ ጥያቶች ይላካሉበት አድራሻ",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "በPEM ቅርጸ ተከታታይ የሚፈረስ ፊርማ ሰነድ",
+ "HELP": "ከመለያ አቅራቢዎ የሚሰጥ ህዝብ ፊርማ ሰነድ ለSAML መልሶች ማረጋገጥ ይጠቅማል",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "እጅ ማስረጃ",
+ "TOOLTIP": "የማረጋገጫ ማስታወቂያ - በIdP ቅንብርዎ ውስጥ ማረጋገጫውን ለማረጋገጥ ይጠቀሙበት"
+ },
+ "COPY_SUCCESS": "ወደ ክሊፕቦርድ ተቀይሯል",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP አካል መለያ",
+ "HELP": "ለዚህ መተግበሪያ እንደ አገልግሎት አቅራቢ የተለየ መለያ (ራስሰር የተፈጠረ) ነው።.",
+ "TOOLTIP": "እንደ Service Provider ለChatwoot የተለየ መለያ - በIdP ቅንብርዎ ውስጥ ይህን ያስተካክሉ"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "የመለያ አቅራቢ አካል መለያ",
+ "HELP": "ለመለያ አቅራቢዎ የተለየ መለያ (ብዙውን ጊዜ በIdP ቅንብር ውስጥ ይገኛል)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "የSAML ቅንብሮችን ያዘምኑ",
+ "API": {
+ "SUCCESS": "የSAML ቅንብሮች በተሳካ ሁኔታ ተዘምኗል",
+ "ERROR": "የSAML ቅንብሮችን ማዘመን አልተሳካም",
+ "ERROR_LOADING": "የSAML ቅንብሮችን ማስገባት አልተሳካም",
+ "DISABLED": "የSAML ቅንብሮች በተሳካ ሁኔታ ተሰናክሏል"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, የመለያ አቅራቢ አካል መለያ, እና ፊርማ አስፈላጊ መስኮች ናቸው",
+ "SSO_URL_ERROR": "እባክዎ ትክክለኛ የSSO URL ያስገቡ",
+ "CERTIFICATE_ERROR": "ፊርማ አስፈላጊ ነው",
+ "IDP_ENTITY_ID_ERROR": "የመለያ አቅራቢ አካል መለያ አስፈላጊ ነው"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "የSAML SSO ባለስልጣን ባለስልጣናት እቅዶች ውስጥ ብቻ ይገኛል።.",
+ "UPGRADE_PROMPT": "ለSAML አንድ ምስል መግቢያና ሌሎች የደህንነት ባለስልጣናት ባለስልጣናት ባለስልጣን እቅድ ያሻሽሉ።.",
+ "ASK_ADMIN": "እባክዎ ለማሻሻያ ወደ አስተዳደር ተገናኝ።."
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO ለማንቀሳቀስ ይሻሉ",
+ "AVAILABLE_ON": "የSAML SSO ባለስልጣን ባለስልጣናት እቅዶች ውስጥ ብቻ ይገኛል።.",
+ "UPGRADE_PROMPT": "ለSAML አንድ ምስል መግቢያና ሌሎች የተሻለ ባለስልጣናት ባለስልጣናት እቅድ ያሻሽሉ።.",
+ "UPGRADE_NOW": "አሁን ይሻሉ",
+ "CANCEL_ANYTIME": "እቅድዎን በማንኛውም ጊዜ መቀየር ወይም መሰረዝ ይችላሉ"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "የSAML አባላት ማቀናበሪያ",
+ "DESCRIPTION": "የሚከተሉት የአባላት ማቀናበሪያዎች በመለያ አቅራቢዎ ውስጥ መቅነት አለበት"
+ },
+ "INFO_SECTION": {
+ "TITLE": "የአገልግሎት አቅራቢ መረጃ",
+ "TOOLTIP": "እነዚህን እሴቶች ቅድሚያ በመለያ አቅራቢዎ ውስጥ ለSAML ግንኙነት ያስተካክሉ"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "የውይይት ስርዓቶች",
+ "DESCRIPTION": "ለውይይት መፍትሄ ህጎችና የሚያስፈልጉ መስኮች ያስተካክሉ።."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "በመፍትሄ ላይ የሚያስፈልጉ መለኪያዎች",
+ "DESCRIPTION": "ሲያስተካክሉ ወኪሎች እነዚህን ባህሪያት ካላሉ እንዲሙሉ ይጠይቃሉ።.",
+ "NO_ATTRIBUTES": "እስካሁን መለኪያዎች አልተጨመሩም",
+ "ADD": {
+ "TITLE": "መለኪያዎችን አክል",
+ "SEARCH_PLACEHOLDER": "መለኪያዎችን ፈልግ"
+ },
+ "SAVE": {
+ "SUCCESS": "የሚያስፈልጉ መለኪያዎች ተሻሽለዋል",
+ "ERROR": "የሚያስፈልጉ መለኪያዎችን ማሻሻያ አልተሳካም፣ እባክህ እንደገና ይሞክሩ"
+ },
+ "MODAL": {
+ "TITLE": "ውይይት አስተካክል",
+ "DESCRIPTION": "እባክህ ይህን ውይይት ከማስተካከል በፊት የተለያዩ ባለሙያ መለኪያዎችን ይሙሉ",
+ "ACTIONS": {
+ "RESOLVE": "ውይይት አስተካክል",
+ "CANCEL": "ሰርዝ"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "ማስታወሻ ጻፍ...",
+ "NUMBER": "ቁጥር አስገባ",
+ "LINK": "አገናኝ አክል",
+ "DATE": "ቀን ምረጥ",
+ "LIST": "አማራጭ ይምረጡ"
+ },
+ "CHECKBOX": {
+ "YES": "አዎ",
+ "NO": "አይ"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "ለሚያስፈልጉ መለኪያዎች እቅድዎን ከፍ አድርጉ",
+ "AVAILABLE_ON": "የሚያስፈልጉ የውይይት ባህሪያት ባለስልጣንና ኢንተርፕራይዝ እቅዶች ላይ ይገኛል።.",
+ "UPGRADE_PROMPT": "ወደ እቅድዎ ያሻሽሉ እና ከውይይት መፍትሄ በፊት ወኪሎች የሚያስፈልጉትን ባህሪያት እንዲሙሉ ያደርጉ።.",
+ "UPGRADE_NOW": "አሁን ያሻሽሉ",
+ "CANCEL_ANYTIME": "እቅድዎን በማንኛውም ጊዜ ማሻሻል ወይም ማሰረዝ ይችላሉ"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "የሚያስፈልጉ የውይይት ባህሪያት በክፍያ እቅዶች ላይ ይገኛል።.",
+ "UPGRADE_PROMPT": "ወደ ክፍያ እቅድ ያሻሽሉ እና ከውይይት መፍትሄ በፊት የሚያስፈልጉትን ባህሪያት እንዲጠብቁ ያደርጉ።.",
+ "ASK_ADMIN": "እባክዎ ለማሻሻያ ወደ አስተዳደር ተገናኝ።."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "እንደሆነ! ማንኛውም Chatwoot መለያ አልተገኘም። እባክዎ ለመቀጠል አዲስ መለያ ይፍጠሩ።.",
+ "NEW_ACCOUNT": "አዲስ አካውንት",
+ "SELECTOR_SUBTITLE": "አዲስ አካውንት ፍጠር",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "አካውንት በተሳካ ሁኔታ ተፈጥሯል",
+ "EXIST_MESSAGE": "አካውንት አስቀድሞ አለ",
+ "ERROR_MESSAGE": "ከWoot አገልግሎት አልተገናኘም፣ እባክዎ በኋላ ደግመው ይሞክሩ"
},
"FORM": {
"NAME": {
- "LABEL": "Company Name",
- "PLACEHOLDER": "Wayne Enterprises"
+ "LABEL": "የኩባንያ ስም",
+ "PLACEHOLDER": "ዌይን ኢንተርፕራይዞች"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "አስገባ",
+ "CANCEL": "ሰርዝ"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "ሁሉንም አጭር መንገዶች ይመልከቱ",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "ውይይት ክፈት",
+ "RESOLVE_AND_NEXT": "ፍቺ አድርግ እና ወደ ቀጣይ እንቅስቃሴ ሂድ",
+ "NAVIGATE_DROPDOWN": "የዝርዝር ንጥሎችን አስተዋውቅ",
+ "RESOLVE_CONVERSATION": "ውይይት ፍቺ አድርግ",
+ "GO_TO_CONVERSATION_DASHBOARD": "ወደ ውይይት ዳሽቦርድ ሂድ",
+ "ADD_ATTACHMENT": "አባሪ አክል",
+ "GO_TO_CONTACTS_DASHBOARD": "ወደ እውቂያዎች ዳሽቦርድ ሂድ",
+ "TOGGLE_SIDEBAR": "አጠገብ መስቀል አለው",
+ "GO_TO_REPORTS_SIDEBAR": "ወደ ሪፖርቶች አጠገብ ሂድ",
+ "MOVE_TO_NEXT_TAB": "በውይይት ዝርዝር ውስጥ ወደ ቀጣይ ትር እንቅስቃሴ አድርግ",
+ "GO_TO_SETTINGS": "ወደ ቅንብሮች ሂድ",
+ "SWITCH_TO_PRIVATE_NOTE": "ወደ ግል ማስታወሻ ቀይር",
+ "SWITCH_TO_REPLY": "ወደ ምላሽ ቀይር",
+ "TOGGLE_SNOOZE_DROPDOWN": "የስኑዝ ዝርዝር አለው"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "የወኪል መሰጠት",
+ "DESCRIPTION": "የሥራ መጠን በተገቢ ሁኔታ ለመቆጣጠርና ውይይቶችን በኢንቦክሶችና ወኪሎች እንደ ሚያስፈልጋቸው ለማስመሰያ ፖሊሲዎችን ውሰዱ። እዚህ ተጨማሪ ያማሩ"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "የመሰጠት ፖሊሲ",
+ "DESCRIPTION": "በኢንቦክሶች ውስጥ ውይይቶች እንዴት እንደሚመደቡ ያስተዳድሩ።.",
+ "FEATURES": [
+ "በውይይቶች በተኩል ወይም በተገኝ ኃይል መሰጠት",
+ "ማንኛውም ወኪል እንዳይጭነቅ የፍትህ ስርዓቶችን ያክሉ",
+ "ኢንቦክሶችን ወደ ፖሊሲ ያክሉ - አንድ ፖሊሲ ለአንድ ኢንቦክስ"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "የወኪል ኃይል ፖሊሲ",
+ "DESCRIPTION": "ለወኪሎች የሥራ ጭነትን ያስተዳድሩ።.",
+ "FEATURES": [
+ "በኢንቦክስ ውስጥ ከፍተኛ የሆነ ውይይት ብዛት ውሰዱ",
+ "በመለያዎችና በጊዜ መሠረት ልዩ ልዩ ሁኔታዎች ያፍሩ",
+ "ወኪሎችን ወደ ፖሊሲ ያክሉ - አንድ ፖሊሲ ለአንድ ወኪል"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "የመሰጠት ፖሊሲ",
+ "CREATE_POLICY": "አዲስ ፖሊሲ"
+ },
+ "CARD": {
+ "ORDER": "ትዕዛዝ",
+ "PRIORITY": "ቅደም ተከተል",
+ "ACTIVE": "ንቁ",
+ "INACTIVE": "ያልተነሳ",
+ "POPOVER": "ተጨማሪ የተላከ ሳጥኖች",
+ "EDIT": "አርትዕ"
+ },
+ "NO_RECORDS_FOUND": "የማንደሪያ ፖሊሲዎች አልተገኙም"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "የማንደሪያ ፖሊሲ ፍጠር"
+ },
+ "CREATE_BUTTON": "ፖሊሲ ፍጠር",
+ "API": {
+ "SUCCESS_MESSAGE": "የማንደሪያ ፖሊሲ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "የማንደሪያ ፖሊሲ ማፍሰስ አልተሳካም",
+ "INBOX_LINKED": "ኢንቦክሱ ወደ ፖሊሲው ተጣራ"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "የማንደሪያ ፖሊሲ አርትዕ"
+ },
+ "EDIT_BUTTON": "ፖሊሲ አዘምን",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "ሳጥን አክል",
+ "DESCRIPTION": "{inboxName} ኢንቦክስ ከሌላ ፖሊሲ ጋር አስተሳሰብ አለው። ወደዚህ ፖሊሲ ለማስተላለፍ እርግጠኛ ነዎት? ከሌላው ፖሊሲ ይተወላል።.",
+ "CONFIRM_BUTTON_LABEL": "ቀጥል",
+ "CANCEL_BUTTON_LABEL": "ሰርዝ"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "ኢንቦክሱን ወደ ፖሊሲ ያጣሩ",
+ "DESCRIPTION": "ይህን ኢንቦክስ ወደ የሥራ መደብ ፖሊሲ ማጣራት ይፈልጋሉ?",
+ "LINK_BUTTON": "ኢንቦክሱን ያጣሩ",
+ "CANCEL_BUTTON": "ይዝጉ"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "የማንደሪያ ፖሊሲ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "የማንደሪያ ፖሊሲ ማሻሻያ አልተሳካም"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "ሳጥን ወደ ፖሊሲ በተሳካ ሁኔታ ታክሏል",
+ "ERROR_MESSAGE": "ሳጥን ወደ ፖሊሲ ማክለት አልተሳካም"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "ሳጥን ከፖሊሲ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ሳጥን ከፖሊሲ ማስወገድ አልተሳካም"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "የፖሊሲ ስም፡:",
+ "PLACEHOLDER": "የፖሊሲ ስም አስገባ"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ፡:",
+ "PLACEHOLDER": "መግለጫ አስገባ"
+ },
+ "STATUS": {
+ "LABEL": "ሁኔታ፡:",
+ "PLACEHOLDER": "ሁኔታ ይምረጡ",
+ "ACTIVE": "ፖሊሲ ንቁ ነው",
+ "INACTIVE": "ፖሊሲ ያልተነሳ ነው"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "የማንደሪያ ቅደም ተከተል",
+ "ROUND_ROBIN": {
+ "LABEL": "ዙር ዙር",
+ "DESCRIPTION": "ውይይቶችን በተመካከለ ሁኔታ በወኪሎች መካከል ያስመድቡ።."
+ },
+ "BALANCED": {
+ "LABEL": "ተመካከለ",
+ "DESCRIPTION": "ውይይቶችን በአሁን ያለው ክምችት መሠረት ያስመድቡ።.",
+ "PREMIUM_MESSAGE": "ለተመካከለ ምድብ እና የወኪል ክምችት አስተዳደር ለማግኘት ያሻሽሉ።.",
+ "PREMIUM_BADGE": "ፕሪሚየም"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "የማንደሪያ ቅደም ተከተል",
+ "EARLIEST_CREATED": {
+ "LABEL": "በጥንታዊነት የተፈጠረ",
+ "DESCRIPTION": "የመጀመሪያ የተፈጠረው ውይይት የመጀመሪያ ይመደብ።."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "በጥቂት ጊዜ የተጠበቀ",
+ "DESCRIPTION": "በጥቂት ጊዜ የቆየው ውይይት የመጀመሪያ ይመደብ።."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "የፍትህ እኩል ስርዓት ፖሊሲ",
+ "DESCRIPTION": "በአንድ የጊዜ መስክ ውስጥ ለአንድ ወኪል ሊመደቡ የሚችሉትን ከፍተኛ የውይይት ብዛት ያስቀመጡ እና አንድ ወኪል ከፍተኛ ጭነት እንዳይደርስበት ያስተካክሉ። ይህ የሚጠየቀው መስክ በነባሪ ሁኔታ በሰዓት 100 ውይይቶች ይሆናል።.",
+ "INPUT_MAX": "ከፍተኛ ያድርጉ",
+ "DURATION": "በእያንዳንዱ የወኪል ውይይቶች በ"
+ },
+ "INBOXES": {
+ "LABEL": "ተጨማሪ የተላከ ሳጥኖች",
+ "DESCRIPTION": "ለዚህ ፖሊሲ የሚሰሩ ኢንቦክሶችን ያክሉ።.",
+ "ADD_BUTTON": "ሳጥን አክል",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ሳጥኖችን ለመጨመር ፈልግና ምረጥ",
+ "ADD_BUTTON": "አክል"
+ },
+ "EMPTY_STATE": "ለዚህ ፖሊሲ ሳጥኖች አልተጨመሩም፣ መጀመር የሚፈልጉትን ሳጥን ያክሉ",
+ "API": {
+ "SUCCESS_MESSAGE": "ሳጥን በተሳካ ሁኔታ ወደ ፖሊሲ ታክሏል",
+ "ERROR_MESSAGE": "ሳጥን ወደ ፖሊሲ ማክለት አልተሳካም"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "የማንደሪያ ፖሊሲ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "የማንደሪያ ፖሊሲ ማጥፋት አልተሳካም"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "የወኪል ኃይል",
+ "CREATE_POLICY": "አዲስ ፖሊሲ"
+ },
+ "CARD": {
+ "POPOVER": "ተጨማሪ ወኪሎች",
+ "EDIT": "አርትዕ"
+ },
+ "NO_RECORDS_FOUND": "የወኪል ኃይል ፖሊሲዎች አልተገኙም"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "የወኪል ኃይል ፖሊሲ ፍጠር"
+ },
+ "CREATE_BUTTON": "ፖሊሲ ፍጠር",
+ "API": {
+ "SUCCESS_MESSAGE": "የወኪል ኃይል ፖሊሲ በተሳካ ሁኔታ ተፈጥሯል",
+ "ERROR_MESSAGE": "የወኪል ኃይል ፖሊሲ ማፍሰስ አልተሳካም"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "የወኪል ኃይል ፖሊሲ አርትዕ"
+ },
+ "EDIT_BUTTON": "ፖሊሲ አዘምን",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "ወኪል አክል",
+ "DESCRIPTION": "{agentName} ከሌላ ፖሊሲ ጋር አስተሳሰብ አለው። ወደዚህ ፖሊሲ ለማስተላለፍ እርግጠኛ ነዎት? ከሌላው ፖሊሲ ይተወላል።.",
+ "CONFIRM_BUTTON_LABEL": "ቀጥል",
+ "CANCEL_BUTTON_LABEL": "ሰርዝ"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "የወኪል ኃይል ፖሊሲ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "የወኪል ኃይል ፖሊሲ ማሻሻያ አልተሳካም"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "ወኪል ወደ ፖሊሲ በተሳካ ሁኔታ ታክሏል",
+ "ERROR_MESSAGE": "ወኪል ወደ ፖሊሲ ማክለት አልተሳካም"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "ወኪል ከፖሊሲ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "ከፖሊሲው የወኪሉን ማስወገድ አልተሳካም"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "የኢንቦክስ ገደብ በተሳካ ሁኔታ ታክሏል",
+ "ERROR_MESSAGE": "የኢንቦክስ ገደብ ማክሰኞ አልተሳካም"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "የኢንቦክስ ገደብ በተሳካ ሁኔታ ተሻሽሏል",
+ "ERROR_MESSAGE": "የኢንቦክስ ገደብ ማሻሻያ አልተሳካም"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "የኢንቦክስ ገደብ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "የኢንቦክስ ገደብ ማስወገድ አልተሳካም"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "የፖሊሲ ስም፡:",
+ "PLACEHOLDER": "የፖሊሲውን ስም ያስገቡ"
+ },
+ "DESCRIPTION": {
+ "LABEL": "መግለጫ፡:",
+ "PLACEHOLDER": "መግለጫ ያስገቡ"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "የኢንቦክስ ክልል አገዛዝ",
+ "ADD_BUTTON": "ኢንቦክስ ያክሉ",
+ "FIELD": {
+ "SELECT_INBOX": "ኢንቦክስ ይምረጡ",
+ "MAX_CONVERSATIONS": "ከፍተኛ ውይይቶች",
+ "SET_LIMIT": "ክልል ያድርጉ"
+ },
+ "EMPTY_STATE": "የኢንቦክስ ክልል አልተደረገም"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "የማስወገድ ህጎች",
+ "DESCRIPTION": "የሚከተሉትን ሁኔታዎች የሚያሟሉ ውይይቶች ወኪሉን አይቀርቡም",
+ "TAGS": {
+ "LABEL": "በተለይ ሌብሎች የተሰየሙ ውይይቶችን አስወግዱ",
+ "ADD_TAG": "ሌብል ያክሉ",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ሌብሎችን ለመጨመር ይፈልጉና ይምረጡ"
+ },
+ "EMPTY_STATE": "ለዚህ ፖሊሲ ምንም መለያዎች አልተጨመሩም።."
+ },
+ "DURATION": {
+ "LABEL": "ከተወሰነ ጊዜ በላይ ያሉ ውይይቶችን አስወግዱ",
+ "PLACEHOLDER": "ጊዜ ያድርጉ"
+ }
+ },
+ "USERS": {
+ "LABEL": "የተመደቡ ወኪሎች",
+ "DESCRIPTION": "ለዚህ ፖሊሲ የሚሰሩ ወኪሎችን ያክሉ።.",
+ "ADD_BUTTON": "ወኪል ያክሉ",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ወኪሎችን ለመጨመር ይፈልጉና ይምረጡ",
+ "ADD_BUTTON": "አክል"
+ },
+ "EMPTY_STATE": "ወኪሎች አልተከለከሉም",
+ "API": {
+ "SUCCESS_MESSAGE": "ወኪሉ በተሳካ ሁኔታ ወደ ፖሊሲው ተከልክሏል",
+ "ERROR_MESSAGE": "ወኪሉን ወደ ፖሊሲ ማክለት አልተሳካም"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "የወኪል ኃይል ፖሊሲ በተሳካ ሁኔታ ተሰርዟል",
+ "ERROR_MESSAGE": "የወኪል ኃይል ፖሊሲ ማጥፋት አልተሳካም"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "ፖሊሲ ሰርዝ",
+ "DESCRIPTION": "ይህን ፖሊሲ ማጥፋት እንደምትፈልጉ እርግጠኛ ነዎት? ይህ እርምጃ አይተካልም።.",
+ "CONFIRM_BUTTON_LABEL": "ሰርዝ",
+ "CANCEL_BUTTON_LABEL": "ሰርዝ"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/signup.json b/app/javascript/dashboard/i18n/locale/am/signup.json
index 1ad4865ff..4cca4136d 100644
--- a/app/javascript/dashboard/i18n/locale/am/signup.json
+++ b/app/javascript/dashboard/i18n/locale/am/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address."
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short.",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character."
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
- "ERROR": "Password doesnot match."
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "የማረጋገጫ ኢሜል እንደገና ላክ",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/sla.json b/app/javascript/dashboard/i18n/locale/am/sla.json
index 806746b75..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/am/sla.json
+++ b/app/javascript/dashboard/i18n/locale/am/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/am/snooze.json b/app/javascript/dashboard/i18n/locale/am/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/am/teamsSettings.json b/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
index f9ecaaaae..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/am/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/am/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/am/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/am/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/am/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/am/yearInReview.json b/app/javascript/dashboard/i18n/locale/am/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/am/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json
index a637a6ec7..92a5a0a4c 100644
--- a/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ar/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
"TITLE": "تصفية المحادثات",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
- "SUBMIT_BUTTON_LABEL": "تطبيق عامل التصفية",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "SUBTITLE": "أضف عوامل التصفية أدناه واضغط على 'تطبيق التصفيات' لتجنب الفوضى في المحادثات.",
+ "EDIT_CUSTOM_FILTER": "تعديل المجلد",
+ "CUSTOM_VIEWS_SUBTITLE": "أضف أو أزل تصفيات وقم بتحديث المجلد الخاص بك.",
+ "ADD_NEW_FILTER": "إضافة تصفية",
+ "FILTER_DELETE_ERROR": "عذرًا، يبدو أننا لا نستطيع حفظ أي شيء! يرجى إضافة تصفية واحدة على الأقل ليتم الحفظ.",
+ "SUBMIT_BUTTON_LABEL": "تطبيق التصفيات",
+ "UPDATE_BUTTON_LABEL": "تحديث المجلد",
"CANCEL_BUTTON_LABEL": "إلغاء",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
+ "CLEAR_BUTTON_LABEL": "مسح التصفيات",
+ "FOLDER_LABEL": "اسم المجلد",
+ "FOLDER_QUERY_LABEL": "استعلام المجلد",
"EMPTY_VALUE_ERROR": "القيمة مطلوبة.",
"TOOLTIP_LABEL": "تصفية المحادثات",
"QUERY_DROPDOWN_LABELS": {
"AND": "و",
"OR": "أو"
},
+ "INPUT_PLACEHOLDER": "أدخل القيمة",
"OPERATOR_LABELS": {
"equal_to": "يساوي",
"not_equal_to": "لا يساوي",
- "contains": "يحتوي",
"does_not_contain": "لا يحتوي",
"is_present": "موجود",
"is_not_present": "غير موجود",
- "is_greater_than": "هو أكبر من",
- "is_less_than": "هو أقل من",
+ "is_greater_than": "أكبر من",
+ "is_less_than": "أقل من",
"days_before": "قبل x أيام",
- "starts_with": "يبدأ بـ"
+ "starts_with": "يبدأ بـ",
+ "equalTo": "يساوي",
+ "notEqualTo": "لا يساوي",
+ "contains": "يحتوي",
+ "doesNotContain": "لا يحتوي",
+ "isPresent": "موجود",
+ "isNotPresent": "غير موجود",
+ "isGreaterThan": "أكبر من",
+ "isLessThan": "هو أقل من",
+ "daysBefore": "قبل x أيام",
+ "startsWith": "يبدأ بـ"
},
"ATTRIBUTE_LABELS": {
"TRUE": "صحيح",
@@ -36,66 +46,72 @@
},
"ATTRIBUTES": {
"STATUS": "الحالة",
- "ASSIGNEE_NAME": "Assignee name",
+ "ASSIGNEE_NAME": "اسم المكلَّف",
"INBOX_NAME": "اسم صندوق الوارد",
"TEAM_NAME": "اسم الفريق",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "CONVERSATION_IDENTIFIER": "معرف المحادثة",
+ "CAMPAIGN_NAME": "اسم الحملة",
"LABELS": "الوسوم",
- "BROWSER_LANGUAGE": "Browser language",
+ "BROWSER_LANGUAGE": "لغة المتصفح",
"PRIORITY": "الأولوية",
- "COUNTRY_NAME": "Country name",
+ "COUNTRY_NAME": "اسم الدولة",
"REFERER_LINK": "رابط المرجع",
"CUSTOM_ATTRIBUTE_LIST": "القائمة",
"CUSTOM_ATTRIBUTE_TEXT": "النص",
"CUSTOM_ATTRIBUTE_NUMBER": "العدد",
"CUSTOM_ATTRIBUTE_LINK": "الرابط",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "مربع",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "خانة الاختيار",
"CREATED_AT": "تم إنشاؤها في",
- "LAST_ACTIVITY": "النشاط الأخير"
+ "LAST_ACTIVITY": "آخر نشاط"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "القيمة مطلوبة",
+ "ATTRIBUTE_KEY_REQUIRED": "مفتاح الخاصية مطلوب",
+ "FILTER_OPERATOR_REQUIRED": "عامل التصفية مطلوب",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "القيمة يجب أن تكون بين 1 و 998"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "التصفيات القياسية",
+ "ADDITIONAL_FILTERS": "التصفيات الإضافية",
+ "CUSTOM_ATTRIBUTES": "الخصائص المخصصة"
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "هل تريد حفظ هذا الفلتر؟",
- "LABEL": "تسمية هذا الفلتر",
- "PLACEHOLDER": "Name your filter to refer it later.",
+ "TITLE": "هل تريد حفظ هذه التصفية؟",
+ "LABEL": "تسمية هذه التصفية",
+ "PLACEHOLDER": "قم بتسمية التصفية لتتمكن من الرجوع إليه لاحقًا.",
"ERROR_MESSAGE": "الاسم مطلوب.",
- "SAVE_BUTTON": "حفظ الفلتر",
+ "SAVE_BUTTON": "حفظ التصفية",
"CANCEL_BUTTON": "إلغاء",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "تم إنشاء طريقة عرض مخصصة بنجاح.",
- "ERROR_MESSAGE": "خطأ أثناء إنشاء طريقة عرض مخصصة."
+ "SUCCESS_MESSAGE": "تم إنشاء المجلد بنجاح.",
+ "ERROR_MESSAGE": "حدث خطأ أثناء إنشاء المجلد."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "تم إنشاء طريقة عرض مخصصة بنجاح.",
- "ERROR_MESSAGE": "خطأ أثناء إنشاء طريقة عرض مخصصة."
+ "SUCCESS_MESSAGE": "تم إنشاء القسم بنجاح.",
+ "ERROR_MESSAGE": "حدث خطأ أثناء إنشاء القسم."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "تحرير المجلد"
},
"DELETE": {
- "DELETE_BUTTON": "حذف الفلتر",
+ "DELETE_BUTTON": "حذف التصفية",
"MODAL": {
"CONFIRM": {
"TITLE": "تأكيد الحذف",
- "MESSAGE": "هل أنت متأكد من حذف الفلتر ",
- "YES": "Yes, delete",
+ "MESSAGE": "هل أنت متأكد من حذف التصفية ",
+ "YES": "نعم، احذف",
"NO": "لا، احتفظ به"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "تم حذف طريقة عرض مخصصة بنجاح.",
+ "SUCCESS_MESSAGE": "تم حذف المجلد بنجاح.",
"ERROR_MESSAGE": "حدث خطأ أثناء حذف المجلد."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "تم حذف العرض المخصص بنجاح.",
- "ERROR_MESSAGE": "حدث خطأ أثناء حذف طريقة عرض مخصصة."
+ "SUCCESS_MESSAGE": "تم حذف القسم بنجاح.",
+ "ERROR_MESSAGE": "حدث خطأ أثناء حذف القسم."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/agentBots.json b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
index 358238827..92fa1351d 100644
--- a/app/javascript/dashboard/i18n/locale/ar/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ar/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
- "HEADER": "Bots",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "اختر الروبوت",
+ "DESC": "قم بتعيين روبوت لصندوق الوارد الخاص بك. يمكنهم التعامل مع المحادثات الأولية ونقلها إلى وكيل مباشر عند الضرورة.",
"SUBMIT": "تحديث",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "قطع اتصال الروبوت",
+ "SUCCESS_MESSAGE": "تم تحديث الروبوت بنجاح.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "تم فصل الروبوت بنجاح.",
+ "ERROR_MESSAGE": "تعذر تحديث الروبوت. يرجى المحاولة مرة أخرى.",
+ "DISCONNECTED_ERROR_MESSAGE": "تعذر فصل الروبوت. يرجى المحاولة مرة أخرى.",
+ "SELECT_PLACEHOLDER": "اختر الروبوت"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "إلغاء",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "تمت إضافة الروبوت بنجاح.",
+ "ERROR_MESSAGE": "تعذر إضافة الروبوت. يرجى المحاولة مرة أخرى لاحقًا."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "جار جلب الروبوتات...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "رابط Webhook",
+ "ACTIONS": "الإجراءات"
+ }
},
"DELETE": {
"BUTTON_TEXT": "حذف",
- "TITLE": "Delete bot",
- "SUBMIT": "حذف",
- "CANCEL_BUTTON_TEXT": "إلغاء",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "TITLE": "حذف الروبوت",
+ "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."
+ "SUCCESS_MESSAGE": "تم حذف الروبوت بنجاح.",
+ "ERROR_MESSAGE": "تعذر حذف الروبوت. يرجى المحاولة مرة أخرى."
}
},
"EDIT": {
"BUTTON_TEXT": "تعديل",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "إلغاء",
+ "TITLE": "تعديل الروبوت",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "تم تحديث الروبوت بنجاح.",
+ "ERROR_MESSAGE": "تعذر تحديث الروبوت. يرجى المحاولة مرة أخرى."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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": "اسم الروبوت",
+ "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"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
index c6a983179..a82cbf859 100644
--- a/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/agentMgmt.json
@@ -1,54 +1,57 @@
{
"AGENT_MGMT": {
- "HEADER": "موظف الدعم",
- "HEADER_BTN_TXT": "إضافة موظف",
- "LOADING": "جار جلب قائمة الموظفين",
- "SIDEBAR_TXT": "الموظفين
موظف الدعم هو عضو في فريق دعم العملاء الخاص بك.
يستطيع موظفو الدعم مشاهدة الرسائل الواردة من المستخدمين والرد عليها. تظهر القائمة جميع الموظفين الموجودين حاليا في حسابك.
انقر فوق إضافة موظف لإضافة موظف دعم فني جديد. سيتلقى الشخص الذي تضيفه رسالة بريد إلكتروني مع رابط تأكيد لتفعيل حسابه ، وبعد ذلك يمكنهم الوصول إلى Chatwoot والرد على الرسائل.
الوصول إلى ميزات Chatwoot يتوقف على الصلاحيات التالية.
الموظف - موظفي الدعم الذين لديهم هذه الصلاحية يمكنهم فقط الوصول إلى صناديق قنوات التواصل والتقارير والمحادثات. ويمكنهم بدء محادثات مع موظفين آخرين أو مع أنفسهم وأيضاً إغلاق المحادثات.
مدير البرنامج - الشخص المسؤول من الوصول إلى جميع ميزات Chatwoot المفعلة للحساب الخاص بك. بما في ذلك الإعدادات، إلى جانب جميع امتيازات الموظفين العاديين.
",
+ "HEADER": "الوكلاء",
+ "HEADER_BTN_TXT": "إضافة وكيل",
+ "LOADING": "جار جلب قائمة الوكلاء",
+ "DESCRIPTION": "الوكيل هو عضو في فريق دعم العملاء الذي يمكنه عرض رسائل المستخدم والرد عليها. القائمة أدناه تظهر جميع الوكلاء في حسابك.",
+ "LEARN_MORE": "تعرف على أدوار المستخدم",
"AGENT_TYPES": {
"ADMINISTRATOR": "المدير",
- "AGENT": "موظف الدعم"
+ "AGENT": "وكيل الدعم"
},
+ "COUNT": "{n} وكيل | {n} وكلاء",
"LIST": {
- "404": "لا يوجد موظفي دعم مرتبطين بهذا الحساب",
- "TITLE": "إدارة موظفي الدعم في فريقك",
- "DESC": "يمكنك إضافة/إزالة موظفي الدعم الفني في فريقك.",
+ "404": "لا يوجد وكلاء دعم مرتبطين بهذا الحساب",
+ "TITLE": "إدارة وكلاء الدعم في فريقك",
+ "DESC": "يمكنك إضافة/إزالة وكلاء الدعم الفني في فريقك.",
"NAME": "الاسم",
"EMAIL": "البريد الإلكتروني",
"STATUS": "الحالة",
"ACTIONS": "الإجراءات",
"VERIFIED": "تم التحقق",
- "VERIFICATION_PENDING": "بانتظار التحقق"
+ "VERIFICATION_PENDING": "بانتظار التحقق",
+ "AVAILABLE_CUSTOM_ROLE": "صلاحيات الدور المخصص المتاحة"
},
"ADD": {
- "TITLE": "إضافة موظف دعم فني إلى فريقك",
- "DESC": "يمكنك إضافة موظفي الدعم للرد على الرسائل في صندوق الوارد المشترك الخاص بفريقك.",
+ "TITLE": "إضافة وكيل دعم فني إلى فريقك",
+ "DESC": "يمكنك إضافة وكلاء الدعم للرد على الرسائل في صندوق الوارد المشترك الخاص بفريقك.",
"CANCEL_BUTTON_TEXT": "إلغاء",
"FORM": {
"NAME": {
- "LABEL": "اسم الموظف",
- "PLACEHOLDER": "الرجاء إدخال اسم الموظف"
+ "LABEL": "اسم الوكيل",
+ "PLACEHOLDER": "الرجاء إدخال اسم الوكيل"
},
"AGENT_TYPE": {
- "LABEL": "رتبة الموظف",
- "PLACEHOLDER": "الرجاء تحديد نوع",
- "ERROR": "رتبة الموظف مطلوبة"
+ "LABEL": "دور الوكيل",
+ "PLACEHOLDER": "الرجاء تحديد الدور",
+ "ERROR": "دور الوكيل مطلوب"
},
"EMAIL": {
"LABEL": "عنوان البريد الإلكتروني",
- "PLACEHOLDER": "الرجاء إدخال عنوان البريد الإلكتروني للموظف"
+ "PLACEHOLDER": "الرجاء إدخال عنوان البريد الإلكتروني للوكيل"
},
- "SUBMIT": "إضافة موظف"
+ "SUBMIT": "إضافة وكيل"
},
"API": {
- "SUCCESS_MESSAGE": "تم إضافة الموظف بنجاح",
- "EXIST_MESSAGE": "عنوان هذا البريد الإلكتروني مستخدم مسبقاً، الرجاء إضافة عنوان آخر",
+ "SUCCESS_MESSAGE": "تم إضافة الوكيل بنجاح",
+ "EXIST_MESSAGE": "عنوان البريد الإلكتروني للوكيل مستخدم مسبقاً، الرجاء إضافة عنوان آخر",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
}
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"API": {
- "SUCCESS_MESSAGE": "تم حذف حساب الموظف بنجاح",
+ "SUCCESS_MESSAGE": "تم حذف حساب الوكيل بنجاح",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
},
"CONFIRM": {
@@ -59,41 +62,43 @@
}
},
"EDIT": {
- "TITLE": "تعديل حساب الموظف",
+ "TITLE": "تعديل الوكيل",
"FORM": {
"NAME": {
- "LABEL": "اسم الموظف",
- "PLACEHOLDER": "الرجاء إدخال اسم الموظف"
+ "LABEL": "اسم الوكيل",
+ "PLACEHOLDER": "الرجاء إدخال اسم الوكيل"
},
"AGENT_TYPE": {
- "LABEL": "رتبة الموظف",
- "PLACEHOLDER": "الرجاء تحديد نوع",
- "ERROR": "رتبة الموظف مطلوبة"
+ "LABEL": "دور الوكيل",
+ "PLACEHOLDER": "الرجاء تحديد الدور",
+ "ERROR": "دور الوكيل مطلوب"
},
"EMAIL": {
"LABEL": "عنوان البريد الإلكتروني",
- "PLACEHOLDER": "الرجاء إدخال عنوان البريد الإلكتروني للموظف"
+ "PLACEHOLDER": "الرجاء إدخال عنوان البريد الإلكتروني للوكيل"
},
"AGENT_AVAILABILITY": {
"LABEL": "التوفر",
"PLACEHOLDER": "الرجاء تحديد حالة التوفر",
"ERROR": "حالة التوفر مطلوبة"
},
- "SUBMIT": "تعديل حساب الموظف"
+ "SUBMIT": "تعديل الوكيل"
},
"BUTTON_TEXT": "تعديل",
"CANCEL_BUTTON_TEXT": "إلغاء",
"API": {
- "SUCCESS_MESSAGE": "تم تحديث حساب الموظف بنجاح",
+ "SUCCESS_MESSAGE": "تم تحديث حساب الوكيل بنجاح",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
},
"PASSWORD_RESET": {
"ADMIN_RESET_BUTTON": "إعادة تعيين كلمة المرور",
- "ADMIN_SUCCESS_MESSAGE": "تم إرسال بريد إلكتروني مع تعليمات إعادة تعيين كلمة المرور",
- "SUCCESS_MESSAGE": "إعادة تعيين كلمة مرور حساب الموظف بنجاح",
+ "ADMIN_SUCCESS_MESSAGE": "تم إرسال بريد إلكتروني مع تعليمات إعادة تعيين كلمة المرور للوكيل",
+ "SUCCESS_MESSAGE": "إعادة تعيين كلمة مرور حساب الوكيل بنجاح",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
}
},
+ "SEARCH_PLACEHOLDER": "البحث عن وكلاء...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "لم يتم العثور على النتائج."
},
@@ -101,17 +106,20 @@
"PLACEHOLDER": "لا شيء",
"TITLE": {
"AGENT": "اختر وكيل",
- "TEAM": "اختيار فريق"
+ "TEAM": "اختر فريق"
+ },
+ "LIST": {
+ "NONE": "لا شيء"
},
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "لم يتم العثور على موظفين",
- "TEAM": "لم يتم العثور على موظفين"
+ "AGENT": "لم يتم العثور على وكلاء",
+ "TEAM": "لم يتم العثور على فريق"
},
"PLACEHOLDER": {
"AGENT": "البحث عن وكلاء",
"TEAM": "البحث عن فريق",
- "INPUT": "البحث عن ممثلى الخدمة"
+ "INPUT": "البحث عن وكلاء"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
index 3ced03bb8..eee042683 100644
--- a/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/attributesMgmt.json
@@ -1,17 +1,34 @@
{
"ATTRIBUTES_MGMT": {
- "HEADER": "سمات مخصصة",
- "HEADER_BTN_TXT": "إضافة سمة خاصة",
- "LOADING": "جلب سمات مخصصة",
- "SIDEBAR_TXT": "السمات المخصصة
سمة مخصصة تتبع الحقائق حول جهات الاتصال/المحادثة الخاصة بك - مثل خطة الاشتراك. أو عندما يطلبون العنصر الأول وما إلى ذلك.
لإنشاء سمة مخصصة، فقط انقر فوقأضف سمة مخصصة. يمكنك أيضا تعديل أو حذف سمة مخصصة موجودة بالنقر على زر التحرير أو الحذف.
",
+ "HEADER": "صفات مخصصة",
+ "HEADER_BTN_TXT": "إضافة صفة خاصة",
+ "LOADING": "جلب الصفات المخصصة",
+ "DESCRIPTION": "سمة مخصصة تتتبع تفاصيل إضافية حول جهات الاتصال أو المحادثات الخاصة بك - مثل خطة الاشتراك أو تاريخ الشراء الأول. يمكنك إضافة أنواع مختلفة من السمات المخصصة، مثل النص أو القوائم أو الأرقام، لالتقاط المعلومات المحددة التي تحتاجها.",
+ "LEARN_MORE": "تعرف على المزيد حول السمات المخصصة",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "البحث عن صفات...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "المحادثات",
+ "CONTACT": "جهات الاتصال",
+ "COMPANY": "المنشأة"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "النص",
+ "NUMBER": "العدد",
+ "LINK": "الرابط",
+ "DATE": "Date",
+ "LIST": "القائمة",
+ "CHECKBOX": "خانة الاختيار"
+ },
"ADD": {
- "TITLE": "إضافة سمة خاصة",
+ "TITLE": "إضافة صفة خاصة",
"SUBMIT": "إنشاء",
"CANCEL_BUTTON_TEXT": "إلغاء",
"FORM": {
"NAME": {
"LABEL": "اسم العرض",
- "PLACEHOLDER": "أدخل اسم عرض السمة",
+ "PLACEHOLDER": "أدخل اسم عرض الصفة",
"ERROR": "الاسم مطلوب"
},
"DESC": {
@@ -36,43 +53,47 @@
},
"KEY": {
"LABEL": "المفتاح",
- "PLACEHOLDER": "أدخل مفتاح السمة المخصصة",
+ "PLACEHOLDER": "أدخل مفتاح الصفة المخصصة",
"ERROR": "المفتاح مطلوب",
"IN_VALID": "مفتاح غير صالح"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "نمط Regex",
+ "PLACEHOLDER": "الرجاء إدخال سمة مخصصة regex (اختياري)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "الرجاء إدخال تلميح نمط regex (اختياري)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "تمكين التحقق من صحة regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
- "SUCCESS_MESSAGE": "تم إضافة سمة مخصصة بنجاح!",
- "ERROR_MESSAGE": "تعذر إنشاء سمة مخصصة، الرجاء المحاولة مرة أخرى لاحقاً."
+ "SUCCESS_MESSAGE": "تم إضافة صفة مخصصة بنجاح!",
+ "ERROR_MESSAGE": "تعذر إنشاء صفة مخصصة، الرجاء المحاولة مرة أخرى لاحقاً."
}
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"API": {
- "SUCCESS_MESSAGE": "تم حذف السمة المخصصة بنجاح.",
- "ERROR_MESSAGE": "تعذر حذف السمة المخصصة. حاول مرة أخرى."
+ "SUCCESS_MESSAGE": "تم حذف الصفة المخصصة بنجاح.",
+ "ERROR_MESSAGE": "تعذر حذف الصفة المخصصة. حاول مرة أخرى."
},
"CONFIRM": {
- "TITLE": "هل أنت متأكد من أنك تريد حذف - %{attributeName}",
+ "TITLE": "هل أنت متأكد من أنك تريد حذف - {attributeName}",
"PLACE_HOLDER": "الرجاء كتابة {attributeName} للتأكيد",
- "MESSAGE": "حذف سوف يزيل السمة المخصصة",
+ "MESSAGE": "الحذف سوف يزيل الصفة المخصصة",
"YES": "حذف ",
"NO": "إلغاء"
}
},
"EDIT": {
- "TITLE": "تعديل سمة مخصصة",
+ "TITLE": "تعديل صفة مخصصة",
"UPDATE_BUTTON_TEXT": "تحديث",
"TYPE": {
"LIST": {
@@ -81,22 +102,23 @@
}
},
"API": {
- "SUCCESS_MESSAGE": "تم تحديث السمة المخصصة بنجاح",
- "ERROR_MESSAGE": "حدث خطأ أثناء تحديث السمة المخصصة، الرجاء المحاولة مرة أخرى"
+ "SUCCESS_MESSAGE": "تم تحديث الصفة المخصصة بنجاح",
+ "ERROR_MESSAGE": "حدث خطأ أثناء تحديث الصفة المخصصة، الرجاء المحاولة مرة أخرى"
}
},
"TABS": {
- "HEADER": "سمات مخصصة",
+ "HEADER": "صفات مخصصة",
"CONVERSATION": "المحادثات",
- "CONTACT": "جهات الاتصال"
+ "CONTACT": "جهات الاتصال",
+ "COMPANY": "المنشأة"
},
"LIST": {
- "TABLE_HEADER": [
- "الاسم",
- "الوصف",
- "النوع",
- "المفتاح"
- ],
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "DESCRIPTION": "الوصف",
+ "TYPE": "النوع",
+ "KEY": "المفتاح"
+ },
"BUTTONS": {
"EDIT": "تعديل",
"DELETE": "حذف"
@@ -106,16 +128,20 @@
"NOT_FOUND": "لا توجد سمات مخصصة تم تكوينها"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "نمط Regex",
+ "PLACEHOLDER": "الرجاء إدخال صفة مخصصة regex (اختياري)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "الرجاء إدخال تلميح نمط regex (اختياري)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "تمكين التحقق من صحة regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
index b115b879e..8f627ce16 100644
--- a/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ar/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
+ "HEADER": "سجلات التدقيق",
+ "HEADER_BTN_TXT": "إضافة سجلات التدقيق",
+ "LOADING": "جارٍ جلب سجلات التدقيق",
+ "DESCRIPTION": "سجلات مراجعة الحسابات تحتفظ بسجل للأنشطة في حسابك، مما يسمح لك بتتبع ومراجعة حسابك أو فريقك أو خدماتك.",
+ "LEARN_MORE": "معرفة المزيد عن سجلات المراجعة",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام",
- "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "SIDEBAR_TXT": "سجلات التدقيق
سجلات التدقيق هي مسارات للأحداث والإجراءات في نظام Chatwoot.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "عنوان IP"
- ]
+ "404": "لا توجد سجلات تدقيق متاحة في هذا الحساب.",
+ "TITLE": "إدارة سجلات التدقيق",
+ "DESC": "سجلات التدقيق هي مسارات للأحداث والإجراءات في نظام Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "الأنشطة",
+ "TIME": "الوقت",
+ "IP_ADDRESS": "عنوان IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "SUCCESS_MESSAGE": "تم استرجاع سجلات التدقيق بنجاح",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "النظام",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} أنشأ قاعدة أتمتة جديدة (#{id})",
+ "EDIT": "{agentName} قام بتحديث قاعدة أتمتة (#{id})",
+ "DELETE": "{agentName} حذف قاعدة أتمتة (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} دعا {invitee} إلى الحساب كـ {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} غير {attributes} الخاصة به إلى {values}",
+ "OTHER": "{agentName} غير {attributes} لـ {user} إلى {values}",
+ "DELETED": "{agentName} غير {attributes} للمستخدم المحذوف إلى {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} أنشأ صندوق وارد جديد (#{id})",
+ "EDIT": "{agentName} قام بتحديث صندوق الوارد (#{id})",
+ "DELETE": "{agentName} حذف صندوق الوارد (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} أنشأ Webhook جديد (#{id})",
+ "EDIT": "{agentName} قام بتحديث Webhook (#{id})",
+ "DELETE": "{agentName} حذف Webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} قام بتسجيل الدخول",
+ "SIGN_OUT": "{agentName} قام بتسجيل الخروج"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} أنشأ فريق جديد (#{id})",
+ "EDIT": "{agentName} قام بتحديث الفريق (#{id})",
+ "DELETE": "{agentName} حذف الفريق (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} أنشأ ماكرو جديد (#{id})",
+ "EDIT": "{agentName} قام بتحديث ماكرو (#{id})",
+ "DELETE": "{agentName} حذف ماكرو (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} أضاف {user} إلى صندوق الوارد (#{inbox_id})",
+ "REMOVE": "{agentName} أزال {user} من صندوق الوارد (#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} أضاف {user} إلى الفريق (#{team_id})",
+ "REMOVE": "{agentName} أزال {user} من الفريق (#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 4fd813c13..f10a8b78a 100644
--- a/app/javascript/dashboard/i18n/locale/ar/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
"HEADER": "الأتمتة",
- "HEADER_BTN_TXT": "إضافة قاعدة أتمتة",
+ "DESCRIPTION": "ويمكن للأتمتة أن تحل محل وتبسط العمليات القائمة التي تتطلب جهداً يدوياً، مثل إضافة تسميات وتعيين المحادثات إلى أنسب وكيل. ويسمح ذلك للفريق بالتركيز على مواطن قوتهم مع تقليل الوقت الذي يقضيه في المهام الروتينية.",
+ "LEARN_MORE": "تعلم المزيد عن الأتمتة",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "جلب قواعد الأتمتة",
- "SIDEBAR_TXT": "قواعد الأتمتة الآليه
يمكن للأتمتة استبدال وأتمتة العمليات القائمة التي تتطلب جهداً يدوياً. يمكنك القيام بالعديد من الأشياء مع التشغيل الآلي، بما في ذلك إضافة تسميات وتعيين المحادثة لأفضل وكيل. لذا يركز الفريق على ما يفعلونه على أفضل وجه ويقضي وقتاً قليلاً على المهام اليدوية.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "إضافة قاعدة أتمتة",
"SUBMIT": "إنشاء",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "الاسم",
- "الوصف",
- "مفعل",
- "تم إنشاؤها في"
- ],
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "ACTIVE": "مفعل",
+ "CREATED_ON": "تم إنشاؤها في",
+ "ACTIONS": "الإجراءات"
+ },
"404": "لم يتم العثور على قواعد أتمتة"
},
"DELETE": {
@@ -87,17 +91,19 @@
},
"CONDITION": {
"DELETE_MESSAGE": "يجب أن يكون لديك على الأقل شرط واحد للحفظ",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "CONTACT_CUSTOM_ATTR_LABEL": "سمة مخصصة لجهة اتصال",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "سمة مخصصة للمحادثة"
},
"ACTION": {
"DELETE_MESSAGE": "يجب أن يكون لديك على الأقل شرط واحد للحفظ",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "اكتب رسالتك هنا",
- "TEAM_DROPDOWN_PLACEHOLDER": "اختيار فريق"
+ "TEAM_DROPDOWN_PLACEHOLDER": "اختيار فريق",
+ "EMAIL_INPUT_PLACEHOLDER": "أدخل البريد الإلكتروني",
+ "URL_INPUT_PLACEHOLDER": "أدخل رابط"
},
"TOGGLE": {
"ACTIVATION_TITLE": "تفعيل قاعدة الأتمتة",
- "DEACTIVATION_TITLE": "تغطيل قاعدة الأتمتة",
+ "DEACTIVATION_TITLE": "تعطيل قاعدة الأتمتة",
"ACTIVATION_DESCRIPTION": "سيؤدي هذا الإجراء إلى تنشيط قاعدة الأتمتة '{automationName}'. هل أنت متأكد من أنك تريد المتابعة؟",
"DEACTIVATION_DESCRIPTION": "سيؤدي هذا الإجراء إلى إلغاء تنشيط قاعدة الأتمتة '{automationName}'. هل أنت متأكد من أنك تريد المتابعة؟",
"ACTIVATION_SUCCESFUL": "تم تفعيل قاعدة الأتمتة بنجاح",
@@ -111,8 +117,77 @@
"UPLOAD_ERROR": "تعذر تحميل المرفق، الرجاء المحاولة مرة أخرى",
"LABEL_IDLE": "ارفع المرفق",
"LABEL_UPLOADING": "جاري الرفع...",
- "LABEL_UPLOADED": "Successfully Uploaded",
+ "LABEL_UPLOADED": "تم الرفع بنجاح",
"LABEL_UPLOAD_FAILED": "فشل الرفع"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "مفتاح الخاصية مطلوب",
+ "FILTER_OPERATOR_REQUIRED": "عامل التصفية مطلوب",
+ "VALUE_REQUIRED": "القيمة مطلوبة",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "القيمة يجب أن تكون بين 1 و 998",
+ "ACTION_PARAMETERS_REQUIRED": "معلمات الإجراء مطلوبة",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "شرط واحد على الأقل مطلوب",
+ "ATLEAST_ONE_ACTION_REQUIRED": "إجراء واحد على الأقل مطلوب"
+ },
+ "NONE_OPTION": "لا شيء",
+ "LAST_RESPONDING_AGENT": "آخر وكيل قام بالرد",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "تم إنشاء المحادثة",
+ "CONVERSATION_UPDATED": "تم تحديث المحادثة",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "تغيير الأولوية",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "فتح المحادثة",
+ "PENDING_CONVERSATION": "تحديد المحادثة كمعلقة"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "لا شيء",
+ "LOW": "منخفضة",
+ "MEDIUM": "متوسطة",
+ "HIGH": "عالية",
+ "URGENT": "عاجل"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "إضافة ملاحظة خاصة",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "البريد الإلكتروني",
+ "INBOX": "صندوق الوارد",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "رقم الهاتف",
+ "STATUS": "الحالة",
+ "BROWSER_LANGUAGE": "لغة المتصفح",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "الدولة",
+ "COMPANY_NAME": "المنشأة",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "المكلَّف",
+ "TEAM_NAME": "الفريق",
+ "PRIORITY": "الأولوية",
+ "LABELS": "الوسوم"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
index 38af8fced..d436e35fb 100644
--- a/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ar/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} المحادثات المحددة",
- "AGENT_SELECT_LABEL": "اختر وكيل",
- "ASSIGN_CONFIRMATION_LABEL": "هل أنت متأكد من أنك تريد تعيين %{conversationCount} %{conversationLabel} إلى",
- "UNASSIGN_CONFIRMATION_LABEL": "هل أنت متأكد من إلغاء تعيين %{conversationCount} %{conversationLabel}؟",
- "GO_BACK_LABEL": "العودة للخلف",
- "ASSIGN_LABEL": "تكليف",
+ "CONVERSATIONS_SELECTED": "{conversationCount} المحادثات المحددة",
+ "NONE": "لا شيء",
+ "CLEAR_SELECTION": "مسح",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "نعم",
+ "CANCEL": "إلغاء",
+ "SEARCH_INPUT_PLACEHOLDER": "بحث",
"ASSIGN_AGENT_TOOLTIP": "تعيين وكيل",
"ASSIGN_TEAM_TOOLTIP": "تعيين فريق",
"ASSIGN_SUCCESFUL": "تم تعيين المحادثات بنجاح.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "ASSIGN_FAILED": "فشل في تعيين المحادثات، الرجاء المحاولة مرة أخرى.",
"RESOLVE_SUCCESFUL": "تم تسوية المحادثات بنجاح.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "RESOLVE_FAILED": "فشل في حل المحادثات، يرجى المحاولة مرة أخرى.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "المحادثات المرئية في هذه الصفحة هي المحددة فقط.",
- "AGENT_LIST_LOADING": "جاري تحميل الوكلاء",
"UPDATE": {
"CHANGE_STATUS": "تغيير الحالة",
- "SNOOZE_UNTIL_NEXT_REPLY": "غفوة حتى الرد القادم.",
+ "SNOOZE_UNTIL": "تأجيل",
"UPDATE_SUCCESFUL": "تم تحديث حالة المحادثة بنجاح.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "UPDATE_FAILED": "فشل تحديث المحادثات، الرجاء المحاولة مرة أخرى."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "لا يمكن حل المحادثات بسبب عدم وجود السمات المطلوبة",
+ "PARTIAL_SUCCESS": "بعض المحادثات تحتاج إلى سمات مطلوبة قبل الحل وتم تخطيها"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "لم يتم العثور على تسميات لـ",
+ "ASSIGN_LABELS": "إضافة وسم",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "تعيين التسميات المحددة",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "تم تعيين التسميات بنجاح.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "فشل في تعيين التسميات ، الرجاء المحاولة مرة أخرى.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "اختيار فريق",
"NONE": "لا شيء",
- "NO_TEAMS_AVAILABLE": "لا توجد فرق مضافة إلى هذا الحساب حتى الآن.",
- "ASSIGN_SELECTED_TEAMS": "تعيين فريق محدد.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"ASSIGN_SUCCESFUL": "تم تعيين الفرق بنجاح.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_FAILED": "فشل تعيين الفريق، الرجاء المحاولة مرة أخرى."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/campaign.json b/app/javascript/dashboard/i18n/locale/ar/campaign.json
index 534901533..3d274c437 100644
--- a/app/javascript/dashboard/i18n/locale/ar/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ar/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "الحملات",
- "SIDEBAR_TXT": "الرسائل الاستباقية تسمح للعميل بإرسال رسائل صادرة إلى جهات اتصاله التي من شأنها أن تشغل المزيد من المحادثات. انقر فوق أضف الحملة لإنشاء حملة جديدة. يمكنك أيضا تعديل أو حذف حملة موجودة عن طريق النقر على زر التحرير أو الحذف.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "إنشاء حملة واحدة مغلقة",
- "ONGOING": "إنشاء حملة مستمرة"
- },
- "ADD": {
- "TITLE": "إنشاء حملة",
- "DESC": "الرسائل الاستباقية تسمح للعميل بإرسال رسائل صادرة إلى جهات اتصاله التي من شأنها أن تشغل المزيد من المحادثات.",
- "CANCEL_BUTTON_TEXT": "إلغاء",
- "CREATE_BUTTON_TEXT": "إنشاء",
- "FORM": {
- "TITLE": {
- "LABEL": "العنوان",
- "PLACEHOLDER": "الرجاء إدخال عنوان الحملة",
- "ERROR": "العنوان مطلوب"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "مفعل",
+ "DISABLED": "معطّل"
},
- "SCHEDULED_AT": {
- "LABEL": "الوقت المجدول",
- "PLACEHOLDER": "الرجاء اختيار الوقت",
- "CONFIRM": "تأكيد",
- "ERROR": "الوقت المجدول مطلوب"
- },
- "AUDIENCE": {
- "LABEL": "الجمهور",
- "PLACEHOLDER": "حدد أوسمة العملاء",
- "ERROR": "الجمهور مطلوب"
- },
- "INBOX": {
- "LABEL": "اختر صندوق الوارد",
- "PLACEHOLDER": "اختر صندوق الوارد",
- "ERROR": "صندوق الوارد مطلوب"
- },
- "MESSAGE": {
- "LABEL": "رسالة",
- "PLACEHOLDER": "الرجاء إدخال رسالة الحملة",
- "ERROR": "الرسالة مطلوبة"
- },
- "SENT_BY": {
- "LABEL": "أرسلت بواسطة",
- "PLACEHOLDER": "الرجاء تحديد محتوى الحملة",
- "ERROR": "المرسل مطلوب"
- },
- "END_POINT": {
- "LABEL": "الرابط",
- "PLACEHOLDER": "الرجاء إدخال الرابط",
- "ERROR": "الرجاء إدخال عنوان URL صالح"
- },
- "TIME_ON_PAGE": {
- "LABEL": "الوقت على الصفحة (ثواني)",
- "PLACEHOLDER": "الرجاء إدخال الوقت",
- "ERROR": "الوقت على الصفحة مطلوب"
- },
- "ENABLED": "تفعيل الحملة",
- "TRIGGER_ONLY_BUSINESS_HOURS": "تشغيل فقط خلال ساعات العمل",
- "SUBMIT": "إضافة حملة"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "أرسلت بواسطة",
+ "BOT": "رد آلي",
+ "FROM": "من",
+ "URL": "الرابط:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "تم إنشاء الحملة بنجاح",
- "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "إلغاء",
+ "CREATE_BUTTON_TEXT": "إنشاء",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "العنوان",
+ "PLACEHOLDER": "الرجاء إدخال عنوان الحملة",
+ "ERROR": "العنوان مطلوب"
+ },
+ "MESSAGE": {
+ "LABEL": "رسالة",
+ "PLACEHOLDER": "الرجاء إدخال رسالة الحملة",
+ "ERROR": "الرسالة مطلوبة"
+ },
+ "INBOX": {
+ "LABEL": "اختر صندوق الوارد",
+ "PLACEHOLDER": "اختر صندوق الوارد",
+ "ERROR": "صندوق الوارد مطلوب"
+ },
+ "SENT_BY": {
+ "LABEL": "أرسلت بواسطة",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "المرسل مطلوب"
+ },
+ "END_POINT": {
+ "LABEL": "الرابط",
+ "PLACEHOLDER": "الرجاء إدخال الرابط",
+ "ERROR": "الرجاء إدخال عنوان رابط صالح"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "الوقت في الصفحة (ثواني)",
+ "PLACEHOLDER": "الرجاء إدخال الوقت",
+ "ERROR": "الوقت في الصفحة مطلوب"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "تفعيل الحملة",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "تشغيل فقط خلال ساعات العمل"
+ },
+ "BUTTONS": {
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "حذف",
- "CONFIRM": {
- "TITLE": "تأكيد الحذف",
- "MESSAGE": "هل أنت متأكد من الحذف?",
- "YES": "نعم، احذف ",
- "NO": "لا، احتفظ "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "مكتمل",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "إلغاء",
+ "CREATE_BUTTON_TEXT": "إنشاء",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "العنوان",
+ "PLACEHOLDER": "الرجاء إدخال عنوان الحملة",
+ "ERROR": "العنوان مطلوب"
+ },
+ "MESSAGE": {
+ "LABEL": "رسالة",
+ "PLACEHOLDER": "الرجاء إدخال رسالة الحملة",
+ "ERROR": "الرسالة مطلوبة"
+ },
+ "INBOX": {
+ "LABEL": "اختر صندوق الوارد",
+ "PLACEHOLDER": "اختر صندوق الوارد",
+ "ERROR": "صندوق الوارد مطلوب"
+ },
+ "AUDIENCE": {
+ "LABEL": "الجمهور",
+ "PLACEHOLDER": "حدد أوسمة العملاء",
+ "ERROR": "الجمهور مطلوب"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "الوقت المجدول",
+ "PLACEHOLDER": "الرجاء اختيار الوقت",
+ "ERROR": "الوقت المجدول مطلوب"
+ },
+ "BUTTONS": {
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "مكتمل",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "إلغاء",
+ "CREATE_BUTTON_TEXT": "إنشاء",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "العنوان",
+ "PLACEHOLDER": "الرجاء إدخال عنوان الحملة",
+ "ERROR": "العنوان مطلوب"
+ },
+ "INBOX": {
+ "LABEL": "اختر صندوق الوارد",
+ "PLACEHOLDER": "اختر صندوق الوارد",
+ "ERROR": "صندوق الوارد مطلوب"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "معالجة {templateName}",
+ "LANGUAGE": "اللغة",
+ "CATEGORY": "الفئة",
+ "VARIABLES_LABEL": "المتغيرات",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "الجمهور",
+ "PLACEHOLDER": "حدد أوسمة العملاء",
+ "ERROR": "الجمهور مطلوب"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "الوقت المجدول",
+ "PLACEHOLDER": "الرجاء اختيار الوقت",
+ "ERROR": "الوقت المجدول مطلوب"
+ },
+ "BUTTONS": {
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "هل أنت متأكد من الحذف?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "حذف",
"API": {
"SUCCESS_MESSAGE": "تم حذف الحملة بنجاح",
- "ERROR_MESSAGE": "تعذر حذف الحملة. الرجاء المحاولة مرة أخرى لاحقاً."
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى."
}
- },
- "EDIT": {
- "TITLE": "تعديل الحملة",
- "UPDATE_BUTTON_TEXT": "تحديث",
- "API": {
- "SUCCESS_MESSAGE": "تم تحديث الحملة بنجاح",
- "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "جاري تحميل الحملات...",
- "404": "لا توجد حملات منشئة لهذا البريد الوارد.",
- "TABLE_HEADER": {
- "TITLE": "العنوان",
- "MESSAGE": "رسالة",
- "INBOX": "صندوق الوارد",
- "STATUS": "الحالة",
- "SENDER": "المرسل",
- "URL": "الرابط",
- "SCHEDULED_AT": "الوقت المجدول",
- "TIME_ON_PAGE": "الوقت(ثواني)",
- "CREATED_AT": "تم إنشاؤها في"
- },
- "BUTTONS": {
- "ADD": "إضافة",
- "EDIT": "تعديل",
- "DELETE": "حذف"
- },
- "STATUS": {
- "ENABLED": "مفعل",
- "DISABLED": "معطّل",
- "COMPLETED": "مكتمل",
- "ACTIVE": "مفعل"
- },
- "SENDER": {
- "BOT": "رد آلي"
- }
- },
- "ONE_OFF": {
- "HEADER": "حملة واحدة مغلقة",
- "404": "لم يتم إنشاء أي حملة ",
- "INBOXES_NOT_FOUND": "الرجاء إنشاء بريد وارد للرسائل القصيرة ثم إبدء في إضافة حملات"
- },
- "ONGOING": {
- "HEADER": "الحملات المستمرة",
- "404": "لا توجد حملات مستمرة منشئة",
- "INBOXES_NOT_FOUND": "الرجاء إنشاء بريد وارد لمحادثات الموقع الحية ثم إبدء في إضافة حملات"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
index 9d16ad347..8bd936746 100644
--- a/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
- "HEADER": "الردود السريعة",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "HEADER": "الردود الجاهزة",
+ "LEARN_MORE": "معرفة المزيد عن الاستجابات المعلبة",
+ "DESCRIPTION": "الردود المسبقة هي قوالب رد مكتوبة مسبقاً تساعدك على الرد بسرعة على محادثة. يمكن للوكلاء كتابة حرف '/' يتبعه الرمز المختصر لإدراج رد مسبق أثناء محادثة. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "إضافة رد جاهز",
+ "LOADING": "جاري جلب الردود الجاهزة...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "لا توجد ردود جاهزة متوفرة في هذا الحساب.",
"TITLE": "إدارة الردود الجاهزة",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "المحتوى",
- "الإجراءات"
- ]
- },
- "ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "CANCEL_BUTTON_TEXT": "إلغاء",
- "FORM": {
- "SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
- },
- "CONTENT": {
- "LABEL": "رسالة",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
- },
- "SUBMIT": "إرسال"
- },
- "API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
- "ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
+ "DESC": "الردود الجاهزة هي قوالب رسائل معدة مسبقاً يمكن استخدامها لتسريع كتابة الردود في المحادثات.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "كود مختصر",
+ "CONTENT": "المحتوى",
+ "ACTIONS": "الإجراءات"
}
},
- "EDIT": {
- "TITLE": "Edit canned response",
+ "ADD": {
+ "TITLE": "إضافة رد جاهز",
+ "DESC": "الردود الجاهزة هي قوالب رسائل معدة مسبقاً يمكن استخدامها لتسريع كتابة الردود في المحادثات.",
"CANCEL_BUTTON_TEXT": "إلغاء",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "كود مختصر",
+ "PLACEHOLDER": "من فضلك ادخل الكود مختصر.",
+ "ERROR": "الكود مختصر مطلوب."
},
"CONTENT": {
"LABEL": "رسالة",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "PLACEHOLDER": "من فضلك ادخل نص لرسالة التي ترغب في حفظها كقالب لاستخدامها لاحقاُ.",
"ERROR": "الرسالة مطلوبة."
},
"SUBMIT": "إرسال"
},
+ "API": {
+ "SUCCESS_MESSAGE": "تم إضافة الرد الجاهز بنجاح.",
+ "ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
+ }
+ },
+ "EDIT": {
+ "TITLE": "تعديل الرد الجاهز",
+ "CANCEL_BUTTON_TEXT": "إلغاء",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "كود مختصر",
+ "PLACEHOLDER": "من فضلك ادخل الكود المختصر.",
+ "ERROR": "الكود المختصر مطلوب."
+ },
+ "CONTENT": {
+ "LABEL": "رسالة",
+ "PLACEHOLDER": "من فضلك ادخل نص للرسالة التي ترغب في حفظها كقالب لاستخدامها لاحقاُ.",
+ "ERROR": "الرسالة مطلوبة."
+ },
+ "SUBMIT": "تسليم"
+ },
"BUTTON_TEXT": "تعديل",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "تم تحديث الرد الجاهز بنجاح.",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
}
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "تم حذف الرد الجاهز بنجاح.",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
},
"CONFIRM": {
"TITLE": "تأكيد الحذف",
"MESSAGE": "هل أنت متأكد من الحذف ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "نعم، احذف ",
+ "NO": "لا، احتفظ به "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/chatlist.json b/app/javascript/dashboard/i18n/locale/ar/chatlist.json
index 68f1e443d..df78ee993 100644
--- a/app/javascript/dashboard/i18n/locale/ar/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ar/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "لا توجد محادثات نشطة في هذه المجموعة."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "المحادثات",
"MENTION_HEADING": "الإشارات",
"UNATTENDED_HEADING": "بدون حضور",
@@ -15,7 +16,7 @@
"FILTER_ALL": "الكل",
"ASSIGNEE_TYPE_TABS": {
"me": "محادثاتي",
- "unassigned": "غير مسند",
+ "unassigned": "غير معيّن",
"all": "الكل"
},
"CHAT_STATUS_FILTER_ITEMS": {
@@ -23,13 +24,13 @@
"TEXT": "فتح"
},
"resolved": {
- "TEXT": "مغلقة"
+ "TEXT": "تم حلها"
},
"pending": {
"TEXT": "معلق"
},
"snoozed": {
- "TEXT": "غفوة"
+ "TEXT": "مؤجلة"
},
"all": {
"TEXT": "الكل"
@@ -43,38 +44,41 @@
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "Created",
+ "LATEST": "مضاف",
"OLDEST": "تم إنشاؤها في:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "النشاط الأخير:",
- "ACTIVE": "النشاط الأخير"
+ "NOT_ACTIVE": "آخر نشاط:",
+ "ACTIVE": "آخر نشاط"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "آخر نشاط: الأقدم أولا"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "آخر نشاط: الأحدث أولا"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "وقت الإنشاء: الأحدث أولاً"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "وقت الإنشاء: الأقدم أولاً"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "الأولوية: الأعلى أولا"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "الأولوية: الأقل أولاً"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "الرد المعلق: الأطول أولا"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "الرد المعلق: الأقصر أولاً"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "الموقع الجغرافي"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "قام بمشاركة رابط"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "المحتوى المضمن"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -102,16 +115,16 @@
"DROPDOWN_TITLE": "ترتيب حسب",
"ITEMS": {
"LATEST": {
- "NAME": "النشاط الأخير في",
- "LABEL": "النشاط الأخير"
+ "NAME": "آخر نشاط في",
+ "LABEL": "آخر نشاط"
},
"CREATED_AT": {
"NAME": "تم إنشاؤها في",
"LABEL": "تم إنشاؤها في"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "آخر رسالة للمستخدم في",
+ "LABEL": "أخر رسالة"
}
}
},
@@ -119,13 +132,15 @@
"VIEW_TWEET_IN_TWITTER": "عرض التغريدة في تويتر",
"REPLY_TO_TWEET": "الرد على هذه التغريدة",
"LINK_TO_STORY": "الذهاب إلى قصة الإنستقرام",
- "SENT": "Sent successfully",
+ "SENT": "تم الإرسال بنجاح",
"READ": "تمت القراءة بنجاح",
"DELIVERED": "تم الإرسال بنجاح",
"NO_MESSAGES": "لا توجد رسائل",
"NO_CONTENT": "لم يتم العثور على محتوى",
- "HIDE_QUOTED_TEXT": "Hide Quoted Text",
- "SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "قرائة"
+ "HIDE_QUOTED_TEXT": "إخفاء النص المقتبس",
+ "SHOW_QUOTED_TEXT": "إظهار النص المقتبس",
+ "MESSAGE_READ": "قراءة",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/companies.json b/app/javascript/dashboard/i18n/locale/ar/companies.json
new file mode 100644
index 000000000..7477c4df0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "الشركات",
+ "SORT_BY": {
+ "LABEL": "ترتيب حسب",
+ "OPTIONS": {
+ "NAME": "الاسم",
+ "DOMAIN": "النطاق",
+ "CREATED_AT": "تم إنشاؤها في",
+ "LAST_ACTIVITY_AT": "آخر نشاط",
+ "CONTACTS_COUNT": "عدد جهات الاتصال"
+ }
+ },
+ "ORDER": {
+ "LABEL": "ترتيب",
+ "OPTIONS": {
+ "ASCENDING": "تصاعدي",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "البحث في الشركات...",
+ "LOADING": "جاري تحميل الشركات...",
+ "UNNAMED": "شركة بلا اسم",
+ "CONTACTS_COUNT": "جهة اتصال {n} | {n} جهات الاتصال",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "السمات",
+ "CONTACTS": "جهات الاتصال",
+ "HISTORY": "History",
+ "NOTES": "ملاحظات"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "البحث عن صفات...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "جاري جلب جهات الاتصال...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "المنشأة",
+ "CONTACT_LABEL": "جهات الاتصال",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "إلغاء"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "الاسم",
+ "DOMAIN": "النطاق"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "لم يتم العثور على شركات"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "عرض {startItem} - {endItem} من {totalItems} شركة | عرض {startItem} – {endItem} من الشركات {totalItems}"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/components.json b/app/javascript/dashboard/i18n/locale/ar/components.json
new file mode 100644
index 000000000..62ad85d93
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "لم يتم العثور على النتائج.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "لم يتم العثور على النتائج.",
+ "SEARCHING": "جاري البحث..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "إلغاء",
+ "CONFIRM": "تأكيد"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "البحث عن بلد",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "الرجاء تحديد رمز الاتصال من القائمة"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "اعرف المزيد",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/contact.json b/app/javascript/dashboard/i18n/locale/ar/contact.json
index 00681a963..f5db01558 100644
--- a/app/javascript/dashboard/i18n/locale/ar/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ar/contact.json
@@ -5,7 +5,7 @@
"PHONE_NUMBER": "رقم الهاتف",
"IDENTIFIER": "المعرف",
"COPY_SUCCESSFUL": "تم النسخ إلى الحافظة بنجاح",
- "COMPANY": "الشركة",
+ "COMPANY": "المنشأة",
"LOCATION": "الموقع الجغرافي",
"BROWSER_LANGUAGE": "لغة المتصفح",
"CONVERSATION_TITLE": "تفاصيل المحادثة",
@@ -15,8 +15,17 @@
"INITIATED_FROM": "تم البدء من",
"INITIATED_AT": "تم البدء في",
"IP_ADDRESS": "عنوان IP",
- "CREATED_AT_LABEL": "Created",
+ "CREATED_AT_LABEL": "تم إنشاؤها",
"NEW_MESSAGE": "رسالة جديدة",
+ "CALL": "Call",
+ "CALL_INITIATED": "جار الاتصال بجهة الاتصال…",
+ "CALL_FAILED": "تعذر بدء المكالمة. الرجاء المحاولة مرة أخرى.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "لا توجد محادثات سابقة مرتبطة بجهة الاتصال هذه.",
"TITLE": "المحادثات السابقة"
@@ -34,21 +43,22 @@
"TITLE": "اضافة تصنيف جديد",
"PLACEHOLDER": "ابحث عن تصنيفات",
"NO_RESULT": "لم يتم العثور على تصنيفات",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "إنشاء تسمية جديدة"
}
},
"MERGE_CONTACT": "دمج جهة الاتصال",
"CONTACT_ACTIONS": "إجراءات جهات الاتصال",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "احجب جهة الاتصال",
+ "UNMUTE_CONTACT": "إلغاء حجب جهة الاتصال",
+ "MUTED_SUCCESS": "تم حظر جهة الاتصال هذه بنجاح، لن يتم إعلامك بأي محادثات في المستقبل.",
+ "UNMUTED_SUCCESS": "تم إلغاء حجب جهة الاتصال بنجاح.",
"SEND_TRANSCRIPT": "إرسال النص",
"EDIT_LABEL": "تعديل",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "سمات مخصصة",
"CONTACT_LABELS": "تصنفيات جهات الاتصال",
- "PREVIOUS_CONVERSATIONS": "المحادثات السابقة"
+ "PREVIOUS_CONVERSATIONS": "المحادثات السابقة",
+ "NO_RECORDS_FOUND": "لم يتم العثور على سمات"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "تعديل جهة الاتصال",
"DESC": "تعديل تفاصيل جهة الاتصال"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "جهة اتصال جديدة",
- "TITLE": "إنشاء جهة اتصال جديدة",
- "DESC": "إضافة معلومات أساسية حول جهة الاتصال."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "استيراد",
- "TITLE": "استيراد جهات الاتصال",
- "DESC": "استيراد جهات الاتصال من خلال ملف CSV.",
- "DOWNLOAD_LABEL": "تحميل عينة csv.",
- "FORM": {
- "LABEL": "ملف CSV",
- "SUBMIT": "استيراد",
- "CANCEL": "إلغاء"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "تأكيد الحذف",
- "MESSAGE": "هل أنت متأكد من حذف هذه الملاحظة؟",
- "YES": "نعم، احذف",
- "NO": "لا، احتفظ به"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "حذف جهة الاتصال",
"TITLE": "حذف جهة الاتصال",
@@ -128,19 +99,19 @@
"EMAIL_ADDRESS": {
"PLACEHOLDER": "أدخل عنوان البريد الإلكتروني الخاص بجهة الاتصال",
"LABEL": "عنوان البريد الإلكتروني",
- "DUPLICATE": "عنوان البريد الإلكتروني هذا مستخدم لجهة اتصال أخرى.",
+ "DUPLICATE": "عنوان البريد الإلكتروني هذا مستخدم من قبل جهة اتصال أخرى.",
"ERROR": "الرجاء إدخال عنوان بريد إلكتروني صحيح."
},
"PHONE_NUMBER": {
"PLACEHOLDER": "أدخل رقم الهاتف الخاص بجهة الاتصال",
"LABEL": "رقم الهاتف",
- "HELP": "يجب ان يحتوى رقم الهاتف على كود دولتك تسبقها علامة +\nمثال: +20101243567",
+ "HELP": "يجب ان يحتوى رقم الهاتف على كود الدولة تسبقها علامة +\nمثال: +20101243567.",
"ERROR": "يجب ان تكون خانة رقم الهاتف إما فارغة او مكتملة مع رمز الدولة",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
+ "DIAL_CODE_ERROR": "الرجاء تحديد رمز الاتصال من القائمة",
"DUPLICATE": "رقم الهاتف هذا مستخدم لجهة اتصال أخرى."
},
"LOCATION": {
- "PLACEHOLDER": "أدخل موقع جهة الاتصال",
+ "PLACEHOLDER": "أدخل الموقع الجغرافي لجهة الاتصال",
"LABEL": "الموقع الجغرافي"
},
"COMPANY_NAME": {
@@ -148,15 +119,15 @@
"LABEL": "اسم الشركة"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
+ "PLACEHOLDER": "إدخال اسم الدولة",
"LABEL": "اسم الدولة",
"SELECT_PLACEHOLDER": "اختر",
"REMOVE": "حذف",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "أختر الدولة"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "إدخال اسم المدينة",
+ "LABEL": "اسم المدينة"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
@@ -172,14 +143,14 @@
"LABEL": "LinkedIn"
},
"GITHUB": {
- "PLACEHOLDER": "أدخل اسم المسستخدم في Github",
+ "PLACEHOLDER": "أدخل اسم المستخدم في Github",
"LABEL": "Github"
}
}
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "تم حذف صورة جهة الاتصال بنجاح",
+ "SUCCESS_MESSAGE": "تم حذف الصورة الرمزية لجهة الاتصال بنجاح",
"ERROR_MESSAGE": "تعذر حذف الصورة الرمزية لجهة الإتصال. الرجاء المحاولة مرة أخرى لاحقاً."
}
},
@@ -187,7 +158,7 @@
"ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "محادثة جديدة",
+ "BUTTON_LABEL": "إبدأ محادثة",
"TITLE": "محادثة جديدة",
"DESC": "بدء محادثة جديدة بإرسال رسالة جديدة.",
"NO_INBOX": "تعذر العثور على صندوق الوارد لبدء محادثة جديدة مع جهة الاتصال هذه.",
@@ -197,7 +168,7 @@
},
"INBOX": {
"LABEL": "صندوق الوارد",
- "PLACEHOLDER": "Choose source inbox",
+ "PLACEHOLDER": "اختيار مصدر البريد الوارد",
"ERROR": "حدد صندوق الوارد"
},
"SUBJECT": {
@@ -211,8 +182,8 @@
"ERROR": "لا يمكن أن تكون الرسالة فارغة"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "اختر الملفات",
+ "HELP_TEXT": "قم بسحب وإسقاط الملفات هنا أو اختر ملفات لإرفاقها"
},
"SUBMIT": "إرسال الرسالة",
"CANCEL": "إلغاء",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "جهات الاتصال",
- "FIELDS": "تصنفيات جهات الاتصال",
- "SEARCH_BUTTON": "بحث",
- "SEARCH_INPUT_PLACEHOLDER": "بحث عن جهات الاتصال",
- "FILTER_CONTACTS": "فلترة",
- "FILTER_CONTACTS_SAVE": "حفظ الفلتر",
- "FILTER_CONTACTS_DELETE": "حذف الفلتر",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "جاري تحميل جهات الاتصال...",
- "404": "لا توجد جهات اتصال تطابق بحثك 🔍",
- "NO_CONTACTS": "لا توجد جهات اتصال متوفرة",
"TABLE_HEADER": {
- "NAME": "الاسم",
- "PHONE_NUMBER": "رقم الهاتف",
- "CONVERSATIONS": "المحادثات",
- "LAST_ACTIVITY": "آخر نشاط",
- "CREATED_AT": "تم إنشاؤها في",
- "COUNTRY": "الدولة",
- "CITY": "المدينة",
- "SOCIAL_PROFILES": "حسابات التواصل الاجتماعي",
- "COMPANY": "الشركة",
- "EMAIL_ADDRESS": "عنوان البريد الإلكتروني"
- },
- "VIEW_DETAILS": "عرض التفاصيل"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "جهات الاتصال",
- "LOADING": "جاري تحميل ملف الاتصال الشخصي..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "إضافة",
- "TITLE": "Shift + Enter لإنشاء مهمة"
- },
- "FOOTER": {
- "DUE_DATE": "تاريخ التسليم",
- "LABEL_TITLE": "تعيين النوع"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "جلب الملاحظات...",
- "NOT_AVAILABLE": "لا توجد ملاحظات تم إنشاؤها لهذا الاتصال",
- "HEADER": {
- "TITLE": "ملاحظات"
- },
- "LIST": {
- "LABEL": "تمت إضافة ملاحظة"
- },
- "ADD": {
- "BUTTON": "إضافة",
- "PLACEHOLDER": "إضافة ملاحظة",
- "TITLE": "Shift + Enter لإنشاء مهمة"
- },
- "CONTENT_HEADER": {
- "DELETE": "حذف الملاحظة"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "الأنشطة"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "ملاحظات",
- "PILL_BUTTON_EVENTS": "الأحداث",
- "PILL_BUTTON_CONVO": "المحادثات"
+ "SOCIAL_PROFILES": "حسابات التواصل الاجتماعي"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "أضف سمة",
"BUTTON": "إضافة سمة خاصة",
- "NOT_AVAILABLE": "لا توجد سمات مخصصة متاحة لجهة الاتصال هذه.",
"COPY_SUCCESSFUL": "تم النسخ إلى الحافظة بنجاح",
+ "SHOW_MORE": "إظهار كافة السمات",
+ "SHOW_LESS": "عرض سمات أقل",
"ACTIONS": {
"COPY": "نسخ السمة",
"DELETE": "حذف السمة",
@@ -303,36 +211,36 @@
},
"ADD": {
"TITLE": "إنشاء سمة خاصة",
- "DESC": "أضف معلومات خاصة إلى جهة الاتصال هذه."
+ "DESC": "أضف معلومات مخصصة إلى جهة الاتصال هذه."
},
"FORM": {
"CREATE": "أضف سمة",
"CANCEL": "إلغاء",
"NAME": {
- "LABEL": "اسم السمة الخاصة",
+ "LABEL": "اسم الصفة الخاصة",
"PLACEHOLDER": "مثال: shopify id",
- "ERROR": "اسم السمة المخصصة غير صالح"
+ "ERROR": "اسم الصفة المخصصة غير صالح"
},
"VALUE": {
"LABEL": "قيمة السمة",
- "PLACEHOLDER": "Eg: 11901 "
+ "PLACEHOLDER": "مثلاً: 11901 "
},
"ADD": {
- "TITLE": "إنشاء سمة جديدة ",
- "SUCCESS": "تمت إضافة السمة بنجاح",
- "ERROR": "غير قادر على إضافة السمة. الرجاء المحاولة مرة أخرى لاحقاً"
+ "TITLE": "إنشاء صفة جديدة ",
+ "SUCCESS": "تمت إضافة الصفة بنجاح",
+ "ERROR": "غير قادر على إضافة الصفة. الرجاء المحاولة مرة أخرى لاحقاً"
},
"UPDATE": {
- "SUCCESS": "تم تحديث السمة المخصصة بنجاح",
- "ERROR": "غير قادر على تحديث السمة. الرجاء المحاولة مرة أخرى لاحقاً"
+ "SUCCESS": "تم تحديث الصفة المخصصة بنجاح",
+ "ERROR": "غير قادر على تحديث الصفة. الرجاء المحاولة مرة أخرى لاحقاً"
},
"DELETE": {
- "SUCCESS": "تم حذف السمة المخصصة بنجاح",
- "ERROR": "غير قادر على حذف السمة. الرجاء المحاولة مرة أخرى لاحقاً"
+ "SUCCESS": "تم حذف الصفة المخصصة بنجاح",
+ "ERROR": "غير قادر على حذف الصفة. الرجاء المحاولة مرة أخرى لاحقاً"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "أضف سمة",
- "PLACEHOLDER": "البحث عن سمات",
+ "TITLE": "أضف صفة",
+ "PLACEHOLDER": "البحث عن صفات",
"NO_RESULT": "لم يتم العثور على سمات"
},
"ATTRIBUTE_TYPE": {
@@ -345,8 +253,8 @@
},
"VALIDATIONS": {
"REQUIRED": "القيمة الصالحة مطلوبة",
- "INVALID_URL": "عنوان URL غير صالح",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_URL": "عنوان الرابط غير صالح",
+ "INVALID_INPUT": "مدخلات غير صالح"
}
},
"MERGE_CONTACTS": {
@@ -363,20 +271,396 @@
},
"SUMMARY": {
"TITLE": "ملخص",
- "DELETE_WARNING": "سيتم حذف جهة الاتصال بـ %{primaryContactName}.",
- "ATTRIBUTE_WARNING": "سيتم نسخ تفاصيل الاتصال بـ %{primaryContactName} إلى %{parentContactName}."
+ "DELETE_WARNING": "سيتم حذف جهة الاتصال {primaryContactName}.",
+ "ATTRIBUTE_WARNING": "سيتم نسخ تفاصيل الاتصال من {primaryContactName} إلى {parentContactName}."
},
"SEARCH": {
- "ERROR": "رسالة_خطأ"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
- "SUBMIT": " دمج جهة الاتصال",
+ "SUBMIT": " دمج جهات الاتصال",
"CANCEL": "إلغاء",
"CHILD_CONTACT": {
"ERROR": "حدد جهة اتصال فرعية للدمج"
},
"SUCCESS_MESSAGE": "تم دمج جهة الاتصال بنجاح",
"ERROR_MESSAGE": "تعذر دمج جهات الاتصال ، حاول مرة أخرى!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "جهات الاتصال",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "رسالة",
+ "SEND_MESSAGE": "إرسال الرسالة",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "جهات الاتصال"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "عنوان البريد الإلكتروني هذا مستخدم من قبل جهة اتصال أخرى.",
+ "PHONE_NUMBER_DUPLICATE": "رقم الهاتف هذا مستخدم لجهة اتصال أخرى.",
+ "SUCCESS_MESSAGE": "تم حفظ جهة الاتصال بنجاح",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "تم إلغاء حجب جهة الاتصال بنجاح",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "استيراد جهات الاتصال من خلال ملف CSV.",
+ "DOWNLOAD_LABEL": "تحميل عينة csv.",
+ "LABEL": "ملف CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "يتغيرون",
+ "CANCEL": "إلغاء",
+ "IMPORT": "استيراد",
+ "SUCCESS_MESSAGE": "سيتم إعلامك عبر البريد الإلكتروني عند استكمال الاستيراد.",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "تصدير",
+ "SUCCESS_MESSAGE": "التصدير جاري. سيتم إعلامك على البريد الإلكتروني عندما يكون ملف التصدير جاهزا للتحميل.",
+ "ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
+ },
+ "SORT_BY": {
+ "LABEL": "ترتيب حسب",
+ "OPTIONS": {
+ "NAME": "الاسم",
+ "EMAIL": "البريد الإلكتروني",
+ "PHONE_NUMBER": "رقم الهاتف",
+ "COMPANY": "المنشأة",
+ "COUNTRY": "الدولة",
+ "CITY": "المدينة",
+ "LAST_ACTIVITY": "آخر نشاط",
+ "CREATED_AT": "تم إنشاؤها في"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "هل تريد حفظ هذه التصفية؟",
+ "CONFIRM": "حفظ التصفية",
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "تأكيد الحذف",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "نعم، احذف",
+ "CANCEL": "لا، إلغاء",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "الاسم",
+ "EMAIL": "البريد الإلكتروني",
+ "PHONE_NUMBER": "رقم الهاتف",
+ "IDENTIFIER": "المعرف",
+ "COUNTRY": "الدولة",
+ "CITY": "المدينة",
+ "COMPANY": "المنشأة",
+ "CREATED_AT": "تم إنشاؤها في",
+ "LAST_ACTIVITY": "آخر نشاط",
+ "REFERER_LINK": "رابط المرجع",
+ "BLOCKED": "محظور",
+ "BLOCKED_TRUE": "صحيح",
+ "BLOCKED_FALSE": "خاطئ",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "مسح التصفيات",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "تطبيق التصفيات",
+ "ADD_FILTER": "إضافة تصفية"
+ },
+ "TITLE": "تصفية جهات الاتصال",
+ "EDIT_SEGMENT": "تحرير الجزء",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "مسح التصفيات"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "عرض التفاصيل",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "تعديل تفاصيل جهة الاتصال",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "عنوان البريد الإلكتروني هذا مستخدم من قبل جهة اتصال أخرى."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "رقم الهاتف هذا مستخدم لجهة اتصال أخرى."
+ },
+ "CITY": {
+ "PLACEHOLDER": "إدخال اسم المدينة"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "أدخل اسم الشركة"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "إضافة TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "حذف جهة الاتصال",
+ "DELETE_DIALOG": {
+ "TITLE": "تأكيد الحذف",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "نعم، احذف",
+ "API": {
+ "SUCCESS_MESSAGE": "تم حذف جهة الاتصال بنجاح",
+ "ERROR_MESSAGE": "تعذر حذف جهة الاتصال. يرجى المحاولة مرة أخرى لاحقاً."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "الصورة الرمزية حذفت بنجاح",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "السمات",
+ "HISTORY": "History",
+ "NOTES": "ملاحظات",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "لا توجد محادثات سابقة مرتبطة بجهة الاتصال هذه"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "نعم",
+ "NO": "لا",
+ "TRIGGER": {
+ "SELECT": "اختر قيمة",
+ "INPUT": "أدخل القيمة"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "القيمة الصالحة مطلوبة",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "عنوان الرابط غير صالح",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "لم يتم العثور على سمات",
+ "API": {
+ "SUCCESS_MESSAGE": "تم تحديث الصفة المخصصة بنجاح",
+ "DELETE_SUCCESS_MESSAGE": "تم حذف الصفة المخصصة بنجاح",
+ "UPDATE_ERROR": "غير قادر على تحديث الصفة. الرجاء المحاولة مرة أخرى لاحقاً",
+ "DELETE_ERROR": "غير قادر على حذف الصفة. الرجاء المحاولة مرة أخرى لاحقاً"
+ }
+ },
+ "MERGE": {
+ "TITLE": "دمج جهة الاتصال",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "جهة الاتصال الرئيسية",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "ليتم حذفها",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "بحث عن جهات الاتصال",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "تم دمج جهة الاتصال بنجاح",
+ "ERROR_MESSAGE": "تعذر دمج جهات الاتصال ، حاول مرة أخرى!",
+ "IS_SEARCHING": "جاري البحث...",
+ "BUTTONS": {
+ "CANCEL": "إلغاء",
+ "CONFIRM": "دمج جهة الاتصال"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "إضافة ملاحظة",
+ "WROTE": "كتب",
+ "YOU": "أنت",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "لا توجد جهات اتصال تطابق بحثك 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "تحميل المزيد"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "تعيين التسميات",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "تم تعيين التسميات بنجاح.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "حذف",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "حذف جهة الاتصال"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "عرض",
+ "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": "إلى:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "الموضوع :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "نسخة من البريد:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "نسخة خفية من البريد:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "نسخة خفية من البريد"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "اكتب رسالتك هنا..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "المتغيرات",
+ "BACK": "العودة للخلف",
+ "SEND_MESSAGE": "إرسال الرسالة"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "العودة للخلف",
+ "SEND_MESSAGE": "إرسال الرسالة"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/contactFilters.json b/app/javascript/dashboard/i18n/locale/ar/contactFilters.json
index b571ccd08..eb18cc456 100644
--- a/app/javascript/dashboard/i18n/locale/ar/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ar/contactFilters.json
@@ -2,18 +2,18 @@
"CONTACTS_FILTER": {
"TITLE": "تصفية جهات الاتصال",
"SUBTITLE": "إضافة فلاتر أدناه واضغط على 'إرسال' لتصفية جهات الاتصال.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "EDIT_CUSTOM_SEGMENT": "تحرير الجزء",
+ "CUSTOM_VIEWS_SUBTITLE": "أضف أو أزل الفلاتر وقم بتحديث المجلد الخاص بك.",
"ADD_NEW_FILTER": "إضافة فلتر",
"CLEAR_ALL_FILTERS": "مسح جميع الفلاتر",
"FILTER_DELETE_ERROR": "يجب ان يكون لديك فلتر واحد على الاقل",
"SUBMIT_BUTTON_LABEL": "إرسال",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "تحديث الجزء",
"CANCEL_BUTTON_LABEL": "إلغاء",
"CLEAR_BUTTON_LABEL": "مسح الفلاتر",
"EMPTY_VALUE_ERROR": "القيمة مطلوبة",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
+ "SEGMENT_LABEL": "اسم القسم",
+ "SEGMENT_QUERY_LABEL": "استعلام الجزء",
"TOOLTIP_LABEL": "تصفية جهات الاتصال",
"QUERY_DROPDOWN_LABELS": {
"AND": "و",
@@ -30,6 +30,9 @@
"is_lesser_than": "هو أقل من",
"days_before": "قبل x أيام"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "القيمة مطلوبة"
+ },
"ATTRIBUTES": {
"NAME": "الاسم",
"EMAIL": "البريد الإلكتروني",
@@ -41,10 +44,12 @@
"CUSTOM_ATTRIBUTE_TEXT": "النص",
"CUSTOM_ATTRIBUTE_NUMBER": "العدد",
"CUSTOM_ATTRIBUTE_LINK": "الرابط",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "مربع",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "خانة الاختيار",
"CREATED_AT": "تم إنشاؤها في",
"LAST_ACTIVITY": "آخر نشاط",
- "REFERER_LINK": "رابط المرجع"
+ "REFERER_LINK": "رابط المرجع",
+ "BLOCKED": "محظور",
+ "LABELS": "الوسوم"
},
"GROUPS": {
"STANDARD_FILTERS": "الفلاتر القياسية",
diff --git a/app/javascript/dashboard/i18n/locale/ar/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ar/contentTemplates.json
new file mode 100644
index 000000000..b2d99891d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "نماذج البحث",
+ "NO_TEMPLATES_FOUND": "لم يتم العثور على قوالب",
+ "NO_CONTENT": "لا يوجد محتوى",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "الفئة",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "اللغة",
+ "TEMPLATE_BODY": "نص القالب",
+ "CATEGORY": "الفئة"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "النص"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "المتغيرات",
+ "LANGUAGE": "اللغة",
+ "CATEGORY": "الفئة",
+ "VARIABLE_PLACEHOLDER": "أدخل قيمة {variable}",
+ "GO_BACK_LABEL": "العودة للخلف",
+ "SEND_MESSAGE_LABEL": "إرسال الرسالة",
+ "FORM_ERROR_MESSAGE": "يرجى ملء جميع المتغيرات قبل الإرسال",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "العودة",
+ "SEND_MESSAGE_BUTTON": "إرسال الرسالة"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/conversation.json b/app/javascript/dashboard/i18n/locale/ar/conversation.json
index 9349191a9..1794227c8 100644
--- a/app/javascript/dashboard/i18n/locale/ar/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ar/conversation.json
@@ -11,10 +11,12 @@
"NO_INBOX_1": "يبدو أنك لم تقم بإضافة أي صناديق بريدية بعد.",
"NO_INBOX_2": " للبدء",
"NO_INBOX_AGENT": "يبدو أنه لم يتم إسنادك لأي قنوات تواصل بعد. الرجاء التواصل مع المدير لإضافتك لصناديق الوارد الخاصة بقنوات التواصل",
- "SEARCH_MESSAGES": "البحث عن رسائل في المحادثات",
+ "SEARCH_MESSAGES": "ابحث عن رسائل في المحادثات",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "لفتح قائمة الأوامر",
+ "KEYBOARD_SHORTCUTS": "لعرض اختصارات لوحة المفاتيح"
},
"SEARCH": {
"TITLE": "البحث في الرسائل",
@@ -26,45 +28,101 @@
"UNREAD_MESSAGES": "الرسائل الغير مقروءة",
"UNREAD_MESSAGE": "رسالة غير مقروءة",
"CLICK_HERE": "اضغط هنا",
- "LOADING_INBOXES": "جار تحميل صناديق الوارد",
- "LOADING_CONVERSATIONS": "جاري تحميل المحادثات",
+ "LOADING_INBOXES": "جار جلب صناديق الوارد",
+ "LOADING_CONVERSATIONS": "جاري جلب المحادثات",
"CANNOT_REPLY": "لا يمكنك الرد بسبب",
"24_HOURS_WINDOW": "قيد نافذة الـ 24 ساعة",
+ "48_HOURS_WINDOW": "قيد نافذة الـ 48 ساعة",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "لم يتم تعيين هذه المحادثة لك. هل ترغب في تعيين هذه المحادثة لنفسك؟",
"ASSIGN_TO_ME": "إسناد لي",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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": "تنزيل",
+ "DOWNLOAD": "تحميل",
"UNKNOWN_FILE_TYPE": "ملف غير معروف",
- "SAVE_CONTACT": "حفظ",
- "UPLOADING_ATTACHMENTS": "جاري تحميل المرفقات...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "بدأ {sender} اجتماعاً"
+ },
+ "UPLOADING_ATTACHMENTS": "جاري رفع المرفقات...",
+ "REPLIED_TO_STORY": "رد على قصتك",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "هذه الرسالة غير مدعومة، يمكنك مشاهدة هذه الرسالة على تطبيق فيسبوك (Messenger).",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "هذه الرسالة غير مدعومة، يمكنك عرض هذه الرسالة على تطبيق Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "هذه الرسالة غير مدعومة. يمكنك مشاهدة هذه الرسالة على تطبيق TikTok.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "تم حذف الرسالة بنجاح",
"FAIL_DELETE_MESSSAGE": "تعذر حذف الرسالة! حاول مرة أخرى",
"NO_RESPONSE": "لا توجد استجابة",
+ "RESPONSE": "Response",
"RATING_TITLE": "التقييم",
"FEEDBACK_TITLE": "الملاحظات",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "REPLY_MESSAGE_NOT_FOUND": "الرسالة غير متوفرة",
"CARD": {
"SHOW_LABELS": "إظهار السمات",
- "HIDE_LABELS": "إخفاء السمات"
+ "HIDE_LABELS": "إخفاء السمات",
+ "LABELS_COUNT": "{count} علامة"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "انضم إلى المكالمة",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
- "RESOLVE_ACTION": "إغلاق المحادثة",
+ "RESOLVE_ACTION": "حل المحادثة",
"REOPEN_ACTION": "إعادة فتح",
"OPEN_ACTION": "فتح",
+ "MORE_ACTIONS": "More actions",
"OPEN": "المزيد",
"CLOSE": "أغلق",
"DETAILS": "التفاصيل",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "غفوة حتى الغد",
- "SNOOZED_UNTIL_NEXT_WEEK": "غفوة حتى الأسبوع القادم",
- "SNOOZED_UNTIL_NEXT_REPLY": "غفوة حتى الرد التالي"
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "غفوة حتى",
+ "SNOOZED_UNTIL_TOMORROW": "تأجيل حتى الغد",
+ "SNOOZED_UNTIL_NEXT_WEEK": "تأجيل حتى الأسبوع القادم",
+ "SNOOZED_UNTIL_NEXT_REPLY": "تأجيل حتى الرد التالي",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "مفقود",
+ "DUE": "مستحق"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "تحديد كمعلق",
@@ -73,99 +131,122 @@
"TITLE": "تأجيل حتى",
"NEXT_REPLY": "الرد القادم",
"TOMORROW": "غداً",
- "NEXT_WEEK": "الأسبوع المقبل"
+ "NEXT_WEEK": "الأسبوع القادم"
}
},
+ "MENTION": {
+ "AGENTS": "الوكلاء",
+ "TEAMS": "الفرق"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "تأجيل حتى",
- "APPLY": "غفوة",
+ "APPLY": "تأجيل",
"CANCEL": "إلغاء"
},
"PRIORITY": {
"TITLE": "الأولوية",
"OPTIONS": {
- "NONE": "لا شيء",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "NONE": "لا يوجد",
+ "URGENT": "عاجل",
+ "HIGH": "عالية",
+ "MEDIUM": "متوسطة",
+ "LOW": "منخفضة"
},
"CHANGE_PRIORITY": {
- "SELECT_PLACEHOLDER": "لا شيء",
- "INPUT_PLACEHOLDER": "Select priority",
+ "SELECT_PLACEHOLDER": "لا يوجد",
+ "INPUT_PLACEHOLDER": "تحديد الأولوية",
"NO_RESULTS": "لم يتم العثور على النتائج",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "تغيير أولوية معرف المحادثة {conversationId} إلى {priority}",
+ "FAILED": "تعذر تغيير الأولوية، الرجاء المحاولة مرة أخرى."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "حذف"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "تحديد كمعلق",
"RESOLVED": "تحديد كمحلولة",
"MARK_AS_UNREAD": "وضع علامة كغير مقروء",
+ "MARK_AS_READ": "تحديد كمقروء",
"REOPEN": "إعادة فتح المحادثة",
"SNOOZE": {
- "TITLE": "غفوة",
+ "TITLE": "تأجيل",
"NEXT_REPLY": "حتى الرد القادم",
"TOMORROW": "حتى الغد",
"NEXT_WEEK": "حتى الأسبوع القادم"
},
"ASSIGN_AGENT": "تعيين وكيل",
"ASSIGN_LABEL": "إضافة وسم",
- "AGENTS_LOADING": "جاري تحميل الوكلاء...",
+ "AGENTS_LOADING": "جاري جلب الوكلاء...",
"ASSIGN_TEAM": "تعيين فريق",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "معرف المحادثة %{conversationId} تم تعيينه ل \"%{agentName}\"",
+ "SUCCESFUL": "معرف المحادثة {conversationId} تم تعيينه لـ \"{agentName}\"",
"FAILED": "تعذر تعيين الوكيل. الرجاء المحاولة مرة أخرى."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "تعيين تسمية #%{labelName} لمعرف المحادثة %{conversationId}",
+ "SUCCESFUL": "تعيين تسمية #{labelName} لمعرف المحادثة {conversationId}",
"FAILED": "تعذر تعيين التسمية. الرجاء المحاولة مرة أخرى."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "الفريق المعين \"%{team}\" لمعرف المحادثة %{conversationId}",
+ "SUCCESFUL": "الفريق المعين \"{team}\" لمعرف المحادثة {conversationId}",
"FAILED": "تعذر تعيين الفريق. الرجاء المحاولة مرة أخرى."
}
}
},
"FOOTER": {
"MESSAGE_SIGN_TOOLTIP": "توقيع الرسالة",
- "ENABLE_SIGN_TOOLTIP": "تمكين التوقيع",
+ "ENABLE_SIGN_TOOLTIP": "تفعيل التوقيع",
"DISABLE_SIGN_TOOLTIP": "تعطيل التوقيع",
- "MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. ابدأ بزر / للاختيار من الردود السريعة.",
- "PRIVATE_MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. سيكون هذا مرئياً للموظفين فقط",
+ "MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. ابدأ بزر / للاختيار من الردود الجاهزة.",
+ "PRIVATE_MSG_INPUT": "زر Shift + Enter لإضافة سطر جديد. سيكون هذا مرئياً للوكلاء فقط",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "لم يتم تكوين توقيع الرسالة، الرجاء تكوينه في إعدادات الملف الشخصي.",
- "CLICK_HERE": "انقر هنا للتحديث"
+ "COPILOT_MSG_INPUT": "إعطاء copilot أوامر إضافية، أو السؤال عن أي شيء آخر... اضغط على مفتاح الإدخال لإرسال المتابعة",
+ "CLICK_HERE": "انقر هنا للتحديث",
+ "WHATSAPP_TEMPLATES": "قوالب الواتساب"
},
"REPLYBOX": {
"REPLY": "إضافة رد",
"PRIVATE_NOTE": "إضافة ملاحظة خاصة",
"SEND": "إرسال",
"CREATE": "إضافة ملاحظة",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "عرض محرر النصوص",
+ "INSERT_READ_MORE": "اقرأ المزيد",
+ "DISMISS_REPLY": "استبعاد الرد",
+ "REPLYING_TO": "الرد على:",
"TIP_EMOJI_ICON": "إظهار قائمة الرموز التعبيرية",
"TIP_ATTACH_ICON": "إرفاق الملفات",
"TIP_AUDIORECORDER_ICON": "تسجيل الصوت",
"TIP_AUDIORECORDER_PERMISSION": "السماح بالوصول إلى الصوت",
"TIP_AUDIORECORDER_ERROR": "تعذر فتح الصوت",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "اسحب و أسقط هنا للإرفاق",
"START_AUDIO_RECORDING": "بدء التسجيل الصوتي",
"STOP_AUDIO_RECORDING": "إيقاف التسجيل الصوتي",
- "": "",
+ "COPILOT_THINKING": "Copilot يفكر",
"EMAIL_HEAD": {
- "TO": "TO",
+ "TO": "إلى",
"ADD_BCC": "إضافة bcc",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "البريد الإلكتروني مفصولة بفاصلة",
+ "PLACEHOLDER": "عناوين البريد الإلكتروني مفصولة بفاصلة",
"ERROR": "الرجاء إدخال عنوان بريد إلكتروني صحيح"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "البريد الإلكتروني مفصولة بفاصلة",
+ "PLACEHOLDER": "عناوين البريد الإلكتروني مفصولة بفاصلة",
"ERROR": "الرجاء إدخال عنوان بريد إلكتروني صحيح"
}
},
@@ -176,20 +257,32 @@
"YES": "إرسال",
"CANCEL": "إلغاء"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
- "VISIBLE_TO_AGENTS": "ملاحظة خاصة: مرئية فقط لأعضاء فريق العمل والموظفين",
+ "VISIBLE_TO_AGENTS": "ملاحظة خاصة: مرئية فقط لك ولأعضاء فريقك",
"CHANGE_STATUS": "تم تغيير حالة المحادثة",
"CHANGE_STATUS_FAILED": "فشل تغيير حالة المحادثة",
- "CHANGE_AGENT": "تم تغيير الموظف الذي تم إحالة المحادثة إليه",
+ "CHANGE_AGENT": "تم تغيير الوكيل الذي تم إحالة المحادثة إليه",
"CHANGE_AGENT_FAILED": "فشل تغيير المحال إليه",
"ASSIGN_LABEL_SUCCESFUL": "تم تعيين الوسم بنجاح",
"ASSIGN_LABEL_FAILED": "فشل تعيين الوسم",
"CHANGE_TEAM": "تم تغيير فريق المحادثة",
- "FILE_SIZE_LIMIT": "الملف يتجاوز حد المرفق {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} ميغابايت",
+ "SUCCESS_DELETE_CONVERSATION": "Conversation deleted successfully",
+ "FAIL_DELETE_CONVERSATION": "Couldn't delete conversation! Try again",
+ "FILE_SIZE_LIMIT": "حجم الملف يتجاوز حد الاقصى وهو {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}",
+ "FILE_TYPE_NOT_SUPPORTED": "هذا النوع من الملفات {fileName} غير مدعوم في هذه المحادثة",
"MESSAGE_ERROR": "غير قادر على إرسال هذه الرسالة، الرجاء المحاولة مرة أخرى لاحقاً",
"SENT_BY": "أرسلت بواسطة:",
"BOT": "رد آلي",
+ "NATIVE_APP": "تطبيق الجوال",
+ "NATIVE_APP_ADVISORY": "تم إرسال هذه الرسالة من تطبيق الجوال. رد من Chatwoot للحفاظ على نافذة الرسالة.",
"SEND_FAILED": "تعذر إرسال الرسالة! حاول مرة أخرى",
"TRY_AGAIN": "إعادة المحاولة",
"ASSIGNMENT": {
@@ -199,18 +292,37 @@
},
"CONTEXT_MENU": {
"COPY": "نسخ",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "الرد على هذه الرسالة",
"DELETE": "حذف",
- "CREATE_A_CANNED_RESPONSE": "إضافة إلى الردود السريعة",
+ "CREATE_A_CANNED_RESPONSE": "إضافة إلى الردود الجاهزة",
"TRANSLATE": "ترجم",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "COPY_PERMALINK": "نسخ الرابط إلى الرسالة",
+ "LINK_COPIED": "تم نسخ عنوان URL للرسالة إلى الحافظة",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "هل أنت متأكد من أنك تريد حذف هذه الرسالة؟",
+ "MESSAGE": "لا يمكنك التراجع عن هذا الإجراء",
"DELETE": "حذف",
"CANCEL": "إلغاء"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "جهات الاتصال",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "مكالمة واردة",
+ "OUTGOING_CALL": "مكالمة صادرة",
+ "CALL_IN_PROGRESS": "مكالمة قيد الاتصال",
+ "NOT_ANSWERED_YET": "لم يتم الرد بعد",
+ "HANDLED_IN_ANOTHER_TAB": "يتم التعامل معها في علامة تبويب أخرى",
+ "REJECT_CALL": "رفض",
+ "DISMISS_CALL": "تجاهل",
+ "JOIN_CALL": "انضم إلى المكالمة",
+ "END_CALL": "إنهاء المكالمة",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,9 +332,10 @@
"CANCEL": "إلغاء",
"SEND_EMAIL_SUCCESS": "تم إرسال نص المحادثة بنجاح",
"SEND_EMAIL_ERROR": "حدث خطأ، الرجاء المحاولة مرة أخرى",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "إرسال نص المحادثة إلى العميل",
- "SEND_TO_AGENT": "إرسال نص المحادثة إلى ممثل خدمة العملاء المعين",
+ "SEND_TO_AGENT": "إرسال نص المحادثة إلى وكيل خدمة العملاء المعين",
"SEND_TO_OTHER_EMAIL_ADDRESS": "إرسال النص إلى عنوان بريد إلكتروني آخر",
"EMAIL": {
"PLACEHOLDER": "أدخل عنوان بريد إلكتروني",
@@ -231,33 +344,37 @@
}
},
"ONBOARDING": {
- "TITLE": "اهلاً 👋، مرحباً بك في %{installationName}!",
- "DESCRIPTION": "شكرا للتسجيل. نريدك أن تحصل على أقصى استفادة من %{installationName}. إليك بعض الأشياء التي يمكنك القيام بها في %{installationName} لجعل التجربة رائعة.",
+ "TITLE": "اهلاً 👋، مرحباً بك في {installationName}!",
+ "DESCRIPTION": "شكرا للتسجيل. نريدك أن تحصل على أقصى استفادة من {installationName}. إليك بعض الأشياء التي يمكنك القيام بها في {installationName} لجعل التجربة رائعة.",
+ "GREETING_MORNING": "👋 صباح الخير، {name}. مرحبا بك في {installationName}.",
+ "GREETING_AFTERNOON": "👋 مساء الخير، {name}. مرحبا بك في {installationName}.",
+ "GREETING_EVENING": "👋 مساء الخير، {name}. مرحبا بك في {installationName}.",
"READ_LATEST_UPDATES": "اطلع على آخر التحديثات",
"ALL_CONVERSATION": {
"TITLE": "جميع محادثاتك في مكان واحد",
- "DESCRIPTION": "عرض جميع المحادثات من عملائك في لوحة تحكم واحدة. يمكنك تصفية المحادثات بحسب قناة الواردة والتسمية والحالة."
+ "DESCRIPTION": "عرض جميع المحادثات من عملائك في لوحة تحكم واحدة. يمكنك تصفية المحادثات حسب القناة الواردة والتسمية والحالة.",
+ "NEW_LINK": "انقر هنا لإنشاء صندوق وارد"
},
"TEAM_MEMBERS": {
"TITLE": "قم بدعوة أعضاء فريقك",
- "DESCRIPTION": "عندما تصبح جاهز للتخاطب مع عميلك، احضر زملائك في الفريق لمساعدتك. يمكنك دعوة زملائك في الفريق بإضافة عنوان البريد الإلكتروني الخاص بهم إلى قائمة الوكيل.",
+ "DESCRIPTION": "عندما تصبح جاهز للتخاطب مع عميلك، احضر زملائك في الفريق لمساعدتك. يمكنك دعوة زملائك في الفريق بإضافة عنوان البريد الإلكتروني الخاص بهم إلى قائمة الوكلاء.",
"NEW_LINK": "انقر هنا لدعوة عضو في الفريق"
},
- "INBOXES": {
- "TITLE": "ربط صندوق الوارد",
- "DESCRIPTION": "قم بتوصيل مختلف القنوات التي من خلالها يتحدث عملاؤك إليك. يمكن أن تكون محادثة مباشرة على موقع الويب أو صفحة فيسبوك أو تويتر أو حتى رقم WhatsApp الخاص بك.",
- "NEW_LINK": "انقر هنا لإنشاء علبة الوارد"
- },
"LABELS": {
"TITLE": "تنظيم المحادثات مع التسميات",
"DESCRIPTION": "التسميات توفر طريقة أسهل لتصنيف محادثتك. إنشاء بعض التسميات مثل #كبار_العملاء، #العملاء_المحتملون الخ، بحيث يمكنك استخدامها في محادثة لاحقا.",
"NEW_LINK": "انقر هنا لإنشاء وسوم"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "إدارة الردود الجاهزة",
+ "DESCRIPTION": "الردود المسبقة هي قوالب رد مكتوبة مسبقاً تساعدك على الرد بسرعة على محادثة. يمكن للوكلاء كتابة حرف '/' يتبعه الرمز المختصر لإدراج رد مسبق أثناء محادثة.",
+ "NEW_LINK": "انقر هنا لإنشاء استجابة مسبقة"
}
},
"CONVERSATION_SIDEBAR": {
"ASSIGNEE_LABEL": "الوكيل المكلف",
- "SELF_ASSIGN": "إسناد لي",
- "TEAM_LABEL": "العضو المكلف",
+ "SELF_ASSIGN": "إسناد إلي",
+ "TEAM_LABEL": "الفريق المكلف",
"SELECT": {
"PLACEHOLDER": "لا شيء"
},
@@ -266,13 +383,48 @@
"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",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "عرض الكل",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "معلق",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "إنشاء سمة جديدة",
+ "NO_RECORDS_FOUND": "لم يتم العثور على سمات",
"UPDATE": {
"SUCCESS": "تم تحديث السمة المخصصة بنجاح",
"ERROR": "غير قادر على تحديث السمة. الرجاء المحاولة مرة أخرى لاحقاً"
@@ -295,20 +447,21 @@
"EMAIL_HEADER": {
"FROM": "من",
"TO": "إلى",
- "BCC": "Bcc",
- "CC": "Cc",
- "SUBJECT": "الموضوع"
+ "BCC": "نسخة خفية من البريد",
+ "CC": "نسخة من البريد",
+ "SUBJECT": "الموضوع",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "شارك",
+ "SIDEBAR_MENU_TITLE": "المشاركة",
"SIDEBAR_TITLE": "المشاركون في المحادثة",
"NO_RECORDS_FOUND": "لم يتم العثور على النتائج",
"ADD_PARTICIPANTS": "اختر المشاركين",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} أخرى",
- "REMANING_PARTICIPANT_TEXT": "+%{count} أخرى",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} شخص مشارك.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} شخص مشارك.",
- "NO_PARTICIPANTS_TEXT": "لا أحد يشارك !.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} آخرون",
+ "REMANING_PARTICIPANT_TEXT": "+{count} أخرى",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} شخص مشارك.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} شخص مشارك.",
+ "NO_PARTICIPANTS_TEXT": "لا أحد يشارك!",
"WATCH_CONVERSATION": "الانضمام إلى المحادثة",
"YOU_ARE_WATCHING": "أنت مشترك",
"API": {
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "المحتوى الأصلي",
"TRANSLATED_CONTENT": "المحتوى المترجم",
"NO_TRANSLATIONS_AVAILABLE": "لا توجد ترجمات لهذا المحتوى"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/csatMgmt.json b/app/javascript/dashboard/i18n/locale/ar/csatMgmt.json
index 1528669f1..636135f65 100644
--- a/app/javascript/dashboard/i18n/locale/ar/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/csatMgmt.json
@@ -3,11 +3,11 @@
"TITLE": "قيم محادثتك",
"PLACEHOLDER": "أخبرنا المزيد...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 سيئ",
+ "FAIR": "مقبول😑",
+ "AVERAGE": "😐 متوسط",
+ "GOOD": "😀 جيد",
+ "EXCELLENT": "😍 ممتاز"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/customRole.json b/app/javascript/dashboard/i18n/locale/ar/customRole.json
new file mode 100644
index 000000000..54b87ef1f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "DESCRIPTION": "الوصف",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "الإجراءات"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "الاسم مطلوب."
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "الوصف مطلوب."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "إلغاء",
+ "API": {
+ "ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "إرسال",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "تعديل",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "تحديث",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "حذف",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
+ },
+ "CONFIRM": {
+ "TITLE": "تأكيد الحذف",
+ "MESSAGE": "هل أنت متأكد من الحذف ",
+ "YES": "نعم، احذف ",
+ "NO": "لا، احتفظ به "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/datePicker.json b/app/javascript/dashboard/i18n/locale/ar/datePicker.json
new file mode 100644
index 000000000..6c89206b5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "تطبيق",
+ "CLEAR_BUTTON": "مسح",
+ "DATE_RANGE_INPUT": {
+ "START": "تاريخ البدء",
+ "END": "تاريخ الانتهاء"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "نطاق التاريخ",
+ "LAST_7_DAYS": "آخر 7 أيام",
+ "LAST_30_DAYS": "آخر 30 يوماً",
+ "LAST_3_MONTHS": "آخر 3 أشهر",
+ "LAST_6_MONTHS": "آخر 6 أشهر",
+ "LAST_YEAR": "العام الماضي",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "تحديد نطاق التاريخ"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/general.json b/app/javascript/dashboard/i18n/locale/ar/general.json
new file mode 100644
index 000000000..39319483a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "عرض{firstIndex}-{lastIndex} من {totalCount} إجمالي العناصر",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "بحث",
+ "EMPTY_STATE": "لم يتم العثور على النتائج"
+ },
+ "CLOSE": "أغلق",
+ "BETA": "تجريبي",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "قبول",
+ "DISCARD": "Discard",
+ "PREFERRED": "المفضلة"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "نعم",
+ "NO": "لا"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
index fd96a3ca4..0a4e56628 100644
--- a/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/generalSettings.json
@@ -1,15 +1,41 @@
{
"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. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "إعدادات الحساب",
"SUBMIT": "تحديث الإعدادات",
"BACK": "العودة",
- "DISMISS": "Dismiss",
+ "DISMISS": "تجاهل",
"UPDATE": {
"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": "هذا الحساب مجدول للحذف بتاريخ {deletionDate}. تم طلبه من قبل المسؤول. يمكنك إلغاء الحذف قبل هذا التاريخ.",
+ "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": "الرجاء إصلاح الأخطاء في الفورم",
+ "ERROR": "الرجاء إصلاح الأخطاء في النموذج",
"GENERAL_SECTION": {
"TITLE": "الإعدادات العامة",
"NOTE": ""
@@ -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,42 +92,65 @@
"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": "الاستمرار في المحادثة عبر رسائل البريد الإلكتروني مفعّل لحسابك.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "يمكنك تلقي رسائل البريد الإلكتروني في النطاق المخصص الخاص بك الآن."
}
},
- "UPDATE_CHATWOOT": "يتوفر تحديث %{latestChatwootVersion} لـ Chatwoot. الرجاء التحديث.",
+ "UPDATE_CHATWOOT": "يتوفر تحديث {latestChatwootVersion} لـ Chatwoot. الرجاء التحديث.",
"LEARN_MORE": "اعرف المزيد",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information 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"
+ "PAYMENT_PENDING": "الدفعة الخاصة بك معلقة. الرجاء تحديث معلومات الدفع الخاصة بك للاستمرار في استخدام Chatwoot",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
+ "LIMITS_UPGRADE": "لقد تجاوز حسابك حدود الاستخدام، يرجى ترقية خطتك للاستمرار في استخدام Chatwoot",
+ "OPEN_BILLING": "فتح الفواتير"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "اضغط على زر الإدخال للاختيار",
"ENTER_TO_REMOVE": "اضغط على زر الإدخال للحذف",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "اختر واحدا",
"SELECT": "اختر"
}
},
"NOTIFICATIONS_PAGE": {
"HEADER": "الإشعارات",
- "MARK_ALL_DONE": "وضع علامة على جميع المنجز",
+ "MARK_ALL_DONE": "وضع علامة منجز على الجميع",
"DELETE_TITLE": "تم الحذف",
"UNREAD_NOTIFICATION": {
"TITLE": "إشعارات غير مقروءة",
"ALL_NOTIFICATIONS": "عرض جميع الإشعارات",
- "LOADING_UNREAD_MESSAGE": "تحميل الإشعارات الغير مقروءة...",
+ "LOADING_UNREAD_MESSAGE": "جار جلب الإشعارات الغير مقروءة...",
"EMPTY_MESSAGE": "ليس لديك إشعارات غير مقروءة"
},
"LIST": {
- "LOADING_MESSAGE": "جاري تحميل الإشعارات...",
+ "LOADING_MESSAGE": "جاري جلب الإشعارات...",
"404": "لا يوجد إشعارات",
"TABLE_HEADER": [
"الاسم",
@@ -87,12 +164,17 @@
"conversation_assignment": "تم تعيين المحادثة",
"assigned_conversation_new_message": "رسالة جديدة",
"participating_conversation_new_message": "رسالة جديدة",
- "conversation_mention": "إشارة"
+ "conversation_mention": "إشارة",
+ "sla_missed_first_response": "فشل اتفاقية مستوى الخدمة",
+ "sla_missed_next_response": "فشل اتفاقية مستوى الخدمة",
+ "sla_missed_resolution": "فشل اتفاقية مستوى الخدمة"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "غير متصل"
+ "OFFLINE": "غير متصل",
+ "RECONNECTING": "جاري إعادة الاتصال...",
+ "RECONNECT_SUCCESS": "تمت إعادة الاتصال"
},
"BUTTON": {
"REFRESH": "تحديث"
@@ -100,47 +182,49 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "البحث أو القفز إلى",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "عام",
"REPORTS": "التقارير",
"CONVERSATION": "المحادثات",
+ "BULK_ACTIONS": "الإجراءات الشاملة",
"CHANGE_ASSIGNEE": "تغيير المحال إليه",
- "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_PRIORITY": "تغيير الأولوية",
"CHANGE_TEAM": "تغيير الفريق",
"SNOOZE_CONVERSATION": "تأجيل المحادثة",
- "ADD_LABEL": "إضافة تسمية إلى المحادثة",
- "REMOVE_LABEL": "إزالة التسمية من المحادثة",
+ "ADD_LABEL": "إضافة وسم إلى المحادثة",
+ "REMOVE_LABEL": "إزالة الوسم من المحادثة",
"SETTINGS": "الإعدادات",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "مساعدة AI",
+ "APPEARANCE": "المظهر",
+ "SNOOZE_NOTIFICATION": "تأجيل الإشعارات"
},
"COMMANDS": {
"GO_TO_CONVERSATION_DASHBOARD": "الذهاب إلى لوحة المحادثة",
"GO_TO_CONTACTS_DASHBOARD": "الذهاب إلى لوحة جهات الاتصال",
- "GO_TO_REPORTS_OVERVIEW": "الذهاب إلى نظرة التقارير",
+ "GO_TO_REPORTS_OVERVIEW": "الذهاب إلى نظرة التقارير العامة",
"GO_TO_CONVERSATION_REPORTS": "الذهاب إلى تقارير المحادثات",
"GO_TO_AGENT_REPORTS": "الذهاب إلى تقارير الوكيل",
- "GO_TO_LABEL_REPORTS": "انتقل إلى تقارير التسمية",
+ "GO_TO_LABEL_REPORTS": "انتقل إلى تقارير الوسم",
"GO_TO_INBOX_REPORTS": "الذهاب إلى تقارير صندوق الوارد",
"GO_TO_TEAM_REPORTS": "الذهاب إلى تقارير الفريق",
- "GO_TO_SETTINGS_AGENTS": "الذهاب إلى تقارير الوكيل",
+ "GO_TO_SETTINGS_AGENTS": "الذهاب إلى إعدادات الوكيل",
"GO_TO_SETTINGS_TEAMS": "الذهاب إلى إعدادات الفريق",
- "GO_TO_SETTINGS_INBOXES": "الذهاب إلى إعدادات علبة الوارد",
- "GO_TO_SETTINGS_LABELS": "الذهاب إلى إعدادات التسمية",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "انتقل إلى إعدادات الاستجابة المسبقة",
+ "GO_TO_SETTINGS_INBOXES": "الذهاب إلى إعدادات الصندوق الوارد",
+ "GO_TO_SETTINGS_LABELS": "الذهاب إلى إعدادات الوسم",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "انتقل إلى إعدادات الردود الجاهزة",
"GO_TO_SETTINGS_APPLICATIONS": "الذهاب إلى إعدادات التطبيق",
"GO_TO_SETTINGS_ACCOUNT": "الذهاب إلى إعدادات الحساب",
"GO_TO_SETTINGS_PROFILE": "الذهاب إلى إعدادات الملف الشخصي",
"GO_TO_NOTIFICATIONS": "الذهاب إلى الإشعارات",
- "ADD_LABELS_TO_CONVERSATION": "إضافة تسمية إلى المحادثة",
+ "ADD_LABELS_TO_CONVERSATION": "إضافة وسم إلى المحادثة",
"ASSIGN_AN_AGENT": "تعيين وكيل",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
+ "AI_ASSIST": "مساعدة AI",
+ "ASSIGN_PRIORITY": "تعيين الأولوية",
"ASSIGN_A_TEAM": "تعيين فريق",
"MUTE_CONVERSATION": "كتم المحادثة",
"UNMUTE_CONVERSATION": "إلغاء كتم المحادثة",
- "REMOVE_LABEL_FROM_CONVERSATION": "إزالة التسمية من المحادثة",
+ "REMOVE_LABEL_FROM_CONVERSATION": "إزالة الوسم من المحادثة",
"REOPEN_CONVERSATION": "إعادة فتح المحادثة",
"RESOLVE_CONVERSATION": "حل المحادثة",
"SEND_TRANSCRIPT": "إرسال نسخة نصية للبريد الإلكتروني",
@@ -148,21 +232,21 @@
"UNTIL_NEXT_REPLY": "حتى الرد القادم",
"UNTIL_NEXT_WEEK": "حتى الأسبوع القادم",
"UNTIL_TOMORROW": "حتى الغد",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "UNTIL_NEXT_MONTH": "حتي الشهر القادم",
+ "AN_HOUR_FROM_NOW": "حتي ساعة من الأن",
+ "UNTIL_CUSTOM_TIME": "مخصص...",
+ "CHANGE_APPEARANCE": "تغيير المظهر",
+ "LIGHT_MODE": "فاتح",
+ "DARK_MODE": "مظلم",
+ "SYSTEM_MODE": "النظام",
+ "SNOOZE_NOTIFICATION": "تأجيل الإشعارات"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "تحميل تطبيق لوحة التحكم..."
+ "LOADING_MESSAGE": "جاري جلب تطبيق لوحة التحكم..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "أو",
"CLICK_HERE": "اضغط هنا"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
index 234af4b46..5289aa444 100644
--- a/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ar/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "مركز المساعدة",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "إنشاء بوابة"
+ },
"HEADER": {
"FILTER": "تصفية حسب",
"SORT": "ترتيب حسب",
@@ -18,10 +23,10 @@
"ARCHIVED": "المقالات المؤرشفة"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "حدد اللغة",
+ "PLACEHOLDER": "حدد اللغة",
+ "NO_RESULT": "لا توجد لغات",
+ "SEARCH_PLACEHOLDER": "البحث عن اللغة"
}
},
"EDIT_HEADER": {
@@ -39,11 +44,12 @@
"IMAGE_UPLOAD": {
"TITLE": "رفع صورة",
"UPLOADING": "جاري الرفع...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "تم رفع الصورة بنجاح",
+ "ERROR": "حدث خطأ أثناء رفع الصورة",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
+ "ERROR_FILE_SIZE": "حجم الصورة يجب أن يكون أقل من {size}MB",
+ "ERROR_FILE_FORMAT": "تنسيق الصورة يجب أن يكون jpg أو jpeg أو png",
+ "ERROR_FILE_DIMENSIONS": "ينبغي أن تكون أبعاد الصورة أقل من 2000 × 2000"
}
},
"ARTICLE_SETTINGS": {
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "يبحث...",
"INSERT_ARTICLE": "Insert",
@@ -149,113 +155,113 @@
"NO": "No, keep portal",
"API": {
"DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_ERROR": "حدث خطأ أثناء حذف البوابة"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "تعديل البوابة",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "المعلومات الأساسية"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "تخصيص البوابة"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "الفئات"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "اللغات"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "الفئات في",
+ "NEW_CATEGORY": "فئة جديدة",
"TABLE": {
"NAME": "الاسم",
"DESCRIPTION": "الوصف",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "LOCALE": "اللغة",
+ "ARTICLE_COUNT": "عدد المقالات",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "تعديل الفئة",
+ "DELETE": "حذف الفئة"
},
- "EMPTY_TEXT": "لم يتم العثور على فئات"
+ "EMPTY_TEXT": "لم يتم العثور على الفئات"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "تحديث الإعدادات الأساسية"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "معلومات مركز المساعدة",
+ "BODY": "معلومات أساسية عن البوابة"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "تخصيص مركز المساعدة",
+ "BODY": "تخصيص البوابة"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "إنهاء"
+ "FINISH": {
+ "TITLE": "تم! 🎉",
+ "BODY": "أنت جاهز!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "العودة",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "إنشاء بوابة",
+ "TITLE": "معلومات مركز المساعدة",
+ "CREATE_BASIC_SETTING_BUTTON": "إنشاء إعدادات البوابة الأساسية"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "تخصيص البوابة",
+ "TITLE": "تخصيص مركز المساعدة",
+ "UPDATE_PORTAL_BUTTON": "تحديث إعدادات البوابة"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "تم!🎉 أنت جاهز!",
+ "MESSAGE": "يمكنك الآن رؤية هذه البوابة في صفحة جميع البوابات.",
+ "FINISH": "الذهاب إلى صفحة جميع البوابات"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "الشعار",
+ "UPLOAD_BUTTON": "رفع الشعار",
+ "HELP_TEXT": "سيتم عرض هذا الشعار على رأس البوابة.",
+ "IMAGE_UPLOAD_SUCCESS": "تم رفع الشعار بنجاح",
+ "IMAGE_UPLOAD_ERROR": "تم حذف الشعار بنجاح",
+ "IMAGE_DELETE_ERROR": "حدث خطأ أثناء حذف الشعار"
},
"NAME": {
"LABEL": "الاسم",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "الاسم سيتم مشاهدتة من جميع من جميع زوار الصفحة.",
+ "PLACEHOLDER": "اسم البوابة",
+ "HELP_TEXT": "الاسم سيتم مشاهدتة من جميع زوار الصفحة.",
"ERROR": "الاسم مطلوب"
},
"SLUG": {
- "LABEL": "وصف مختصر",
- "PLACEHOLDER": "وصف مختصر لرابط البوابة",
- "ERROR": "الوصف مطلوب"
+ "LABEL": "الإسم المختصر",
+ "PLACEHOLDER": "الإسم المختصر لرابط البوابة",
+ "ERROR": "الإسم المختصر مطلوب"
},
"DOMAIN": {
"LABEL": "نطاق مخصص",
"PLACEHOLDER": "نطاق البوابة المخصص",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "رابط الصفحة الرئيسية",
"PLACEHOLDER": "رابط الصفحة الرئيسية للبوابة",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "تم إزالة اللغة من البوابة بنجاح",
"ERROR_MESSAGE": "غير قادر على إزالة اللغة من البوابة. حاول مرة أخرى."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,11 +366,17 @@
"SUCCESS": "تم أرشفة المقالة بنجاح"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "تأكيد الحذف",
- "MESSAGE": "Are you sure to delete the article?",
+ "MESSAGE": "هل أنت متأكد من حذف المقالة؟",
"YES": "نعم، احذف",
"NO": "لا، احتفظ به"
}
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -456,7 +490,7 @@
"BACK_RESULTS": "Back to results"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
+ "TITLE": "مركز المساعدة",
"DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
"SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
"BUTTON": {
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "جار التحميل...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "نشر",
+ "DRAFT": "مسودة",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "ترجم",
+ "DELETE": "حذف"
+ },
+ "STATUS": {
+ "DRAFT": "مسودة",
+ "PUBLISHED": "نُشرت",
+ "ARCHIVED": "أرشفة"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "محادثاتي",
+ "DRAFT": "مسودة",
+ "PUBLISHED": "نُشرت",
+ "ARCHIVED": "أرشفة"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "ترجمة المقالة | ترجمة {count} مقالة",
+ "DESCRIPTION": "ترجمة المقالة المحددة إلى لغة أخرى. | ترجمة المقالات المحددة إلى لغة أخرى.",
+ "LOCALE_LABEL": "اللغة المستهدفة",
+ "LOCALE_PLACEHOLDER": "اختر لغة",
+ "CATEGORY_LABEL": "الفئة المستهدفة",
+ "CATEGORY_PLACEHOLDER": "اختر الفئة",
+ "OPTIONAL": "(اختياري)",
+ "CONFIRM": "ترجم",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "ترجم",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "نشر",
+ "DRAFT": "مسودة",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "ترجم",
+ "MOVE_TO_CATEGORY": "الفئة",
+ "DELETE": "حذف",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "حذف",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "فئة جديدة",
+ "EDIT_CATEGORY": "تعديل الفئة",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "لم يتم العثور على الفئات",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "تعديل الفئة",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "الاسم مطلوب"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "الوصف مطلوب"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "إنشاء",
+ "EDIT": "تحديث",
+ "CANCEL": "إلغاء"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "افتراضي",
+ "DRAFT": "مسودة",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "حذف"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "إضافة لغة جديدة",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "حدد اللغة..."
+ },
+ "STATUS": {
+ "LABEL": "الحالة",
+ "OPTIONS": {
+ "LIVE": "نُشرت",
+ "DRAFT": "مسودة"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "تمت إضافة اللغة بنجاح",
+ "ERROR_MESSAGE": "غير قادر على إضافة اللغة . حاول مرة أخرى."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "جاري الحفظ...",
+ "SAVED": "تم الحفظ"
+ },
+ "PREVIEW": "معاينة",
+ "PUBLISH": "نشر",
+ "DRAFT": "مسودة",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "وصف التعريف",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "العنوان الوصفي",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "علامات الوصف",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "حدث خطأ أثناء حفظ المقالة"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "الصفحات",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "المقالات",
+ "DOMAIN": "النطاق",
+ "PORTAL_NAME": "اسم البوابة"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "إنشاء",
+ "NAME": {
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "الاسم مطلوب"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "الشعار",
+ "IMAGE_UPLOAD_ERROR": "تعذر رفع الصورة! حاول مرة أخرى",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "تم حذف الشعار بنجاح",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "حجم الصورة يجب أن يكون أقل من {size}MB"
+ },
+ "NAME": {
+ "LABEL": "الاسم",
+ "PLACEHOLDER": "اسم البوابة",
+ "ERROR": "الاسم مطلوب"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "نص رأس البوابة"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "عنوان البوابة"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "رابط الصفحة الرئيسية للبوابة",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "نطاق مخصص",
+ "LABEL": "نطاق مخصص:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "نطاق البوابة المخصص",
+ "EDIT_BUTTON": "تعديل",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "مباشر",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "نطاق مخصص",
+ "PLACEHOLDER": "نطاق البوابة المخصص",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "إرسال"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "حذف"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "المظهر",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "حذف"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "تم إنشاء البوابة بنجاح",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "تم تحديث البوابة بنجاح",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "جاري الرفع...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "إلغاء",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "مكتمل",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/inbox.json b/app/javascript/dashboard/i18n/locale/ar/inbox.json
index debc566a2..ffc8ed16b 100644
--- a/app/javascript/dashboard/i18n/locale/ar/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ar/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "صندوق الوارد",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "تم تحميل كافة الإشعارات 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "غفوة حتى الغد",
- "SNOOZED_UNTIL_NEXT_WEEK": "غفوة حتى الأسبوع القادم"
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "عرض",
+ "LOADING": "جار جلب الإشعارات",
+ "404": "لا توجد إشعارات نشطة في هذه المجموعة.",
+ "NO_NOTIFICATIONS": "لا توجد إشعارات",
+ "NOTE": "الإشعارات من جميع صناديق الوارد المشترك بها",
+ "NO_MESSAGES_AVAILABLE": "عذرًا! لا يمكن جلب الرسائل",
+ "SNOOZED_UNTIL": "تأجيل حتى",
+ "SNOOZED_UNTIL_TOMORROW": "تأجيل حتى الغد",
+ "SNOOZED_UNTIL_NEXT_WEEK": "تأجيل حتى الأسبوع القادم"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "تأجيل الإشعار",
+ "DELETE": "حذف الإشعار",
+ "BACK": "العودة"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "تم ذكرك في محادثة",
+ "CONVERSATION_CREATION": "تم إنشاء محادثة جديدة",
+ "CONVERSATION_ASSIGNMENT": "تم تعيين محادثة لك",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "رسالة جديدة في محادثة معينة لك",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "رسالة جديدة في محادثة تشارك فيها",
+ "SLA_MISSED_FIRST_RESPONSE": "تم تجاوز الهدف الأول للرد للمحادثة",
+ "SLA_MISSED_NEXT_RESPONSE": "تم تجاوز الهدف التالي للرد للمحادثة",
+ "SLA_MISSED_RESOLUTION": "تم تجاوز الهدف النهائي للحل للمحادثة"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "رسالة جديدة",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "رسالة جديدة",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "لم يتم العثور على محتوى",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
- "MARK_AS_UNREAD": "وضع علامة كغير مقروء",
- "SNOOZE": "غفوة",
+ "MARK_AS_READ": "تحديد كمقروء",
+ "MARK_AS_UNREAD": "تحديد كغير مقروء",
+ "SNOOZE": "تأجيل",
"DELETE": "حذف",
"MARK_ALL_READ": "تحديد الكل كمقروء",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "حذف الكل",
+ "DELETE_ALL_READ": "حذف كل المقروء"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "فرز",
+ "DISPLAY": "عرض :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "الأحدث",
+ "OLDEST": "الأقدم",
"PRIORITY": "الأولوية"
},
"DISPLAY_OPTIONS": {
- "SNOOZED": "غفوة",
- "READ": "قرائة",
+ "SNOOZED": "مؤجل",
+ "READ": "قراءة",
"LABELS": "الوسوم",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "معرف المحادثة"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "تم وضع علامة الإشعار كمقروء",
+ "MARK_AS_UNREAD": "تم وضع علامة الإشعار كغير مقروء",
+ "SNOOZE": "تم تأجيل الإشعار",
+ "DELETE": "تم حذف الإشعار",
+ "MARK_ALL_READ": "تم تحديد جميع الإشعارات كمقروءة",
+ "DELETE_ALL": "تم حذف كل الإشعارات",
+ "DELETE_ALL_READ": "تم حذف كل الإشعارات المقروءة"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
index 8b6e42b45..6acb48cfc 100644
--- a/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "قنوات التواصل",
- "SIDEBAR_TXT": "قنوات التواصل
عند ربطك لموقع ويب أو صفحة فيسبوك إلى Chatwoot، يتم تسميتها قناة تواصل. يمكنك إنشاء قنوات تواصل غير محدودة من مختلف الأنواع في حساب Chatwoot الخاص بك.
انقر فوق إضافة قناة تواصل لربط موقع الويب أو صفحة فيسبوك الخاصة بك.
من لوحة الإدارة، يمكنك رؤية جميع المحادثات من جميع صناديق الوارد الخاصة بك والرد عليها من مكان موّحد عبر الضغط على علامة التبويب \"المحادثات\".
يمكنك أيضًا مشاهدة المحادثات الخاصة بصندوق وارد معين بالنقر على اسم صندوق الوارد على الجزء الجانبي من لوحة الإدارة.
",
+ "DESCRIPTION": "القناة هي وضع الاتصال الذي يختاره العميل للتفاعل معك. صندوق الوارد هو المكان الذي تدير فيه التفاعلات لقناة معينة. ويمكن أن تشمل الاتصالات من مصادر مختلفة مثل البريد الإلكتروني، والمحادثة الحية، ووسائط الإعلام الاجتماعية.",
+ "LEARN_MORE": "تعلم المزيد عن صناديق البريد",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "لا توجد صناديق وارد لقنوات تواصل مرتبطة بهذا الحساب."
},
- "CREATE_FLOW": [
- {
- "title": "اختر قناة",
- "route": "settings_inbox_new",
- "body": "اختر الخدمة التي تود ربطها مع حسابك في Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "اختر قناة",
+ "BODY": "اختر الخدمة التي تود ربطها مع حسابك في Chatwoot."
},
- {
- "title": "إنشاء قناة تواصل",
- "route": "settings_inboxes_page_channel",
- "body": "قم بالمصادقة على حسابك وإنشاء قناة التواصل."
+ "INBOX": {
+ "TITLE": "إنشاء قناة تواصل",
+ "BODY": "قم بالمصادقة على حسابك وإنشاء قناة التواصل."
},
- {
- "title": "إضافة موظفين",
- "route": "settings_inboxes_add_agents",
- "body": "إضافة موظفين إلى صندوق الوارد الخاص بقناة التواصل التي تم إنشاؤها."
+ "AGENT": {
+ "TITLE": "إضافة وكلاء",
+ "BODY": "إضافة وكلاء إلى صندوق الوارد الخاص بقناة التواصل التي تم إنشاؤها."
},
- {
- "title": "مرحى!",
- "route": "settings_inbox_finish",
- "body": "أصبح كل شيء جاهزاً الآن!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "أصبح كل شيء جاهزاً الآن!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "اسم صندوق الوارد لقناة التواصل",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "اختر صفحة من القائمة",
"INBOX_NAME": "اسم صندوق الوارد لقناة التواصل",
"ADD_NAME": "قم بتعيين اسم لصندوق الوارد الخاص بقناتك الجديدة",
- "PICK_NAME": "اختر اسم لقناة التواصل الخاصة بك",
- "PICK_A_VALUE": "اختر قيمة"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "المتابعة مع تيكتوك",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "الاتصال بحسابك في تيكتوك",
+ "HELP": "لإضافة ملفك الشخصي على TikTok كقناة، عليك مصادقة ملفك الشخصي على TikTok بالنقر على \"متابعة مع TikTok\".",
+ "ERROR_MESSAGE": "حدث خطأ أثناء الاتصال بـ TikTok، يرجى المحاولة مرة أخرى",
+ "ERROR_AUTH": "حدث خطأ أثناء الاتصال بـ TikTok، يرجى المحاولة مرة أخرى"
},
"TWITTER": {
"HELP": "لإضافة حساب تويتر الخاص بك كقناة تواصل، تحتاج إلى مصادقة حسابك على تويتر بك بالنقر على زر \"تسجيل الدخول باستخدام تويتر\" ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "رابط Webhook",
- "PLACEHOLDER": "أدخل رابط Webhook",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "الرجاء إدخال عنوان URL صالح"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "نطاق الموقع",
"PLACEHOLDER": "أدخل نطاق موقعك الإلكتروني (مثال: acme.com)"
@@ -112,14 +141,14 @@
"ERROR": "هذا الحقل مطلوب"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "USE_API_KEY": "استخدم مفتاح مصادقة API",
+ "LABEL": "مفتاح API SID",
+ "PLACEHOLDER": "الرجاء إدخال معرف مفتاح واجهة برمجة التطبيقات API الخاص بك",
"ERROR": "هذا الحقل مطلوب"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "LABEL": "مفتاح سر API",
+ "PLACEHOLDER": "الرجاء إدخال سر مفتاح API الخاص بك",
"ERROR": "هذا الحقل مطلوب"
},
"MESSAGING_SERVICE_SID": {
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "مفتاح API",
- "PLACEHOLDER": "الرجاء إدخال مفتاح API الخاص بك",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "هذا الحقل مطلوب"
},
"API_SECRET": {
"LABEL": "سرية API",
- "PLACEHOLDER": "الرجاء إدخال مفتاح API الخاص بك",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "هذا الحقل مطلوب"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "ابدأ في دعم عملائك عبر واتس آب.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "تويليو",
"WHATSAPP_CLOUD": "واتساب السحابة",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "اسم صندوق الوارد لقناة التواصل",
"PLACEHOLDER": "الرجاء إدخال اسم القناة",
@@ -228,18 +264,18 @@
"ERROR": "الرجاء تقديم رقم هاتف صالح يبدأ بإشارة '+' ولا يحتوي على أي مسافات."
},
"PHONE_NUMBER_ID": {
- "LABEL": "رقم الهاتف",
+ "LABEL": "مُعرف رَقَم الهاتف",
"PLACEHOLDER": "الرجاء إدخال رقم الهاتف الذي تم الحصول عليه من لوحة تحكم مطور الفيسبوك.",
"ERROR": "الرجاء إدخال اسم صالح."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "معرف حساب الأعمال",
- "PLACEHOLDER": "الرجاء إدخال معرف حساب الأعمال الذي تم الحصول عليه من لوحة تحكم مطور الفيسبوك.",
+ "LABEL": "مُعرف حساب الأعمال",
+ "PLACEHOLDER": "الرجاء إدخال مُعرف حساب الأعمال الذي تم الحصول عليه من لوحة تحكم مطور الفيسبوك.",
"ERROR": "الرجاء إدخال اسم صالح."
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "رمز التحقق من Webhook",
- "PLACEHOLDER": "أدخل رمز التحقق الذي تريد إعداده لفيسبوك على شبكة الويب.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "الرجاء إدخال اسم صالح."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "رمز التحقق من Webhook"
},
"SUBMIT_BUTTON": "إنشاء قناة واتساب",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "لم نتمكن من حفظ قناة واتساب"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "رقم الهاتف",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "معرف حساب Twilio (يعرف أيضاً بـ Account SID)",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "رمز المصادقة Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "مفتاح API SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "مفتاح سر API",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "قناة API",
"DESC": "اربط مع قناة API وابدأ في دعم عملائك.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "رابط Webhook",
- "SUBTITLE": "تكوين عنوان URL حيث تريد تلقي ردود المكالمات على الأحداث.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "رابط Webhook"
},
"SUBMIT_BUTTON": "إنشاء قناة API",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "قناة البريد الالكتروني",
- "DESC": "ربط البريد الإلكتروني الخاص بك.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "اسم القناة",
"PLACEHOLDER": "الرجاء إدخال اسم القناة",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "لم نتمكن من حفظ قناة البريد الإلكتروني"
},
- "FINISH_MESSAGE": "بدء إعادة توجيه رسائل البريد الإلكتروني الخاصة بك إلى عنوان البريد الإلكتروني التالي."
+ "FINISH_MESSAGE": "بدء إعادة توجيه رسائل البريد الإلكتروني الخاصة بك إلى عنوان البريد الإلكتروني التالي.",
+ "FINISH_MESSAGE_NO_FORWARDING": "تم إنشاء بريدك الإلكتروني بنجاح! تحتاج إلى تكوين بيانات اعتماد SMTP و IMAP لإرسال واستقبال رسائل البريد الإلكتروني. بدون هذه الإعدادات، لن يتم معالجة رسائل البريد الإلكتروني.",
+ "FORWARDING_ADDRESS_LABEL": "إعادة توجيه رسائل البريد الإلكتروني إلى هذا العنوان",
+ "CONFIGURE_SMTP_IMAP_LINK": "اضغط هنا",
+ "CONFIGURE_SMTP_IMAP_TEXT": " لتهيئة إعدادات IMAP و SMTP"
},
"LINE_CHANNEL": {
"TITLE": "قناة LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "اختر قناة",
- "DESC": "يدعم أدوات الدردشة الحية، والميسنجر الفيسبوك، وملفات التويتر الشخصية، و WhatsApp، ورسائل البريد الإلكتروني، إلخ، كقنوات. إذا كنت ترغب في إنشاء قناة مخصصة، يمكنك إنشاءها باستخدام قناة API. للبدء، اختر إحدى القنوات أدناه."
+ "DESC": "يدعم أدوات الدردشة الحية، والميسنجر الفيسبوك، وملفات التويتر الشخصية، و WhatsApp، ورسائل البريد الإلكتروني، إلخ، كقنوات. إذا كنت ترغب في إنشاء قناة مخصصة، يمكنك إنشاءها باستخدام قناة API. للبدء، اختر إحدى القنوات أدناه.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "الموقع الإلكتروني",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "فيسبوك",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "واتساب",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "البريد الإلكتروني",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "تيليجرام",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "ربط حسابك في TikTok"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
- "TITLE": "موظف الدعم",
+ "TITLE": "وكيل الدعم",
"DESC": "هنا يمكنك إضافة موظفين لإدارة صندوق الوارد الخاص بقناة تواصلك التي تم إنشاؤها حديثاً. الموظفين الذين يتم تحديدهم هنا هم فقط من يمكنهم الوصول إلى صندوق الوارد الخاص بتلك القناة. الموظفين الذين ليسوا جزءاً من صندوق الوارد هذا لن يكونوا قادرين على رؤية أو الرد على الرسائل في قناة التواصل هذه عند تسجيل الدخول.
ملحوظة: كمسؤول، إذا كنت بحاجة إلى الوصول إلى جميع صناديق الوارد، يجب عليك إضافة نفسك كموظف لجميع صناديق الوارد الخاصة بقنوات التواصل التي تنشئها.",
- "VALIDATION_ERROR": "إضافة وكيل واحد على الأقل إلى علبة الوارد الجديدة",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "اختر وكلاء لصندوق الوارد"
},
"DETAILS": {
@@ -357,19 +520,27 @@
"DESC": "لقد تم بنجاح ربط صفحة فيسبوك الخاصة بك مع Chatwoot. في المرة القادمة التي يرسل فيها العملاء رسالة إلى صفحتك، ستظهر المحادثة تلقائيًا على صندوق الوارد الخاص بك هنا.
نحن نزودك أيضًا بالكود النصي لصندوق دردشة الماسنجر والذي يمكنك إضافته بسهولة إلى الموقع الخاص بك لاستقبال الرسائل من الزوار كذلك. بمجرد أن يتم ذلك على موقع الويب الخاص بك، يمكن للعملاء مراسلتك من موقع الويب الخاص بك بدون الحاجة لأي أدوات خارجية وستظهر المحادثة هنا على Chatwoot.
رائع، أليس كذلك؟ نحن بالتأكيد نحاول أن نكون الأفضل :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
+ "TITLE": "حدد مزود البريد الإلكتروني الخاص بك",
"DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
},
"MICROSOFT": {
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "تسجيل الدخول باستخدام Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "البريد الإلكتروني لجوجل",
+ "DESCRIPTION": "انقر على تسجيل الدخول باستخدام زر جوجل للبدء. سيتم إعادة توجيهك إلى صفحة تسجيل الدخول بالبريد الإلكتروني. بمجرد قبول الأذونات المطلوبة، سيتم إعادة توجيهك إلى خطوة إنشاء علبة الوارد.",
+ "SIGN_IN": "تسجيل الدخول باستخدام Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "حدث خطأ أثناء الاتصال بجوجل، الرجاء المحاولة مرة أخرى"
}
},
"DETAILS": {
"LOADING_FB": "جار المصادقة والربط مع الفيسبوك...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "حدث خطأ ما، الرجاء تحديث الصفحة...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -378,15 +549,18 @@
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "إضافة موظفين",
- "ADD_AGENTS": "إضافة موظفين إلى صندوق الوارد الخاص بالقناة..."
+ "BUTTON_TEXT": "إضافة وكلاء",
+ "ADD_AGENTS": "إضافة وكلاء إلى صندوق الوارد الخاص بالقناة..."
},
"FINISH": {
"TITLE": "أصبحت قناة التواصل جاهزة الآن!",
"MESSAGE": "يمكنك الآن التواصل مع عملائك من خلال قناتك الجديدة",
"BUTTON_TEXT": "خذني إلى هناك",
"MORE_SETTINGS": "المزيد من الإعدادات",
- "WEBSITE_SUCCESS": "لقد انتهيت بنجاح من إنشاء قناة دردشة مباشرة لموقعك. انسخ الرمز الموضح أدناه وقم بإضافته إلى موقع الويب الخاص بك. في المرة القادمة التي يستخدم فيها العميل الدردشة المباشرة، ستظهر المحادثة تلقائياً على صندوق الوارد الخاص بك."
+ "WEBSITE_SUCCESS": "لقد انتهيت بنجاح من إنشاء قناة دردشة مباشرة لموقعك. انسخ الرمز الموضح أدناه وقم بإضافته إلى موقع الويب الخاص بك. في المرة القادمة التي يستخدم فيها العميل الدردشة المباشرة، ستظهر المحادثة تلقائياً على صندوق الوارد الخاص بك.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "إعادة التصريح",
"VIEW": "عرض",
@@ -406,19 +580,19 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "حدد الاسم الذي يظهر للعميل الخاص بك عندما يتلقى رسائل البريد الإلكتروني من الوكلاء الخاصين.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
"FROM": "من",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "يضاف اسم الوكيل الذي أرسل الرد باسم المرسل لجعله صديقا."
},
"PROFESSIONAL": {
"TITLE": "Professional",
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "حفظ"
}
@@ -432,11 +606,13 @@
"DISABLED": "معطّل"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "مفعل",
- "DISABLED": "معطّل"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
- "LABEL": "تمكين"
+ "LABEL": "تفعيل"
}
},
"DELETE": {
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "نموذج ما قبل الدردشة",
"BUSINESS_HOURS": "ساعات العمل",
"WIDGET_BUILDER": "منشئ اللايف شات",
- "BOT_CONFIGURATION": "اعدادات البوت"
+ "BOT_CONFIGURATION": "اعدادات البوت",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "تقييم رضاء العملاء",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "مباشر"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "الإعدادات",
"FEATURES": {
@@ -477,22 +753,38 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "كود \"الماسنجر\"",
"MESSENGER_SUB_HEAD": "ضع هذا الكود داخل وسم الـ body في موقعك",
- "INBOX_AGENTS": "موظف الدعم",
- "INBOX_AGENTS_SUB_TEXT": "إضافة أو إزالة موظفين من قناة التواصل هذه",
- "AGENT_ASSIGNMENT": "إسناد المحادثات",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "حدد هذا الخيار إذا كنت تقوم بتضمين الأداة في تطبيقات iOS أو Android. لا ترسل تطبيقات الجوال معلومات النطاق، لذا سيتم حظرها بسبب قيود النطاق ما لم يتم تفعيل هذا الخيار."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "وكيل الدعم",
+ "INBOX_AGENTS_SUB_TEXT": "إضافة أو إزالة وكلاء من صندوق الوارد هذا",
+ "AGENT_ASSIGNMENT": "تعيين المحادثة",
"AGENT_ASSIGNMENT_SUB_TEXT": "تحديث إعدادات إسناد المحادثات",
"UPDATE": "تحديث",
"ENABLE_EMAIL_COLLECT_BOX": "تفعيل صندوق جمع البريد الإلكتروني",
"ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "تمكين أو تعطيل مربع جمع البريد الإلكتروني في محادثة جديدة",
"AUTO_ASSIGNMENT": "تفعيل الإسناد التلقائي",
- "ENABLE_CSAT": "تمكين تقييم خدمة العملاء",
- "SENDER_NAME_SECTION": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "تمكين/تعطيل تقييم خدمة العملاء بعد إنتهاء المحادثة",
- "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
+ "SENDER_NAME_SECTION": "تمكين اسم الوكيل في البريد الإلكتروني",
+ "SENDER_NAME_SECTION_TEXT": "تمكين/تعطيل إظهار اسم الوكيل في البريد الإلكتروني، إذا تم تعطيله فسيظهر اسم المنشأة",
"ENABLE_CONTINUITY_VIA_EMAIL": "تمكين استمرارية المحادثة عبر البريد الإلكتروني",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "المحادثات ستستمر عبر البريد الإلكتروني إذا كان عنوان البريد الإلكتروني لجهة الاتصال متاحاً.",
- "LOCK_TO_SINGLE_CONVERSATION": "قفل إلى محادثة واحدة",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "تمكين أو تعطيل محادثات متعددة لنفس جهة الاتصال في هذا البريد الوارد",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "هذه الميزة متوفرة في الخطة المدفوعة. قم بالترقية لتفعيل استمرارية المحادثة عبر البريد الإلكتروني.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "إعدادات قناة التواصل",
"INBOX_UPDATE_SUB_TEXT": "تحديث إعدادات قناة التواصل",
"AUTO_ASSIGNMENT_SUB_TEXT": "تمكين أو تعطيل الإسناد التلقائي للمحادثات الجديدة إلى الموظفين المضافين إلى قناة التواصل هذه.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "استخدم رمز 'inbox_identifier' المعروض هنا للمصادقة على عملاء API الخاص بك.",
"FORWARD_EMAIL_TITLE": "إعادة التوجيه إلى البريد الإلكتروني",
"FORWARD_EMAIL_SUB_TEXT": "بدء إعادة توجيه رسائل البريد الإلكتروني الخاصة بك إلى عنوان البريد الإلكتروني التالي.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "السماح بالرسائل بعد حل المحادثة",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "السماح للمستخدمين النهائيين بإرسال رسائل حتى بعد تسوية المحادثة.",
"WHATSAPP_SECTION_SUBHEADER": "يتم استخدام مفتاح API هذا للتكامل مع واتسب APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "مفتاح API",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "تحديث",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "ربط الاتصال",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "رمز التحقق من Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
+ "LABEL": "مركز المساعدة",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "لا شيء",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "الرجاء إدخال قيمة أكبر من 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "تحديد الحد الأقصى لعدد المحادثات من علبة الوارد هذه التي يمكن تعيينها تلقائياً إلى وكيل"
},
+ "ASSIGNMENT": {
+ "TITLE": "تعيين المحادثة",
+ "DESCRIPTION": "تعيين المحادثات الواردة تلقائياً إلى الوكلاء المتاحين استناداً إلى سياسات التعيين",
+ "ENABLE_AUTO_ASSIGNMENT": "تمكين تعيين المحادثة تلقائياً",
+ "DEFAULT_RULES_TITLE": "قواعد التعيين الافتراضية",
+ "DEFAULT_RULES_DESCRIPTION": "استخدام سلوك التعيين الافتراضي لجميع المحادثات",
+ "DEFAULT_RULE_1": "المحادثات التي تم إنشاؤها أولاً",
+ "DEFAULT_RULE_2": "توزيع الجدولة الدائرية (Round robin)",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "استخدام سياسة التعيين المخصصة لهذه القناة",
+ "CUSTOMIZE_POLICY": "التخصيص وفقًا لسياسة التعيين",
+ "DELETE_POLICY": "حذف سياسة",
+ "POLICY_LABEL": "سياسة التعيين",
+ "ASSIGNMENT_ORDER_LABEL": "ترتيب التعيين",
+ "ASSIGNMENT_METHOD_LABEL": "طريقة التعيين",
+ "POLICY_STATUS": {
+ "ACTIVE": "مفعل",
+ "INACTIVE": "غير نشط"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "تم إنشاؤها في وقت سابق",
+ "LONGEST_WAITING": "أطول انتظار"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "تعيين متوازن"
+ },
+ "UPGRADE_PROMPT": "سياسة التعيين المخصصة متاحى في الخطة (Business) ",
+ "UPGRADE_TO_BUSINESS": "الترقية إلى (Business)",
+ "DEFAULT_POLICY_LINKED": "السياسة الافتراضية المرتبطة",
+ "DEFAULT_POLICY_DESCRIPTION": "ربط سياسة تعيين مخصصة لتخصيص كيفية تعيين المحادثات إلى الوكلاء في هذه القناه",
+ "LINK_EXISTING_POLICY": "ربط السياسة الحالية",
+ "CREATE_NEW_POLICY": "إنشاء سياسة جديدة",
+ "NO_POLICIES": "لم يتم العثور على سياسات التعيين",
+ "VIEW_ALL_POLICIES": "عرض جميع السياسات",
+ "CURRENT_BEHAVIOR": "حاليا يستخدم سلوك التعيين الافتراضي:",
+ "LINK_SUCCESS": "تم ربط سياسة التعيين بنجاح",
+ "LINK_ERROR": "فشل في ربط سياسة التعيين"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "حذف سياسة التعيين؟",
+ "DELETE_CONFIRM_MESSAGE": "هل أنت متأكد من أنك تريد إزالة سياسة التعيين هذه من صندوق الوارد هذا؟ صندوق الوارد سوف يعود إلى قواعد التعيين الافتراضية.",
+ "CANCEL": "إلغاء",
+ "CONFIRM_DELETE": "حذف",
+ "DELETE_SUCCESS": "تمت إزالة سياسة التعيين بنجاح",
+ "DELETE_ERROR": "فشل في إزالة سياسة التعيين"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "إعادة التصريح",
"SUBTITLE": "انتهت صلاحية اتصال الفيسبوك الخاص بك، يرجى إعادة الاتصال بصفحة الفيسبوك الخاصة بك لمواصلة الخدمات",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "نص الزر",
+ "PLACEHOLDER": "يرجى تقييمنا"
+ },
+ "LANGUAGE": {
+ "LABEL": "اللغة",
+ "PLACEHOLDER": "اختر لغة القالب"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "معاينة الرسالة",
+ "TOOLTIP": "قد يختلف هذا قليلاً عند تقديمه على منصة WhatsApp."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "معتمد بواسطة WhatsApp",
+ "PENDING": "في انتظار موافقة WhatsApp",
+ "REJECTED": "Meta رفضت القالب",
+ "DEFAULT": "يحتاج موافقة WhatsApp",
+ "NOT_FOUND": "هذا القالب غير موجود في منصة ميتا."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "تم إنشاء قالب WhatsApp بنجاح وإرساله للموافقة عليه",
+ "ERROR_MESSAGE": "فشل إنشاء قالب WhatsApp"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "تعديل تفاصيل الاستبيان",
+ "DESCRIPTION": "سوف نقوم بحذف القالب السابق ونقوم بإنشاء قالب جديد حيث سيتم إرساله مرة أخرى للاعتماد من قبل Whatsapp",
+ "CONFIRM": "إنشاء قالب جديد",
+ "CANCEL": "العودة للخلف"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "قم بتعيين توافرك",
"SUBTITLE": "تعيين توافرك على أداة الدردشة المباشرة الخاصة بك",
@@ -569,11 +1003,13 @@
"UPDATE": "تحديث إعدادات ساعات العمل",
"TOGGLE_AVAILABILITY": "تمكين توافر العمل لهذا البريد الوارد",
"UNAVAILABLE_MESSAGE_LABEL": "رسالة غير متاح للزائرين",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TOGGLE_HELP": "تمكين توفر العمل سيظهر الساعات المتاحة على أداة الدردشة المباشرة حتى لو كان جميع الوكلاء غير متصلين بالإنترنت. خارج الساعات المتاحة يمكن تحذير الزوار برسالة ونموذج ما قبل الدردشة.",
"DAY": {
+ "DAY": "اليوم",
+ "AVAILABILITY": "التوفر",
+ "HOURS": "Hours",
"ENABLE": "تمكين التوفر لهذا اليوم",
"UNAVAILABLE": "غير متوفر",
- "HOURS": "ساعات",
"VALIDATION_ERROR": "يجب أن يكون وقت البدء قبل وقت الإغلاق.",
"CHOOSE": "اختر"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "لتمكين SMTP ، الرجاء تكوين IMAP.",
"UPDATE": "تحديث الإعدادات",
"TOGGLE_AVAILABILITY": "تمكين تكوين IMAP لهذا البريد الوارد",
- "TOGGLE_HELP": "تمكين IMAP سيساعد المستخدم على تلقي البريد الإلكتروني",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "تم تحديث إعدادات IMAP بنجاح",
"ERROR_MESSAGE": "غير قادر على تحديث إعدادات IMAP"
@@ -606,7 +1042,8 @@
"LABEL": "كلمة المرور",
"PLACE_HOLDER": "كلمة المرور"
},
- "ENABLE_SSL": "تمكين SSL"
+ "ENABLE_SSL": "تمكين SSL",
+ "AUTH_MECHANISM": "المصادقة"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -639,7 +1076,7 @@
"PLACE_HOLDER": "كلمة المرور"
},
"DOMAIN": {
- "LABEL": "الدومين",
+ "LABEL": "النطاق",
"PLACE_HOLDER": "الدومين"
},
"ENCRYPTION": "التشفير",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "خلال يوم"
},
"WIDGET_COLOR_LABEL": "لون صندوق الدردشة",
- "WIDGET_BUBBLE_POSITION_LABEL": "موقع شعار اللايف شات",
- "WIDGET_BUBBLE_TYPE_LABEL": "شكل عرض اللايف شات",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "النوع:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "تحدث الينا",
- "LABEL": "عنوان ايقونة اللايف شات",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "تحدث الينا"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "افتراضي",
- "CHAT": "محادثة"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "عادة نقوم بالرد خلال بضع دقائق",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "الموقع الإلكتروني",
+ "TWITTER_PROFILE": "تويتر",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "واتساب",
+ "SMS": "SMS",
+ "EMAIL": "البريد الإلكتروني",
+ "TELEGRAM": "تيليجرام",
+ "LINE": "Line",
+ "API": "قناة API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/index.js b/app/javascript/dashboard/i18n/locale/ar/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ar/index.js
+++ b/app/javascript/dashboard/i18n/locale/ar/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
index 12905e7c8..925ead306 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "جلب التكاملات",
- "NO_HOOK_CONFIGURED": "لا يوجد %{integrationId} تكاملات مكونة في هذا الحساب.",
+ "NO_HOOK_CONFIGURED": "لا يوجد {integrationId} تكاملات مكونة في هذا الحساب.",
"HEADER": "التطبيقات",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "مفعل",
"DISABLED": "معطّل"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "جلب روابط التكامل",
"INBOX": "صندوق الوارد",
+ "ACTIONS": "الإجراءات",
"DELETE": {
"BUTTON_TEXT": "حذف"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "اختر صندوق الوارد"
},
"SUBMIT": "إنشاء",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "إلغاء"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "قطع الاتصال"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "تدفق الحوار هو منصة لفهم اللغة الطبيعية التي تجعل من السهل تصميم ودمج واجهة المستخدم للمحادثة في تطبيق الهاتف المحمول الخاص بك، تطبيق الويب، الجهاز، البوت، نظام الاستجابة الصوتية التفاعلي، وما إلى ذلك.
تكامل تدفق الحوار مع %{installationName} يسمح لك بتكوين بوت تدفق الحوار مع صناديق الوارد الخاصة بك والذي يتيح للبوت التعامل مع الاستفسارات في البداية وتسليمها إلى وكيل عند الحاجة. ويمكن استخدام تدفق البيانات لتأهيل الخيوط وتقليل عبء العمل الملقى على عاتق الوكلاء عن طريق طرح الأسئلة المتكررة وما إلى ذلك.
لإضافة تدفق الحوار، تحتاج إلى إنشاء حساب خدمة في وحدة تحكم مشروع جوجل الخاص بك ومشاركة بيانات الاعتماد. يرجى الرجوع إلى مستندات Dialogflow للحصول على مزيد من المعلومات."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/integrations.json b/app/javascript/dashboard/i18n/locale/ar/integrations.json
index 6112b3b1d..2b2dfcef9 100644
--- a/app/javascript/dashboard/i18n/locale/ar/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ar/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "إلغاء",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "خيارات الربط",
+ "DESCRIPTION": "Chatwoot تتكامل مع أدوات وخدمات متعددة لتحسين كفاءة فريقك. استكشف القائمة أدناه لتكوين تطبيقاتك المفضلة.",
+ "LEARN_MORE": "معرفة المزيد عن التكاملات",
+ "LOADING": "جاري جلب التكاملات",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "لم يتم تمكين الكابتن على حسابك.",
+ "CLICK_HERE_TO_CONFIGURE": "انقر هنا للتهيئة",
+ "LOADING_CONSOLE": "جار جلب وحدة التحكم بالكابتن...",
+ "FAILED_TO_LOAD_CONSOLE": "فشل أثناء جلب وحدة تحكم الكابتن. الرجاء التحديث والمحاولة مرة أخرى."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "الأحداث المشتركة",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "إلغاء",
"DESC": "أحداث Webhook توفر لك معلومات في الوقت الحقيقي حول ما يحدث في حساب Chatwoot الخاص بك. الرجاء إدخال عنوان URL صالح لتكوين callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "رابط Webhook",
- "PLACEHOLDER": "مثال: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "الرجاء إدخال عنوان URL صالح"
},
"EDIT_SUBMIT": "تحديث الويبهوك",
@@ -37,10 +83,10 @@
"LIST": {
"404": "لا توجد webhooks مكونة لهذا الحساب.",
"TITLE": "إدارة الـ webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "الإجراءات"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "الإجراءات"
+ }
},
"EDIT": {
"BUTTON_TEXT": "تعديل",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "تأكيد الحذف",
- "MESSAGE": "هل أنت متأكد من حذف webhook؟ (%{webhookURL})",
+ "MESSAGE": "هل أنت متأكد من حذف webhook؟ ({webhookURL})",
"YES": "نعم، احذف ",
"NO": "لا، احتفظ به"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "حذف",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "استخدام تكامل Slack",
- "BODY": "
ستتم الآن مزامنة جميع المحادثات الواردة إلى محادثة الزبائن داخل مكان العمل الخاص بك.
الرد على موضوع محادثة في محادثة العملاء قناة الركود سوف تقوم بإنشاء رد على العميل من خلال المحادثة.
ابدأ الردود ب ملاحظة: لإنشاء ملاحظات خاصة بدلاً من الردود.
إذا كان للرد على slack ملف تعريف الوكيل في الدردشة تحت نفس البريد الإلكتروني، فسيتم ربط الردود وفقا لذلك.
عندما لا يكون للرد ملف شخصي للوكيل المرتبط، ستتم الردود من ملف بوت الشخصي.
",
+ "BODY": "باستخدام هذا التكامل، ستتم مزامنة جميع محادثاتك الواردة مع قناة ***{selectedChannelName}*** في مساحة عمل Slack الخاصة بك. يمكنك إدارة جميع محادثات عملائك مباشرة من داخل القناة ولن تفوّت أي رسالة.\n\nفيما يلي الميزات الرئيسية لهذا التكامل:\n\n**الرد على المحادثات من داخل Slack:** للرد على محادثة في قناة Slack ***{selectedChannelName}***، ما عليك سوى كتابة رسالتك وإرسالها كسلسلة رسائل. سيؤدي ذلك إلى إنشاء رد للعميل عبر Chatwoot. الأمر بهذه البساطة!\n\n **إنشاء ملاحظات خاصة:** إذا كنت تريد إنشاء ملاحظات خاصة بدلاً من الردود، فابدأ رسالتك بـ ***`note:`***. يضمن ذلك بقاء رسالتك خاصة وعدم ظهورها للعميل.\n\n**ربط ملف وكيل:** إذا كان الشخص الذي ردّ في Slack لديه ملف وكيل في Chatwoot تحت البريد الإلكتروني نفسه، فسيتم ربط الردود تلقائيًا بذلك الملف. وهذا يعني أنه يمكنك بسهولة تتبع من قال ماذا ومتى. من ناحية أخرى، إذا لم يكن لدى الشخص الذي ردّ ملف وكيل مرتبط، فستظهر الردود للعميل على أنها صادرة من ملف البوت.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "تبسيط",
+ "CONFIDENT": "استخدام نبرة لطيفة",
+ "PROFESSIONAL": "استخدام نبرة احترافية",
+ "CASUAL": "استخدم نبرة عادية",
+ "STRAIGHTFORWARD": "استخدام نبرة مباشرة"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "تحسين الرد",
+ "IMPROVE_REPLY_SELECTION": "تحسين عملية الاختيار",
+ "CHANGE_TONE": {
+ "TITLE": "تغيير النبرة",
+ "OPTIONS": {
+ "PROFESSIONAL": "مهني",
+ "CASUAL": "عادية",
+ "STRAIGHTFORWARD": "مباشر",
+ "CONFIDENT": "لطيفة",
+ "FRIENDLY": "ودي"
+ }
+ },
+ "GRAMMAR": "أصلاح القواعد النحوية والإملائية",
+ "SUGGESTION": "اقترح رداً",
+ "SUMMARIZE": "تلخيص المحادثة",
+ "ASK_COPILOT": "إسأل المساعد"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -131,7 +200,7 @@
"KEY_PLACEHOLDER": "Enter your OpenAI API key",
"BUTTONS": {
"NEED_HELP": "تحتاج مساعدة؟",
- "DISMISS": "Dismiss",
+ "DISMISS": "تجاهل",
"FINISH": "Finish Setup"
},
"DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "إضافة تطبيق جديد للوحة التحكم",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "تسمح تطبيقات لوحة التحكم للمنظمات بتضمين تطبيق داخل لوحة التحكم لتوفير السياق لوكلاء دعم العملاء. هذه الميزة تسمح لك بإنشاء تطبيق بشكل مستقل وإدراج لتوفير معلومات المستخدم أو طلباتهم أو سجل الدفع السابق.",
+ "LEARN_MORE": "معرفة المزيد حول تطبيقات لوحة التحكم",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "لا توجد تطبيقات لوحة التحكم التي تم تكوينها على هذا الحساب حتى الآن",
"LOADING": "جلب تطبيقات لوحة التحكم...",
- "TABLE_HEADER": [
- "الاسم",
- "نقطة الوصول"
- ],
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "ENDPOINT": "نقطة الوصول",
+ "ACTIONS": "الإجراءات"
+ },
"EDIT_TOOLTIP": "تعديل التطبيق",
"DELETE_TOOLTIP": "حذف التطبيق"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "نعم، احذف",
"CONFIRM_NO": "لا، احتفظ به",
"TITLE": "تأكيد الحذف",
- "MESSAGE": "هل أنت متأكد من حذف التطبيق - %{appName}؟",
+ "MESSAGE": "هل أنت متأكد من حذف التطبيق - {appName}؟",
"API_SUCCESS": "تم حذف تطبيق لوحة التحكم بنجاح",
"API_ERROR": "لم نتمكن من حذف التطبيق. الرجاء المحاولة مرة أخرى لاحقاً"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "جلب مشاكل من Linear...",
+ "LOADING_ERROR": "حدث خطأ أثناء جلب المشكلات من Linear، الرجاء المحاولة مرة أخرى",
+ "CREATE": "إنشاء",
+ "LINK": {
+ "SEARCH": "البحث عن المشكلات",
+ "SELECT": "اختر مشكلة",
+ "TITLE": "الرابط",
+ "EMPTY_LIST": "لم يتم العثور على مشاكل في Linear",
+ "LOADING": "جار التحميل",
+ "ERROR": "حدث خطأ أثناء جلب المشكلات من Linear، الرجاء المحاولة مرة أخرى",
+ "LINK_SUCCESS": "تم ربط المشكلة بنجاح",
+ "LINK_ERROR": "حدث خطأ أثناء ربط المشكلة، الرجاء المحاولة مرة أخرى",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "إنشاء/رابط مشكلة في Linear",
+ "DESCRIPTION": "إنشاء مشكلات في Linear من المحادثات، أو ربط المشكلات الموجودة لتعقب سلس.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "العنوان",
+ "PLACEHOLDER": "أدخل العنوان",
+ "REQUIRED_ERROR": "العنوان مطلوب"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "أدخل الوصف"
+ },
+ "TEAM": {
+ "LABEL": "الفريق",
+ "PLACEHOLDER": "اختر فريق",
+ "SEARCH": "البحث عن فريق",
+ "REQUIRED_ERROR": "الفريق مطلوب"
+ },
+ "ASSIGNEE": {
+ "LABEL": "المكلَّف",
+ "PLACEHOLDER": "اختر المحال إليه",
+ "SEARCH": "البحث عن المحال إليه"
+ },
+ "PRIORITY": {
+ "LABEL": "الأولوية",
+ "PLACEHOLDER": "تحديد الأولوية",
+ "SEARCH": "أولوية البحث"
+ },
+ "LABEL": {
+ "LABEL": "الوسم",
+ "PLACEHOLDER": "حدد التسمية",
+ "SEARCH": "ابحث عن تصنيفات"
+ },
+ "STATUS": {
+ "LABEL": "الحالة",
+ "PLACEHOLDER": "اختر الحالة",
+ "SEARCH": "حالة البحث"
+ },
+ "PROJECT": {
+ "LABEL": "المشروع",
+ "PLACEHOLDER": "حدد المشروع",
+ "SEARCH": "البحث عن المشروع"
+ }
+ },
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء",
+ "CREATE_SUCCESS": "تم إنشاء المشكلة بنجاح",
+ "CREATE_ERROR": "حدث خطأ أثناء إنشاء المشكلة، يرجى المحاولة مرة أخرى",
+ "LOADING_TEAM_ERROR": "حدث خطأ أثناء جلب الفرق, الرجاء المحاولة مرة أخرى",
+ "LOADING_TEAM_ENTITIES_ERROR": "حدث خطأ أثناء جلب كيانات الفريق، يرجى المحاولة مرة أخرى"
+ },
+ "ISSUE": {
+ "STATUS": "الحالة",
+ "PRIORITY": "الأولوية",
+ "ASSIGNEE": "المكلَّف",
+ "LABELS": "الوسوم",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "إلغاء الربط",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "نوشن",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "نعم، احذف",
+ "CANCEL": "إلغاء"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "قائد",
+ "HEADER_KNOW_MORE": "اعرف المزيد",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "المساعدون",
+ "SWITCH_ASSISTANT": "التبديل بين المساعدين",
+ "NEW_ASSISTANT": "إنشاء مساعد",
+ "EMPTY_LIST": "لم يتم العثور على مساعدين، يرجى إنشاء واحد للبدء"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "ابدأ مع Copilot",
+ "KICK_OFF_MESSAGE": "هل تحتاج إلى ملخص سريع، ترغب في مراجعة المحادثات السابقة، أو صياغة رد أفضل؟ Copilot هنا لتسريع الأمور.",
+ "SEND_MESSAGE": "إرسال الرسالة...",
+ "EMPTY_MESSAGE": "حدث خطأ أثناء توليد الاستجابة. يرجى المحاولة مرة أخرى.",
+ "LOADER": "يقوم Captain بالتفكير",
+ "YOU": "أنت",
+ "USE": "استخدام هذا",
+ "RESET": "إعادة تعيين",
+ "SHOW_STEPS": "عرض الخطوات",
+ "SELECT_ASSISTANT": "اختر المساعد",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "لخص هذه المحادثة",
+ "CONTENT": "لخص النقاط الرئيسية التي نوقشت بين العميل ووكيل الدعم، بما في ذلك مخاوف العميل، أسئلته، والحلول أو الردود المقدمة من الوكيل."
+ },
+ "SUGGEST": {
+ "LABEL": "اقترح إجابة",
+ "CONTENT": "حلل استفسار العميل وقم بصياغة رد يعالج مخاوفه أو أسئلته بفعالية. تأكد من أن الرد واضح، موجز، ويوفر معلومات مفيدة."
+ },
+ "RATE": {
+ "LABEL": "قم بتقييم هذه المحادثة",
+ "CONTENT": "راجع المحادثة لترى مدى تلبيتها لاحتياجات العميل. شارك تقييمًا من 5 بناءً على النغمة، الوضوح، والفعالية."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "المحادثات ذات الأولوية العالية",
+ "CONTENT": "اعطني ملخصًا لجميع المحادثات المفتوحة ذات الأولوية العالية. تضمّن معرف المحادثة، اسم العميل (إن وُجد)، محتوى آخر رسالة، والوكيل المعين. قم بالتجميع حسب الحالة إذا كان ذلك مناسبًا."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "قائمة جهات الاتصال",
+ "CONTENT": "اعرض لي قائمة بأفضل 10 جهات اتصال. تضمّن الاسم، البريد الإلكتروني أو رقم الهاتف (إن وُجد)، آخر وقت مشاهدة، العلامات (إن وجدت)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "أنت",
+ "ASSISTANT": "مساعد",
+ "MESSAGE_PLACEHOLDER": "أكتب رسالتك...",
+ "HEADER": "ساحة اللعب",
+ "DESCRIPTION": "استخدم هذه الساحة لإرسال رسائل إلى مساعدك والتحقق مما إذا كان يرد بدقة وسرعة وبالنغمة التي تتوقعها.",
+ "CREDIT_NOTE": "الرسائل المرسلة هنا ستُحتسب ضمن رصيد Captain الخاص بك."
+ },
+ "PAYWALL": {
+ "TITLE": "قم بالترقية لاستخدام Captain AI",
+ "AVAILABLE_ON": "Captain غير متاح على الخطة المجانية.",
+ "UPGRADE_PROMPT": "قم بترقية خطتك للحصول على الوصول إلى مساعدينا، وcopilot، والمزيد.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "ولا يتوفر الكابتن AI إلا في خطط المؤسسة.",
+ "UPGRADE_PROMPT": "قم بترقية خطتك للحصول على الوصول إلى مساعدينا، وcopilot، والمزيد.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "لقد استخدمت أكثر من 80٪ من حد الاستجابات الخاص بك. للاستمرار في استخدام Captain AI، يرجى الترقية.",
+ "DOCUMENTS": "تم الوصول إلى حد المستندات. قم بالترقية للاستمرار في استخدام Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "إلغاء",
+ "CREATE": "إنشاء",
+ "EDIT": "تحديث"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "الاسم",
+ "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": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "الإعدادات",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "العنوان",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "إنشاء",
+ "CANCEL": "إلغاء"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "إلغاء",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف",
+ "BULK_SYNC_BUTTON": "تحديث",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "جاري التحديث...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "لم يتم العثور على الصفحة",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "الرابط",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "الرابط",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "فتح الفواتير",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "لا شيء",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "مفتاح API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "كلمة المرور",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "النوع"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "العدد",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "مطلوب"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "حذف",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "الكل"
+ },
+ "STATUS": {
+ "TITLE": "الحالة",
+ "PENDING": "معلق",
+ "APPROVED": "Approved",
+ "ALL": "الكل"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "تعديل",
+ "DELETE_RESPONSE": "حذف"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "قطع الاتصال"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "نعم، احذف",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "صندوق الوارد",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
index f97a5d6d2..e7acd7b1c 100644
--- a/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ar/labelsMgmt.json
@@ -3,24 +3,29 @@
"HEADER": "الوسوم",
"HEADER_BTN_TXT": "إضافة وسم جديد",
"LOADING": "جار جلب الوسوم",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "معرفة المزيد حول التسميات",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ابحث عن تصنيفات...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام",
- "SIDEBAR_TXT": "الوسوم
تساعدك الوسو على تصنيف المحادثات وإعطائها الأولوية. يمكنك تعيين وسم إلى محادثة من القائمة الجانبية.
الوسوم مرتبطة بالحساب ويمكن استخدامها لإنشاء سير عمل مخصص في مؤسستك. يمكنك تعيين لون مخصص للوسم، مما يسهل التعرف على الوسم. ستتمكن من عرض الوسم على الشريط الجانبي لتصفية المحادثات بسهولة.
",
"LIST": {
- "404": "لا يوجد وسوم متوفرة في هذا الحساب.",
+ "404": "لا توجد وسوم متوفرة في هذا الحساب.",
"TITLE": "إدارة الوسوم",
"DESC": "الوسوم تسمح لك بتجميع المحادثات المتشابهة معاً.",
- "TABLE_HEADER": [
- "الاسم",
- "الوصف",
- "اللون"
- ]
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "DESCRIPTION": "الوصف",
+ "COLOR": "اللون",
+ "ACTION": "الإجراءات"
+ }
},
"FORM": {
"NAME": {
"LABEL": "اسم الوسم",
"PLACEHOLDER": "اسم الوسم",
- "REQUIRED_ERROR": "اسم التسمية مطلوب",
- "MINIMUM_LENGTH_ERROR": "الحد الأدنى للطول 2 مطلوب",
+ "REQUIRED_ERROR": "اسم الوسم مطلوب",
+ "MINIMUM_LENGTH_ERROR": "الحد الأدنى لطول الإسم هو حرفين",
"VALID_ERROR": "مسموح فقط بالابجدية,الارقام, -, _"
},
"DESCRIPTION": {
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "إضافة وسم إلى المحادثة",
+ "MULTIPLE_SUGGESTION": "حدد الوسم",
+ "DESELECT": "إلغاء تحديد الوسم",
+ "DISMISS": "استبعاد الاقتراح"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "استبعاد",
+ "ADD_SELECTED_LABELS": "إضافة الوسوم المحددة",
+ "ADD_SELECTED_LABEL": "إضافة الوسوم المحددة",
+ "ADD_ALL_LABELS": "إضافة جميع الأوسمة",
+ "SUGGESTED_LABELS": "التسميات المقترحة"
},
"ADD": {
"TITLE": "إضافة وسم جديد",
diff --git a/app/javascript/dashboard/i18n/locale/ar/login.json b/app/javascript/dashboard/i18n/locale/ar/login.json
index 4577fff09..247285442 100644
--- a/app/javascript/dashboard/i18n/locale/ar/login.json
+++ b/app/javascript/dashboard/i18n/locale/ar/login.json
@@ -3,7 +3,7 @@
"TITLE": "تسجيل الدخول إلى Chatwoot",
"EMAIL": {
"LABEL": "البريد الإلكتروني",
- "PLACEHOLDER": "مثال: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "الرجاء إدخال عنوان بريد إلكتروني صحيح"
},
"PASSWORD": {
@@ -16,12 +16,26 @@
"UNAUTH": "اسم المستخدم / كلمة المرور غير صحيحة. الرجاء المحاولة مرة أخرى"
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "تسجيل الدخول بواسطة جوجل",
+ "BUSINESS_ACCOUNTS_ONLY": "الرجاء استخدام عنوان البريد الإلكتروني الخاص بشركتك لتسجيل الدخول",
+ "NO_ACCOUNT_FOUND": "لم نتمكن من العثور على حساب لعنوان البريد الإلكتروني الخاص بك."
},
"FORGOT_PASSWORD": "نسيت كلمة المرور؟",
"CREATE_NEW_ACCOUNT": "إنشاء حساب جديد",
- "SUBMIT": "تسجيل الدخول"
+ "SUBMIT": "تسجيل الدخول",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/macros.json b/app/javascript/dashboard/i18n/locale/ar/macros.json
index f96c0f800..92e066bc9 100644
--- a/app/javascript/dashboard/i18n/locale/ar/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ar/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "ماكروس",
+ "DESCRIPTION": "الماكرو هو مجموعة من الإجراءات المحفوظة التي تساعد وكلاء خدمة العملاء على إكمال المهام بسهولة. يمكن للوكلاء تحديد مجموعة من الإجراءات مثل وضع علامة على محادثة مع تسمية، وإرسال نص بريد إلكتروني، وتحديث سمة مخصصة، إلخ. ويمكنهم تنفيذ هذه الإجراءات بنقرة واحدة.",
+ "LEARN_MORE": "تعلم المزيد حول الماكرو",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "إضافة ماكرو جديد",
"HEADER_BTN_TXT_SAVE": "حفظ الماكرو",
"LOADING": "جاري جلب الماكروس",
- "SIDEBAR_TXT": "الماكروس
الماكرو هو مجموعة من الإجراءات المحفوظة التي تساعد وكلاء خدمة العملاء على إكمال المهام بسهولة. يمكن للوكلاء تحديد مجموعة من الإجراءات مثل وضع علامة على محادثة مع تسمية، وإرسال نص بريد إلكتروني، وتحديث سمة مخصصة، إلخ. ويمكنهم تنفيذ هذه الإجراءات بنقرة واحدة. وعندما يدير الوكلاء الكلية، يتم تنفيذ الإجراءات بالتسلسل حسب الترتيب الذي تحدده. يحسن الماكرو الإنتاجية ويزيد الاتساق في الإجراءات.
يمكن أن يكون الماكرو مفيداً بطريقتين.
كوكيل يساعد: إذا قام وكيل بمجموعة من الإجراءات عدة مرات، يمكنهم حفظه كماكلي وتنفيذ جميع الإجراءات معاً باستخدام نقرة واحدة.
كخيار للدخول إلى عضوية الفريق: يجب على كل وكيل إجراء العديد من الشيكات والإجراءات المختلفة خلال كل محادثة. سيكون عضو فريق الدعم الجديد من أونبواردينغ سهلا إذا كان الماكرو المحدد مسبقا متاحا على الحساب. وبدلا من وصف كل خطوة بالتفصيل، يمكن للمدير/الفريق أن يشير إلى الكتلة الكلية المستخدمة في سيناريوهات مختلفة.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "حدث خطأ ما. الرجاء المحاولة مرة أخرى",
"ORDER_INFO": "سيتم تشغيل الماكرو بالترتيب الذي تضيفه إجراءاتك. يمكنك إعادة ترتيبهم بسحبهم بواسطة المعالج بجانب كل عقدة.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "الاسم",
- "تم إنشاؤها بواسطة",
- "آخر تحديث بواسطة",
- "الظهور"
- ],
+ "TABLE_HEADER": {
+ "NAME": "الاسم",
+ "CREATED BY": "تم إنشاؤها بواسطة",
+ "LAST_UPDATED_BY": "آخر تحديث بواسطة",
+ "VISIBILITY": "الظهور",
+ "ACTIONS": "الإجراءات"
+ },
"404": "لم يتم العثور على الماكروس"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "حدث خطأ أثناء حذف الماكرو. الرجاء المحاولة مرة أخرى في وقت لاحق"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "تعديل الماكرو",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "الرؤية الخاصة بالماكرو",
"GLOBAL": {
"LABEL": "عامة",
- "DESCRIPTION": "هذا الماكرو متاح بشكل عام لجميع الوكلاء في هذا الحساب."
+ "DESCRIPTION": "هذا الماكرو متاح بشكل عام لجميع الوكلاء في هذا الحساب.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "خاص",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "تنفيذ",
"PREVIEW": "معاينة الماكرو",
"EXECUTED_SUCCESSFULLY": "تم تنفيذ الماكرو بنجاح"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "مفتاح الخاصية مطلوب",
+ "FILTER_OPERATOR_REQUIRED": "عامل التصفية مطلوب",
+ "VALUE_REQUIRED": "القيمة مطلوبة",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "القيمة يجب أن تكون بين 1 و 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "لا شيء",
+ "LOW": "منخفضة",
+ "MEDIUM": "متوسطة",
+ "HIGH": "عالية",
+ "URGENT": "عاجل"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/mfa.json b/app/javascript/dashboard/i18n/locale/ar/mfa.json
new file mode 100644
index 000000000..364e78d92
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "مفعل",
+ "DISABLED": "معطّل",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "جار التحميل...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "نسخ",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "إلغاء",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "تحميل",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "كلمة المرور",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "إلغاء",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "إلغاء",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/onboarding.json b/app/javascript/dashboard/i18n/locale/ar/onboarding.json
new file mode 100644
index 000000000..6096c7fa2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "البريد الإلكتروني",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "الموقع الإلكتروني",
+ "LANGUAGE": "اللغة",
+ "TIMEZONE": "منطقة زمنية",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "اختر المنطقة الزمنية",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "جاري الحفظ...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/report.json b/app/javascript/dashboard/i18n/locale/ar/report.json
index 00ce6cf2e..735d2ca13 100644
--- a/app/javascript/dashboard/i18n/locale/ar/report.json
+++ b/app/javascript/dashboard/i18n/locale/ar/report.json
@@ -3,7 +3,7 @@
"HEADER": "المحادثات",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
- "DOWNLOAD_AGENT_REPORTS": "تنزيل تقارير الوكيل",
+ "DOWNLOAD_CONVERSATION_REPORTS": "تنزيل تقارير المحادثات",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "وقت الاستجابة الأولى",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الرد الأول هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الرد الأول هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_TIME": {
"NAME": "وقت إغلاق المحادثات",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الحل هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الحل هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_COUNT": {
"NAME": "عدد مرات الإغلاق",
"DESC": "(الإجمالي)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "عدد مرات الإغلاق",
+ "DESC": "(الإجمالي)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(الإجمالي)"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "وقت انتظار العميل",
+ "TOOLTIP_TEXT": "وقت الانتظار هو {metricValue} (بناء على ردود {conversationCount})",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "آخر 7 أيام",
+ "LAST_14_DAYS": "آخر 14 يوماً",
"LAST_30_DAYS": "آخر 30 يوماً",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "آخر 3 أشهر",
"LAST_6_MONTHS": "آخر 6 أشهر",
"LAST_YEAR": "العام الماضي",
"CUSTOM_DATE_RANGE": "تحديد نطاق المدة"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "آخر 7 أيام"
- },
- {
- "id": 1,
- "name": "آخر 30 يوماً"
- },
- {
- "id": 2,
- "name": "آخر 3 أشهر"
- },
- {
- "id": 3,
- "name": "آخر 6 أشهر"
- },
- {
- "id": 4,
- "name": "العام الماضي"
- },
- {
- "id": 5,
- "name": "تحديد نطاق المدة"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "تطبيق",
"PLACEHOLDER": "اختر نطاق المدة"
@@ -130,14 +116,28 @@
"groupBy": "الشهر"
}
],
- "BUSINESS_HOURS": "ساعات العمل"
+ "BUSINESS_HOURS": "ساعات العمل",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "لم يتم العثور على النتائج"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "نظرة عامة للوكلاء",
- "LOADING_CHART": "تحميل بيانات الرسم البياني...",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "LOADING_CHART": "جاري جلب بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_AGENT_REPORTS": "تنزيل تقارير الوكيل",
"FILTER_DROPDOWN_LABEL": "اختر وكيل",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "البحث عن وكلاء"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -155,13 +155,13 @@
"NAME": "وقت الاستجابة الأولى",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الرد الأول هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الرد الأول هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_TIME": {
"NAME": "وقت إغلاق المحادثات",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الحل هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الحل هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_COUNT": {
"NAME": "عدد مرات الإغلاق",
@@ -201,10 +201,16 @@
},
"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": "تحميل تقارير التسمية",
"FILTER_DROPDOWN_LABEL": "حدد التسمية",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ابحث عن تصنيفات"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -222,13 +228,13 @@
"NAME": "وقت الاستجابة الأولى",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الرد الأول هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الرد الأول هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_TIME": {
"NAME": "وقت إغلاق المحادثات",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الحل هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الحل هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_COUNT": {
"NAME": "عدد مرات الإغلاق",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "نظرة عامة على صندوق الوارد",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_INBOX_REPORTS": "تحميل تقارير صندوق الوارد",
"FILTER_DROPDOWN_LABEL": "اختر صندوق الوارد",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -289,13 +303,13 @@
"NAME": "وقت الاستجابة الأولى",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الرد الأول هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الرد الأول هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_TIME": {
"NAME": "وقت إغلاق المحادثات",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الحل هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الحل هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_COUNT": {
"NAME": "عدد مرات الإغلاق",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "نظرة عامة للفريق",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "تحميل بيانات الرسم البياني...",
"NO_ENOUGH_DATA": "لم يتم جمع بيانات بقدر كافي لإنشاء التقرير، الرجاء المحاولة مرة أخرى لاحقاً.",
"DOWNLOAD_TEAM_REPORTS": "تحميل تقارير الفريق",
"FILTER_DROPDOWN_LABEL": "اختيار فريق",
+ "FILTERS": {
+ "ADD_FILTER": "إضافة تصفية",
+ "CLEAR_ALL": "مسح الكل",
+ "NO_FILTER": "لا توجد عوامل تصفية متوفرة",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "البحث عن فريق"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "المحادثات",
@@ -356,13 +379,13 @@
"NAME": "وقت الاستجابة الأولى",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الرد الأول هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الرد الأول هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_TIME": {
"NAME": "وقت إغلاق المحادثات",
"DESC": "(متوسط)",
"INFO_TEXT": "العدد الإجمالي للمحادثات المستخدمة في الحساب:",
- "TOOLTIP_TEXT": "وقت الحل هو %{metricValue} (على أساس %{conversationCount} محادثات)"
+ "TOOLTIP_TEXT": "وقت الحل هو {metricValue} (على أساس {conversationCount} محادثات)"
},
"RESOLUTION_COUNT": {
"NAME": "عدد مرات الإغلاق",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "تقارير CSAT",
- "NO_RECORDS": "لا توجد ردود متوفرة على الدراسة الاستقصائية CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "تحميل تقرير رضاء خدمة العملاء",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "إضافة تصفية",
+ "CLEAR_ALL": "مسح الكل",
+ "NO_FILTER": "لا توجد عوامل تصفية متوفرة",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "البحث عن وكلاء",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "البحث عن فريق",
+ "RATINGS": "البحث في التقييمات"
+ },
"AGENTS": {
- "PLACEHOLDER": "اختر الوكلاء"
+ "LABEL": "وكيل الدعم"
+ },
+ "INBOXES": {
+ "LABEL": "صندوق الوارد"
+ },
+ "TEAMS": {
+ "LABEL": "الفريق"
+ },
+ "RATINGS": {
+ "LABEL": "التقييم"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "جهات الاتصال",
- "AGENT_NAME": "الوكيل المكلف",
+ "AGENT_NAME": "وكيل الدعم",
"RATING": "التقييم",
- "FEEDBACK_TEXT": "تعليق الملاحظات"
- }
+ "FEEDBACK_TEXT": "تعليق الملاحظات",
+ "CONVERSATION": "المحادثات",
+ "CUSTOMER": "عميل",
+ "RESPONSE": "الردود",
+ "HANDLED_BY": "تمت معالجتها بواسطة"
+ },
+ "UNKNOWN_CUSTOMER": "عميل غير معروف"
},
+ "NO_AGENT": "لم يتم تعيين وكيل",
+ "NO_FEEDBACK": "لا توجد ملاحظات مقدمة",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "إجمالي الردود",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "معدل الاستجابة",
"TOOLTIP": "العدد الإجمالي للردود / العدد الإجمالي لرسائل الاستقصاء التي أرسلتها CSAT * 100"
+ },
+ "RATING_DISTRIBUTION": "توزيع التقييم"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "ملاحظات المراجعة",
+ "PLACEHOLDER": "إضافة ملاحظات مراجعة حول هذا التقييم...",
+ "SAVE": "حفظ",
+ "CANCEL": "إلغاء",
+ "SAVING": "جاري الحفظ...",
+ "SAVED": "تم حفظ الملاحظات بنجاح",
+ "SAVE_ERROR": "فشل في حفظ الملاحظات",
+ "UPDATED_BY": "تم التحديث بواسطة {name} {time}",
+ "UPDATED_BY_LABEL": "تم التحديث بواسطة",
+ "PAYWALL": {
+ "TITLE": "قم بالترقية لإضافة ملاحظات المراجعة",
+ "AVAILABLE_ON": "ميزة مراجعة الملاحظات متاحة فقط في الخطط Business و Enterprise.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "الترقية الآن",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "تنزيل التقرير"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "تنزيل التقرير"
},
"AGENT_CONVERSATIONS": {
"HEADER": "المحادثات من قبل الوكلاء",
@@ -456,7 +553,19 @@
"NO_AGENTS": "لا توجد أي محادثات من قبل الوكلاء",
"TABLE_HEADER": {
"AGENT": "موظف الدعم",
- "OPEN": "افتتحت",
+ "OPEN": "فتح",
+ "UNATTENDED": "بدون حضور",
+ "STATUS": "الحالة"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "الفريق",
+ "OPEN": "فتح",
"UNATTENDED": "بدون حضور",
"STATUS": "الحالة"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "إضافة فلتر",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "لم يتم العثور على النتائج",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "اسم الموظف",
+ "INBOXES": "اسم صندوق الوارد",
+ "LABELS": "اسم الوسم",
+ "TEAMS": "اسم الفريق"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "صندوق الوارد",
+ "AGENTS": "موظف الدعم",
+ "LABELS": "الوسم",
+ "TEAMS": "الفريق"
+ },
+ "WITH": "مع",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "المحادثات",
+ "AGENT": "وكيل الدعم"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "عدد مرات الإغلاق",
+ "CONVERSATIONS": "عدد المحادثات"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/search.json b/app/javascript/dashboard/i18n/locale/ar/search.json
index efd6cb572..eea4b1718 100644
--- a/app/javascript/dashboard/i18n/locale/ar/search.json
+++ b/app/javascript/dashboard/i18n/locale/ar/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "الكل",
+ "ALL": "كل النتائج",
"CONTACTS": "جهات الاتصال",
"CONVERSATIONS": "المحادثات",
- "MESSAGES": "الرسائل"
+ "MESSAGES": "الرسائل",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "جهات الاتصال",
"CONVERSATIONS": "المحادثات",
- "MESSAGES": "الرسائل"
+ "MESSAGES": "الرسائل",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
- "INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "جاري البحث",
+ "LOADING_DATA": "جار التحميل",
+ "EMPTY_STATE": "لم يتم العثور على {item} للطلب '{query}'",
+ "EMPTY_STATE_FULL": "لم يتم العثور على نتائج للطلب '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/للتركيز",
+ "INPUT_PLACEHOLDER": "أكتب 3 أحرف أو أكثر للبحث",
+ "RECENT_SEARCHES": "عمليات البحث الأخيرة",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "الأحدث",
+ "EMPTY_STATE_DEFAULT": "البحث عن طريق معرف المحادثة أو البريد الإلكتروني أو رقم الهاتف أو الرسائل للحصول على نتائج بحث أفضل. ",
"BOT_LABEL": "رد آلي",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
+ "READ_MORE": "اقرأ المزيد",
+ "READ_LESS": "قراءة أقل",
+ "WROTE": "كتب:",
"FROM": "من",
- "EMAIL": "البريد الإلكتروني"
+ "EMAIL": "البريد الإلكتروني",
+ "EMAIL_SUBJECT": "الموضوع",
+ "PRIVATE": "ملاحظة خاصة",
+ "TRANSCRIPT": "النص",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "تم التحديث {time}",
+ "SORT_BY": {
+ "RELEVANCE": "ذات صلة"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "آخر 7 أيام",
+ "LAST_30_DAYS": "آخر 30 يوماً",
+ "LAST_60_DAYS": "آخر 60 يوماً",
+ "LAST_90_DAYS": "آخر 90 يوماً",
+ "CUSTOM_RANGE": "نطاق مخصص:",
+ "CREATED_BETWEEN": "تم الإنشاء بين",
+ "AND": "و",
+ "APPLY": "تطبيق",
+ "BEFORE_DATE": "قبل {date}",
+ "AFTER_DATE": "بعد {date}",
+ "TIME_RANGE": "التصفية حسب الوقت",
+ "CLEAR_FILTER": "مسح عامل التصفية"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "تصفية الرسائل بواسطة:",
+ "FROM": "المرسل",
+ "IN": "صندوق الوارد",
+ "AGENTS": "الوكلاء",
+ "CONTACTS": "جهات الاتصال",
+ "INBOXES": "قنوات التواصل",
+ "NO_AGENTS": "لم يتم العثور على وكلاء",
+ "NO_CONTACTS": "ابدأ بالبحث لمشاهدة النتائج",
+ "NO_INBOXES": "لم يتم العثور على صناديق الوارد"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ar/setNewPassword.json
index aac8f2436..58b2e62a2 100644
--- a/app/javascript/dashboard/i18n/locale/ar/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ar/setNewPassword.json
@@ -1,13 +1,13 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set new password",
+ "TITLE": "تعيين كلمة مرور جديدة",
"PASSWORD": {
"LABEL": "كلمة المرور",
"PLACEHOLDER": "كلمة المرور",
- "ERROR": "Password is too short."
+ "ERROR": "كلمة المرور قصيرة جداً."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
+ "LABEL": "تأكيد كلمة المرور",
"PLACEHOLDER": "تأكيد كلمة المرور",
"ERROR": "كلمة المرور غير متطابقة."
},
diff --git a/app/javascript/dashboard/i18n/locale/ar/settings.json b/app/javascript/dashboard/i18n/locale/ar/settings.json
index 5359cb388..6bc1d348d 100644
--- a/app/javascript/dashboard/i18n/locale/ar/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/settings.json
@@ -3,18 +3,19 @@
"LINK": "إعدادات الملف الشخصي",
"TITLE": "إعدادات الملف الشخصي",
"BTN_TEXT": "تعديل الملف الشخصي",
- "DELETE_AVATAR": "حذف الصورة الشخصية",
+ "DELETE_AVATAR": "حذف الصورة الرمزية",
"AVATAR_DELETE_SUCCESS": "تم حذف الصورة الشخصية بنجاح",
"AVATAR_DELETE_FAILED": "حدث خطأ أثناء حذف الصورة الشخصية، الرجاء المحاولة مرة أخرى",
"UPDATE_SUCCESS": "تم تحديث حسابك بنجاح",
"PASSWORD_UPDATE_SUCCESS": "تم تغيير كلمة المرور بنجاح",
"AFTER_EMAIL_CHANGED": "تم تحديث ملفك الشخصي بنجاح، الرجاء تسجيل الدخول مرة أخرى حيث أنه قد تم تغيير بيانات تسجيل الدخول الخاصة بك",
"FORM": {
+ "PICTURE": "صورة الملف الشخصي",
"AVATAR": "صورة الملف الشخصي",
"ERROR": "الرجاء إصلاح الأخطاء في النموذج",
"REMOVE_IMAGE": "حذف",
"UPLOAD_IMAGE": "رفع صورة",
- "UPDATE_IMAGE": "تعديل الصورة",
+ "UPDATE_IMAGE": "تحديث الصورة",
"PROFILE_SECTION": {
"TITLE": "الملف الشخصي",
"NOTE": "عنوان بريدك الإلكتروني هو المعرف الخاص بك الذي ستستخدمه لتسجيل الدخول."
@@ -34,15 +35,41 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "افتراضي",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "توقيع الرسالة الشخصية",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
+ "NOTE": "إنشاء توقيع رسالة فريدة تظهر في نهاية كل رسالة ترسلها من أي صندوق وارد. يمكنك أيضًا تضمين صورة داخلية، مدعومة في الدردشة المباشرة، والبريد الإلكتروني، وصناديق API الواردة.",
"BTN_TEXT": "حفظ توقيع الرسالة",
"API_ERROR": "تعذر إرسال الرسالة! حاول مرة أخرى",
"API_SUCCESS": "تم حفظ التوقيع بنجاح",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_ERROR": "تعذر رفع الصورة! حاول مرة أخرى",
+ "IMAGE_UPLOAD_SUCCESS": "تم إضافة الصورة بنجاح. الرجاء النقر على الحفظ لحفظ التوقيع",
+ "IMAGE_UPLOAD_SIZE_ERROR": "حجم الصورة يجب أن يكون أقل من {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "توقيع الرسالة",
@@ -54,17 +81,47 @@
"NOTE": "تعديل كلمة المرور الخاصة بك سيعيد ضبط تسجيلات الدخول الخاصة بك في الأجهزة الأخرى.",
"BTN_TEXT": "تغيير كلمة المرور"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "رمز المصادقة",
- "NOTE": "يمكن استخدام هذا رمز المصادقة إذا كنت تبني تطبيقات API للتكامل مع Chatwoot"
+ "NOTE": "يمكن استخدام هذا رمز المصادقة إذا كنت تبني تطبيقات API للتكامل مع Chatwoot",
+ "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": "الإشعارات الصوتية",
- "NOTE": "تمكين التنبيهات الصوتية في لوحة التحكم للرسائل والمحادثات الجديدة.",
- "ALERT_TYPE": {
- "TITLE": "أحداث التنبيه:",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
"NONE": "لا شيء",
- "ASSIGNED": "المحادثات المسندة",
+ "MINE": "المعين",
+ "ALL": "الكل",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "تنبيه الأحداث للمحادثات",
+ "NONE": "لا شيء",
+ "ASSIGNED": "المحادثات المعينة",
"ALL_CONVERSATIONS": "كل المحادثات"
},
"DEFAULT_TONE": {
@@ -74,7 +131,9 @@
"TITLE": "شروط التنبيه:",
"CONDITION_ONE": "إرسال تنبيهات صوتية فقط إذا كانت نافذة المتصفح غير نشطة",
"CONDITION_TWO": "إرسال تنبيهات كل 30 ثانية حتى يتم قراءة جميع المحادثات المعينة"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "اقرأ المزيد"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "إشعارات البريد الإلكتروني",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "إرسال إشعارات للبريد الإلكتروني عند ورود محادثة جديدة",
"CONVERSATION_MENTION": "إرسال إشعارات بالبريد الإلكتروني عندما يتم ذكرك في محادثة",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "إرسال إشعارات البريد الإلكتروني عند إنشاء رسالة جديدة في محادثة موكلة",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "إرسال إشعارات التنية عند إنشاء رسالة جديدة في محادثة موكلة"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "إرسال إشعارات التنية عند إنشاء رسالة جديدة في محادثة موكلة",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "البريد الإلكتروني",
+ "PUSH": "الإشعارات الفورية",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "يتم تحديث إعدادات الإشعارات بنجاح",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "إرسال إشعارات التنية عند إنشاء رسالة جديدة في محادثة موكلة",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "إرسال إشعارات التنية عند إنشاء رسالة جديدة في محادثة موكلة",
"HAS_ENABLED_PUSH": "لقد قمت بتمكين الإشعارات لهذا المتصفح.",
- "REQUEST_PUSH": "تفعيل إشعارات المتصفح"
+ "REQUEST_PUSH": "تفعيل إشعارات المتصفح",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "صورة الملف الشخصي"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "التوفر",
- "STATUSES_LIST": [
- "متصل",
- "مشغول",
- "غير متصل"
- ],
+ "STATUS": {
+ "ONLINE": "متصل",
+ "BUSY": "مشغول",
+ "OFFLINE": "غير متصل"
+ },
"SET_AVAILABILITY_SUCCESS": "تم تعيين التوافر بنجاح",
- "SET_AVAILABILITY_ERROR": "تعذر تعيين التوافر، الرجاء المحاولة مرة أخرى"
+ "SET_AVAILABILITY_ERROR": "تعذر تعيين التوافر، الرجاء المحاولة مرة أخرى",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "عنوان البريد الإلكتروني الخاص بك",
@@ -147,25 +230,35 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "يتغيرون",
- "CHANGE_ACCOUNTS": "تبديل الحساب",
- "CONTACT_SUPPORT": "تواصل مع الدعم",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "اختر حساباً من القائمة التالية",
- "PROFILE_SETTINGS": "إعدادات الملف الشخصي",
- "KEYBOARD_SHORTCUTS": "اختصارات لوحة المفاتيح",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "وحدة تحكم المدير المتميز",
- "LOGOUT": "تسجيل الخروج"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "أيام متبقية من الفترة التجريبية.",
"TRAIL_BUTTON": "اشترك الآن",
- "DELETED_USER": "حذف المستخدم",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "المستخدم المحذوف",
+ "EMAIL_VERIFICATION_PENDING": "يبدو أنك لم تتحقق من عنوان بريدك الإلكتروني بعد. الرجاء التحقق من صندوق الوارد الخاص بك للتحقق من البريد الإلكتروني.",
+ "RESEND_VERIFICATION_MAIL": "إعادة إرسال رسالة التحقق",
+ "EMAIL_VERIFICATION_SENT": "تم إرسال البريد الإلكتروني للتحقق. الرجاء التحقق من البريد الوارد الخاص بك.",
"ACCOUNT_SUSPENDED": {
"TITLE": "تم تعليق الحساب",
"MESSAGE": "تم تعليق حسابك. يرجى الاتصال بفريق الدعم للمزيد من المعلومات."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "تنزيل",
"UPLOADING": "جاري الرفع...",
- "INSTAGRAM_STORY_UNAVAILABLE": "هذه القصة لم تعد متاحة."
+ "INSTAGRAM_STORY_UNAVAILABLE": "هذه القصة لم تعد متاحة.",
+ "INSTAGRAM_STORY_REPLY": "رد على قصتك:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "مشاهدة على الخريطة"
},
"FORM_BUBBLE": {
"SUBMIT": "إرسال"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "جار التحقق...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "مشاهدة حاليا:",
"SWITCH": "تبديل",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "المحادثات",
- "INBOX": "صندوق الوارد",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "كل المحادثات",
"MENTIONED_CONVERSATIONS": "الإشارات",
"PARTICIPATING_CONVERSATIONS": "شارك",
@@ -208,13 +308,25 @@
"REPORTS": "التقارير",
"SETTINGS": "الإعدادات",
"CONTACTS": "جهات الاتصال",
+ "ACTIVE": "مفعل",
+ "COMPANIES": "الشركات",
+ "ALL_COMPANIES": "كل الحملات",
+ "CAPTAIN": "قائد",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "قنوات التواصل",
+ "CAPTAIN_SETTINGS": "الإعدادات",
"HOME": "الرئيسية",
- "AGENTS": "موظف الدعم",
- "AGENT_BOTS": "البوتات",
+ "AGENTS": "وكيل الدعم",
+ "AGENT_BOTS": "الروبوتات",
"AUDIT_LOGS": "سجلات التدقيق",
"INBOXES": "قنوات التواصل",
"NOTIFICATIONS": "الإشعارات",
- "CANNED_RESPONSES": "الردود السريعة",
+ "CANNED_RESPONSES": "الردود الجاهزة",
"INTEGRATIONS": "خيارات الربط",
"PROFILE_SETTINGS": "إعدادات الملف الشخصي",
"ACCOUNT_SETTINGS": "إعدادات الحساب",
@@ -234,51 +346,269 @@
"NEW_INBOX": "صندوق الوارد الجديد",
"REPORTS_CONVERSATION": "المحادثات",
"CSAT": "تقييم رضاء العملاء",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "واتساب",
"CAMPAIGNS": "الحملات",
"ONGOING": "جارية",
"ONE_OFF": "إيقاف واحد",
- "REPORTS_AGENT": "موظف الدعم",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "رد آلي",
+ "REPORTS_AGENT": "وكيل الدعم",
"REPORTS_LABEL": "الوسوم",
"REPORTS_INBOX": "صندوق الوارد",
"REPORTS_TEAM": "الفريق",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "تعيين نفسك كـ",
+ "SET_YOUR_AVAILABILITY": "قم بتعيين توافرك",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "تجريبي",
"REPORTS_OVERVIEW": "نظرة عامة",
- "FACEBOOK_REAUTHORIZE": "انتهت صلاحية اتصال الفيسبوك الخاص بك، يرجى إعادة الاتصال بصفحة الفيسبوك الخاصة بك لمواصلة الخدمات",
+ "REAUTHORIZE": "انتهت صلاحية اتصال صندوق الوارد الخاص بك، يرجى إعادة الاتصال\n لمواصلة تلقي وإرسال الرسائل",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "جميع المقالات",
- "MY_ARTICLES": "مقالاتي",
- "DRAFT": "مسودة",
- "ARCHIVED": "مؤرشفة",
- "CATEGORY": "الفئة",
- "SETTINGS": "الإعدادات",
- "CATEGORY_EMPTY_MESSAGE": "لم يتم العثور على فئات"
+ "TITLE": "مركز المساعدة",
+ "ARTICLES": "Articles",
+ "CATEGORIES": "الفئات",
+ "LOCALES": "اللغات",
+ "SETTINGS": "الإعدادات"
},
+ "CHANNELS": "القنوات",
"SET_AUTO_OFFLINE": {
"TEXT": "وضع علامة غير متصل تلقائيا",
- "INFO_TEXT": "السماح للنظام بوضع علامة غير متصل أوتوماتيكياً عندما لا تستخدم التطبيق أو لوحة التحكم."
+ "INFO_TEXT": "السماح للنظام بوضع علامة غير متصل تلقائياً عند عدم استخدام التطبيق أو لوحة التحكم.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "قراءة المستندات"
+ "DOCS": "قراءة المستندات",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "قائد",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "الخصائص",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "الفواتير",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "الباقة الحالية",
- "PLAN_NOTE": "أنت مشترك حاليا في باقة**%{plan}** مع تراخيص **%{quantity}**"
+ "PLAN_NOTE": "أنت مشترك حاليا في باقة**{plan}** مع تراخيص **{quantity}**",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "إدارة الاشتراك الخاص بك",
"DESCRIPTION": "عرض فواتيرك السابقة، تحرير تفاصيل الفوترة الخاصة بك، أو إلغاء اشتراكك.",
"BUTTON_TXT": "الذهاب إلى بوابة الفوترة"
},
+ "CAPTAIN": {
+ "TITLE": "قائد",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "تحديث"
+ },
"CHAT_WITH_US": {
"TITLE": "تحتاج مساعدة؟",
"DESCRIPTION": "هل تواجه أي مشاكل في الفواتير؟ نحن هنا للمساعدة.",
"BUTTON_TXT": "تحدث الينا"
},
- "NO_BILLING_USER": "حساب الفوترة الخاص بك قيد الإعداد. الرجاء تحديث الصفحة وحاول مرة أخرى."
+ "NO_BILLING_USER": "حساب الفوترة الخاص بك قيد الإعداد. الرجاء تحديث الصفحة وحاول مرة أخرى.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "ملاحظة:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "إلغاء",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "العودة للخلف",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "تم نسخ الكود إلى الحافظة بنجاح",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "البحث عن صفات"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "حل المحادثة",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "حل المحادثة",
+ "CANCEL": "إلغاء"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "نعم",
+ "NO": "لا"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "أوه! لم نتمكن من العثور على الحساب. الرجاء إنشاء حساب جديد للمتابعة.",
@@ -291,10 +621,11 @@
},
"FORM": {
"NAME": {
- "LABEL": "اسم الشركة",
+ "LABEL": "اسم المنشأة",
"PLACEHOLDER": "مؤسسة Wayne"
},
- "SUBMIT": "إرسال"
+ "SUBMIT": "إرسال",
+ "CANCEL": "إلغاء"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "الذهاب إلى شريط التقارير الجانبي",
"MOVE_TO_NEXT_TAB": "نقل إلى علامة التبويب التالية في قائمة المحادثات",
"GO_TO_SETTINGS": "انتقل إلى الإعدادات",
- "SWITCH_CONVERSATION_STATUS": "التبديل إلى حالة المحادثة التالية",
"SWITCH_TO_PRIVATE_NOTE": "التبديل إلى الملاحظة الخاصة",
"SWITCH_TO_REPLY": "التبديل إلى الرد",
"TOGGLE_SNOOZE_DROPDOWN": "تبديل القائمة المنسدلة"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘\n",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "الأولوية",
+ "ACTIVE": "مفعل",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "تعديل"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "إلغاء"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف:",
+ "PLACEHOLDER": "أدخل الوصف"
+ },
+ "STATUS": {
+ "LABEL": "الحالة:",
+ "PLACEHOLDER": "اختر الحالة",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "إضافة"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "تعديل"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "إلغاء"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "الوصف:",
+ "PLACEHOLDER": "أدخل الوصف"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "إضافة"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "حذف",
+ "CANCEL_BUTTON_LABEL": "إلغاء"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/signup.json b/app/javascript/dashboard/i18n/locale/ar/signup.json
index e49d97f88..7acb1ccf7 100644
--- a/app/javascript/dashboard/i18n/locale/ar/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ar/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "تسجيل حساب",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "تسجيل",
"TESTIMONIAL_HEADER": "إن كل ما يلزم هو خطوة واحدة للمضي قدما",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "البريد الإلكتروني للعمل",
- "PLACEHOLDER": "أدخل عنوان بريدك الإلكتروني للعمل. مثال: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "كلمة المرور",
"PLACEHOLDER": "كلمة المرور",
"ERROR": "كلمة المرور قصيرة جداً",
- "IS_INVALID_PASSWORD": "يجب أن تحتوي كلمة المرور على الأقل على حرف كبير واحد وحرف صغير واحد ورقم واحد وحرف خاص واحد"
+ "IS_INVALID_PASSWORD": "يجب أن تحتوي كلمة المرور على الأقل على حرف كبير واحد وحرف صغير واحد ورقم واحد وحرف خاص واحد",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "تأكيد كلمة المرور",
"PLACEHOLDER": "تأكيد كلمة المرور",
- "ERROR": "كلمة المرور غير متطابقة"
+ "ERROR": "كلمة المرور غير متطابقة."
},
"API": {
- "SUCCESS_MESSAGE": "تم التسجيل بنجاح",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "تعذر الاتصال بالخادم، الرجاء المحاولة مرة أخرى لاحقاً"
},
"SUBMIT": "إرسال",
- "HAVE_AN_ACCOUNT": "هل لديك حساب مسبق؟"
+ "HAVE_AN_ACCOUNT": "هل لديك حساب مسبق؟",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "إعادة إرسال رسالة التحقق",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/sla.json b/app/javascript/dashboard/i18n/locale/ar/sla.json
index 2480f91f2..fb92154e2 100644
--- a/app/javascript/dashboard/i18n/locale/ar/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ar/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "اتفاقات مستوى الخدمة",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "لا توجد عناصر مطابقة لهذا الاستعلام",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "الاسم",
- "الوصف",
- "FRT",
- "NRT",
- "RT",
- "ساعات العمل"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "حدث خطأ، الرجاء المحاولة مرة أخرى"
+ },
+ "CONFIRM": {
+ "TITLE": "تأكيد الحذف",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "نعم، احذف ",
+ "NO": "لا، احتفظ "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "وقت الاستجابة الأولى",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/snooze.json b/app/javascript/dashboard/i18n/locale/ar/snooze.json
new file mode 100644
index 000000000..47d01ffe8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ساعات",
+ "DAY": "اليوم",
+ "DAYS": "days",
+ "WEEK": "اليوم",
+ "WEEKS": "weeks",
+ "MONTH": "الأسبوع",
+ "MONTHS": "months",
+ "YEAR": "الشهر",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "التالي",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "غداً",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "الأسبوع القادم",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "اليوم",
+ "DAY": "اليوم"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
index 6b716f25b..54e7ed33d 100644
--- a/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ar/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "إنشاء فريق جديد",
"HEADER": "الفرق",
- "SIDEBAR_TXT": "الفريق
الفرق تسمح لك بتنظيم عملائك في مجموعات على أساس مسؤولياتهم.
يمكن للمستخدم أن يكون جزءا من فرق متعددة. يمكنك تعيين محادثات مع فريق عندما تعمل بشكل تعاوني.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "الفرق تتيح لك تنظيم الوكلاء في مجموعات بناءً على مسؤولياتهم. يمكن للوكيل أن يكون عضوًا في أكثر من فريق. لتحقيق التعاون في العمل, يمكنك إسناد المحادثات لفرق محددة.",
+ "LEARN_MORE": "لمعرفة المزيد حول الفرق",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "البحث عن فريق...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "لا يوجد موظفي دعم مرتبطين بهذا الحساب.",
- "EDIT_TEAM": "تعديل الفريق"
+ "EDIT_TEAM": "تعديل الفريق",
+ "NONE": "لا شيء"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "إضافة وكيل للفريق",
- "TITLE": "إضافة وكلاء للفريق - %{teamName}",
+ "TITLE": "إضافة وكلاء للفريق - {teamName}",
"DESC": "إضافة وكلاء إلى فريقك الجديد. هذا يتيح لكم العمل كفريق في المحادثات، والحصول على إشعار عن الأحداث الجديدة في نفس المحادثة."
},
- "WIZARD": [
- {
- "title": "إنشاء",
- "route": "settings_teams_new",
- "body": "إنشاء فريق جديد من الوكلاء."
- },
- {
- "title": "إضافة موظفين",
- "route": "settings_teams_add_agents",
- "body": "إضافة وكيل إلى فريق."
- },
- {
- "title": "إنهاء",
- "route": "settings_teams_finish",
- "body": "أصبح كل شيء جاهزاً الآن!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "إنشاء",
+ "BODY": "إنشاء فريق جديد للوكلاء."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "إضافة وكلاء",
+ "BODY": "إضافة وكيل إلى فريق."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "إنهاء",
+ "BODY": "أصبح كل شيء جاهزاً الآن!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,47 +44,45 @@
},
"AGENTS": {
"BUTTON_TEXT": "تحديث الوكلاء في الفريق",
- "TITLE": "إضافة وكلاء للفريق - %{teamName}",
+ "TITLE": "إضافة وكلاء للفريق - {teamName}",
"DESC": "إضافة وكلاء إلى فريقك الذي تم إنشاؤه حديثاً. سيتم إعلام جميع الوكلاء المضافين عند تعيين محادثة لهذا الفريق."
},
- "WIZARD": [
- {
- "title": "تفاصيل الفريق",
- "route": "settings_teams_edit",
- "body": "تغيير الاسم والوصف والتفاصيل الأخرى."
- },
- {
- "title": "تعديل الوكلاء",
- "route": "settings_teams_edit_members",
- "body": "تعديل الوكلاء في فريقك."
- },
- {
- "title": "إنهاء",
- "route": "settings_teams_edit_finish",
- "body": "أصبح كل شيء جاهزاً الآن!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "تفاصيل الفريق",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "تغيير الاسم والوصف والتفاصيل الأخرى."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "تعديل الوكلاء",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "تعديل الوكلاء في فريقك."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "إنهاء",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "أصبح كل شيء جاهزاً الآن!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "تعذر حفظ تفاصيل الفريق. حاول مرة أخرى."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "وكيل الدعم",
"EMAIL": "البريد الإلكتروني",
- "BUTTON_TEXT": "إضافة موظفين",
+ "BUTTON_TEXT": "إضافة وكلاء",
"ADD_AGENTS": "إضافة وكلاء إلى فريقك...",
"SELECT": "حدد",
"SELECT_ALL": "تحديد جميع الوكلاء",
- "SELECTED_COUNT": "تم تحديد %{selected} من أصل %{total} وكيل."
+ "SELECTED_COUNT": "تم تحديد {selected} من أصل {total} وكيل."
},
"ADD": {
- "TITLE": "إضافة وكلاء للفريق - %{teamName}",
+ "TITLE": "إضافة وكلاء للفريق - {teamName}",
"DESC": "إضافة وكلاء إلى فريقك الجديد. هذا يتيح لكم العمل كفريق في المحادثات، والحصول على إشعار عن الأحداث الجديدة في نفس المحادثة.",
"SELECT": "حدد",
"SELECT_ALL": "تحديد جميع الوكلاء",
- "SELECTED_COUNT": "تم تحديد %{selected} من أصل %{total} وكيل.",
- "BUTTON_TEXT": "إضافة موظفين",
- "AGENT_VALIDATION_ERROR": "اختيار وكيل واحد على الاقل."
+ "SELECTED_COUNT": "تم تحديد {selected} من أصل {total} وكيل.",
+ "BUTTON_TEXT": "إضافة وكلاء",
+ "AGENT_VALIDATION_ERROR": "اختر وكيل واحد على الأقل."
},
"FINISH": {
"TITLE": "أصبح فريقك جاهزة الآن!",
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "تعذر حذف الفريق. حاول مرة أخرى."
},
"CONFIRM": {
- "TITLE": "هل أنت متأكد من أنك تريد حذف - %{teamName}",
+ "TITLE": "هل أنت متأكد من أنك تريد حذف هذا الفريق؟",
"PLACE_HOLDER": "الرجاء كتابة {teamName} للتأكيد",
"MESSAGE": "سيؤدي حذف الفريق إلى إزالة مهمة الفريق من المحادثات التي تم تعيينها لهذا الفريق.",
"YES": "حذف ",
diff --git a/app/javascript/dashboard/i18n/locale/ar/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ar/whatsappTemplates.json
index 509c96173..d0f4c1be4 100644
--- a/app/javascript/dashboard/i18n/locale/ar/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ar/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "قوالب Whatsapp",
- "SUBTITLE": "حدد القالب الذي تريد إرساله",
- "TEMPLATE_SELECTED_SUBTITLE": "معالجة %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "نماذج البحث",
- "NO_TEMPLATES_FOUND": "لم يتم العثور على قوالب",
- "LABELS": {
- "LANGUAGE": "اللغة",
- "TEMPLATE_BODY": "نص القالب",
- "CATEGORY": "الفئة"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "المتغيرات",
- "VARIABLE_PLACEHOLDER": "أدخل قيمة %{variable}",
- "GO_BACK_LABEL": "العودة للخلف",
- "SEND_MESSAGE_LABEL": "إرسال الرسالة",
- "FORM_ERROR_MESSAGE": "يرجى ملء جميع المتغيرات قبل الإرسال"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "قوالب الواتساب",
+ "SUBTITLE": "حدد القالب الذي تريد إرساله",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "نماذج البحث",
+ "NO_TEMPLATES_FOUND": "لم يتم العثور على قوالب",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "الفئة",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "اللغة",
+ "TEMPLATE_BODY": "نص القالب",
+ "CATEGORY": "الفئة"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "المتغيرات",
+ "LANGUAGE": "اللغة",
+ "CATEGORY": "الفئة",
+ "VARIABLE_PLACEHOLDER": "أدخل قيمة {variable}",
+ "GO_BACK_LABEL": "العودة للخلف",
+ "SEND_MESSAGE_LABEL": "إرسال الرسالة",
+ "FORM_ERROR_MESSAGE": "يرجى ملء جميع المتغيرات قبل الإرسال",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ar/yearInReview.json b/app/javascript/dashboard/i18n/locale/ar/yearInReview.json
new file mode 100644
index 000000000..831c5fe52
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ar/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "أغلق",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "المحادثات",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "تحميل",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "التالي",
+ "SHARE": "مشاركة"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/advancedFilters.json b/app/javascript/dashboard/i18n/locale/az/advancedFilters.json
new file mode 100644
index 000000000..a991cb25b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/advancedFilters.json
@@ -0,0 +1,119 @@
+{
+ "FILTER": {
+ "TITLE": "Filter conversations",
+ "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
+ "EDIT_CUSTOM_FILTER": "Edit Folder",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
+ "ADD_NEW_FILTER": "Add filter",
+ "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBMIT_BUTTON_LABEL": "Apply filters",
+ "UPDATE_BUTTON_LABEL": "Update folder",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear filters",
+ "FOLDER_LABEL": "Folder Name",
+ "FOLDER_QUERY_LABEL": "Folder Query",
+ "EMPTY_VALUE_ERROR": "Value is required.",
+ "TOOLTIP_LABEL": "Filter conversations",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "INPUT_PLACEHOLDER": "Enter value",
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_less_than": "Is lesser than",
+ "days_before": "Is x days before",
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
+ },
+ "ATTRIBUTE_LABELS": {
+ "TRUE": "True",
+ "FALSE": "False"
+ },
+ "ATTRIBUTES": {
+ "STATUS": "Status",
+ "ASSIGNEE_NAME": "Assignee name",
+ "INBOX_NAME": "Inbox name",
+ "TEAM_NAME": "Team name",
+ "CONVERSATION_IDENTIFIER": "Conversation identifier",
+ "CAMPAIGN_NAME": "Campaign name",
+ "LABELS": "Labels",
+ "BROWSER_LANGUAGE": "Browser language",
+ "PRIORITY": "Priority",
+ "COUNTRY_NAME": "Country name",
+ "REFERER_LINK": "Referer link",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard filters",
+ "ADDITIONAL_FILTERS": "Additional filters",
+ "CUSTOM_ATTRIBUTES": "Custom attributes"
+ },
+ "CUSTOM_VIEWS": {
+ "ADD": {
+ "TITLE": "Do you want to save this filter?",
+ "LABEL": "Name this filter",
+ "PLACEHOLDER": "Name your filter to refer it later.",
+ "ERROR_MESSAGE": "Name is required.",
+ "SAVE_BUTTON": "Save filter",
+ "CANCEL_BUTTON": "Cancel",
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder created successfully.",
+ "ERROR_MESSAGE": "Error while creating folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment created successfully.",
+ "ERROR_MESSAGE": "Error while creating segment."
+ }
+ },
+ "EDIT": {
+ "EDIT_BUTTON": "Edit folder"
+ },
+ "DELETE": {
+ "DELETE_BUTTON": "Delete filter",
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete the filter ",
+ "YES": "Yes, delete",
+ "NO": "No, keep it"
+ }
+ },
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting segment."
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/agentBots.json b/app/javascript/dashboard/i18n/locale/az/agentBots.json
new file mode 100644
index 000000000..fd731d9ff
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/agentBots.json
@@ -0,0 +1,117 @@
+{
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
+ "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "SUBMIT": "Update",
+ "DISCONNECT": "Disconnect bot",
+ "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
+ "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
+ "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
+ "SELECT_PLACEHOLDER": "Select bot"
+ },
+ "ADD": {
+ "TITLE": "Add Bot",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot added successfully.",
+ "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ }
+ },
+ "LIST": {
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "Fetching bots...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "TITLE": "Delete bot",
+ "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."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit bot",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot updated successfully.",
+ "ERROR_MESSAGE": "Could not update bot. Please try again."
+ }
+ },
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Hazır",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/agentMgmt.json b/app/javascript/dashboard/i18n/locale/az/agentMgmt.json
new file mode 100644
index 000000000..4b66fe864
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/agentMgmt.json
@@ -0,0 +1,127 @@
+{
+ "AGENT_MGMT": {
+ "HEADER": "Agents",
+ "HEADER_BTN_TXT": "Add Agent",
+ "LOADING": "Fetching Agent List",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
+ "AGENT_TYPES": {
+ "ADMINISTRATOR": "Administrator",
+ "AGENT": "Agent"
+ },
+ "COUNT": "{n} agent | {n} agents",
+ "LIST": {
+ "404": "There are no agents associated to this account",
+ "TITLE": "Manage agents in your team",
+ "DESC": "You can add/remove agents to/in your team.",
+ "NAME": "Name",
+ "EMAIL": "EMAIL",
+ "STATUS": "Status",
+ "ACTIONS": "Actions",
+ "VERIFIED": "Verified",
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
+ },
+ "ADD": {
+ "TITLE": "Add agent to your team",
+ "DESC": "You can add people who will be able to handle support for your inboxes.",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Agent Name",
+ "PLACEHOLDER": "Please enter a name of the agent"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "Role",
+ "PLACEHOLDER": "Please select a role",
+ "ERROR": "Role is required"
+ },
+ "EMAIL": {
+ "LABEL": "Email Address",
+ "PLACEHOLDER": "Please enter an email address of the agent"
+ },
+ "SUBMIT": "Add Agent"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent added successfully",
+ "EXIST_MESSAGE": "Agent email already in use, Please try another email address",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent deleted successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit agent",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Agent Name",
+ "PLACEHOLDER": "Please enter a name of the agent"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "Role",
+ "PLACEHOLDER": "Please select a role",
+ "ERROR": "Role is required"
+ },
+ "EMAIL": {
+ "LABEL": "Email Address",
+ "PLACEHOLDER": "Please enter an email address of the agent"
+ },
+ "AGENT_AVAILABILITY": {
+ "LABEL": "Availability",
+ "PLACEHOLDER": "Please select an availability status",
+ "ERROR": "Availability is required"
+ },
+ "SUBMIT": "Edit Agent"
+ },
+ "BUTTON_TEXT": "Edit",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent updated successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "PASSWORD_RESET": {
+ "ADMIN_RESET_BUTTON": "Reset Password",
+ "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent",
+ "SUCCESS_MESSAGE": "Agent password reset successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
+ "SEARCH": {
+ "NO_RESULTS": "No results found."
+ },
+ "MULTI_SELECTOR": {
+ "PLACEHOLDER": "None",
+ "TITLE": {
+ "AGENT": "Select agent",
+ "TEAM": "Select team"
+ },
+ "LIST": {
+ "NONE": "None"
+ },
+ "SEARCH": {
+ "NO_RESULTS": {
+ "AGENT": "No agents found",
+ "TEAM": "No teams found"
+ },
+ "PLACEHOLDER": {
+ "AGENT": "Search agents",
+ "TEAM": "Search teams",
+ "INPUT": "Search for agents"
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json
new file mode 100644
index 000000000..6af96c1aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/attributesMgmt.json
@@ -0,0 +1,147 @@
+{
+ "ATTRIBUTES_MGMT": {
+ "HEADER": "Custom Attributes",
+ "HEADER_BTN_TXT": "Add Custom Attribute",
+ "LOADING": "Fetching custom attributes",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Şirkət"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
+ "ADD": {
+ "TITLE": "Add Custom Attribute",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Display Name",
+ "PLACEHOLDER": "Enter custom attribute display name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter custom attribute description",
+ "ERROR": "Description is required"
+ },
+ "MODEL": {
+ "LABEL": "Applies to",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Model is required"
+ },
+ "TYPE": {
+ "LABEL": "Type",
+ "PLACEHOLDER": "Please select a type",
+ "ERROR": "Type is required",
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter value and press enter key",
+ "ERROR": "Must have at least one value"
+ }
+ },
+ "KEY": {
+ "LABEL": "Key",
+ "PLACEHOLDER": "Enter custom attribute key",
+ "ERROR": "Key is required",
+ "IN_VALID": "Invalid key"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
+ "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure want to delete - {attributeName}",
+ "PLACE_HOLDER": "Please type {attributeName} to confirm",
+ "MESSAGE": "Deleting will remove the custom attribute",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Attribute",
+ "UPDATE_BUTTON_TEXT": "Update",
+ "TYPE": {
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter values and press enter key"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
+ "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ }
+ },
+ "TABS": {
+ "HEADER": "Custom Attributes",
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Şirkət"
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
+ "BUTTONS": {
+ "EDIT": "Edit",
+ "DELETE": "Delete"
+ },
+ "EMPTY_RESULT": {
+ "404": "There are no custom attributes created",
+ "NOT_FOUND": "There are no custom attributes configured"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ }
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/auditLogs.json b/app/javascript/dashboard/i18n/locale/az/auditLogs.json
new file mode 100644
index 000000000..f85ad2a3e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/auditLogs.json
@@ -0,0 +1,77 @@
+{
+ "AUDIT_LOGS": {
+ "HEADER": "Audit Logs",
+ "HEADER_BTN_TXT": "Add Audit Logs",
+ "LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
+ "SEARCH_404": "There are no items matching this query",
+ "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "LIST": {
+ "404": "There are no Audit Logs available in this account.",
+ "TITLE": "Manage Audit Logs",
+ "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "Activity",
+ "TIME": "Time",
+ "IP_ADDRESS": "IP Address"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "DEFAULT_USER": "System",
+ "AUTOMATION_RULE": {
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
+ },
+ "ACCOUNT_USER": {
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
+ "EDIT": {
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
+ }
+ },
+ "INBOX": {
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
+ },
+ "WEBHOOK": {
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
+ },
+ "USER_ACTION": {
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
+ },
+ "TEAM": {
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
+ },
+ "MACRO": {
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
+ },
+ "INBOX_MEMBER": {
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ },
+ "TEAM_MEMBER": {
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ },
+ "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
new file mode 100644
index 000000000..0a2aff366
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/automation.json
@@ -0,0 +1,193 @@
+{
+ "AUTOMATION": {
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
+ "ADD": {
+ "TITLE": "Add Automation Rule",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Rule Name",
+ "PLACEHOLDER": "Enter rule name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter rule description",
+ "ERROR": "Description is required"
+ },
+ "EVENT": {
+ "LABEL": "Event",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Event is required"
+ },
+ "CONDITIONS": {
+ "LABEL": "Conditions"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "CONDITION_BUTTON_LABEL": "Add Condition",
+ "ACTION_BUTTON_LABEL": "Add Action",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule added successfully",
+ "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
+ "404": "No automation rules found"
+ },
+ "DELETE": {
+ "TITLE": "Delete Automation Rule",
+ "SUBMIT": "Delete",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule deleted successfully",
+ "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Automation Rule",
+ "SUBMIT": "Update",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule updated successfully",
+ "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ }
+ },
+ "CLONE": {
+ "TOOLTIP": "Clone",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation cloned successfully",
+ "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ }
+ },
+ "FORM": {
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel",
+ "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ },
+ "CONDITION": {
+ "DELETE_MESSAGE": "You need to have atleast one condition to save",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ },
+ "ACTION": {
+ "DELETE_MESSAGE": "You need to have atleast one action to save",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
+ },
+ "TOGGLE": {
+ "ACTIVATION_TITLE": "Activate Automation Rule",
+ "DEACTIVATION_TITLE": "Deactivate Automation Rule",
+ "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
+ "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
+ "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
+ "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "CONFIRMATION_LABEL": "Yes",
+ "CANCEL_LABEL": "No"
+ },
+ "ATTACHMENT": {
+ "UPLOAD_ERROR": "Could not upload attachment, Please try again",
+ "LABEL_IDLE": "Upload Attachment",
+ "LABEL_UPLOADING": "Uploading...",
+ "LABEL_UPLOADED": "Successfully Uploaded",
+ "LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Şəxsi Qeyd",
+ "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",
+ "COMPANY_NAME": "Şirkət",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/bulkActions.json b/app/javascript/dashboard/i18n/locale/az/bulkActions.json
new file mode 100644
index 000000000..e05829612
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/bulkActions.json
@@ -0,0 +1,46 @@
+{
+ "BULK_ACTION": {
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Heç biri",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
+ "ASSIGN_AGENT_TOOLTIP": "Assign agent",
+ "ASSIGN_TEAM_TOOLTIP": "Assign team",
+ "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
+ "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
+ "UPDATE": {
+ "CHANGE_STATUS": "Change status",
+ "SNOOZE_UNTIL": "Snooze",
+ "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
+ "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
+ "LABELS": {
+ "ASSIGN_LABELS": "Assign labels",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
+ },
+ "TEAMS": {
+ "NONE": "None",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/campaign.json b/app/javascript/dashboard/i18n/locale/az/campaign.json
new file mode 100644
index 000000000..78db922d1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/campaign.json
@@ -0,0 +1,216 @@
+{
+ "CAMPAIGN": {
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Campaign deleted successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json
new file mode 100644
index 000000000..246d3f5b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/cannedMgmt.json
@@ -0,0 +1,80 @@
+{
+ "CANNED_MGMT": {
+ "HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Add canned response",
+ "LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "LIST": {
+ "404": "There are no canned responses available in this account.",
+ "TITLE": "Manage canned responses",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add canned response",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a short code.",
+ "ERROR": "Short Code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit canned response",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a shortcode.",
+ "ERROR": "Short code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "BUTTON_TEXT": "Edit",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/chatlist.json b/app/javascript/dashboard/i18n/locale/az/chatlist.json
new file mode 100644
index 000000000..1384dae2b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/chatlist.json
@@ -0,0 +1,146 @@
+{
+ "CHAT_LIST": {
+ "LOADING": "Fetching conversations",
+ "LOAD_MORE_CONVERSATIONS": "Load more conversations",
+ "EOF": "All conversations loaded 🎉",
+ "LIST": {
+ "404": "There are no active conversations in this group."
+ },
+ "FAILED_TO_SEND": "Failed to send",
+ "TAB_HEADING": "Conversations",
+ "MENTION_HEADING": "Mentions",
+ "UNATTENDED_HEADING": "Unattended",
+ "SEARCH": {
+ "INPUT": "Search for People, Chats, Saved Replies .."
+ },
+ "FILTER_ALL": "All",
+ "ASSIGNEE_TYPE_TABS": {
+ "me": "Mine",
+ "unassigned": "Unassigned",
+ "all": "All"
+ },
+ "CHAT_STATUS_FILTER_ITEMS": {
+ "open": {
+ "TEXT": "Open"
+ },
+ "resolved": {
+ "TEXT": "Resolved"
+ },
+ "pending": {
+ "TEXT": "Pending"
+ },
+ "snoozed": {
+ "TEXT": "Snoozed"
+ },
+ "all": {
+ "TEXT": "All"
+ }
+ },
+ "VIEW_FILTER": "View",
+ "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "CHAT_SORT": {
+ "STATUS": "Status",
+ "ORDER_BY": "Order by"
+ },
+ "CHAT_TIME_STAMP": {
+ "CREATED": {
+ "LATEST": "Created",
+ "OLDEST": "Created at:"
+ },
+ "LAST_ACTIVITY": {
+ "NOT_ACTIVE": "Last activity:",
+ "ACTIVE": "Last activity"
+ }
+ },
+ "SORT_ORDER_ITEMS": {
+ "last_activity_at_asc": {
+ "TEXT": "Last activity: Oldest first"
+ },
+ "last_activity_at_desc": {
+ "TEXT": "Last activity: Newest first"
+ },
+ "created_at_desc": {
+ "TEXT": "Created at: Newest first"
+ },
+ "created_at_asc": {
+ "TEXT": "Created at: Oldest first"
+ },
+ "priority_desc": {
+ "TEXT": "Priority: Highest first"
+ },
+ "priority_asc": {
+ "TEXT": "Priority: Lowest first"
+ },
+ "waiting_since_asc": {
+ "TEXT": "Pending Response: Longest first"
+ },
+ "waiting_since_desc": {
+ "TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
+ }
+ },
+ "ATTACHMENTS": {
+ "image": {
+ "CONTENT": "Picture message"
+ },
+ "audio": {
+ "CONTENT": "Audio message"
+ },
+ "video": {
+ "CONTENT": "Video message"
+ },
+ "file": {
+ "CONTENT": "File Attachment"
+ },
+ "location": {
+ "CONTENT": "Location"
+ },
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
+ "fallback": {
+ "CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
+ }
+ },
+ "CHAT_SORT_BY_FILTER": {
+ "TITLE": "Sort conversation",
+ "DROPDOWN_TITLE": "Sort by",
+ "ITEMS": {
+ "LATEST": {
+ "NAME": "Last activity at",
+ "LABEL": "Last activity"
+ },
+ "CREATED_AT": {
+ "NAME": "Created at",
+ "LABEL": "Created at"
+ },
+ "LAST_USER_MESSAGE_AT": {
+ "NAME": "Last user message at",
+ "LABEL": "Last message"
+ }
+ }
+ },
+ "RECEIVED_VIA_EMAIL": "Received via email",
+ "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
+ "REPLY_TO_TWEET": "Reply to this tweet",
+ "LINK_TO_STORY": "Go to instagram story",
+ "SENT": "Sent successfully",
+ "READ": "Read successfully",
+ "DELIVERED": "Delivered successfully",
+ "NO_MESSAGES": "No Messages",
+ "NO_CONTENT": "No content available",
+ "HIDE_QUOTED_TEXT": "Hide Quoted Text",
+ "SHOW_QUOTED_TEXT": "Show Quoted Text",
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/companies.json b/app/javascript/dashboard/i18n/locale/az/companies.json
new file mode 100644
index 000000000..faf0fc573
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Xüsusiyyətlər",
+ "CONTACTS": "Əlaqələr",
+ "HISTORY": "Tarix",
+ "NOTES": "Qeydlər"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Əlaqə əlavə et",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Əlaqələrdə axtarış...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Şirkət",
+ "CONTACT_LABEL": "Əlaqə",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Yaradılıb {date}",
+ "LAST_ACTIVE": "Son fəaliyyət {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Domen"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/components.json b/app/javascript/dashboard/i18n/locale/az/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/contact.json b/app/javascript/dashboard/i18n/locale/az/contact.json
new file mode 100644
index 000000000..acf103ceb
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/contact.json
@@ -0,0 +1,666 @@
+{
+ "CONTACT_PANEL": {
+ "NOT_AVAILABLE": "Mövcud deyil",
+ "EMAIL_ADDRESS": "Email Address",
+ "PHONE_NUMBER": "Telefon nömrəsi",
+ "IDENTIFIER": "Identifier",
+ "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "COMPANY": "Şirkət",
+ "LOCATION": "Yer",
+ "BROWSER_LANGUAGE": "Browser Language",
+ "CONVERSATION_TITLE": "Conversation Details",
+ "VIEW_PROFILE": "View Profile",
+ "BROWSER": "Browser",
+ "OS": "Əməliyyat Sistemi",
+ "INITIATED_FROM": "Başlanğıc yeri",
+ "INITIATED_AT": "Başlanğıc vaxtı",
+ "IP_ADDRESS": "IP ünvanı",
+ "CREATED_AT_LABEL": "Yaradılıb",
+ "NEW_MESSAGE": "New message",
+ "CALL": "Zəng et",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
+ "CONVERSATIONS": {
+ "NO_RECORDS_FOUND": "Bu əlaqə ilə bağlı əvvəlki söhbətlər yoxdur.",
+ "TITLE": "Əvvəlki Söhbətlər"
+ },
+ "LABELS": {
+ "CONTACT": {
+ "TITLE": "Contact Labels",
+ "ERROR": "Couldn't update labels"
+ },
+ "CONVERSATION": {
+ "TITLE": "Conversation Labels",
+ "ADD_BUTTON": "Add Labels"
+ },
+ "LABEL_SELECT": {
+ "TITLE": "Add Labels",
+ "PLACEHOLDER": "Search labels",
+ "NO_RESULT": "No labels found",
+ "CREATE_LABEL": "Create new label"
+ }
+ },
+ "MERGE_CONTACT": "Merge contact",
+ "CONTACT_ACTIONS": "Əlaqə əməliyyatları",
+ "MUTE_CONTACT": "Block Contact",
+ "UNMUTE_CONTACT": "Unblock Contact",
+ "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
+ "UNMUTED_SUCCESS": "Bu əlaqənin bloku uğurla açıldı.",
+ "SEND_TRANSCRIPT": "Mətni Göndər",
+ "EDIT_LABEL": "Redaktə et",
+ "SIDEBAR_SECTIONS": {
+ "CUSTOM_ATTRIBUTES": "Custom Attributes",
+ "CONTACT_LABELS": "Contact Labels",
+ "PREVIOUS_CONVERSATIONS": "Əvvəlki Söhbətlər",
+ "NO_RECORDS_FOUND": "No attributes found"
+ }
+ },
+ "EDIT_CONTACT": {
+ "BUTTON_LABEL": "Əlaqəni redaktə et",
+ "TITLE": "Əlaqəni redaktə et",
+ "DESC": "Edit contact details"
+ },
+ "DELETE_CONTACT": {
+ "BUTTON_LABEL": "Delete Contact",
+ "TITLE": "Delete contact",
+ "DESC": "Delete contact details",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete",
+ "NO": "Xeyr, Saxla"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Əlaqəni silmək mümkün olmadı. Zəhmət olmasa, bir az sonra yenidən cəhd edin."
+ }
+ },
+ "CONTACT_FORM": {
+ "FORM": {
+ "SUBMIT": "Submit",
+ "CANCEL": "Ləğv et",
+ "AVATAR": {
+ "LABEL": "Contact Avatar"
+ },
+ "NAME": {
+ "PLACEHOLDER": "Əlaqənin tam adını daxil edin",
+ "LABEL": "Tam Ad"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio of the contact",
+ "LABEL": "Bio"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address of the contact",
+ "LABEL": "Email Address",
+ "DUPLICATE": "This email address is in use for another contact.",
+ "ERROR": "Please enter a valid email address."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Əlaqə şəxsin telefon nömrəsini daxil edin",
+ "LABEL": "Telefon nömrəsi",
+ "HELP": "Telefon nömrəsi E.164 formatında olmalıdır, məsələn: +1415555555. Ölkə kodunu siyahıdan seçə bilərsiniz.",
+ "ERROR": "Telefon nömrəsi ya boş olmalıdır, ya da E.164 formatında olmalıdır",
+ "DIAL_CODE_ERROR": "Zəhmət olmasa siyahıdan kodu seçin",
+ "DUPLICATE": "Bu telefon nömrəsi başqa bir əlaqə üçün istifadə olunur."
+ },
+ "LOCATION": {
+ "PLACEHOLDER": "Əlaqə yerini daxil edin",
+ "LABEL": "Yer"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Şirkət adını daxil edin",
+ "LABEL": "Company Name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Ölkə adını daxil edin",
+ "LABEL": "Country Name",
+ "SELECT_PLACEHOLDER": "Seçin",
+ "REMOVE": "Sil",
+ "SELECT_COUNTRY": "Ölkəni seçin"
+ },
+ "CITY": {
+ "PLACEHOLDER": "Şəhərin adını daxil edin",
+ "LABEL": "City Name"
+ },
+ "SOCIAL_PROFILES": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Enter the Facebook username",
+ "LABEL": "Facebook"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Enter the Twitter username",
+ "LABEL": "Twitter"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Enter the LinkedIn username",
+ "LABEL": "LinkedIn"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Enter the Github username",
+ "LABEL": "Github"
+ }
+ }
+ },
+ "DELETE_AVATAR": {
+ "API": {
+ "SUCCESS_MESSAGE": "Contact avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
+ }
+ },
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "NEW_CONVERSATION": {
+ "BUTTON_LABEL": "Söhbətə başla",
+ "TITLE": "Yeni söhbət",
+ "DESC": "Start a new conversation by sending a new message.",
+ "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "FORM": {
+ "TO": {
+ "LABEL": "Kimə"
+ },
+ "INBOX": {
+ "LABEL": "Via Inbox",
+ "PLACEHOLDER": "Choose source inbox",
+ "ERROR": "Bir qutu seçin"
+ },
+ "SUBJECT": {
+ "LABEL": "Mövzu",
+ "PLACEHOLDER": "Mövzu",
+ "ERROR": "Mövzu boş ola bilməz"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Write your message here",
+ "ERROR": "Message can't be empty"
+ },
+ "ATTACHMENTS": {
+ "SELECT": "Choose files",
+ "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ },
+ "SUBMIT": "Send message",
+ "CANCEL": "Ləğv et",
+ "SUCCESS_MESSAGE": "Message sent!",
+ "GO_TO_CONVERSATION": "Bax",
+ "ERROR_MESSAGE": "Göndərmək mümkün olmadı! yenidən cəhd et"
+ }
+ },
+ "CONTACTS_PAGE": {
+ "LIST": {
+ "TABLE_HEADER": {
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
+ }
+ },
+ "CUSTOM_ATTRIBUTES": {
+ "BUTTON": "Add custom attribute",
+ "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
+ "ACTIONS": {
+ "COPY": "Copy attribute",
+ "DELETE": "Delete attribute",
+ "EDIT": "Xüsusiyyəti redaktə et"
+ },
+ "ADD": {
+ "TITLE": "Create custom attribute",
+ "DESC": "Add custom information to this contact."
+ },
+ "FORM": {
+ "CREATE": "Add attribute",
+ "CANCEL": "Ləğv et",
+ "NAME": {
+ "LABEL": "Custom attribute name",
+ "PLACEHOLDER": "Eg: shopify id",
+ "ERROR": "Invalid custom attribute name"
+ },
+ "VALUE": {
+ "LABEL": "Attribute value",
+ "PLACEHOLDER": "Məsələn: 11901 "
+ },
+ "ADD": {
+ "TITLE": "Create new attribute ",
+ "SUCCESS": "Xüsusiyyət uğurla əlavə edildi",
+ "ERROR": "Xüsusiyyəti əlavə etmək mümkün olmadı. Zəhmət olmasa, bir az sonra yenidən cəhd edin"
+ },
+ "UPDATE": {
+ "SUCCESS": "Attribute updated successfully",
+ "ERROR": "Unable to update attribute. Please try again later"
+ },
+ "DELETE": {
+ "SUCCESS": "Attribute deleted successfully",
+ "ERROR": "Unable to delete attribute. Please try again later"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "Xüsusiyyətlər əlavə et",
+ "PLACEHOLDER": "Search attributes",
+ "NO_RESULT": "No attributes found"
+ },
+ "ATTRIBUTE_TYPE": {
+ "LIST": {
+ "PLACEHOLDER": "Dəyəri seçin",
+ "SEARCH_INPUT_PLACEHOLDER": "Search value",
+ "NO_RESULT": "No result found"
+ }
+ }
+ },
+ "VALIDATIONS": {
+ "REQUIRED": "Düzgün dəyər tələb olunur",
+ "INVALID_URL": "Yanlış URL",
+ "INVALID_INPUT": "Yanlış Giriş"
+ }
+ },
+ "MERGE_CONTACTS": {
+ "TITLE": "Merge contacts",
+ "DESCRIPTION": "İki profili bütün atributlar və söhbətlər daxil olmaqla birləşdirərək əlaqələri birləşdirin. Ziddiyyət olduqda, Əsas əlaqənin atributları üstünlük təşkil edəcək.",
+ "PRIMARY": {
+ "TITLE": "Əsas əlaqə",
+ "HELP_LABEL": "To be deleted"
+ },
+ "PARENT": {
+ "TITLE": "Contact to merge",
+ "PLACEHOLDER": "Əlaqə axtar",
+ "HELP_LABEL": "To be kept"
+ },
+ "SUMMARY": {
+ "TITLE": "Yekun",
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
+ },
+ "SEARCH": {
+ "ERROR_MESSAGE": "Nəsə səhv getdi. Zəhmət olmasa, bir az sonra yenidən cəhd edin."
+ },
+ "FORM": {
+ "SUBMIT": " Merge contacts",
+ "CANCEL": "Ləğv et",
+ "CHILD_CONTACT": {
+ "ERROR": "Birləşdirmək üçün alt əlaqəni seçin"
+ },
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Əlaqələri birləşdirmək mümkün olmadı, yenidən cəhd edin!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Əlaqələr",
+ "SEARCH_TITLE": "Əlaqələrdə axtarış",
+ "ACTIVE_TITLE": "Aktiv əlaqələr",
+ "SEARCH_PLACEHOLDER": "Axtarış...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Əlaqələr"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Əlaqə əlavə et",
+ "EXPORT_CONTACT": "Əlaqələri ixrac et",
+ "IMPORT_CONTACT": "Əlaqələri idxal et",
+ "SAVE_CONTACT": "Əlaqəni yadda saxla",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "Bu telefon nömrəsi başqa bir əlaqə üçün istifadə olunur.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Əlaqəni saxlamaq mümkün olmadı. Zəhmət olmasa sonra yenidən cəhd edin."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Bu əlaqənin bloku uğurla açıldı",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Əlaqələri idxal et",
+ "DESCRIPTION": "Əlaqələri CSV faylı vasitəsilə idxal edin.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV faylı:",
+ "CHOOSE_FILE": "Fayl seçin",
+ "CHANGE": "Dəyiş",
+ "CANCEL": "Ləğv et",
+ "IMPORT": "İdxal et",
+ "SUCCESS_MESSAGE": "İdxal bitdikdə sizə elektron bildiriş göndəriləcək.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Əlaqələri ixrac et",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "İxrac et",
+ "SUCCESS_MESSAGE": "İxrac davam edir. Fayl hazır olanda sizə elektron bildiriş göndəriləcək.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "SORT_BY": {
+ "LABEL": "Sırala",
+ "OPTIONS": {
+ "NAME": "Ad",
+ "EMAIL": "Elektron poçt",
+ "PHONE_NUMBER": "Telefon nömrəsi",
+ "COMPANY": "Şirkət",
+ "COUNTRY": "Ölkə",
+ "CITY": "Şəhər",
+ "LAST_ACTIVITY": "Son fəaliyyət",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Artan sıra ilə",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Ad",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Etibarlı ad daxil edin",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Bu filtrin silinməsini təsdiqləyirsiniz?",
+ "CONFIRM": "Yes, Delete",
+ "CANCEL": "Xeyr, Ləğv et",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Ad",
+ "EMAIL": "Elektron poçt",
+ "PHONE_NUMBER": "Telefon nömrəsi",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Ölkə",
+ "CITY": "Şəhər",
+ "COMPANY": "Şirkət",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Son fəaliyyət",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Doğru",
+ "BLOCKED_FALSE": "Yanlış",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "də",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Soyadı daxil edin"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Telefon nömrəsini daxil edin",
+ "DUPLICATE": "Bu telefon nömrəsi başqa bir əlaqə üçün istifadə olunur."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Şəhər adını daxil edin"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Ölkəni seçin"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Şirkət adını daxil edin"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Yaradılıb {date}",
+ "LAST_ACTIVITY": "Son fəaliyyət {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Yes, Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Əlaqəni silmək mümkün olmadı. Zəhmət olmasa sonra yenidən cəhd edin."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar uğurla silindi",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Xüsusiyyətlər",
+ "HISTORY": "Tarix",
+ "NOTES": "Qeydlər",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Bu əlaqə ilə bağlı əvvəlki söhbətlər yoxdur"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Bəli",
+ "NO": "Xeyr",
+ "TRIGGER": {
+ "SELECT": "Dəyəri seçin",
+ "INPUT": "Dəyər daxil edin"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Yanlış nömrə",
+ "REQUIRED": "Düzgün dəyər tələb olunur",
+ "INVALID_INPUT": "Yanlış giriş",
+ "INVALID_URL": "Yanlış URL",
+ "INVALID_DATE": "Yanlış tarix"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Xüsusiyyəti silmək mümkün olmadı. Zəhmət olmasa, bir az sonra yenidən cəhd edin"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "İki profili bütün atributlar və söhbətlər daxil olmaqla birləşdirin. Ziddiyyət olduqda, əsas əlaqənin atributları üstünlük təşkil edəcək.",
+ "PRIMARY": "Əsas əlaqə",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Davam etməzdən əvvəl birləşdirmək üçün əlaqə seçin",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Əsas əlaqəni axtar",
+ "SEARCH_PLACEHOLDER": "Əlaqə axtar",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Əlaqələri birləşdirmək mümkün olmadı, yenidən cəhd edin!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Ləğv et",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Qeyd əlavə et",
+ "WROTE": "yazdı",
+ "YOU": "Siz",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "Genişləndir",
+ "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.",
+ "CONVERSATION_EMPTY_STATE": "Hələ qeydlər yoxdur. Yeni qeyd yaratmaq üçün Qeyd əlavə et düyməsini istifadə edin."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No contacts found in this account",
+ "SUBTITLE": "Start adding new contacts by clicking on the button below",
+ "BUTTON_LABEL": "Əlaqə əlavə et",
+ "SEARCH_EMPTY_STATE_TITLE": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "Bu baxışda əlaqə mövcud deyil 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Hazırda aktiv əlaqə yoxdur 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} seçildi",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Delete",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Əlaqələri silmək mümkün olmadı.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Bax",
+ "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": "Kimə:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Əlaqə yaradılır..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Qutuları göstər"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Mövzu :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Gizli nüsxə"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "İmtina et",
+ "SEND": "Göndər ({keyCode})"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/contactFilters.json b/app/javascript/dashboard/i18n/locale/az/contactFilters.json
new file mode 100644
index 000000000..4c62f0789
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/contactFilters.json
@@ -0,0 +1,60 @@
+{
+ "CONTACTS_FILTER": {
+ "TITLE": "Filter Contacts",
+ "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
+ "EDIT_CUSTOM_SEGMENT": "Edit Segment",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "ADD_NEW_FILTER": "Add Filter",
+ "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "FILTER_DELETE_ERROR": "You should have atleast one filter to save",
+ "SUBMIT_BUTTON_LABEL": "Submit",
+ "UPDATE_BUTTON_LABEL": "Update Segment",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear Filters",
+ "EMPTY_VALUE_ERROR": "Value is required",
+ "SEGMENT_LABEL": "Segment Name",
+ "SEGMENT_QUERY_LABEL": "Segment Query",
+ "TOOLTIP_LABEL": "Filter contacts",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "contains": "Contains",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_lesser_than": "Is lesser than",
+ "days_before": "Is x days before"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
+ "ATTRIBUTES": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "CITY": "City",
+ "COUNTRY": "Country",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created At",
+ "LAST_ACTIVITY": "Last Activity",
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard Filters",
+ "ADDITIONAL_FILTERS": "Additional Filters",
+ "CUSTOM_ATTRIBUTES": "Custom Attributes"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/contentTemplates.json b/app/javascript/dashboard/i18n/locale/az/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/conversation.json b/app/javascript/dashboard/i18n/locale/az/conversation.json
new file mode 100644
index 000000000..eff53867c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/conversation.json
@@ -0,0 +1,490 @@
+{
+ "CONVERSATION": {
+ "SELECT_A_CONVERSATION": "Zəhmət olmasa, soldakı paneldən bir söhbət seçin",
+ "CSAT_REPLY_MESSAGE": "Zəhmət olmasa söhbəti qiymətləndirin",
+ "404": "Bağışlayın, söhbəti tapa bilmirik. Zəhmət olmasa, yenidən cəhd edin",
+ "SWITCH_VIEW_LAYOUT": "Düzəni dəyişdirin",
+ "DASHBOARD_APP_TAB_MESSAGES": "Mesajlar",
+ "UNVERIFIED_SESSION": "Bu istifadəçinin şəxsiyyəti təsdiqlənməyib",
+ "NO_MESSAGE_1": "Uh oh! Görünür qutunuzda müştərilərdən mesaj yoxdur.",
+ "NO_MESSAGE_2": " səhifənizə mesaj göndərmək üçün!",
+ "NO_INBOX_1": "Hola! Görünür hələ heç bir poçt qutusu əlavə etməmisiniz.",
+ "NO_INBOX_2": " başlamaq üçün",
+ "NO_INBOX_AGENT": "Uh Oh! Görünür heç bir poçt qutusunun üzvü deyilsiniz. Zəhmət olmasa administratorunuzla əlaqə saxlayın",
+ "SEARCH_MESSAGES": "Söhbətlərdə mesajları axtarın",
+ "VIEW_ORIGINAL": "Orijinalı göstər",
+ "VIEW_TRANSLATED": "Tərcüməni göstər",
+ "EMPTY_STATE": {
+ "CMD_BAR": "əmr menyusunu açmaq üçün",
+ "KEYBOARD_SHORTCUTS": "klaviatura qısa yollarını görmək üçün"
+ },
+ "SEARCH": {
+ "TITLE": "Mesajları axtar",
+ "RESULT_TITLE": "Axtarış Nəticələri",
+ "LOADING_MESSAGE": "Məlumatlar işlənir...",
+ "PLACEHOLDER": "Mesajları axtarmaq üçün istənilən mətni yazın",
+ "NO_MATCHING_RESULTS": "Nəticə tapılmadı."
+ },
+ "UNREAD_MESSAGES": "Oxunmamış Mesajlar",
+ "UNREAD_MESSAGE": "Oxunmamış Mesaj",
+ "CLICK_HERE": "Buraya klik edin",
+ "LOADING_INBOXES": "Qutular yüklənir",
+ "LOADING_CONVERSATIONS": "Söhbətlər yüklənir",
+ "CANNOT_REPLY": "Cavab verə bilməzsiniz, çünki",
+ "24_HOURS_WINDOW": "24 saatlıq mesaj pəncərəsi məhdudiyyəti",
+ "48_HOURS_WINDOW": "48 saatlıq mesaj pəncərəsi məhdudiyyəti",
+ "API_HOURS_WINDOW": "Bu söhbətə yalnız {hours} saat ərzində cavab verə bilərsiniz",
+ "NOT_ASSIGNED_TO_YOU": "Bu söhbət sizə təyin edilməyib. Bu söhbəti özünüzə təyin etmək istərdiniz?",
+ "ASSIGN_TO_ME": "Mənə təyin et",
+ "BOT_HANDOFF_MESSAGE": "Hazırda köməkçi və ya bot tərəfindən idarə olunan söhbətə cavab verirsiniz.",
+ "BOT_HANDOFF_ACTION": "Açıq kimi işarələ və özünüzə təyin et",
+ "BOT_HANDOFF_REOPEN_ACTION": "Söhbəti açıq kimi işarələyin",
+ "BOT_HANDOFF_SUCCESS": "Söhbət sizə təhvil verildi",
+ "BOT_HANDOFF_ERROR": "Söhbəti ələ keçirmək alınmadı. Zəhmət olmasa, yenidən cəhd edin.",
+ "TWILIO_WHATSAPP_CAN_REPLY": "Bu söhbətə yalnız şablon mesajı ilə cavab verə bilərsiniz, çünki",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24 saatlıq mesaj pəncərəsi məhdudiyyəti",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Bu Instagram hesabı yeni Instagram kanalının daxil olan qutusuna köçürülüb. Bütün yeni mesajlar orada görünəcək. Bu söhbətdən artıq mesaj göndərə bilməyəcəksiniz.",
+ "REPLYING_TO": "Siz cavab verirsiniz:",
+ "REMOVE_SELECTION": "Seçimi sil",
+ "DOWNLOAD": "Yüklə",
+ "UNKNOWN_FILE_TYPE": "Naməlum fayl",
+ "SAVE_CONTACT": "Əlaqəni yadda saxla",
+ "NO_CONTENT": "Göstəriləcək məzmun yoxdur",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} bir əlaqə paylaşıb",
+ "LOCATION": "{sender} bir yer paylaşıb",
+ "FILE": "{sender} bir fayl paylaşıb",
+ "MEETING": "{sender} bir görüş başlayıb"
+ },
+ "UPLOADING_ATTACHMENTS": "Əlavələr yüklənir...",
+ "REPLIED_TO_STORY": "Hekayənizə cavab verdi",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "Bu mesaj dəstəklənmir. Bu mesajı Facebook Messenger tətbiqində görə bilərsiniz.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "Bu mesaj dəstəklənmir. Bu mesajı Instagram tətbiqində görə bilərsiniz.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Bu mesaj dəstəklənmir. Bu mesajı TikTok tətbiqində görə bilərsiniz.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "Mesaj uğurla silindi",
+ "FAIL_DELETE_MESSSAGE": "Mesajı silmək mümkün olmadı! Yenidən cəhd edin",
+ "NO_RESPONSE": "Cavab yoxdur",
+ "RESPONSE": "Cavab",
+ "RATING_TITLE": "Qiymətləndirmə",
+ "FEEDBACK_TITLE": "Rəy",
+ "REPLY_MESSAGE_NOT_FOUND": "Mesaj mövcud deyil",
+ "CARD": {
+ "SHOW_LABELS": "Etiketləri göstər",
+ "HIDE_LABELS": "Etiketləri gizlədin",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Gələn zəng",
+ "OUTGOING_CALL": "Gedən zəng",
+ "CALL_IN_PROGRESS": "Zəng davam edir",
+ "NO_ANSWER": "Cavab yoxdur",
+ "NO_ANSWER_OUTBOUND_LABEL": "Cavab yoxdur",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Qeyri-işlək zəng",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Zəng bitdi",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Hələ cavab verilməyib",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Onlar cavab verdi",
+ "YOU_ANSWERED": "Siz cavab verdiniz",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Zəngə qoşul",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
+ },
+ "HEADER": {
+ "RESOLVE_ACTION": "Həll et",
+ "REOPEN_ACTION": "Yenidən aç",
+ "OPEN_ACTION": "Aç",
+ "MORE_ACTIONS": "Daha çox əməliyyat",
+ "OPEN": "Daha çox",
+ "CLOSE": "Bağla",
+ "DETAILS": "təfərrüatlar",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "Gecikdirilib",
+ "SNOOZED_UNTIL_TOMORROW": "Sabaha qədər təxirə salındı",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Gələn həftəyə qədər təxirə salındı",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Növbəti cavaba qədər təxirə salındı",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "qaçırıldı",
+ "DUE": "vaxtı çatıb"
+ }
+ },
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "Gözləmədə kimi işarələyin",
+ "SNOOZE_UNTIL": "Gecikdir",
+ "SNOOZE": {
+ "TITLE": "Gecikdirin, qədər",
+ "NEXT_REPLY": "Növbəti cavab",
+ "TOMORROW": "Sabah",
+ "NEXT_WEEK": "Gələn həftə"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "Agentlər",
+ "TEAMS": "Komandalar"
+ },
+ "CUSTOM_SNOOZE": {
+ "TITLE": "Gecikdirmə müddəti",
+ "APPLY": "Gecikdir",
+ "CANCEL": "Ləğv et"
+ },
+ "PRIORITY": {
+ "TITLE": "Prioritet",
+ "OPTIONS": {
+ "NONE": "Heç biri",
+ "URGENT": "Təcili",
+ "HIGH": "Yüksək",
+ "MEDIUM": "Orta",
+ "LOW": "Aşağı"
+ },
+ "CHANGE_PRIORITY": {
+ "SELECT_PLACEHOLDER": "Heç biri",
+ "INPUT_PLACEHOLDER": "Prioritet seçin",
+ "NO_RESULTS": "Nəticə tapılmadı",
+ "SUCCESSFUL": "{conversationId} söhbətinin prioriteti {priority} olaraq dəyişdirildi",
+ "FAILED": "Prioritet dəyişdirilə bilmədi. Zəhmət olmasa yenidən cəhd edin."
+ }
+ },
+ "DELETE_CONVERSATION": {
+ "TITLE": "#{conversationId} nömrəli söhbəti sil",
+ "DESCRIPTION": "Bu söhbəti silmək istədiyinizə əminsiniz?",
+ "CONFIRM": "Sil"
+ },
+ "CARD_CONTEXT_MENU": {
+ "PENDING": "Gözləyən kimi işarələyin",
+ "RESOLVED": "Həll olundu kimi işarələyin",
+ "MARK_AS_UNREAD": "Oxunmamış kimi işarələyin",
+ "MARK_AS_READ": "Oxunmuş kimi işarələ",
+ "REOPEN": "Söhbəti yenidən açın",
+ "SNOOZE": {
+ "TITLE": "Gecikdir",
+ "NEXT_REPLY": "Növbəti cavaba qədər",
+ "TOMORROW": "Sabaha qədər",
+ "NEXT_WEEK": "Növbəti həftəyə qədər"
+ },
+ "ASSIGN_AGENT": "Agent təyin et",
+ "ASSIGN_LABEL": "Etiket təyin et",
+ "AGENTS_LOADING": "Agentlər yüklənir...",
+ "ASSIGN_TEAM": "Komandaya təyin et",
+ "DELETE": "Söhbəti sil",
+ "OPEN_IN_NEW_TAB": "Yeni nişanda aç",
+ "COPY_LINK": "Söhbət linkini kopyala",
+ "COPY_LINK_SUCCESS": "Söhbət linki panoya kopyalandı",
+ "API": {
+ "AGENT_ASSIGNMENT": {
+ "SUCCESFUL": "{conversationId} söhbəti \"{agentName}\" agentinə təyin edildi",
+ "FAILED": "Agent təyin etmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin."
+ },
+ "LABEL_ASSIGNMENT": {
+ "SUCCESFUL": "{conversationId} söhbətinə #{labelName} etiketi təyin edildi",
+ "FAILED": "Etiket təyin etmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "{conversationId} nömrəli söhbətdən #{labelName} etiketi silindi",
+ "FAILED": "Etiketi silmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin."
+ },
+ "TEAM_ASSIGNMENT": {
+ "SUCCESFUL": "Söhbət id-si {conversationId} üçün \"{team}\" komandası təyin edildi",
+ "FAILED": "Komanda təyin etmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin."
+ }
+ }
+ },
+ "FOOTER": {
+ "MESSAGE_SIGN_TOOLTIP": "Mesaj imzası",
+ "ENABLE_SIGN_TOOLTIP": "İmzaya icazə ver",
+ "DISABLE_SIGN_TOOLTIP": "İmzaya icazə vermə",
+ "MSG_INPUT": "Yeni sətr üçün Shift + enter. Canned Response seçmək üçün '/' ilə başlayın.",
+ "PRIVATE_MSG_INPUT": "Yeni sətr üçün Shift + enter. Bu yalnız Agentlər üçün görünəcək",
+ "MESSAGING_RESTRICTED": "Bu söhbətə cavab verə bilməzsiniz",
+ "MESSAGING_RESTRICTED_WHATSAPP": "24 saatlıq mesaj pəncərəsi məhdudiyyəti səbəbindən yalnız şablon mesajla cavab verə bilərsiniz",
+ "MESSAGING_RESTRICTED_API": "Mesaj pəncərəsi məhdudiyyəti səbəbindən yalnız şablon mesajla cavab verə bilərsiniz",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Mesaj imzası qurulmayıb, zəhmət olmasa profil parametrlərində qurun.",
+ "COPILOT_MSG_INPUT": "Copilot üçün əlavə göstərişlər verin və ya başqa sual verin... Davam etmək üçün enter düyməsini basın",
+ "CLICK_HERE": "Yeniləmək üçün buraya klikləyin",
+ "WHATSAPP_TEMPLATES": "Whatsapp Şablonları"
+ },
+ "REPLYBOX": {
+ "REPLY": "Cavab ver",
+ "PRIVATE_NOTE": "Şəxsi Qeyd",
+ "SEND": "Göndər",
+ "CREATE": "Qeyd əlavə et",
+ "INSERT_READ_MORE": "Daha çox oxu",
+ "DISMISS_REPLY": "Cavabı ləğv et",
+ "REPLYING_TO": "Cavab verir:",
+ "TIP_EMOJI_ICON": "Emoji seçicisini göstər",
+ "TIP_ATTACH_ICON": "Faylları əlavə et",
+ "TIP_AUDIORECORDER_ICON": "Səs yaz",
+ "TIP_AUDIORECORDER_PERMISSION": "Səsə girişə icazə ver",
+ "TIP_AUDIORECORDER_ERROR": "Səsi açmaq mümkün olmadı",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "Qoşmaq üçün buraya sürükləyin və buraxın",
+ "START_AUDIO_RECORDING": "Səs yazısını başla",
+ "STOP_AUDIO_RECORDING": "Səs yazısını dayandırın",
+ "COPILOT_THINKING": "Copilot düşünür",
+ "EMAIL_HEAD": {
+ "TO": "KİMƏ",
+ "ADD_BCC": "Gizli nüsxə əlavə et",
+ "CC": {
+ "LABEL": "CC",
+ "PLACEHOLDER": "Vergüllə ayrılmış elektron poçtlar",
+ "ERROR": "Zəhmət olmasa düzgün elektron poçt ünvanları daxil edin"
+ },
+ "BCC": {
+ "LABEL": "BCC",
+ "PLACEHOLDER": "Vergüllə ayrılmış e-poçtlar",
+ "ERROR": "Zəhmət olmasa, düzgün e-poçt ünvanları daxil edin"
+ }
+ },
+ "UNDEFINED_VARIABLES": {
+ "TITLE": "Təyin olunmamış dəyişənlər",
+ "MESSAGE": "Mesajınızda {undefinedVariablesCount} təyin olunmamış dəyişən var: {undefinedVariables}. Mesajı yenə də göndərmək istəyirsiniz?",
+ "CONFIRM": {
+ "YES": "Göndər",
+ "CANCEL": "Ləğv et"
+ }
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Sitat gətirilmiş e-poçt mövzusunu daxil et",
+ "DISABLE_TOOLTIP": "Sitat gətirilmiş e-poçt mövzusunu daxil etmə",
+ "REMOVE_PREVIEW": "Sitat gətirilmiş e-poçt mövzusunu sil",
+ "COLLAPSE": "Önizləməni yığışdır",
+ "EXPAND": "Önizləməni genişləndir"
+ }
+ },
+ "VISIBLE_TO_AGENTS": "Şəxsi Qeyd: Yalnız siz və komandanız üçün görünür",
+ "CHANGE_STATUS": "Söhbət statusu dəyişdirildi",
+ "CHANGE_STATUS_FAILED": "Söhbətin statusunu dəyişmək mümkün olmadı",
+ "CHANGE_AGENT": "Söhbətin məsul şəxsi dəyişdirildi",
+ "CHANGE_AGENT_FAILED": "Təyinat dəyişdirilməsi uğursuz oldu",
+ "ASSIGN_LABEL_SUCCESFUL": "Etiket uğurla təyin edildi",
+ "ASSIGN_LABEL_FAILED": "Etiket təyini uğursuz oldu",
+ "CHANGE_TEAM": "Söhbət komandası dəyişdirildi",
+ "SUCCESS_DELETE_CONVERSATION": "Söhbət uğurla silindi",
+ "FAIL_DELETE_CONVERSATION": "Söhbəti silmək mümkün olmadı! Yenidən cəhd edin",
+ "FILE_SIZE_LIMIT": "Fayl {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB əlavə limitini aşır",
+ "FILE_TYPE_NOT_SUPPORTED": "Bu {fileName} fayl növü bu söhbətdə dəstəklənmir",
+ "MESSAGE_ERROR": "Bu mesajı göndərmək mümkün olmadı, zəhmət olmasa bir az sonra yenidən cəhd edin",
+ "SENT_BY": "Göndərən:",
+ "BOT": "Bot",
+ "NATIVE_APP": "Yerli tətbiq",
+ "NATIVE_APP_ADVISORY": "Bu mesaj yerli tətbiqdən göndərilib. Mesaj pəncərəsini saxlamaq üçün Chatwoot-dan cavab verin.",
+ "SEND_FAILED": "Mesaj göndərmək mümkün olmadı! Yenidən cəhd edin",
+ "TRY_AGAIN": "yenidən cəhd et",
+ "ASSIGNMENT": {
+ "SELECT_AGENT": "Agent seçin",
+ "REMOVE": "Sil",
+ "ASSIGN": "Təyin et"
+ },
+ "CONTEXT_MENU": {
+ "COPY": "Kopyala",
+ "REPLY_TO": "Bu mesaja cavab ver",
+ "DELETE": "Sil",
+ "CREATE_A_CANNED_RESPONSE": "Hazır cavablara əlavə et",
+ "TRANSLATE": "Tərcümə et",
+ "COPY_PERMALINK": "Mesaja keçid linkini kopyalayın",
+ "LINK_COPIED": "Mesajın URL-i panoya kopyalandı",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "Bu mesajı silmək istədiyinizə əminsiniz?",
+ "MESSAGE": "Bu əməliyyatı geri qaytara bilməzsiniz",
+ "DELETE": "Sil",
+ "CANCEL": "Ləğv et"
+ }
+ },
+ "SIDEBAR": {
+ "CONTACT": "Əlaqə",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Gələn zəng",
+ "OUTGOING_CALL": "Gedən zəng",
+ "CALL_IN_PROGRESS": "Zəng davam edir",
+ "NOT_ANSWERED_YET": "Hələ cavab verilməyib",
+ "HANDLED_IN_ANOTHER_TAB": "Başqa sekmədə işlənir",
+ "REJECT_CALL": "İmtina et",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Zəngə qoşul",
+ "END_CALL": "Zəngi bitir",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
+ }
+ },
+ "EMAIL_TRANSCRIPT": {
+ "TITLE": "Söhbət transkriptini göndər",
+ "DESC": "Söhbət transkriptinin surətini göstərilən e-poçt ünvanına göndərin",
+ "SUBMIT": "Təsdiqlə",
+ "CANCEL": "Ləğv et",
+ "SEND_EMAIL_SUCCESS": "Söhbət yazısı uğurla göndərildi",
+ "SEND_EMAIL_ERROR": "Xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Cari planınızda e-poçt yazışması mövcud deyil. Bu funksiyanı istifadə etmək üçün lütfən planınızı yüksəldin.",
+ "FORM": {
+ "SEND_TO_CONTACT": "Yazını müştəriyə göndər",
+ "SEND_TO_AGENT": "Mətni təyin olunmuş agentə göndər",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "Yazını başqa e-poçt ünvanına göndər",
+ "EMAIL": {
+ "PLACEHOLDER": "E-poçt ünvanı daxil edin",
+ "ERROR": "Zəhmət olmasa, düzgün e-poçt ünvanı daxil edin"
+ }
+ }
+ },
+ "ONBOARDING": {
+ "TITLE": "Salam 👋, {installationName}-ə xoş gəlmisiniz!",
+ "DESCRIPTION": "Qeydiyyatdan keçdiyiniz üçün təşəkkür edirik. {installationName}-dən maksimum faydalanmağınızı istəyirik. Təcrübəni xoş etmək üçün {installationName}-də edə biləcəyiniz bir neçə şey var.",
+ "GREETING_MORNING": "👋 Sabahınız xeyir, {name}. {installationName}-ə xoş gəlmisiniz.",
+ "GREETING_AFTERNOON": "👋 Günortanız xeyir, {name}. {installationName}-ə xoş gəlmisiniz.",
+ "GREETING_EVENING": "👋 Axşamınız xeyir, {name}. {installationName}-ə xoş gəlmisiniz.",
+ "READ_LATEST_UPDATES": "Ən son yeniliklərimizi oxuyun",
+ "ALL_CONVERSATION": {
+ "TITLE": "Bütün söhbətləriniz bir yerdə",
+ "DESCRIPTION": "Müştərilərinizdən olan bütün söhbətləri tək bir paneldə görün. Söhbətləri daxil olan kanal, etiket və vəziyyətə görə süzgəcdən keçirə bilərsiniz.",
+ "NEW_LINK": "Qutunu yaratmaq üçün bura klikləyin"
+ },
+ "TEAM_MEMBERS": {
+ "TITLE": "Komanda üzvlərinizi dəvət edin",
+ "DESCRIPTION": "Müştərinizlə danışmağa hazırlaşdığınız üçün, sizə kömək etmək üçün komanda üzvlərinizi dəvət edin. Komanda üzvlərinizi agent siyahısına onların e-poçt ünvanlarını əlavə etməklə dəvət edə bilərsiniz.",
+ "NEW_LINK": "Komanda üzvünü dəvət etmək üçün buraya klikləyin"
+ },
+ "LABELS": {
+ "TITLE": "Söhbətləri etiketlərlə təşkil edin",
+ "DESCRIPTION": "Etiketlər söhbətinizi kateqoriyalara ayırmağı asanlaşdırır. Sonra söhbətdə istifadə etmək üçün #support-enquiry, #billing-question və s. kimi bəzi etiketlər yaradın.",
+ "NEW_LINK": "Etiket yaratmaq üçün buraya klikləyin"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Hazır cavablar yaradın",
+ "DESCRIPTION": "Əvvəlcədən yazılmış sürətli cavab şablonları söhbətə tez cavab verməyinizə kömək edir. Agentlər cavaba daxil etmək üçün '/' simvolunu və sonra qısa kodu yaza bilərlər.",
+ "NEW_LINK": "Sürətli cavab yaratmaq üçün bura klikləyin"
+ }
+ },
+ "CONVERSATION_SIDEBAR": {
+ "ASSIGNEE_LABEL": "Təyin olunmuş agent",
+ "SELF_ASSIGN": "Mənə təyin et",
+ "TEAM_LABEL": "Təyin olunmuş komanda",
+ "SELECT": {
+ "PLACEHOLDER": "Heç biri"
+ },
+ "ACCORDION": {
+ "CONTACT_DETAILS": "Əlaqə Məlumatları",
+ "CONVERSATION_ACTIONS": "Söhbət Əməliyyatları",
+ "CONVERSATION_LABELS": "Söhbət Etiketləri",
+ "CONVERSATION_INFO": "Söhbət Məlumatları",
+ "CONTACT_NOTES": "Əlaqə Qeydləri",
+ "CONTACT_ATTRIBUTES": "Əlaqə Xüsusiyyətləri",
+ "PREVIOUS_CONVERSATION": "Əvvəlki Söhbətlər",
+ "MACROS": "Makrolar",
+ "LINEAR_ISSUES": "Əlaqəli Linear məsələlər",
+ "SHOPIFY_ORDERS": "Shopify Sifarişləri",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Sifariş #{id}",
+ "ERROR": "Sifarişlərin yüklənməsində xəta",
+ "NO_SHOPIFY_ORDERS": "Sifariş tapılmadı",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Gözləmədə",
+ "AUTHORIZED": "Təsdiqlənmiş",
+ "PARTIALLY_PAID": "Qismən ödənilmiş",
+ "PAID": "Ödənilib",
+ "PARTIALLY_REFUNDED": "Qismən Geri Ödənilib",
+ "REFUNDED": "Geri Ödənilib",
+ "VOIDED": "Ləğv Edilib"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Yerinə Yetirilib",
+ "PARTIALLY_FULFILLED": "Qismən Yerinə Yetirilib",
+ "UNFULFILLED": "Yerinə Yetirilməyib"
+ }
+ }
+ },
+ "CONVERSATION_CUSTOM_ATTRIBUTES": {
+ "ADD_BUTTON_TEXT": "Xüsusiyyət yaradın",
+ "NO_RECORDS_FOUND": "Heç bir atribut tapılmadı",
+ "UPDATE": {
+ "SUCCESS": "Xüsusiyyət uğurla yeniləndi",
+ "ERROR": "Xüsusiyyət yenilənə bilmədi. Zəhmət olmasa, bir az sonra yenidən cəhd edin"
+ },
+ "ADD": {
+ "TITLE": "Əlavə et",
+ "SUCCESS": "Xüsusiyyət uğurla əlavə edildi",
+ "ERROR": "Xüsusiyyət əlavə edilə bilmədi. Zəhmət olmasa, bir az sonra yenidən cəhd edin"
+ },
+ "DELETE": {
+ "SUCCESS": "Xüsusiyyət uğurla silindi",
+ "ERROR": "Atributu silmək mümkün olmadı. Zəhmət olmasa, bir az sonra yenidən cəhd edin"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "Atributlar əlavə et",
+ "PLACEHOLDER": "Atributlarda axtar",
+ "NO_RESULT": "Heç bir atribut tapılmadı"
+ }
+ },
+ "EMAIL_HEADER": {
+ "FROM": "Kimdən",
+ "TO": "Kimə",
+ "BCC": "Gizli nüsxə",
+ "CC": "Nüsxə",
+ "SUBJECT": "Mövzu",
+ "EXPAND": "E-poçtu genişləndir"
+ },
+ "CONVERSATION_PARTICIPANTS": {
+ "SIDEBAR_MENU_TITLE": "İştirak edənlər",
+ "SIDEBAR_TITLE": "Söhbət iştirakçıları",
+ "NO_RECORDS_FOUND": "Nəticə tapılmadı",
+ "ADD_PARTICIPANTS": "İştirakçıları seçin",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} digər",
+ "REMANING_PARTICIPANT_TEXT": "+{count} digər",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} nəfər iştirak edir.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} nəfər iştirak edir.",
+ "NO_PARTICIPANTS_TEXT": "No one is participating!.",
+ "WATCH_CONVERSATION": "Söhbətə qoşulun",
+ "YOU_ARE_WATCHING": "Siz iştirak edirsiniz",
+ "API": {
+ "ERROR_MESSAGE": "Yenilənmədi, yenidən cəhd edin!",
+ "SUCCESS_MESSAGE": "İştirakçılar yeniləndi!"
+ }
+ },
+ "TRANSLATE_MODAL": {
+ "TITLE": "Tərcümə edilmiş məzmunu göstər",
+ "DESC": "You can view the translated content in each langauge.",
+ "ORIGINAL_CONTENT": "Orijinal məzmun",
+ "TRANSLATED_CONTENT": "Tərcümə edilmiş məzmun",
+ "NO_TRANSLATIONS_AVAILABLE": "Bu məzmun üçün tərcümə mövcud deyil"
+ },
+ "TYPING": {
+ "ONE": "{user} yazır",
+ "TWO": "{user} və {secondUser} yazırlar",
+ "MULTIPLE": "{user} və {count} başqası yazırlar"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Bu təklifləri sınayın"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Əlavəni yükləmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/csatMgmt.json b/app/javascript/dashboard/i18n/locale/az/csatMgmt.json
new file mode 100644
index 000000000..9e16dc2b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/csatMgmt.json
@@ -0,0 +1,13 @@
+{
+ "CSAT": {
+ "TITLE": "Rate your conversation",
+ "PLACEHOLDER": "Tell us more...",
+ "RATINGS": {
+ "POOR": "😞 Poor",
+ "FAIR": "😑 Fair",
+ "AVERAGE": "😐 Average",
+ "GOOD": "😀 Good",
+ "EXCELLENT": "😍 Excellent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/customRole.json b/app/javascript/dashboard/i18n/locale/az/customRole.json
new file mode 100644
index 000000000..f7c1709bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/datePicker.json b/app/javascript/dashboard/i18n/locale/az/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/emoji.json b/app/javascript/dashboard/i18n/locale/az/emoji.json
new file mode 100644
index 000000000..d5b96f0f9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/emoji.json
@@ -0,0 +1,7 @@
+{
+ "EMOJI": {
+ "PLACEHOLDER": "Search emojis",
+ "NOT_FOUND": "No emoji match your search",
+ "REMOVE": "Remove"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/general.json b/app/javascript/dashboard/i18n/locale/az/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/generalSettings.json b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
new file mode 100644
index 000000000..fab8020e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/generalSettings.json
@@ -0,0 +1,252 @@
+{
+ "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. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
+ "TITLE": "Account settings",
+ "SUBMIT": "Update settings",
+ "BACK": "Back",
+ "DISMISS": "Dismiss",
+ "UPDATE": {
+ "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": {
+ "TITLE": "General settings",
+ "NOTE": ""
+ },
+ "ACCOUNT_ID": {
+ "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",
+ "ERROR": "Please enter a valid account name"
+ },
+ "LANGUAGE": {
+ "LABEL": "Site language",
+ "PLACEHOLDER": "Your account name",
+ "ERROR": ""
+ },
+ "DOMAIN": {
+ "LABEL": "Incoming Email Domain",
+ "PLACEHOLDER": "The domain where you will receive the emails",
+ "ERROR": ""
+ },
+ "SUPPORT_EMAIL": {
+ "LABEL": "Support Email",
+ "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": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
+ "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"
+ },
+ "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.",
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
+ }
+ },
+ "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"
+ },
+ "FORMS": {
+ "MULTISELECT": {
+ "ENTER_TO_SELECT": "Press enter to select",
+ "ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
+ "SELECT_ONE": "Select one",
+ "SELECT": "Select"
+ }
+ },
+ "NOTIFICATIONS_PAGE": {
+ "HEADER": "Notifications",
+ "MARK_ALL_DONE": "Mark All Done",
+ "DELETE_TITLE": "deleted",
+ "UNREAD_NOTIFICATION": {
+ "TITLE": "Unread Notifications",
+ "ALL_NOTIFICATIONS": "View all notifications",
+ "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
+ "EMPTY_MESSAGE": "You have no unread notifications"
+ },
+ "LIST": {
+ "LOADING_MESSAGE": "Loading notifications...",
+ "404": "No Notifications",
+ "TABLE_HEADER": [
+ "Name",
+ "Phone Number",
+ "Conversations",
+ "Last Contacted"
+ ]
+ },
+ "TYPE_LABEL": {
+ "conversation_creation": "New conversation",
+ "conversation_assignment": "Conversation Assigned",
+ "assigned_conversation_new_message": "New Message",
+ "participating_conversation_new_message": "New Message",
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
+ }
+ },
+ "NETWORK": {
+ "NOTIFICATION": {
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
+ },
+ "BUTTON": {
+ "REFRESH": "Refresh"
+ }
+ },
+ "COMMAND_BAR": {
+ "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
+ "SECTIONS": {
+ "GENERAL": "General",
+ "REPORTS": "Reports",
+ "CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
+ "CHANGE_ASSIGNEE": "Change Assignee",
+ "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_TEAM": "Change Team",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "ADD_LABEL": "Add label to the conversation",
+ "REMOVE_LABEL": "Remove label from the conversation",
+ "SETTINGS": "Settings",
+ "AI_ASSIST": "AI Assist",
+ "APPEARANCE": "Appearance",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ },
+ "COMMANDS": {
+ "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
+ "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
+ "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
+ "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
+ "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
+ "GO_TO_LABEL_REPORTS": "Go to Label Reports",
+ "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
+ "GO_TO_TEAM_REPORTS": "Go to Team Reports",
+ "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
+ "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
+ "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
+ "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
+ "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
+ "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
+ "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
+ "GO_TO_NOTIFICATIONS": "Go to Notifications",
+ "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
+ "ASSIGN_AN_AGENT": "Assign an agent",
+ "AI_ASSIST": "AI Assist",
+ "ASSIGN_PRIORITY": "Assign priority",
+ "ASSIGN_A_TEAM": "Assign a team",
+ "MUTE_CONVERSATION": "Mute conversation",
+ "UNMUTE_CONVERSATION": "Unmute conversation",
+ "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
+ "REOPEN_CONVERSATION": "Reopen conversation",
+ "RESOLVE_CONVERSATION": "Resolve conversation",
+ "SEND_TRANSCRIPT": "Send an email transcript",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "UNTIL_NEXT_REPLY": "Until next reply",
+ "UNTIL_NEXT_WEEK": "Until next week",
+ "UNTIL_TOMORROW": "Until tomorrow",
+ "UNTIL_NEXT_MONTH": "Until next month",
+ "AN_HOUR_FROM_NOW": "Until an hour from now",
+ "UNTIL_CUSTOM_TIME": "Custom...",
+ "CHANGE_APPEARANCE": "Change Appearance",
+ "LIGHT_MODE": "Light",
+ "DARK_MODE": "Dark",
+ "SYSTEM_MODE": "System",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ }
+ },
+ "DASHBOARD_APPS": {
+ "LOADING_MESSAGE": "Loading Dashboard App..."
+ },
+ "COMMON": {
+ "OR": "Or",
+ "CLICK_HERE": "click here"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/helpCenter.json b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
new file mode 100644
index 000000000..eefb0c8da
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/helpCenter.json
@@ -0,0 +1,958 @@
+{
+ "HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
+ "HEADER": {
+ "FILTER": "Filtrlə",
+ "SORT": "Sırala",
+ "LOCALE": "Dil",
+ "SETTINGS_BUTTON": "Ayarlar",
+ "NEW_BUTTON": "Yeni Məqalə",
+ "DROPDOWN_OPTIONS": {
+ "PUBLISHED": "Yayımlanıb",
+ "DRAFT": "Qaralama",
+ "ARCHIVED": "Arxivlənib"
+ },
+ "TITLES": {
+ "ALL_ARTICLES": "Bütün Məqalələr",
+ "MINE": "Mənim Məqalələrim",
+ "DRAFT": "Qaralama Məqalələr",
+ "ARCHIVED": "Arxivləşdirilmiş Məqalələr"
+ },
+ "LOCALE_SELECT": {
+ "TITLE": "Dili seçin",
+ "PLACEHOLDER": "Dili seçin",
+ "NO_RESULT": "Dil tapılmadı",
+ "SEARCH_PLACEHOLDER": "Dil axtarışı"
+ }
+ },
+ "EDIT_HEADER": {
+ "ALL_ARTICLES": "Bütün məqalələr",
+ "PUBLISH_BUTTON": "Yayımla",
+ "MOVE_TO_ARCHIVE_BUTTON": "Arxivə köçür",
+ "PREVIEW": "Önizləmə",
+ "ADD_TRANSLATION": "Tərcümə əlavə et",
+ "OPEN_SIDEBAR": "Yan paneli aç",
+ "CLOSE_SIDEBAR": "Yan paneli bağla",
+ "SAVING": "Yadda saxlanılır...",
+ "SAVED": "Yadda saxlanıldı"
+ },
+ "ARTICLE_EDITOR": {
+ "IMAGE_UPLOAD": {
+ "TITLE": "Şəkil yüklə",
+ "UPLOADING": "Yüklənir...",
+ "SUCCESS": "Şəkil uğurla yükləndi",
+ "ERROR": "Şəkil yüklənərkən xəta baş verdi",
+ "UN_AUTHORIZED_ERROR": "Şəkilləri yükləmək üçün icazəniz yoxdur",
+ "ERROR_FILE_SIZE": "Şəkilin ölçüsü {size}MB-dən az olmalıdır",
+ "ERROR_FILE_FORMAT": "Şəkil formatı jpg, jpeg və ya png olmalıdır",
+ "ERROR_FILE_DIMENSIONS": "Şəkilin ölçüləri 2000 x 2000-dən az olmalıdır"
+ }
+ },
+ "ARTICLE_SETTINGS": {
+ "TITLE": "Məqalə parametrləri",
+ "FORM": {
+ "CATEGORY": {
+ "LABEL": "Kateqoriya",
+ "TITLE": "Kateqoriya seçin",
+ "PLACEHOLDER": "Kateqoriya seçin",
+ "NO_RESULT": "Heç bir kateqoriya tapılmadı",
+ "SEARCH_PLACEHOLDER": "Kateqoriya axtar"
+ },
+ "AUTHOR": {
+ "LABEL": "Müəllif",
+ "TITLE": "Müəllif seçin",
+ "PLACEHOLDER": "Müəllifi seçin",
+ "NO_RESULT": "Müəllif tapılmadı",
+ "SEARCH_PLACEHOLDER": "Müəllifi axtar"
+ },
+ "META_TITLE": {
+ "LABEL": "Meta başlıq",
+ "PLACEHOLDER": "Meta başlıq əlavə edin"
+ },
+ "META_DESCRIPTION": {
+ "LABEL": "Meta təsviri",
+ "PLACEHOLDER": "Daha yaxşı SEO nəticələri üçün meta təsvir əlavə edin..."
+ },
+ "META_TAGS": {
+ "LABEL": "Meta teqlər",
+ "PLACEHOLDER": "Vergüllə ayrılmış meta teqlər əlavə edin..."
+ }
+ },
+ "BUTTONS": {
+ "ARCHIVE": "Məqaləni arxivləşdir",
+ "DELETE": "Məqaləni sil"
+ }
+ },
+ "ARTICLE_SEARCH_RESULT": {
+ "UNCATEGORIZED": "Kateqoriyasız",
+ "SEARCH_RESULTS": "Search results for {query}",
+ "EMPTY_TEXT": "Cavablara əlavə etmək üçün məqalələri axtarın.",
+ "SEARCH_LOADER": "Axtarılır...",
+ "INSERT_ARTICLE": "Daxil et",
+ "NO_RESULT": "Məqalə tapılmadı",
+ "COPY_LINK": "Məqalə linkini panoya kopyala",
+ "OPEN_LINK": "Məqaləni yeni nişanda aç",
+ "PREVIEW_LINK": "Məqaləyə önizləmə baxışı"
+ },
+ "PORTAL": {
+ "HEADER": "Portallar",
+ "DEFAULT": "Defolt",
+ "NEW_BUTTON": "Yeni Portal",
+ "ACTIVE_BADGE": "aktiv",
+ "CHOOSE_LOCALE_LABEL": "Bir dil seçin",
+ "LOADING_MESSAGE": "Portallar yüklənir...",
+ "ARTICLES_LABEL": "məqalələr",
+ "NO_PORTALS_MESSAGE": "Mövcud portal yoxdur",
+ "ADD_NEW_LOCALE": "Yeni dil əlavə et",
+ "POPOVER": {
+ "TITLE": "Portallar",
+ "PORTAL_SETTINGS": "Portal parametrləri",
+ "SUBTITLE": "Bir neçə portalınız var və hər portal üçün fərqli dillər seçə bilərsiniz.",
+ "CANCEL_BUTTON_LABEL": "Ləğv et",
+ "CHOOSE_LOCALE_BUTTON": "Dil seçin"
+ },
+ "PORTAL_SETTINGS": {
+ "LIST_ITEM": {
+ "HEADER": {
+ "COUNT_LABEL": "məqalələr",
+ "ADD": "Dil əlavə et",
+ "VISIT": "Sayta bax",
+ "SETTINGS": "Parametrlər",
+ "DELETE": "Sil"
+ },
+ "PORTAL_CONFIG": {
+ "TITLE": "Portal Konfiqurasiyaları",
+ "ITEMS": {
+ "NAME": "Ad",
+ "DOMAIN": "Xüsusi domen",
+ "SLUG": "Slug",
+ "TITLE": "Portal başlığı",
+ "THEME": "Tema rəngi",
+ "SUB_TEXT": "Portal alt mətni"
+ }
+ },
+ "AVAILABLE_LOCALES": {
+ "TITLE": "Mövcud dillər",
+ "TABLE": {
+ "NAME": "Dil adı",
+ "CODE": "Dil kodu",
+ "ARTICLE_COUNT": "Məqalələrin sayı",
+ "CATEGORIES": "Kateqoriyaların sayı",
+ "SWAP": "Dəyişdir",
+ "DELETE": "Sil",
+ "DEFAULT_LOCALE": "Əsas"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "TITLE": "Portalı sil",
+ "MESSAGE": "Bu portalı silmək istədiyinizə əminsiniz",
+ "YES": "Bəli, portalı sil",
+ "NO": "Xeyr, portalı saxla",
+ "API": {
+ "DELETE_SUCCESS": "Portal uğurla silindi",
+ "DELETE_ERROR": "Portal silinərkən xəta baş verdi"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
+ }
+ },
+ "EDIT": {
+ "HEADER_TEXT": "Portalı redaktə et",
+ "TABS": {
+ "BASIC_SETTINGS": {
+ "TITLE": "Əsas məlumat"
+ },
+ "CUSTOMIZATION_SETTINGS": {
+ "TITLE": "Portal fərdiləşdirilməsi"
+ },
+ "CATEGORY_SETTINGS": {
+ "TITLE": "Kateqoriyalar"
+ },
+ "LOCALE_SETTINGS": {
+ "TITLE": "Dillər"
+ }
+ },
+ "CATEGORIES": {
+ "TITLE": "Kateqoriyalar",
+ "NEW_CATEGORY": "Yeni kateqoriya",
+ "TABLE": {
+ "NAME": "Ad",
+ "DESCRIPTION": "Təsvir",
+ "LOCALE": "Dil",
+ "ARTICLE_COUNT": "Məqalələrin sayı",
+ "ACTION_BUTTON": {
+ "EDIT": "Kateqoriyanı redaktə et",
+ "DELETE": "Kateqoriyanı sil"
+ },
+ "EMPTY_TEXT": "Kateqoriyalar tapılmadı"
+ }
+ },
+ "EDIT_BASIC_INFO": {
+ "BUTTON_TEXT": "Əsas parametrləri yenilə"
+ }
+ },
+ "ADD": {
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Kömək mərkəzi məlumatları",
+ "BODY": "Portal haqqında əsas məlumat"
+ },
+ "CUSTOMIZATION": {
+ "TITLE": "Kömək mərkəzinin fərdiləşdirilməsi",
+ "BODY": "Portalı fərdiləşdirin"
+ },
+ "FINISH": {
+ "TITLE": "Budur! 🎉",
+ "BODY": "You're all set!"
+ }
+ },
+ "CREATE_FLOW_PAGE": {
+ "BACK_BUTTON": "Geri",
+ "BASIC_SETTINGS_PAGE": {
+ "HEADER": "Portal yarat",
+ "TITLE": "Kömək mərkəzi məlumatları",
+ "CREATE_BASIC_SETTING_BUTTON": "Portalun əsas parametrlərini yarat"
+ },
+ "CUSTOMIZATION_PAGE": {
+ "HEADER": "Portal fərdiləşdirilməsi",
+ "TITLE": "Kömək mərkəzinin fərdiləşdirilməsi",
+ "UPDATE_PORTAL_BUTTON": "Portal parametrlərini yenilə"
+ },
+ "FINISH_PAGE": {
+ "TITLE": "Voila!🎉 Hər şey hazırdır!",
+ "MESSAGE": "İndi bu yaradılmış portala bütün portallar səhifənizdən baxa bilərsiniz.",
+ "FINISH": "Bütün portallar səhifəsinə keç"
+ }
+ },
+ "LOGO": {
+ "LABEL": "Logo",
+ "UPLOAD_BUTTON": "Loqonu yüklə",
+ "HELP_TEXT": "Bu logo portal başlığında göstəriləcək.",
+ "IMAGE_UPLOAD_SUCCESS": "Loqo uğurla yükləndi",
+ "IMAGE_UPLOAD_ERROR": "Loqo uğurla silindi",
+ "IMAGE_DELETE_ERROR": "Loqo silinərkən xəta baş verdi"
+ },
+ "NAME": {
+ "LABEL": "Ad",
+ "PLACEHOLDER": "Portal adı",
+ "HELP_TEXT": "Ad daxili olaraq ictimai portalda istifadə olunacaq.",
+ "ERROR": "Ad tələb olunur"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug URL-lər üçün",
+ "ERROR": "Slug tələb olunur"
+ },
+ "DOMAIN": {
+ "LABEL": "Xüsusi domen",
+ "PLACEHOLDER": "Portalun xüsusi domeni",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
+ "ERROR": "Etibarlı domen URL-si daxil edin"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Ana səhifə linki",
+ "PLACEHOLDER": "Portalun ana səhifə linki",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
+ "ERROR": "Etibarlı ana səhifə URL-si daxil edin"
+ },
+ "THEME_COLOR": {
+ "LABEL": "Portal tema rəngi",
+ "HELP_TEXT": "Bu rəng portal üçün tema rəngi kimi göstəriləcək."
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Səhifə Başlığı",
+ "PLACEHOLDER": "Portal səhifəsinin başlığı",
+ "HELP_TEXT": "Səhifənin başlığı ictimai portalda istifadə olunacaq.",
+ "ERROR": "Səhifə başlığı tələb olunur"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Başlıq Mətn",
+ "PLACEHOLDER": "Portal başlıq mətni",
+ "HELP_TEXT": "Portal başlıq mətni ictimai portalda istifadə olunacaq.",
+ "ERROR": "Portal başlıq mətni tələb olunur"
+ },
+ "API": {
+ "SUCCESS_MESSAGE_FOR_BASIC": "Portal uğurla yaradıldı.",
+ "ERROR_MESSAGE_FOR_BASIC": "Portal yaradıla bilmədi. Yenidən cəhd edin.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "Portal uğurla yeniləndi.",
+ "ERROR_MESSAGE_FOR_UPDATE": "Portal yenilənə bilmədi. Yenidən cəhd edin."
+ }
+ },
+ "ADD_LOCALE": {
+ "TITLE": "Yeni dil əlavə et",
+ "SUB_TITLE": "Bu, mövcud tərcümə siyahınıza yeni bir dil əlavə edir.",
+ "PORTAL": "Portal",
+ "LOCALE": {
+ "LABEL": "Dil",
+ "PLACEHOLDER": "Dil seçin",
+ "ERROR": "Dil tələb olunur"
+ },
+ "BUTTONS": {
+ "CREATE": "Dili yarat",
+ "CANCEL": "Ləğv et"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Dil uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Dil əlavə etmək mümkün olmadı. Yenidən cəhd edin."
+ }
+ },
+ "CHANGE_DEFAULT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Əsas dil uğurla yeniləndi",
+ "ERROR_MESSAGE": "Əsas dili yeniləmək mümkün olmadı. Yenidən cəhd edin."
+ }
+ },
+ "DELETE_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Dil portaldan uğurla silindi",
+ "ERROR_MESSAGE": "Dili portaldan silmək mümkün olmadı. Yenidən cəhd edin."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
+ }
+ },
+ "TABLE": {
+ "LOADING_MESSAGE": "Məqalələr yüklənir...",
+ "404": "Axtarışınıza uyğun məqalə tapılmadı 🔍",
+ "NO_ARTICLES": "Mövcud məqalə yoxdur",
+ "HEADERS": {
+ "TITLE": "Başlıq",
+ "CATEGORY": "Kateqoriya",
+ "READ_COUNT": "Baxışlar",
+ "STATUS": "Vəziyyət",
+ "LAST_EDITED": "Son redaktə"
+ },
+ "COLUMNS": {
+ "BY": "tərəfindən",
+ "AUTHOR_NOT_AVAILABLE": "Müəllif mövcud deyil"
+ }
+ },
+ "EDIT_ARTICLE": {
+ "LOADING": "Məqalə yüklənir...",
+ "TITLE_PLACEHOLDER": "Məqalənin başlığı buraya yazılır",
+ "CONTENT_PLACEHOLDER": "Məqalənizi buraya yazın",
+ "API": {
+ "ERROR": "Məqalə yadda saxlanarkən xəta baş verdi"
+ }
+ },
+ "PUBLISH_ARTICLE": {
+ "API": {
+ "ERROR": "Məqalə yayımlanarkən xəta baş verdi",
+ "SUCCESS": "Məqalə uğurla dərc olundu"
+ }
+ },
+ "ARCHIVE_ARTICLE": {
+ "API": {
+ "ERROR": "Məqalə arxivlənərkən xəta baş verdi",
+ "SUCCESS": "Məqalə uğurla arxivləndi"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
+ "DELETE_ARTICLE": {
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "Silinməni təsdiqləyin",
+ "MESSAGE": "Məqaləni silmək istədiyinizə əminsiniz?",
+ "YES": "Bəli, sil",
+ "NO": "Xeyr, Saxla"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Məqalə uğurla silindi",
+ "ERROR_MESSAGE": "Məqaləni silərkən xəta baş verdi"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
+ "CREATE_ARTICLE": {
+ "ERROR_MESSAGE": "Zəhmət olmasa məqalənin başlığını və məzmununu əlavə edin, yalnız bundan sonra parametrləri yeniləyə bilərsiniz"
+ },
+ "SIDEBAR": {
+ "SEARCH": {
+ "PLACEHOLDER": "Məqalələrdə axtarış"
+ }
+ },
+ "CATEGORY": {
+ "ADD": {
+ "TITLE": "Kateqoriya yaradın",
+ "SUB_TITLE": "Kateqoriya, məqalələri kateqoriyalara ayırmaq üçün ictimai portalda istifadə olunacaq.",
+ "PORTAL": "Portal",
+ "LOCALE": "Dil",
+ "NAME": {
+ "LABEL": "Ad",
+ "PLACEHOLDER": "Kateqoriya adı",
+ "HELP_TEXT": "Kateqoriya adı və ikonu məqalələri kateqoriyalara ayırmaq üçün ictimai portalda istifadə olunacaq.",
+ "ERROR": "Ad tələb olunur"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "URL-lər üçün kateqoriya slug-u",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
+ "ERROR": "Slug tələb olunur"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Kateqoriya haqqında qısa təsvir verin.",
+ "ERROR": "Təsvir tələb olunur"
+ },
+ "BUTTONS": {
+ "CREATE": "Kateqoriya yarat",
+ "CANCEL": "Ləğv et"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Kateqoriya uğurla yaradıldı",
+ "ERROR_MESSAGE": "Kateqoriya yaratmaq mümkün olmadı"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Kateqoriyanı redaktə et",
+ "SUB_TITLE": "Kateqoriyanın redaktəsi ictimai portalda kateqoriyanı yeniləyəcək.",
+ "PORTAL": "Portal",
+ "LOCALE": "Dil",
+ "NAME": {
+ "LABEL": "Ad",
+ "PLACEHOLDER": "Kateqoriya adı",
+ "HELP_TEXT": "Kateqoriya adı və ikonu məqalələri kateqoriyalara ayırmaq üçün ictimai portalda istifadə olunacaq.",
+ "ERROR": "Ad tələb olunur"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "URL-lər üçün kateqoriya slug-u",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
+ "ERROR": "Slug tələb olunur"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Kateqoriya haqqında qısa təsvir verin.",
+ "ERROR": "Təsvir tələb olunur"
+ },
+ "BUTTONS": {
+ "CREATE": "Kateqoriyanı yenilə",
+ "CANCEL": "Ləğv et"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Kateqoriya uğurla yeniləndi",
+ "ERROR_MESSAGE": "Kateqoriyanı yeniləmək mümkün olmadı"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kateqoriya uğurla silindi",
+ "ERROR_MESSAGE": "Kateqoriyanı silmək mümkün olmadı"
+ }
+ }
+ },
+ "ARTICLE_SEARCH": {
+ "TITLE": "Məqalələrdə axtarış edin",
+ "PLACEHOLDER": "Məqalələrdə axtarış edin",
+ "NO_RESULT": "Məqalə tapılmadı",
+ "SEARCHING": "Axtarılır...",
+ "SEARCH_BUTTON": "Axtar",
+ "INSERT_ARTICLE": "Link əlavə et",
+ "IFRAME_ERROR": "URL boş və ya düzgün deyil. Məzmun göstərilə bilmir.",
+ "OPEN_ARTICLE_SEARCH": "Kömək Mərkəzindən məqalə əlavə et",
+ "SUCCESS_ARTICLE_INSERTED": "Məqalə uğurla əlavə edildi",
+ "PREVIEW_LINK": "Məqaləni önizləyin",
+ "CANCEL": "Bağla",
+ "BACK": "Geri",
+ "BACK_RESULTS": "Nəticələrə qayıdın"
+ },
+ "UPGRADE_PAGE": {
+ "TITLE": "Kömək Mərkəzi",
+ "DESCRIPTION": "İstifadəçi dostu özünə xidmət portalları yaradın. İstifadəçilərinizə məqalələrə daxil olmaq və 24/7 dəstək almaqda kömək edin. Bu funksiyanı aktivləşdirmək üçün abunəliyinizi yüksəldin.",
+ "SELF_HOSTED_DESCRIPTION": "İstifadəçi dostu özünə xidmət portalları yaradın. İstifadəçilərinizə məqalələrə daxil olmaq və 24/7 dəstək almaqda kömək edin. Zəhmət olmasa, bu funksiyanı aktivləşdirmək üçün administratorunuzla əlaqə saxlayın.",
+ "BUTTON": {
+ "LEARN_MORE": "Ətraflı öyrən",
+ "UPGRADE": "Yenilə"
+ },
+ "FEATURES": {
+ "PORTALS": {
+ "TITLE": "Çoxsaylı portallar",
+ "DESCRIPTION": "Eyni hesabdan istifadə edərək müxtəlif məhsullar üçün çoxsaylı kömək mərkəzi portalları yaradın."
+ },
+ "LOCALES": {
+ "TITLE": "Dil variantlarının tam dəstəyi",
+ "DESCRIPTION": "Portalı öz dilinizə uyğunlaşdırın. Bütün dil variantlarını dəstəkləyirik və hər məqalə üçün tərcümələrə imkan veririk."
+ },
+ "SEO": {
+ "TITLE": "SEO-ya uyğun dizayn",
+ "DESCRIPTION": "Meta teqlərinizi fərdiləşdirərək axtarış motorlarında görünürlüğünüzü SEO dostu səhifələrimizlə artırın."
+ },
+ "API": {
+ "TITLE": "Tam API dəstəyi",
+ "DESCRIPTION": "Portaldan üçüncü tərəf ön çərçivələri ilə başsız CMS kimi istifadə etmək üçün API-lərimizdən yararlanın."
+ }
+ }
+ },
+ "LOADING": "Yüklənir...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Tərcümə et",
+ "DELETE": "Delete"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mine",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Tərcümə et",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "SELECTED_COUNT": "{count} seçildi",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Tərcümə et",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Yayımla",
+ "DRAFT": "Qaralama",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Tərcümə et",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "EDIT": "Update",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Qaralama",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Delete"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Yayımlanıb",
+ "DRAFT": "Qaralama"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Create",
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Edit",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Delete"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Sil"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Uploading...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancel",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/inbox.json b/app/javascript/dashboard/i18n/locale/az/inbox.json
new file mode 100644
index 000000000..385e9e4ce
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/inbox.json
@@ -0,0 +1,95 @@
+{
+ "INBOX": {
+ "LIST": {
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "Display",
+ "LOADING": "Fetching notifications",
+ "404": "There are no active notifications in this group.",
+ "NO_NOTIFICATIONS": "No notifications",
+ "NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
+ "SNOOZED_UNTIL": "Snoozed until",
+ "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ },
+ "ACTION_HEADER": {
+ "SNOOZE": "Snooze notification",
+ "DELETE": "Delete notification",
+ "BACK": "Back"
+ },
+ "TYPES": {
+ "CONVERSATION_MENTION": "You have been mentioned in a conversation",
+ "CONVERSATION_CREATION": "New conversation created",
+ "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
+ },
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
+ "MENU_ITEM": {
+ "MARK_AS_READ": "Mark as read",
+ "MARK_AS_UNREAD": "Mark as unread",
+ "SNOOZE": "Snooze",
+ "DELETE": "Delete",
+ "MARK_ALL_READ": "Mark all as read",
+ "DELETE_ALL": "Delete all",
+ "DELETE_ALL_READ": "Delete all read"
+ },
+ "DISPLAY_MENU": {
+ "SORT": "Sort",
+ "DISPLAY": "Display :",
+ "SORT_OPTIONS": {
+ "NEWEST": "Newest",
+ "OLDEST": "Oldest",
+ "PRIORITY": "Priority"
+ },
+ "DISPLAY_OPTIONS": {
+ "SNOOZED": "Snoozed",
+ "READ": "Read",
+ "LABELS": "Labels",
+ "CONVERSATION_ID": "Conversation ID"
+ }
+ },
+ "ALERTS": {
+ "MARK_AS_READ": "Notification marked as read",
+ "MARK_AS_UNREAD": "Notification marked as unread",
+ "SNOOZE": "Notification snoozed",
+ "DELETE": "Notification deleted",
+ "MARK_ALL_READ": "All notifications marked as read",
+ "DELETE_ALL": "All notifications deleted",
+ "DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
new file mode 100644
index 000000000..28af6066e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/inboxMgmt.json
@@ -0,0 +1,1202 @@
+{
+ "INBOX_MGMT": {
+ "HEADER": "Gələn qutuları",
+ "DESCRIPTION": "Kanal müştərinizin sizinlə əlaqə qurmaq üçün seçdiyi ünsiyyət vasitəsidir. Poçt qutusu müəyyən bir kanal üçün qarşılıqlı əlaqələri idarə etdiyiniz yerdir. Bu, e-poçt, canlı çat və sosial media kimi müxtəlif mənbələrdən olan ünsiyyətləri əhatə edə bilər.",
+ "LEARN_MORE": "Poçt qutuları haqqında daha çox öyrənin",
+ "COUNT": "{n} inbox | {n} inboxlar",
+ "SEARCH_PLACEHOLDER": "Inboxlarda axtarış...",
+ "NO_RESULTS": "Axtarışınıza uyğun inbox tapılmadı",
+ "RECONNECTION_REQUIRED": "Poçt qutunuz bağlantısı kəsilib. Yenidən təsdiqləyənə qədər yeni mesajlar almayacaqsınız.",
+ "CLICK_TO_RECONNECT": "Yenidən qoşulmaq üçün bura klikləyin.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Sizin WhatsApp Business qeydiyyatınız tamamlanmayıb. Yenidən qoşulmazdan əvvəl Meta Business Manager-də göstərilən ad statusunuzu yoxlayın.",
+ "COMPLETE_REGISTRATION": "Qeydiyyatı tamamla",
+ "LIST": {
+ "404": "Bu hesaba bağlı gələn qutuları yoxdur."
+ },
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Kanal seçin",
+ "BODY": "Chatwoot ilə inteqrasiya etmək istədiyiniz təminatçını seçin."
+ },
+ "INBOX": {
+ "TITLE": "Poçt qutusu yaradın",
+ "BODY": "Hesabınızı təsdiqləyin və poçt qutusu yaradın."
+ },
+ "AGENT": {
+ "TITLE": "Agentlər əlavə edin",
+ "BODY": "Yaradılmış poçt qutusuna agentlər əlavə edin."
+ },
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Hazırsınız, başlaya bilərsiniz!"
+ }
+ },
+ "ADD": {
+ "CHANNEL_NAME": {
+ "LABEL": "Inbox adı",
+ "PLACEHOLDER": "Inbox adınızı daxil edin (məsələn: Acme Inc)",
+ "ERROR": "Zəhmət olmasa düzgün inbox adı daxil edin"
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "Veb sayt adı",
+ "PLACEHOLDER": "Veb sayt adınızı daxil edin (məsələn: Acme Inc)"
+ },
+ "FB": {
+ "HELP": "Qeyd: Daxil olmaqla, yalnız Səhifənizin mesajlarına giriş əldə edirik. Şəxsi mesajlarınıza Chatwoot heç vaxt daxil ola bilməz.",
+ "CHOOSE_PAGE": "Səhifə seçin",
+ "CHOOSE_PLACEHOLDER": "Siyahıdan səhifə seçin",
+ "INBOX_NAME": "Gələn Qutu Adı",
+ "ADD_NAME": "Gələn qutunuza ad əlavə edin",
+ "PICK_NAME": "Inbox üçün ad seçin",
+ "PICK_A_VALUE": "Dəyər seçin",
+ "CREATE_INBOX": "Poçt qutusu yaradın"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Instagram ilə davam et",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Instagram profilinizi qoşun",
+ "HELP": "Instagram profilinizi kanal kimi əlavə etmək üçün 'Instagram ilə davam et' düyməsini klikləyərək Instagram profilinizi təsdiqləyin. ",
+ "ERROR_MESSAGE": "Instagram ilə əlaqədə xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "ERROR_AUTH": "Instagram ilə əlaqədə xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "NEW_INBOX_SUGGESTION": "Bu Instagram hesabı əvvəllər başqa bir poçt qutusu ilə əlaqələndirilmişdi və indi buraya köçürülüb. Bütün yeni mesajlar burada görünəcək. Köhnə poçt qutusu bu hesab üçün mesaj göndərmək və qəbul etmək imkanına malik olmayacaq.",
+ "DUPLICATE_INBOX_BANNER": "Bu Instagram hesabı yeni Instagram kanal poçt qutusuna köçürülüb. Bu poçt qutusundan Instagram mesajları göndərə və qəbul edə bilməyəcəksiniz."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "TikTok ilə davam et",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "TikTok profilinizi qoşun",
+ "HELP": "TikTok profilinizi kanal kimi əlavə etmək üçün 'TikTok ilə davam et' düyməsini klikləyərək profilinizi təsdiqləməlisiniz ",
+ "ERROR_MESSAGE": "TikTok-a qoşularkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "ERROR_AUTH": "TikTok-a qoşularkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "TWITTER": {
+ "HELP": "Twitter profilinizi kanal kimi əlavə etmək üçün 'Twitter ilə daxil ol' düyməsini klikləyərək Twitter profilinizi təsdiqləməlisiniz ",
+ "ERROR_MESSAGE": "Twitter-ə qoşularkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "TWEETS": {
+ "ENABLE": "Tweetlərdən söhbətlər yaradın"
+ }
+ },
+ "WEBSITE_CHANNEL": {
+ "TITLE": "Veb sayt kanalı",
+ "DESC": "Veb saytınız üçün kanal yaradın və müştərilərinizi veb sayt vidjeti vasitəsilə dəstəkləməyə başlayın.",
+ "LOADING_MESSAGE": "Veb sayt Dəstək Kanalı yaradılır",
+ "CHANNEL_AVATAR": {
+ "LABEL": "Kanal Avatar"
+ },
+ "CHANNEL_WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "Zəhmət olmasa Webhook URL-ni daxil edin",
+ "ERROR": "Zəhmət olmasa düzgün URL daxil edin"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "CHANNEL_DOMAIN": {
+ "LABEL": "Veb sayt Domeni",
+ "PLACEHOLDER": "Veb sayt domeninizi daxil edin (məsələn: acme.com)"
+ },
+ "CHANNEL_WELCOME_TITLE": {
+ "LABEL": "Xoş gəlmə Başlığı",
+ "PLACEHOLDER": "Salam!"
+ },
+ "CHANNEL_WELCOME_TAGLINE": {
+ "LABEL": "Xoş gəlmə Alt Başlığı",
+ "PLACEHOLDER": "Bizimlə əlaqə saxlamaq asandır. Hər hansı sual verin və ya rəyinizi bildirin."
+ },
+ "CHANNEL_GREETING_MESSAGE": {
+ "LABEL": "Kanal salam mesajı",
+ "PLACEHOLDER": "Acme Inc adətən bir neçə saat ərzində cavab verir."
+ },
+ "CHANNEL_GREETING_TOGGLE": {
+ "LABEL": "Kanal salamlamasını aktivləşdirin",
+ "HELP_TEXT": "Müştərilər söhbətə başladıqda və ilk mesajlarını göndərdikdə avtomatik salam mesajları göndərin.",
+ "ENABLED": "Aktiv",
+ "DISABLED": "Deaktiv"
+ },
+ "REPLY_TIME": {
+ "TITLE": "Cavab vaxtını təyin et",
+ "IN_A_FEW_MINUTES": "Bir neçə dəqiqə ərzində",
+ "IN_A_FEW_HOURS": "Bir neçə saat ərzində",
+ "IN_A_DAY": "Bir gün ərzində",
+ "HELP_TEXT": "Bu cavab vaxtı canlı çat widgetində göstəriləcək"
+ },
+ "WIDGET_COLOR": {
+ "LABEL": "Vidjet Rəngi",
+ "PLACEHOLDER": "Vidjetdə istifadə olunan rəngi yeniləyin"
+ },
+ "SUBMIT_BUTTON": "Gələn qutusu yaradın",
+ "API": {
+ "ERROR_MESSAGE": "Vebsayt kanalı yarada bilmədik, zəhmət olmasa yenidən cəhd edin"
+ }
+ },
+ "TWILIO": {
+ "TITLE": "Twilio SMS/WhatsApp Kanalı",
+ "DESC": "Twilio ilə inteqrasiya edin və müştərilərinizi SMS və ya WhatsApp vasitəsilə dəstəkləməyə başlayın.",
+ "ACCOUNT_SID": {
+ "LABEL": "Hesab SID",
+ "PLACEHOLDER": "Zəhmət olmasa Twilio Hesab SID-nizi daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "API_KEY": {
+ "USE_API_KEY": "API Açarı Doğrulamasından istifadə edin",
+ "LABEL": "API Açarı SID",
+ "PLACEHOLDER": "Zəhmət olmasa API Açarı SID-ni daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Açarı Gizli Açarı",
+ "PLACEHOLDER": "Zəhmət olmasa API Açarı Gizli Açarını daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "MESSAGING_SERVICE_SID": {
+ "LABEL": "Mesajlaşma Xidməti SID",
+ "PLACEHOLDER": "Zəhmət olmasa Twilio Mesajlaşma Xidməti SID-nizi daxil edin",
+ "ERROR": "Bu sahə tələb olunur",
+ "USE_MESSAGING_SERVICE": "Twilio Mesajlaşma Xidmətindən istifadə edin"
+ },
+ "CHANNEL_TYPE": {
+ "LABEL": "Kanal Növü",
+ "ERROR": "Zəhmət olmasa Kanal Növünüzü seçin"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Təsdiq Tokeni",
+ "PLACEHOLDER": "Zəhmət olmasa Twilio Təsdiq Tokeninizi daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "CHANNEL_NAME": {
+ "LABEL": "Gələn Qutusu Adı",
+ "PLACEHOLDER": "Zəhmət olmasa gələn qutusu adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefon Nömrəsi",
+ "PLACEHOLDER": "Mesaj göndəriləcək telefon nömrəsini daxil edin.",
+ "ERROR": "Zəhmət olmasa, `+` işarəsi ilə başlayan və boşluq olmayan düzgün telefon nömrəsi daxil edin."
+ },
+ "API_CALLBACK": {
+ "TITLE": "Geri zəng URL",
+ "SUBTITLE": "Twilio-da mesaj callback URL-ni burada göstərilən URL ilə qurmalısınız."
+ },
+ "SUBMIT_BUTTON": "Twilio Kanalı yaradın",
+ "API": {
+ "ERROR_MESSAGE": "Twilio etimadnamələrini təsdiqləyə bilmədik, zəhmət olmasa yenidən cəhd edin"
+ }
+ },
+ "SMS": {
+ "TITLE": "SMS Kanalı",
+ "DESC": "Müştərilərinizi SMS vasitəsilə dəstəkləməyə başlayın.",
+ "PROVIDERS": {
+ "LABEL": "API Təchizatçısı",
+ "TWILIO": "Twilio",
+ "BANDWIDTH": "Bandwidth"
+ },
+ "API": {
+ "ERROR_MESSAGE": "SMS kanalını yadda saxlaya bilmədik"
+ },
+ "BANDWIDTH": {
+ "ACCOUNT_ID": {
+ "LABEL": "Hesab ID-si",
+ "PLACEHOLDER": "Zəhmət olmasa Bandwidth Hesab ID-nizi daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "API_KEY": {
+ "LABEL": "API Açarı",
+ "PLACEHOLDER": "Zəhmət olmasa Bandwidth API Açarını daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "API_SECRET": {
+ "LABEL": "API Gizli Açarı",
+ "PLACEHOLDER": "Zəhmət olmasa Bandwidth API Gizli Açarını daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "APPLICATION_ID": {
+ "LABEL": "Tətbiq ID-si",
+ "PLACEHOLDER": "Zəhmət olmasa Bandwidth Tətbiq ID-nizi daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "INBOX_NAME": {
+ "LABEL": "Inbox adı",
+ "PLACEHOLDER": "Zəhmət olmasa inbox adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefon nömrəsi",
+ "PLACEHOLDER": "Zəhmət olmasa mesaj göndəriləcək telefon nömrəsini daxil edin.",
+ "ERROR": "Zəhmət olmasa, `+` işarəsi ilə başlayan və boşluq olmayan düzgün telefon nömrəsi daxil edin."
+ },
+ "SUBMIT_BUTTON": "Bandwidth kanalı yaradın",
+ "API": {
+ "ERROR_MESSAGE": "Bandwidth etimadnamələrini təsdiqləyə bilmədik, zəhmət olmasa yenidən cəhd edin"
+ },
+ "API_CALLBACK": {
+ "TITLE": "Geri zəng URL-i",
+ "SUBTITLE": "Bandwidth-də mesaj callback URL-ni burada göstərilən URL ilə konfiqurasiya etməlisiniz."
+ }
+ }
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp Kanalı",
+ "DESC": "Müştərilərinizi WhatsApp vasitəsilə dəstəkləməyə başlayın.",
+ "PROVIDERS": {
+ "LABEL": "API Təchizatçısı",
+ "WHATSAPP_EMBEDDED": "WhatsApp Biznes",
+ "TWILIO": "Twilio",
+ "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Meta vasitəsilə sürətli quraşdırma",
+ "TWILIO_DESC": "Twilio məlumatları ilə qoşulun",
+ "360_DIALOG": "360Dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "API təminatçınızı seçin",
+ "DESCRIPTION": "WhatsApp təminatçınızı seçin. Heç bir quraşdırma tələb etməyən Meta vasitəsilə birbaşa qoşula bilərsiniz və ya hesab məlumatlarınızla Twilio vasitəsilə qoşula bilərsiniz."
+ },
+ "INBOX_NAME": {
+ "LABEL": "Gələn Qutusu Adı",
+ "PLACEHOLDER": "Zəhmət olmasa gələn qutusu adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefon nömrəsi",
+ "PLACEHOLDER": "Mesaj göndəriləcək telefon nömrəsini daxil edin.",
+ "ERROR": "Zəhmət olmasa, `+` işarəsi ilə başlayan və boşluq olmayan düzgün telefon nömrəsi daxil edin."
+ },
+ "PHONE_NUMBER_ID": {
+ "LABEL": "Telefon nömrəsi ID-si",
+ "PLACEHOLDER": "Zəhmət olmasa Facebook inkişaf etdirici panelindən əldə edilmiş Telefon nömrəsi ID-sini daxil edin.",
+ "ERROR": "Zəhmət olmasa düzgün dəyər daxil edin."
+ },
+ "BUSINESS_ACCOUNT_ID": {
+ "LABEL": "Biznes Hesab ID-si",
+ "PLACEHOLDER": "Zəhmət olmasa Facebook inkişaf etdirici panelindən əldə edilmiş Biznes Hesab ID-sini daxil edin.",
+ "ERROR": "Zəhmət olmasa düzgün dəyər daxil edin."
+ },
+ "WEBHOOK_VERIFY_TOKEN": {
+ "LABEL": "Webhook Doğrulama Tokeni",
+ "PLACEHOLDER": "Facebook webhookları üçün konfiqurasiya etmək istədiyiniz təsdiq tokenini daxil edin.",
+ "ERROR": "Zəhmət olmasa düzgün dəyər daxil edin."
+ },
+ "API_KEY": {
+ "LABEL": "API açarı",
+ "SUBTITLE": "WhatsApp API açarını konfiqurasiya edin.",
+ "PLACEHOLDER": "API açarı",
+ "ERROR": "Zəhmət olmasa düzgün dəyər daxil edin."
+ },
+ "API_CALLBACK": {
+ "TITLE": "Geri zəng URL",
+ "SUBTITLE": "Facebook Developer portalında webhook URL və təsdiq tokenini aşağıda göstərilən dəyərlərlə konfiqurasiya etməlisiniz.",
+ "WEBHOOK_URL": "Webhook URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook Təsdiq Tokeni"
+ },
+ "SUBMIT_BUTTON": "WhatsApp Kanalı Yarat",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Meta ilə sürətli qurulum",
+ "DESC": "Yeni nömrələri tez qoşmaq üçün WhatsApp Daxili Qeydiyyat axınından istifadə edin. WhatsApp Biznes hesabınıza daxil olmaq üçün Meta-ya yönləndiriləcəksiniz. Administrator girişi qurulumu hamar və asan etməyə kömək edəcək.",
+ "BENEFITS": {
+ "TITLE": "Daxili Qeydiyyatın Üstünlükləri:",
+ "EASY_SETUP": "Əl ilə konfiqurasiya tələb olunmur",
+ "SECURE_AUTH": "Təhlükəsiz OAuth əsaslı autentifikasiya",
+ "AUTO_CONFIG": "Avtomatik webhook və telefon nömrəsi konfiqurasiyası"
+ },
+ "LEARN_MORE": {
+ "TEXT": "İnteqrasiya olunmuş qeydiyyat, qiymətlər və məhdudiyyətlər haqqında daha çox məlumat almaq üçün {link} ünvanına daxil olun.",
+ "LINK_TEXT": "bu link"
+ },
+ "SUBMIT_BUTTON": "WhatsApp Biznes ilə qoşulun",
+ "AUTH_PROCESSING": "Meta ilə autentifikasiya olunur",
+ "WAITING_FOR_BUSINESS_INFO": "Zəhmət olmasa Meta pəncərəsində biznes quraşdırmasını tamamlayın...",
+ "PROCESSING": "WhatsApp Biznes Hesabınızı quraşdırırıq",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK yüklənir...",
+ "CANCELLED": "WhatsApp Qeydiyyatı ləğv edildi",
+ "SUCCESS_TITLE": "WhatsApp Biznes Hesabı Qoşuldu!",
+ "WAITING_FOR_AUTH": "Autentifikasiyanı gözləyir...",
+ "INVALID_BUSINESS_DATA": "Facebook-dan alınan biznes məlumatları etibarsızdır. Zəhmət olmasa yenidən cəhd edin.",
+ "SIGNUP_ERROR": "Qeydiyyat zamanı xəta baş verdi",
+ "AUTH_NOT_COMPLETED": "Autentifikasiya tamamlanmadı. Zəhmət olmasa prosesi yenidən başladın.",
+ "SUCCESS_FALLBACK": "WhatsApp Biznes Hesabı uğurla konfiqurasiya edildi",
+ "MANUAL_FALLBACK": "Əgər nömrəniz artıq WhatsApp Business Platformasına (API) qoşulubsa və ya texnoloji təminatçı olaraq öz nömrənizi əlavə edirsinizsə, zəhmət olmasa {link} prosesindən istifadə edin",
+ "MANUAL_LINK_TEXT": "əl ilə qurma prosesi",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
+ "API": {
+ "ERROR_MESSAGE": "WhatsApp kanalını yadda saxlaya bilmədik"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Səs Kanalı",
+ "DESC": "Twilio Voice inteqrasiyasını qurun və müştərilərinizi telefon zəngləri vasitəsilə dəstəkləməyə başlayın.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefon Nömrəsi",
+ "PLACEHOLDER": "Telefon nömrənizi daxil edin (məsələn, +1234567890)",
+ "ERROR": "Zəhmət olmasa E.164 formatında düzgün telefon nömrəsi təqdim edin (məsələn, +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Hesab SID",
+ "PLACEHOLDER": "Twilio Hesab SID-nizi daxil edin",
+ "REQUIRED": "Hesab SID tələb olunur"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Təsdiq Tokeni",
+ "PLACEHOLDER": "Twilio Təsdiq Tokeninizi daxil edin",
+ "REQUIRED": "Təsdiq Tokeni tələb olunur"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Açar SID",
+ "PLACEHOLDER": "Twilio API Açar SID-nizi daxil edin",
+ "REQUIRED": "API Açar SID tələb olunur"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Açar Gizli Açarı",
+ "PLACEHOLDER": "Twilio API Açar Gizli Açarınızı daxil edin",
+ "REQUIRED": "API Açar Gizli Açarı tələb olunur"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Bu URL-i Twilio telefon nömrənizdə və TwiML Tətbiqinizdə Voice URL kimi konfiqurasiya edin.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Bu URL-i Twilio telefon nömrənizdə Status Callback URL kimi konfiqurasiya edin."
+ },
+ "SUBMIT_BUTTON": "Səs Kanalı yaradın",
+ "API": {
+ "ERROR_MESSAGE": "Səs kanalını yaratmaq mümkün olmadı"
+ }
+ },
+ "API_CHANNEL": {
+ "TITLE": "API Kanalı",
+ "DESC": "API kanalı ilə inteqrasiya edin və müştərilərinizə dəstək verməyə başlayın.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanal Adı",
+ "PLACEHOLDER": "Zəhmət olmasa kanal adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Webhook URL",
+ "SUBTITLE": "Hadisələr üzrə geri çağırışları almaq istədiyiniz URL-i konfiqurasiya edin.",
+ "PLACEHOLDER": "Webhook URL"
+ },
+ "SUBMIT_BUTTON": "API Kanalı Yarat",
+ "API": {
+ "ERROR_MESSAGE": "API kanalını yadda saxlaya bilmədik"
+ }
+ },
+ "EMAIL_CHANNEL": {
+ "TITLE": "Email Kanalı",
+ "DESC": "Email poçt qutunuzu inteqrasiya edin.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanal Adı",
+ "PLACEHOLDER": "Zəhmət olmasa kanal adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "EMAIL": {
+ "LABEL": "Elektron poçt",
+ "SUBTITLE": "Müştərilərinizin dəstək sorğularını göndərdiyi e-poçt ünvanını daxil edin.",
+ "PLACEHOLDER": "Elektron poçt"
+ },
+ "SUBMIT_BUTTON": "Email Kanalı Yarat",
+ "API": {
+ "ERROR_MESSAGE": "Email kanalını yadda saxlaya bilmədik"
+ },
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "E-poçt qutunuz uğurla yaradıldı! E-poçt göndərmək və qəbul etmək üçün SMTP və IMAP məlumatlarını qurmalısınız. Bu parametrlər olmadan heç bir e-poçt işlənməyəcək.",
+ "FORWARDING_ADDRESS_LABEL": "E-poçtları bu ünvana yönləndirin:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Buraya klikləyin",
+ "CONFIGURE_SMTP_IMAP_TEXT": " IMAP və SMTP parametrlərini qurmaq üçün"
+ },
+ "LINE_CHANNEL": {
+ "TITLE": "LINE Kanalı",
+ "DESC": "LINE kanalı ilə inteqrasiya edin və müştərilərinizə dəstək verməyə başlayın.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanalın adı",
+ "PLACEHOLDER": "Zəhmət olmasa kanal adı daxil edin",
+ "ERROR": "Bu sahə tələb olunur"
+ },
+ "LINE_CHANNEL_ID": {
+ "LABEL": "LINE Kanal ID",
+ "PLACEHOLDER": "LINE Kanal ID"
+ },
+ "LINE_CHANNEL_SECRET": {
+ "LABEL": "LINE Kanal Gizli Açarı",
+ "PLACEHOLDER": "LINE Kanal Gizli Açarı"
+ },
+ "LINE_CHANNEL_TOKEN": {
+ "LABEL": "LINE kanal tokeni",
+ "PLACEHOLDER": "LINE Kanal Tokeni"
+ },
+ "SUBMIT_BUTTON": "LINE Kanalı Yarat",
+ "API": {
+ "ERROR_MESSAGE": "LINE kanalını yadda saxlaya bilmədik"
+ },
+ "API_CALLBACK": {
+ "TITLE": "Geri Çağırış URL",
+ "SUBTITLE": "LINE tətbiqində webhook URL-ni burada göstərilən URL ilə konfiqurasiya etməlisiniz."
+ }
+ },
+ "TELEGRAM_CHANNEL": {
+ "TITLE": "Telegram kanalı",
+ "DESC": "Telegram kanalı ilə inteqrasiya edin və müştərilərinizə dəstək verməyə başlayın.",
+ "BOT_TOKEN": {
+ "LABEL": "Bot tokeni",
+ "SUBTITLE": "Telegram BotFather-dən əldə etdiyiniz bot tokenini konfiqurasiya edin.",
+ "PLACEHOLDER": "Bot tokeni"
+ },
+ "SUBMIT_BUTTON": "Telegram kanalı yaradın",
+ "API": {
+ "ERROR_MESSAGE": "Telegram kanalını yadda saxlaya bilmədik"
+ }
+ },
+ "AUTH": {
+ "TITLE": "Kanal seçin",
+ "DESC": "Chatwoot canlı söhbət widgetları, Facebook Messenger, WhatsApp, E-poçtlar və s. kimi kanalları dəstəkləyir. Özəl kanal yaratmaq istəyirsinizsə, API kanalı vasitəsilə yarada bilərsiniz. Başlamaq üçün aşağıdakı kanallardan birini seçin.",
+ "TITLE_NEXT": "Qurulumu tamamlayın",
+ "TITLE_FINISH": "Budur!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Veb sayt",
+ "DESCRIPTION": "Canlı chat vidjet yaradın"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Facebook səhifənizi qoşun"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Müştərilərinizi WhatsApp-da dəstəkləyin"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Elektron Poçt",
+ "DESCRIPTION": "Gmail, Outlook və ya digər təminatçılarla qoşulun"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "SMS kanalını Twilio və ya bandwidth ilə inteqrasiya edin"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "API istifadə edərək xüsusi kanal yaradın"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Bot token istifadə edərək Telegram kanalını konfiqurasiya edin"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Line kanalınızı inteqrasiya edin"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Instagram hesabınızı qoşun"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "TikTok hesabınızı qoşun"
+ },
+ "VOICE": {
+ "TITLE": "Səs",
+ "DESCRIPTION": "Twilio Voice ilə inteqrasiya edin"
+ }
+ }
+ },
+ "AGENTS": {
+ "TITLE": "Agentlər",
+ "DESC": "Burada yeni yaradılmış gələn qutunuzu idarə etmək üçün agentlər əlavə edə bilərsiniz. Yalnız seçilmiş agentlər bu gələn qutulara giriş əldə edəcək. Bu gələn qutunun üzvü olmayan agentlər daxil olduqda mesajları görə və cavab verə bilməyəcəklər.
Qeyd: Administrator kimi, bütün gələn qutulara girişə ehtiyacınız varsa, yaratdığınız bütün gələn qutulara özünüzü agent kimi əlavə etməlisiniz.",
+ "VALIDATION_ERROR": "Yeni poçt qutunuza ən azı bir agent əlavə edin",
+ "PICK_AGENTS": "Gələn qutu üçün agentləri seçin"
+ },
+ "DETAILS": {
+ "TITLE": "Gələn Qutu Detalları",
+ "DESC": "Aşağıdakı açılan siyahıdan Chatwoot-a qoşmaq istədiyiniz Facebook Səhifəsini seçin. Gələn qutunu daha yaxşı tanımaq üçün ona xüsusi ad da verə bilərsiniz."
+ },
+ "FINISH": {
+ "TITLE": "Uğurla tamamlandı!",
+ "DESC": "Facebook Səhifənizi Chatwoot ilə uğurla inteqrasiya etdiniz. Növbəti dəfə müştəri Səhifənizə mesaj göndərdikdə, söhbət avtomatik olaraq gələn qutunuzda görünəcək.
Həmçinin, veb saytınıza asanlıqla əlavə edə biləcəyiniz vidjet skripti təqdim edirik. Bu skript veb saytınızda aktiv olduqda, müştərilər xarici vasitə olmadan birbaşa veb saytınızdan sizə mesaj göndərə biləcək və söhbət burada, Chatwoot-da görünəcək.
Gözəl, deyilmi? Biz də çalışırıq :)"
+ },
+ "EMAIL_PROVIDER": {
+ "TITLE": "E-poçt provayderinizi seçin",
+ "DESCRIPTION": "Aşağıdakı siyahıdan bir e-poçt provayderi seçin. Əgər siyahıda provayderinizi görmürsünüzsə, digər provayder seçimini seçib IMAP və SMTP məlumatlarını təqdim edə bilərsiniz."
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft E-poçtu",
+ "DESCRIPTION": "Başlamaq üçün Microsoft ilə daxil ol düyməsini klikləyin. Siz e-poçt daxilolma səhifəsinə yönləndiriləcəksiniz. İcazələri qəbul etdikdən sonra inbox yaradılması mərhələsinə geri qaytarılacaqsınız.",
+ "EMAIL_PLACEHOLDER": "E-poçt ünvanını daxil edin",
+ "SIGN_IN": "Microsoft ilə daxil olun",
+ "ERROR_MESSAGE": "Microsoft ilə əlaqədə xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "GOOGLE": {
+ "TITLE": "Google E-poçt",
+ "DESCRIPTION": "Başlamaq üçün Google ilə daxil ol düyməsini klikləyin. Siz e-poçt daxilolma səhifəsinə yönləndiriləcəksiniz. İcazələri qəbul etdikdən sonra poçt qutusu yaratma mərhələsinə geri qaytarılacaqsınız.",
+ "SIGN_IN": "Google ilə daxil olun",
+ "EMAIL_PLACEHOLDER": "E-poçt ünvanını daxil edin",
+ "ERROR_MESSAGE": "Google ilə əlaqədə xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ }
+ },
+ "DETAILS": {
+ "LOADING_FB": "Facebook ilə təsdiqlənirsiniz...",
+ "ERROR_FB_LOADING": "Facebook SDK yüklənərkən xəta baş verdi. Zəhmət olmasa reklam bloklayıcılarını söndürün və fərqli brauzerdən yenidən cəhd edin.",
+ "ERROR_FB_AUTH": "Nəsə səhv getdi, zəhmət olmasa səhifəni yeniləyin...",
+ "ERROR_FB_UNAUTHORIZED": "Bu əməliyyatı yerinə yetirmək üçün səlahiyyətiniz yoxdur. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Zəhmət olmasa, Facebook səhifəsinə tam nəzarət hüququ ilə daxil olduğunuzdan əmin olun. Facebook rolları haqqında daha çox məlumatı buradan oxuya bilərsiniz.",
+ "CREATING_CHANNEL": "Gələn qutunuz yaradılır...",
+ "TITLE": "Gələn Qutu Detallarını Konfiqurasiya edin",
+ "DESC": ""
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Agentlər əlavə et",
+ "ADD_AGENTS": "Gələn qutunuza agentlər əlavə olunur..."
+ },
+ "FINISH": {
+ "TITLE": "Gələn qutunuz hazırdır!",
+ "MESSAGE": "İndi yeni Kanalınız vasitəsilə müştərilərinizlə əlaqə saxlaya bilərsiniz. Uğurlu dəstək",
+ "BUTTON_TEXT": "Məni ora apar",
+ "MORE_SETTINGS": "Daha çox parametrlər",
+ "WEBSITE_SUCCESS": "Veb sayt kanalı yaratmağı uğurla tamamladınız. Aşağıda göstərilən kodu kopyalayın və veb saytınıza yapışdırın. Növbəti dəfə müştəri canlı söhbətdən istifadə etdikdə, söhbət avtomatik olaraq gələn qutunuzda görünəcək.",
+ "WHATSAPP_QR_INSTRUCTION": "WhatsApp poçt qutunuzu sürətli test etmək üçün yuxarıdakı QR kodunu skan edin",
+ "MESSENGER_QR_INSTRUCTION": "Facebook Messenger poçt qutunuzu sürətli test etmək üçün yuxarıdakı QR kodunu skan edin",
+ "TELEGRAM_QR_INSTRUCTION": "Telegram poçt qutunuzu sürətli test etmək üçün yuxarıdakı QR kodunu skan edin"
+ },
+ "REAUTH": "Təkrar təsdiqlə",
+ "VIEW": "Bax",
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Gələn qutu parametrləri uğurla yeniləndi",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Avtomatik təyin etmə uğurla yeniləndi",
+ "ERROR_MESSAGE": "Inbox parametrlərini yeniləyə bilmədik. Zəhmət olmasa sonra yenidən cəhd edin."
+ },
+ "EMAIL_COLLECT_BOX": {
+ "ENABLED": "Aktivdir",
+ "DISABLED": "Deaktivdir"
+ },
+ "ENABLE_CSAT": {
+ "ENABLED": "Aktivdir",
+ "DISABLED": "Deaktivdir"
+ },
+ "SENDER_NAME_SECTION": {
+ "TITLE": "Göndərənin adı",
+ "SUB_TEXT": "Agentlərinizdən e-poçt aldıqda müştərinizə göstərilən adı seçin.",
+ "FOR_EG": "Məsələn:",
+ "FRIENDLY": {
+ "TITLE": "Dostcasına",
+ "FROM": "dən",
+ "SUBTITLE": "Göndərənin adında cavabı göndərən agentin adını əlavə edin ki, dostcasına görünsün."
+ },
+ "PROFESSIONAL": {
+ "TITLE": "Peşəkar",
+ "SUBTITLE": "E-poçt başlığında göndərənin adı kimi yalnız konfiqurasiya edilmiş biznes adından istifadə edin."
+ },
+ "BUSINESS_NAME": {
+ "BUTTON_TEXT": "Biznes adınızı qurun",
+ "PLACEHOLDER": "Biznes adınızı daxil edin",
+ "SAVE_BUTTON_TEXT": "Yadda saxla"
+ }
+ },
+ "ALLOW_MESSAGES_AFTER_RESOLVED": {
+ "ENABLED": "Aktivdir",
+ "DISABLED": "Deaktivdir"
+ },
+ "ENABLE_CONTINUITY_VIA_EMAIL": {
+ "ENABLED": "Aktivdir",
+ "DISABLED": "Deaktivdir"
+ },
+ "LOCK_TO_SINGLE_CONVERSATION": {
+ "ENABLED": "Eyni söhbəti yenidən açın",
+ "DISABLED": "Yeni söhbətlər yaradın",
+ "ENABLED_DESCRIPTION": "Əlaqə yenidən mesaj göndərdikdə əvvəlki söhbət yenidən açılacaq.",
+ "DISABLED_DESCRIPTION": "Əvvəlki söhbət həll edildikdən sonra hər dəfə yeni söhbət yaradılacaq."
+ },
+ "ENABLE_HMAC": {
+ "LABEL": "Aktiv et"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Sil",
+ "AVATAR_DELETE_BUTTON_TEXT": "Avatarı sil",
+ "CONFIRM": {
+ "TITLE": "Silinməni təsdiqlə",
+ "MESSAGE": "Silmək istədiyinizə əminsinizmi ",
+ "PLACE_HOLDER": "Təsdiqləmək üçün zəhmət olmasa {inboxName} yazın",
+ "YES": "Bəli, sil ",
+ "NO": "Xeyr, saxla "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Gələn qutu uğurla silindi",
+ "ERROR_MESSAGE": "Gələn qutu silinə bilmədi. Zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "AVATAR_SUCCESS_MESSAGE": "Inbox avatarı uğurla silindi",
+ "AVATAR_ERROR_MESSAGE": "Inbox avatarını silmək mümkün olmadı. Zəhmət olmasa sonra yenidən cəhd edin."
+ }
+ },
+ "TABS": {
+ "SETTINGS": "Parametrlər",
+ "COLLABORATORS": "Əməkdaşlar",
+ "CONFIGURATION": "Konfiqurasiya",
+ "CAMPAIGN": "Kampaniyalar",
+ "PRE_CHAT_FORM": "Söhbət Ön Forması",
+ "BUSINESS_HOURS": "İş Saatları",
+ "WIDGET_BUILDER": "Widget Qurucusu",
+ "BOT_CONFIGURATION": "Bot Konfiqurasiyası",
+ "ACCOUNT_HEALTH": "Hesabın sağlamlığı",
+ "CSAT": "CSAT",
+ "VOICE": "Səs",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Kanal üstünlükləri",
+ "WIDGET_FEATURES": "Widget xüsusiyyətləri",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "WhatsApp hesabınızı idarə edin",
+ "DESCRIPTION": "WhatsApp hesabınızın vəziyyətini, mesajlaşma limitlərini və keyfiyyətini yoxlayın. Lazım gələrsə, parametrləri yeniləyin və ya problemləri həll edin",
+ "GO_TO_SETTINGS": "Meta Business Manager-ə keçin",
+ "NO_DATA": "Sağlamlıq məlumatları mövcud deyil",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Göstərilən telefon nömrəsi",
+ "TOOLTIP": "Müştərilərə göstərilən telefon nömrəsi"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Biznes adı",
+ "TOOLTIP": "WhatsApp tərəfindən təsdiqlənmiş biznes adı"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Göstərilən adın statusu",
+ "TOOLTIP": "Biznes adınızın təsdiq statusu"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Keyfiyyət reytinqi",
+ "TOOLTIP": "Hesabınız üçün WhatsApp keyfiyyət reytinqi"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Mesajlaşma limiti səviyyəsi",
+ "TOOLTIP": "Hesabınız üçün gündəlik mesaj limiti"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Hesab rejimi",
+ "TOOLTIP": "WhatsApp hesabınızın cari işləmə rejimi"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 müştəri 24 saat ərzində",
+ "TIER_1000": "1K müştəri 24 saat ərzində",
+ "TIER_1K": "1K müştəri 24 saat ərzində",
+ "TIER_10K": "10K müştəri 24 saat ərzində",
+ "TIER_100K": "100K müştəri 24 saat ərzində",
+ "TIER_UNLIMITED": "Limitsiz müştəri 24 saat ərzində",
+ "UNKNOWN": "Reytinq mövcud deyil"
+ },
+ "STATUSES": {
+ "APPROVED": "Təsdiqlənib",
+ "PENDING_REVIEW": "Yoxlama gözlənilir",
+ "AVAILABLE_WITHOUT_REVIEW": "Yoxlama olmadan mövcuddur",
+ "REJECTED": "Rədd edilib",
+ "DECLINED": "İmtina edilib",
+ "NON_EXISTS": "Mövcud deyil"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Canlı"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Konfiqurasiyası",
+ "DESCRIPTION": "Müştərilərdən mesaj almaq üçün WhatsApp Business Hesabınızda webhook URL tələb olunur",
+ "ACTION_REQUIRED": "Webhook qurulmayıb",
+ "REGISTER_BUTTON": "Webhook-u qeydiyyatdan keçirin",
+ "REGISTER_SUCCESS": "Webhook uğurla qeydiyyatdan keçdi",
+ "REGISTER_ERROR": "Webhook qeydiyyatı alınmadı. Zəhmət olmasa yenidən cəhd edin.",
+ "CONFIGURED_SUCCESS": "Webhook uğurla quruldu",
+ "URL_MISMATCH": "Webhook URL uyğun gəlmir"
+ }
+ },
+ "SETTINGS": "Parametrlər",
+ "FEATURES": {
+ "LABEL": "Xüsusiyyətlər",
+ "DISPLAY_FILE_PICKER": "Widgetdə fayl seçicisini göstər",
+ "DISPLAY_EMOJI_PICKER": "Widgetdə emoji seçicisini göstər",
+ "ALLOW_END_CONVERSATION": "İstifadəçilərə widget-dan söhbəti bitirməyə icazə verin",
+ "USE_INBOX_AVATAR_FOR_BOT": "Bot üçün inbox adı və avatarından istifadə edin"
+ },
+ "SETTINGS_POPUP": {
+ "MESSENGER_HEADING": "Mesajlaşma Skripti",
+ "MESSENGER_SUB_HEAD": "Bu düyməni body tagınızın içərisinə yerləşdirin",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "İcazə verilən domenlər",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Gizli Açar",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "Agentlər",
+ "INBOX_AGENTS_SUB_TEXT": "Bu gələn qutudan agentləri əlavə edin və ya silin",
+ "AGENT_ASSIGNMENT": "Söhbət Təyinatı",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "Söhbət təyinatı parametrlərini yeniləyin",
+ "UPDATE": "Yenilə",
+ "ENABLE_EMAIL_COLLECT_BOX": "Elektron poçt toplama qutusunu aktiv edin",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Yeni söhbətdə elektron poçt toplama qutusunu aktiv və ya deaktiv edin",
+ "AUTO_ASSIGNMENT": "Avtomatik təyin etməni aktivləşdirin",
+ "SENDER_NAME_SECTION": "E-poçtda Agent Adını Aktiv edin",
+ "SENDER_NAME_SECTION_TEXT": "E-poçtda Agentin adının göstərilməsini aktivləşdirin/deaktivləşdirin, deaktiv edilsə biznes adı göstəriləcək",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "E-poçt vasitəsilə söhbət davamlılığını aktiv edin",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Əlaqə e-poçt ünvanı mövcuddursa, söhbətlər e-poçt vasitəsilə davam edəcək.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Söhbət yönləndirilməsi",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Mövcud əlaqələr üçün söhbət yaradılmasını qurun",
+ "INBOX_UPDATE_TITLE": "Gələn Qutu Parametrləri",
+ "INBOX_UPDATE_SUB_TEXT": "Gələn qutu parametrlərinizi yeniləyin",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "Bu gələn qutuda əlavə edilmiş agentlərə yeni söhbətlərin avtomatik təyin edilməsini aktivləşdirin və ya söndürün.",
+ "HMAC_VERIFICATION": "İstifadəçi Şəxsiyyətinin Təsdiqi",
+ "HMAC_DESCRIPTION": "Bu açarla istifadəçilərinizin şəxsiyyətini yoxlamaq üçün gizli token yarada bilərsiniz.",
+ "HMAC_LINK_TO_DOCS": "Daha ətraflı buradan oxuya bilərsiniz.",
+ "HMAC_MANDATORY_VERIFICATION": "İstifadəçi şəxsiyyətinin yoxlanmasını məcbur et",
+ "HMAC_MANDATORY_DESCRIPTION": "Əgər aktivdirsə, təsdiqlənməyən sorğular rədd ediləcək.",
+ "INBOX_IDENTIFIER": "Inbox identifikatoru",
+ "INBOX_IDENTIFIER_SUB_TEXT": "API müştərilərinizi təsdiqləmək üçün burada göstərilən `inbox_identifier` tokenindən istifadə edin.",
+ "FORWARD_EMAIL_TITLE": "Elektron poçta yönləndir",
+ "FORWARD_EMAIL_SUB_TEXT": "Elektron poçtlarınızı aşağıdakı elektron poçt ünvanına yönləndirməyə başlayın.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Bu quraşdırmada e-poçtların qutunuza yönləndirilməsi hazırda deaktivdir. Bu funksiyanı istifadə etmək üçün administratorunuz tərəfindən aktivləşdirilməlidir. Davam etmək üçün onlarla əlaqə saxlayın.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "Söhbət həll edildikdən sonra mesajlara icazə verin",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Söhbət həll edildikdən sonra son istifadəçilərin mesaj göndərməsinə icazə verin.",
+ "WHATSAPP_SECTION_SUBHEADER": "Bu API açarı WhatsApp API-ləri ilə inteqrasiya üçün istifadə olunur.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API-ləri ilə inteqrasiya üçün istifadə olunacaq yeni API açarını daxil edin.",
+ "WHATSAPP_SECTION_TITLE": "API Açarı",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API Açarını Yenilə",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Yeni API Açarını buraya daxil edin",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "Yenilə",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Daxili Qeydiyyatı",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "Bu poçt qutusu WhatsApp daxili qeydiyyatı vasitəsilə qoşulub.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "WhatsApp Biznes parametrlərinizi yeniləmək üçün bu poçt qutusunu yenidən konfiqurasiya edə bilərsiniz.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Yenidən konfiqurasiya et",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp Biznesə qoşulun",
+ "WHATSAPP_CONNECT_SUBHEADER": "Asan idarəetmə üçün WhatsApp daxili qeydiyyatına yüksəldin.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Bu poçt qutusunu inkişaf etmiş xüsusiyyətlər və asan idarəetmə üçün WhatsApp Biznesə qoşun.",
+ "WHATSAPP_CONNECT_BUTTON": "Qoşul",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp Biznesə uğurla qoşuldu!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp Biznesə qoşulmaq mümkün olmadı. Zəhmət olmasa yenidən cəhd edin.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Biznes uğurla yenidən konfiqurasiya edildi!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp Biznesi yenidən konfiqurasiya etmək mümkün olmadı. Zəhmət olmasa yenidən cəhd edin.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp Tətbiq ID-si konfiqurasiya edilməyib. Zəhmət olmasa administratorunuzla əlaqə saxlayın.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Konfiqurasiya ID-si konfiqurasiya edilməyib. Zəhmət olmasa administratorunuzla əlaqə saxlayın.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp giriş ləğv edildi. Zəhmət olmasa yenidən cəhd edin.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Təsdiq Tokeni",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "Bu token webhook son nöqtəsinin doğruluğunu yoxlamaq üçün istifadə olunur.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Şablonları sinxronlaşdır",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Mövcud şablonlarınızı yeniləmək üçün WhatsApp-dan mesaj şablonlarını əl ilə sinxronlaşdırın.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Şablonları sinxronlaşdır",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Şablonların sinxronizasiyası uğurla başlandı. Yenilənməsi bir neçə dəqiqə çəkə bilər.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Pre Chat Form Parametrlərini Yeniləyin"
+ },
+ "HELP_CENTER": {
+ "LABEL": "Kömək Mərkəzi",
+ "PLACEHOLDER": "Kömək Mərkəzini seçin",
+ "SELECT_PLACEHOLDER": "Kömək Mərkəzini seçin",
+ "NONE": "Heç biri",
+ "REMOVE": "Kömək Mərkəzini Silin",
+ "SUB_TEXT": "Inbox ilə Kömək Mərkəzini birləşdirin"
+ },
+ "AUTO_ASSIGNMENT": {
+ "MAX_ASSIGNMENT_LIMIT": "Avtomatik təyinat limiti",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Zəhmət olmasa 0-dan böyük bir dəyər daxil edin",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Bu inbox-dan agentə avtomatik təyin edilə bilən maksimum söhbət sayını məhdudlaşdırın"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "Söhbət təyinatı",
+ "DESCRIPTION": "Gələn söhbətləri təyin etmə siyasətlərinə əsasən mövcud agentlərə avtomatik təyin edin",
+ "ENABLE_AUTO_ASSIGNMENT": "Avtomatik söhbət təyinatını aktiv et",
+ "DEFAULT_RULES_TITLE": "Əsas təyinat qaydaları",
+ "DEFAULT_RULES_DESCRIPTION": "Bütün söhbətlər üçün əsas təyinat davranışından istifadə olunur",
+ "DEFAULT_RULE_1": "Ən erkən yaradılan söhbətlər əvvəl",
+ "DEFAULT_RULE_2": "Dairəvi paylama",
+ "CUSTOMIZE_WITH_POLICY": "Təyinat siyasəti ilə fərdiləşdirin",
+ "USING_POLICY": "Bu qutu üçün fərdi təyinat siyasətindən istifadə olunur",
+ "CUSTOMIZE_POLICY": "Təyinat siyasəti ilə fərdiləşdirin",
+ "DELETE_POLICY": "Siyasəti silin",
+ "POLICY_LABEL": "Təyinat siyasəti",
+ "ASSIGNMENT_ORDER_LABEL": "Təyinat sırası",
+ "ASSIGNMENT_METHOD_LABEL": "Təyinat üsulu",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Passiv"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Ən erkən yaradılan",
+ "LONGEST_WAITING": "Ən uzun müddət gözləyən"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Növbə ilə",
+ "BALANCED": "Tarazlı təyinat"
+ },
+ "UPGRADE_PROMPT": "Fərdi təyinat siyasətləri Biznes planında mövcuddur",
+ "UPGRADE_TO_BUSINESS": "Biznes planına yüksəlt",
+ "DEFAULT_POLICY_LINKED": "Əsas siyasət qoşulub",
+ "DEFAULT_POLICY_DESCRIPTION": "Bu inboxdakı söhbətlərin agentlərə necə təyin olunacağını fərdiləşdirmək üçün fərdi təyinat siyasətini qoşun.",
+ "LINK_EXISTING_POLICY": "Mövcud siyasəti qoşun",
+ "CREATE_NEW_POLICY": "Yeni siyasət yaradın",
+ "NO_POLICIES": "Təyinat siyasəti tapılmadı",
+ "VIEW_ALL_POLICIES": "Bütün siyasətləri göstər",
+ "CURRENT_BEHAVIOR": "Hazırda əsas təyinat davranışı istifadə olunur:",
+ "LINK_SUCCESS": "Təyinat siyasəti uğurla qoşuldu",
+ "LINK_ERROR": "Təyinat siyasətini qoşmaq alınmadı"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Təyinat siyasətini silmək istəyirsiniz?",
+ "DELETE_CONFIRM_MESSAGE": "Bu təyinat siyasətini bu inboxdan silmək istədiyinizə əminsiniz? Inbox əsas təyinat qaydalarına qayıdacaq.",
+ "CANCEL": "Ləğv et",
+ "CONFIRM_DELETE": "Silin",
+ "DELETE_SUCCESS": "Təyinat siyasəti uğurla silindi",
+ "DELETE_ERROR": "Təyinat siyasətini silmək alınmadı"
+ },
+ "FACEBOOK_REAUTHORIZE": {
+ "TITLE": "Təkrar səlahiyyət ver",
+ "SUBTITLE": "Facebook bağlantınızın müddəti bitib, xidmətləri davam etdirmək üçün Facebook səhifənizi yenidən qoşun",
+ "MESSAGE_SUCCESS": "Yenidən qoşulma uğurlu oldu",
+ "MESSAGE_ERROR": "Xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "PRE_CHAT_FORM": {
+ "DESCRIPTION": "Söhbət ön formaları istifadəçi məlumatlarını söhbətə başlamazdan əvvəl tutmağa imkan verir.",
+ "SET_FIELDS": "Söhbət öncəsi forma sahələri",
+ "SET_FIELDS_HEADER": {
+ "FIELDS": "Sahələr",
+ "LABEL": "Etiket",
+ "PLACE_HOLDER": "Yer tutucu",
+ "KEY": "Açar",
+ "TYPE": "Növ",
+ "REQUIRED": "Tələb olunur"
+ },
+ "ENABLE": {
+ "LABEL": "Söhbət ön formasını aktiv edin",
+ "OPTIONS": {
+ "ENABLED": "Bəli",
+ "DISABLED": "Xeyr"
+ }
+ },
+ "PRE_CHAT_MESSAGE": {
+ "LABEL": "Söhbət öncəsi mesaj",
+ "PLACEHOLDER": "Bu mesaj forma ilə birlikdə istifadəçilərə görünəcək"
+ },
+ "REQUIRE_EMAIL": {
+ "LABEL": "Ziyarətçilər söhbətə başlamazdan əvvəl adlarını və elektron poçt ünvanlarını verməlidirlər"
+ }
+ },
+ "CSAT": {
+ "TITLE": "CSAT-ı aktiv edin",
+ "SUBTITLE": "Müştərilərin dəstək təcrübəsi barədə necə hiss etdiklərini anlamaq üçün söhbətlərin sonunda avtomatik olaraq CSAT sorğuları göndərin. Məmnuniyyət tendensiyalarını izləyin və zamanla təkmilləşdirilməli sahələri müəyyən edin.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Göstərmə növü"
+ },
+ "MESSAGE": {
+ "LABEL": "Mesaj",
+ "PLACEHOLDER": "İstifadəçilərə form ilə göstərmək üçün mesaj daxil edin"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Düymə mətni",
+ "PLACEHOLDER": "Zəhmət olmasa bizi qiymətləndirin"
+ },
+ "LANGUAGE": {
+ "LABEL": "Dil",
+ "PLACEHOLDER": "Şablon dilini seçin"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Mesaj önizləməsi",
+ "TOOLTIP": "Bu, WhatsApp platformasında göstərildikdə bir az fərqli ola bilər."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "WhatsApp tərəfindən təsdiqlənib",
+ "PENDING": "WhatsApp təsdiqi gözlənilir",
+ "REJECTED": "Meta şablonu rədd etdi",
+ "DEFAULT": "WhatsApp təsdiqi tələb olunur",
+ "NOT_FOUND": "Şablon Meta platformasında mövcud deyil."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp şablonu uğurla yaradıldı və təsdiq üçün göndərildi",
+ "ERROR_MESSAGE": "WhatsApp şablonu yaratmaq alınmadı"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Sorğu məlumatlarını redaktə et",
+ "DESCRIPTION": "Əvvəlki şablon silinəcək və yenisi yaradılaraq WhatsApp təsdiqi üçün yenidən göndəriləcək",
+ "CONFIRM": "Yeni şablon yarat",
+ "CANCEL": "Geri qayıt"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Uyğunluğu yoxla",
+ "HELPER_NOTE": "Göndərməzdən əvvəl bu mesajı yoxlayın ki, uyğunluq yaxşılaşsın. Sistem hesabatlarda reytinq və rəy toplamaq üçün xüsusi CSAT şablonu yaradır və onu uyğunluq kimi təqdim edir; Meta məzmun əsasında hələ də Marketinq kimi təsnif edə bilər.",
+ "RESULT_LABEL": "Meta kateqoriya proqnozu",
+ "GUIDANCE_NOTE": "Bu, Meta təsdiqinin zəmanəti deyil, göstəriş yoxlamasıdır.",
+ "SUGGESTION_LABEL": "Tövsiyə olunan uyğunluq təhlükəsiz yenidən yazma",
+ "APPLY": "Bu yenidən yazmanı istifadə et",
+ "ERROR_MESSAGE": "Mesajı təhlil etmək alınmadı. Zəhmət olmasa yenidən cəhd edin.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Ehtimal olunan uyğunluq",
+ "LIKELY_MARKETING": "Ehtimal olunan Marketinq",
+ "UNCLEAR": "Aydınlaşdırma tələb olunur"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Sorğu qaydası",
+ "DESCRIPTION_PREFIX": "Söhbət aşağıdakı şərtlədirsə sorğunu göndərin",
+ "DESCRIPTION_SUFFIX": "etiketlərdən hər hansı biri",
+ "OPERATOR": {
+ "CONTAINS": "də ehtiva edir",
+ "DOES_NOT_CONTAINS": "də ehtiva etmir"
+ },
+ "SELECT_PLACEHOLDER": "etiketləri seçin"
+ },
+ "NOTE": "Qeyd: CSAT sorğuları hər söhbət üçün yalnız bir dəfə göndərilir",
+ "WHATSAPP_NOTE": "Qeyd: Saxladıqda sistem WhatsApp-da xüsusi CSAT şablonu yaradır (reytinq və rəy toplamaq üçün istifadə olunur) və onu təsdiq üçün uyğunluq kimi təqdim edir. Meta məzmun əsasında hələ də Marketinq kimi təsnif edə bilər. Təsdiqdən sonra sorğular yalnız hər söhbət üçün bir dəfə göndərilir.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT parametrləri uğurla yeniləndi",
+ "ERROR_MESSAGE": "CSAT parametrlərini yeniləyə bilmədik. Zəhmət olmasa bir az sonra yenidən cəhd edin."
+ }
+ },
+ "BUSINESS_HOURS": {
+ "TITLE": "Mövcudluğunuzu təyin edin",
+ "SUBTITLE": "Canlı çat vidcetinizdə mövcudluğunuzu təyin edin",
+ "WEEKLY_TITLE": "Həftəlik iş saatlarınızı təyin edin",
+ "TIMEZONE_LABEL": "Zaman zonası seçin",
+ "UPDATE": "İş saatları parametrlərini yeniləyin",
+ "TOGGLE_AVAILABILITY": "Bu inbox üçün iş mövcudluğunu aktiv edin",
+ "UNAVAILABLE_MESSAGE_LABEL": "Ziyarətçilər üçün mövcud olmayan mesaj",
+ "TOGGLE_HELP": "Biznes mövcudluğunu aktivləşdirmək, bütün agentlər offline olsa belə canlı söhbət widgetında mövcud saatları göstərəcək. Mövcud olmayan saatlarda ziyarətçilər mesaj və pre-chat form ilə xəbərdar edilə bilər.",
+ "DAY": {
+ "DAY": "Gün",
+ "AVAILABILITY": "Mövcudluq",
+ "HOURS": "Saatlar",
+ "ENABLE": "Bu gün üçün mövcudluğu aktiv edin",
+ "UNAVAILABLE": "Mövcud deyil",
+ "VALIDATION_ERROR": "Başlanğıc vaxt bağlanma vaxtından əvvəl olmalıdır.",
+ "CHOOSE": "Seç"
+ },
+ "ALL_DAY": "Bütün Gün"
+ },
+ "IMAP": {
+ "TITLE": "IMAP",
+ "SUBTITLE": "IMAP məlumatlarınızı təyin edin",
+ "NOTE_TEXT": "SMTP-ni aktivləşdirmək üçün zəhmət olmasa IMAP-i konfiqurasiya edin.",
+ "UPDATE": "IMAP parametrlərini yenilə",
+ "TOGGLE_AVAILABILITY": "Bu gələn qutusu üçün IMAP konfiqurasiyasını aktiv edin",
+ "TOGGLE_HELP": "IMAP-ı aktivləşdirmək istifadəçinin e-poçt almasına kömək edəcək",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "IMAP parametrləri uğurla yeniləndi",
+ "ERROR_MESSAGE": "IMAP parametrlərini yeniləmək mümkün olmadı"
+ },
+ "ADDRESS": {
+ "LABEL": "Ünvan",
+ "PLACE_HOLDER": "Ünvan (Məs: imap.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "Port",
+ "PLACE_HOLDER": "Port"
+ },
+ "LOGIN": {
+ "LABEL": "Giriş",
+ "PLACE_HOLDER": "Giriş"
+ },
+ "PASSWORD": {
+ "LABEL": "Şifrə",
+ "PLACE_HOLDER": "Şifrə"
+ },
+ "ENABLE_SSL": "SSL-i aktiv et",
+ "AUTH_MECHANISM": "Avtorizasiya"
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "SUBTITLE": "MICROSOFT hesabınızı yenidən avtorizə edin"
+ },
+ "SMTP": {
+ "TITLE": "SMTP",
+ "SUBTITLE": "SMTP məlumatlarınızı təyin edin",
+ "UPDATE": "SMTP parametrlərini yenilə",
+ "TOGGLE_AVAILABILITY": "Bu gələn qutusu üçün SMTP konfiqurasiyasını aktiv edin",
+ "TOGGLE_HELP": "SMTP-ni aktiv etmək istifadəçinin e-poçt göndərməsinə kömək edəcək",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "SMTP parametrləri uğurla yeniləndi",
+ "ERROR_MESSAGE": "SMTP parametrlərini yeniləmək mümkün olmadı"
+ },
+ "ADDRESS": {
+ "LABEL": "Ünvan",
+ "PLACE_HOLDER": "Ünvan (Məs: smtp.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "Port",
+ "PLACE_HOLDER": "Port"
+ },
+ "LOGIN": {
+ "LABEL": "Giriş",
+ "PLACE_HOLDER": "Giriş"
+ },
+ "PASSWORD": {
+ "LABEL": "Şifrə",
+ "PLACE_HOLDER": "Şifrə"
+ },
+ "DOMAIN": {
+ "LABEL": "Domen",
+ "PLACE_HOLDER": "Domen"
+ },
+ "ENCRYPTION": "Şifrələmə",
+ "SSL_TLS": "SSL/TLS",
+ "START_TLS": "STARTTLS",
+ "OPEN_SSL_VERIFY_MODE": "Open SSL Doğrulama rejimi",
+ "AUTH_MECHANISM": "Avtorizasiya"
+ },
+ "NOTE": "Qeyd: ",
+ "WIDGET_BUILDER": {
+ "WIDGET_OPTIONS": {
+ "AVATAR": {
+ "LABEL": "Vebsayt Avatarı",
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Avatar uğurla silindi",
+ "ERROR_MESSAGE": "Xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ }
+ }
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "Vebsayt Adı",
+ "PLACE_HOLDER": "Vebsayt adınızı daxil edin (məsələn: Acme Inc)",
+ "ERROR": "Zəhmət olmasa düzgün vebsayt adı daxil edin"
+ },
+ "WELCOME_HEADING": {
+ "LABEL": "Xoş Gəlmisiniz Başlığı",
+ "PLACE_HOLDER": "Salam!"
+ },
+ "WELCOME_TAGLINE": {
+ "LABEL": "Xoş Gəlmisiniz Sloganı",
+ "PLACE_HOLDER": "Bizimlə əlaqə saxlamaq asandır. Hər hansı sual verin və ya rəyinizi paylaşın."
+ },
+ "REPLY_TIME": {
+ "LABEL": "Cavab Vaxtı",
+ "IN_A_FEW_MINUTES": "Bir neçə dəqiqə ərzində",
+ "IN_A_FEW_HOURS": "Bir neçə saat ərzində",
+ "IN_A_DAY": "Bir gün ərzində"
+ },
+ "WIDGET_COLOR_LABEL": "Widget Rəngi",
+ "WIDGET_BUBBLE": "Baloncuk",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Mövqe:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Növ:",
+ "WIDGET_BUBBLE_LAUNCHER_TITLE": {
+ "DEFAULT": "Bizimlə söhbət edin",
+ "LABEL": "Başlatma Başlığı",
+ "PLACE_HOLDER": "Bizimlə söhbət edin"
+ },
+ "UPDATE": {
+ "BUTTON_TEXT": "Widget Parametrlərini Yenilə",
+ "API": {
+ "SUCCESS_MESSAGE": "Widget parametrləri uğurla yeniləndi",
+ "ERROR_MESSAGE": "Widget parametrlərini yeniləmək mümkün olmadı"
+ }
+ },
+ "WIDGET_VIEW_OPTION": {
+ "PREVIEW": "Önizləmə",
+ "SCRIPT": "Ssenari"
+ },
+ "WIDGET_BUBBLE_POSITION": {
+ "LEFT": "Sol",
+ "RIGHT": "Sağ"
+ },
+ "WIDGET_BUBBLE_TYPE": {
+ "STANDARD": "Standart",
+ "EXPANDED_BUBBLE": "Genişləndirilmiş Baloncuk"
+ }
+ },
+ "WIDGET_SCREEN": {
+ "DEFAULT": "Defolt",
+ "CHAT": "Söhbət rejimi"
+ },
+ "REPLY_TIME": {
+ "IN_A_FEW_MINUTES": "Adətən bir neçə dəqiqə ərzində cavab verir",
+ "IN_A_FEW_HOURS": "Adətən bir neçə saat ərzində cavab verir",
+ "IN_A_DAY": "Adətən bir gün ərzində cavab verir"
+ },
+ "FOOTER": {
+ "START_CONVERSATION_BUTTON_TEXT": "Söhbəti Başla",
+ "CHAT_INPUT_PLACEHOLDER": "Mesajınızı yazın"
+ },
+ "BODY": {
+ "TEAM_AVAILABILITY": {
+ "ONLINE": "Biz onlaynıq",
+ "OFFLINE": "Hazırda biz mövcud deyilik"
+ },
+ "USER_MESSAGE": "Salam",
+ "AGENT_MESSAGE": "Salam"
+ },
+ "BRANDING_TEXT": "Powered by Chatwoot",
+ "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
+ },
+ "EMAIL_PROVIDERS": {
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Microsoft ilə qoşulun"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Google ilə qoşulun"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Digər təminatçılar",
+ "DESCRIPTION": "Digər təminatçılarla qoşulun"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Veb sayt",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-poçt",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Kanalı",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Səs"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/index.js b/app/javascript/dashboard/i18n/locale/az/index.js
new file mode 100644
index 000000000..785b1e0b1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/index.js
@@ -0,0 +1,83 @@
+import advancedFilters from './advancedFilters.json';
+import agentBots from './agentBots.json';
+import agentMgmt from './agentMgmt.json';
+import attributesMgmt from './attributesMgmt.json';
+import auditLogs from './auditLogs.json';
+import automation from './automation.json';
+import bulkActions from './bulkActions.json';
+import campaign from './campaign.json';
+import cannedMgmt from './cannedMgmt.json';
+import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
+import contact from './contact.json';
+import contactFilters from './contactFilters.json';
+import conversation from './conversation.json';
+import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
+import emoji from './emoji.json';
+import general from './general.json';
+import generalSettings from './generalSettings.json';
+import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
+import inboxMgmt from './inboxMgmt.json';
+import integrationApps from './integrationApps.json';
+import integrations from './integrations.json';
+import labelsMgmt from './labelsMgmt.json';
+import login from './login.json';
+import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
+import report from './report.json';
+import resetPassword from './resetPassword.json';
+import search from './search.json';
+import setNewPassword from './setNewPassword.json';
+import settings from './settings.json';
+import signup from './signup.json';
+import sla from './sla.json';
+import teamsSettings from './teamsSettings.json';
+import whatsappTemplates from './whatsappTemplates.json';
+
+export default {
+ ...advancedFilters,
+ ...agentBots,
+ ...agentMgmt,
+ ...attributesMgmt,
+ ...auditLogs,
+ ...automation,
+ ...bulkActions,
+ ...campaign,
+ ...cannedMgmt,
+ ...chatlist,
+ ...companies,
+ ...components,
+ ...contact,
+ ...contactFilters,
+ ...conversation,
+ ...csatMgmt,
+ ...customRole,
+ ...datePicker,
+ ...emoji,
+ ...general,
+ ...generalSettings,
+ ...helpCenter,
+ ...inbox,
+ ...inboxMgmt,
+ ...integrationApps,
+ ...integrations,
+ ...labelsMgmt,
+ ...login,
+ ...macros,
+ ...mfa,
+ ...onboarding,
+ ...report,
+ ...resetPassword,
+ ...search,
+ ...setNewPassword,
+ ...settings,
+ ...signup,
+ ...sla,
+ ...teamsSettings,
+ ...whatsappTemplates,
+};
diff --git a/app/javascript/dashboard/i18n/locale/az/integrationApps.json b/app/javascript/dashboard/i18n/locale/az/integrationApps.json
new file mode 100644
index 000000000..a922473c6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/integrationApps.json
@@ -0,0 +1,67 @@
+{
+ "INTEGRATION_APPS": {
+ "FETCHING": "Fetching Integrations",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
+ "HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CONFIGURE": "Configure",
+ "ADD_BUTTON": "Add a new hook",
+ "DELETE": {
+ "TITLE": {
+ "INBOX": "Confirm deletion",
+ "ACCOUNT": "Disconnect"
+ },
+ "MESSAGE": {
+ "INBOX": "Are you sure to delete?",
+ "ACCOUNT": "Are you sure to disconnect?"
+ },
+ "CONFIRM_BUTTON_TEXT": {
+ "INBOX": "Yes, Delete",
+ "ACCOUNT": "Yes, Disconnect"
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Hook deleted successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "LIST": {
+ "FETCHING": "Fetching integration hooks",
+ "INBOX": "Inbox",
+ "ACTIONS": "Actions",
+ "DELETE": {
+ "BUTTON_TEXT": "Delete"
+ }
+ },
+ "ADD": {
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox"
+ },
+ "SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Integration hook added successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "Connect"
+ },
+ "DISCONNECT": {
+ "BUTTON_TEXT": "Disconnect"
+ },
+ "SIDEBAR_DESCRIPTION": {
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/integrations.json b/app/javascript/dashboard/i18n/locale/az/integrations.json
new file mode 100644
index 000000000..be0b09003
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/integrations.json
@@ -0,0 +1,1104 @@
+{
+ "INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Shopify İnteqrasiyasını Sil",
+ "MESSAGE": "Shopify inteqrasiyasını silmək istədiyinizə əminsiniz?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify Mağazasını Bağla",
+ "LABEL": "Mağaza URL-i",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Shopify mağazanızın myshopify.com URL-ni daxil edin",
+ "CANCEL": "Ləğv et",
+ "SUBMIT": "Mağazanı Bağla"
+ },
+ "ERROR": "Shopify-a qoşularkən xəta baş verdi. Zəhmət olmasa yenidən cəhd edin və ya problem davam edərsə dəstək xidməti ilə əlaqə saxlayın."
+ },
+ "HEADER": "İnteqrasiyalar",
+ "DESCRIPTION": "Chatwoot komandamızın səmərəliliyini artırmaq üçün bir neçə alət və xidmətlə inteqrasiya olunur. Sevdiyiniz tətbiqləri konfiqurasiya etmək üçün aşağıdakı siyahını araşdırın.",
+ "LEARN_MORE": "İnteqrasiyalar haqqında daha çox məlumat əldə edin",
+ "LOADING": "İnteqrasiyalar yüklənir",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain hesabınızda aktiv deyil.",
+ "CLICK_HERE_TO_CONFIGURE": "Konfiqurasiya etmək üçün bura klikləyin",
+ "LOADING_CONSOLE": "Captain Konsolu yüklənir...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain Konsolu yüklənmədi. Zəhmət olmasa səhifəni yeniləyin və yenidən cəhd edin."
+ },
+ "WEBHOOK": {
+ "SUBSCRIBED_EVENTS": "Abunə olunan hadisələr",
+ "LEARN_MORE": "Webhooklar haqqında daha çox məlumat əldə edin",
+ "SECRET": {
+ "LABEL": "Gizli",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Webhookunuz yaradıldı. Webhook imzalarını təsdiqləmək üçün aşağıdakı sirri istifadə edin. Zəhmət olmasa, indi kopyalayın — onu daha sonra webhook redaktə formasında da tapa bilərsiniz.",
+ "DONE": "Hazır"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
+ "FORM": {
+ "CANCEL": "Ləğv et",
+ "DESC": "Webhook hadisələri Chatwoot hesabınızda baş verənlər barədə real vaxt məlumatı verir. Zəhmət olmasa, çağırış üçün düzgün URL daxil edin.",
+ "SUBSCRIPTIONS": {
+ "LABEL": "Hadisələr",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Söhbət yaradıldı",
+ "CONVERSATION_STATUS_CHANGED": "Söhbət statusu dəyişdi",
+ "CONVERSATION_UPDATED": "Söhbət yeniləndi",
+ "MESSAGE_CREATED": "Mesaj yaradıldı",
+ "MESSAGE_UPDATED": "Mesaj yeniləndi",
+ "WEBWIDGET_TRIGGERED": "İstifadəçi tərəfindən canlı chat vidjeti açıldı",
+ "CONTACT_CREATED": "Əlaqə yaradıldı",
+ "CONTACT_UPDATED": "Əlaqə yeniləndi",
+ "CONVERSATION_TYPING_ON": "Söhbət Yazılır",
+ "CONVERSATION_TYPING_OFF": "Söhbət Yazması Söndürülüb",
+ "INBOX_UPDATED": "Inbox updated"
+ }
+ },
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
+ "END_POINT": {
+ "LABEL": "Webhook URL",
+ "PLACEHOLDER": "Nümunə: {webhookExampleURL}",
+ "ERROR": "Zəhmət olmasa düzgün URL daxil edin"
+ },
+ "EDIT_SUBMIT": "Webhook-u yenilə",
+ "ADD_SUBMIT": "Webhook yarat"
+ },
+ "TITLE": "Webhook",
+ "CONFIGURE": "Konfiqurasiya et",
+ "HEADER": "Webhook parametrləri",
+ "HEADER_BTN_TXT": "Yeni webhook əlavə et",
+ "LOADING": "Qoşulmuş webhooklar yüklənir",
+ "SEARCH_404": "Bu sorğuya uyğun element yoxdur",
+ "SIDEBAR_TXT": "Webhooklar
Webhooklar hər bir hesab üçün təyin edilə bilən HTTP çağırışlarıdır. Onlar Chatwoot-da mesaj yaradılması kimi hadisələr tərəfindən işə düşür. Bu hesab üçün bir neçə webhook yarada bilərsiniz.
Webhook yaratmaq üçün Yeni webhook əlavə et düyməsini klikləyin. Mövcud webhookları Sil düyməsini klikləyərək də silə bilərsiniz.
",
+ "LIST": {
+ "404": "Bu hesab üçün heç bir webhook konfiqurasiya edilməyib.",
+ "TITLE": "Webhookları idarə et",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook son nöqtəsi",
+ "ACTIONS": "Əməliyyatlar"
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Redaktə et",
+ "TITLE": "Webhook-u redaktə et",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhook konfiqurasiyası uğurla yeniləndi",
+ "ERROR_MESSAGE": "Woot Server-ə qoşulmaq mümkün olmadı, zəhmət olmasa sonra yenidən cəhd edin"
+ }
+ },
+ "ADD": {
+ "CANCEL": "Ləğv et",
+ "TITLE": "Yeni webhook əlavə et",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhook konfiqurasiyası uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Woot Server-ə qoşulmaq mümkün olmadı, zəhmət olmasa sonra yenidən cəhd edin"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Sil",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhook uğurla silindi",
+ "ERROR_MESSAGE": "Woot Server-ə qoşulmaq mümkün olmadı, zəhmət olmasa sonra yenidən cəhd edin"
+ },
+ "CONFIRM": {
+ "TITLE": "Silinməni təsdiqlə",
+ "MESSAGE": "Webhook-u silmək istədiyinizə əminsiniz? ({webhookURL})",
+ "YES": "Bəli, Sil ",
+ "NO": "Xeyr, Saxla"
+ }
+ }
+ },
+ "SLACK": {
+ "HEADER": "Slack",
+ "DELETE": "Sil",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "İnteqrasiyanı sil",
+ "MESSAGE": "İnteqrasiyanı silmək istədiyinizə əminsiniz? Bu, Slack iş sahənizdəki söhbətlərə girişin itirilməsinə səbəb olacaq."
+ },
+ "HELP_TEXT": {
+ "TITLE": "Slack inteqrasiyasından necə istifadə etmək olar?",
+ "BODY": "Bu inteqrasiya ilə bütün gələn söhbətləriniz Slack iş sahənizdəki ***{selectedChannelName}*** kanalına sinxronlaşdırılacaq. Müştəri söhbətlərinizə birbaşa həmin kanalda nəzarət edə və heç bir mesajı qaçırmazsınız.\n\nİnteqrasiyanın əsas xüsusiyyətləri bunlardır:\n\n**Slack daxilində söhbətlərə cavab verin:** ***{selectedChannelName}*** Slack kanalında söhbətə cavab vermək üçün sadəcə mesajınızı yazıb thread kimi göndərin. Bu, Chatwoot vasitəsilə müştəriyə cavab göndərəcək. Çox sadədir!\n\n**Şəxsi qeydlər yaradın:** Əgər cavab əvəzinə şəxsi qeyd əlavə etmək istəyirsinizsə, mesajınıza ***`note:`*** ilə başlayın. Bu halda mesajınız şəxsi qalacaq və müştəriyə görünməyəcək.\n\n**Agent profilini əlaqələndirin:** Əgər Slack-də cavab verən şəxsin Chatwoot-da eyni e-poçt ünvanı ilə agent profili varsa, cavablar avtomatik olaraq həmin agent profili ilə əlaqələndiriləcək. Bu, kim nə vaxt nə yazıb asanlıqla izləməyə imkan verir. Əks halda, agent profili əlaqələndirilməyibsə, cavablar müştəriyə bot profili adından göndəriləcək.",
+ "SELECTED": "seçilmiş"
+ },
+ "SELECT_CHANNEL": {
+ "OPTION_LABEL": "Kanal seçin",
+ "UPDATE": "Yenilə",
+ "BUTTON_TEXT": "Kanalı qoş",
+ "DESCRIPTION": "Slack iş sahəniz artıq Chatwoot ilə əlaqələndirilib. Lakin, inteqrasiya hazırda aktiv deyil. İnteqrasiyanı aktivləşdirmək və Chatwoot-a kanal qoşmaq üçün aşağıdakı düyməni basın.\n\n**Qeyd:** Əgər özəl kanalı qoşmağa çalışırsınızsa, bu addımı etməzdən əvvəl Chatwoot tətbiqini Slack kanalına əlavə edin.",
+ "ATTENTION_REQUIRED": "Diqqət tələb olunur",
+ "EXPIRED": "Slack inteqrasiyanızın müddəti bitib. Slack-də mesaj almağa davam etmək üçün inteqrasiyanı silin və iş sahənizi yenidən qoşun."
+ },
+ "UPDATE_ERROR": "İnteqrasiyanı yeniləməkdə səhv oldu, zəhmət olmasa yenidən cəhd edin",
+ "UPDATE_SUCCESS": "Kanal uğurla qoşuldu",
+ "FAILED_TO_FETCH_CHANNELS": "Slack-dən kanalları gətirməkdə səhv oldu, zəhmət olmasa yenidən cəhd edin"
+ },
+ "DYTE": {
+ "CLICK_HERE_TO_JOIN": "Qoşulmaq üçün bura klikləyin",
+ "LEAVE_THE_ROOM": "Otaqdan çıx",
+ "START_VIDEO_CALL_HELP_TEXT": "Müştəri ilə yeni video zəng başlat",
+ "JOIN_ERROR": "Zəngə qoşularkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "CREATE_ERROR": "Görüş linki yaradılarkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "OPEN_AI": {
+ "AI_ASSIST": "AI Yardımı",
+ "WITH_AI": " {option} süni intellekt ilə ",
+ "OPTIONS": {
+ "REPLY_SUGGESTION": "Cavab təklifi",
+ "SUMMARIZE": "Xülasə et",
+ "REPHRASE": "Yazını yaxşılaşdır",
+ "FIX_SPELLING_GRAMMAR": "Yazımı və qrammatikanı düzəlt",
+ "SHORTEN": "Qısalt",
+ "EXPAND": "Genişləndir",
+ "MAKE_FRIENDLY": "Mesaj tonunu səmimi et",
+ "MAKE_FORMAL": "Rəsmi ton istifadə et",
+ "SIMPLIFY": "Sadələşdir",
+ "CONFIDENT": "Əmin ton istifadə et",
+ "PROFESSIONAL": "Peşəkar ton istifadə et",
+ "CASUAL": "Rahat ton istifadə et",
+ "STRAIGHTFORWARD": "Düzgün ton istifadə et"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Peşəkar",
+ "CASUAL": "Rəsmi olmayan",
+ "STRAIGHTFORWARD": "Düz və açıq",
+ "CONFIDENT": "Əmin",
+ "FRIENDLY": "Səmimi"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Cavab təklifi ver",
+ "SUMMARIZE": "Söhbətin xülasəsini çıxarın",
+ "ASK_COPILOT": "Ask Copilot"
+ },
+ "ASSISTANCE_MODAL": {
+ "DRAFT_TITLE": "Qaralama məzmunu",
+ "GENERATED_TITLE": "Yaradılmış məzmun",
+ "AI_WRITING": "AI yazır",
+ "BUTTONS": {
+ "APPLY": "Bu təklifi istifadə et",
+ "CANCEL": "Ləğv et"
+ }
+ },
+ "CTA_MODAL": {
+ "TITLE": "OpenAI ilə inteqrasiya et",
+ "DESC": "Dashboard-unuzda OpenAI-nin GPT modelləri ilə inkişaf etmiş AI xüsusiyyətlərini gətirin. Başlamaq üçün OpenAI hesabınızdakı API açarını daxil edin.",
+ "KEY_PLACEHOLDER": "OpenAI API açarınızı daxil edin",
+ "BUTTONS": {
+ "NEED_HELP": "Kömək lazımdır?",
+ "DISMISS": "Bağla",
+ "FINISH": "Quraşdırmanı tamamla"
+ },
+ "DISMISS_MESSAGE": "OpenAI inteqrasiyasını istədiyiniz vaxt sonra quraşdıra bilərsiniz.",
+ "SUCCESS_MESSAGE": "OpenAI inteqrasiyası uğurla quruldu"
+ },
+ "TITLE": "AI ilə təkmilləşdirin",
+ "SUMMARY_TITLE": "AI ilə xülasə",
+ "REPLY_TITLE": "AI ilə cavab təklifi",
+ "SUBTITLE": "Cari layihənizə əsaslanaraq AI tərəfindən təkmilləşdirilmiş cavab yaradılacaq.",
+ "TONE": {
+ "TITLE": "Ton",
+ "OPTIONS": {
+ "PROFESSIONAL": "Peşəkar",
+ "FRIENDLY": "Səmimi"
+ }
+ },
+ "BUTTONS": {
+ "GENERATE": "Yarat",
+ "GENERATING": "Yaradılır...",
+ "CANCEL": "Ləğv et"
+ },
+ "GENERATE_ERROR": "Məzmunun işlənməsində səhv oldu, zəhmət olmasa OpenAI API açarınızı yoxlayın və yenidən cəhd edin"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Sil",
+ "API": {
+ "SUCCESS_MESSAGE": "İnteqrasiya uğurla silindi"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "Qoşul"
+ },
+ "DASHBOARD_APPS": {
+ "TITLE": "Panel Tətbiqləri",
+ "HEADER_BTN_TXT": "Yeni panel tətbiqi əlavə et",
+ "SIDEBAR_TXT": "Panel Tətbiqləri
Panel Tətbiqləri təşkilatlara Chatwoot paneli daxilində müştəri dəstəyi agentləri üçün kontekst təmin etmək məqsədilə tətbiq yerləşdirməyə imkan verir. Bu xüsusiyyət sizə tətbiqi müstəqil şəkildə yaratmağa və istifadəçi məlumatları, onların sifarişləri və ya əvvəlki ödəniş tarixçəsini təmin etmək üçün panelə yerləşdirməyə imkan verir.
Chatwoot panelində tətbiqinizi yerləşdirdikdə, tətbiqiniz söhbətin və əlaqənin kontekstini pəncərə hadisəsi kimi alacaq. Konteksti almaq üçün səhifənizdə message hadisəsi üçün dinləyici tətbiq edin.
Yeni panel tətbiqi əlavə etmək üçün 'Yeni panel tətbiqi əlavə et' düyməsini klikləyin.
",
+ "DESCRIPTION": "Panel Tətbiqləri təşkilatlara müştəri dəstəyi agentləri üçün kontekst təmin etmək məqsədilə panel daxilində tətbiq yerləşdirməyə imkan verir. Bu xüsusiyyət sizə tətbiqi müstəqil şəkildə yaratmağa və istifadəçi məlumatları, onların sifarişləri və ya əvvəlki ödəniş tarixçəsini təmin etmək üçün yerləşdirməyə imkan verir.",
+ "LEARN_MORE": "Dashboard Tətbiqləri haqqında daha çox məlumat əldə edin",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
+ "LIST": {
+ "404": "Bu hesabda hələ heç bir panel tətbiqi konfiqurasiya edilməyib",
+ "LOADING": "Panel tətbiqləri yüklənir...",
+ "TABLE_HEADER": {
+ "NAME": "Ad",
+ "ENDPOINT": "Son nöqtə",
+ "ACTIONS": "Əməliyyatlar"
+ },
+ "EDIT_TOOLTIP": "Tətbiqi redaktə et",
+ "DELETE_TOOLTIP": "Tətbiqi sil"
+ },
+ "FORM": {
+ "TITLE_LABEL": "Ad",
+ "TITLE_PLACEHOLDER": "Panel tətbiqiniz üçün ad daxil edin",
+ "TITLE_ERROR": "Panel tətbiqi üçün ad tələb olunur",
+ "URL_LABEL": "Son nöqtə",
+ "URL_PLACEHOLDER": "Tətbiqinizin yerləşdiyi son nöqtənin URL-sini daxil edin",
+ "URL_ERROR": "Etibarlı URL tələb olunur"
+ },
+ "CREATE": {
+ "HEADER": "Yeni panel tətbiqi əlavə et",
+ "FORM_SUBMIT": "Təsdiqlə",
+ "FORM_CANCEL": "Ləğv et",
+ "API_SUCCESS": "Panel tətbiqi uğurla konfiqurasiya edildi",
+ "API_ERROR": "Tətbiq yaradıla bilmədi. Zəhmət olmasa, sonra yenidən cəhd edin"
+ },
+ "UPDATE": {
+ "HEADER": "Panel tətbiqini redaktə et",
+ "FORM_SUBMIT": "Yenilə",
+ "FORM_CANCEL": "Ləğv et",
+ "API_SUCCESS": "Panel tətbiqi uğurla yeniləndi",
+ "API_ERROR": "Tətbiq yenilənə bilmədi. Zəhmət olmasa, sonra yenidən cəhd edin"
+ },
+ "DELETE": {
+ "CONFIRM_YES": "Bəli, sil",
+ "CONFIRM_NO": "Xeyr, saxla",
+ "TITLE": "Silinməni təsdiqlə",
+ "MESSAGE": "{appName} tətbiqini silmək istədiyinizə əminsiniz?",
+ "API_SUCCESS": "Panel tətbiqi uğurla silindi",
+ "API_ERROR": "Tətbiq silinə bilmədi. Zəhmət olmasa, sonra yenidən cəhd edin"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear məsələ yarat/Qoş",
+ "LOADING": "Linear məsələlər yüklənir...",
+ "LOADING_ERROR": "Linear məsələləri gətirərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "CREATE": "Yarat",
+ "LINK": {
+ "SEARCH": "Məsələləri axtar",
+ "SELECT": "Məsələ seç",
+ "TITLE": "Qoş",
+ "EMPTY_LIST": "Linear məsələ tapılmadı",
+ "LOADING": "Yüklənir",
+ "ERROR": "Linear məsələləri gətirərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "LINK_SUCCESS": "Məsələ uğurla qoşuldu",
+ "LINK_ERROR": "Məsələnin qoşulmasında xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "LINK_TITLE": "{name} ilə söhbət (#{conversationId})"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linear məsələ yarat/qoy",
+ "DESCRIPTION": "Söhbətlərdən Linear məsələlər yaradın və ya mövcud olanları qoşaraq asan izləmə təmin edin.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Başlıq",
+ "PLACEHOLDER": "Başlıq daxil edin",
+ "REQUIRED_ERROR": "Başlıq tələb olunur"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Təsviri daxil edin"
+ },
+ "TEAM": {
+ "LABEL": "Komanda",
+ "PLACEHOLDER": "Komandanı seçin",
+ "SEARCH": "Komanda axtar",
+ "REQUIRED_ERROR": "Komanda tələb olunur"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Təyin olunan",
+ "PLACEHOLDER": "Təyinatı seçin",
+ "SEARCH": "Təyinat axtar"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritet",
+ "PLACEHOLDER": "Prioriteti seçin",
+ "SEARCH": "Prioritet axtar"
+ },
+ "LABEL": {
+ "LABEL": "Etiket",
+ "PLACEHOLDER": "Etiketi seçin",
+ "SEARCH": "Etiket axtar"
+ },
+ "STATUS": {
+ "LABEL": "Vəziyyət",
+ "PLACEHOLDER": "Statusu seçin",
+ "SEARCH": "Status axtar"
+ },
+ "PROJECT": {
+ "LABEL": "Layihə",
+ "PLACEHOLDER": "Layihəni seçin",
+ "SEARCH": "Layihə axtar"
+ }
+ },
+ "CREATE": "Yarat",
+ "CANCEL": "Ləğv et",
+ "CREATE_SUCCESS": "Məsələ uğurla yaradıldı",
+ "CREATE_ERROR": "Məsələnin yaradılmasında xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "LOADING_TEAM_ERROR": "Komandalar gətirilərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "LOADING_TEAM_ENTITIES_ERROR": "Komanda vahidləri gətirilərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "ISSUE": {
+ "STATUS": "Vəziyyət",
+ "PRIORITY": "Prioritet",
+ "ASSIGNEE": "Təyin olunan",
+ "LABELS": "Etiketlər",
+ "CREATED_AT": "{createdAt} tarixində yaradılıb"
+ },
+ "UNLINK": {
+ "TITLE": "Bağlantını kəsmək",
+ "SUCCESS": "Məsələ uğurla bağlantısı kəsildi",
+ "ERROR": "Məsələnin bağlantısını kəsməkdə xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "NO_LINKED_ISSUES": "Bağlı məsələ tapılmadı",
+ "DELETE": {
+ "TITLE": "İnteqrasiyanı silmək istədiyinizə əminsiniz?",
+ "MESSAGE": "İnteqrasiyanı silmək istədiyinizə əminsiniz?",
+ "CONFIRM": "Bəli, sil",
+ "CANCEL": "Ləğv et"
+ },
+ "CTA": {
+ "TITLE": "Linear-a qoşul",
+ "AGENT_DESCRIPTION": "Linear iş sahəsi qoşulmayıb. Bu inteqrasiyadan istifadə etmək üçün administratorunuzdan bir iş sahəsi qoşmasını xahiş edin.",
+ "DESCRIPTION": "Linear iş sahəsi qoşulmayıb. Bu inteqrasiyadan istifadə etmək üçün iş sahənizi qoşmaq məqsədilə aşağıdakı düyməyə klikləyin.",
+ "BUTTON_TEXT": "Linear iş sahəsini qoşun"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Notion inteqrasiyasını silmək istədiyinizə əminsiniz?",
+ "MESSAGE": "Bu inteqrasiyanı silmək Notion iş sahənizə girişinizi itirəcək və bütün əlaqəli funksionallığı dayandıracaq.",
+ "CONFIRM": "Bəli, sil",
+ "CANCEL": "Ləğv et"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Daha ətraflı",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Köməkçilər",
+ "SWITCH_ASSISTANT": "Köməkçilər arasında keçid edin",
+ "NEW_ASSISTANT": "Köməkçi yaradın",
+ "EMPTY_LIST": "Assistent tapılmadı, başlamaq üçün birini yaradın"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Bu təklifləri yoxlayın",
+ "PANEL_TITLE": "Copilot ilə başlayın",
+ "KICK_OFF_MESSAGE": "Qısa xülasəyə ehtiyacınız var, əvvəlki söhbətlərə baxmaq istəyirsiniz, yoxsa daha yaxşı cavab hazırlamaq istəyirsiniz? Copilot işləri sürətləndirmək üçün buradadır.",
+ "SEND_MESSAGE": "Mesaj göndərin...",
+ "EMPTY_MESSAGE": "Cavab yaradılarkən xəta baş verdi. Zəhmət olmasa yenidən cəhd edin.",
+ "LOADER": "Captain düşünür",
+ "YOU": "Siz",
+ "USE": "Bunu istifadə et",
+ "RESET": "Sıfırla",
+ "SHOW_STEPS": "Addımları göstər",
+ "SELECT_ASSISTANT": "Köməkçini seçin",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Bu söhbəti xülasə et",
+ "CONTENT": "Müştəri və dəstək agenti arasında müzakirə olunan əsas məqamları xülasə et, müştərinin narahatlıqları, sualları və agentin verdiyi həll və ya cavabları daxil et"
+ },
+ "SUGGEST": {
+ "LABEL": "Cavab təklif et",
+ "CONTENT": "Müştərinin sorğusunu analiz et və onların narahatlıqlarını və ya suallarını effektiv şəkildə cavablandıran bir cavab hazırla. Cavabın aydın, qısa və faydalı məlumat verdiyinə əmin ol."
+ },
+ "RATE": {
+ "LABEL": "Bu söhbəti qiymətləndir",
+ "CONTENT": "Söhbəti nəzərdən keçir və müştərinin ehtiyaclarını nə dərəcədə qarşıladığını yoxla. Ton, aydınlıq və effektivliyə əsaslanaraq 5 üzərindən qiymət ver."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Yüksək prioritetli söhbətlər",
+ "CONTENT": "Bütün yüksək prioritetli açıq söhbətlərin xülasəsini ver. Söhbət ID-si, müştərinin adı (əgər varsa), son mesajın məzmunu və təyin olunmuş agenti daxil et. Əgər uyğun olarsa, statusa görə qrupla."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Əlaqələri siyahıla",
+ "CONTENT": "Ən yaxşı 10 əlaqənin siyahısını göstər. Ad, e-poçt və ya telefon nömrəsi (əgər varsa), son görülmə vaxtı, etiketlər (əgər varsa) daxil et."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Siz",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Mesajınızı yazın...",
+ "HEADER": "Sınaq sahəsi",
+ "DESCRIPTION": "Bu sınaq sahəsində köməkçinizə mesaj göndərin və cavabların dəqiq, sürətli və istədiyiniz tonda olub-olmadığını yoxlayın.",
+ "CREDIT_NOTE": "Burada göndərilən mesajlar Captain kreditlərinizdən çıxılacaq."
+ },
+ "PAYWALL": {
+ "TITLE": "Captain AI istifadə etmək üçün yüksəldin",
+ "AVAILABLE_ON": "Captain pulsuz planda mövcud deyil.",
+ "UPGRADE_PROMPT": "Assistentlərimizə, copilot və daha çoxuna çıxış əldə etmək üçün planınızı yüksəldin.",
+ "UPGRADE_NOW": "İndi yüksəlt",
+ "CANCEL_ANYTIME": "Planınızı istənilən vaxt dəyişə və ya ləğv edə bilərsiniz"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI yalnız Enterprise planlarında mövcuddur.",
+ "UPGRADE_PROMPT": "Assistentlərimizə, copilot və daha çoxuna çıxış əldə etmək üçün planınızı yüksəldin.",
+ "ASK_ADMIN": "Təkmilləşdirmə üçün administratorunuzla əlaqə saxlayın."
+ },
+ "BANNER": {
+ "RESPONSES": "Cavab limitinizin 80%-dən çoxunu istifadə etmisiniz. Captain AI-dan istifadə etməyə davam etmək üçün zəhmət olmasa tarifinizi yüksəldin.",
+ "DOCUMENTS": "Sənəd limiti çatdı. Captain AI-dan istifadəni davam etdirmək üçün yüksəldin."
+ },
+ "FORM": {
+ "CANCEL": "Ləğv et",
+ "CREATE": "Yarat",
+ "EDIT": "Yenilə"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Köməkçilər",
+ "NO_ASSISTANTS_AVAILABLE": "Hesabınızda heç bir köməkçi yoxdur.",
+ "ADD_NEW": "Yeni köməkçi yaradın",
+ "DELETE": {
+ "TITLE": "Assistent silinsin?",
+ "DESCRIPTION": "Bu əməliyyat geri qaytarıla bilməz. Bu assistenti silmək onu bütün bağlı poçt qutularından siləcək və yaradılmış bütün bilikləri daimi olaraq siləcək.",
+ "CONFIRM": "Bəli, sil",
+ "SUCCESS_MESSAGE": "Assistent uğurla silindi",
+ "ERROR_MESSAGE": "Köməkçi silinərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "FORM_DESCRIPTION": "Aşağıdakı detalları doldurun: assistentinizin adını, məqsədini və dəstək verəcəyi məhsulu qeyd edin.",
+ "CREATE": {
+ "TITLE": "Assistent yarat",
+ "SUCCESS_MESSAGE": "Assistent uğurla yaradıldı",
+ "ERROR_MESSAGE": "Köməkçi yaradılarkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "FORM": {
+ "UPDATE": "Yenilə",
+ "SECTIONS": {
+ "BASIC_INFO": "Əsas Məlumat",
+ "SYSTEM_MESSAGES": "Sistem Mesajları",
+ "INSTRUCTIONS": "Təlimatlar",
+ "FEATURES": "Xüsusiyyətlər",
+ "TOOLS": "Alətlər"
+ },
+ "NAME": {
+ "LABEL": "Ad",
+ "PLACEHOLDER": "Assistent adını daxil edin",
+ "ERROR": "Ad tələb olunur"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Cavab Temperaturu",
+ "DESCRIPTION": "Assistentin cavablarının nə qədər yaradıcı və ya məhdud olacağını tənzimləyin. Aşağı dəyərlər daha fokuslanmış və deterministik cavablar verir, yüksək dəyərlər isə daha yaradıcı və müxtəlif nəticələr verir."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Assistent təsvirini daxil edin",
+ "ERROR": "Təsvir tələb olunur"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Məhsulun Adı",
+ "PLACEHOLDER": "Məhsul adını daxil edin",
+ "ERROR": "Məhsulun adı tələb olunur"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Salamlaşma Mesajı",
+ "PLACEHOLDER": "Salamlaşma mesajını daxil edin"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Transfer Mesajı",
+ "PLACEHOLDER": "Transfer mesajını daxil edin"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Həll mesajı",
+ "PLACEHOLDER": "Həll mesajını daxil edin"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Təlimatlar",
+ "PLACEHOLDER": "Assistent üçün təlimatları daxil edin"
+ },
+ "FEATURES": {
+ "TITLE": "Xüsusiyyətlər",
+ "ALLOW_CONVERSATION_FAQS": "Həll olunmuş söhbətlərdən FAQ yaradın",
+ "ALLOW_MEMORIES": "Müştəri ilə ünsiyyətdən əsas detalları yadda saxla.",
+ "ALLOW_CITATIONS": "Cavablarda mənbə istinadlarını daxil et",
+ "ALLOW_CONTACT_ATTRIBUTES": "Əlaqə məlumatlarına çıxışa icazə ver"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Assistenti yenilə",
+ "SUCCESS_MESSAGE": "Assistent uğurla yeniləndi",
+ "ERROR_MESSAGE": "Köməkçi yenilənərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin.",
+ "NOT_FOUND": "Köməkçi tapılmadı. Zəhmət olmasa yenidən cəhd edin."
+ },
+ "SETTINGS": {
+ "HEADER": "Ayarlar",
+ "BASIC_SETTINGS": {
+ "TITLE": "Əsas ayarlar",
+ "DESCRIPTION": "Assistentin söhbəti bitirərkən və ya insana ötürərkən nə deyəcəyini fərdiləşdirin."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "Sistem ayarları",
+ "DESCRIPTION": "Assistentin söhbəti bitirərkən və ya insana ötürərkən nə deyəcəyini fərdiləşdirin."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "Əyləncəli Hissə",
+ "DESCRIPTION": "Assistentə daha çox nəzarət əlavə edin. (vizual olaraq bir hekayə kimi: Sorğu məhdudiyyəti → ssenarilər → nəticə) İstifadəçini bunlardan istifadə etməyə təşviq edir.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Məhdudiyyətlər",
+ "DESCRIPTION": "Hər şeyin nəzarətdə qalmasını təmin edir—assistentinizin yalnız istədiyiniz suallara cavab verməsini təmin edir, mövzudan kənar və ya icazəsiz heç nə yoxdur."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Cavab qaydaları",
+ "DESCRIPTION": "Assistentinizin cavablarının tərzi və quruluşu—aydın və dostcasına? Qısa və yığcam? Ətraflı və rəsmi?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Assistenti Sil",
+ "DESCRIPTION": "Bu əməliyyat geri qaytarıla bilməz. Bu assistenti silmək onu bütün bağlı poçt qutularından siləcək və yaradılmış bütün bilikləri daimi olaraq siləcək.",
+ "BUTTON_TEXT": "{assistantName} sil"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Assistenti redaktə et",
+ "DELETE_ASSISTANT": "Assistenti sil",
+ "VIEW_CONNECTED_INBOXES": "Bağlı poçt qutularına bax"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Assistent yoxdur",
+ "SUBTITLE": "İstifadəçilərinizə sürətli və dəqiq cavablar vermək üçün köməkçi yaradın. O, yardım məqalələrinizdən və əvvəlki söhbətlərdən öyrənə bilər.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Assistent",
+ "NOTE": "Captain Assistent birbaşa müştərilərlə ünsiyyət qurur, kömək sənədlərinizdən və keçmiş söhbətlərdən öyrənir və dərhal, dəqiq cavablar verir. O, ilkin sorğuları idarə edir və lazım olduqda agentə ötürür."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Məhdudiyyətlər",
+ "DESCRIPTION": "Hər şeyin nəzarətdə qalmasını təmin edir—assistentinizin yalnız istədiyiniz suallara cavab verməsini təmin edir, mövzudan kənar və ya icazəsiz heç nə yoxdur.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} element seçildi | {count} element seçildi",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "UNSELECT_ALL": "Hamısını seçmə ({count})",
+ "BULK_DELETE_BUTTON": "Sil"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Məhdudiyyət nümunələri",
+ "ADD": "Hamısını əlavə et",
+ "ADD_SINGLE": "Bunu əlavə et",
+ "SAVE": "Əlavə et və yadda saxla (↵)",
+ "PLACEHOLDER": "Başqa bir məhdudiyyət yazın..."
+ },
+ "NEW": {
+ "TITLE": "Məhdudiyyət əlavə et",
+ "CREATE": "Yarat",
+ "CANCEL": "Ləğv et",
+ "PLACEHOLDER": "Başqa bir məhdudiyyət yazın...",
+ "TEST_ALL": "Hamısını yoxla"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Axtar..."
+ },
+ "EMPTY_MESSAGE": "Məhdudiyyət tapılmadı. Başlamaq üçün yaradın və ya nümunələr əlavə edin.",
+ "SEARCH_EMPTY_MESSAGE": "Axtarış üçün məhdudiyyət tapılmadı.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Məhdudiyyətlər uğurla əlavə olundu",
+ "ERROR": "Məhdudiyyətlər əlavə olunarkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "UPDATE": {
+ "SUCCESS": "Məhdudiyyətlər uğurla yeniləndi",
+ "ERROR": "Məhdudiyyətlər yenilənərkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "DELETE": {
+ "SUCCESS": "Məhdudiyyətlər uğurla silindi",
+ "ERROR": "Məhdudiyyətlər silinərkən xəta baş verdi, yenidən cəhd edin."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Cavab qaydaları",
+ "DESCRIPTION": "Assistentinizin cavablarının tərzi və quruluşu—aydın və dostcasına? Qısa və yığcam? Ətraflı və rəsmi?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} element seçildi | {count} element seçildi",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "UNSELECT_ALL": "Hamısını seçmə ({count})",
+ "BULK_DELETE_BUTTON": "Sil"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Cavab qaydası nümunələri",
+ "ADD": "Hamısını əlavə et",
+ "ADD_SINGLE": "Bunu əlavə et",
+ "SAVE": "Əlavə et və yadda saxla (↵)",
+ "PLACEHOLDER": "Başqa bir cavab qaydası yazın..."
+ },
+ "NEW": {
+ "TITLE": "Cavab qaydası əlavə et",
+ "CREATE": "Yarat",
+ "CANCEL": "Ləğv et",
+ "PLACEHOLDER": "Başqa bir cavab qaydası yazın...",
+ "TEST_ALL": "Hamısını yoxla"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Axtar..."
+ },
+ "EMPTY_MESSAGE": "Cavab qaydası tapılmadı. Başlamaq üçün yaradın və ya nümunələr əlavə edin.",
+ "SEARCH_EMPTY_MESSAGE": "Axtarış üçün cavab qaydası tapılmadı.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Cavab qaydaları uğurla əlavə olundu",
+ "ERROR": "Cavab qaydaları əlavə olunarkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "UPDATE": {
+ "SUCCESS": "Cavab qaydaları uğurla yeniləndi",
+ "ERROR": "Cavab qaydaları yenilənərkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "DELETE": {
+ "SUCCESS": "Cavab qaydaları uğurla silindi",
+ "ERROR": "Cavab qaydaları silinərkən xəta baş verdi, yenidən cəhd edin."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Ssenarilər",
+ "DESCRIPTION": "Assistentinizə bir az kontekst verin—məsələn, “istifadəçi ilişibsə nə etməli”, ya da “geri qaytarma sorğusu zamanı necə davranmalı.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} element seçildi | {count} element seçildi",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "UNSELECT_ALL": "Hamısını seçmə ({count})",
+ "BULK_DELETE_BUTTON": "Sil"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Ssenari nümunələri",
+ "ADD": "Hamısını əlavə et",
+ "ADD_SINGLE": "Bunu əlavə et",
+ "TOOLS_USED": "İstifadə olunan alətlər :"
+ },
+ "NEW": {
+ "CREATE": "Ssenari əlavə et",
+ "TITLE": "Ssenari yarat",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Başlıq",
+ "PLACEHOLDER": "Ssenari üçün ad daxil edin",
+ "ERROR": "Ssenari adı tələb olunur"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Bu ssenarinin necə və harada istifadə olunacağını təsvir edin",
+ "ERROR": "Ssenari təsviri tələb olunur"
+ },
+ "INSTRUCTION": {
+ "LABEL": "Necə idarə olunacaq",
+ "PLACEHOLDER": "Bu ssenarinin necə və harada idarə olunacağını təsvir edin",
+ "ERROR": "Ssenari məzmunu tələb olunur"
+ },
+ "CREATE": "Yarat",
+ "CANCEL": "Ləğv et"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Ləğv et",
+ "UPDATE": "Dəyişiklikləri yenilə"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Axtar..."
+ },
+ "EMPTY_MESSAGE": "Ssenari tapılmadı. Başlamaq üçün yaradın və ya nümunələr əlavə edin.",
+ "SEARCH_EMPTY_MESSAGE": "Axtarış üçün ssenari tapılmadı.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Ssenarilər uğurla əlavə olundu",
+ "ERROR": "Ssenarilər əlavə olunarkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "UPDATE": {
+ "SUCCESS": "Ssenarilər uğurla yeniləndi",
+ "ERROR": "Ssenarilər yenilənərkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "DELETE": {
+ "SUCCESS": "Ssenarilər uğurla silindi",
+ "ERROR": "Ssenarilər silinərkən xəta baş verdi, yenidən cəhd edin."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Sənədlər",
+ "ADD_NEW": "Yeni sənəd yarat",
+ "SELECTED": "{count} seçildi",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "UNSELECT_ALL": "Hamısını seçmə ({count})",
+ "BULK_DELETE_BUTTON": "Sil",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Sənədlər silinsin?",
+ "DESCRIPTION": "Seçilmiş sənədləri silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
+ "CONFIRM": "Bəli, hamısını sil",
+ "SUCCESS_MESSAGE": "Sənədlər uğurla silindi",
+ "ERROR_MESSAGE": "Sənədlər silinərkən xəta baş verdi, yenidən cəhd edin."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Əlaqəli FAQ-lar",
+ "DESCRIPTION": "Bu FAQ-lar birbaşa sənəddən yaradılıb."
+ },
+ "FORM_DESCRIPTION": "Sənədi bilik mənbəyi kimi əlavə etmək üçün onun URL-ni daxil edin və əlaqələndiriləcək assistenti seçin.",
+ "CREATE": {
+ "TITLE": "Sənəd əlavə et",
+ "SUCCESS_MESSAGE": "Sənəd uğurla yaradıldı",
+ "ERROR_MESSAGE": "Sənəd yaradılarkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Sənəd növü",
+ "URL": "URL",
+ "PDF": "PDF Faylı"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Sənədin URL-ni daxil edin",
+ "ERROR": "Sənəd üçün düzgün URL daxil edin"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF Faylı",
+ "CHOOSE_FILE": "PDF faylını seçin",
+ "ERROR": "PDF fayl seçin",
+ "HELP_TEXT": "Maksimum fayl ölçüsü: 10MB",
+ "INVALID_TYPE": "Düzgün PDF fayl seçin",
+ "TOO_LARGE": "Fayl ölçüsü 10MB limiti aşır"
+ },
+ "NAME": {
+ "LABEL": "Sənədin Adı (İstəyə bağlı)",
+ "PLACEHOLDER": "Sənəd üçün ad daxil edin"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Sənəd silinsin?",
+ "DESCRIPTION": "Bu əməliyyat geri qaytarıla bilməz. Bu sənədi silmək bütün yaradılmış bilikləri daimi olaraq siləcək.",
+ "CONFIRM": "Bəli, sil",
+ "SUCCESS_MESSAGE": "Sənəd uğurla silindi",
+ "ERROR_MESSAGE": "Sənəd silinərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Əlaqəli cavablara bax",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Sənədi sil"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Sənəd yoxdur",
+ "SUBTITLE": "Sənədlər assistentiniz tərəfindən FAQ-lar yaratmaq üçün istifadə olunur. Assistentinizə kontekst vermək üçün sənədləri əlavə edə bilərsiniz.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Sənəd",
+ "NOTE": "Captain-da sənəd assistent üçün bilik mənbəyi rolunu oynayır. Kömək mərkəzinizi və ya təlimatları bağlayaraq, Captain məzmunu analiz edə və müştəri sorğuları üçün dəqiq cavablar verə bilər."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Alətlər",
+ "ADD_NEW": "Yeni alət yarat",
+ "SOFT_LIMIT_WARNING": "10-dan çox alət olması assistentin düzgün alət seçmə ehtimalını azalda bilər. Daha yaxşı nəticə üçün istifadə olunmayan alətləri silməyi düşünün.",
+ "EMPTY_STATE": {
+ "TITLE": "Xüsusi alət yoxdur",
+ "SUBTITLE": "Assistentinizi xarici API və servislərlə birləşdirmək üçün xüsusi alətlər yaradın, beləliklə məlumat əldə edə və sizin adınızdan əməliyyatlar yerinə yetirə bilər.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Xüsusi Alətlər",
+ "NOTE": "Xüsusi alətlər assistentinizə xarici API və servislərlə qarşılıqlı əlaqə qurmağa imkan verir. Məlumat əldə etmək, əməliyyatlar yerinə yetirmək və ya mövcud sistemlərinizlə inteqrasiya etmək üçün alətlər yaradın və assistentin imkanlarını artırın."
+ }
+ },
+ "FORM_DESCRIPTION": "Xüsusi alətinizi xarici API-lərlə birləşdirmək üçün konfiqurasiya edin",
+ "OPTIONS": {
+ "EDIT_TOOL": "Aləti redaktə et",
+ "DELETE_TOOL": "Aləti sil"
+ },
+ "CREATE": {
+ "TITLE": "Xüsusi Alət Yarat",
+ "SUCCESS_MESSAGE": "Xüsusi alət uğurla yaradıldı",
+ "ERROR_MESSAGE": "Xüsusi alət yaradılmadı"
+ },
+ "EDIT": {
+ "TITLE": "Xüsusi Aləti Redaktə Et",
+ "SUCCESS_MESSAGE": "Xüsusi alət uğurla yeniləndi",
+ "ERROR_MESSAGE": "Xüsusi alət yenilənmədi"
+ },
+ "DELETE": {
+ "TITLE": "Xüsusi Aləti Sil",
+ "DESCRIPTION": "Bu xüsusi aləti silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
+ "CONFIRM": "Bəli, sil",
+ "SUCCESS_MESSAGE": "Xüsusi alət uğurla silindi",
+ "ERROR_MESSAGE": "Xüsusi alət silinmədi"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Bağlantını yoxla",
+ "SUCCESS": "Endpoint HTTP {status} qaytardı",
+ "ERROR": "Bağlantı uğursuz oldu",
+ "DISABLED_HINT": "Test yalnız şablonsuz və ya sorğu gövdəsi olmayan endpoint-lər üçün mümkündür."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Alətin Adı",
+ "PLACEHOLDER": "Sifariş axtarışı",
+ "ERROR": "Alət adı tələb olunur",
+ "MAX_LENGTH_ERROR": "Alət adı maksimum {max} simvol olmalıdır"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir",
+ "PLACEHOLDER": "Sifariş ID-si ilə sifariş detalları axtarılır"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Metod"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Düzgün URL tələb olunur"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Avtorizasiya növü"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Heç biri",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Açarı"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Bearer tokeninizi daxil edin",
+ "USERNAME": "İstifadəçi adı",
+ "USERNAME_PLACEHOLDER": "İstifadəçi adını daxil edin",
+ "PASSWORD": "Şifrə",
+ "PASSWORD_PLACEHOLDER": "Şifrəni daxil edin",
+ "API_KEY": "Başlıq Adı",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Başlıq Dəyəri",
+ "API_VALUE_PLACEHOLDER": "API açar dəyərini daxil edin"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parametrlər",
+ "HELP_TEXT": "İstifadəçi sorğularından çıxarılacaq parametrləri müəyyən edin"
+ },
+ "ADD_PARAMETER": "Parametr əlavə et",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parametr adı (məs., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Növ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "Sətir",
+ "NUMBER": "Rəqəm",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Obyekt"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Parametrin təsviri"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Tələb olunur"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Sorğu Gövdəsi Şablonu (İstəyə bağlı)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Cavab Şablonu (İstəyə bağlı)",
+ "PLACEHOLDER": "Sifariş {'{{'} order_id {'}}'} statusu: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parametr adı tələb olunur"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ-lar",
+ "PENDING_FAQS": "Gözləyən FAQ-lar",
+ "ADD_NEW": "Yeni FAQ yarat",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Söhbət #{id}"
+ },
+ "SELECTED": "{count} seçildi",
+ "SELECT_ALL": "Hamısını seç ({count})",
+ "UNSELECT_ALL": "Hamısını seçmə ({count})",
+ "SEARCH_PLACEHOLDER": "FAQ-larda axtar...",
+ "BULK_APPROVE_BUTTON": "Təsdiqlə",
+ "BULK_DELETE_BUTTON": "Sil",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQ-lar uğurla təsdiqləndi",
+ "ERROR_MESSAGE": "FAQ-lar təsdiqlənərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "BULK_DELETE": {
+ "TITLE": "FAQ-lar silinsin?",
+ "DESCRIPTION": "Seçilmiş FAQ-ları silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
+ "CONFIRM": "Bəli, hamısını sil",
+ "SUCCESS_MESSAGE": "FAQ-lar uğurla silindi",
+ "ERROR_MESSAGE": "FAQ-lar silinərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "DELETE": {
+ "TITLE": "FAQ silinsin?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Bəli, sil",
+ "SUCCESS_MESSAGE": "FAQ uğurla silindi",
+ "ERROR_MESSAGE": "FAQ silinərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistent: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Hamısı"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Gözləyir",
+ "APPROVED": "Təsdiqlənib",
+ "ALL": "Hamısı"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain müştərilərinizin axtardığı bəzi FAQ-ları tapdı.",
+ "ACTION": "Baxmaq üçün bura klikləyin"
+ },
+ "FORM_DESCRIPTION": "Bilik bazasına sual və ona uyğun cavabı əlavə edin, sonra onun əlaqələndiriləcəyi köməkçini seçin.",
+ "CREATE": {
+ "TITLE": "FAQ əlavə et",
+ "SUCCESS_MESSAGE": "Cavab uğurla əlavə olundu.",
+ "ERROR_MESSAGE": "Cavab əlavə olunarkən xəta baş verdi. Yenidən cəhd edin."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Sual",
+ "PLACEHOLDER": "Sualı buraya daxil edin",
+ "ERROR": "Düzgün sual daxil edin."
+ },
+ "ANSWER": {
+ "LABEL": "Cavab",
+ "PLACEHOLDER": "Cavabı buraya daxil edin",
+ "ERROR": "Düzgün cavab daxil edin."
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ-ı yenilə",
+ "SUCCESS_MESSAGE": "FAQ uğurla yeniləndi",
+ "ERROR_MESSAGE": "FAQ yenilənərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin.",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ təsdiqləndi"
+ },
+ "OPTIONS": {
+ "APPROVE": "Təsdiqlə",
+ "EDIT_RESPONSE": "Redaktə et",
+ "DELETE_RESPONSE": "Sil"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "FAQ tapılmadı",
+ "NO_PENDING_TITLE": "Baxılacaq başqa gözləyən FAQ yoxdur",
+ "SUBTITLE": "FAQ-lar köməkçinizə müştərilərinizdən gələn suallara sürətli və dəqiq cavablar verməyə kömək edir. Onlar məzmununuzdan avtomatik yaradına və ya əl ilə əlavə edilə bilər.",
+ "CLEAR_SEARCH": "Aktiv filtrləri təmizlə",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain FAQ",
+ "NOTE": "Captain FAQ tez-tez verilən və ya bilik bazasında olmayan müştəri suallarını aşkar edir və uyğun FAQ-lar yaradır. Hər təklifi nəzərdən keçirə və təsdiqləyə və ya rədd edə bilərsiniz."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Bağlı Poçt Qutuları",
+ "ADD_NEW": "Yeni gələn qutu qoşun",
+ "OPTIONS": {
+ "DISCONNECT": "Bağlantını kəs"
+ },
+ "DELETE": {
+ "TITLE": "Gələn qutunu ayırmaq istədiyinizə əminsiniz?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Bəli, sil",
+ "SUCCESS_MESSAGE": "Poçt qutusu uğurla bağlantıdan çıxarıldı.",
+ "ERROR_MESSAGE": "Gələn qutu ayrılarkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin."
+ },
+ "FORM_DESCRIPTION": "Köməkçi ilə əlaqələndirmək üçün gələn qutunu seçin.",
+ "CREATE": {
+ "TITLE": "Poçt qutusu qoş",
+ "SUCCESS_MESSAGE": "Poçt qutusu uğurla qoşuldu.",
+ "ERROR_MESSAGE": "Gələn qutu qoşularkən xəta baş verdi. Zəhmət olmasa yenidən cəhd edin."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Gələn qutu",
+ "PLACEHOLDER": "Köməkçini yerləşdirmək üçün gələn qutunu seçin.",
+ "ERROR": "Poçt qutusu seçimi tələb olunur."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Bağlı poçt qutusu yoxdur",
+ "SUBTITLE": "Poçt qutusu qoşmaq assistentin müştərilərinizin ilkin suallarını idarə etməsinə imkan verir və sonra sizi işə cəlb edir."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json
new file mode 100644
index 000000000..96e272e46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/labelsMgmt.json
@@ -0,0 +1,89 @@
+{
+ "LABEL_MGMT": {
+ "HEADER": "Labels",
+ "HEADER_BTN_TXT": "Add label",
+ "LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
+ "SEARCH_404": "There are no items matching this query",
+ "LIST": {
+ "404": "There are no labels available in this account.",
+ "TITLE": "Manage labels",
+ "DESC": "Labels let you group the conversations together.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Label Name",
+ "PLACEHOLDER": "Label name",
+ "REQUIRED_ERROR": "Label name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Label Description"
+ },
+ "COLOR": {
+ "LABEL": "Color"
+ },
+ "SHOW_ON_SIDEBAR": {
+ "LABEL": "Show label on sidebar"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "SUGGESTIONS": {
+ "TOOLTIP": {
+ "SINGLE_SUGGESTION": "Add label to conversation",
+ "MULTIPLE_SUGGESTION": "Select this label",
+ "DESELECT": "Deselect label",
+ "DISMISS": "Dismiss suggestion"
+ },
+ "POWERED_BY": "Chatwoot AI",
+ "DISMISS": "Dismiss",
+ "ADD_SELECTED_LABELS": "Add selected labels",
+ "ADD_SELECTED_LABEL": "Add selected label",
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
+ },
+ "ADD": {
+ "TITLE": "Add label",
+ "DESC": "Labels let you group the conversations together.",
+ "API": {
+ "SUCCESS_MESSAGE": "Label added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit label",
+ "API": {
+ "SUCCESS_MESSAGE": "Label updated successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Label deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/login.json b/app/javascript/dashboard/i18n/locale/az/login.json
new file mode 100644
index 000000000..061284247
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/login.json
@@ -0,0 +1,41 @@
+{
+ "LOGIN": {
+ "TITLE": "Login to Chatwoot",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "example{'@'}companyname.com",
+ "ERROR": "Please enter a valid email address"
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Login successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
+ "UNAUTH": "Username or password is incorrect. Please try again."
+ },
+ "OAUTH": {
+ "GOOGLE_LOGIN": "Login with Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
+ "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ },
+ "FORGOT_PASSWORD": "Forgot your password?",
+ "CREATE_NEW_ACCOUNT": "Create a new account",
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/macros.json b/app/javascript/dashboard/i18n/locale/az/macros.json
new file mode 100644
index 000000000..e51975921
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/macros.json
@@ -0,0 +1,121 @@
+{
+ "MACROS": {
+ "HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "Add a new macro",
+ "HEADER_BTN_TXT_SAVE": "Save macro",
+ "LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "Something went wrong. Please try again",
+ "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "ADD": {
+ "FORM": {
+ "NAME": {
+ "LABEL": "Macro name",
+ "PLACEHOLDER": "Enter a name for your macro",
+ "ERROR": "Name is required for creating a macro"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro added successfully",
+ "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
+ "404": "No macros found"
+ },
+ "DELETE": {
+ "TOOLTIP": "Delete macro",
+ "CONFIRM": {
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete",
+ "NO": "No"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ }
+ },
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
+ "EDIT": {
+ "TOOLTIP": "Edit macro",
+ "API": {
+ "SUCCESS_MESSAGE": "Macro updated successfully",
+ "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ }
+ },
+ "EDITOR": {
+ "START_FLOW": "Start Flow",
+ "END_FLOW": "End Flow",
+ "LOADING": "Fetching macro",
+ "ADD_BTN_TOOLTIP": "Add new action",
+ "DELETE_BTN_TOOLTIP": "Delete Action",
+ "VISIBILITY": {
+ "LABEL": "Macro Visibility",
+ "GLOBAL": {
+ "LABEL": "Public",
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
+ },
+ "PERSONAL": {
+ "LABEL": "Private",
+ "DESCRIPTION": "This macro will be private to you and not be available to others."
+ }
+ }
+ },
+ "EXECUTE": {
+ "BUTTON_TOOLTIP": "Execute",
+ "PREVIEW": "Preview Macro",
+ "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/mfa.json b/app/javascript/dashboard/i18n/locale/az/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/onboarding.json b/app/javascript/dashboard/i18n/locale/az/onboarding.json
new file mode 100644
index 000000000..6b5455407
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Zaman zonası seçin",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Davam et",
+ "SAVING": "Yadda saxlanılır...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/report.json b/app/javascript/dashboard/i18n/locale/az/report.json
new file mode 100644
index 000000000..5b7f5b61e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/report.json
@@ -0,0 +1,650 @@
+{
+ "REPORT": {
+ "HEADER": "Söhbətlər",
+ "LOADING_CHART": "Loading chart data...",
+ "NO_ENOUGH_DATA": "Hesabat yaratmaq üçün kifayət qədər məlumat nöqtəsi alınmayıb, zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "Məlumatları əldə etmək mümkün olmadı, zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "SUMMARY_FETCHING_FAILED": "Yekunu əldə etmək mümkün olmadı, zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Söhbətlər",
+ "DESC": "( Ümumi )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Messages received",
+ "DESC": "( Ümumi )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Messages sent",
+ "DESC": "( Ümumi )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "İlk Cavab Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "İlkin cavab vaxtı {metricValue}-dir ({conversationCount} söhbət əsasında)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Həll Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "Həll vaxtı {metricValue}-dir ({conversationCount} söhbət əsasında)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Həll Sayı",
+ "DESC": "( Ümumi )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Həll sayı",
+ "DESC": "( Ümumi )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Təslim Sayı",
+ "DESC": "( Ümumi )"
+ },
+ "REPLY_TIME": {
+ "NAME": "Customer waiting time",
+ "TOOLTIP_TEXT": "Gözləmə vaxtı {metricValue}-dir ({conversationCount} cavab əsasında)",
+ "DESC": ""
+ }
+ },
+ "DATE_RANGE_OPTIONS": {
+ "LAST_7_DAYS": "Son 7 gün",
+ "LAST_14_DAYS": "Son 14 gün",
+ "LAST_30_DAYS": "Son 30 gün",
+ "THIS_MONTH": "Bu ay",
+ "LAST_MONTH": "Keçən ay",
+ "LAST_3_MONTHS": "Son 3 ay",
+ "LAST_6_MONTHS": "Son 6 ay",
+ "LAST_YEAR": "Keçən il",
+ "CUSTOM_DATE_RANGE": "Custom date range"
+ },
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Tətbiq et",
+ "PLACEHOLDER": "Select date range"
+ },
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
+ "DURATION_FILTER_LABEL": "Müddət",
+ "GROUPING_OPTIONS": {
+ "DAY": "Gün",
+ "WEEK": "Həftə",
+ "MONTH": "Ay",
+ "YEAR": "İl"
+ },
+ "GROUP_BY_DAY_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Gün"
+ }
+ ],
+ "GROUP_BY_WEEK_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Gün"
+ },
+ {
+ "id": 2,
+ "groupBy": "Həftə"
+ }
+ ],
+ "GROUP_BY_MONTH_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Gün"
+ },
+ {
+ "id": 2,
+ "groupBy": "Həftə"
+ },
+ {
+ "id": 3,
+ "groupBy": "Ay"
+ }
+ ],
+ "GROUP_BY_YEAR_OPTIONS": [
+ {
+ "id": 2,
+ "groupBy": "Həftə"
+ },
+ {
+ "id": 3,
+ "groupBy": "Ay"
+ },
+ {
+ "id": 4,
+ "groupBy": "İl"
+ }
+ ],
+ "BUSINESS_HOURS": "İş Saatları",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nəticə tapılmadı"
+ },
+ "PAGINATION": {
+ "RESULTS": "{total} nəticədən {start} - {end} göstərilir",
+ "PER_PAGE_TEMPLATE": "{size} / səhifə"
+ }
+ },
+ "AGENT_REPORTS": {
+ "HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "LOADING_CHART": "Loading chart data...",
+ "NO_ENOUGH_DATA": "Hesabat yaratmaq üçün kifayət qədər məlumat nöqtəsi almamışıq, zəhmət olmasa sonra yenidən cəhd edin.",
+ "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "FILTER_DROPDOWN_LABEL": "Agent seçin",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Söhbətlər",
+ "DESC": "( Ümumi )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Incoming Messages",
+ "DESC": "( Ümumi )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Outgoing Messages",
+ "DESC": "( Ümumi )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "İlk Cavab Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "İlk cavab vaxtı {metricValue}-dir ({conversationCount} söhbət əsasında)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Həll Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "Həll vaxtı {metricValue}-dir ({conversationCount} söhbət əsasında)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Həll Sayı",
+ "DESC": "( Cəmi )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Son 7 gün"
+ },
+ {
+ "id": 1,
+ "name": "Son 30 gün"
+ },
+ {
+ "id": 2,
+ "name": "Son 3 ay"
+ },
+ {
+ "id": 3,
+ "name": "Son 6 ay"
+ },
+ {
+ "id": 4,
+ "name": "Keçən il"
+ },
+ {
+ "id": 5,
+ "name": "Custom date range"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Tətbiq et",
+ "PLACEHOLDER": "Select date range"
+ }
+ },
+ "LABEL_REPORTS": {
+ "HEADER": "Labels Overview",
+ "DESCRIPTION": "Nişan nəticələrini söhbətlər, cavab müddəti, həll müddəti və həll olunmuş hallar üzrə yoxlayın. Ətraflı məlumat üçün nişan adını açın.",
+ "LOADING_CHART": "Loading chart data...",
+ "NO_ENOUGH_DATA": "Hesabat yaratmaq üçün kifayət qədər məlumat nöqtəsi almamışıq, zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "DOWNLOAD_LABEL_REPORTS": "Download label reports",
+ "FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Söhbətlər",
+ "DESC": "( Ümumi )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Incoming Messages",
+ "DESC": "( Cəmi )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Outgoing Messages",
+ "DESC": "( Cəmi )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "İlk Cavab Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "İlk cavab vaxtı {metricValue}-dir ({conversationCount} söhbət əsasında)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Həll Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "Həll vaxtı {metricValue}-dir ({conversationCount} söhbətə əsaslanır)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Həll Sayı",
+ "DESC": "( Cəmi )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Son 7 gün"
+ },
+ {
+ "id": 1,
+ "name": "Son 30 gün"
+ },
+ {
+ "id": 2,
+ "name": "Son 3 ay"
+ },
+ {
+ "id": 3,
+ "name": "Son 6 ay"
+ },
+ {
+ "id": 4,
+ "name": "Keçən il"
+ },
+ {
+ "id": 5,
+ "name": "Xüsusi tarix aralığı"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Tətbiq et",
+ "PLACEHOLDER": "Select date range"
+ }
+ },
+ "INBOX_REPORTS": {
+ "HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
+ "LOADING_CHART": "Loading chart data...",
+ "NO_ENOUGH_DATA": "Hesabat yaratmaq üçün kifayət qədər məlumat nöqtəsi almamışıq, zəhmət olmasa bir az sonra yenidən cəhd edin.",
+ "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
+ "FILTER_DROPDOWN_LABEL": "Qutu seçin",
+ "ALL_INBOXES": "Bütün Qutular",
+ "SEARCH_INBOX": "Qutu üzrə axtarış",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Qutuları axtar"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Söhbətlər",
+ "DESC": "( Ümumi )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Incoming Messages",
+ "DESC": "( Ümumi )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Outgoing Messages",
+ "DESC": "( Ümumi )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "İlk Cavab Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "İlk cavab vaxtı {metricValue}-dir ({conversationCount} söhbətə əsaslanır)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Həll Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "Həll vaxtı {metricValue}-dir ({conversationCount} söhbətə əsaslanır)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Həll Sayı",
+ "DESC": "( Cəmi )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Son 7 gün"
+ },
+ {
+ "id": 1,
+ "name": "Son 30 gün"
+ },
+ {
+ "id": 2,
+ "name": "Son 3 ay"
+ },
+ {
+ "id": 3,
+ "name": "Son 6 ay"
+ },
+ {
+ "id": 4,
+ "name": "Keçən il"
+ },
+ {
+ "id": 5,
+ "name": "Xüsusi tarix aralığı"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Tətbiq et",
+ "PLACEHOLDER": "Select date range"
+ }
+ },
+ "TEAM_REPORTS": {
+ "HEADER": "Team Overview",
+ "DESCRIPTION": "Komanda nəticələrini söhbətlər, cavab müddəti, həll müddəti və həll olunmuş hallar üzrə yoxlayın. Ətraflı məlumat üçün komanda adını açın.",
+ "LOADING_CHART": "Loading chart data...",
+ "NO_ENOUGH_DATA": "Hesabat yaratmaq üçün kifayət qədər məlumat nöqtəsi almamışıq, zəhmət olmasa sonra yenidən cəhd edin.",
+ "DOWNLOAD_TEAM_REPORTS": "Download team reports",
+ "FILTER_DROPDOWN_LABEL": "Komandanı seçin",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Söhbətlər",
+ "DESC": "( Ümumi )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Incoming Messages",
+ "DESC": "( Cəmi )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Outgoing Messages",
+ "DESC": "( Cəmi )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "İlk Cavab Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "İlk cavab vaxtı {metricValue}-dir ({conversationCount} söhbətə əsaslanır)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Həll Vaxtı",
+ "DESC": "( Orta )",
+ "INFO_TEXT": "Hesablama üçün istifadə olunan ümumi söhbət sayı:",
+ "TOOLTIP_TEXT": "Həll vaxtı {metricValue}-dir ({conversationCount} söhbətə əsaslanır)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Həll Sayı",
+ "DESC": "( Ümumi )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Son 7 gün"
+ },
+ {
+ "id": 1,
+ "name": "Son 30 gün"
+ },
+ {
+ "id": 2,
+ "name": "Son 3 ay"
+ },
+ {
+ "id": 3,
+ "name": "Son 6 ay"
+ },
+ {
+ "id": 4,
+ "name": "Keçən il"
+ },
+ {
+ "id": 5,
+ "name": "Custom date range"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Tətbiq et",
+ "PLACEHOLDER": "Select date range"
+ }
+ },
+ "CSAT_REPORTS": {
+ "HEADER": "CSAT Hesabatları",
+ "NO_RECORDS": "Hələ cavab yoxdur",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
+ "DOWNLOAD": "Download CSAT Reports",
+ "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Qutuları axtar",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
+ "AGENTS": {
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Gələn qutu"
+ },
+ "TEAMS": {
+ "LABEL": "Komanda"
+ },
+ "RATINGS": {
+ "LABEL": "Qiymətləndirmə"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "CONTACT_NAME": "Əlaqə",
+ "AGENT_NAME": "Agent",
+ "RATING": "Qiymətləndirmə",
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Söhbət",
+ "CUSTOMER": "Müştəri",
+ "RESPONSE": "Cavab",
+ "HANDLED_BY": "Tərəfindən idarə olunur"
+ },
+ "UNKNOWN_CUSTOMER": "Naməlum müştəri"
+ },
+ "NO_AGENT": "Təyin olunmuş agent yoxdur",
+ "NO_FEEDBACK": "Rəy verilməyib",
+ "METRIC": {
+ "TOTAL_RESPONSES": {
+ "LABEL": "Cəmi cavablar",
+ "TOOLTIP": "Toplanmış cavabların ümumi sayı"
+ },
+ "SATISFACTION_SCORE": {
+ "LABEL": "Məmnunluq balı",
+ "TOOLTIP": "Müsbət cavabların ümumi sayı / Cavabların ümumi sayı * 100"
+ },
+ "RESPONSE_RATE": {
+ "LABEL": "Cavab faizi",
+ "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Qiymətləndirmə paylanması"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Rəy qeydləri",
+ "PLACEHOLDER": "Bu qiymətləndirmə haqqında rəy qeydləri əlavə edin...",
+ "SAVE": "Yadda saxla",
+ "CANCEL": "Ləğv et",
+ "SAVING": "Yadda saxlanılır...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Qeydləri yadda saxlamaq mümkün olmadı",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Ümumi Cavablar",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Həll Faizi",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Təyinat Faizi",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
+ }
+ }
+ },
+ "OVERVIEW_REPORTS": {
+ "HEADER": "Ümumi Baxış",
+ "LIVE": "Canlı",
+ "ACCOUNT_CONVERSATIONS": {
+ "HEADER": "Açıq Söhbətlər",
+ "LOADING_MESSAGE": "Loading conversation metrics...",
+ "OPEN": "Açıq",
+ "UNATTENDED": "Unattended",
+ "UNASSIGNED": "Təyin olunmamış",
+ "PENDING": "Gözləyir"
+ },
+ "CONVERSATION_HEATMAP": {
+ "HEADER": "Conversation Traffic",
+ "NO_CONVERSATIONS": "Söhbət yoxdur",
+ "CONVERSATION": "{count} söhbət",
+ "CONVERSATIONS": "{count} söhbət",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Söhbət yoxdur",
+ "CONVERSATION": "{count} söhbət",
+ "CONVERSATIONS": "{count} söhbət",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "AGENT_CONVERSATIONS": {
+ "HEADER": "Conversations by agents",
+ "LOADING_MESSAGE": "Loading agent metrics...",
+ "NO_AGENTS": "There are no conversations by agents",
+ "TABLE_HEADER": {
+ "AGENT": "Agent",
+ "OPEN": "Açıq",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Vəziyyət"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "Məlumat mövcud deyil",
+ "TABLE_HEADER": {
+ "TEAM": "Komanda",
+ "OPEN": "Açıq",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Vəziyyət"
+ }
+ },
+ "AGENT_STATUS": {
+ "HEADER": "Agent vəziyyəti",
+ "ONLINE": "Onlayn",
+ "BUSY": "Məşğul",
+ "OFFLINE": "Offline"
+ }
+ },
+ "DAYS_OF_WEEK": {
+ "SUNDAY": "Bazar günü",
+ "MONDAY": "Bazar ertəsi",
+ "TUESDAY": "Çərşənbə axşamı",
+ "WEDNESDAY": "Çərşənbə",
+ "THURSDAY": "Cümə axşamı",
+ "FRIDAY": "Cümə",
+ "SATURDAY": "Şənbə"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Hesabatları",
+ "NO_RECORDS": "Tətbiq edilmiş SLA söhbətləri mövcud deyil.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nəticə tapılmadı",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Siyasəti",
+ "INBOXES": "Gələn qutu",
+ "AGENTS": "Agent",
+ "LABELS": "Etiket",
+ "TEAMS": "Komanda"
+ },
+ "WITH": "ilə",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Uğur Faizi",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "SLA ilə ümumi söhbət sayı"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Siyasət",
+ "CONVERSATION": "Söhbət",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "Ətraflı Bax"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "Gələnlər",
+ "AGENT": "Agent",
+ "TEAM": "Komanda",
+ "LABEL": "Etiket",
+ "AVG_RESOLUTION_TIME": "Orta Həll Vaxtı",
+ "AVG_FIRST_RESPONSE_TIME": "Orta İlk Cavab Vaxtı",
+ "AVG_REPLY_TIME": "Orta Müştəri Gözləmə Vaxtı",
+ "RESOLUTION_COUNT": "Həll Sayı",
+ "CONVERSATIONS": "No. of conversations"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/resetPassword.json b/app/javascript/dashboard/i18n/locale/az/resetPassword.json
new file mode 100644
index 000000000..955696b0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/resetPassword.json
@@ -0,0 +1,17 @@
+{
+ "RESET_PASSWORD": {
+ "TITLE": "Reset password",
+ "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
+ "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "Please enter your email.",
+ "ERROR": "Please enter a valid email."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Password reset link has been sent to your email.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/search.json b/app/javascript/dashboard/i18n/locale/az/search.json
new file mode 100644
index 000000000..2fc8e7998
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/search.json
@@ -0,0 +1,68 @@
+{
+ "SEARCH": {
+ "TABS": {
+ "ALL": "All results",
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "SECTION": {
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
+ "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
+ "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "BOT_LABEL": "Bot",
+ "READ_MORE": "Read more",
+ "READ_LESS": "Read less",
+ "WROTE": "wrote:",
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/setNewPassword.json b/app/javascript/dashboard/i18n/locale/az/setNewPassword.json
new file mode 100644
index 000000000..4908dad02
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/setNewPassword.json
@@ -0,0 +1,23 @@
+{
+ "SET_NEW_PASSWORD": {
+ "TITLE": "Set new password",
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short."
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm Password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Successfully changed the password.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CAPTCHA": {
+ "ERROR": "Verification expired. Please solve captcha again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/settings.json b/app/javascript/dashboard/i18n/locale/az/settings.json
new file mode 100644
index 000000000..a74576641
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/settings.json
@@ -0,0 +1,923 @@
+{
+ "PROFILE_SETTINGS": {
+ "LINK": "Profil Parametrləri",
+ "TITLE": "Profil Parametrləri",
+ "BTN_TEXT": "Profili Yenilə",
+ "DELETE_AVATAR": "Avatarı sil",
+ "AVATAR_DELETE_SUCCESS": "Avatar uğurla silindi",
+ "AVATAR_DELETE_FAILED": "Avatar silinərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "UPDATE_SUCCESS": "Profiliniz uğurla yeniləndi",
+ "PASSWORD_UPDATE_SUCCESS": "Şifrəniz uğurla dəyişdirildi",
+ "AFTER_EMAIL_CHANGED": "Profiliniz uğurla yeniləndi, giriş məlumatlarınız dəyişdiyi üçün yenidən daxil olun",
+ "FORM": {
+ "PICTURE": "Profil şəkli",
+ "AVATAR": "Profil Şəkli",
+ "ERROR": "Zəhmət olmasa, formanı düzəldin",
+ "REMOVE_IMAGE": "Sil",
+ "UPLOAD_IMAGE": "Şəkil yüklə",
+ "UPDATE_IMAGE": "Şəkli yenilə",
+ "PROFILE_SECTION": {
+ "TITLE": "Profil",
+ "NOTE": "E-poçt ünvanınız sizin şəxsiyyətinizdir və daxil olmaq üçün istifadə olunur."
+ },
+ "SEND_MESSAGE": {
+ "TITLE": "Mesaj göndərmək üçün qısa yol",
+ "NOTE": "Yazma üstünlüyünüzə əsasən Enter və ya Cmd/Ctrl+Enter qısa yolunu seçə bilərsiniz.",
+ "UPDATE_SUCCESS": "Parametrləriniz uğurla yeniləndi",
+ "CARD": {
+ "ENTER_KEY": {
+ "HEADING": "Daxil et (↵)",
+ "CONTENT": "Mesajları göndərmək üçün Göndər düyməsini klikləmək əvəzinə Enter düyməsini basın."
+ },
+ "CMD_ENTER_KEY": {
+ "HEADING": "Cmd/Ctrl + Daxil et (⌘ + ↵)",
+ "CONTENT": "Mesajları göndərmək üçün Göndər düyməsini klikləmək əvəzinə Cmd/Ctrl + Enter düymələrini basın."
+ }
+ }
+ },
+ "INTERFACE_SECTION": {
+ "TITLE": "İnterfeys",
+ "NOTE": "Chatwoot panelinizin görünüşünü və hissini fərdiləşdirin.",
+ "FONT_SIZE": {
+ "TITLE": "Şrift ölçüsü",
+ "NOTE": "Panel boyunca mətn ölçüsünü üstünlüklərinizə uyğun tənzimləyin.",
+ "UPDATE_SUCCESS": "Şrift parametrləriniz uğurla yeniləndi",
+ "UPDATE_ERROR": "Şrift parametrlərini yeniləyərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "OPTIONS": {
+ "SMALLER": "Kiçik",
+ "SMALL": "Balaca",
+ "DEFAULT": "Defolt",
+ "LARGE": "Böyük",
+ "LARGER": "Daha Böyük",
+ "EXTRA_LARGE": "Əlavə Böyük"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Seçilmiş Dil",
+ "NOTE": "İstifadə etmək istədiyiniz dili seçin.",
+ "UPDATE_SUCCESS": "Dil parametrləriniz uğurla yeniləndi",
+ "UPDATE_ERROR": "Dil parametrləri yenilənərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin",
+ "USE_ACCOUNT_DEFAULT": "Hesabın standartını istifadə et"
+ }
+ },
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "Şəxsi mesaj imzası",
+ "NOTE": "Hər hansı bir poçt qutusundan göndərdiyiniz hər mesajın sonunda görünəcək unikal mesaj imzası yaradın. Həmçinin canlı çat, e-poçt və API poçt qutularında dəstəklənən xətt içi şəkil əlavə edə bilərsiniz.",
+ "BTN_TEXT": "Mesaj imzasını yadda saxla",
+ "API_ERROR": "İmza yadda saxlanmadı! Yenidən cəhd edin",
+ "API_SUCCESS": "İmza uğurla yadda saxlanıldı",
+ "IMAGE_UPLOAD_ERROR": "Şəkil yüklənmədi! Yenidən cəhd edin",
+ "IMAGE_UPLOAD_SUCCESS": "Şəkil uğurla əlavə edildi. İmzanı saxlamaq üçün zəhmət olmasa Saxla düyməsini basın",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Şəkil ölçüsü {size}MB-dan az olmalıdır",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "Mesaj imzası",
+ "ERROR": "Mesaj imzası boş ola bilməz",
+ "PLACEHOLDER": "Şəxsi mesaj imzanızı buraya daxil edin."
+ },
+ "PASSWORD_SECTION": {
+ "TITLE": "Şifrə",
+ "NOTE": "Şifrənizi yeniləmək bir neçə cihazda girişlərinizi sıfırlayacaq.",
+ "BTN_TEXT": "Şifrəni dəyiş"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Təhlükəsizlik",
+ "NOTE": "Hesabınız üçün əlavə təhlükəsizlik xüsusiyyətlərini idarə edin.",
+ "MFA_BUTTON": "İki Faktorlu Doğrulamaya Nəzarət Edin"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Giriş Tokeni",
+ "NOTE": "Bu token API əsaslı inteqrasiya qurarkən istifadə edilə bilər",
+ "COPY": "Kopyala",
+ "RESET": "Sıfırla",
+ "CONFIRM_RESET": "Əminsiniz?",
+ "CONFIRM_HINT": "Təsdiqləmək üçün yenidən klikləyin",
+ "RESET_SUCCESS": "Giriş tokeni uğurla yenidən yaradıldı",
+ "RESET_ERROR": "Giriş tokenini yenidən yaratmaq mümkün olmadı. Zəhmət olmasa, yenidən cəhd edin"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "Səs Bildirişləri",
+ "NOTE": "Yeni mesajlar və söhbətlər üçün paneldə səsli bildirişləri aktiv edin.",
+ "PLAY": "Səsi oynat",
+ "ALERT_TYPES": {
+ "NONE": "Heç biri",
+ "MINE": "Təyin olunmuş",
+ "ALL": "Hamısı",
+ "ASSIGNED": "Mənə təyin olunmuş söhbətlər",
+ "UNASSIGNED": "Təyin olunmamış söhbətlər",
+ "NOTME": "Başqalarına təyin olunmuş açıq söhbətlər"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Heç bir seçim etməmisiniz, heç bir səsli bildiriş almayacaqsınız.",
+ "ASSIGNED": "Sizə təyin olunmuş söhbətlər üçün bildirişlər alacaqsınız.",
+ "UNASSIGNED": "Heç kimə təyin olunmamış söhbətlər üçün bildirişlər alacaqsınız.",
+ "NOTME": "Başqalarına təyin olunmuş söhbətlər üçün bildirişlər alacaqsınız.",
+ "ASSIGNED+UNASSIGNED": "Sizə təyin olunmuş və hər hansı nəzarətsiz söhbətlər üçün bildirişlər alacaqsınız.",
+ "ASSIGNED+NOTME": "Sizə təyin olunan və başqalarına təyin olunan söhbətlər üçün bildirişlər gələcək, lakin təyin olunmamışlar üçün yox.",
+ "NOTME+UNASSIGNED": "Sizə təyin olunmamış və başqalarına təyin olunan nəzarətsiz söhbətlər üçün bildirişlər gələcək.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Bütün söhbətlər üçün bildirişlər gələcək."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Söhbətlər üçün xəbərdarlıq hadisələri",
+ "NONE": "Heç biri",
+ "ASSIGNED": "Təyin olunmuş söhbətlər",
+ "ALL_CONVERSATIONS": "Bütün söhbətlər"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "Bildiriş tonu:"
+ },
+ "CONDITIONS": {
+ "TITLE": "Bildiriş şərtləri:",
+ "CONDITION_ONE": "Səsli bildirişləri yalnız brauzer pəncərəsi aktiv olmadıqda göndər",
+ "CONDITION_TWO": "Təyin olunmuş bütün söhbətlər oxunana qədər hər 30 saniyədə bir bildiriş göndər"
+ },
+ "SOUND_PERMISSION_ERROR": "Brauzerinizdə avtomatik səsləndirmə deaktivdir. Bildirişləri avtomatik eşitmək üçün brauzer parametrlərində səs icazəsini aktiv edin və ya səhifə ilə qarşılıqlı əlaqə yaradın.",
+ "READ_MORE": "Daha çox oxu"
+ },
+ "EMAIL_NOTIFICATIONS_SECTION": {
+ "TITLE": "E-poçt Bildirişləri",
+ "NOTE": "E-poçt bildiriş üstünlüklərinizi burada yeniləyin",
+ "CONVERSATION_ASSIGNMENT": "Mənə söhbət təyin olunduqda e-poçt bildirişi göndər",
+ "CONVERSATION_CREATION": "Yeni söhbət yaradıldıqda e-poçt bildirişi göndər",
+ "CONVERSATION_MENTION": "Söhbətdə adınız çəkildikdə e-poçt bildirişi göndər",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Təyin olunmuş söhbətdə yeni mesaj yaradıldıqda e-poçt bildirişi göndər",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "İştirak etdiyiniz söhbətdə yeni mesaj yaradıldıqda e-poçt bildirişi göndərin",
+ "SLA_MISSED_FIRST_RESPONSE": "Danışıq ilk cavab SLA-sını qaçırdıqda e-poçt bildirişi göndər",
+ "SLA_MISSED_NEXT_RESPONSE": "Danışıq növbəti cavab SLA-sını qaçırdıqda e-poçt bildirişi göndər",
+ "SLA_MISSED_RESOLUTION": "Danışıq həll SLA-sını qaçırdıqda e-poçt bildirişi göndər"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Bildiriş üstünlükləri",
+ "TYPE_TITLE": "Bildiriş növü",
+ "EMAIL": "Elektron poçt",
+ "PUSH": "Push bildirişi",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Yeni söhbət yaradıldı",
+ "CONVERSATION_ASSIGNED": "Söhbət sizə təyin edildi",
+ "CONVERSATION_MENTION": "Söhbətdə sizə istinad edildi",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Təyin edilmiş söhbətdə yeni mesaj yaradıldı",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "İştirak etdiyiniz söhbətdə yeni mesaj yaradıldı",
+ "SLA_MISSED_FIRST_RESPONSE": "Söhbət ilk cavab SLA-sını qaçırdı",
+ "SLA_MISSED_NEXT_RESPONSE": "Söhbət növbəti cavab SLA-sını qaçırdı",
+ "SLA_MISSED_RESOLUTION": "Söhbət həll SLA-sını qaçırdı"
+ },
+ "BROWSER_PERMISSION": "Brauzerinizdə push bildirişlərini aktiv edin ki, onları ala biləsiniz"
+ },
+ "API": {
+ "UPDATE_SUCCESS": "Bildiriş seçimləriniz uğurla yeniləndi",
+ "UPDATE_ERROR": "Seçimləri yeniləyərkən xəta baş verdi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "PUSH_NOTIFICATIONS_SECTION": {
+ "TITLE": "Push Bildirişləri",
+ "NOTE": "Push bildiriş seçimlərinizi burada yeniləyin",
+ "CONVERSATION_ASSIGNMENT": "Söhbət mənə təyin olunduqda push bildirişləri göndər",
+ "CONVERSATION_CREATION": "Yeni söhbət yaradıldıqda push bildirişləri göndər",
+ "CONVERSATION_MENTION": "Söhbətdə adınız çəkildikdə push bildirişi göndər",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Təyin olunmuş söhbətdə yeni mesaj yaradıldıqda push bildirişi göndər",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "İştirak etdiyiniz söhbətdə yeni mesaj yaradıldıqda push bildirişi göndərin",
+ "HAS_ENABLED_PUSH": "Bu brauzer üçün push bildirişləri aktivdir.",
+ "REQUEST_PUSH": "Push bildirişlərini aktiv et",
+ "SLA_MISSED_FIRST_RESPONSE": "Danışıq ilk cavab SLA-sını qaçırdıqda push bildirişi göndər",
+ "SLA_MISSED_NEXT_RESPONSE": "Danışıq növbəti cavab SLA-sını qaçırdıqda push bildirişi göndər",
+ "SLA_MISSED_RESOLUTION": "Danışıq həll müddətinin SLA-sını keçdikdə push bildirişi göndər"
+ },
+ "PROFILE_IMAGE": {
+ "LABEL": "Profil Şəkli"
+ },
+ "NAME": {
+ "LABEL": "Tam adınız",
+ "ERROR": "Zəhmət olmasa, düzgün tam ad daxil edin",
+ "PLACEHOLDER": "Zəhmət olmasa, tam adınızı daxil edin"
+ },
+ "DISPLAY_NAME": {
+ "LABEL": "Görünən ad",
+ "ERROR": "Zəhmət olmasa, düzgün görünən ad daxil edin",
+ "PLACEHOLDER": "Zəhmət olmasa, görünən ad daxil edin, bu söhbətlərdə göstəriləcək"
+ },
+ "AVAILABILITY": {
+ "LABEL": "Mövcudluq",
+ "STATUS": {
+ "ONLINE": "Onlayn",
+ "BUSY": "Məşğul",
+ "OFFLINE": "Offline"
+ },
+ "SET_AVAILABILITY_SUCCESS": "Mövcudluq uğurla təyin edildi",
+ "SET_AVAILABILITY_ERROR": "Mövcudluğu təyin etmək mümkün olmadı, zəhmət olmasa yenidən cəhd edin",
+ "IMPERSONATING_ERROR": "İstifadəçi kimi daxil olanda mövcudluğu dəyişmək olmaz"
+ },
+ "EMAIL": {
+ "LABEL": "E-poçt ünvanınız",
+ "ERROR": "Zəhmət olmasa, düzgün e-poçt ünvanı daxil edin",
+ "PLACEHOLDER": "Zəhmət olmasa, e-poçt ünvanınızı daxil edin, bu söhbətlərdə göstəriləcək"
+ },
+ "CURRENT_PASSWORD": {
+ "LABEL": "Cari şifrə",
+ "ERROR": "Zəhmət olmasa cari şifrəni daxil edin",
+ "PLACEHOLDER": "Zəhmət olmasa cari şifrəni daxil edin"
+ },
+ "PASSWORD": {
+ "LABEL": "Yeni şifrə",
+ "ERROR": "Zəhmət olmasa, 6 və ya daha çox simvoldan ibarət şifrə daxil edin",
+ "PLACEHOLDER": "Zəhmət olmasa, yeni şifrə daxil edin"
+ },
+ "PASSWORD_CONFIRMATION": {
+ "LABEL": "Yeni şifrəni təsdiqləyin",
+ "ERROR": "Şifrə təsdiqi şifrə ilə uyğun olmalıdır",
+ "PLACEHOLDER": "Zəhmət olmasa yeni şifrənizi yenidən daxil edin"
+ }
+ }
+ },
+ "SIDEBAR_ITEMS": {
+ "CHANGE_AVAILABILITY_STATUS": "Dəyiş",
+ "CHANGE_ACCOUNTS": "Hesabı dəyiş",
+ "SWITCH_ACCOUNT": "Hesabı dəyiş",
+ "CONTACT_SUPPORT": "Dəstək ilə əlaqə",
+ "SELECTOR_SUBTITLE": "Aşağıdakı siyahıdan hesab seçin",
+ "PROFILE_SETTINGS": "Profil parametrləri",
+ "YEAR_IN_REVIEW": "İlin icmalı",
+ "KEYBOARD_SHORTCUTS": "Klaviatura qısayolları",
+ "APPEARANCE": "Görünüşü dəyişdir",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin konsolu",
+ "DOCS": "Sənədləri oxu",
+ "CHANGELOG": "Dəyişikliklər jurnalı",
+ "LOGOUT": "Çıxış"
+ },
+ "APP_GLOBAL": {
+ "TRIAL_MESSAGE": "günlük sınaq müddəti qalıb.",
+ "TRAIL_BUTTON": "İndi Al",
+ "DELETED_USER": "Silinmiş İstifadəçi",
+ "EMAIL_VERIFICATION_PENDING": "Görünür, hələ e-poçt ünvanınızı təsdiqləməmisiniz. Zəhmət olmasa təsdiq e-poçtunu yoxlamaq üçün poçt qutunuzu yoxlayın.",
+ "RESEND_VERIFICATION_MAIL": "Təsdiq e-poçtunu yenidən göndər",
+ "EMAIL_VERIFICATION_SENT": "Təsdiq e-poçtu göndərildi. Zəhmət olmasa, poçt qutunuzu yoxlayın.",
+ "ACCOUNT_SUSPENDED": {
+ "TITLE": "Hesab dayandırılıb",
+ "MESSAGE": "Hesabınız dayandırılıb. Ətraflı məlumat üçün dəstək komandası ilə əlaqə saxlayın."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "Hesab tapılmadı",
+ "MESSAGE_CLOUD": "Hal-hazırda heç bir hesabın üzvü deyilsiniz. Əgər bunun səhv olduğunu düşünürsünüzsə, zəhmət olmasa dəstək komandamızla əlaqə saxlayın.",
+ "MESSAGE_SELF_HOSTED": "Hal-hazırda heç bir hesabın üzvü deyilsiniz. Zəhmət olmasa administratorunuzla əlaqə saxlayın.",
+ "LOGOUT": "Çıxış"
+ }
+ },
+ "COMPONENTS": {
+ "CODE": {
+ "BUTTON_TEXT": "Kopyala",
+ "CODEPEN": "CodePen-də aç",
+ "COPY_SUCCESSFUL": "Lövhəyə kopyalandı"
+ },
+ "SHOW_MORE_BLOCK": {
+ "SHOW_MORE": "Daha çox göstər",
+ "SHOW_LESS": "Daha az göstər"
+ },
+ "FILE_BUBBLE": {
+ "DOWNLOAD": "Yüklə",
+ "UPLOADING": "Yüklənir...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "Bu hekayə artıq mövcud deyil.",
+ "INSTAGRAM_STORY_REPLY": "Hekayənizə cavab verildi:"
+ },
+ "LOCATION_BUBBLE": {
+ "SEE_ON_MAP": "Xəritədə bax"
+ },
+ "FORM_BUBBLE": {
+ "SUBMIT": "Göndər"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Bu şəkil artıq mövcud deyil.",
+ "LOADING_FAILED": "Yükləmə uğursuz oldu"
+ }
+ },
+ "CONFIRM_EMAIL": "Yoxlanılır...",
+ "SETTINGS": {
+ "INBOXES": {
+ "NEW_INBOX": "Qutu əlavə et"
+ }
+ },
+ "SIDEBAR": {
+ "NO_ITEMS": "Element yoxdur",
+ "CURRENTLY_VIEWING_ACCOUNT": "Hal-hazırda baxılır:",
+ "SWITCH": "Dəyiş",
+ "INBOX_VIEW": "Gələnlər qutusu görünüşü",
+ "CONVERSATIONS": "Söhbətlər",
+ "INBOX": "Mənim Gələnlər Qutum",
+ "ALL_CONVERSATIONS": "Bütün Söhbətlər",
+ "MENTIONED_CONVERSATIONS": "İstinadlar",
+ "PARTICIPATING_CONVERSATIONS": "İştirak edən",
+ "UNATTENDED_CONVERSATIONS": "Nəzarətsiz",
+ "REPORTS": "Hesabatlar",
+ "SETTINGS": "Parametrlər",
+ "CONTACTS": "Əlaqələr",
+ "ACTIVE": "Aktiv",
+ "COMPANIES": "Şirkətlər",
+ "ALL_COMPANIES": "Bütün Şirkətlər",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Köməkçilər",
+ "CAPTAIN_DOCUMENTS": "Sənədlər",
+ "CAPTAIN_RESPONSES": "Tez-tez verilən suallar",
+ "CAPTAIN_TOOLS": "Alətlər",
+ "CAPTAIN_SCENARIOS": "Ssenarilər",
+ "CAPTAIN_PLAYGROUND": "Oyun meydanı",
+ "CAPTAIN_INBOXES": "Gələn qutuları",
+ "CAPTAIN_SETTINGS": "Parametrlər",
+ "HOME": "Ana səhifə",
+ "AGENTS": "Agentlər",
+ "AGENT_BOTS": "Botlar",
+ "AUDIT_LOGS": "Audit qeydləri",
+ "INBOXES": "Qutular",
+ "NOTIFICATIONS": "Bildirişlər",
+ "CANNED_RESPONSES": "Hazır Cavablar",
+ "INTEGRATIONS": "İnteqrasiyalar",
+ "PROFILE_SETTINGS": "Profil parametrləri",
+ "ACCOUNT_SETTINGS": "Hesab parametrləri",
+ "APPLICATIONS": "Tətbiqlər",
+ "LABELS": "Etiketlər",
+ "CUSTOM_ATTRIBUTES": "Xüsusi atributlar",
+ "AUTOMATION": "Avtomatlaşdırma",
+ "MACROS": "Makrolar",
+ "TEAMS": "Komandalar",
+ "BILLING": "Ödəniş",
+ "CUSTOM_VIEWS_FOLDER": "Qovluqlar",
+ "CUSTOM_VIEWS_SEGMENTS": "Seqmentlər",
+ "ALL_CONTACTS": "Bütün Kontaktlar",
+ "TAGGED_WITH": "Etiketləndi",
+ "NEW_LABEL": "Yeni etiket",
+ "NEW_TEAM": "Yeni komanda",
+ "NEW_INBOX": "Yeni poçt qutusu",
+ "REPORTS_CONVERSATION": "Söhbətlər",
+ "CSAT": "CSAT",
+ "LIVE_CHAT": "Canlı Çat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "Kampaniyalar",
+ "ONGOING": "Davam edən",
+ "ONE_OFF": "Tək dəfəlik",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
+ "REPORTS_AGENT": "Agentlər",
+ "REPORTS_LABEL": "Etiketlər",
+ "REPORTS_INBOX": "Gələn qutu",
+ "REPORTS_TEAM": "Komanda",
+ "AGENT_ASSIGNMENT": "Agent təyinatı",
+ "SET_AVAILABILITY_TITLE": "Özünüzü kimi təyin edin",
+ "SET_YOUR_AVAILABILITY": "Mövcudluğunuzu təyin edin",
+ "SLA": "SLA",
+ "CUSTOM_ROLES": "Xüsusi Rollar",
+ "BETA": "Beta",
+ "REPORTS_OVERVIEW": "Ümumi Baxış",
+ "REAUTHORIZE": "Gələn qutunuzun bağlantısı müddəti bitib, zəhmət olmasa yenidən qoşulun\n mesajları almağa və göndərməyə davam etmək üçün",
+ "HELP_CENTER": {
+ "TITLE": "Kömək Mərkəzi",
+ "ARTICLES": "Məqalələr",
+ "CATEGORIES": "Kateqoriyalar",
+ "LOCALES": "Dillər",
+ "SETTINGS": "Ayarlar"
+ },
+ "CHANNELS": "Kanallar",
+ "SET_AUTO_OFFLINE": {
+ "TEXT": "Avtomatik olaraq offline kimi işarələyin",
+ "INFO_TEXT": "Sistem tətbiq və ya paneldən istifadə etmədiyiniz zaman sizi avtomatik olaraq offline kimi işarələsin.",
+ "INFO_SHORT": "Tətbiqdən istifadə etmədiyiniz zaman avtomatik olaraq offline kimi işarələyin."
+ },
+ "DOCS": "Sənədləri oxuyun",
+ "SECURITY": "Təhlükəsizlik",
+ "CAPTAIN_AI": "Kapitan",
+ "CONVERSATION_WORKFLOW": "Söhbət İş Axını"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Kapitan Ayarları",
+ "DESCRIPTION": "Kapitan üçün AI modellərinizi və xüsusiyyətlərinizi konfiqurasiya edin. Kapitan kredit əsaslı ödəniş sistemi ilə işləyir, seçilmiş modelə əsasən Kapitanın hər hərəkəti üçün kreditlər hesablanacaq.",
+ "LOADING": "Captain konfiqurasiyası yüklənir...",
+ "LINK_TEXT": "Captain Krediti haqqında daha çox məlumat əldə edin",
+ "NOT_ENABLED": "Captain hesabınız üçün aktiv deyil. Captain xüsusiyyətlərinə daxil olmaq üçün planınızı yüksəldin.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Konfiqurasiyası",
+ "DESCRIPTION": "Fərqli xüsusiyyətlər üçün AI modellərini seçin.",
+ "SELECT_MODEL": "Model seçin",
+ "CREDITS_PER_MESSAGE": "{credits} kredit/mesaj",
+ "COMING_SOON": "Tezliklə",
+ "EDITOR": {
+ "TITLE": "Redaktor xüsusiyyətləri",
+ "DESCRIPTION": "Mesaj redaktorunuzda ağıllı yazı, qrammatika düzəlişləri, ton tənzimləmələri və məzmunun təkmilləşdirilməsini təmin edir."
+ },
+ "ASSISTANT": {
+ "TITLE": "Köməkçi",
+ "DESCRIPTION": "Avtomatlaşdırılmış cavablar, söhbət xülasələri və müştəri qarşılıqlı əlaqələri üçün ağıllı cavab təkliflərini idarə edir."
+ },
+ "COPILOT": {
+ "TITLE": "Kopilot",
+ "DESCRIPTION": "Söhbətlər zamanı real vaxtda kontekstual təkliflər, bilik bazası tövsiyələri və proaktiv anlayışlar təqdim edir."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Xüsusiyyətlər",
+ "DESCRIPTION": "AI ilə işləyən xüsusiyyətləri aktivləşdirin və ya deaktiv edin.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Səs Yazısı",
+ "DESCRIPTION": "Səs mesajlarını və zəng yazılarını avtomatik olaraq axtarıla bilən mətn transkriptlərinə çevirin."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Kömək Mərkəzi Axtarış İndeksləşdirilməsi",
+ "DESCRIPTION": "Kömək mərkəzi məqalələrinizdə kontekstə uyğun axtarış üçün AI istifadə edin."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Etiket Tövsiyəsi",
+ "DESCRIPTION": "Məzmun analizi və kontekstə əsaslanaraq söhbətlər üçün avtomatik olaraq uyğun etiketlər və təqlər təklif edin.",
+ "MODEL_TITLE": "Etiket Tövsiyəsi Modeli",
+ "MODEL_DESCRIPTION": "Söhbətləri təhlil etmək və uyğun etiketlər təklif etmək üçün istifadə olunacaq AI modelini seçin"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain parametrləri uğurla yeniləndi.",
+ "ERROR": "Captain parametrlərini yeniləmək alınmadı. Zəhmət olmasa, yenidən cəhd edin."
+ }
+ },
+ "BILLING_SETTINGS": {
+ "TITLE": "Ödəniş",
+ "DESCRIPTION": "Abunəliyinizi burada idarə edin, planınızı yüksəldin və komandanız üçün daha çox imkan əldə edin.",
+ "CURRENT_PLAN": {
+ "TITLE": "Cari Plan",
+ "PLAN_NOTE": "Hal-hazırda **{plan}** planına və **{quantity}** lisenziyaya abunəsiniz",
+ "SEAT_COUNT": "Oturacaq sayı",
+ "RENEWS_ON": "Yenilənir"
+ },
+ "VIEW_PRICING": "Qiymətləri Görüntülə",
+ "MANAGE_SUBSCRIPTION": {
+ "TITLE": "Abunəliyinizi idarə edin",
+ "DESCRIPTION": "Əvvəlki fakturalarınızı baxın, ödəniş məlumatlarınızı redaktə edin və ya abunəliyinizi ləğv edin.",
+ "BUTTON_TXT": "Ödəniş portalına keçin"
+ },
+ "CAPTAIN": {
+ "TITLE": "Kapitan",
+ "DESCRIPTION": "Kapitan AI üçün istifadə və kreditləri idarə edin.",
+ "BUTTON_TXT": "Daha çox kredit alın",
+ "DOCUMENTS": "Sənədlər",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Kapitan pulsuz planda mövcud deyil, köməkçilərə, köməkçi pilot və daha çoxuna giriş əldə etmək üçün indi yüksəldin.",
+ "REFRESH_CREDITS": "Yenilə"
+ },
+ "CHAT_WITH_US": {
+ "TITLE": "Köməyə ehtiyacınız var?",
+ "DESCRIPTION": "Ödənişlə bağlı hər hansı problem yaşayırsınız? Biz kömək etməyə hazırıq.",
+ "BUTTON_TXT": "Bizimlə söhbət edin"
+ },
+ "NO_BILLING_USER": "Ödəniş hesabınız qurulur. Zəhmət olmasa səhifəni yeniləyin və yenidən cəhd edin.",
+ "TOPUP": {
+ "BUY_CREDITS": "Daha çox kredit al",
+ "MODAL_TITLE": "AI Kreditləri Al",
+ "MODAL_DESCRIPTION": "Captain AI üçün əlavə kreditlər satın alın.",
+ "CREDITS": "KREDİTLƏR",
+ "ONE_TIME": "bir dəfəlik",
+ "POPULAR": "Ən Populyar",
+ "NOTE_TITLE": "Qeyd:",
+ "NOTE_DESCRIPTION": "Kreditlər dərhal əlavə olunur və 6 ay ərzində müddəti bitir. Kreditlərdən istifadə etmək üçün aktiv abunə tələb olunur. Alınan kreditlər aylıq plan kreditlərinizdən sonra istifadə olunur.",
+ "CANCEL": "Ləğv et",
+ "PURCHASE": "Kreditləri satın al",
+ "LOADING": "Seçimlər yüklənir...",
+ "FETCH_ERROR": "Kredit seçimləri yüklənmədi. Zəhmət olmasa yenidən cəhd edin.",
+ "PURCHASE_ERROR": "Satınalma emal edilə bilmədi. Zəhmət olmasa yenidən cəhd edin.",
+ "PURCHASE_SUCCESS": "Hesabınıza uğurla {credits} kredit əlavə edildi",
+ "CONFIRM": {
+ "TITLE": "Alışı təsdiqlə",
+ "DESCRIPTION": "{amount} üçün {credits} kredit almaq üzrədir.",
+ "INSTANT_DEDUCTION_NOTE": "Təsdiqləndikdən sonra yadda saxlanılmış kartınız dərhal ödəniləcək.",
+ "GO_BACK": "Geri qayıt",
+ "CONFIRM_PURCHASE": "Alışı təsdiqlə"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Təhlükəsizlik",
+ "DESCRIPTION": "Hesabınızın təhlükəsizlik parametrlərini idarə edin.",
+ "LINK_TEXT": "SAML SSO haqqında daha çox məlumat əldə edin",
+ "SAML_DISABLED_MESSAGE": "SAML SSO hazırda deaktivdir. Bu funksiyanı aktivləşdirmək üçün administratorunuzla əlaqə saxlayın.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Hesabınız üçün SAML tək girişini qurun. İstifadəçilər e-poçt/şifrə yerinə şəxsiyyət təminatçınız vasitəsilə autentifikasiya olunacaqlar.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Təsdiq Qəbul Xidməti URL - Bu URL-ni SAML cavablarının təyinatı kimi IdP-də qurun"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "SAML autentifikasiyası sorğularının göndəriləcəyi URL",
+ "PLACEHOLDER": "https://sizin-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "PEM formatında imzalama sertifikatı",
+ "HELP": "SAML cavablarını yoxlamaq üçün istifadə olunan şəxsiyyət təminatçınızın açıq sertifikatı",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Barmaq izi",
+ "TOOLTIP": "Sertifikatın SHA-1 barmaq izi - Sertifikatı IdP konfiqurasiyanızda təsdiqləmək üçün istifadə edin"
+ },
+ "COPY_SUCCESS": "Lövhəyə köçürüldü",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Varlıq ID-si",
+ "HELP": "Bu tətbiq üçün xidmət təminatçısı kimi unikal identifikator (avtomatik yaradılır).",
+ "TOOLTIP": "Chatwoot-un Xidmət Təminatçısı kimi unikal identifikatoru - bunu IdP parametrlərinizdə qurun"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Şəxsiyyət Təminatçısının Varlıq ID-si",
+ "HELP": "Şəxsiyyət təminatçınız üçün unikal identifikator (adətən IdP konfiqurasiyasında tapılır)",
+ "PLACEHOLDER": "https://sizin-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML Parametrlərini Yenilə",
+ "API": {
+ "SUCCESS": "SAML parametrləri uğurla yeniləndi",
+ "ERROR": "SAML parametrlərini yeniləmək mümkün olmadı",
+ "ERROR_LOADING": "SAML parametrlərini yükləmək mümkün olmadı",
+ "DISABLED": "SAML parametrləri uğurla deaktiv edildi"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Şəxsiyyət Təminatçısı Varlıq ID-si və Sertifikat tələb olunan sahələrdir",
+ "SSO_URL_ERROR": "Zəhmət olmasa, etibarlı SSO URL daxil edin",
+ "CERTIFICATE_ERROR": "Sertifikat tələb olunur",
+ "IDP_ENTITY_ID_ERROR": "Şəxsiyyət Təminatçısı Varlıq ID-si tələb olunur"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO xüsusiyyəti yalnız Enterprise planlarında mövcuddur.",
+ "UPGRADE_PROMPT": "SAML tək giriş və digər qabaqcıl təhlükəsizlik xüsusiyyətlərinə daxil olmaq üçün Enterprise planına yüksəldin.",
+ "ASK_ADMIN": "Yeniləmə üçün administratorunuzla əlaqə saxlayın."
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO-nu aktivləşdirmək üçün yüksəldin",
+ "AVAILABLE_ON": "SAML SSO xüsusiyyəti yalnız Enterprise planlarında mövcuddur.",
+ "UPGRADE_PROMPT": "SAML tək giriş və digər qabaqcıl xüsusiyyətlərə daxil olmaq üçün planınızı yüksəldin.",
+ "UPGRADE_NOW": "İndi yüksəldin",
+ "CANCEL_ANYTIME": "Planınızı istənilən vaxt dəyişə və ya ləğv edə bilərsiniz"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Atributlarının Quraşdırılması",
+ "DESCRIPTION": "Aşağıdakı atribut xəritələşdirmələri identifikasiya təminatçınızda qurulmalıdır"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Xidmət Təminatçısı Məlumatı",
+ "TOOLTIP": "Bu dəyərləri kopyalayın və SAML bağlantısını qurmaq üçün Şəxsiyyət Təminatçınızda konfiqurasiya edin"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Söhbət İş Axınları",
+ "DESCRIPTION": "Söhbətin həlli üçün qaydaları və tələb olunan sahələri tənzimləyin."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Həll zamanı tələb olunan atributlar",
+ "DESCRIPTION": "Söhbət həll edilərkən, agentlərdən bu atributları doldurmaları tələb olunacaq, əgər hələ doldurmayıblarsa.",
+ "NO_ATTRIBUTES": "Hələ atribut əlavə edilməyib",
+ "ADD": {
+ "TITLE": "Atribut əlavə et",
+ "SEARCH_PLACEHOLDER": "Atributlarda axtar"
+ },
+ "SAVE": {
+ "SUCCESS": "Tələb olunan atributlar yeniləndi",
+ "ERROR": "Tələb olunan atributlar yenilənə bilmədi, zəhmət olmasa yenidən cəhd edin"
+ },
+ "MODAL": {
+ "TITLE": "Söhbəti həll et",
+ "DESCRIPTION": "Zəhmət olmasa bu söhbəti həll etməzdən əvvəl aşağıdakı xüsusi atributları doldurun",
+ "ACTIONS": {
+ "RESOLVE": "Söhbəti həll et",
+ "CANCEL": "Ləğv et"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Qeyd yazın...",
+ "NUMBER": "Rəqəm daxil edin",
+ "LINK": "Link əlavə edin",
+ "DATE": "Tarix seçin",
+ "LIST": "Seçim seçin"
+ },
+ "CHECKBOX": {
+ "YES": "Bəli",
+ "NO": "Xeyr"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Tələb olunan atributlardan istifadə etmək üçün yüksəldin",
+ "AVAILABLE_ON": "Tələb olunan söhbət atributları xüsusiyyəti Biznes və Enterprise planlarında mövcuddur.",
+ "UPGRADE_PROMPT": "Söhbətin həllindən əvvəl agentlərin tələb olunan atributları doldurmasını təmin etmək üçün planınızı yüksəldin.",
+ "UPGRADE_NOW": "İndi yüksəlt",
+ "CANCEL_ANYTIME": "Planınızı istənilən vaxt dəyişə və ya ləğv edə bilərsiniz"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Lazımi söhbət atributları funksiyası ödənişli planlarda mövcuddur.",
+ "UPGRADE_PROMPT": "Söhbətin həlli öncəsi tələb olunan atributların tətbiqi üçün ödənişli plana yüksəldin.",
+ "ASK_ADMIN": "Yeniləmə üçün administratorunuzla əlaqə saxlayın."
+ }
+ }
+ },
+ "CREATE_ACCOUNT": {
+ "NO_ACCOUNT_WARNING": "Uh oh! Heç bir Chatwoot hesabı tapılmadı. Davam etmək üçün yeni hesab yaradın.",
+ "NEW_ACCOUNT": "Yeni Hesab",
+ "SELECTOR_SUBTITLE": "Yeni hesab yaradın",
+ "API": {
+ "SUCCESS_MESSAGE": "Hesab uğurla yaradıldı",
+ "EXIST_MESSAGE": "Hesab artıq mövcuddur",
+ "ERROR_MESSAGE": "Woot Server-ə qoşulmaq mümkün olmadı, zəhmət olmasa sonra yenidən cəhd edin"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Şirkət adı",
+ "PLACEHOLDER": "Wayne Enterprises"
+ },
+ "SUBMIT": "Təsdiqlə",
+ "CANCEL": "Ləğv et"
+ }
+ },
+ "KEYBOARD_SHORTCUTS": {
+ "TOGGLE_MODAL": "Bütün qısa yolları göstər",
+ "TITLE": {
+ "OPEN_CONVERSATION": "Söhbəti aç",
+ "RESOLVE_AND_NEXT": "Həll et və növbətiyə keç",
+ "NAVIGATE_DROPDOWN": "Açılan menyu elementləri arasında gəzin",
+ "RESOLVE_CONVERSATION": "Söhbəti həll et",
+ "GO_TO_CONVERSATION_DASHBOARD": "Söhbət Panelinə keç",
+ "ADD_ATTACHMENT": "Əlavə et",
+ "GO_TO_CONTACTS_DASHBOARD": "Kontaktlar Panelinə keç",
+ "TOGGLE_SIDEBAR": "Yan Paneli dəyişdir",
+ "GO_TO_REPORTS_SIDEBAR": "Hesabatlar yan panelinə keç",
+ "MOVE_TO_NEXT_TAB": "Söhbət siyahısında növbəti tab-a keç",
+ "GO_TO_SETTINGS": "Ayarlar bölməsinə keç",
+ "SWITCH_TO_PRIVATE_NOTE": "Şəxsi Qeydə keç",
+ "SWITCH_TO_REPLY": "Cavaba keç",
+ "TOGGLE_SNOOZE_DROPDOWN": "Gecikdirmə menyusunu açıb bağla"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent təyinatı",
+ "DESCRIPTION": "İş yükünü effektiv idarə etmək və söhbətləri gələn qutuların və agentlərin ehtiyaclarına əsasən yönləndirmək üçün siyasətləri müəyyən edin. Daha ətraflı öyrənin"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Təyinat siyasəti",
+ "DESCRIPTION": "Söhbətlərin inboxlarda necə təyin olunmasını idarə edin.",
+ "FEATURES": [
+ "Söhbətləri bərabər və ya mövcud tutuma görə təyin edin",
+ "Hər hansı bir agentin yüklənməsinin qarşısını almaq üçün ədalətli paylama qaydaları əlavə edin",
+ "Siyasətə daxilolmaları əlavə edin - hər daxilolma üçün bir siyasət"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent tutumu siyasəti",
+ "DESCRIPTION": "Agentlərin iş yükünü idarə edin.",
+ "FEATURES": [
+ "Hər daxilolma üçün maksimum söhbətləri təyin edin",
+ "Etiketlərə və vaxta əsaslanan istisnalar yaradın",
+ "Siyasətə agentlər əlavə edin - hər agent üçün bir siyasət"
+ ]
+ }
+ },
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Təyinat siyasəti",
+ "CREATE_POLICY": "Yeni siyasət"
+ },
+ "CARD": {
+ "ORDER": "Sifariş",
+ "PRIORITY": "Üstünlük",
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Passiv",
+ "POPOVER": "Əlavə edilmiş qutular",
+ "EDIT": "Redaktə et"
+ },
+ "NO_RECORDS_FOUND": "Təyinat siyasəti tapılmadı"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Təyinat siyasəti yaradın"
+ },
+ "CREATE_BUTTON": "Siyasət yaradın",
+ "API": {
+ "SUCCESS_MESSAGE": "Təyinat siyasəti uğurla yaradıldı",
+ "ERROR_MESSAGE": "Təyinat siyasətini yaratmaq mümkün olmadı",
+ "INBOX_LINKED": "Gələn qutu siyasətə qoşuldu"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Təyinat siyasətini redaktə et"
+ },
+ "EDIT_BUTTON": "Siyasəti yenilə",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Qutunu əlavə et",
+ "DESCRIPTION": "{inboxName} qutusu artıq başqa siyasətə bağlıdır. Onu bu siyasətə bağlamaq istədiyinizə əminsiniz? Bu, digər siyasətdən ayrılacaq.",
+ "CONFIRM_BUTTON_LABEL": "Davam et",
+ "CANCEL_BUTTON_LABEL": "Ləğv et"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Gələn qutunu siyasətə qoşun",
+ "DESCRIPTION": "Bu gələn qutunu təyin etmə siyasətinə qoşmaq istəyirsiniz?",
+ "LINK_BUTTON": "Gələn qutunu qoş",
+ "CANCEL_BUTTON": "Keç"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Təyinat siyasəti uğurla yeniləndi",
+ "ERROR_MESSAGE": "Təyinat siyasətini yeniləmək mümkün olmadı"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Qaydaya daxil olan qutu uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Qaydaya daxil olan qutunu əlavə etmək mümkün olmadı"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Qaydaya daxil olan qutu uğurla silindi",
+ "ERROR_MESSAGE": "Qaydaya daxil olan qutunu silmək mümkün olmadı"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Qaydanın adı:",
+ "PLACEHOLDER": "Siyasət adını daxil edin"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir:",
+ "PLACEHOLDER": "Təsviri daxil edin"
+ },
+ "STATUS": {
+ "LABEL": "Vəziyyət:",
+ "PLACEHOLDER": "Vəziyyəti seçin",
+ "ACTIVE": "Siyasət aktivdir",
+ "INACTIVE": "Siyasət aktiv deyil"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Təyinat sırası",
+ "ROUND_ROBIN": {
+ "LABEL": "Növbə ilə",
+ "DESCRIPTION": "Söhbətləri agentlər arasında bərabər paylayın."
+ },
+ "BALANCED": {
+ "LABEL": "Tarazlaşdırılmış",
+ "DESCRIPTION": "Söhbətlər mövcud tutuma əsasən təyin edilir.",
+ "PREMIUM_MESSAGE": "Tarazlı təyinat və agent tutumu idarəçiliyinə daxil olmaq üçün yüksəltmə edin.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Təyinat prioriteti",
+ "EARLIEST_CREATED": {
+ "LABEL": "Ən erkən yaradılan",
+ "DESCRIPTION": "Əvvəl yaradılan söhbət əvvəl təyin olunur."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Ən uzun gözləmə",
+ "DESCRIPTION": "Ən uzun müddət gözləyən söhbət əvvəlcə təyin olunur."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Ədalətli paylama siyasəti",
+ "DESCRIPTION": "Hər agentə müəyyən vaxt ərzində təyin oluna biləcək maksimum söhbət sayını təyin edin ki, heç bir agentin işi çox yüklənməsin. Bu tələb olunan sahə saatda 100 söhbət olaraq təyin edilmişdir.",
+ "INPUT_MAX": "Maksimum təyin et",
+ "DURATION": "Hər agent üçün söhbətlər hər"
+ },
+ "INBOXES": {
+ "LABEL": "Əlavə edilmiş qutular",
+ "DESCRIPTION": "Bu siyasətin tətbiq olunacağı qutuları əlavə edin.",
+ "ADD_BUTTON": "Qutu əlavə et",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Əlavə etmək üçün qutuları axtarın və seçin",
+ "ADD_BUTTON": "Əlavə et"
+ },
+ "EMPTY_STATE": "Bu siyasətə heç bir poçt qutusu əlavə edilməyib, başlamaq üçün poçt qutusu əlavə edin",
+ "API": {
+ "SUCCESS_MESSAGE": "Poçt qutusu siyasətə uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Poçt qutusunu siyasətə əlavə etmək mümkün olmadı"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Təyinat siyasəti uğurla silindi",
+ "ERROR_MESSAGE": "Təyinat siyasətini silmək mümkün olmadı"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agentin tutumu",
+ "CREATE_POLICY": "Yeni siyasət"
+ },
+ "CARD": {
+ "POPOVER": "Əlavə edilmiş agentlər",
+ "EDIT": "Redaktə et"
+ },
+ "NO_RECORDS_FOUND": "Agent tutumu siyasəti tapılmadı"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Agent tutumu siyasəti yaradın"
+ },
+ "CREATE_BUTTON": "Siyasət yaradın",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent tutumu siyasəti uğurla yaradıldı",
+ "ERROR_MESSAGE": "Agent tutumu siyasətini yaratmaq mümkün olmadı"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Agent tutumu siyasətini redaktə edin"
+ },
+ "EDIT_BUTTON": "Siyasəti yeniləyin",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Agent əlavə et",
+ "DESCRIPTION": "{agentName} artıq başqa siyasətə bağlıdır. Onu bu siyasətə bağlamaq istədiyinizə əminsiniz? Bu, digər siyasətdən ayrılacaq.",
+ "CONFIRM_BUTTON_LABEL": "Davam et",
+ "CANCEL_BUTTON_LABEL": "Ləğv et"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent tutumu siyasəti uğurla yeniləndi",
+ "ERROR_MESSAGE": "Agent tutumu siyasətini yeniləmək mümkün olmadı"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent siyasətə uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Agent siyasətə əlavə edilə bilmədi"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent siyasətdən uğurla çıxarıldı",
+ "ERROR_MESSAGE": "Siyasətdən agenti silmək mümkün olmadı"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Gələn qutu limiti uğurla əlavə edildi",
+ "ERROR_MESSAGE": "Gələn qutu limiti əlavə etmək mümkün olmadı"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Gələn qutu limiti uğurla yeniləndi",
+ "ERROR_MESSAGE": "Gələn qutu limitini yeniləmək mümkün olmadı"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Gələn qutu limiti uğurla silindi",
+ "ERROR_MESSAGE": "Gələn qutu limitini silmək mümkün olmadı"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Siyasətin adı:",
+ "PLACEHOLDER": "Siyasətin adını daxil edin"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Təsvir:",
+ "PLACEHOLDER": "Təsviri daxil edin"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Gələn qutusu tutumu limitləri",
+ "ADD_BUTTON": "Gələn qutusu əlavə et",
+ "FIELD": {
+ "SELECT_INBOX": "Gələn qutusunu seçin",
+ "MAX_CONVERSATIONS": "Maksimum söhbətlər",
+ "SET_LIMIT": "Limit təyin et"
+ },
+ "EMPTY_STATE": "Heç bir gələn qutu limiti təyin edilməyib"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Çıxarış qaydaları",
+ "DESCRIPTION": "Aşağıdakı şərtlərə cavab verən söhbətlər agentin tutumuna daxil edilməyəcək",
+ "TAGS": {
+ "LABEL": "Xüsusi etiketlərlə işarələnmiş söhbətləri çıxar",
+ "ADD_TAG": "etiket əlavə et",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Əlavə etmək üçün etiketləri axtarın və seçin"
+ },
+ "EMPTY_STATE": "Bu siyasətə əlavə edilmiş etiket yoxdur."
+ },
+ "DURATION": {
+ "LABEL": "Müəyyən edilmiş müddətdən köhnə söhbətləri istisna et",
+ "PLACEHOLDER": "Vaxtı təyin et"
+ }
+ },
+ "USERS": {
+ "LABEL": "Təyin olunmuş agentlər",
+ "DESCRIPTION": "Bu siyasətin tətbiq olunacağı agentləri əlavə edin.",
+ "ADD_BUTTON": "Agent əlavə et",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Əlavə etmək üçün agentləri axtarın və seçin",
+ "ADD_BUTTON": "Əlavə et"
+ },
+ "EMPTY_STATE": "Heç bir agent əlavə edilməyib",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent uğurla siyasətə əlavə edildi",
+ "ERROR_MESSAGE": "Agent siyasətə əlavə edilə bilmədi"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent tutumu siyasəti uğurla silindi",
+ "ERROR_MESSAGE": "Agent tutumu siyasətini silmək mümkün olmadı"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Siyasəti sil",
+ "DESCRIPTION": "Bu siyasəti silmək istədiyinizə əminsiniz? Bu əməliyyat geri qaytarıla bilməz.",
+ "CONFIRM_BUTTON_LABEL": "Sil",
+ "CANCEL_BUTTON_LABEL": "Ləğv et"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/signup.json b/app/javascript/dashboard/i18n/locale/az/signup.json
new file mode 100644
index 000000000..673ded57b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/signup.json
@@ -0,0 +1,57 @@
+{
+ "REGISTER": {
+ "TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
+ "TITLE": "Register",
+ "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
+ "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
+ "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "OAUTH": {
+ "GOOGLE_SIGNUP": "Sign up with Google"
+ },
+ "COMPANY_NAME": {
+ "LABEL": "Company name",
+ "PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
+ "ERROR": "Company name is too short."
+ },
+ "FULL_NAME": {
+ "LABEL": "Full name",
+ "PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
+ "ERROR": "Full name is too short."
+ },
+ "EMAIL": {
+ "LABEL": "Work email",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "Please enter a valid work email address."
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short.",
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Registration Successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Create account",
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Təsdiq e-poçtunu yenidən göndər",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/sla.json b/app/javascript/dashboard/i18n/locale/az/sla.json
new file mode 100644
index 000000000..9ab41fb82
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/sla.json
@@ -0,0 +1,117 @@
+{
+ "SLA": {
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "SLA Name",
+ "PLACEHOLDER": "SLA Name",
+ "REQUIRED_ERROR": "SLA name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "SLA for premium customers"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "LABEL": "First Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "NEXT_RESPONSE_TIME": {
+ "LABEL": "Next Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "RESOLUTION_TIME": {
+ "LABEL": "Resolution Time",
+ "PLACEHOLDER": "60"
+ },
+ "BUSINESS_HOURS": {
+ "LABEL": "Business Hours",
+ "PLACEHOLDER": "Only during business hours"
+ },
+ "THRESHOLD_TIME": {
+ "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "ADD": {
+ "TITLE": "Add SLA",
+ "DESC": "Friendly promises for great service!",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete SLA",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/snooze.json b/app/javascript/dashboard/i18n/locale/az/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/teamsSettings.json b/app/javascript/dashboard/i18n/locale/az/teamsSettings.json
new file mode 100644
index 000000000..f3ce7f167
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/teamsSettings.json
@@ -0,0 +1,124 @@
+{
+ "TEAMS_SETTINGS": {
+ "NEW_TEAM": "Create new team",
+ "HEADER": "Teams",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
+ "LIST": {
+ "404": "There are no teams created on this account.",
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
+ },
+ "CREATE_FLOW": {
+ "CREATE": {
+ "TITLE": "Create a new team",
+ "DESC": "Add a title and description to your new team."
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Add agents to team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
+ },
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "EDIT_FLOW": {
+ "CREATE": {
+ "TITLE": "Edit your team details",
+ "DESC": "Edit title and description to your team.",
+ "BUTTON_TEXT": "Update team"
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Update agents in team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
+ },
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "TEAM_FORM": {
+ "ERROR_MESSAGE": "Couldn't save the team details. Try again."
+ },
+ "AGENTS": {
+ "AGENT": "Agent",
+ "EMAIL": "Email",
+ "BUTTON_TEXT": "Add agents",
+ "ADD_AGENTS": "Adding Agents to your Team...",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
+ },
+ "ADD": {
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
+ "BUTTON_TEXT": "Add agents",
+ "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ },
+ "FINISH": {
+ "TITLE": "Your team is ready!",
+ "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
+ "BUTTON_TEXT": "Finish"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Team deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the team. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure you want to delete the team?",
+ "PLACE_HOLDER": "Please type {teamName} to confirm",
+ "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "SETTINGS": "Settings",
+ "FORM": {
+ "UPDATE": "Update team",
+ "CREATE": "Create team",
+ "NAME": {
+ "LABEL": "Team name",
+ "PLACEHOLDER": "Example: Sales, Customer Support"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Team Description",
+ "PLACEHOLDER": "Short description about this team."
+ },
+ "AUTO_ASSIGN": {
+ "LABEL": "Allow auto assign for this team."
+ },
+ "SUBMIT_CREATE": "Create team"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/webhooks.json b/app/javascript/dashboard/i18n/locale/az/webhooks.json
new file mode 100644
index 000000000..347c96893
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/webhooks.json
@@ -0,0 +1,5 @@
+{
+ "WEBHOOKS_SETTINGS": {
+ "HEADER": "Webhook Settings"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/az/whatsappTemplates.json
new file mode 100644
index 000000000..cf28312dc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/whatsappTemplates.json
@@ -0,0 +1,47 @@
+{
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/az/yearInReview.json b/app/javascript/dashboard/i18n/locale/az/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/az/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json b/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json
index 91d0cd40f..955004f7e 100644
--- a/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/bg/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "И",
"OR": "ИЛИ"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Равно на",
"not_equal_to": "Различно от",
- "contains": "Съдържа",
"does_not_contain": "Не съдържа",
"is_present": "Присъства",
"is_not_present": "Не присъства",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Равно на",
+ "notEqualTo": "Различно от",
+ "contains": "Съдържа",
+ "doesNotContain": "Не съдържа",
+ "isPresent": "Присъства",
+ "isNotPresent": "Не присъства",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Създаден в",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Изисква се стойност",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/bg/agentBots.json b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
index 2d10b7712..7911ddee6 100644
--- a/app/javascript/dashboard/i18n/locale/bg/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/bg/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Отмени",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +33,23 @@
}
},
"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",
+ "ACTIONS": "Действия"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
index 7380d7530..deda2adc4 100644
--- a/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Агенти",
"HEADER_BTN_TXT": "Добави агент",
"LOADING": "Извличане на списък с агенти",
- "SIDEBAR_TXT": "Агенти
Агент е член на вашия екип за поддръжка на клиенти.
Агентите ще могат да преглеждат и отговарят на съобщения от вашите потребители. Списъкът показва всички агенти във вашия акаунт.
Щракнете върху Добавяне на агент, за да добавите нов агент. Агентът, който добавите, ще получи имейл с връзка за потвърждение, за да активира акаунта си, след което те ще имат достъп до Chatwoot и ще могат да отговарят на съобщения.
Достъпът до функциите на Chatwoot се основава на следните роли.
Агент – Агентите с тази роля имат достъп само до входящи кутии, отчети и разговори. Те могат да присвояват разговори на други агенти или на себе си и да ги разрешават.
Администратор - Администраторът ще има достъп до всички функции на Chatwoot, активирани за вашия акаунт, включително настройки, заедно с всички нормални привилегии на агентите.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Администратор",
"AGENT": "Агент"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Няма асоцирани агенти към този акаунт",
"TITLE": "Управлявайте агентите в екипа си",
@@ -17,7 +19,8 @@
"STATUS": "Статус",
"ACTIONS": "Действия",
"VERIFIED": "Проверен",
- "VERIFICATION_PENDING": "Предстои проверка"
+ "VERIFICATION_PENDING": "Предстои проверка",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Добави агент в екипа си",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Не можа да се свърже с Woot сървър. Моля, опитайте отново по-късно"
}
},
+ "SEARCH_PLACEHOLDER": "Търсете агенти...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Няма намерени резултати."
},
@@ -103,6 +108,9 @@
"AGENT": "Изберете агент",
"TEAM": "Изберете екип"
},
+ "LIST": {
+ "NONE": "Нито един"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Няма намерени агенти",
diff --git a/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
index 8e30e3e7c..e312455bf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Персонализирани атрибути",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Търсене на атрибути...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Разговор",
+ "CONTACT": "Contact",
+ "COMPANY": "Фирма"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Създаване",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Изтриване ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Персонализирани атрибути",
"CONVERSATION": "Разговор",
- "CONTACT": "Контакт"
+ "CONTACT": "Контакт",
+ "COMPANY": "Фирма"
},
"LIST": {
- "TABLE_HEADER": [
- "Име",
- "Описание",
- "Тип",
- "Ключ"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "DESCRIPTION": "Описание",
+ "TYPE": "Тип",
+ "KEY": "Ключ"
+ },
"BUTTONS": {
"EDIT": "Редактирай",
"DELETE": "Изтрий"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/auditLogs.json b/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
index bfef5be29..eb0288402 100644
--- a/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/bg/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Няма резултати отговарящи на тази заявка",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP адрес"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP адрес"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 b6c377401..2d87adabe 100644
--- a/app/javascript/dashboard/i18n/locale/bg/automation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Добавяне правило за автоматизация",
+ "HEADER": "Автоматизация",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Добавяне правило за автоматизация",
"SUBMIT": "Създаване",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Име",
- "Описание",
- "Активен",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "ACTIVE": "Активен",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Действия"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Качване...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Изисква се стойност",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Нито един",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Note",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Входяща кутия",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Phone Number",
+ "STATUS": "Статус",
+ "BROWSER_LANGUAGE": "Език на браузъра",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Държава",
+ "COMPANY_NAME": "Фирма",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
index 76693323f..24ef578dd 100644
--- a/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/bg/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Изберете агент",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Отмени",
+ "SEARCH_INPUT_PLACEHOLDER": "Търсене",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Изберете екип",
"NONE": "Нито един",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/campaign.json b/app/javascript/dashboard/i18n/locale/bg/campaign.json
index 80252214b..c7b65800f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/bg/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Отмени",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Включен",
+ "DISABLED": "Изключен"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Съобщение",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Бот",
+ "FROM": "от",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Отмени",
+ "CREATE_BUTTON_TEXT": "Създаване",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Съобщение",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Създаване",
+ "CANCEL": "Отмени"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Изтрий",
- "CONFIRM": {
- "TITLE": "Потвърди изтриването",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Да, изтрий ",
- "NO": "Не, запази "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Завършено",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Отмени",
+ "CREATE_BUTTON_TEXT": "Създаване",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Съобщение",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Създаване",
+ "CANCEL": "Отмени"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Завършено",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Отмени",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Отмени"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Сигурни ли сте за изтриването?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Изтрий",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Съобщение",
- "INBOX": "Входяща кутия",
- "STATUS": "Статус",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Създаден в"
- },
- "BUTTONS": {
- "ADD": "Добавяне",
- "EDIT": "Редактирай",
- "DELETE": "Изтрий"
- },
- "STATUS": {
- "ENABLED": "Включен",
- "DISABLED": "Изключен",
- "COMPLETED": "Завършено",
- "ACTIVE": "Активен"
- },
- "SENDER": {
- "BOT": "Бот"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
index 9929536ed..5dac04392 100644
--- a/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Готови отговори",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Няма резултати отговарящи на тази заявка.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Няма налични готови отговори в този акаунт.",
"TITLE": "Управлявайте готовите отговори",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Съдържание",
- "Действия"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Съдържание",
+ "ACTIONS": "Действия"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/bg/chatlist.json b/app/javascript/dashboard/i18n/locale/bg/chatlist.json
index 43caf705c..35e10da82 100644
--- a/app/javascript/dashboard/i18n/locale/bg/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/bg/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Няма активни разговори в тази група."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Разговори",
"MENTION_HEADING": "Споменавания",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Локация"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "сподели линк"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Няма налично съдържание",
"HIDE_QUOTED_TEXT": "Скриване на цитирания текст",
"SHOW_QUOTED_TEXT": "Показване на цитирания текст",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/companies.json b/app/javascript/dashboard/i18n/locale/bg/companies.json
new file mode 100644
index 000000000..59604e5f6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Име",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Създаден в",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Контакти",
+ "HISTORY": "History",
+ "NOTES": "Бележки"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Търсене на атрибути...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Зареждане на контактите...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Фирма",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Отмени"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Име",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/components.json b/app/javascript/dashboard/i18n/locale/bg/components.json
new file mode 100644
index 000000000..19a7801ef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Няма намерени резултати.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Няма намерени резултати.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Отмени",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/contact.json b/app/javascript/dashboard/i18n/locale/bg/contact.json
index 236a68ea1..8d35e6b3a 100644
--- a/app/javascript/dashboard/i18n/locale/bg/contact.json
+++ b/app/javascript/dashboard/i18n/locale/bg/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP адрес",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "Ново съобщение",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Няма предишни разговори асоцирани с този контакт.",
"TITLE": "Предишни разговори"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Персонализирани атрибути",
"CONTACT_LABELS": "Етикети на контакта",
- "PREVIOUS_CONVERSATIONS": "Предишни разговори"
+ "PREVIOUS_CONVERSATIONS": "Предишни разговори",
+ "NO_RECORDS_FOUND": "Няма намерени атрибути"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Редактиране на контакта",
"DESC": "Редактиране детайлите на контакта"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Нов контакт",
- "TITLE": "Създаване на нов контакт",
- "DESC": "Добавете основна информация за конктакта."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Внасяне",
- "TITLE": "Внасяне на контакти",
- "DESC": "Внасяне на контакти чрез CSV файл.",
- "DOWNLOAD_LABEL": "Свали шаблонен CSV.",
- "FORM": {
- "LABEL": "CSV файл",
- "SUBMIT": "Внасяне",
- "CANCEL": "Отмени"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Възникна грешка, моля опитайте отново"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Възникна грешка, моля опитайте отново",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Потвърди изтриването",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Изтриване на контакта",
"TITLE": "Изтриване на контакта",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Контакти",
- "FIELDS": "Полета на контакта",
- "SEARCH_BUTTON": "Търсене",
- "SEARCH_INPUT_PLACEHOLDER": "Търсене на контакти",
- "FILTER_CONTACTS": "Филтър",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Зареждане на контактите...",
- "404": "Няма контакти отговарящи на търсенети ви 🔍",
- "NO_CONTACTS": "Няма налични контакти",
"TABLE_HEADER": {
- "NAME": "Име",
- "PHONE_NUMBER": "Телефон",
- "CONVERSATIONS": "Разговори",
- "LAST_ACTIVITY": "Последна активност",
- "CREATED_AT": "Created At",
- "COUNTRY": "Държава",
- "CITY": "Град",
- "SOCIAL_PROFILES": "Социални профили",
- "COMPANY": "Фирма",
- "EMAIL_ADDRESS": "Имейл адрес"
- },
- "VIEW_DETAILS": "Вижте детайлите"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Контакти",
- "LOADING": "Зареждане профила на контакта..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Добавяне",
- "TITLE": "Shift + Enter за създаване на задача"
- },
- "FOOTER": {
- "DUE_DATE": "Краен срок",
- "LABEL_TITLE": "Задаване на тип"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Извличане на бележки...",
- "NOT_AVAILABLE": "Няма създадени бележки за този контакт",
- "HEADER": {
- "TITLE": "Бележки"
- },
- "LIST": {
- "LABEL": "добавена бележка"
- },
- "ADD": {
- "BUTTON": "Добавяне",
- "PLACEHOLDER": "Добавяне на бележка",
- "TITLE": "Shift + Enter за създаване на бележка"
- },
- "CONTENT_HEADER": {
- "DELETE": "Изтриване на бележка"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Дейности"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "бележки",
- "PILL_BUTTON_EVENTS": "събития",
- "PILL_BUTTON_CONVO": "разговори"
+ "SOCIAL_PROFILES": "Социални профили"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Добавяне на атрибут",
"BUTTON": "Добавяне на персонализиран атрибут",
- "NOT_AVAILABLE": "Няма персонализирани атрибути за този контакт.",
"COPY_SUCCESSFUL": "Успешно копиране в клипборда",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Копиране на атрибут",
"DELETE": "Изтриване на атрибут",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Резюме",
- "DELETE_WARNING": "Контакт от %{primaryContactName} ще бъде изтрит.",
- "ATTRIBUTE_WARNING": "Детайлите на контакт %{primaryContactName} ще бъдат копирани в %{parentContactName}."
+ "DELETE_WARNING": "Контакт от {primaryContactName} ще бъде изтрит.",
+ "ATTRIBUTE_WARNING": "Детайлите на контакт {primaryContactName} ще бъдат копирани в {parentContactName}."
},
"SEARCH": {
- "ERROR": "ГРЕШКА"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Обединяване на контакти",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Успешно обединяване на контакта",
"ERROR_MESSAGE": "Контактите не бяха обединени, опитайте отново!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Контакти",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Съобщение",
+ "SEND_MESSAGE": "Изпрати съобщение",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Контакти"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Този имейл се използва от друг контакт.",
+ "PHONE_NUMBER_DUPLICATE": "Телефона се използва от друг контакт.",
+ "SUCCESS_MESSAGE": "Успешно запазване на контакта",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Внасяне на контакти чрез CSV файл.",
+ "DOWNLOAD_LABEL": "Свали шаблонен CSV.",
+ "LABEL": "CSV файл:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "Отмени",
+ "IMPORT": "Внасяне",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Възникна грешка, моля опитайте отново"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Възникна грешка, моля опитайте отново"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Име",
+ "EMAIL": "Имейл",
+ "PHONE_NUMBER": "Телефон",
+ "COMPANY": "Фирма",
+ "COUNTRY": "Държава",
+ "CITY": "Град",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Създаден в"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Име",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Потвърди изтриването",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Да, изтрий",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Име",
+ "EMAIL": "Имейл",
+ "PHONE_NUMBER": "Телефон",
+ "IDENTIFIER": "Идентификатор",
+ "COUNTRY": "Държава",
+ "CITY": "Град",
+ "COMPANY": "Фирма",
+ "CREATED_AT": "Създаден в",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Референтна връзка",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Прилагане на филтри",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Филтриране на контакти",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Вижте детайлите",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Редактиране детайлите на контакта",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Този имейл се използва от друг контакт."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Телефона се използва от друг контакт."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Въведете име на фирма"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Изтриване на контакта",
+ "DELETE_DIALOG": {
+ "TITLE": "Потвърди изтриването",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Да, изтрий",
+ "API": {
+ "SUCCESS_MESSAGE": "Контакта е изтрит успешно",
+ "ERROR_MESSAGE": "Контактът не можа да се изтрие. Моля, опитайте отново по-късно."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Бележки",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Няма предишни разговори асоцирани с този контакт"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Изберете стойност",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Необходима е валидна стойност",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Невалиден URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Няма намерени атрибути",
+ "API": {
+ "SUCCESS_MESSAGE": "Атрибута е обновен успешно",
+ "DELETE_SUCCESS_MESSAGE": "Успешно изтриване на атрибута",
+ "UPDATE_ERROR": "Атрибута не бе обновен. Моля, опитайте отново по-късно",
+ "DELETE_ERROR": "Атрибута не бе изтрита. Моля, опитайте отново по-късно"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Обединяване на контакти",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Основен контакт",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Да бъде изтрит",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Търсене на контакт",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Успешно обединяване на контакта",
+ "ERROR_MESSAGE": "Контактите не бяха обединени, опитайте отново!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Отмени",
+ "CONFIRM": "Обединяване на контакти"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Добавяне на бележка",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Няма контакти отговарящи на търсенети ви 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Изтрий",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Изтриване на контакта"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "До:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Тема :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Напишете съобщението си тук..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Изпрати съобщение"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Изпрати съобщение"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/contactFilters.json b/app/javascript/dashboard/i18n/locale/bg/contactFilters.json
index 53be93430..052867d95 100644
--- a/app/javascript/dashboard/i18n/locale/bg/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/bg/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Изисква се стойност"
+ },
"ATTRIBUTES": {
"NAME": "Име",
"EMAIL": "Имейл",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Последна активност",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/bg/contentTemplates.json b/app/javascript/dashboard/i18n/locale/bg/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/conversation.json b/app/javascript/dashboard/i18n/locale/bg/conversation.json
index ec6bd779a..43b582b2f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/bg/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " to get started",
"NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
"SEARCH_MESSAGES": "Search for messages in conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Отворен",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Агенти",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Нито един",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "Няма намерени резултати",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Дайте на copilot допълнителни инструкции или питайте нещо друго... Натиснете enter, за да изпратите последващо съобщение",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Reply",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot мисли",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Отмени"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Бот",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Изтрий",
"CANCEL": "Отмени"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Контакт",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Отмени",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Етикети на разговора",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Предишни разговори",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Предстоящ",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "Няма намерени атрибути",
"UPDATE": {
"SUCCESS": "Атрибута е обновен успешно",
"ERROR": "Атрибута не бе обновен. Моля, опитайте отново по-късно"
@@ -297,17 +449,18 @@
"TO": "До",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Няма намерени резултати",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/customRole.json b/app/javascript/dashboard/i18n/locale/bg/customRole.json
new file mode 100644
index 000000000..86481d532
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Няма резултати отговарящи на тази заявка.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "DESCRIPTION": "Описание",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Действия"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Име",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Отмени",
+ "API": {
+ "ERROR_MESSAGE": "Не можа да се свърже с Woot сървър. Моля, опитайте отново по-късно"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Изпращане",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Редактирай",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Обновяване",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Изтрий",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Не можа да се свърже с Woot сървър. Моля, опитайте отново по-късно"
+ },
+ "CONFIRM": {
+ "TITLE": "Потвърди изтриването",
+ "MESSAGE": "Сигурни ли сте за изтриването ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/datePicker.json b/app/javascript/dashboard/i18n/locale/bg/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/general.json b/app/javascript/dashboard/i18n/locale/bg/general.json
new file mode 100644
index 000000000..d9f377bdc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Търсене",
+ "EMPTY_STATE": "Няма намерени резултати"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/generalSettings.json b/app/javascript/dashboard/i18n/locale/bg/generalSettings.json
index c9de6f519..9b89ae948 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Разговор",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
index 776058f54..fbb944c92 100644
--- a/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/bg/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Качване...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Back",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Изтрий"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Мой",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Изтрий",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Изтрий",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Име",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Създаване",
+ "EDIT": "Обновяване",
+ "CANCEL": "Отмени"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Изтрий"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Статус",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Създаване",
+ "NAME": {
+ "LABEL": "Име",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Име",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Редактирай",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Изтрий"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Remove"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Качване...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Отмени",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Завършено",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/inbox.json b/app/javascript/dashboard/i18n/locale/bg/inbox.json
index adae4bc9c..8cdc2ab89 100644
--- a/app/javascript/dashboard/i18n/locale/bg/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/bg/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Входяща кутия",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Ново съобщение",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Ново съобщение",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Няма налично съдържание",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
index 56859a357..2867f4db2 100644
--- a/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "There are no inboxes attached to this account."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Choose Channel",
+ "BODY": "Choose the provider you want to integrate with Chatwoot."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Create Inbox",
+ "BODY": "Authenticate your account and create an inbox."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the created inbox."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "You are all set to go!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Inbox Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Select a page from the list",
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Please enter a valid URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website Domain",
"PLACEHOLDER": "Enter your website domain (eg: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "This field is required"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
+ "LABEL": "Телефон",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "This field is required"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "This field is required"
},
"APPLICATION_ID": {
@@ -213,17 +242,24 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Inbox Name",
"PLACEHOLDER": "Please enter an inbox name",
"ERROR": "This field is required"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
+ "LABEL": "Телефон",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Phone Number",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Channel Name",
"PLACEHOLDER": "Please enter a channel name",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Click here",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Агенти",
"DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authenticating you with Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Take me there",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reauthorize",
"VIEW": "View",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Изключен"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Включен",
- "DISABLED": "Изключен"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Агенти",
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Обновяване",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Активен",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Отмени",
+ "CONFIRM_DELETE": "Изтрий",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Тип:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Чатете с нас",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Чатете с нас"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Обикновено отговаряме до няколко минути",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Имейл",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/index.js b/app/javascript/dashboard/i18n/locale/bg/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/bg/index.js
+++ b/app/javascript/dashboard/i18n/locale/bg/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
index 427c4e9f3..d9fffc512 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Включен",
"DISABLED": "Изключен"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Входяща кутия",
+ "ACTIONS": "Действия",
"DELETE": {
"BUTTON_TEXT": "Изтрий"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Създаване",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Отмени"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Прекъсване"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/integrations.json b/app/javascript/dashboard/i18n/locale/bg/integrations.json
index bb736e1e6..419aba43e 100644
--- a/app/javascript/dashboard/i18n/locale/bg/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/bg/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Отмени",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Отмени",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Please enter a valid URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "There are no webhooks configured for this account.",
"TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Действия"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Действия"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Редактирай",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Потвърди изтриването",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Да, изтрий ",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Изтрий",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Име",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Действия"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Потвърди изтриването",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Създаване",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Изберете екип",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Статус",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Създаване",
+ "CANCEL": "Отмени",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Статус",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Етикети",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Отмени"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Научете повече",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Асистенти",
+ "SWITCH_ASSISTANT": "Превключване между асистенти",
+ "NEW_ASSISTANT": "Създайте асистент",
+ "EMPTY_LIST": "Не са намерени асистенти, моля създайте един, за да започнете"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Започнете с Copilot",
+ "KICK_OFF_MESSAGE": "Имате нужда от бързо резюме, искате да проверите минали разговори или да създадете по-добър отговор? Copilot е тук, за да ускори нещата.",
+ "SEND_MESSAGE": "Изпрати съобщение...",
+ "EMPTY_MESSAGE": "Възникна грешка при генериране на отговора. Моля, опитайте отново.",
+ "LOADER": "Captain мисли",
+ "YOU": "You",
+ "USE": "Използвай това",
+ "RESET": "Нулиране",
+ "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": "You",
+ "ASSISTANT": "Асистент",
+ "MESSAGE_PLACEHOLDER": "Напишете вашето съобщение...",
+ "HEADER": "Площадка",
+ "DESCRIPTION": "Използвайте тази площадка, за да изпращате съобщения до вашия асистент и да проверите дали отговаря точно, бързо и в очаквания тон.",
+ "CREDIT_NOTE": "Изпратените съобщения тук ще се броят към вашите кредити на Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Надградете, за да използвате Captain AI",
+ "AVAILABLE_ON": "Captain не е наличен в безплатния план.",
+ "UPGRADE_PROMPT": "Надградете вашия план, за да получите достъп до нашите асистенти, copilot и още.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI е наличен само в Enterprise плановете.",
+ "UPGRADE_PROMPT": "Надградете вашия план, за да получите достъп до нашите асистенти, copilot и още.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Използвали сте над 80% от лимита си за отговори. За да продължите да използвате Captain AI, моля надградете.",
+ "DOCUMENTS": "Достигнат е лимитът за документи. Надградете, за да продължите да използвате Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Отмени",
+ "CREATE": "Създаване",
+ "EDIT": "Обновяване"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "Име",
+ "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": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Изтрий"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Отмени",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Изтрий"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Отмени",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Изтрий"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Отмени"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Отмени",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Изтрий",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Тип"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Изтрий",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Всички"
+ },
+ "STATUS": {
+ "TITLE": "Статус",
+ "PENDING": "Предстоящ",
+ "APPROVED": "Approved",
+ "ALL": "Всички"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Редактирай",
+ "DELETE_RESPONSE": "Изтрий"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Прекъсване"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Входяща кутия",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
index 0a47cba1b..00d569edf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/bg/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Търсене на етикети...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Няма резултати отговарящи на тази заявка",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Име",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "DESCRIPTION": "Описание",
+ "COLOR": "Color",
+ "ACTION": "Действия"
+ }
},
"FORM": {
"NAME": {
@@ -24,7 +29,7 @@
"VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
},
"DESCRIPTION": {
- "LABEL": "Description",
+ "LABEL": "Описание",
"PLACEHOLDER": "Label Description"
},
"COLOR": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/bg/login.json b/app/javascript/dashboard/i18n/locale/bg/login.json
index ee3712235..87b2016d0 100644
--- a/app/javascript/dashboard/i18n/locale/bg/login.json
+++ b/app/javascript/dashboard/i18n/locale/bg/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email eg: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/macros.json b/app/javascript/dashboard/i18n/locale/bg/macros.json
index 15424edeb..dc8dca5bf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/macros.json
+++ b/app/javascript/dashboard/i18n/locale/bg/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Име",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Име",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Действия"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Изисква се стойност",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/mfa.json b/app/javascript/dashboard/i18n/locale/bg/mfa.json
new file mode 100644
index 000000000..b503239fb
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Отмени",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Отмени",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Отмени",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/onboarding.json b/app/javascript/dashboard/i18n/locale/bg/onboarding.json
new file mode 100644
index 000000000..d7c960002
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/report.json b/app/javascript/dashboard/i18n/locale/bg/report.json
index 9b59a5bab..1192c874e 100644
--- a/app/javascript/dashboard/i18n/locale/bg/report.json
+++ b/app/javascript/dashboard/i18n/locale/bg/report.json
@@ -3,7 +3,7 @@
"HEADER": "Разговори",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Resolution Count",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Няма намерени резултати"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Търсете агенти"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Търсене на етикети"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Търсете екипи"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Разговори",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Търсете агенти",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Търсете екипи",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Агент"
+ },
+ "INBOXES": {
+ "LABEL": "Входяща кутия"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Агент",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Разговор",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Отмени",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Агент",
- "OPEN": "OPEN",
+ "OPEN": "Отворен",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Статус"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Отворен",
"UNATTENDED": "Unattended",
"STATUS": "Статус"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Няма намерени резултати",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Входяща кутия",
+ "AGENTS": "Агент",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Разговор",
+ "AGENT": "Агент"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/search.json b/app/javascript/dashboard/i18n/locale/bg/search.json
index 05461367c..8396cd0e4 100644
--- a/app/javascript/dashboard/i18n/locale/bg/search.json
+++ b/app/javascript/dashboard/i18n/locale/bg/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Всички",
+ "ALL": "All results",
"CONTACTS": "Контакти",
"CONVERSATIONS": "Разговори",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Контакти",
"CONVERSATIONS": "Разговори",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Бот",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "от",
- "EMAIL": "имейл"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Входяща кутия",
+ "AGENTS": "Агенти",
+ "CONTACTS": "Контакти",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "Няма намерени агенти",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/settings.json b/app/javascript/dashboard/i18n/locale/bg/settings.json
index 3c34700b4..d3079a05d 100644
--- a/app/javascript/dashboard/i18n/locale/bg/settings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
"AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profile Image",
"ERROR": "Please fix form errors",
"REMOVE_IMAGE": "Remove",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,45 @@
"NOTE": "Updating your password would reset your logins in multiple devices.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "NOTE": "This token can be used if you are building an API based integration",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Нито един",
+ "MINE": "Assigned",
+ "ALL": "Всички",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "Нито един",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Email Notifications",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
"CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Имейл",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Your notification preferences are updated successfully",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "REQUEST_PUSH": "Enable push notifications",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profile Image"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Busy",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "days trial remaining.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Качване...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Изпращане"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifying...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Разговори",
- "INBOX": "Входяща кутия",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Споменавания",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Контакти",
+ "ACTIVE": "Активен",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxes",
+ "CAPTAIN_SETTINGS": "Settings",
"HOME": "Home",
"AGENTS": "Агенти",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Разговори",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Бот",
"REPORTS_AGENT": "Агенти",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Входяща кутия",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Settings"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Чатете с нас"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Отмени",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Търсене на атрибути"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Отмени"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Име на фирма",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Изпращане"
+ "SUBMIT": "Изпращане",
+ "CANCEL": "Отмени"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Активен",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Редактирай"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Отмени"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Статус:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Добавяне"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Редактирай"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Отмени"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Описание:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Добавяне"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Изтрий",
+ "CANCEL_BUTTON_LABEL": "Отмени"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/signup.json b/app/javascript/dashboard/i18n/locale/bg/signup.json
index aa9669b89..4d5218e9f 100644
--- a/app/javascript/dashboard/i18n/locale/bg/signup.json
+++ b/app/javascript/dashboard/i18n/locale/bg/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Не можа да се свърже с Woot сървър. Моля, опитайте отново по-късно"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/sla.json b/app/javascript/dashboard/i18n/locale/bg/sla.json
index 6bf76deec..25ca0f4bf 100644
--- a/app/javascript/dashboard/i18n/locale/bg/sla.json
+++ b/app/javascript/dashboard/i18n/locale/bg/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Няма резултати отговарящи на тази заявка",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Име",
- "Описание",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Възникна грешка, моля опитайте отново"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Възникна грешка, моля опитайте отново"
+ },
+ "CONFIRM": {
+ "TITLE": "Потвърди изтриването",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Да, изтрий ",
+ "NO": "Не, запази "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/snooze.json b/app/javascript/dashboard/i18n/locale/bg/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json b/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
index 008676de7..f44bd0720 100644
--- a/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/bg/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Търсете екипи...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "Нито един"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Създаване",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "ИМЕЙЛ",
+ "AGENT": "Агент",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/bg/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/bg/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/bg/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/bg/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/bg/yearInReview.json b/app/javascript/dashboard/i18n/locale/bg/yearInReview.json
new file mode 100644
index 000000000..6510ed004
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bg/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "разговори",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json b/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json
new file mode 100644
index 000000000..a991cb25b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/advancedFilters.json
@@ -0,0 +1,119 @@
+{
+ "FILTER": {
+ "TITLE": "Filter conversations",
+ "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
+ "EDIT_CUSTOM_FILTER": "Edit Folder",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
+ "ADD_NEW_FILTER": "Add filter",
+ "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBMIT_BUTTON_LABEL": "Apply filters",
+ "UPDATE_BUTTON_LABEL": "Update folder",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear filters",
+ "FOLDER_LABEL": "Folder Name",
+ "FOLDER_QUERY_LABEL": "Folder Query",
+ "EMPTY_VALUE_ERROR": "Value is required.",
+ "TOOLTIP_LABEL": "Filter conversations",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "INPUT_PLACEHOLDER": "Enter value",
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_less_than": "Is lesser than",
+ "days_before": "Is x days before",
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
+ },
+ "ATTRIBUTE_LABELS": {
+ "TRUE": "True",
+ "FALSE": "False"
+ },
+ "ATTRIBUTES": {
+ "STATUS": "Status",
+ "ASSIGNEE_NAME": "Assignee name",
+ "INBOX_NAME": "Inbox name",
+ "TEAM_NAME": "Team name",
+ "CONVERSATION_IDENTIFIER": "Conversation identifier",
+ "CAMPAIGN_NAME": "Campaign name",
+ "LABELS": "Labels",
+ "BROWSER_LANGUAGE": "Browser language",
+ "PRIORITY": "Priority",
+ "COUNTRY_NAME": "Country name",
+ "REFERER_LINK": "Referer link",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard filters",
+ "ADDITIONAL_FILTERS": "Additional filters",
+ "CUSTOM_ATTRIBUTES": "Custom attributes"
+ },
+ "CUSTOM_VIEWS": {
+ "ADD": {
+ "TITLE": "Do you want to save this filter?",
+ "LABEL": "Name this filter",
+ "PLACEHOLDER": "Name your filter to refer it later.",
+ "ERROR_MESSAGE": "Name is required.",
+ "SAVE_BUTTON": "Save filter",
+ "CANCEL_BUTTON": "Cancel",
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder created successfully.",
+ "ERROR_MESSAGE": "Error while creating folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment created successfully.",
+ "ERROR_MESSAGE": "Error while creating segment."
+ }
+ },
+ "EDIT": {
+ "EDIT_BUTTON": "Edit folder"
+ },
+ "DELETE": {
+ "DELETE_BUTTON": "Delete filter",
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete the filter ",
+ "YES": "Yes, delete",
+ "NO": "No, keep it"
+ }
+ },
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting segment."
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/agentBots.json b/app/javascript/dashboard/i18n/locale/bn/agentBots.json
new file mode 100644
index 000000000..764a9c0fa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/agentBots.json
@@ -0,0 +1,117 @@
+{
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
+ "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "SUBMIT": "Update",
+ "DISCONNECT": "Disconnect bot",
+ "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
+ "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
+ "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
+ "SELECT_PLACEHOLDER": "Select bot"
+ },
+ "ADD": {
+ "TITLE": "Add Bot",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot added successfully.",
+ "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ }
+ },
+ "LIST": {
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "Fetching bots...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "TITLE": "Delete bot",
+ "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."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit bot",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot updated successfully.",
+ "ERROR_MESSAGE": "Could not update bot. Please try again."
+ }
+ },
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "গোপন কোড ক্লিপবোর্ডে কপি করুন",
+ "COPY_SUCCESS": "গোপন কোড ক্লিপবোর্ডে কপি হয়েছে",
+ "TOGGLE": "গোপন কোডের দৃশ্যমানতা টগল করুন",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "সম্পন্ন",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json
new file mode 100644
index 000000000..4fbb8fe80
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/agentMgmt.json
@@ -0,0 +1,127 @@
+{
+ "AGENT_MGMT": {
+ "HEADER": "এজেন্ট",
+ "HEADER_BTN_TXT": "এজেন্ট যোগ করুন",
+ "LOADING": "এজেন্ট তালিকা আনছে",
+ "DESCRIPTION": "একজন এজেন্ট হলেন আপনার গ্রাহক সাপোর্ট দলের সদস্য যিনি ব্যবহারকারীর বার্তা দেখতে এবং উত্তর দিতে পারেন। নিচের তালিকায় আপনার অ্যাকাউন্টের সব এজেন্ট দেখানো হয়েছে।",
+ "LEARN_MORE": "ব্যবহারকারীর ভূমিকা সম্পর্কে জানুন",
+ "AGENT_TYPES": {
+ "ADMINISTRATOR": "প্রশাসক",
+ "AGENT": "এজেন্ট"
+ },
+ "COUNT": "{n} এজেন্ট | {n} এজেন্ট",
+ "LIST": {
+ "404": "এই অ্যাকাউন্টে কোনো এজেন্ট নেই",
+ "TITLE": "আপনার দলের এজেন্ট পরিচালনা করুন",
+ "DESC": "আপনি আপনার দলে এজেন্ট যোগ/অপসারণ করতে পারেন।",
+ "NAME": "নাম",
+ "EMAIL": "ইমেইল",
+ "STATUS": "অবস্থা",
+ "ACTIONS": "কর্ম",
+ "VERIFIED": "যাচাই করা হয়েছে",
+ "VERIFICATION_PENDING": "যাচাই প্রক্রিয়াধীন",
+ "AVAILABLE_CUSTOM_ROLE": "উপলব্ধ কাস্টম ভূমিকার অনুমতিসমূহ"
+ },
+ "ADD": {
+ "TITLE": "আপনার দলে এজেন্ট যোগ করুন",
+ "DESC": "আপনি এমন ব্যক্তিদের যোগ করতে পারেন যারা আপনার ইনবক্সের জন্য সাপোর্ট পরিচালনা করতে পারবেন।",
+ "CANCEL_BUTTON_TEXT": "বাতিল করুন",
+ "FORM": {
+ "NAME": {
+ "LABEL": "এজেন্টের নাম",
+ "PLACEHOLDER": "এজেন্টের নাম লিখুন"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "ভূমিকা",
+ "PLACEHOLDER": "একটি ভূমিকা নির্বাচন করুন",
+ "ERROR": "ভূমিকা আবশ্যক"
+ },
+ "EMAIL": {
+ "LABEL": "ইমেইল ঠিকানা",
+ "PLACEHOLDER": "এজেন্টের ইমেইল ঠিকানা লিখুন"
+ },
+ "SUBMIT": "এজেন্ট যোগ করুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট সফলভাবে যোগ করা হয়েছে",
+ "EXIST_MESSAGE": "এজেন্টের ইমেইল ইতিমধ্যে ব্যবহৃত, অনুগ্রহ করে অন্য ইমেইল ঠিকানা ব্যবহার করুন",
+ "ERROR_MESSAGE": "Woot Server-এ সংযোগ করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "মুছে ফেলুন",
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "Woot Server-এ সংযোগ করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "CONFIRM": {
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে মুছে ফেলতে চান ",
+ "YES": "হ্যাঁ, মুছে ফেলুন ",
+ "NO": "না, রাখুন "
+ }
+ },
+ "EDIT": {
+ "TITLE": "এজেন্ট সম্পাদনা করুন",
+ "FORM": {
+ "NAME": {
+ "LABEL": "এজেন্টের নাম",
+ "PLACEHOLDER": "এজেন্টের নাম লিখুন"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "ভূমিকা",
+ "PLACEHOLDER": "একটি ভূমিকা নির্বাচন করুন",
+ "ERROR": "ভূমিকা আবশ্যক"
+ },
+ "EMAIL": {
+ "LABEL": "ইমেইল ঠিকানা",
+ "PLACEHOLDER": "এজেন্টের ইমেইল ঠিকানা লিখুন"
+ },
+ "AGENT_AVAILABILITY": {
+ "LABEL": "উপলব্ধতা",
+ "PLACEHOLDER": "একটি উপলব্ধতা অবস্থা নির্বাচন করুন",
+ "ERROR": "উপলব্ধতা আবশ্যক"
+ },
+ "SUBMIT": "এজেন্ট সম্পাদনা করুন"
+ },
+ "BUTTON_TEXT": "সম্পাদনা করুন",
+ "CANCEL_BUTTON_TEXT": "বাতিল করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "Woot Server-এ সংযোগ করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "PASSWORD_RESET": {
+ "ADMIN_RESET_BUTTON": "পাসওয়ার্ড রিসেট করুন",
+ "ADMIN_SUCCESS_MESSAGE": "পাসওয়ার্ড রিসেট নির্দেশনা সহ একটি ইমেইল এজেন্টকে পাঠানো হয়েছে",
+ "SUCCESS_MESSAGE": "এজেন্টের পাসওয়ার্ড সফলভাবে রিসেট হয়েছে",
+ "ERROR_MESSAGE": "Woot Server-এ সংযোগ করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "এজেন্ট অনুসন্ধান করুন...",
+ "NO_RESULTS": "আপনার অনুসন্ধানের সাথে মিলিত কোনো এজেন্ট পাওয়া যায়নি",
+ "SEARCH": {
+ "NO_RESULTS": "কোনো ফলাফল পাওয়া যায়নি।"
+ },
+ "MULTI_SELECTOR": {
+ "PLACEHOLDER": "কিছুই নয়",
+ "TITLE": {
+ "AGENT": "এজেন্ট নির্বাচন করুন",
+ "TEAM": "দল নির্বাচন করুন"
+ },
+ "LIST": {
+ "NONE": "কিছুই নয়"
+ },
+ "SEARCH": {
+ "NO_RESULTS": {
+ "AGENT": "কোনো এজেন্ট পাওয়া যায়নি",
+ "TEAM": "কোনো দল পাওয়া যায়নি"
+ },
+ "PLACEHOLDER": {
+ "AGENT": "এজেন্ট অনুসন্ধান করুন",
+ "TEAM": "দল অনুসন্ধান করুন",
+ "INPUT": "এজেন্টদের জন্য অনুসন্ধান করুন"
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json
new file mode 100644
index 000000000..6c4a92d40
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/attributesMgmt.json
@@ -0,0 +1,147 @@
+{
+ "ATTRIBUTES_MGMT": {
+ "HEADER": "Custom Attributes",
+ "HEADER_BTN_TXT": "Add Custom Attribute",
+ "LOADING": "Fetching custom attributes",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "কোম্পানি"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
+ "ADD": {
+ "TITLE": "Add Custom Attribute",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Display Name",
+ "PLACEHOLDER": "Enter custom attribute display name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter custom attribute description",
+ "ERROR": "Description is required"
+ },
+ "MODEL": {
+ "LABEL": "Applies to",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Model is required"
+ },
+ "TYPE": {
+ "LABEL": "Type",
+ "PLACEHOLDER": "Please select a type",
+ "ERROR": "Type is required",
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter value and press enter key",
+ "ERROR": "Must have at least one value"
+ }
+ },
+ "KEY": {
+ "LABEL": "Key",
+ "PLACEHOLDER": "Enter custom attribute key",
+ "ERROR": "Key is required",
+ "IN_VALID": "Invalid key"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
+ "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure want to delete - {attributeName}",
+ "PLACE_HOLDER": "Please type {attributeName} to confirm",
+ "MESSAGE": "Deleting will remove the custom attribute",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Attribute",
+ "UPDATE_BUTTON_TEXT": "Update",
+ "TYPE": {
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter values and press enter key"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
+ "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ }
+ },
+ "TABS": {
+ "HEADER": "Custom Attributes",
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "কোম্পানি"
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
+ "BUTTONS": {
+ "EDIT": "Edit",
+ "DELETE": "Delete"
+ },
+ "EMPTY_RESULT": {
+ "404": "There are no custom attributes created",
+ "NOT_FOUND": "There are no custom attributes configured"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ }
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/auditLogs.json b/app/javascript/dashboard/i18n/locale/bn/auditLogs.json
new file mode 100644
index 000000000..f85ad2a3e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/auditLogs.json
@@ -0,0 +1,77 @@
+{
+ "AUDIT_LOGS": {
+ "HEADER": "Audit Logs",
+ "HEADER_BTN_TXT": "Add Audit Logs",
+ "LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
+ "SEARCH_404": "There are no items matching this query",
+ "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "LIST": {
+ "404": "There are no Audit Logs available in this account.",
+ "TITLE": "Manage Audit Logs",
+ "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "Activity",
+ "TIME": "Time",
+ "IP_ADDRESS": "IP Address"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "DEFAULT_USER": "System",
+ "AUTOMATION_RULE": {
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
+ },
+ "ACCOUNT_USER": {
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
+ "EDIT": {
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
+ }
+ },
+ "INBOX": {
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
+ },
+ "WEBHOOK": {
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
+ },
+ "USER_ACTION": {
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
+ },
+ "TEAM": {
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
+ },
+ "MACRO": {
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
+ },
+ "INBOX_MEMBER": {
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ },
+ "TEAM_MEMBER": {
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ },
+ "ACCOUNT": {
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/automation.json b/app/javascript/dashboard/i18n/locale/bn/automation.json
new file mode 100644
index 000000000..2185161e8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/automation.json
@@ -0,0 +1,193 @@
+{
+ "AUTOMATION": {
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
+ "ADD": {
+ "TITLE": "Add Automation Rule",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Rule Name",
+ "PLACEHOLDER": "Enter rule name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter rule description",
+ "ERROR": "Description is required"
+ },
+ "EVENT": {
+ "LABEL": "Event",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Event is required"
+ },
+ "CONDITIONS": {
+ "LABEL": "Conditions"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "CONDITION_BUTTON_LABEL": "Add Condition",
+ "ACTION_BUTTON_LABEL": "Add Action",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule added successfully",
+ "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
+ "404": "No automation rules found"
+ },
+ "DELETE": {
+ "TITLE": "Delete Automation Rule",
+ "SUBMIT": "Delete",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule deleted successfully",
+ "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Automation Rule",
+ "SUBMIT": "Update",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule updated successfully",
+ "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ }
+ },
+ "CLONE": {
+ "TOOLTIP": "Clone",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation cloned successfully",
+ "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ }
+ },
+ "FORM": {
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel",
+ "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ },
+ "CONDITION": {
+ "DELETE_MESSAGE": "You need to have atleast one condition to save",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ },
+ "ACTION": {
+ "DELETE_MESSAGE": "You need to have atleast one action to save",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
+ },
+ "TOGGLE": {
+ "ACTIVATION_TITLE": "Activate Automation Rule",
+ "DEACTIVATION_TITLE": "Deactivate Automation Rule",
+ "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
+ "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
+ "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
+ "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "CONFIRMATION_LABEL": "Yes",
+ "CANCEL_LABEL": "No"
+ },
+ "ATTACHMENT": {
+ "UPLOAD_ERROR": "Could not upload attachment, Please try again",
+ "LABEL_IDLE": "Upload Attachment",
+ "LABEL_UPLOADING": "Uploading...",
+ "LABEL_UPLOADED": "Successfully Uploaded",
+ "LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "ব্যক্তিগত নোট",
+ "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",
+ "COMPANY_NAME": "কোম্পানি",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/bulkActions.json b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json
new file mode 100644
index 000000000..d62a07e35
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/bulkActions.json
@@ -0,0 +1,46 @@
+{
+ "BULK_ACTION": {
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "কিছুই না",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "YES": "Yes",
+ "CANCEL": "বাতিল করুন",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
+ "ASSIGN_AGENT_TOOLTIP": "Assign agent",
+ "ASSIGN_TEAM_TOOLTIP": "Assign team",
+ "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
+ "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
+ "UPDATE": {
+ "CHANGE_STATUS": "Change status",
+ "SNOOZE_UNTIL": "Snooze",
+ "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
+ "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
+ "LABELS": {
+ "ASSIGN_LABELS": "Assign labels",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
+ },
+ "TEAMS": {
+ "NONE": "None",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/campaign.json b/app/javascript/dashboard/i18n/locale/bn/campaign.json
new file mode 100644
index 000000000..51231c958
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/campaign.json
@@ -0,0 +1,216 @@
+{
+ "CAMPAIGN": {
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "প্রক্রিয়াধীন",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "প্রক্রিয়াধীন",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Campaign deleted successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json
new file mode 100644
index 000000000..246d3f5b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/cannedMgmt.json
@@ -0,0 +1,80 @@
+{
+ "CANNED_MGMT": {
+ "HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Add canned response",
+ "LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "LIST": {
+ "404": "There are no canned responses available in this account.",
+ "TITLE": "Manage canned responses",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add canned response",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a short code.",
+ "ERROR": "Short Code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit canned response",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a shortcode.",
+ "ERROR": "Short code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "BUTTON_TEXT": "Edit",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/chatlist.json b/app/javascript/dashboard/i18n/locale/bn/chatlist.json
new file mode 100644
index 000000000..1384dae2b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/chatlist.json
@@ -0,0 +1,146 @@
+{
+ "CHAT_LIST": {
+ "LOADING": "Fetching conversations",
+ "LOAD_MORE_CONVERSATIONS": "Load more conversations",
+ "EOF": "All conversations loaded 🎉",
+ "LIST": {
+ "404": "There are no active conversations in this group."
+ },
+ "FAILED_TO_SEND": "Failed to send",
+ "TAB_HEADING": "Conversations",
+ "MENTION_HEADING": "Mentions",
+ "UNATTENDED_HEADING": "Unattended",
+ "SEARCH": {
+ "INPUT": "Search for People, Chats, Saved Replies .."
+ },
+ "FILTER_ALL": "All",
+ "ASSIGNEE_TYPE_TABS": {
+ "me": "Mine",
+ "unassigned": "Unassigned",
+ "all": "All"
+ },
+ "CHAT_STATUS_FILTER_ITEMS": {
+ "open": {
+ "TEXT": "Open"
+ },
+ "resolved": {
+ "TEXT": "Resolved"
+ },
+ "pending": {
+ "TEXT": "Pending"
+ },
+ "snoozed": {
+ "TEXT": "Snoozed"
+ },
+ "all": {
+ "TEXT": "All"
+ }
+ },
+ "VIEW_FILTER": "View",
+ "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "CHAT_SORT": {
+ "STATUS": "Status",
+ "ORDER_BY": "Order by"
+ },
+ "CHAT_TIME_STAMP": {
+ "CREATED": {
+ "LATEST": "Created",
+ "OLDEST": "Created at:"
+ },
+ "LAST_ACTIVITY": {
+ "NOT_ACTIVE": "Last activity:",
+ "ACTIVE": "Last activity"
+ }
+ },
+ "SORT_ORDER_ITEMS": {
+ "last_activity_at_asc": {
+ "TEXT": "Last activity: Oldest first"
+ },
+ "last_activity_at_desc": {
+ "TEXT": "Last activity: Newest first"
+ },
+ "created_at_desc": {
+ "TEXT": "Created at: Newest first"
+ },
+ "created_at_asc": {
+ "TEXT": "Created at: Oldest first"
+ },
+ "priority_desc": {
+ "TEXT": "Priority: Highest first"
+ },
+ "priority_asc": {
+ "TEXT": "Priority: Lowest first"
+ },
+ "waiting_since_asc": {
+ "TEXT": "Pending Response: Longest first"
+ },
+ "waiting_since_desc": {
+ "TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
+ }
+ },
+ "ATTACHMENTS": {
+ "image": {
+ "CONTENT": "Picture message"
+ },
+ "audio": {
+ "CONTENT": "Audio message"
+ },
+ "video": {
+ "CONTENT": "Video message"
+ },
+ "file": {
+ "CONTENT": "File Attachment"
+ },
+ "location": {
+ "CONTENT": "Location"
+ },
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
+ "fallback": {
+ "CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
+ }
+ },
+ "CHAT_SORT_BY_FILTER": {
+ "TITLE": "Sort conversation",
+ "DROPDOWN_TITLE": "Sort by",
+ "ITEMS": {
+ "LATEST": {
+ "NAME": "Last activity at",
+ "LABEL": "Last activity"
+ },
+ "CREATED_AT": {
+ "NAME": "Created at",
+ "LABEL": "Created at"
+ },
+ "LAST_USER_MESSAGE_AT": {
+ "NAME": "Last user message at",
+ "LABEL": "Last message"
+ }
+ }
+ },
+ "RECEIVED_VIA_EMAIL": "Received via email",
+ "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
+ "REPLY_TO_TWEET": "Reply to this tweet",
+ "LINK_TO_STORY": "Go to instagram story",
+ "SENT": "Sent successfully",
+ "READ": "Read successfully",
+ "DELIVERED": "Delivered successfully",
+ "NO_MESSAGES": "No Messages",
+ "NO_CONTENT": "No content available",
+ "HIDE_QUOTED_TEXT": "Hide Quoted Text",
+ "SHOW_QUOTED_TEXT": "Show Quoted Text",
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/companies.json b/app/javascript/dashboard/i18n/locale/bn/companies.json
new file mode 100644
index 000000000..ae450a3c8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "বৈশিষ্ট্যসমূহ",
+ "CONTACTS": "কন্টাক্টসমূহ",
+ "HISTORY": "ইতিহাস",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "যোগাযোগ যুক্ত করুন",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "যোগাযোগ অনুসন্ধান করুন...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "কোম্পানি",
+ "CONTACT_LABEL": "যোগাযোগ",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "বাতিল করুন"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "তৈরি হয়েছে {date}",
+ "LAST_ACTIVE": "সর্বশেষ সক্রিয় {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "নাম",
+ "DOMAIN": "ডোমেইন"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/components.json b/app/javascript/dashboard/i18n/locale/bn/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/contact.json b/app/javascript/dashboard/i18n/locale/bn/contact.json
new file mode 100644
index 000000000..88ff31edc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/contact.json
@@ -0,0 +1,666 @@
+{
+ "CONTACT_PANEL": {
+ "NOT_AVAILABLE": "উপলব্ধ নেই",
+ "EMAIL_ADDRESS": "ইমেইল ঠিকানা",
+ "PHONE_NUMBER": "ফোন নম্বর",
+ "IDENTIFIER": "পরিচিতি নম্বর",
+ "COPY_SUCCESSFUL": "ক্লিপবোর্ডে সফলভাবে কপি হয়েছে",
+ "COMPANY": "কোম্পানি",
+ "LOCATION": "অবস্থান",
+ "BROWSER_LANGUAGE": "ব্রাউজারের ভাষা",
+ "CONVERSATION_TITLE": "কথোপকথনের বিবরণ",
+ "VIEW_PROFILE": "প্রোফাইল দেখুন",
+ "BROWSER": "ব্রাউজার",
+ "OS": "অপারেটিং সিস্টেম",
+ "INITIATED_FROM": "শুরু করা হয়েছে",
+ "INITIATED_AT": "শুরু করার সময়",
+ "IP_ADDRESS": "আইপি ঠিকানা",
+ "CREATED_AT_LABEL": "তৈরি হয়েছে",
+ "NEW_MESSAGE": "নতুন বার্তা",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
+ "CONVERSATIONS": {
+ "NO_RECORDS_FOUND": "এই কন্টাক্টের সাথে পূর্বের কোনো আলাপ নেই।",
+ "TITLE": "পূর্বের আলাপ"
+ },
+ "LABELS": {
+ "CONTACT": {
+ "TITLE": "যোগাযোগ লেবেল",
+ "ERROR": "লেবেল আপডেট করা যায়নি"
+ },
+ "CONVERSATION": {
+ "TITLE": "কথোপকথনের লেবেল",
+ "ADD_BUTTON": "লেবেল যোগ করুন"
+ },
+ "LABEL_SELECT": {
+ "TITLE": "লেবেল যোগ করুন",
+ "PLACEHOLDER": "লেবেল অনুসন্ধান করুন",
+ "NO_RESULT": "কোন লেবেল পাওয়া যায়নি",
+ "CREATE_LABEL": "নতুন লেবেল তৈরি করুন"
+ }
+ },
+ "MERGE_CONTACT": "যোগাযোগ একত্রিত করুন",
+ "CONTACT_ACTIONS": "যোগাযোগের কার্যক্রম",
+ "MUTE_CONTACT": "কন্টাক্ট ব্লক করুন",
+ "UNMUTE_CONTACT": "কন্টাক্ট আনব্লক করুন",
+ "MUTED_SUCCESS": "এই কন্টাক্ট সফলভাবে ব্লক করা হয়েছে। ভবিষ্যতে কোনো কথোপকথনের জন্য আপনাকে আর জানানো হবে না।",
+ "UNMUTED_SUCCESS": "এই কন্টাক্টের ব্লক সফলভাবে সরানো হয়েছে.",
+ "SEND_TRANSCRIPT": "ট্রান্সক্রিপ্ট পাঠান",
+ "EDIT_LABEL": "সম্পাদনা করুন",
+ "SIDEBAR_SECTIONS": {
+ "CUSTOM_ATTRIBUTES": "কাস্টম অ্যাট্রিবিউট",
+ "CONTACT_LABELS": "যোগাযোগের লেবেলসমূহ",
+ "PREVIOUS_CONVERSATIONS": "পূর্ববর্তী কথোপকথনসমূহ",
+ "NO_RECORDS_FOUND": "কোনো অ্যাট্রিবিউট পাওয়া যায়নি"
+ }
+ },
+ "EDIT_CONTACT": {
+ "BUTTON_LABEL": "যোগাযোগ সম্পাদনা করুন",
+ "TITLE": "যোগাযোগ সম্পাদনা করুন",
+ "DESC": "যোগাযোগের বিস্তারিত সম্পাদনা করুন"
+ },
+ "DELETE_CONTACT": {
+ "BUTTON_LABEL": "যোগাযোগ মুছুন",
+ "TITLE": "যোগাযোগ মুছুন",
+ "DESC": "যোগাযোগের বিবরণ মুছে ফেলুন",
+ "CONFIRM": {
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে মুছে ফেলতে চান ",
+ "YES": "হ্যাঁ, মুছে ফেলুন",
+ "NO": "না, রাখুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগ মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ }
+ },
+ "CONTACT_FORM": {
+ "FORM": {
+ "SUBMIT": "জমা দিন",
+ "CANCEL": "বাতিল করুন",
+ "AVATAR": {
+ "LABEL": "যোগাযোগের অ্যাভাটার"
+ },
+ "NAME": {
+ "PLACEHOLDER": "যোগাযোগের পূর্ণ নাম লিখুন",
+ "LABEL": "পূর্ণ নাম"
+ },
+ "BIO": {
+ "PLACEHOLDER": "যোগাযোগের জীবনী লিখুন",
+ "LABEL": "জীবনবৃত্তান্ত"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "যোগাযোগের ইমেইল ঠিকানা লিখুন",
+ "LABEL": "ইমেইল ঠিকানা",
+ "DUPLICATE": "এই ইমেল ঠিকানাটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।.",
+ "ERROR": "একটি বৈধ ইমেল ঠিকানা লিখুন।."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "যোগাযোগের ফোন নম্বর লিখুন",
+ "LABEL": "ফোন নম্বর",
+ "HELP": "ফোন নম্বরটি অবশ্যই E.164 ফরম্যাটে হতে হবে যেমন: +1415555555 [+][দেশের কোড][এরিয়া কোড][স্থানীয় ফোন নম্বর]. আপনি ড্রপডাউন থেকে ডায়াল কোড নির্বাচন করতে পারেন.",
+ "ERROR": "ফোন নম্বরটি খালি অথবা E.164 ফরম্যাটে হতে হবে",
+ "DIAL_CODE_ERROR": "অনুগ্রহ করে তালিকা থেকে একটি ডায়াল কোড নির্বাচন করুন",
+ "DUPLICATE": "এই ফোন নম্বরটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।."
+ },
+ "LOCATION": {
+ "PLACEHOLDER": "যোগাযোগের অবস্থান লিখুন",
+ "LABEL": "অবস্থান"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "কোম্পানির নাম লিখুন",
+ "LABEL": "কোম্পানির নাম"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "দেশের নাম লিখুন",
+ "LABEL": "দেশের নাম",
+ "SELECT_PLACEHOLDER": "নির্বাচন করুন",
+ "REMOVE": "অপসারণ করুন",
+ "SELECT_COUNTRY": "দেশ নির্বাচন করুন"
+ },
+ "CITY": {
+ "PLACEHOLDER": "শহরের নাম লিখুন",
+ "LABEL": "শহরের নাম"
+ },
+ "SOCIAL_PROFILES": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook ব্যবহারকারীর নাম লিখুন",
+ "LABEL": "Facebook"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter ব্যবহারকারীর নাম লিখুন",
+ "LABEL": "Twitter"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn ব্যবহারকারীর নাম লিখুন",
+ "LABEL": "LinkedIn"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github ব্যবহারকারীর নাম লিখুন",
+ "LABEL": "Github"
+ }
+ }
+ },
+ "DELETE_AVATAR": {
+ "API": {
+ "SUCCESS_MESSAGE": "যোগাযোগের অবতার সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগের অবতার মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ }
+ },
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে সংরক্ষণ করা হয়েছে",
+ "ERROR_MESSAGE": "একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "NEW_CONVERSATION": {
+ "BUTTON_LABEL": "আলাপ শুরু করুন",
+ "TITLE": "নতুন আলাপ",
+ "DESC": "নতুন বার্তা পাঠিয়ে একটি নতুন কথোপকথন শুরু করুন।",
+ "NO_INBOX": "এই যোগাযোগের সাথে একটি নতুন কথোপকথন শুরু করার জন্য কোনো ইনবক্স পাওয়া যায়নি।",
+ "FORM": {
+ "TO": {
+ "LABEL": "প্রাপক"
+ },
+ "INBOX": {
+ "LABEL": "ইনবক্সের মাধ্যমে",
+ "PLACEHOLDER": "উৎস ইনবক্স নির্বাচন করুন",
+ "ERROR": "একটি ইনবক্স নির্বাচন করুন"
+ },
+ "SUBJECT": {
+ "LABEL": "বিষয়",
+ "PLACEHOLDER": "বিষয়",
+ "ERROR": "বিষয় খালি রাখা যাবে না"
+ },
+ "MESSAGE": {
+ "LABEL": "বার্তা",
+ "PLACEHOLDER": "এখানে আপনার বার্তা লিখুন",
+ "ERROR": "বার্তাটি খালি রাখা যাবে না"
+ },
+ "ATTACHMENTS": {
+ "SELECT": "ফাইল নির্বাচন করুন",
+ "HELP_TEXT": "এখানে ফাইল টেনে আনুন অথবা সংযুক্ত করার জন্য ফাইল নির্বাচন করুন"
+ },
+ "SUBMIT": "বার্তা পাঠান",
+ "CANCEL": "বাতিল করুন",
+ "SUCCESS_MESSAGE": "বার্তা পাঠানো হয়েছে!",
+ "GO_TO_CONVERSATION": "দেখুন",
+ "ERROR_MESSAGE": "পাঠানো যায়নি! আবার চেষ্টা করুন"
+ }
+ },
+ "CONTACTS_PAGE": {
+ "LIST": {
+ "TABLE_HEADER": {
+ "SOCIAL_PROFILES": "সামাজিক প্রোফাইল"
+ }
+ }
+ },
+ "CUSTOM_ATTRIBUTES": {
+ "BUTTON": "কাস্টম অ্যাট্রিবিউট যোগ করুন",
+ "COPY_SUCCESSFUL": "ক্লিপবোর্ডে সফলভাবে কপি হয়েছে",
+ "SHOW_MORE": "সব অ্যাট্রিবিউট দেখান",
+ "SHOW_LESS": "কম অ্যাট্রিবিউট দেখান",
+ "ACTIONS": {
+ "COPY": "অ্যাট্রিবিউট কপি করুন",
+ "DELETE": "অ্যাট্রিবিউট মুছুন",
+ "EDIT": "অ্যাট্রিবিউট সম্পাদনা করুন"
+ },
+ "ADD": {
+ "TITLE": "কাস্টম অ্যাট্রিবিউট তৈরি করুন",
+ "DESC": "এই যোগাযোগে কাস্টম তথ্য যোগ করুন।."
+ },
+ "FORM": {
+ "CREATE": "অ্যাট্রিবিউট যোগ করুন",
+ "CANCEL": "বাতিল করুন",
+ "NAME": {
+ "LABEL": "কাস্টম অ্যাট্রিবিউটের নাম",
+ "PLACEHOLDER": "উদাহরণ: shopify id",
+ "ERROR": "অবৈধ কাস্টম অ্যাট্রিবিউট নাম"
+ },
+ "VALUE": {
+ "LABEL": "অ্যাট্রিবিউটের মান",
+ "PLACEHOLDER": "উদাহরণ: 11901 "
+ },
+ "ADD": {
+ "TITLE": "নতুন অ্যাট্রিবিউট তৈরি করুন ",
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে যোগ করা হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট যোগ করা সম্ভব হয়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "UPDATE": {
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে আপডেট হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট আপডেট করা সম্ভব হয়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "DELETE": {
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "অ্যাট্রিবিউট যোগ করুন",
+ "PLACEHOLDER": "অ্যাট্রিবিউট অনুসন্ধান করুন",
+ "NO_RESULT": "কোনো অ্যাট্রিবিউট পাওয়া যায়নি"
+ },
+ "ATTRIBUTE_TYPE": {
+ "LIST": {
+ "PLACEHOLDER": "মান নির্বাচন করুন",
+ "SEARCH_INPUT_PLACEHOLDER": "মান অনুসন্ধান করুন",
+ "NO_RESULT": "কোন ফলাফল পাওয়া যায়নি"
+ }
+ }
+ },
+ "VALIDATIONS": {
+ "REQUIRED": "বৈধ মান আবশ্যক",
+ "INVALID_URL": "অবৈধ URL",
+ "INVALID_INPUT": "অবৈধ ইনপুট"
+ }
+ },
+ "MERGE_CONTACTS": {
+ "TITLE": "যোগাযোগ একত্রিত করুন",
+ "DESCRIPTION": "দুটি প্রোফাইল একত্রিত করতে কন্টাক্ট মার্জ করুন, এতে সব অ্যাট্রিবিউট ও কথোপকথন একত্রিত হবে। কোনো দ্বন্দ্ব হলে, প্রাইমারি কন্টাক্টের অ্যাট্রিবিউট অগ্রাধিকার পাবে।.",
+ "PRIMARY": {
+ "TITLE": "প্রাথমিক যোগাযোগ",
+ "HELP_LABEL": "মুছে ফেলা হবে"
+ },
+ "PARENT": {
+ "TITLE": "যে কন্টাক্ট মার্জ করা হবে",
+ "PLACEHOLDER": "একটি যোগাযোগ খুঁজুন",
+ "HELP_LABEL": "রাখা হবে"
+ },
+ "SUMMARY": {
+ "TITLE": "সারাংশ",
+ "DELETE_WARNING": "{primaryContactName} এর কন্টাক্ট মুছে ফেলা হবে.",
+ "ATTRIBUTE_WARNING": "{primaryContactName} এর কন্টাক্টের বিস্তারিত {parentContactName} এ কপি করা হবে."
+ },
+ "SEARCH": {
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
+ },
+ "FORM": {
+ "SUBMIT": " যোগাযোগসমূহ একত্রিত করুন",
+ "CANCEL": "বাতিল করুন",
+ "CHILD_CONTACT": {
+ "ERROR": "একত্রিত করার জন্য একটি চাইল্ড কন্টাক্ট নির্বাচন করুন"
+ },
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে একত্রিত হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগগুলো একত্রিত করা যায়নি, আবার চেষ্টা করুন!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(আইডি: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "যোগাযোগসমূহ",
+ "SEARCH_TITLE": "যোগাযোগ অনুসন্ধান করুন",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "অনুসন্ধান করুন...",
+ "MESSAGE_BUTTON": "বার্তা পাঠান",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "যোগাযোগসমূহ"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "যোগাযোগ যুক্ত করুন",
+ "EXPORT_CONTACT": "যোগাযোগসমূহ রপ্তানি করুন",
+ "IMPORT_CONTACT": "কন্টাক্ট আমদানি করুন",
+ "SAVE_CONTACT": "যোগাযোগ সংরক্ষণ করুন",
+ "EMAIL_ADDRESS_DUPLICATE": "এই ইমেইল ঠিকানাটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।",
+ "PHONE_NUMBER_DUPLICATE": "এই ফোন নম্বরটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।",
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে সংরক্ষণ করা হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগ সংরক্ষণ করা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।"
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "কন্টাক্ট আমদানি করুন",
+ "DESCRIPTION": "CSV ফাইলের মাধ্যমে কন্টাক্ট আমদানি করুন.",
+ "DOWNLOAD_LABEL": "একটি নমুনা CSV ডাউনলোড করুন.",
+ "LABEL": "CSV ফাইল:",
+ "CHOOSE_FILE": "ফাইল নির্বাচন করুন",
+ "CHANGE": "পরিবর্তন করুন",
+ "CANCEL": "বাতিল করুন",
+ "IMPORT": "আমদানি করুন",
+ "SUCCESS_MESSAGE": "আমদানি সম্পন্ন হলে আপনাকে ইমেইলে জানানো হবে.",
+ "ERROR_MESSAGE": "একটি সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "যোগাযোগসমূহ রপ্তানি করুন",
+ "DESCRIPTION": "আপনার পরিচিতিগুলোর বিস্তারিত তথ্যসহ দ্রুত একটি csv ফাইল রপ্তানি করুন",
+ "CONFIRM": "রপ্তানি করুন",
+ "SUCCESS_MESSAGE": "রপ্তানি চলছে. ডাউনলোডের জন্য ফাইল প্রস্তুত হলে আপনাকে ইমেইলে জানানো হবে.",
+ "ERROR_MESSAGE": "একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "SORT_BY": {
+ "LABEL": "সাজান",
+ "OPTIONS": {
+ "NAME": "নাম",
+ "EMAIL": "ইমেইল",
+ "PHONE_NUMBER": "ফোন নম্বর",
+ "COMPANY": "কোম্পানি",
+ "COUNTRY": "দেশ",
+ "CITY": "শহর",
+ "LAST_ACTIVITY": "সর্বশেষ কার্যকলাপ",
+ "CREATED_AT": "তৈরি হয়েছে"
+ }
+ },
+ "ORDER": {
+ "LABEL": "অর্ডারিং",
+ "OPTIONS": {
+ "ASCENDING": "আরোহী",
+ "DESCENDING": "নিম্নক্রমে"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "আপনি কি এই ফিল্টারটি সংরক্ষণ করতে চান?",
+ "CONFIRM": "ফিল্টার সংরক্ষণ করুন",
+ "LABEL": "নাম",
+ "PLACEHOLDER": "ফিল্টারের নাম লিখুন",
+ "ERROR": "একটি বৈধ নাম লিখুন",
+ "SUCCESS_MESSAGE": "ফিল্টার সফলভাবে সংরক্ষণ করা হয়েছে",
+ "ERROR_MESSAGE": "ফিল্টার সংরক্ষণ করা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "মুছে ফেলার নিশ্চয়তা দিন",
+ "DESCRIPTION": "আপনি কি নিশ্চিত যে আপনি এই ফিল্টারটি মুছে ফেলতে চান?",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "CANCEL": "না, বাতিল করুন",
+ "SUCCESS_MESSAGE": "ফিল্টার সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "ফিল্টার মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "নাম",
+ "EMAIL": "ইমেইল",
+ "PHONE_NUMBER": "ফোন নম্বর",
+ "IDENTIFIER": "আইডেন্টিফায়ার",
+ "COUNTRY": "দেশ",
+ "CITY": "শহর",
+ "COMPANY": "কোম্পানি",
+ "CREATED_AT": "তৈরি হয়েছে",
+ "LAST_ACTIVITY": "সর্বশেষ কার্যকলাপ",
+ "REFERER_LINK": "রেফারার লিঙ্ক",
+ "BLOCKED": "ব্লক করা হয়েছে",
+ "BLOCKED_TRUE": "সত্য",
+ "BLOCKED_FALSE": "ফলস",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "ফিল্টার মুছুন",
+ "UPDATE_SEGMENT": "সেগমেন্ট আপডেট করুন",
+ "APPLY_FILTERS": "ফিল্টারগুলি প্রয়োগ করুন",
+ "ADD_FILTER": "ফিল্টার যোগ করুন"
+ },
+ "TITLE": "যোগাযোগ ফিল্টার করুন",
+ "EDIT_SEGMENT": "সেগমেন্ট সম্পাদনা করুন",
+ "SEGMENT": {
+ "LABEL": "সেগমেন্টের নাম",
+ "INPUT_PLACEHOLDER": "সেগমেন্টের নাম লিখুন"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} টি আরও ফিল্টার",
+ "CLEAR_FILTERS": "ফিল্টারগুলি মুছে ফেলুন"
+ }
+ },
+ "CARD": {
+ "OF": "এর",
+ "VIEW_DETAILS": "বিস্তারিত দেখুন",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "কন্টাক্টের বিস্তারিত সম্পাদনা করুন",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "প্রথম নাম লিখুন"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "শেষ নাম লিখুন"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "ইমেইল ঠিকানা লিখুন",
+ "DUPLICATE": "এই ইমেইল ঠিকানাটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "ফোন নম্বর লিখুন",
+ "DUPLICATE": "এই ফোন নম্বরটি অন্য একটি যোগাযোগের জন্য ব্যবহৃত হচ্ছে।."
+ },
+ "CITY": {
+ "PLACEHOLDER": "শহরের নাম লিখুন"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "দেশ নির্বাচন করুন"
+ },
+ "BIO": {
+ "PLACEHOLDER": "জীবনবৃত্তান্ত লিখুন"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "কোম্পানির নাম লিখুন"
+ }
+ },
+ "UPDATE_BUTTON": "যোগাযোগ আপডেট করুন",
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগ আপডেট করা যাচ্ছে না। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "সামাজিক লিঙ্ক সম্পাদনা করুন",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook যোগ করুন"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github যোগ করুন"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagram যোগ করুন"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn যোগ করুন"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter যোগ করুন"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "তৈরি হয়েছে {date}",
+ "LAST_ACTIVITY": "সর্বশেষ সক্রিয় {date}",
+ "DELETE_CONTACT_DESCRIPTION": "এই যোগাযোগ স্থায়ীভাবে মুছে ফেলুন। এই ক্রিয়াটি অপরিবর্তনীয়।",
+ "DELETE_CONTACT": "যোগাযোগ মুছুন",
+ "DELETE_DIALOG": {
+ "TITLE": "মুছে ফেলার নিশ্চিতকরণ",
+ "DESCRIPTION": "আপনি কি নিশ্চিত যে আপনি এই যোগাযোগটি মুছে ফেলতে চান?",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "API": {
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগ মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।"
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "অবতার আপলোড করা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।",
+ "SUCCESS_MESSAGE": "অবতার সফলভাবে আপলোড হয়েছে"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "অবতার সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "অবতার মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।"
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "বৈশিষ্ট্যসমূহ",
+ "HISTORY": "ইতিহাস",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "বৈশিষ্ট্য অনুসন্ধান করুন",
+ "UNUSED_ATTRIBUTES": "{count} ব্যবহৃত বৈশিষ্ট্য | {count} অব্যবহৃত বৈশিষ্ট্য",
+ "EMPTY_STATE": "এই অ্যাকাউন্টে কোনো কাস্টম কন্টাক্ট অ্যাট্রিবিউট নেই। আপনি সেটিংসে একটি কাস্টম অ্যাট্রিবিউট তৈরি করতে পারেন।.",
+ "YES": "হ্যাঁ",
+ "NO": "না",
+ "TRIGGER": {
+ "SELECT": "মান নির্বাচন করুন",
+ "INPUT": "মান লিখুন"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "অবৈধ সংখ্যা",
+ "REQUIRED": "বৈধ মান আবশ্যক",
+ "INVALID_INPUT": "অবৈধ ইনপুট প্রদান",
+ "INVALID_URL": "অবৈধ URL",
+ "INVALID_DATE": "অবৈধ তারিখ"
+ },
+ "NO_ATTRIBUTES": "কোনো বৈশিষ্ট্য পাওয়া যায়নি",
+ "API": {
+ "SUCCESS_MESSAGE": "বৈশিষ্ট্য সফলভাবে আপডেট হয়েছে",
+ "DELETE_SUCCESS_MESSAGE": "বৈশিষ্ট্য সফলভাবে মুছে ফেলা হয়েছে",
+ "UPDATE_ERROR": "বৈশিষ্ট্য আপডেট করা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন",
+ "DELETE_ERROR": "বৈশিষ্ট্য মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "MERGE": {
+ "TITLE": "কন্টাক্ট একত্রিত করুন",
+ "DESCRIPTION": "দুটি প্রোফাইলের সব বৈশিষ্ট্য ও কথোপকথন একত্র করে একটি প্রোফাইল বানান. কোনো দ্বন্দ্ব হলে, প্রধান কন্টাক্টের তথ্য আগে ধরা হবে.",
+ "PRIMARY": "প্রধান কন্টাক্ট",
+ "PRIMARY_HELP_LABEL": "সংরক্ষণ করা হবে",
+ "PRIMARY_REQUIRED_ERROR": "অনুগ্রহ করে আগে একত্র করার জন্য একটি কন্টাক্ট বেছে নিন",
+ "PARENT": "একত্রিত করা হবে",
+ "PARENT_HELP_LABEL": "মুছে ফেলা হবে",
+ "EMPTY_STATE": "কোনো কন্টাক্ট পাওয়া যায়নি",
+ "PLACEHOLDER": "প্রধান কন্টাক্ট খুঁজুন",
+ "SEARCH_PLACEHOLDER": "একটি কন্টাক্ট খুঁজুন",
+ "SEARCH_ERROR_MESSAGE": "কন্টাক্ট খোঁজা যায়নি. অনুগ্রহ করে পরে আবার চেষ্টা করুন.",
+ "SUCCESS_MESSAGE": "যোগাযোগ সফলভাবে একত্রিত হয়েছে",
+ "ERROR_MESSAGE": "যোগাযোগ একত্রিত করা যায়নি, আবার চেষ্টা করুন!",
+ "IS_SEARCHING": "অনুসন্ধান চলছে...",
+ "BUTTONS": {
+ "CANCEL": "বাতিল করুন",
+ "CONFIRM": "কন্টাক্ট একত্রিত করুন"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "নোট যোগ করুন",
+ "WROTE": "লিখেছেন",
+ "YOU": "আপনি",
+ "SAVE": "নোট সংরক্ষণ করুন",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "Expand",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
+ "EMPTY_STATE": "এই যোগাযোগের সাথে কোনো নোট যুক্ত নেই। উপরের বাক্সে লিখে আপনি একটি নোট যোগ করতে পারেন।.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "এই অ্যাকাউন্টে কোনো যোগাযোগ পাওয়া যায়নি",
+ "SUBTITLE": "নিচের বোতামে ক্লিক করে নতুন কন্টাক্ট যোগ করা শুরু করুন",
+ "BUTTON_LABEL": "কন্টাক্ট যোগ করুন",
+ "SEARCH_EMPTY_STATE_TITLE": "আপনার অনুসন্ধানের সাথে কোনো কন্টাক্ট মেলে নি 🔍",
+ "LIST_EMPTY_STATE_TITLE": "এই ভিউতে কোনো কন্টাক্ট নেই 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Delete",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/contactFilters.json b/app/javascript/dashboard/i18n/locale/bn/contactFilters.json
new file mode 100644
index 000000000..4c62f0789
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/contactFilters.json
@@ -0,0 +1,60 @@
+{
+ "CONTACTS_FILTER": {
+ "TITLE": "Filter Contacts",
+ "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
+ "EDIT_CUSTOM_SEGMENT": "Edit Segment",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "ADD_NEW_FILTER": "Add Filter",
+ "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "FILTER_DELETE_ERROR": "You should have atleast one filter to save",
+ "SUBMIT_BUTTON_LABEL": "Submit",
+ "UPDATE_BUTTON_LABEL": "Update Segment",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear Filters",
+ "EMPTY_VALUE_ERROR": "Value is required",
+ "SEGMENT_LABEL": "Segment Name",
+ "SEGMENT_QUERY_LABEL": "Segment Query",
+ "TOOLTIP_LABEL": "Filter contacts",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "contains": "Contains",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_lesser_than": "Is lesser than",
+ "days_before": "Is x days before"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
+ "ATTRIBUTES": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "CITY": "City",
+ "COUNTRY": "Country",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created At",
+ "LAST_ACTIVITY": "Last Activity",
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard Filters",
+ "ADDITIONAL_FILTERS": "Additional Filters",
+ "CUSTOM_ATTRIBUTES": "Custom Attributes"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json b/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/conversation.json b/app/javascript/dashboard/i18n/locale/bn/conversation.json
new file mode 100644
index 000000000..f79713081
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/conversation.json
@@ -0,0 +1,490 @@
+{
+ "CONVERSATION": {
+ "SELECT_A_CONVERSATION": "বাম পাশ থেকে একটি কনভার্সেশন নির্বাচন করুন",
+ "CSAT_REPLY_MESSAGE": "অনুগ্রহ করে কথোপকথনের মূল্যায়ন করুন",
+ "404": "দুঃখিত, আমরা কনভার্সেশনটি খুঁজে পাচ্ছি না। আবার চেষ্টা করুন",
+ "SWITCH_VIEW_LAYOUT": "লেআউট পরিবর্তন করুন",
+ "DASHBOARD_APP_TAB_MESSAGES": "বার্তা",
+ "UNVERIFIED_SESSION": "এই ব্যবহারকারীর পরিচয় যাচাই করা হয়নি",
+ "NO_MESSAGE_1": "ওহ! আপনার ইনবক্সে কোনো গ্রাহকের বার্তা নেই।",
+ "NO_MESSAGE_2": " আপনার পেজে বার্তা পাঠাতে!",
+ "NO_INBOX_1": "হ্যালো! আপনি এখনো কোনো ইনবক্স যোগ করেননি।",
+ "NO_INBOX_2": " শুরু করতে",
+ "NO_INBOX_AGENT": "ওহ! আপনি কোনো ইনবক্সের সদস্য নন। অনুগ্রহ করে আপনার অ্যাডমিনের সাথে যোগাযোগ করুন।",
+ "SEARCH_MESSAGES": "কথোপকথনে বার্তা অনুসন্ধান করুন",
+ "VIEW_ORIGINAL": "মূল দেখুন",
+ "VIEW_TRANSLATED": "অনুবাদ দেখুন",
+ "EMPTY_STATE": {
+ "CMD_BAR": "কমান্ড মেনু খুলতে",
+ "KEYBOARD_SHORTCUTS": "কীবোর্ড শর্টকাট দেখতে"
+ },
+ "SEARCH": {
+ "TITLE": "বার্তা অনুসন্ধান",
+ "RESULT_TITLE": "অনুসন্ধান ফলাফল",
+ "LOADING_MESSAGE": "ডেটা বিশ্লেষণ হচ্ছে...",
+ "PLACEHOLDER": "বার্তা খুঁজতে যেকোনো লেখা টাইপ করুন",
+ "NO_MATCHING_RESULTS": "কোন ফলাফল পাওয়া যায়নি।"
+ },
+ "UNREAD_MESSAGES": "অপঠিত বার্তা",
+ "UNREAD_MESSAGE": "অপঠিত বার্তা",
+ "CLICK_HERE": "এখানে ক্লিক করুন",
+ "LOADING_INBOXES": "ইনবক্স লোড হচ্ছে",
+ "LOADING_CONVERSATIONS": "কথোপকথন লোড হচ্ছে",
+ "CANNOT_REPLY": "আপনি উত্তর দিতে পারবেন না কারণ",
+ "24_HOURS_WINDOW": "২৪ ঘণ্টার মেসেজ সীমাবদ্ধতা",
+ "48_HOURS_WINDOW": "৪৮ ঘণ্টার মেসেজ সীমাবদ্ধতা",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
+ "NOT_ASSIGNED_TO_YOU": "এই কথোপকথনটি আপনার কাছে বরাদ্দ নয়। আপনি কি এটি নিজের কাছে বরাদ্দ করতে চান?",
+ "ASSIGN_TO_ME": "নিজের কাছে বরাদ্দ করুন",
+ "BOT_HANDOFF_MESSAGE": "আপনি এমন একটি কথোপকথনে উত্তর দিচ্ছেন যা বর্তমানে সহকারী বা বট দ্বারা পরিচালিত হচ্ছে।",
+ "BOT_HANDOFF_ACTION": "ওপেন করুন এবং নিজের কাছে অ্যাসাইন করুন",
+ "BOT_HANDOFF_REOPEN_ACTION": "কথোপকথন ওপেন করুন",
+ "BOT_HANDOFF_SUCCESS": "কথোপকথনটি আপনার কাছে হস্তান্তর করা হয়েছে",
+ "BOT_HANDOFF_ERROR": "কথোপকথনটি নেওয়া যায়নি। আবার চেষ্টা করুন।",
+ "TWILIO_WHATSAPP_CAN_REPLY": "আপনি শুধুমাত্র টেমপ্লেট বার্তা ব্যবহার করে এই আলাপে উত্তর দিতে পারবেন কারণ",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "২৪ ঘণ্টার বার্তা সীমাবদ্ধতা",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "এই Instagram অ্যাকাউন্টটি নতুন Instagram চ্যানেল ইনবক্সে স্থানান্তরিত হয়েছে। সব নতুন বার্তা সেখানে দেখা যাবে। আপনি আর এই কথোপকথন থেকে বার্তা পাঠাতে পারবেন না।",
+ "REPLYING_TO": "আপনি যাকে উত্তর দিচ্ছেন:",
+ "REMOVE_SELECTION": "নির্বাচন সরান",
+ "DOWNLOAD": "ডাউনলোড",
+ "UNKNOWN_FILE_TYPE": "অজানা ফাইল",
+ "SAVE_CONTACT": "যোগাযোগ সংরক্ষণ করুন",
+ "NO_CONTENT": "দেখানোর জন্য কোনো বিষয়বস্তু নেই",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
+ "UPLOADING_ATTACHMENTS": "সংযুক্তি আপলোড হচ্ছে...",
+ "REPLIED_TO_STORY": "আপনার স্টোরিতে উত্তর দিয়েছে",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "এই বার্তাটি সমর্থিত নয়। আপনি Facebook Messenger অ্যাপে এই বার্তাটি দেখতে পারেন।",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "এই বার্তাটি সমর্থিত নয়। আপনি Instagram অ্যাপে এই বার্তাটি দেখতে পারেন।",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "এই বার্তাটি সমর্থিত নয়। TikTok অ্যাপে এই বার্তাটি দেখতে পারেন।",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "বার্তা সফলভাবে মুছে ফেলা হয়েছে",
+ "FAIL_DELETE_MESSSAGE": "বার্তা মুছে ফেলা যায়নি! আবার চেষ্টা করুন",
+ "NO_RESPONSE": "কোনো উত্তর নেই",
+ "RESPONSE": "উত্তর",
+ "RATING_TITLE": "রেটিং",
+ "FEEDBACK_TITLE": "মতামত",
+ "REPLY_MESSAGE_NOT_FOUND": "বার্তাটি পাওয়া যায়নি",
+ "CARD": {
+ "SHOW_LABELS": "লেবেল দেখান",
+ "HIDE_LABELS": "লেবেল লুকান",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "ইনকামিং কল",
+ "OUTGOING_CALL": "আউটগোয়িং কল",
+ "CALL_IN_PROGRESS": "কল চলছে",
+ "NO_ANSWER": "উত্তর নেই",
+ "NO_ANSWER_OUTBOUND_LABEL": "উত্তর নেই",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "মিসড কল",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "কল শেষ হয়েছে",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "এখনও উত্তর পাওয়া যায়নি",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "তারা উত্তর দিয়েছে",
+ "YOU_ANSWERED": "আপনি উত্তর দিয়েছেন",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "কলে যোগ দিন",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
+ },
+ "HEADER": {
+ "RESOLVE_ACTION": "সমাধান করুন",
+ "REOPEN_ACTION": "পুনরায় খুলুন",
+ "OPEN_ACTION": "খুলুন",
+ "MORE_ACTIONS": "আরও অপশন",
+ "OPEN": "আরও",
+ "CLOSE": "বন্ধ করুন",
+ "DETAILS": "বিস্তারিত",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "স্নুজ করা হয়েছে পর্যন্ত",
+ "SNOOZED_UNTIL_TOMORROW": "আগামীকাল পর্যন্ত স্থগিত",
+ "SNOOZED_UNTIL_NEXT_WEEK": "পরবর্তী সপ্তাহ পর্যন্ত স্থগিত",
+ "SNOOZED_UNTIL_NEXT_REPLY": "পরবর্তী উত্তর পর্যন্ত স্থগিত",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "মিস হয়েছে",
+ "DUE": "বাকি"
+ }
+ },
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "পেন্ডিং হিসেবে চিহ্নিত করুন",
+ "SNOOZE_UNTIL": "স্নুজ",
+ "SNOOZE": {
+ "TITLE": "স্নুজ করুন যতক্ষণ না",
+ "NEXT_REPLY": "পরবর্তী উত্তর",
+ "TOMORROW": "আগামীকাল",
+ "NEXT_WEEK": "পরবর্তী সপ্তাহ"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "এজেন্টরা",
+ "TEAMS": "টিমসমূহ"
+ },
+ "CUSTOM_SNOOZE": {
+ "TITLE": "স্নুজ করা হবে পর্যন্ত",
+ "APPLY": "স্নুজ",
+ "CANCEL": "বাতিল"
+ },
+ "PRIORITY": {
+ "TITLE": "অগ্রাধিকার",
+ "OPTIONS": {
+ "NONE": "কিছুই না",
+ "URGENT": "জরুরি",
+ "HIGH": "উচ্চ",
+ "MEDIUM": "মাঝারি",
+ "LOW": "নিম্ন"
+ },
+ "CHANGE_PRIORITY": {
+ "SELECT_PLACEHOLDER": "কিছুই না",
+ "INPUT_PLACEHOLDER": "অগ্রাধিকার নির্বাচন করুন",
+ "NO_RESULTS": "কোন ফলাফল পাওয়া যায়নি",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
+ "FAILED": "প্রাধান্য পরিবর্তন করা যায়নি। আবার চেষ্টা করুন।"
+ }
+ },
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "আপনি কি নিশ্চিতভাবে এই কথোপকথনটি মুছে ফেলতে চান?",
+ "CONFIRM": "মুছে ফেলুন"
+ },
+ "CARD_CONTEXT_MENU": {
+ "PENDING": "বিচারাধীন হিসেবে চিহ্নিত করুন",
+ "RESOLVED": "সমাধান হয়েছে হিসেবে চিহ্নিত করুন",
+ "MARK_AS_UNREAD": "অপঠিত হিসেবে চিহ্নিত করুন",
+ "MARK_AS_READ": "পড়া হয়েছে হিসেবে চিহ্নিত করুন",
+ "REOPEN": "আলোচনা পুনরায় খুলুন",
+ "SNOOZE": {
+ "TITLE": "স্নুজ",
+ "NEXT_REPLY": "পরবর্তী উত্তর পর্যন্ত",
+ "TOMORROW": "আগামীকাল পর্যন্ত",
+ "NEXT_WEEK": "পরবর্তী সপ্তাহ পর্যন্ত"
+ },
+ "ASSIGN_AGENT": "এজেন্ট নির্ধারণ করুন",
+ "ASSIGN_LABEL": "লেবেল নির্ধারণ করুন",
+ "AGENTS_LOADING": "এজেন্ট লোড হচ্ছে...",
+ "ASSIGN_TEAM": "টিম নির্ধারণ করুন",
+ "DELETE": "কথোপকথন মুছে ফেলুন",
+ "OPEN_IN_NEW_TAB": "নতুন ট্যাবে খুলুন",
+ "COPY_LINK": "কথোপকথনের লিংক কপি করুন",
+ "COPY_LINK_SUCCESS": "কথোপকথনের লিংক ক্লিপবোর্ডে কপি হয়েছে",
+ "API": {
+ "AGENT_ASSIGNMENT": {
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
+ "FAILED": "এজেন্ট নির্ধারণ করা যায়নি। আবার চেষ্টা করুন।"
+ },
+ "LABEL_ASSIGNMENT": {
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
+ "FAILED": "লেবেল নির্ধারণ করা যায়নি। আবার চেষ্টা করুন।"
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "লেবেল সরানো যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "TEAM_ASSIGNMENT": {
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
+ "FAILED": "টিম নির্ধারণ করা যায়নি। আবার চেষ্টা করুন।"
+ }
+ }
+ },
+ "FOOTER": {
+ "MESSAGE_SIGN_TOOLTIP": "বার্তার স্বাক্ষর",
+ "ENABLE_SIGN_TOOLTIP": "স্বাক্ষর চালু করুন",
+ "DISABLE_SIGN_TOOLTIP": "স্বাক্ষর বন্ধ করুন",
+ "MSG_INPUT": "নতুন লাইনের জন্য Shift + Enter চাপুন। Canned Response বাছাই করতে '/' দিয়ে শুরু করুন।",
+ "PRIVATE_MSG_INPUT": "নতুন লাইনের জন্য Shift + Enter চাপুন। এটি শুধু এজেন্টদের জন্য দৃশ্যমান হবে",
+ "MESSAGING_RESTRICTED": "আপনি এই কথোপকথনে উত্তর দিতে পারবেন না",
+ "MESSAGING_RESTRICTED_WHATSAPP": "২৪ ঘণ্টার বার্তা সীমাবদ্ধতার কারণে শুধু টেমপ্লেট বার্তা দিয়ে উত্তর দিতে পারবেন",
+ "MESSAGING_RESTRICTED_API": "বার্তা উইন্ডো সীমাবদ্ধতার কারণে শুধু টেমপ্লেট বার্তা দিয়ে উত্তর দিতে পারবেন",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "বার্তার স্বাক্ষর কনফিগার করা হয়নি, প্রোফাইল সেটিংসে কনফিগার করুন।",
+ "COPILOT_MSG_INPUT": "Copilot-কে আরও নির্দেশ দিন বা অন্য কিছু জিজ্ঞাসা করুন... ফলো-আপ পাঠাতে এন্টার চাপুন",
+ "CLICK_HERE": "আপডেট করতে এখানে ক্লিক করুন",
+ "WHATSAPP_TEMPLATES": "Whatsapp টেমপ্লেট"
+ },
+ "REPLYBOX": {
+ "REPLY": "উত্তর দিন",
+ "PRIVATE_NOTE": "ব্যক্তিগত নোট",
+ "SEND": "পাঠান",
+ "CREATE": "নোট যোগ করুন",
+ "INSERT_READ_MORE": "আরও পড়ুন",
+ "DISMISS_REPLY": "উত্তর বাতিল করুন",
+ "REPLYING_TO": "উত্তর দিচ্ছেন:",
+ "TIP_EMOJI_ICON": "ইমোজি সিলেক্টর দেখান",
+ "TIP_ATTACH_ICON": "ফাইল সংযুক্ত করুন",
+ "TIP_AUDIORECORDER_ICON": "অডিও রেকর্ড করুন",
+ "TIP_AUDIORECORDER_PERMISSION": "অডিও অ্যাক্সেসের অনুমতি দিন",
+ "TIP_AUDIORECORDER_ERROR": "অডিও খোলা যায়নি",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "সংযুক্ত করতে এখানে ড্র্যাগ ও ড্রপ করুন",
+ "START_AUDIO_RECORDING": "অডিও রেকর্ডিং শুরু করুন",
+ "STOP_AUDIO_RECORDING": "অডিও রেকর্ডিং বন্ধ করুন",
+ "COPILOT_THINKING": "Copilot ভাবছে",
+ "EMAIL_HEAD": {
+ "TO": "TO",
+ "ADD_BCC": "বিসিসি যোগ করুন",
+ "CC": {
+ "LABEL": "CC",
+ "PLACEHOLDER": "কমা দিয়ে আলাদা ইমেইল",
+ "ERROR": "সঠিক ইমেইল ঠিকানা দিন"
+ },
+ "BCC": {
+ "LABEL": "BCC",
+ "PLACEHOLDER": "কমা দিয়ে আলাদা ইমেইল",
+ "ERROR": "বৈধ ইমেইল ঠিকানা দিন"
+ }
+ },
+ "UNDEFINED_VARIABLES": {
+ "TITLE": "অনির্ধারিত ভেরিয়েবল",
+ "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "CONFIRM": {
+ "YES": "পাঠান",
+ "CANCEL": "বাতিল"
+ }
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "উদ্ধৃত ইমেইল থ্রেড যুক্ত করুন",
+ "DISABLE_TOOLTIP": "উদ্ধৃত ইমেইল থ্রেড যুক্ত করবেন না",
+ "REMOVE_PREVIEW": "উদ্ধৃত ইমেইল থ্রেড সরান",
+ "COLLAPSE": "প্রিভিউ সংকুচিত করুন",
+ "EXPAND": "প্রিভিউ বড় করুন"
+ }
+ },
+ "VISIBLE_TO_AGENTS": "ব্যক্তিগত নোট: শুধু আপনি ও আপনার টিম দেখতে পারবেন",
+ "CHANGE_STATUS": "কথোপকথনের অবস্থা পরিবর্তিত হয়েছে",
+ "CHANGE_STATUS_FAILED": "কনভার্সেশনের স্ট্যাটাস পরিবর্তন ব্যর্থ হয়েছে",
+ "CHANGE_AGENT": "কথোপকথনের দায়িত্বপ্রাপ্ত ব্যক্তি পরিবর্তিত হয়েছে",
+ "CHANGE_AGENT_FAILED": "অ্যাসাইনি পরিবর্তন ব্যর্থ হয়েছে",
+ "ASSIGN_LABEL_SUCCESFUL": "লেবেল সফলভাবে নির্ধারণ হয়েছে",
+ "ASSIGN_LABEL_FAILED": "লেবেল নির্ধারণ ব্যর্থ হয়েছে",
+ "CHANGE_TEAM": "আলাপের টিম পরিবর্তন হয়েছে",
+ "SUCCESS_DELETE_CONVERSATION": "কথোপকথন সফলভাবে মুছে ফেলা হয়েছে",
+ "FAIL_DELETE_CONVERSATION": "কথোপকথন মুছে ফেলা যায়নি! আবার চেষ্টা করুন",
+ "FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "বার্তাটি পাঠানো যায়নি, পরে আবার চেষ্টা করুন",
+ "SENT_BY": "প্রেরক:",
+ "BOT": "Bot",
+ "NATIVE_APP": "নেটিভ অ্যাপ",
+ "NATIVE_APP_ADVISORY": "এই বার্তাটি নেটিভ অ্যাপ থেকে পাঠানো হয়েছে। বার্তা উইন্ডো বজায় রাখতে Chatwoot থেকে উত্তর দিন।",
+ "SEND_FAILED": "বার্তা পাঠানো যায়নি! আবার চেষ্টা করুন",
+ "TRY_AGAIN": "পুনরায় চেষ্টা করুন",
+ "ASSIGNMENT": {
+ "SELECT_AGENT": "এজেন্ট নির্বাচন করুন",
+ "REMOVE": "সরান",
+ "ASSIGN": "নিয়োগ করুন"
+ },
+ "CONTEXT_MENU": {
+ "COPY": "কপি করুন",
+ "REPLY_TO": "এই বার্তায় উত্তর দিন",
+ "DELETE": "মুছুন",
+ "CREATE_A_CANNED_RESPONSE": "ক্যানড রেসপন্সে যোগ করুন",
+ "TRANSLATE": "অনুবাদ করুন",
+ "COPY_PERMALINK": "বার্তার লিঙ্ক কপি করুন",
+ "LINK_COPIED": "বার্তার URL ক্লিপবোর্ডে কপি হয়েছে",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "আপনি কি নিশ্চিত এই বার্তাটি মুছে ফেলতে চান?",
+ "MESSAGE": "এই কাজটি পূর্বাবস্থায় ফেরানো যাবে না",
+ "DELETE": "মুছে ফেলুন",
+ "CANCEL": "বাতিল করুন"
+ }
+ },
+ "SIDEBAR": {
+ "CONTACT": "যোগাযোগ",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "আসন্ন কল",
+ "OUTGOING_CALL": "প্রেরিত কল",
+ "CALL_IN_PROGRESS": "কল চলছে",
+ "NOT_ANSWERED_YET": "এখনও উত্তর পাওয়া যায়নি",
+ "HANDLED_IN_ANOTHER_TAB": "অন্য ট্যাবে পরিচালিত হচ্ছে",
+ "REJECT_CALL": "প্রত্যাখ্যান করুন",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "কলে যোগ দিন",
+ "END_CALL": "কল শেষ করুন",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
+ }
+ },
+ "EMAIL_TRANSCRIPT": {
+ "TITLE": "কথোপকথনের ট্রান্সক্রিপ্ট পাঠান",
+ "DESC": "নির্দিষ্ট ইমেইল ঠিকানায় কথোপকথনের ট্রান্সক্রিপ্ট পাঠান",
+ "SUBMIT": "জমা দিন",
+ "CANCEL": "বাতিল করুন",
+ "SEND_EMAIL_SUCCESS": "চ্যাট ট্রান্সক্রিপ্ট সফলভাবে পাঠানো হয়েছে",
+ "SEND_EMAIL_ERROR": "একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "আপনার বর্তমান প্ল্যানে ইমেইল ট্রান্সক্রিপ্ট সুবিধা নেই। এই ফিচারটি ব্যবহার করতে প্ল্যান আপগ্রেড করুন।",
+ "FORM": {
+ "SEND_TO_CONTACT": "গ্রাহককে ট্রান্সক্রিপ্ট পাঠান",
+ "SEND_TO_AGENT": "নিয়োজিত এজেন্টকে ট্রান্সক্রিপ্ট পাঠান",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "অন্য ইমেইল ঠিকানায় ট্রান্সক্রিপ্ট পাঠান",
+ "EMAIL": {
+ "PLACEHOLDER": "ইমেইল ঠিকানা লিখুন",
+ "ERROR": "একটি বৈধ ইমেইল ঠিকানা লিখুন"
+ }
+ }
+ },
+ "ONBOARDING": {
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
+ "READ_LATEST_UPDATES": "আমাদের সর্বশেষ আপডেট পড়ুন",
+ "ALL_CONVERSATION": {
+ "TITLE": "আপনার সব কথোপকথন এক জায়গায়",
+ "DESCRIPTION": "একটি ড্যাশবোর্ডে আপনার গ্রাহকদের সব কথোপকথন দেখুন। আপনি চ্যানেল, লেবেল ও স্ট্যাটাস অনুযায়ী ফিল্টার করতে পারবেন।",
+ "NEW_LINK": "ইনবক্স তৈরি করতে এখানে ক্লিক করুন"
+ },
+ "TEAM_MEMBERS": {
+ "TITLE": "আপনার টিম সদস্যদের আমন্ত্রণ জানান",
+ "DESCRIPTION": "আপনি যখন গ্রাহকের সাথে কথা বলার জন্য প্রস্তুতি নিচ্ছেন, তখন সহায়তার জন্য আপনার টিমমেটদের যুক্ত করুন। এজেন্ট তালিকায় তাদের ইমেইল ঠিকানা যোগ করে আমন্ত্রণ জানাতে পারেন।",
+ "NEW_LINK": "টিম সদস্য আমন্ত্রণ জানাতে এখানে ক্লিক করুন"
+ },
+ "LABELS": {
+ "TITLE": "লেবেল দিয়ে কথোপকথন সাজান",
+ "DESCRIPTION": "লেবেল ব্যবহার করে সহজেই কথোপকথন শ্রেণিবদ্ধ করুন। যেমন #support-enquiry, #billing-question ইত্যাদি লেবেল তৈরি করুন, পরে কথোপকথনে ব্যবহার করতে পারবেন।",
+ "NEW_LINK": "ট্যাগ তৈরি করতে এখানে ক্লিক করুন"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "ক্যানড রেসপন্স তৈরি করুন",
+ "DESCRIPTION": "আগে থেকে লেখা দ্রুত উত্তর টেমপ্লেট দিয়ে সহজেই কথোপকথনে উত্তর দিন। এজেন্টরা '/' চিহ্ন ও শর্টকোড লিখে দ্রুত উত্তর যোগ করতে পারেন।",
+ "NEW_LINK": "ক্যানড রেসপন্স তৈরি করতে এখানে ক্লিক করুন"
+ }
+ },
+ "CONVERSATION_SIDEBAR": {
+ "ASSIGNEE_LABEL": "নিযুক্ত এজেন্ট",
+ "SELF_ASSIGN": "নিজেকে নির্ধারণ করুন",
+ "TEAM_LABEL": "নিযুক্ত টিম",
+ "SELECT": {
+ "PLACEHOLDER": "কিছুই না"
+ },
+ "ACCORDION": {
+ "CONTACT_DETAILS": "যোগাযোগের বিবরণ",
+ "CONVERSATION_ACTIONS": "আলোচনার কার্যক্রম",
+ "CONVERSATION_LABELS": "আলোচনার লেবেল",
+ "CONVERSATION_INFO": "আলোচনার তথ্য",
+ "CONTACT_NOTES": "যোগাযোগ নোট",
+ "CONTACT_ATTRIBUTES": "যোগাযোগের বৈশিষ্ট্য",
+ "PREVIOUS_CONVERSATION": "পূর্বের আলোচনা",
+ "MACROS": "ম্যাক্রো",
+ "LINEAR_ISSUES": "সংযুক্ত Linear সমস্যা",
+ "SHOPIFY_ORDERS": "Shopify অর্ডার",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "সব দেখুন",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "অর্ডার লোড করতে সমস্যা হয়েছে",
+ "NO_SHOPIFY_ORDERS": "কোনো অর্ডার পাওয়া যায়নি",
+ "FINANCIAL_STATUS": {
+ "PENDING": "অপেক্ষমাণ",
+ "AUTHORIZED": "অনুমোদিত",
+ "PARTIALLY_PAID": "আংশিক পরিশোধিত",
+ "PAID": "পরিশোধিত",
+ "PARTIALLY_REFUNDED": "আংশিক ফেরত",
+ "REFUNDED": "ফেরত",
+ "VOIDED": "বাতিল"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "সম্পন্ন",
+ "PARTIALLY_FULFILLED": "আংশিক সম্পন্ন",
+ "UNFULFILLED": "অসম্পন্ন"
+ }
+ }
+ },
+ "CONVERSATION_CUSTOM_ATTRIBUTES": {
+ "ADD_BUTTON_TEXT": "অ্যাট্রিবিউট তৈরি করুন",
+ "NO_RECORDS_FOUND": "কোনো অ্যাট্রিবিউট পাওয়া যায়নি",
+ "UPDATE": {
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে আপডেট হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট আপডেট করা যায়নি। পরে আবার চেষ্টা করুন"
+ },
+ "ADD": {
+ "TITLE": "যোগ করুন",
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে যোগ হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট যোগ করা যায়নি। পরে আবার চেষ্টা করুন"
+ },
+ "DELETE": {
+ "SUCCESS": "অ্যাট্রিবিউট সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR": "অ্যাট্রিবিউট মুছে ফেলা যায়নি। পরে আবার চেষ্টা করুন"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "অ্যাট্রিবিউট যোগ করুন",
+ "PLACEHOLDER": "অ্যাট্রিবিউট অনুসন্ধান করুন",
+ "NO_RESULT": "কোনো অ্যাট্রিবিউট পাওয়া যায়নি"
+ }
+ },
+ "EMAIL_HEADER": {
+ "FROM": "প্রেরক",
+ "TO": "প্রাপক",
+ "BCC": "বিসিসি",
+ "CC": "সিসি",
+ "SUBJECT": "বিষয়",
+ "EXPAND": "ইমেইল প্রসারিত করুন"
+ },
+ "CONVERSATION_PARTICIPANTS": {
+ "SIDEBAR_MENU_TITLE": "অংশগ্রহণকারী",
+ "SIDEBAR_TITLE": "আলোচনার অংশগ্রহণকারীরা",
+ "NO_RECORDS_FOUND": "কোনো ফলাফল পাওয়া যায়নি",
+ "ADD_PARTICIPANTS": "অংশগ্রহণকারী নির্বাচন করুন",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
+ "NO_PARTICIPANTS_TEXT": "No one is participating!.",
+ "WATCH_CONVERSATION": "আলাপচারিতায় যোগ দিন",
+ "YOU_ARE_WATCHING": "আপনি অংশগ্রহণ করছেন",
+ "API": {
+ "ERROR_MESSAGE": "আপডেট করা যায়নি, আবার চেষ্টা করুন!",
+ "SUCCESS_MESSAGE": "অংশগ্রহণকারীরা আপডেট হয়েছে!"
+ }
+ },
+ "TRANSLATE_MODAL": {
+ "TITLE": "অনুবাদিত বিষয়বস্তু দেখুন",
+ "DESC": "You can view the translated content in each langauge.",
+ "ORIGINAL_CONTENT": "মূল বিষয়বস্তু",
+ "TRANSLATED_CONTENT": "অনুবাদিত বিষয়বস্তু",
+ "NO_TRANSLATIONS_AVAILABLE": "এই বিষয়বস্তুর জন্য কোনো অনুবাদ নেই"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "এই পরামর্শগুলো চেষ্টা করুন"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "সংযুক্তি ডাউনলোড করা যাচ্ছে না। আবার চেষ্টা করুন"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json b/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json
new file mode 100644
index 000000000..9e16dc2b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/csatMgmt.json
@@ -0,0 +1,13 @@
+{
+ "CSAT": {
+ "TITLE": "Rate your conversation",
+ "PLACEHOLDER": "Tell us more...",
+ "RATINGS": {
+ "POOR": "😞 Poor",
+ "FAIR": "😑 Fair",
+ "AVERAGE": "😐 Average",
+ "GOOD": "😀 Good",
+ "EXCELLENT": "😍 Excellent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/customRole.json b/app/javascript/dashboard/i18n/locale/bn/customRole.json
new file mode 100644
index 000000000..f7c1709bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/datePicker.json b/app/javascript/dashboard/i18n/locale/bn/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/emoji.json b/app/javascript/dashboard/i18n/locale/bn/emoji.json
new file mode 100644
index 000000000..d5b96f0f9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/emoji.json
@@ -0,0 +1,7 @@
+{
+ "EMOJI": {
+ "PLACEHOLDER": "Search emojis",
+ "NOT_FOUND": "No emoji match your search",
+ "REMOVE": "Remove"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/general.json b/app/javascript/dashboard/i18n/locale/bn/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/generalSettings.json b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json
new file mode 100644
index 000000000..fab8020e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/generalSettings.json
@@ -0,0 +1,252 @@
+{
+ "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. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
+ "TITLE": "Account settings",
+ "SUBMIT": "Update settings",
+ "BACK": "Back",
+ "DISMISS": "Dismiss",
+ "UPDATE": {
+ "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": {
+ "TITLE": "General settings",
+ "NOTE": ""
+ },
+ "ACCOUNT_ID": {
+ "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",
+ "ERROR": "Please enter a valid account name"
+ },
+ "LANGUAGE": {
+ "LABEL": "Site language",
+ "PLACEHOLDER": "Your account name",
+ "ERROR": ""
+ },
+ "DOMAIN": {
+ "LABEL": "Incoming Email Domain",
+ "PLACEHOLDER": "The domain where you will receive the emails",
+ "ERROR": ""
+ },
+ "SUPPORT_EMAIL": {
+ "LABEL": "Support Email",
+ "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": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
+ "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"
+ },
+ "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.",
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
+ }
+ },
+ "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"
+ },
+ "FORMS": {
+ "MULTISELECT": {
+ "ENTER_TO_SELECT": "Press enter to select",
+ "ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
+ "SELECT_ONE": "Select one",
+ "SELECT": "Select"
+ }
+ },
+ "NOTIFICATIONS_PAGE": {
+ "HEADER": "Notifications",
+ "MARK_ALL_DONE": "Mark All Done",
+ "DELETE_TITLE": "deleted",
+ "UNREAD_NOTIFICATION": {
+ "TITLE": "Unread Notifications",
+ "ALL_NOTIFICATIONS": "View all notifications",
+ "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
+ "EMPTY_MESSAGE": "You have no unread notifications"
+ },
+ "LIST": {
+ "LOADING_MESSAGE": "Loading notifications...",
+ "404": "No Notifications",
+ "TABLE_HEADER": [
+ "Name",
+ "Phone Number",
+ "Conversations",
+ "Last Contacted"
+ ]
+ },
+ "TYPE_LABEL": {
+ "conversation_creation": "New conversation",
+ "conversation_assignment": "Conversation Assigned",
+ "assigned_conversation_new_message": "New Message",
+ "participating_conversation_new_message": "New Message",
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
+ }
+ },
+ "NETWORK": {
+ "NOTIFICATION": {
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
+ },
+ "BUTTON": {
+ "REFRESH": "Refresh"
+ }
+ },
+ "COMMAND_BAR": {
+ "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
+ "SECTIONS": {
+ "GENERAL": "General",
+ "REPORTS": "Reports",
+ "CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
+ "CHANGE_ASSIGNEE": "Change Assignee",
+ "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_TEAM": "Change Team",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "ADD_LABEL": "Add label to the conversation",
+ "REMOVE_LABEL": "Remove label from the conversation",
+ "SETTINGS": "Settings",
+ "AI_ASSIST": "AI Assist",
+ "APPEARANCE": "Appearance",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ },
+ "COMMANDS": {
+ "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
+ "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
+ "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
+ "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
+ "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
+ "GO_TO_LABEL_REPORTS": "Go to Label Reports",
+ "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
+ "GO_TO_TEAM_REPORTS": "Go to Team Reports",
+ "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
+ "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
+ "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
+ "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
+ "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
+ "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
+ "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
+ "GO_TO_NOTIFICATIONS": "Go to Notifications",
+ "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
+ "ASSIGN_AN_AGENT": "Assign an agent",
+ "AI_ASSIST": "AI Assist",
+ "ASSIGN_PRIORITY": "Assign priority",
+ "ASSIGN_A_TEAM": "Assign a team",
+ "MUTE_CONVERSATION": "Mute conversation",
+ "UNMUTE_CONVERSATION": "Unmute conversation",
+ "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
+ "REOPEN_CONVERSATION": "Reopen conversation",
+ "RESOLVE_CONVERSATION": "Resolve conversation",
+ "SEND_TRANSCRIPT": "Send an email transcript",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "UNTIL_NEXT_REPLY": "Until next reply",
+ "UNTIL_NEXT_WEEK": "Until next week",
+ "UNTIL_TOMORROW": "Until tomorrow",
+ "UNTIL_NEXT_MONTH": "Until next month",
+ "AN_HOUR_FROM_NOW": "Until an hour from now",
+ "UNTIL_CUSTOM_TIME": "Custom...",
+ "CHANGE_APPEARANCE": "Change Appearance",
+ "LIGHT_MODE": "Light",
+ "DARK_MODE": "Dark",
+ "SYSTEM_MODE": "System",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ }
+ },
+ "DASHBOARD_APPS": {
+ "LOADING_MESSAGE": "Loading Dashboard App..."
+ },
+ "COMMON": {
+ "OR": "Or",
+ "CLICK_HERE": "click here"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/helpCenter.json b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json
new file mode 100644
index 000000000..129a91b01
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/helpCenter.json
@@ -0,0 +1,958 @@
+{
+ "HELP_CENTER": {
+ "TITLE": "সহায়তা কেন্দ্র",
+ "NEW_PAGE": {
+ "DESCRIPTION": "আপনার গ্রাহকদের জন্য স্ব-সেবা সহায়তা কেন্দ্র পোর্টাল তৈরি করুন. অপেক্ষা ছাড়াই তাদের দ্রুত উত্তর খুঁজে পেতে সাহায্য করুন. জিজ্ঞাসা পরিচালনা সহজ করুন, এজেন্টদের দক্ষতা বাড়ান এবং গ্রাহক সহায়তা উন্নত করুন.",
+ "CREATE_PORTAL_BUTTON": "পোর্টাল তৈরি করুন"
+ },
+ "HEADER": {
+ "FILTER": "ফিল্টার করুন",
+ "SORT": "ক্রম সাজান",
+ "LOCALE": "লোকেল",
+ "SETTINGS_BUTTON": "সেটিংস",
+ "NEW_BUTTON": "নতুন আর্টিকেল",
+ "DROPDOWN_OPTIONS": {
+ "PUBLISHED": "প্রকাশিত",
+ "DRAFT": "খসড়া",
+ "ARCHIVED": "আর্কাইভ করা হয়েছে"
+ },
+ "TITLES": {
+ "ALL_ARTICLES": "সমস্ত নিবন্ধ",
+ "MINE": "আমার নিবন্ধসমূহ",
+ "DRAFT": "খসড়া নিবন্ধসমূহ",
+ "ARCHIVED": "আর্কাইভ করা নিবন্ধসমূহ"
+ },
+ "LOCALE_SELECT": {
+ "TITLE": "লোকেল নির্বাচন করুন",
+ "PLACEHOLDER": "লোকেল নির্বাচন করুন",
+ "NO_RESULT": "কোন লোকেল পাওয়া যায়নি",
+ "SEARCH_PLACEHOLDER": "লোকেল অনুসন্ধান করুন"
+ }
+ },
+ "EDIT_HEADER": {
+ "ALL_ARTICLES": "সমস্ত নিবন্ধ",
+ "PUBLISH_BUTTON": "প্রকাশ করুন",
+ "MOVE_TO_ARCHIVE_BUTTON": "আর্কাইভে সরান",
+ "PREVIEW": "পূর্বরূপ",
+ "ADD_TRANSLATION": "অনুবাদ যোগ করুন",
+ "OPEN_SIDEBAR": "সাইডবার খুলুন",
+ "CLOSE_SIDEBAR": "সাইডবার বন্ধ করুন",
+ "SAVING": "সংরক্ষণ হচ্ছে...",
+ "SAVED": "সংরক্ষিত"
+ },
+ "ARTICLE_EDITOR": {
+ "IMAGE_UPLOAD": {
+ "TITLE": "ছবি আপলোড করুন",
+ "UPLOADING": "আপলোড হচ্ছে...",
+ "SUCCESS": "ছবি সফলভাবে আপলোড হয়েছে",
+ "ERROR": "ছবি আপলোড করার সময় ত্রুটি হয়েছে",
+ "UN_AUTHORIZED_ERROR": "আপনি ছবি আপলোড করার অনুমোদিত নন",
+ "ERROR_FILE_SIZE": "ছবির আকার {size}MB এর কম হওয়া উচিত",
+ "ERROR_FILE_FORMAT": "ছবির ফরম্যাট jpg, jpeg অথবা png হতে হবে",
+ "ERROR_FILE_DIMENSIONS": "ছবির মাত্রা 2000 × 2000-এর কম হতে হবে"
+ }
+ },
+ "ARTICLE_SETTINGS": {
+ "TITLE": "নিবন্ধ সেটিংস",
+ "FORM": {
+ "CATEGORY": {
+ "LABEL": "বিভাগ",
+ "TITLE": "বিভাগ নির্বাচন করুন",
+ "PLACEHOLDER": "বিভাগ নির্বাচন করুন",
+ "NO_RESULT": "কোন বিভাগ পাওয়া যায়নি",
+ "SEARCH_PLACEHOLDER": "বিভাগ অনুসন্ধান করুন"
+ },
+ "AUTHOR": {
+ "LABEL": "লেখক",
+ "TITLE": "লেখক নির্বাচন করুন",
+ "PLACEHOLDER": "লেখক নির্বাচন করুন",
+ "NO_RESULT": "কোন লেখক পাওয়া যায়নি",
+ "SEARCH_PLACEHOLDER": "লেখক অনুসন্ধান করুন"
+ },
+ "META_TITLE": {
+ "LABEL": "মেটা শিরোনাম",
+ "PLACEHOLDER": "একটি মেটা শিরোনাম যোগ করুন"
+ },
+ "META_DESCRIPTION": {
+ "LABEL": "মেটা বিবরণ",
+ "PLACEHOLDER": "ভালো SEO ফলাফলের জন্য আপনার মেটা বিবরণ যোগ করুন..."
+ },
+ "META_TAGS": {
+ "LABEL": "মেটা ট্যাগ",
+ "PLACEHOLDER": "কমা দিয়ে পৃথক করা মেটা ট্যাগ যোগ করুন..."
+ }
+ },
+ "BUTTONS": {
+ "ARCHIVE": "নিবন্ধ আর্কাইভ করুন",
+ "DELETE": "নিবন্ধ মুছে ফেলুন"
+ }
+ },
+ "ARTICLE_SEARCH_RESULT": {
+ "UNCATEGORIZED": "বিভাগহীন",
+ "SEARCH_RESULTS": "{query} এর জন্য অনুসন্ধানের ফলাফল",
+ "EMPTY_TEXT": "উত্তরে যোগ করার জন্য নিবন্ধ খুঁজুন.",
+ "SEARCH_LOADER": "অনুসন্ধান চলছে...",
+ "INSERT_ARTICLE": "যোগ করুন",
+ "NO_RESULT": "কোনো নিবন্ধ পাওয়া যায়নি",
+ "COPY_LINK": "নিবন্ধের লিঙ্ক ক্লিপবোর্ডে কপি করুন",
+ "OPEN_LINK": "নতুন ট্যাবে নিবন্ধ খুলুন",
+ "PREVIEW_LINK": "নিবন্ধের পূর্বরূপ দেখুন"
+ },
+ "PORTAL": {
+ "HEADER": "পোর্টাল",
+ "DEFAULT": "ডিফল্ট",
+ "NEW_BUTTON": "নতুন পোর্টাল",
+ "ACTIVE_BADGE": "সক্রিয়",
+ "CHOOSE_LOCALE_LABEL": "একটি লোকেল নির্বাচন করুন",
+ "LOADING_MESSAGE": "পোর্টাল লোড হচ্ছে...",
+ "ARTICLES_LABEL": "নিবন্ধ",
+ "NO_PORTALS_MESSAGE": "কোনো পোর্টাল উপলব্ধ নেই",
+ "ADD_NEW_LOCALE": "নতুন একটি লোকেল যোগ করুন",
+ "POPOVER": {
+ "TITLE": "পোর্টালসমূহ",
+ "PORTAL_SETTINGS": "পোর্টাল সেটিংস",
+ "SUBTITLE": "আপনার একাধিক পোর্টাল রয়েছে এবং প্রতিটি পোর্টালের জন্য আলাদা লোকেল থাকতে পারে।.",
+ "CANCEL_BUTTON_LABEL": "বাতিল করুন",
+ "CHOOSE_LOCALE_BUTTON": "ভাষা নির্বাচন করুন"
+ },
+ "PORTAL_SETTINGS": {
+ "LIST_ITEM": {
+ "HEADER": {
+ "COUNT_LABEL": "নিবন্ধ",
+ "ADD": "লোকেল যোগ করুন",
+ "VISIT": "সাইট পরিদর্শন করুন",
+ "SETTINGS": "সেটিংস",
+ "DELETE": "মুছে ফেলুন"
+ },
+ "PORTAL_CONFIG": {
+ "TITLE": "পোর্টাল কনফিগারেশন",
+ "ITEMS": {
+ "NAME": "নাম",
+ "DOMAIN": "কাস্টম ডোমেইন",
+ "SLUG": "স্লাগ",
+ "TITLE": "পোর্টাল শিরোনাম",
+ "THEME": "থিম রঙ",
+ "SUB_TEXT": "পোর্টাল উপ-লেখা"
+ }
+ },
+ "AVAILABLE_LOCALES": {
+ "TITLE": "উপলব্ধ লোকেল",
+ "TABLE": {
+ "NAME": "লোকেল নাম",
+ "CODE": "লোকেল কোড",
+ "ARTICLE_COUNT": "প্রবন্ধের সংখ্যা",
+ "CATEGORIES": "বিভাগের সংখ্যা",
+ "SWAP": "অদলবদল",
+ "DELETE": "মুছে ফেলুন",
+ "DEFAULT_LOCALE": "ডিফল্ট"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "TITLE": "পোর্টাল মুছে ফেলুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে আপনি এই পোর্টালটি মুছে ফেলতে চান",
+ "YES": "হ্যাঁ, পোর্টাল মুছে ফেলুন",
+ "NO": "না, পোর্টাল রাখুন",
+ "API": {
+ "DELETE_SUCCESS": "পোর্টাল সফলভাবে মুছে ফেলা হয়েছে",
+ "DELETE_ERROR": "পোর্টাল মুছে ফেলার সময় ত্রুটি ঘটেছে"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME নির্দেশাবলী সফলভাবে পাঠানো হয়েছে",
+ "ERROR_MESSAGE": "CNAME নির্দেশাবলী পাঠানোর সময় ত্রুটি হয়েছে"
+ }
+ }
+ },
+ "EDIT": {
+ "HEADER_TEXT": "পোর্টাল সম্পাদনা করুন",
+ "TABS": {
+ "BASIC_SETTINGS": {
+ "TITLE": "মৌলিক তথ্য"
+ },
+ "CUSTOMIZATION_SETTINGS": {
+ "TITLE": "পোর্টাল কাস্টমাইজেশন"
+ },
+ "CATEGORY_SETTINGS": {
+ "TITLE": "বিভাগসমূহ"
+ },
+ "LOCALE_SETTINGS": {
+ "TITLE": "অঞ্চলসমূহ"
+ }
+ },
+ "CATEGORIES": {
+ "TITLE": "এ বিভাগের মধ্যে",
+ "NEW_CATEGORY": "নতুন বিভাগ",
+ "TABLE": {
+ "NAME": "নাম",
+ "DESCRIPTION": "বর্ণনা",
+ "LOCALE": "লোকেল",
+ "ARTICLE_COUNT": "প্রবন্ধের সংখ্যা",
+ "ACTION_BUTTON": {
+ "EDIT": "বিভাগ সম্পাদনা করুন",
+ "DELETE": "বিভাগ মুছুন"
+ },
+ "EMPTY_TEXT": "কোনো বিভাগ পাওয়া যায়নি"
+ }
+ },
+ "EDIT_BASIC_INFO": {
+ "BUTTON_TEXT": "মৌলিক সেটিংস আপডেট করুন"
+ }
+ },
+ "ADD": {
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "হেল্প সেন্টারের তথ্য",
+ "BODY": "পোর্টালের মৌলিক তথ্য"
+ },
+ "CUSTOMIZATION": {
+ "TITLE": "হেল্প সেন্টার কাস্টমাইজেশন",
+ "BODY": "পোর্টাল কাস্টমাইজ করুন"
+ },
+ "FINISH": {
+ "TITLE": "ভোইলা! 🎉",
+ "BODY": "আপনি প্রস্তুত!"
+ }
+ },
+ "CREATE_FLOW_PAGE": {
+ "BACK_BUTTON": "পেছনে",
+ "BASIC_SETTINGS_PAGE": {
+ "HEADER": "পোর্টাল তৈরি করুন",
+ "TITLE": "হেল্প সেন্টারের তথ্য",
+ "CREATE_BASIC_SETTING_BUTTON": "পোর্টালের মৌলিক সেটিংস তৈরি করুন"
+ },
+ "CUSTOMIZATION_PAGE": {
+ "HEADER": "পোর্টাল কাস্টমাইজেশন",
+ "TITLE": "হেল্প সেন্টার কাস্টমাইজেশন",
+ "UPDATE_PORTAL_BUTTON": "পোর্টাল সেটিংস আপডেট করুন"
+ },
+ "FINISH_PAGE": {
+ "TITLE": "ভোইলা!🎉 আপনি সব সেটআপ সম্পন্ন করেছেন!",
+ "MESSAGE": "এখন আপনি এই তৈরি করা পোর্টালটি আপনার সব পোর্টাল পৃষ্ঠায় দেখতে পারবেন।.",
+ "FINISH": "সমস্ত পোর্টাল পৃষ্ঠায় যান"
+ }
+ },
+ "LOGO": {
+ "LABEL": "লোগো",
+ "UPLOAD_BUTTON": "লোগো আপলোড করুন",
+ "HELP_TEXT": "এই লোগোটি পোর্টাল হেডারে প্রদর্শিত হবে।.",
+ "IMAGE_UPLOAD_SUCCESS": "লোগো সফলভাবে আপলোড হয়েছে",
+ "IMAGE_UPLOAD_ERROR": "লোগো সফলভাবে মুছে ফেলা হয়েছে",
+ "IMAGE_DELETE_ERROR": "লোগো মুছে ফেলার সময় ত্রুটি"
+ },
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "পোর্টাল নাম",
+ "HELP_TEXT": "নামটি অভ্যন্তরীণভাবে পাবলিক ফেসিং পোর্টালে ব্যবহৃত হবে।.",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "ইউআরএল-এর জন্য পোর্টাল স্লাগ",
+ "ERROR": "স্লাগ আবশ্যক"
+ },
+ "DOMAIN": {
+ "LABEL": "কাস্টম ডোমেইন",
+ "PLACEHOLDER": "পোর্টালের কাস্টম ডোমেইন",
+ "HELP_TEXT": "শুধুমাত্র তখনই যোগ করুন যদি আপনি আপনার পোর্টালের জন্য একটি কাস্টম ডোমেইন ব্যবহার করতে চান। উদাহরণ: {exampleURL}",
+ "ERROR": "একটি বৈধ ডোমেইন URL লিখুন"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "হোম পেজ লিঙ্ক",
+ "PLACEHOLDER": "পোর্টাল হোম পেজ লিঙ্ক",
+ "HELP_TEXT": "পোর্টাল থেকে হোম পেজে ফিরে যাওয়ার জন্য ব্যবহৃত লিঙ্ক। উদাহরণ: {exampleURL}",
+ "ERROR": "একটি বৈধ হোম পেজ URL লিখুন"
+ },
+ "THEME_COLOR": {
+ "LABEL": "পোর্টাল থিম রঙ",
+ "HELP_TEXT": "এই রঙটি পোর্টালের থিম রঙ হিসেবে প্রদর্শিত হবে।."
+ },
+ "PAGE_TITLE": {
+ "LABEL": "পৃষ্ঠার শিরোনাম",
+ "PLACEHOLDER": "পোর্টাল পৃষ্ঠার শিরোনাম",
+ "HELP_TEXT": "পেজ শিরোনামটি পাবলিক ফেসিং পোর্টালে ব্যবহৃত হবে।.",
+ "ERROR": "পৃষ্ঠার শিরোনাম আবশ্যক"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "হেডার টেক্সট",
+ "PLACEHOLDER": "পোর্টাল হেডার টেক্সট",
+ "HELP_TEXT": "পোর্টাল হেডার টেক্সটটি পাবলিক ফেসিং পোর্টালে ব্যবহৃত হবে।.",
+ "ERROR": "পোর্টাল হেডার টেক্সট আবশ্যক"
+ },
+ "API": {
+ "SUCCESS_MESSAGE_FOR_BASIC": "পোর্টাল সফলভাবে তৈরি হয়েছে।.",
+ "ERROR_MESSAGE_FOR_BASIC": "পোর্টাল তৈরি করা যায়নি। আবার চেষ্টা করুন।.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "পোর্টাল সফলভাবে আপডেট হয়েছে।.",
+ "ERROR_MESSAGE_FOR_UPDATE": "পোর্টাল আপডেট করা যায়নি। আবার চেষ্টা করুন।."
+ }
+ },
+ "ADD_LOCALE": {
+ "TITLE": "একটি নতুন লোকেল যোগ করুন",
+ "SUB_TITLE": "এটি আপনার উপলব্ধ অনুবাদ তালিকায় একটি নতুন লোকেল যোগ করে।.",
+ "PORTAL": "পোর্টাল",
+ "LOCALE": {
+ "LABEL": "লোকেল",
+ "PLACEHOLDER": "একটি লোকেল নির্বাচন করুন",
+ "ERROR": "লোকেল আবশ্যক"
+ },
+ "BUTTONS": {
+ "CREATE": "লোকেল তৈরি করুন",
+ "CANCEL": "বাতিল করুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "লোকেল সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "লোকেল যোগ করা যায়নি। আবার চেষ্টা করুন।."
+ }
+ },
+ "CHANGE_DEFAULT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "ডিফল্ট লোকেল সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "ডিফল্ট লোকেল আপডেট করা যায়নি। আবার চেষ্টা করুন।."
+ }
+ },
+ "DELETE_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "লোকেল সফলভাবে পোর্টাল থেকে সরানো হয়েছে",
+ "ERROR_MESSAGE": "লোকেল পোর্টাল থেকে সরানো যায়নি। আবার চেষ্টা করুন।."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
+ }
+ },
+ "TABLE": {
+ "LOADING_MESSAGE": "নিবন্ধ লোড হচ্ছে...",
+ "404": "আপনার অনুসন্ধানের সাথে কোনো নিবন্ধ মেলে নি 🔍",
+ "NO_ARTICLES": "কোনো উপলব্ধ নিবন্ধ নেই",
+ "HEADERS": {
+ "TITLE": "শিরোনাম",
+ "CATEGORY": "বিভাগ",
+ "READ_COUNT": "দর্শন",
+ "STATUS": "অবস্থা",
+ "LAST_EDITED": "সর্বশেষ সম্পাদিত"
+ },
+ "COLUMNS": {
+ "BY": "দ্বারা",
+ "AUTHOR_NOT_AVAILABLE": "লেখক উপলব্ধ নেই"
+ }
+ },
+ "EDIT_ARTICLE": {
+ "LOADING": "নিবন্ধ লোড হচ্ছে...",
+ "TITLE_PLACEHOLDER": "নিবন্ধের শিরোনাম এখানে লিখুন",
+ "CONTENT_PLACEHOLDER": "আপনার নিবন্ধ এখানে লিখুন",
+ "API": {
+ "ERROR": "আর্টিকেল সংরক্ষণ করার সময় ত্রুটি"
+ }
+ },
+ "PUBLISH_ARTICLE": {
+ "API": {
+ "ERROR": "প্রবন্ধ প্রকাশ করার সময় ত্রুটি",
+ "SUCCESS": "নিবন্ধ সফলভাবে প্রকাশিত হয়েছে"
+ }
+ },
+ "ARCHIVE_ARTICLE": {
+ "API": {
+ "ERROR": "আর্টিকেল আর্কাইভ করার সময় ত্রুটি",
+ "SUCCESS": "আর্টিকেল সফলভাবে আর্কাইভ করা হয়েছে"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "প্রবন্ধ খসড়া করার সময় ত্রুটি",
+ "SUCCESS": "নিবন্ধ সফলভাবে খসড়া হয়েছে"
+ }
+ },
+ "DELETE_ARTICLE": {
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে নিবন্ধটি মুছে ফেলতে চান?",
+ "YES": "হ্যাঁ, মুছে ফেলুন",
+ "NO": "না, রাখুন"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "নিবন্ধ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "নিবন্ধ মুছে ফেলার সময় ত্রুটি হয়েছে"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "আর্টিকেল পুনরায় সাজানো যাচ্ছে না। আবার চেষ্টা করুন।."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "বিভাগ পুনরায় সাজানো যাচ্ছে না। আবার চেষ্টা করুন।."
+ }
+ },
+ "CREATE_ARTICLE": {
+ "ERROR_MESSAGE": "অনুগ্রহ করে আর্টিকেল শিরোনাম এবং বিষয়বস্তু যোগ করুন, তারপরই আপনি সেটিংস আপডেট করতে পারবেন"
+ },
+ "SIDEBAR": {
+ "SEARCH": {
+ "PLACEHOLDER": "নিবন্ধ অনুসন্ধান করুন"
+ }
+ },
+ "CATEGORY": {
+ "ADD": {
+ "TITLE": "একটি বিভাগ তৈরি করুন",
+ "SUB_TITLE": "বিভাগটি পাবলিক ফেসিং পোর্টালে নিবন্ধগুলি শ্রেণীবদ্ধ করতে ব্যবহৃত হবে।.",
+ "PORTAL": "পোর্টাল",
+ "LOCALE": "লোকেল",
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "বিভাগের নাম",
+ "HELP_TEXT": "নিবন্ধগুলোকে শ্রেণীবদ্ধ করতে পাবলিক পোর্টালে বিভাগের নাম ও চিহ্ন ব্যবহার করা হবে.",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "বিভাগের ইউআরএল স্লাগ",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
+ "ERROR": "স্লাগ আবশ্যক"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "বিভাগ সম্পর্কে সংক্ষিপ্ত বর্ণনা দিন।.",
+ "ERROR": "বর্ণনা আবশ্যক"
+ },
+ "BUTTONS": {
+ "CREATE": "বিভাগ তৈরি করুন",
+ "CANCEL": "বাতিল করুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ তৈরি করা যায়নি"
+ }
+ },
+ "EDIT": {
+ "TITLE": "একটি বিভাগ সম্পাদনা করুন",
+ "SUB_TITLE": "একটি বিভাগ সম্পাদনা করলে পাবলিক ফেসিং পোর্টালে বিভাগটি আপডেট হবে।.",
+ "PORTAL": "পোর্টাল",
+ "LOCALE": "লোকেল",
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "বিভাগের নাম",
+ "HELP_TEXT": "নিবন্ধগুলোকে শ্রেণীবদ্ধ করতে পাবলিক পোর্টালে বিভাগের নাম ও চিহ্ন ব্যবহার করা হবে.",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "বিভাগের ইউআরএল স্লাগ",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
+ "ERROR": "স্লাগ আবশ্যক"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "বিভাগ সম্পর্কে সংক্ষিপ্ত বর্ণনা দিন।.",
+ "ERROR": "বর্ণনা আবশ্যক"
+ },
+ "BUTTONS": {
+ "CREATE": "বিভাগ আপডেট করুন",
+ "CANCEL": "বাতিল করুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ আপডেট করতে অক্ষম"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ মুছে ফেলতে অক্ষম"
+ }
+ }
+ },
+ "ARTICLE_SEARCH": {
+ "TITLE": "নিবন্ধ অনুসন্ধান করুন",
+ "PLACEHOLDER": "নিবন্ধ অনুসন্ধান করুন",
+ "NO_RESULT": "কোনো নিবন্ধ পাওয়া যায়নি",
+ "SEARCHING": "অনুসন্ধান চলছে...",
+ "SEARCH_BUTTON": "অনুসন্ধান",
+ "INSERT_ARTICLE": "লিঙ্ক প্রবেশ করান",
+ "IFRAME_ERROR": "URL খালি আছে বা সঠিক নয়. বিষয়বস্তু প্রদর্শন করা যাচ্ছে না.",
+ "OPEN_ARTICLE_SEARCH": "হেল্প সেন্টার থেকে নিবন্ধ প্রবেশ করান",
+ "SUCCESS_ARTICLE_INSERTED": "নিবন্ধ সফলভাবে প্রবেশ করানো হয়েছে",
+ "PREVIEW_LINK": "নিবন্ধের পূর্বরূপ দেখুন",
+ "CANCEL": "বন্ধ করুন",
+ "BACK": "পেছনে",
+ "BACK_RESULTS": "ফলাফলের দিকে ফিরে যান"
+ },
+ "UPGRADE_PAGE": {
+ "TITLE": "হেল্প সেন্টার",
+ "DESCRIPTION": "সহজে ব্যবহারযোগ্য স্ব-সেবা পোর্টাল তৈরি করুন. আপনার ব্যবহারকারীদের নিবন্ধগুলোতে প্রবেশ করতে দিন এবং ২৪/৭ সহায়তা পান. এই ফিচারটি চালু করতে আপনার সাবস্ক্রিপশন আপগ্রেড করুন.",
+ "SELF_HOSTED_DESCRIPTION": "সহজে ব্যবহারযোগ্য স্ব-সেবা পোর্টাল তৈরি করুন. আপনার ব্যবহারকারীদের নিবন্ধগুলোতে প্রবেশ করতে দিন এবং ২৪/৭ সহায়তা পেতে সাহায্য করুন. এই ফিচারটি চালু করতে আপনার প্রশাসকের সাথে যোগাযোগ করুন.",
+ "BUTTON": {
+ "LEARN_MORE": "আরও জানুন",
+ "UPGRADE": "আপগ্রেড করুন"
+ },
+ "FEATURES": {
+ "PORTALS": {
+ "TITLE": "একাধিক পোর্টাল",
+ "DESCRIPTION": "একই অ্যাকাউন্ট ব্যবহার করে বিভিন্ন পণ্যের জন্য একাধিক হেল্প সেন্টার পোর্টাল তৈরি করুন."
+ },
+ "LOCALES": {
+ "TITLE": "লোকেলগুলোর পূর্ণ সমর্থন",
+ "DESCRIPTION": "আপনার ভাষায় পোর্টালটি স্থানীয়করণ করুন. আমরা সব লোকেল সমর্থন করি এবং প্রতিটি নিবন্ধের জন্য অনুবাদের সুযোগ দিই."
+ },
+ "SEO": {
+ "TITLE": "সার্চ ইঞ্জিন-বান্ধব নকশা",
+ "DESCRIPTION": "আমাদের সার্চ ইঞ্জিন-বান্ধব পৃষ্ঠাগুলোর সাহায্যে আপনার মেটা ট্যাগ কাস্টমাইজ করে সার্চ ইঞ্জিনে দৃশ্যমানতা বাড়ান."
+ },
+ "API": {
+ "TITLE": "পূর্ণ API সমর্থন",
+ "DESCRIPTION": "আমাদের API ব্যবহার করে তৃতীয় পক্ষের ফ্রেমওয়ার্কের সঙ্গে পোর্টালটিকে হেডলেস CMS হিসেবে ব্যবহার করুন."
+ }
+ }
+ },
+ "LOADING": "লোড হচ্ছে...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} ভিউ | {count} ভিউসমূহ",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "প্রকাশ করুন",
+ "DRAFT": "খসড়া",
+ "ARCHIVE": "আর্কাইভ",
+ "TRANSLATE": "অনুবাদ করুন",
+ "DELETE": "মুছে ফেলুন"
+ },
+ "STATUS": {
+ "DRAFT": "খসড়া",
+ "PUBLISHED": "প্রকাশিত",
+ "ARCHIVED": "সংরক্ষিত"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "বিভাগবিহীন"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "সমস্ত নিবন্ধ",
+ "MINE": "আমার",
+ "DRAFT": "খসড়া",
+ "PUBLISHED": "প্রকাশিত",
+ "ARCHIVED": "আর্কাইভ করা"
+ },
+ "CATEGORY": {
+ "ALL": "সমস্ত বিভাগ"
+ },
+ "LOCALE": {
+ "ALL": "সমস্ত ভাষা"
+ },
+ "NEW_ARTICLE": "নতুন নিবন্ধ"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "একটি নিবন্ধ লিখুন",
+ "SUBTITLE": "একটি সমৃদ্ধ নিবন্ধ লিখুন, চলুন শুরু করা যাক!",
+ "BUTTON_LABEL": "নতুন নিবন্ধ"
+ },
+ "MINE": {
+ "TITLE": "আপনি এখানে কোনো নিবন্ধ লিখেননি",
+ "SUBTITLE": "আপনার লেখা সব নিবন্ধ দ্রুত ব্যবহারের জন্য এখানে দেখা যাবে."
+ },
+ "DRAFT": {
+ "TITLE": "খসড়ায় কোনো নিবন্ধ নেই",
+ "SUBTITLE": "খসড়া নিবন্ধ এখানে প্রদর্শিত হবে"
+ },
+ "PUBLISHED": {
+ "TITLE": "প্রকাশিত কোনো নিবন্ধ নেই",
+ "SUBTITLE": "প্রকাশিত নিবন্ধ এখানে প্রদর্শিত হবে"
+ },
+ "ARCHIVED": {
+ "TITLE": "আর্কাইভে কোনো নিবন্ধ নেই",
+ "SUBTITLE": "আর্কাইভ করা নিবন্ধগুলি পোর্টালে প্রদর্শিত হয় না, আপনি এটি অব্যবহৃত বা পুরানো পৃষ্ঠাগুলি চিহ্নিত করতে ব্যবহার করতে পারেন"
+ },
+ "CATEGORY": {
+ "TITLE": "এই বিভাগে কোনো নিবন্ধ নেই",
+ "SUBTITLE": "এই বিভাগের নিবন্ধগুলি এখানে প্রদর্শিত হবে"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "অনুবাদ করুন",
+ "SELECT_ALL": "সব নির্বাচন করুন ({count})",
+ "SELECTED_COUNT": "{count} নির্বাচিত",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "অনুবাদ করুন",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "প্রকাশ করুন",
+ "DRAFT": "খসড়া",
+ "ARCHIVE": "আর্কাইভ",
+ "TRANSLATE": "অনুবাদ করুন",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "মুছে ফেলুন",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "মুছে ফেলুন",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "নতুন বিভাগ",
+ "EDIT_CATEGORY": "বিভাগ সম্পাদনা করুন",
+ "CATEGORIES_COUNT": "{n} বিভাগ | {n} বিভাগসমূহ",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "বিভাগসমূহ ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} নিবন্ধ) | {categoryName} ({categoryCount} নিবন্ধ)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "কোনো বিভাগ পাওয়া যায়নি",
+ "SUBTITLE": "বিভাগগুলো এখানে দেখানো হবে. 'নতুন বিভাগ' বোতামে ক্লিক করে আপনি একটি বিভাগ যোগ করতে পারেন."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} নিবন্ধ | {count} নিবন্ধসমূহ"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ তৈরি করা সম্ভব হয়নি"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ আপডেট করতে অক্ষম"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "বিভাগ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "বিভাগ মুছে ফেলতে অক্ষম"
+ }
+ },
+ "HEADER": {
+ "CREATE": "বিভাগ তৈরি করুন",
+ "EDIT": "বিভাগ সম্পাদনা করুন",
+ "DESCRIPTION": "একটি বিভাগ সম্পাদনা করলে তা পাবলিক পোর্টালে আপডেট হবে.",
+ "PORTAL": "পোর্টাল",
+ "LOCALE": "লোকেল"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "বিভাগের নাম",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "বিভাগের ইউআরএল স্লাগ",
+ "ERROR": "স্লাগ আবশ্যক",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "বিভাগ সম্পর্কে একটি সংক্ষিপ্ত বিবরণ দিন.",
+ "ERROR": "বর্ণনা আবশ্যক"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "তৈরি করুন",
+ "EDIT": "আপডেট করুন",
+ "CANCEL": "বাতিল করুন"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "কোনো লোকেল উপলব্ধ নেই | {n} লোকেল | {n} লোকেলসমূহ",
+ "NEW_LOCALE_BUTTON_TEXT": "নতুন লোকেল",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} নিবন্ধ | {count} নিবন্ধসমূহ",
+ "CATEGORIES_COUNT": "{count} বিভাগ | {count} বিভাগসমূহ",
+ "DEFAULT": "ডিফল্ট",
+ "DRAFT": "খসড়া",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "ডিফল্ট করুন",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "মুছে ফেলুন"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "নতুন লোকেল যোগ করুন",
+ "DESCRIPTION": "এই নিবন্ধটি যে ভাষায় লেখা হবে তা নির্বাচন করুন. এটি আপনার অনুবাদ তালিকায় যোগ হবে, এবং পরে আপনি আরও ভাষা যোগ করতে পারবেন.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "লোকেল নির্বাচন করুন..."
+ },
+ "STATUS": {
+ "LABEL": "অবস্থা",
+ "OPTIONS": {
+ "LIVE": "প্রকাশিত",
+ "DRAFT": "খসড়া"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "লোকেল সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "লোকেল যোগ করা যায়নি. আবার চেষ্টা করুন."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "সংরক্ষণ হচ্ছে...",
+ "SAVED": "সংরক্ষিত"
+ },
+ "PREVIEW": "পূর্বরূপ",
+ "PUBLISH": "প্রকাশ করুন",
+ "DRAFT": "খসড়া",
+ "ARCHIVE": "আর্কাইভ",
+ "BACK_TO_ARTICLES": "নিবন্ধগুলিতে ফিরে যান"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "আরও বৈশিষ্ট্য",
+ "UNCATEGORIZED": "বিভাগবিহীন",
+ "EDITOR_PLACEHOLDER": "কিছু লিখুন..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "নিবন্ধের বৈশিষ্ট্য",
+ "META_DESCRIPTION": "মেটা বর্ণনা",
+ "META_DESCRIPTION_PLACEHOLDER": "মেটা বর্ণনা যোগ করুন",
+ "META_TITLE": "মেটা শিরোনাম",
+ "META_TITLE_PLACEHOLDER": "মেটা শিরোনাম যোগ করুন",
+ "META_TAGS": "মেটা ট্যাগ",
+ "META_TAGS_PLACEHOLDER": "মেটা ট্যাগ যোগ করুন"
+ },
+ "API": {
+ "ERROR": "আর্টিকেল সংরক্ষণ করার সময় ত্রুটি"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "নতুন পোর্টাল",
+ "PORTALS": "পোর্টালসমূহ",
+ "CREATE_PORTAL": "একাধিক পোর্টাল তৈরি ও পরিচালনা করুন",
+ "ARTICLES": "নিবন্ধসমূহ",
+ "DOMAIN": "ডোমেইন",
+ "PORTAL_NAME": "পোর্টালের নাম"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "নতুন পোর্টাল তৈরি করুন",
+ "DESCRIPTION": "আপনার পোর্টালের একটি নাম দিন এবং একটি ব্যবহারকারী-বান্ধব URL স্লাগ তৈরি করুন. পরে সেটিংস থেকে দুটোই পরিবর্তন করতে পারবেন.",
+ "CONFIRM_BUTTON_LABEL": "তৈরি করুন",
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "ব্যবহারকারী গাইড | Chatwoot",
+ "MESSAGE": "আপনার পোর্টালের জন্য একটি নাম নির্বাচন করুন.",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "ব্যবহারকারী-গাইড",
+ "ERROR": "স্লাগ আবশ্যক",
+ "FORMAT_ERROR": "একটি বৈধ স্লাগ লিখুন, যেমন: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "লোগো",
+ "IMAGE_UPLOAD_ERROR": "ছবি আপলোড করা যায়নি! আবার চেষ্টা করুন",
+ "IMAGE_UPLOAD_SUCCESS": "ছবি সফলভাবে যোগ করা হয়েছে। লোগো সংরক্ষণ করতে অনুগ্রহ করে পরিবর্তনগুলি সংরক্ষণ করুন ক্লিক করুন",
+ "IMAGE_DELETE_SUCCESS": "লোগো সফলভাবে মুছে ফেলা হয়েছে",
+ "IMAGE_DELETE_ERROR": "লোগো মুছে ফেলা যায়নি",
+ "IMAGE_UPLOAD_SIZE_ERROR": "ছবির আকার {size}MB এর কম হতে হবে"
+ },
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "পোর্টালের নাম",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "হেডার টেক্সট",
+ "PLACEHOLDER": "পোর্টাল হেডার টেক্সট"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "পৃষ্ঠার শিরোনাম",
+ "PLACEHOLDER": "পোর্টাল পৃষ্ঠার শিরোনাম"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "হোম পেজ লিঙ্ক",
+ "PLACEHOLDER": "পোর্টাল হোম পেজ লিঙ্ক",
+ "ERROR": "একটি বৈধ URL লিখুন। হোম পেজ লিঙ্ক অবশ্যই 'http://' বা 'https://' দিয়ে শুরু হতে হবে।."
+ },
+ "SLUG": {
+ "LABEL": "স্লাগ",
+ "PLACEHOLDER": "পোর্টাল স্লাগ"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "লাইভ চ্যাট উইজেট",
+ "PLACEHOLDER": "লাইভ চ্যাট উইজেট নির্বাচন করুন",
+ "HELP_TEXT": "একটি লাইভ চ্যাট উইজেট নির্বাচন করুন যা আপনার হেল্প সেন্টারে প্রদর্শিত হবে",
+ "NONE_OPTION": "কোনো উইজেট নেই"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "ব্র্যান্ড রঙ"
+ },
+ "SAVE_CHANGES": "পরিবর্তন সংরক্ষণ করুন"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "কাস্টম ডোমেইন",
+ "LABEL": "কাস্টম ডোমেইন:",
+ "DESCRIPTION": "আপনি আপনার পোর্টালটি একটি কাস্টম ডোমেনে হোস্ট করতে পারেন. উদাহরণস্বরূপ, আপনার ওয়েবসাইট যদি yourdomain.com হয় এবং আপনি চান পোর্টালটি docs.yourdomain.com-এ থাকুক, তাহলে এই ঘরে সেটি লিখুন.",
+ "STATUS_DESCRIPTION": "যাচাই সম্পন্ন হলেই আপনার কাস্টম পোর্টাল কাজ শুরু করবে.",
+ "PLACEHOLDER": "পোর্টালের কাস্টম ডোমেন",
+ "EDIT_BUTTON": "সম্পাদনা করুন",
+ "ADD_BUTTON": "কাস্টম ডোমেন যোগ করুন",
+ "STATUS": {
+ "LIVE": "লাইভ",
+ "PENDING": "যাচাইয়ের অপেক্ষায়",
+ "ERROR": "যাচাই ব্যর্থ হয়েছে"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "কাস্টম ডোমেন যোগ করুন",
+ "EDIT_HEADER": "কাস্টম ডোমেন সম্পাদনা করুন",
+ "ADD_CONFIRM_BUTTON_LABEL": "ডোমেইন যোগ করুন",
+ "EDIT_CONFIRM_BUTTON_LABEL": "ডোমেইন আপডেট করুন",
+ "LABEL": "কাস্টম ডোমেইন",
+ "PLACEHOLDER": "পোর্টাল কাস্টম ডোমেইন",
+ "ERROR": "কাস্টম ডোমেইন আবশ্যক",
+ "FORMAT_ERROR": "একটি বৈধ ডোমেইন URL লিখুন যেমন docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS কনফিগারেশন",
+ "DESCRIPTION": "আপনার DNS প্রদানকারীর অ্যাকাউন্টে লগইন করুন এবং সাবডোমেইনের জন্য একটি CNAME রেকর্ড যোগ করুন যা chatwoot.help এর দিকে নির্দেশ করে",
+ "COPY": "সফলভাবে CNAME কপি হয়েছে",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "নির্দেশনা পাঠান",
+ "DESCRIPTION": "আপনার ডেভেলপমেন্ট টিমের কেউ যদি এই ধাপটি পরিচালনা করতে চান, তাহলে নিচে একটি ইমেইল ঠিকানা লিখুন. আমরা তাদের প্রয়োজনীয় নির্দেশনা পাঠিয়ে দেব.",
+ "PLACEHOLDER": "তাদের ইমেল লিখুন",
+ "ERROR": "একটি বৈধ ইমেল ঠিকানা লিখুন",
+ "SEND_BUTTON": "পাঠান"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName} মুছুন",
+ "HEADER": "পোর্টাল মুছুন",
+ "DESCRIPTION": "এই পোর্টালটি স্থায়ীভাবে মুছে ফেলুন। এই ক্রিয়াটি অপরিবর্তনীয়",
+ "DIALOG": {
+ "HEADER": "আপনি কি নিশ্চিত যে আপনি {portalName} মুছে ফেলতে চান?",
+ "DESCRIPTION": "এটি একটি স্থায়ী কাজ, যা আর ফিরিয়ে নেওয়া যাবে না.",
+ "CONFIRM_BUTTON_LABEL": "মুছে ফেলুন"
+ }
+ },
+ "EDIT_CONFIGURATION": "কনফিগারেশন সম্পাদনা করুন"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "সরান"
+ },
+ "SAVE": "পরিবর্তন সংরক্ষণ করুন"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "পোর্টাল সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "পোর্টাল তৈরি করা যায়নি"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "পোর্টাল সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "পোর্টাল আপডেট করা যায়নি"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "PDF ডকুমেন্ট আপলোড করুন",
+ "DESCRIPTION": "AI ব্যবহার করে স্বয়ংক্রিয়ভাবে FAQ তৈরি করতে একটি PDF ডকুমেন্ট আপলোড করুন",
+ "DRAG_DROP_TEXT": "আপনার PDF ফাইলটি এখানে টেনে আনুন, অথবা নির্বাচন করতে ক্লিক করুন",
+ "SELECT_FILE": "PDF ফাইল নির্বাচন করুন",
+ "ADDITIONAL_CONTEXT_LABEL": "অতিরিক্ত প্রেক্ষাপট (ঐচ্ছিক)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "FAQ তৈরি করার জন্য যেকোন অতিরিক্ত প্রেক্ষাপট বা নির্দেশনা প্রদান করুন...",
+ "UPLOADING": "আপলোড হচ্ছে...",
+ "UPLOAD": "আপলোড ও প্রক্রিয়াকরণ",
+ "CANCEL": "বাতিল করুন",
+ "ERROR_INVALID_TYPE": "একটি বৈধ PDF ফাইল নির্বাচন করুন",
+ "ERROR_FILE_TOO_LARGE": "ফাইলের আকার 512MB এর কম হতে হবে",
+ "ERROR_UPLOAD_FAILED": "PDF আপলোড করতে ব্যর্থ হয়েছে। আবার চেষ্টা করুন।."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF নথিপত্র",
+ "DESCRIPTION": "আপলোড করা PDF নথিপত্র পরিচালনা করুন এবং সেগুলো থেকে FAQ তৈরি করুন",
+ "UPLOAD_PDF": "PDF আপলোড করুন",
+ "UPLOAD_FIRST_PDF": "আপনার প্রথম PDF আপলোড করুন",
+ "UPLOADED_BY": "আপলোড করেছেন",
+ "GENERATE_FAQS": "প্রশ্নোত্তর তৈরি করুন",
+ "GENERATING": "তৈরি হচ্ছে...",
+ "CONFIRM_DELETE": "আপনি কি নিশ্চিত যে আপনি {filename} মুছে ফেলতে চান?",
+ "EMPTY_STATE": {
+ "TITLE": "এখনও কোনো PDF ডকুমেন্ট নেই",
+ "DESCRIPTION": "AI ব্যবহার করে স্বয়ংক্রিয়ভাবে FAQ তৈরি করতে PDF ডকুমেন্ট আপলোড করুন"
+ },
+ "STATUS": {
+ "UPLOADED": "প্রস্তুত",
+ "PROCESSING": "প্রক্রিয়াধীন",
+ "PROCESSED": "সম্পন্ন",
+ "FAILED": "ব্যর্থ"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "কন্টেন্ট তৈরি",
+ "DESCRIPTION": "AI ব্যবহার করে স্বয়ংক্রিয়ভাবে FAQ কন্টেন্ট তৈরি করতে PDF ডকুমেন্ট আপলোড করুন",
+ "UPLOAD_TITLE": "PDF ডকুমেন্ট আপলোড করুন",
+ "DRAG_DROP": "এখানে আপনার PDF ফাইল টেনে আনুন বা ক্লিক করে নির্বাচন করুন",
+ "SELECT_FILE": "PDF ফাইল নির্বাচন করুন",
+ "UPLOADING": "ডকুমেন্ট প্রক্রিয়াকরণ হচ্ছে...",
+ "UPLOAD_SUCCESS": "ডকুমেন্ট সফলভাবে প্রক্রিয়াকৃত হয়েছে!",
+ "UPLOAD_ERROR": "ডকুমেন্ট আপলোড করতে ব্যর্থ হয়েছে। আবার চেষ্টা করুন।.",
+ "INVALID_FILE_TYPE": "একটি বৈধ PDF ফাইল নির্বাচন করুন",
+ "FILE_TOO_LARGE": "ফাইলের আকার 512MB এর কম হতে হবে",
+ "GENERATED_CONTENT": "তৈরি করা FAQ কনটেন্ট",
+ "PUBLISH_SELECTED": "নির্বাচিত প্রকাশ করুন",
+ "PUBLISHING": "প্রকাশ করা হচ্ছে...",
+ "FROM_DOCUMENT": "ডকুমেন্ট থেকে",
+ "NO_CONTENT": "কোনো তৈরি করা কন্টেন্ট পাওয়া যায়নি। শুরু করতে একটি PDF ডকুমেন্ট আপলোড করুন।.",
+ "LOADING": "তৈরি করা বিষয়বস্তু লোড হচ্ছে..."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/inbox.json b/app/javascript/dashboard/i18n/locale/bn/inbox.json
new file mode 100644
index 000000000..385e9e4ce
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/inbox.json
@@ -0,0 +1,95 @@
+{
+ "INBOX": {
+ "LIST": {
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "Display",
+ "LOADING": "Fetching notifications",
+ "404": "There are no active notifications in this group.",
+ "NO_NOTIFICATIONS": "No notifications",
+ "NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
+ "SNOOZED_UNTIL": "Snoozed until",
+ "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ },
+ "ACTION_HEADER": {
+ "SNOOZE": "Snooze notification",
+ "DELETE": "Delete notification",
+ "BACK": "Back"
+ },
+ "TYPES": {
+ "CONVERSATION_MENTION": "You have been mentioned in a conversation",
+ "CONVERSATION_CREATION": "New conversation created",
+ "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
+ },
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
+ "MENU_ITEM": {
+ "MARK_AS_READ": "Mark as read",
+ "MARK_AS_UNREAD": "Mark as unread",
+ "SNOOZE": "Snooze",
+ "DELETE": "Delete",
+ "MARK_ALL_READ": "Mark all as read",
+ "DELETE_ALL": "Delete all",
+ "DELETE_ALL_READ": "Delete all read"
+ },
+ "DISPLAY_MENU": {
+ "SORT": "Sort",
+ "DISPLAY": "Display :",
+ "SORT_OPTIONS": {
+ "NEWEST": "Newest",
+ "OLDEST": "Oldest",
+ "PRIORITY": "Priority"
+ },
+ "DISPLAY_OPTIONS": {
+ "SNOOZED": "Snoozed",
+ "READ": "Read",
+ "LABELS": "Labels",
+ "CONVERSATION_ID": "Conversation ID"
+ }
+ },
+ "ALERTS": {
+ "MARK_AS_READ": "Notification marked as read",
+ "MARK_AS_UNREAD": "Notification marked as unread",
+ "SNOOZE": "Notification snoozed",
+ "DELETE": "Notification deleted",
+ "MARK_ALL_READ": "All notifications marked as read",
+ "DELETE_ALL": "All notifications deleted",
+ "DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json
new file mode 100644
index 000000000..9446eee8b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/inboxMgmt.json
@@ -0,0 +1,1202 @@
+{
+ "INBOX_MGMT": {
+ "HEADER": "ইনবক্সসমূহ",
+ "DESCRIPTION": "একটি চ্যানেল হলো সেই যোগাযোগের মাধ্যম, যেটি আপনার গ্রাহক আপনাদের সাথে যোগাযোগের জন্য বেছে নেন। ইনবক্স হলো নির্দিষ্ট কোনো চ্যানেলের জন্য আপনার যোগাযোগগুলো পরিচালনার স্থান। এটি ইমেইল, লাইভ চ্যাট এবং সামাজিক যোগাযোগ মাধ্যমসহ বিভিন্ন উৎস থেকে আসা বার্তা অন্তর্ভুক্ত করতে পারে।.",
+ "LEARN_MORE": "ইনবক্স সম্পর্কে আরও জানুন",
+ "COUNT": "{n} ইনবক্স | {n} ইনবক্সসমূহ",
+ "SEARCH_PLACEHOLDER": "ইনবক্স অনুসন্ধান করুন...",
+ "NO_RESULTS": "আপনার অনুসন্ধানের সাথে মিলে যাওয়া কোনো ইনবক্স পাওয়া যায়নি",
+ "RECONNECTION_REQUIRED": "আপনার ইনবক্স সংযোগ বিচ্ছিন্ন হয়েছে। পুনরায় অনুমোদন না করা পর্যন্ত আপনি নতুন বার্তা পাবেন না।.",
+ "CLICK_TO_RECONNECT": "পুনরায় সংযোগ করতে এখানে ক্লিক করুন।.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "আপনার WhatsApp Business নিবন্ধন সম্পূর্ণ হয়নি। পুনরায় সংযোগ করার আগে অনুগ্রহ করে Meta Business Manager-এ আপনার ডিসপ্লে নামের অবস্থা যাচাই করুন।.",
+ "COMPLETE_REGISTRATION": "নিবন্ধন সম্পূর্ণ করুন",
+ "LIST": {
+ "404": "এই অ্যাকাউন্টে কোনো ইনবক্স সংযুক্ত নেই।"
+ },
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "চ্যানেল নির্বাচন করুন",
+ "BODY": "আপনি Chatwoot-এর সাথে যেই প্রদানকারীকে সংযুক্ত করতে চান, সেটি নির্বাচন করুন।."
+ },
+ "INBOX": {
+ "TITLE": "ইনবক্স তৈরি করুন",
+ "BODY": "আপনার অ্যাকাউন্ট যাচাই করুন এবং একটি ইনবক্স তৈরি করুন।."
+ },
+ "AGENT": {
+ "TITLE": "এজেন্ট যোগ করুন",
+ "BODY": "তৈরি করা ইনবক্সে এজেন্ট যোগ করুন।."
+ },
+ "FINISH": {
+ "TITLE": "দারুণ!",
+ "BODY": "আপনি শুরু করার জন্য সম্পূর্ণ প্রস্তুত!"
+ }
+ },
+ "ADD": {
+ "CHANNEL_NAME": {
+ "LABEL": "ইনবক্সের নাম",
+ "PLACEHOLDER": "আপনার ইনবক্সের নাম লিখুন (যেমন: Acme Inc)",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ইনবক্সের নাম লিখুন"
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "ওয়েবসাইটের নাম",
+ "PLACEHOLDER": "আপনার ওয়েবসাইটের নাম লিখুন (যেমন: Acme Inc)"
+ },
+ "FB": {
+ "HELP": "পিএস: সাইন ইন করার মাধ্যমে, আমরা শুধুমাত্র আপনার পেজের মেসেজগুলোর অ্যাক্সেস পাই। আপনার ব্যক্তিগত মেসেজ কখনোই Chatwoot দ্বারা অ্যাক্সেস করা যাবে না।",
+ "CHOOSE_PAGE": "পেজ নির্বাচন করুন",
+ "CHOOSE_PLACEHOLDER": "তালিকা থেকে একটি পেজ নির্বাচন করুন",
+ "INBOX_NAME": "ইনবক্সের নাম",
+ "ADD_NAME": "আপনার ইনবক্সের জন্য একটি নাম যোগ করুন",
+ "PICK_NAME": "আপনার ইনবক্সের জন্য একটি নাম নির্বাচন করুন",
+ "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 বার্তা পাঠাতে বা গ্রহণ করতে পারবেন না।."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "TikTok দিয়ে চালিয়ে যান",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "আপনার TikTok প্রোফাইল সংযুক্ত করুন",
+ "HELP": "আপনার TikTok প্রোফাইলকে একটি চ্যানেল হিসেবে যোগ করতে, আপনাকে 'TikTok দিয়ে চালিয়ে যান' ক্লিক করে TikTok প্রোফাইলটি প্রমাণীকরণ করতে হবে ",
+ "ERROR_MESSAGE": "TikTok-এ সংযোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "ERROR_AUTH": "TikTok-এ সংযোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "TWITTER": {
+ "HELP": "আপনার টুইটার প্রোফাইলকে একটি চ্যানেল হিসেবে যোগ করতে, আপনাকে 'Sign in with Twitter' ক্লিক করে আপনার টুইটার প্রোফাইল প্রমাণীকরণ করতে হবে। ",
+ "ERROR_MESSAGE": "Twitter-এ সংযোগ করতে ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "TWEETS": {
+ "ENABLE": "উল্লেখিত টুইট থেকে কথোপকথন তৈরি করুন"
+ }
+ },
+ "WEBSITE_CHANNEL": {
+ "TITLE": "ওয়েবসাইট চ্যানেল",
+ "DESC": "আপনার ওয়েবসাইটের জন্য একটি চ্যানেল তৈরি করুন এবং আমাদের ওয়েবসাইট উইজেটের মাধ্যমে আপনার গ্রাহকদের সহায়তা শুরু করুন।",
+ "LOADING_MESSAGE": "ওয়েবসাইট সাপোর্ট চ্যানেল তৈরি করা হচ্ছে",
+ "CHANNEL_AVATAR": {
+ "LABEL": "চ্যানেল অবতার"
+ },
+ "CHANNEL_WEBHOOK_URL": {
+ "LABEL": "ওয়েবহুক URL",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Webhook URL লিখুন",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ URL দিন"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "গোপন কোড ক্লিপবোর্ডে কপি করুন",
+ "COPY_SUCCESS": "গোপন কোড ক্লিপবোর্ডে কপি হয়েছে",
+ "TOGGLE": "গোপন কোডের দৃশ্যমানতা টগল করুন",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "CHANNEL_DOMAIN": {
+ "LABEL": "ওয়েবসাইট ডোমেইন",
+ "PLACEHOLDER": "আপনার ওয়েবসাইট ডোমেইন লিখুন (যেমন: acme.com)"
+ },
+ "CHANNEL_WELCOME_TITLE": {
+ "LABEL": "স্বাগত শিরোনাম",
+ "PLACEHOLDER": "হাই!"
+ },
+ "CHANNEL_WELCOME_TAGLINE": {
+ "LABEL": "স্বাগত ট্যাগলাইন",
+ "PLACEHOLDER": "আমাদের সাথে সংযোগ করা সহজ। যেকোনো প্রশ্ন করুন, অথবা আপনার মতামত শেয়ার করুন।"
+ },
+ "CHANNEL_GREETING_MESSAGE": {
+ "LABEL": "চ্যানেলের অভিবাদন বার্তা",
+ "PLACEHOLDER": "Acme Inc সাধারণত কয়েক ঘণ্টার মধ্যে উত্তর দেয়।"
+ },
+ "CHANNEL_GREETING_TOGGLE": {
+ "LABEL": "চ্যানেল অভিবাদন সক্রিয় করুন",
+ "HELP_TEXT": "গ্রাহকরা যখন কথোপকথন শুরু করেন এবং প্রথম বার্তা পাঠান, তখন স্বয়ংক্রিয়ভাবে শুভেচ্ছা বার্তা পাঠান।.",
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়"
+ },
+ "REPLY_TIME": {
+ "TITLE": "উত্তর সময় নির্ধারণ করুন",
+ "IN_A_FEW_MINUTES": "কয়েক মিনিটের মধ্যে",
+ "IN_A_FEW_HOURS": "কয়েক ঘণ্টার মধ্যে",
+ "IN_A_DAY": "এক দিনের মধ্যে",
+ "HELP_TEXT": "এই উত্তর সময়টি লাইভ চ্যাট উইজেটে প্রদর্শিত হবে"
+ },
+ "WIDGET_COLOR": {
+ "LABEL": "উইজেটের রঙ",
+ "PLACEHOLDER": "উইজেটে ব্যবহৃত রঙ আপডেট করুন"
+ },
+ "SUBMIT_BUTTON": "ইনবক্স তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা ওয়েবসাইট চ্যানেল তৈরি করতে পারিনি, অনুগ্রহ করে আবার চেষ্টা করুন"
+ }
+ },
+ "TWILIO": {
+ "TITLE": "Twilio SMS/WhatsApp চ্যানেল",
+ "DESC": "Twilio ইন্টিগ্রেট করুন এবং SMS অথবা WhatsApp-এর মাধ্যমে আপনার গ্রাহকদের সাপোর্ট দিন।.",
+ "ACCOUNT_SID": {
+ "LABEL": "অ্যাকাউন্ট SID",
+ "PLACEHOLDER": "আপনার Twilio অ্যাকাউন্ট SID লিখুন",
+ "ERROR": "এই ক্ষেত্রটি আবশ্যক"
+ },
+ "API_KEY": {
+ "USE_API_KEY": "API Key প্রমাণীকরণ ব্যবহার করুন",
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার API Key SID লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API কী সিক্রেট",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার API কী সিক্রেট লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "MESSAGING_SERVICE_SID": {
+ "LABEL": "মেসেজিং সার্ভিস SID",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Twilio মেসেজিং সার্ভিস SID লিখুন",
+ "ERROR": "এই ঘরটি পূরণ করা আবশ্যক",
+ "USE_MESSAGING_SERVICE": "Twilio Messaging Service ব্যবহার করুন"
+ },
+ "CHANNEL_TYPE": {
+ "LABEL": "চ্যানেল টাইপ",
+ "ERROR": "আপনার চ্যানেল টাইপ নির্বাচন করুন"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "অথ টোকেন",
+ "PLACEHOLDER": "আপনার Twilio অথ টোকেন লিখুন",
+ "ERROR": "এই ক্ষেত্রটি আবশ্যক"
+ },
+ "CHANNEL_NAME": {
+ "LABEL": "ইনবক্সের নাম",
+ "PLACEHOLDER": "অনুগ্রহ করে একটি ইনবক্সের নাম লিখুন",
+ "ERROR": "এই ক্ষেত্রটি আবশ্যক"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "ফোন নম্বর",
+ "PLACEHOLDER": "যে ফোন নম্বর থেকে মেসেজ পাঠানো হবে তা লিখুন।",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ফোন নম্বর দিন, যা `+` চিহ্ন দিয়ে শুরু এবং কোনো স্পেস ছাড়া।."
+ },
+ "API_CALLBACK": {
+ "TITLE": "কলব্যাক URL",
+ "SUBTITLE": "Twilio-তে মেসেজ কলব্যাক URL এখানে উল্লেখিত URL দিয়ে কনফিগার করতে হবে।"
+ },
+ "SUBMIT_BUTTON": "Twilio চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা Twilio প্রমাণীকরণ করতে পারিনি, অনুগ্রহ করে আবার চেষ্টা করুন"
+ }
+ },
+ "SMS": {
+ "TITLE": "এসএমএস চ্যানেল",
+ "DESC": "এসএমএস-এর মাধ্যমে আপনার গ্রাহকদের সহায়তা শুরু করুন।.",
+ "PROVIDERS": {
+ "LABEL": "API প্রদানকারী",
+ "TWILIO": "Twilio",
+ "BANDWIDTH": "Bandwidth"
+ },
+ "API": {
+ "ERROR_MESSAGE": "আমরা SMS চ্যানেল সংরক্ষণ করতে পারিনি"
+ },
+ "BANDWIDTH": {
+ "ACCOUNT_ID": {
+ "LABEL": "অ্যাকাউন্ট আইডি",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Bandwidth অ্যাকাউন্ট আইডি লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "API_KEY": {
+ "LABEL": "API কী",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Bandwidth API Key লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "API_SECRET": {
+ "LABEL": "API সিক্রেট",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Bandwidth API Secret লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "APPLICATION_ID": {
+ "LABEL": "অ্যাপ্লিকেশন আইডি",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার Bandwidth অ্যাপ্লিকেশন আইডি লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "INBOX_NAME": {
+ "LABEL": "ইনবক্সের নাম",
+ "PLACEHOLDER": "অনুগ্রহ করে একটি ইনবক্সের নাম লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "ফোন নম্বর",
+ "PLACEHOLDER": "যে নম্বর থেকে বার্তা পাঠানো হবে, অনুগ্রহ করে সেই ফোন নম্বরটি লিখুন।.",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ফোন নম্বর দিন, যা `+` চিহ্ন দিয়ে শুরু এবং কোনো স্পেস ছাড়া।."
+ },
+ "SUBMIT_BUTTON": "Bandwidth চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা Bandwidth শংসাপত্র যাচাই করতে পারিনি, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "API_CALLBACK": {
+ "TITLE": "কলব্যাক URL",
+ "SUBTITLE": "আপনাকে Bandwidth-এ বার্তার callback URL এখানে উল্লেখিত URL অনুযায়ী কনফিগার করতে হবে।."
+ }
+ }
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp চ্যানেল",
+ "DESC": "WhatsApp-এর মাধ্যমে আপনার গ্রাহকদের সহায়তা শুরু করুন।.",
+ "PROVIDERS": {
+ "LABEL": "API প্রদানকারী",
+ "WHATSAPP_EMBEDDED": "WhatsApp বিজনেস",
+ "TWILIO": "Twilio",
+ "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Meta-এর মাধ্যমে দ্রুত সেটআপ",
+ "TWILIO_DESC": "Twilio শংসাপত্র ব্যবহার করে সংযোগ করুন",
+ "360_DIALOG": "360Dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "আপনার API প্রদানকারী নির্বাচন করুন",
+ "DESCRIPTION": "আপনার WhatsApp প্রদানকারী বেছে নিন। আপনি সরাসরি Meta-এর মাধ্যমে সংযোগ করতে পারেন, যেখানে কোনো সেটআপের প্রয়োজন নেই, অথবা Twilio-র মাধ্যমে আপনার অ্যাকাউন্ট শংসাপত্র ব্যবহার করে সংযোগ করতে পারেন।."
+ },
+ "INBOX_NAME": {
+ "LABEL": "ইনবক্সের নাম",
+ "PLACEHOLDER": "অনুগ্রহ করে ইনবক্সের নাম লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "ফোন নম্বর",
+ "PLACEHOLDER": "যে নম্বর থেকে বার্তা পাঠানো হবে, অনুগ্রহ করে সেই ফোন নম্বরটি লিখুন।.",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ফোন নম্বর দিন, যা `+` চিহ্ন দিয়ে শুরু এবং কোনো স্পেস ছাড়া।."
+ },
+ "PHONE_NUMBER_ID": {
+ "LABEL": "ফোন নম্বর আইডি",
+ "PLACEHOLDER": "অনুগ্রহ করে Facebook ডেভেলপার ড্যাশবোর্ড থেকে প্রাপ্ত ফোন নম্বর আইডি লিখুন।.",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ মান লিখুন।."
+ },
+ "BUSINESS_ACCOUNT_ID": {
+ "LABEL": "বিজনেস অ্যাকাউন্ট আইডি",
+ "PLACEHOLDER": "অনুগ্রহ করে Facebook ডেভেলপার ড্যাশবোর্ড থেকে প্রাপ্ত বিজনেস অ্যাকাউন্ট আইডি লিখুন।.",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ মান লিখুন।."
+ },
+ "WEBHOOK_VERIFY_TOKEN": {
+ "LABEL": "Webhook যাচাইকরণ টোকেন",
+ "PLACEHOLDER": "Facebook webhooks-এর জন্য আপনি যে verify token কনফিগার করতে চান তা লিখুন।.",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ মান লিখুন।."
+ },
+ "API_KEY": {
+ "LABEL": "API কী",
+ "SUBTITLE": "WhatsApp API কী কনফিগার করুন।.",
+ "PLACEHOLDER": "API কী",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ মান লিখুন।."
+ },
+ "API_CALLBACK": {
+ "TITLE": "কলব্যাক URL",
+ "SUBTITLE": "আপনাকে নিচে দেখানো মানগুলি ব্যবহার করে Facebook Developer পোর্টালে ওয়েবহুক URL এবং যাচাইকরণ টোকেন কনফিগার করতে হবে।.",
+ "WEBHOOK_URL": "ওয়েবহুক URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "ওয়েবহুক যাচাইকরণ টোকেন"
+ },
+ "SUBMIT_BUTTON": "WhatsApp চ্যানেল তৈরি করুন",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Meta-র মাধ্যমে দ্রুত সেটআপ",
+ "DESC": "নতুন নম্বর দ্রুত সংযোগ করতে WhatsApp এম্বেডেড সাইনআপ ফ্লো ব্যবহার করুন। আপনাকে WhatsApp Business অ্যাকাউন্টে লগইন করতে Meta-তে পুনঃনির্দেশিত করা হবে। অ্যাডমিন অ্যাক্সেস থাকলে সেটআপ আরও সহজ ও দ্রুত হবে।.",
+ "BENEFITS": {
+ "TITLE": "এম্বেডেড সাইনআপের সুবিধাসমূহ:",
+ "EASY_SETUP": "কোনো ম্যানুয়াল কনফিগারেশন প্রয়োজন নেই",
+ "SECURE_AUTH": "নিরাপদ OAuth ভিত্তিক প্রমাণীকরণ",
+ "AUTO_CONFIG": "স্বয়ংক্রিয় ওয়েবহুক ও ফোন নম্বর কনফিগারেশন"
+ },
+ "LEARN_MORE": {
+ "TEXT": "ইন্টিগ্রেটেড সাইনআপ, মূল্য এবং সীমাবদ্ধতা সম্পর্কে আরও জানতে {link} দেখুন।.",
+ "LINK_TEXT": "এই লিংক"
+ },
+ "SUBMIT_BUTTON": "WhatsApp Business-এর সাথে সংযুক্ত করুন",
+ "AUTH_PROCESSING": "Meta-র সাথে প্রমাণীকরণ চলছে",
+ "WAITING_FOR_BUSINESS_INFO": "অনুগ্রহ করে Meta উইন্ডোতে ব্যবসার সেটআপ সম্পন্ন করুন...",
+ "PROCESSING": "আপনার WhatsApp Business Account সেটআপ করা হচ্ছে",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK লোড হচ্ছে...",
+ "CANCELLED": "WhatsApp সাইনআপ বাতিল করা হয়েছে",
+ "SUCCESS_TITLE": "WhatsApp Business Account সংযুক্ত হয়েছে!",
+ "WAITING_FOR_AUTH": "প্রমাণীকরণের জন্য অপেক্ষা করা হচ্ছে...",
+ "INVALID_BUSINESS_DATA": "Facebook থেকে অকার্যকর ব্যবসায়িক তথ্য পাওয়া গেছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "SIGNUP_ERROR": "সাইনআপে একটি ত্রুটি ঘটেছে",
+ "AUTH_NOT_COMPLETED": "প্রমাণীকরণ সম্পন্ন হয়নি। অনুগ্রহ করে প্রক্রিয়াটি পুনরায় শুরু করুন।.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account সফলভাবে কনফিগার করা হয়েছে",
+ "MANUAL_FALLBACK": "আপনার নম্বর যদি ইতিমধ্যে WhatsApp Business Platform (API)-এর সাথে সংযুক্ত থাকে, অথবা আপনি যদি নিজস্ব নম্বর অনবোর্ড করতে টেক প্রোভাইডার হন, তাহলে অনুগ্রহ করে {link} ফ্লো ব্যবহার করুন",
+ "MANUAL_LINK_TEXT": "ম্যানুয়াল সেটআপ ফ্লো",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
+ "API": {
+ "ERROR_MESSAGE": "আমরা WhatsApp চ্যানেল সংরক্ষণ করতে পারিনি"
+ }
+ },
+ "VOICE": {
+ "TITLE": "ভয়েস চ্যানেল",
+ "DESC": "Twilio Voice সংযুক্ত করুন এবং ফোন কলের মাধ্যমে আপনার গ্রাহকদের সহায়তা করা শুরু করুন।.",
+ "PHONE_NUMBER": {
+ "LABEL": "ফোন নম্বর",
+ "PLACEHOLDER": "আপনার ফোন নম্বর লিখুন (যেমন: +1234567890)",
+ "ERROR": "অনুগ্রহ করে E.164 ফরম্যাটে একটি বৈধ ফোন নম্বর দিন (যেমন: +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "অ্যাকাউন্ট SID",
+ "PLACEHOLDER": "আপনার Twilio Account SID লিখুন",
+ "REQUIRED": "Account SID আবশ্যক"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "অথ টোকেন",
+ "PLACEHOLDER": "আপনার Twilio Auth Token লিখুন",
+ "REQUIRED": "Auth Token আবশ্যক"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API কী SID",
+ "PLACEHOLDER": "আপনার Twilio API কী SID লিখুন",
+ "REQUIRED": "API কী SID আবশ্যক"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API কী সিক্রেট",
+ "PLACEHOLDER": "আপনার Twilio API কী সিক্রেট লিখুন",
+ "REQUIRED": "API কী সিক্রেট আবশ্যক"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "আপনার Twilio ফোন নম্বর এবং TwiML অ্যাপে এই URL-টি Voice URL হিসেবে কনফিগার করুন।.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio স্ট্যাটাস কলব্যাক URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "আপনার Twilio ফোন নম্বরে এই URL-টি স্ট্যাটাস কলব্যাক URL হিসেবে কনফিগার করুন।."
+ },
+ "SUBMIT_BUTTON": "ভয়েস চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা ভয়েস চ্যানেল তৈরি করতে পারিনি"
+ }
+ },
+ "API_CHANNEL": {
+ "TITLE": "API চ্যানেল",
+ "DESC": "API চ্যানেলের সাথে সংযুক্ত করুন এবং আপনার গ্রাহকদের সহায়তা শুরু করুন।",
+ "CHANNEL_NAME": {
+ "LABEL": "চ্যানেলের নাম",
+ "PLACEHOLDER": "একটি চ্যানেলের নাম লিখুন",
+ "ERROR": "এই ক্ষেত্রটি আবশ্যক"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "ওয়েবহুক URL",
+ "SUBTITLE": "আপনি কোন ইভেন্টে কলব্যাক পেতে চান, সেই URL কনফিগার করুন।.",
+ "PLACEHOLDER": "ওয়েবহুক URL"
+ },
+ "SUBMIT_BUTTON": "API চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা API চ্যানেলটি সংরক্ষণ করতে পারিনি"
+ }
+ },
+ "EMAIL_CHANNEL": {
+ "TITLE": "ইমেইল চ্যানেল",
+ "DESC": "আপনার ইমেইল ইনবক্স ইন্টিগ্রেট করুন।.",
+ "CHANNEL_NAME": {
+ "LABEL": "চ্যানেলের নাম",
+ "PLACEHOLDER": "অনুগ্রহ করে একটি চ্যানেলের নাম লিখুন",
+ "ERROR": "এই ক্ষেত্রটি আবশ্যক"
+ },
+ "EMAIL": {
+ "LABEL": "ইমেইল",
+ "SUBTITLE": "আপনার গ্রাহকরা যেই ইমেইল ঠিকানায় সহায়তা অনুরোধ পাঠান, সেটি দিন।.",
+ "PLACEHOLDER": "ইমেইল"
+ },
+ "SUBMIT_BUTTON": "ইমেইল চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা ইমেইল চ্যানেলটি সংরক্ষণ করতে পারিনি"
+ },
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "আপনার ইমেইল ইনবক্স সফলভাবে তৈরি হয়েছে! ইমেইল পাঠানো ও গ্রহণ করার জন্য আপনাকে SMTP এবং IMAP শংসাপত্র কনফিগার করতে হবে। এই সেটিংস ছাড়া কোনো ইমেইল প্রক্রিয়াকরণ হবে না।.",
+ "FORWARDING_ADDRESS_LABEL": "এই ঠিকানায় ইমেইল ফরওয়ার্ড করুন:",
+ "CONFIGURE_SMTP_IMAP_LINK": "এখানে ক্লিক করুন",
+ "CONFIGURE_SMTP_IMAP_TEXT": " imap এবং smtp সেটিংস কনফিগার করুন"
+ },
+ "LINE_CHANNEL": {
+ "TITLE": "LINE চ্যানেল",
+ "DESC": "LINE চ্যানেলের সাথে সংযুক্ত করুন এবং আপনার গ্রাহকদের সহায়তা শুরু করুন।",
+ "CHANNEL_NAME": {
+ "LABEL": "চ্যানেলের নাম",
+ "PLACEHOLDER": "অনুগ্রহ করে একটি চ্যানেলের নাম লিখুন",
+ "ERROR": "এই ঘরটি অবশ্যই পূরণ করতে হবে"
+ },
+ "LINE_CHANNEL_ID": {
+ "LABEL": "LINE চ্যানেল আইডি",
+ "PLACEHOLDER": "LINE চ্যানেল আইডি"
+ },
+ "LINE_CHANNEL_SECRET": {
+ "LABEL": "LINE চ্যানেল সিক্রেট",
+ "PLACEHOLDER": "LINE চ্যানেল সিক্রেট"
+ },
+ "LINE_CHANNEL_TOKEN": {
+ "LABEL": "LINE চ্যানেল টোকেন",
+ "PLACEHOLDER": "LINE চ্যানেল টোকেন"
+ },
+ "SUBMIT_BUTTON": "LINE চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা LINE চ্যানেল সংরক্ষণ করতে পারিনি"
+ },
+ "API_CALLBACK": {
+ "TITLE": "ক্যালব্যাক URL",
+ "SUBTITLE": "আপনাকে এখানে উল্লেখিত URL টি LINE অ্যাপ্লিকেশনে ওয়েবহুক URL হিসেবে কনফিগার করতে হবে।."
+ }
+ },
+ "TELEGRAM_CHANNEL": {
+ "TITLE": "টেলিগ্রাম চ্যানেল",
+ "DESC": "টেলিগ্রাম চ্যানেলের সাথে সংযুক্ত করুন এবং আপনার গ্রাহকদের সহায়তা শুরু করুন।",
+ "BOT_TOKEN": {
+ "LABEL": "বট টোকেন",
+ "SUBTITLE": "টেলিগ্রাম বটফাদার থেকে প্রাপ্ত বট টোকেন কনফিগার করুন।",
+ "PLACEHOLDER": "বট টোকেন"
+ },
+ "SUBMIT_BUTTON": "টেলিগ্রাম চ্যানেল তৈরি করুন",
+ "API": {
+ "ERROR_MESSAGE": "আমরা টেলিগ্রাম চ্যানেল সংরক্ষণ করতে পারিনি"
+ }
+ },
+ "AUTH": {
+ "TITLE": "একটি চ্যানেল নির্বাচন করুন",
+ "DESC": "Chatwoot লাইভ-চ্যাট উইজেট, Facebook Messenger, WhatsApp, ইমেইল ইত্যাদি চ্যানেল হিসেবে সমর্থন করে। আপনি যদি কাস্টম চ্যানেল তৈরি করতে চান, তাহলে API চ্যানেল ব্যবহার করে সেটি তৈরি করতে পারেন। শুরু করতে নিচের চ্যানেলগুলোর মধ্যে একটি নির্বাচন করুন।.",
+ "TITLE_NEXT": "সেটআপ সম্পন্ন করুন",
+ "TITLE_FINISH": "ভোইলা!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "ওয়েবসাইট",
+ "DESCRIPTION": "একটি লাইভ-চ্যাট উইজেট তৈরি করুন"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "আপনার Facebook পেজ সংযুক্ত করুন"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "WhatsApp-এ আপনার গ্রাহকদের সহায়তা দিন"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "ইমেইল",
+ "DESCRIPTION": "Gmail, Outlook, অথবা অন্যান্য প্রদানকারীর সাথে সংযোগ করুন"
+ },
+ "SMS": {
+ "TITLE": "এসএমএস",
+ "DESCRIPTION": "Twilio বা Bandwidth-এর মাধ্যমে এসএমএস চ্যানেল সংযুক্ত করুন"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "আমাদের API ব্যবহার করে একটি কাস্টম চ্যানেল তৈরি করুন"
+ },
+ "TELEGRAM": {
+ "TITLE": "টেলিগ্রাম",
+ "DESCRIPTION": "Bot token ব্যবহার করে টেলিগ্রাম চ্যানেল কনফিগার করুন"
+ },
+ "LINE": {
+ "TITLE": "লাইন",
+ "DESCRIPTION": "আপনার লাইন চ্যানেল ইন্টিগ্রেট করুন"
+ },
+ "INSTAGRAM": {
+ "TITLE": "ইনস্টাগ্রাম",
+ "DESCRIPTION": "আপনার Instagram অ্যাকাউন্ট সংযুক্ত করুন"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "আপনার TikTok অ্যাকাউন্ট সংযুক্ত করুন"
+ },
+ "VOICE": {
+ "TITLE": "ভয়েস",
+ "DESCRIPTION": "Twilio Voice-এর সাথে সংযুক্ত করুন"
+ }
+ }
+ },
+ "AGENTS": {
+ "TITLE": "এজেন্ট",
+ "DESC": "এখানে আপনি আপনার নতুন তৈরি ইনবক্স পরিচালনার জন্য এজেন্ট যোগ করতে পারেন। শুধুমাত্র নির্বাচিত এজেন্টরাই আপনার ইনবক্সে প্রবেশাধিকার পাবে। যারা এই ইনবক্সের অংশ নয়, তারা লগইন করলে ইনবক্সের মেসেজ দেখতে বা উত্তর দিতে পারবে না।
পিএস: প্রশাসক হিসেবে, যদি আপনি সব ইনবক্সে অ্যাক্সেস চান, তাহলে আপনাকে আপনার তৈরি সব ইনবক্সে এজেন্ট হিসেবে নিজেকে যোগ করতে হবে।",
+ "VALIDATION_ERROR": "আপনার নতুন ইনবক্সে অন্তত একজন এজেন্ট যোগ করুন",
+ "PICK_AGENTS": "ইনবক্সের জন্য এজেন্ট নির্বাচন করুন"
+ },
+ "DETAILS": {
+ "TITLE": "ইনবক্সের বিবরণ",
+ "DESC": "নীচের ড্রপডাউন থেকে Chatwoot-এ সংযোগ করার জন্য Facebook পেজ নির্বাচন করুন। আপনার ইনবক্সের জন্য একটি কাস্টম নামও দিতে পারেন যাতে সহজে চিনতে পারেন।"
+ },
+ "FINISH": {
+ "TITLE": "সফল হয়েছে!",
+ "DESC": "আপনি সফলভাবে আপনার Facebook পেজ Chatwoot-এর সাথে সংযুক্ত করেছেন। পরবর্তীবার যখন কোনো গ্রাহক আপনার পেজে মেসেজ করবেন, কথোপকথন স্বয়ংক্রিয়ভাবে আপনার ইনবক্সে প্রদর্শিত হবে।
আমরা আপনাকে একটি উইজেট স্ক্রিপ্টও দিচ্ছি যা আপনি সহজেই আপনার ওয়েবসাইটে যোগ করতে পারবেন। এটি আপনার ওয়েবসাইটে সক্রিয় হলে, গ্রাহকরা সরাসরি ওয়েবসাইট থেকে মেসেজ করতে পারবেন এবং কথোপকথন এখানে Chatwoot-এ প্রদর্শিত হবে।
দারুণ, তাই না? আমরা চেষ্টা করি :)"
+ },
+ "EMAIL_PROVIDER": {
+ "TITLE": "আপনার ইমেইল প্রদানকারী নির্বাচন করুন",
+ "DESCRIPTION": "নিচের তালিকা থেকে একটি ইমেইল প্রদানকারী নির্বাচন করুন। যদি আপনার ইমেইল প্রদানকারী তালিকায় না থাকে, তাহলে 'অন্যান্য প্রদানকারী' অপশনটি নির্বাচন করে IMAP এবং SMTP শংসাপত্র দিন।."
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft ইমেইল",
+ "DESCRIPTION": "শুরু করতে Sign in with Microsoft বোতামে ক্লিক করুন। আপনাকে ইমেইল সাইন ইন পৃষ্ঠায় পাঠানো হবে। অনুরোধকৃত অনুমতিগুলি গ্রহণ করার পর, আপনাকে আবার ইনবক্স তৈরির ধাপে ফিরিয়ে আনা হবে।.",
+ "EMAIL_PLACEHOLDER": "ইমেইল ঠিকানা লিখুন",
+ "SIGN_IN": "Microsoft দিয়ে সাইন ইন করুন",
+ "ERROR_MESSAGE": "Microsoft-এ সংযোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "GOOGLE": {
+ "TITLE": "গুগল ইমেইল",
+ "DESCRIPTION": "শুরু করতে Sign in with Google বোতামে ক্লিক করুন। আপনাকে ইমেইল সাইন ইন পৃষ্ঠায় নিয়ে যাওয়া হবে। অনুরোধকৃত অনুমতিগুলো গ্রহণ করার পর, আপনাকে আবার ইনবক্স তৈরির ধাপে ফিরিয়ে আনা হবে।.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "ইমেইল ঠিকানা লিখুন",
+ "ERROR_MESSAGE": "গুগলের সাথে সংযোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ }
+ },
+ "DETAILS": {
+ "LOADING_FB": "Facebook দিয়ে প্রমাণীকরণ করা হচ্ছে...",
+ "ERROR_FB_LOADING": "Facebook SDK লোড করতে সমস্যা হয়েছে। অনুগ্রহ করে যেকোনো বিজ্ঞাপন-ব্লকার নিষ্ক্রিয় করুন এবং অন্য কোনো ব্রাউজার থেকে আবার চেষ্টা করুন।.",
+ "ERROR_FB_AUTH": "কিছু ভুল হয়েছে, অনুগ্রহ করে পেজ রিফ্রেশ করুন...",
+ "ERROR_FB_UNAUTHORIZED": "আপনি এই কার্যক্রমটি সম্পাদনের অনুমতি পাননি। ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "অনুগ্রহ করে নিশ্চিত করুন যে আপনার Facebook পেজে সম্পূর্ণ নিয়ন্ত্রণের অধিকার আছে। Facebook রোল সম্পর্কে আরও জানতে পারেন এখানে।.",
+ "CREATING_CHANNEL": "আপনার ইনবক্স তৈরি করা হচ্ছে...",
+ "TITLE": "ইনবক্সের বিবরণ কনফিগার করুন",
+ "DESC": ""
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "এজেন্ট যোগ করুন",
+ "ADD_AGENTS": "আপনার ইনবক্সে এজেন্ট যোগ করা হচ্ছে..."
+ },
+ "FINISH": {
+ "TITLE": "আপনার ইনবক্স প্রস্তুত!",
+ "MESSAGE": "এখন আপনি আপনার নতুন চ্যানেলের মাধ্যমে গ্রাহকদের সাথে যোগাযোগ করতে পারবেন। শুভ সহায়তা।",
+ "BUTTON_TEXT": "আমাকে সেখানে নিয়ে যান",
+ "MORE_SETTINGS": "আরও সেটিংস",
+ "WEBSITE_SUCCESS": "আপনি সফলভাবে একটি ওয়েবসাইট চ্যানেল তৈরি করেছেন। নিচে প্রদর্শিত কোডটি কপি করে আপনার ওয়েবসাইটে পেস্ট করুন। পরবর্তীবার যখন গ্রাহক লাইভ চ্যাট ব্যবহার করবেন, কথোপকথন স্বয়ংক্রিয়ভাবে আপনার ইনবক্সে প্রদর্শিত হবে।",
+ "WHATSAPP_QR_INSTRUCTION": "আপনার WhatsApp ইনবক্স দ্রুত পরীক্ষা করতে উপরের QR কোডটি স্ক্যান করুন",
+ "MESSENGER_QR_INSTRUCTION": "আপনার Facebook Messenger ইনবক্স দ্রুত পরীক্ষা করতে উপরের QR কোডটি স্ক্যান করুন",
+ "TELEGRAM_QR_INSTRUCTION": "আপনার Telegram ইনবক্স দ্রুত পরীক্ষা করতে উপরের QR কোডটি স্ক্যান করুন"
+ },
+ "REAUTH": "পুনরায় অনুমোদন করুন",
+ "VIEW": "দেখুন",
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "ইনবক্স সেটিংস সফলভাবে আপডেট হয়েছে",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "স্বয়ংক্রিয় নিয়োগ সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "আমরা ইনবক্স সেটিংস আপডেট করতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ },
+ "EMAIL_COLLECT_BOX": {
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়"
+ },
+ "ENABLE_CSAT": {
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়"
+ },
+ "SENDER_NAME_SECTION": {
+ "TITLE": "প্রেরকের নাম",
+ "SUB_TEXT": "আপনার এজেন্টদের পক্ষ থেকে ইমেইল পাঠালে গ্রাহকের কাছে যে নামটি দেখাবে, সেটি নির্বাচন করুন।.",
+ "FOR_EG": "উদাহরণস্বরূপ:",
+ "FRIENDLY": {
+ "TITLE": "বন্ধুসুলভ",
+ "FROM": "থেকে",
+ "SUBTITLE": "প্রেরকের নামের মধ্যে এজেন্টের নাম যোগ করুন, যাতে এটি আরও বন্ধুসুলভ হয়।."
+ },
+ "PROFESSIONAL": {
+ "TITLE": "পেশাদার",
+ "SUBTITLE": "ইমেইল হেডারে প্রেরকের নাম হিসেবে শুধুমাত্র কনফিগার করা ব্যবসার নাম ব্যবহার করুন।."
+ },
+ "BUSINESS_NAME": {
+ "BUTTON_TEXT": "আপনার ব্যবসার নাম কনফিগার করুন",
+ "PLACEHOLDER": "আপনার ব্যবসার নাম লিখুন",
+ "SAVE_BUTTON_TEXT": "সংরক্ষণ করুন"
+ }
+ },
+ "ALLOW_MESSAGES_AFTER_RESOLVED": {
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়"
+ },
+ "ENABLE_CONTINUITY_VIA_EMAIL": {
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়"
+ },
+ "LOCK_TO_SINGLE_CONVERSATION": {
+ "ENABLED": "একই কথোপকথন পুনরায় খুলুন",
+ "DISABLED": "নতুন কথোপকথন তৈরি করুন",
+ "ENABLED_DESCRIPTION": "কোনো কন্টাক্ট আবার বার্তা পাঠালে, পূর্বের কথোপকথনটি পুনরায় খোলা হবে।.",
+ "DISABLED_DESCRIPTION": "প্রতিবার পূর্বের কথোপকথন সমাধান হলে একটি নতুন কথোপকথন তৈরি হবে।."
+ },
+ "ENABLE_HMAC": {
+ "LABEL": "সক্রিয় করুন"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "মুছে ফেলুন",
+ "AVATAR_DELETE_BUTTON_TEXT": "অবতার মুছুন",
+ "CONFIRM": {
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি মুছে ফেলতে চান ",
+ "PLACE_HOLDER": "অনুগ্রহ করে নিশ্চিত করতে {inboxName} টাইপ করুন",
+ "YES": "হ্যাঁ, মুছে ফেলুন ",
+ "NO": "না, রাখুন "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ইনবক্স সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "ইনবক্স মুছে ফেলা যায়নি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।",
+ "AVATAR_SUCCESS_MESSAGE": "ইনবক্স অবতার সফলভাবে মুছে ফেলা হয়েছে",
+ "AVATAR_ERROR_MESSAGE": "ইনবক্স অবতার মুছতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।"
+ }
+ },
+ "TABS": {
+ "SETTINGS": "সেটিংস",
+ "COLLABORATORS": "সহযোগী",
+ "CONFIGURATION": "কনফিগারেশন",
+ "CAMPAIGN": "ক্যাম্পেইনসমূহ",
+ "PRE_CHAT_FORM": "প্রি চ্যাট ফর্ম",
+ "BUSINESS_HOURS": "ব্যবসায়িক সময়",
+ "WIDGET_BUILDER": "উইজেট নির্মাতা",
+ "BOT_CONFIGURATION": "বট কনফিগারেশন",
+ "ACCOUNT_HEALTH": "অ্যাকাউন্টের স্বাস্থ্য",
+ "CSAT": "CSAT",
+ "VOICE": "ভয়েস",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "চ্যানেল পছন্দসমূহ",
+ "WIDGET_FEATURES": "উইজেট ফিচারসমূহ",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "আপনার WhatsApp অ্যাকাউন্ট পরিচালনা করুন",
+ "DESCRIPTION": "আপনার WhatsApp অ্যাকাউন্টের অবস্থা, মেসেজিং সীমা এবং মান পর্যালোচনা করুন। প্রয়োজনে সেটিংস আপডেট করুন বা সমস্যা সমাধান করুন",
+ "GO_TO_SETTINGS": "Meta Business Manager-এ যান",
+ "NO_DATA": "স্বাস্থ্য তথ্য উপলব্ধ নয়",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "ফোন নম্বর প্রদর্শন করুন",
+ "TOOLTIP": "গ্রাহকদের কাছে প্রদর্শিত ফোন নম্বর"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "ব্যবসার নাম",
+ "TOOLTIP": "WhatsApp দ্বারা যাচাইকৃত ব্যবসার নাম"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "প্রদর্শিত নামের স্ট্যাটাস",
+ "TOOLTIP": "আপনার ব্যবসার নাম যাচাইকরণের অবস্থা"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "কোয়ালিটি রেটিং",
+ "TOOLTIP": "আপনার অ্যাকাউন্টের জন্য WhatsApp মানের রেটিং"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "বার্তা পাঠানোর সীমার স্তর",
+ "TOOLTIP": "আপনার অ্যাকাউন্টের দৈনিক বার্তা পাঠানোর সীমা"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "অ্যাকাউন্ট মোড",
+ "TOOLTIP": "আপনার WhatsApp অ্যাকাউন্টের বর্তমান পরিচালনা মোড"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 জন গ্রাহক প্রতি 24h",
+ "TIER_1000": "1K গ্রাহক প্রতি 24h",
+ "TIER_1K": "1K গ্রাহক প্রতি 24h",
+ "TIER_10K": "10K গ্রাহক প্রতি 24h",
+ "TIER_100K": "100K গ্রাহক প্রতি 24h",
+ "TIER_UNLIMITED": "প্রতি 24h সীমাহীন গ্রাহক",
+ "UNKNOWN": "রেটিং উপলব্ধ নয়"
+ },
+ "STATUSES": {
+ "APPROVED": "অনুমোদিত",
+ "PENDING_REVIEW": "পর্যালোচনার অপেক্ষায়",
+ "AVAILABLE_WITHOUT_REVIEW": "পর্যালোচনা ছাড়াই উপলব্ধ",
+ "REJECTED": "প্রত্যাখ্যাত",
+ "DECLINED": "প্রত্যাখ্যাত",
+ "NON_EXISTS": "বিদ্যমান নয়"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "সরাসরি"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook কনফিগারেশন",
+ "DESCRIPTION": "আপনার WhatsApp Business Account-এ গ্রাহকদের কাছ থেকে বার্তা পেতে Webhook URL প্রয়োজন।",
+ "ACTION_REQUIRED": "Webhook কনফিগার করা হয়নি",
+ "REGISTER_BUTTON": "Webhook নিবন্ধন করুন",
+ "REGISTER_SUCCESS": "Webhook সফলভাবে নিবন্ধিত হয়েছে",
+ "REGISTER_ERROR": "Webhook নিবন্ধন করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "CONFIGURED_SUCCESS": "ওয়েবহুক সফলভাবে কনফিগার করা হয়েছে",
+ "URL_MISMATCH": "ওয়েবহুক URL মেলেনি"
+ }
+ },
+ "SETTINGS": "সেটিংস",
+ "FEATURES": {
+ "LABEL": "বৈশিষ্ট্য",
+ "DISPLAY_FILE_PICKER": "উইজেটে ফাইল পিকার প্রদর্শন করুন",
+ "DISPLAY_EMOJI_PICKER": "উইজেটে ইমোজি পিকার প্রদর্শন করুন",
+ "ALLOW_END_CONVERSATION": "ব্যবহারকারীরা উইজেট থেকে কথোপকথন শেষ করার অনুমতি দিন",
+ "USE_INBOX_AVATAR_FOR_BOT": "বটের জন্য ইনবক্সের নাম ও অ্যাভাটার ব্যবহার করুন"
+ },
+ "SETTINGS_POPUP": {
+ "MESSENGER_HEADING": "মেসেঞ্জার স্ক্রিপ্ট",
+ "MESSENGER_SUB_HEAD": "এই বোতামটি আপনার বডি ট্যাগের মধ্যে রাখুন",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "অনুমোদিত ডোমেইনসমূহ",
+ "DESCRIPTION": "কোন ওয়েবসাইট আপনার চ্যাট উইজেট এম্বেড করতে পারবে তা সীমাবদ্ধ করুন। নিরাপত্তার জন্য, শুধুমাত্র আপনি মালিক এবং বিশ্বাস করেন এমন ডোমেইন যোগ করুন। কমা দিয়ে আলাদা করে এক বা একাধিক ডোমেইন যোগ করুন। সব ডোমেইন অনুমোদন করতে ফাঁকা রাখুন (প্রোডাকশনের জন্য এটি সুপারিশ করা হয় না)।.",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "মোবাইল অ্যাপে উইজেট সক্রিয় করুন",
+ "SUBTITLE": "আপনি যদি উইজেটটি iOS বা Android অ্যাপে এম্বেড করেন, তাহলে এটি চেক করুন। মোবাইল অ্যাপ ডোমেইন তথ্য পাঠায় না, তাই এটি সক্রিয় না থাকলে ডোমেইন সীমাবদ্ধতার কারণে ব্লক হয়ে যাবে।."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "পরিচয় যাচাইকরণ",
+ "DESCRIPTION": "নিরাপদ টোকেন তৈরি করে ব্যবহারকারীর সত্যতা যাচাই করুন। এটি অনুমোদনহীন ব্যবহারকারীদের আপনার চ্যাটে অন্যদের ছদ্মবেশ ধারণ করা থেকে রক্ষা করে।.",
+ "SECRET_KEY": "সিক্রেট কী",
+ "VIEW_DOCS": "ডকুমেন্টেশন দেখুন",
+ "REQUIRE_LABEL": "সব কথোপকথনের জন্য পরিচয় যাচাই বাধ্যতামূলক করুন",
+ "REQUIRE_DESCRIPTION": "এটি সক্রিয় করলে, ব্যবহারকারীদের কথোপকথন শুরু করতে একটি বৈধ পরিচয় টোকেন প্রদান করতে হবে। বৈধ টোকেন ছাড়া অনুরোধগুলি প্রত্যাখ্যান করা হবে।."
+ },
+ "INBOX_AGENTS": "এজেন্ট",
+ "INBOX_AGENTS_SUB_TEXT": "এই ইনবক্স থেকে এজেন্ট যোগ বা সরান",
+ "AGENT_ASSIGNMENT": "কথোপকথন বরাদ্দ",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "কথোপকথন বরাদ্দের সেটিংস আপডেট করুন",
+ "UPDATE": "আপডেট করুন",
+ "ENABLE_EMAIL_COLLECT_BOX": "ইমেইল সংগ্রহ বাক্স চালু করুন",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "নতুন কথোপকথনে ইমেইল সংগ্রহ বাক্স চালু বা বন্ধ করুন",
+ "AUTO_ASSIGNMENT": "স্বয়ংক্রিয় নিয়োগ সক্রিয় করুন",
+ "SENDER_NAME_SECTION": "ইমেইলে এজেন্টের নাম সক্রিয় করুন",
+ "SENDER_NAME_SECTION_TEXT": "ইমেইলে এজেন্টের নাম দেখানো চালু/বন্ধ করুন, বন্ধ করলে ব্যবসার নাম দেখানো হবে",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "ইমেইলের মাধ্যমে আলোচনা ধারাবাহিকতা সক্রিয় করুন",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "যোগাযোগের ইমেইল ঠিকানা থাকলে কথোপকথন ইমেইলের মাধ্যমে চলতে থাকবে।.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "কথোপকথন রাউটিং",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "বিদ্যমান কন্টাক্টের জন্য কথোপকথন তৈরি কনফিগার করুন",
+ "INBOX_UPDATE_TITLE": "ইনবক্স সেটিংস",
+ "INBOX_UPDATE_SUB_TEXT": "আপনার ইনবক্স সেটিংস আপডেট করুন",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "এই ইনবক্সে যোগ করা এজেন্টদের জন্য নতুন কথোপকথন স্বয়ংক্রিয়ভাবে নিয়োগ সক্রিয় বা নিষ্ক্রিয় করুন।",
+ "HMAC_VERIFICATION": "ব্যবহারকারীর পরিচয় যাচাই",
+ "HMAC_DESCRIPTION": "এই কী ব্যবহার করে আপনি একটি সিক্রেট টোকেন তৈরি করতে পারেন, যা আপনার ব্যবহারকারীদের পরিচয় যাচাই করতে ব্যবহৃত হবে।.",
+ "HMAC_LINK_TO_DOCS": "এখানে আরও পড়ুন।.",
+ "HMAC_MANDATORY_VERIFICATION": "ব্যবহারকারীর পরিচয় যাচাইকরণ বাধ্যতামূলক করুন",
+ "HMAC_MANDATORY_DESCRIPTION": "সক্রিয় করলে, যাচাই করা না গেলে অনুরোধগুলি প্রত্যাখ্যান করা হবে।.",
+ "INBOX_IDENTIFIER": "ইনবক্স শনাক্তকারী",
+ "INBOX_IDENTIFIER_SUB_TEXT": "আপনার API ক্লায়েন্টদের প্রমাণীকরণের জন্য এখানে প্রদর্শিত `inbox_identifier` টোকেন ব্যবহার করুন।",
+ "FORWARD_EMAIL_TITLE": "ইমেইলে ফরোয়ার্ড করুন",
+ "FORWARD_EMAIL_SUB_TEXT": "আপনার ইমেইলগুলি নিম্নলিখিত ইমেইল ঠিকানায় ফরোয়ার্ড করা শুরু করুন।",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "এই ইনস্টলেশনে আপনার ইনবক্সে ইমেইল ফরওয়ার্ডিং বর্তমানে নিষ্ক্রিয় রয়েছে। এই ফিচারটি ব্যবহার করতে হলে, আপনার অ্যাডমিনিস্ট্রেটরকে এটি সক্রিয় করতে হবে। দয়া করে তাদের সাথে যোগাযোগ করুন।.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "আলোচনা সমাধানের পর বার্তা পাঠানোর অনুমতি দিন",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "আলোচনা সমাধানের পরও শেষ-ব্যবহারকারীদের বার্তা পাঠানোর সুযোগ দিন।.",
+ "WHATSAPP_SECTION_SUBHEADER": "এই API কী WhatsApp API-র সাথে সংযোগের জন্য ব্যবহৃত হয়।.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API-র সাথে ইন্টিগ্রেশনের জন্য নতুন API কী দিন।.",
+ "WHATSAPP_SECTION_TITLE": "API কী",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API কী আপডেট করুন",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "এখানে নতুন API কী লিখুন",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "আপডেট করুন",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp এম্বেডেড সাইনআপ",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "এই ইনবক্সটি WhatsApp এম্বেডেড সাইনআপের মাধ্যমে সংযুক্ত হয়েছে।.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "আপনি এই ইনবক্সটি পুনরায় কনফিগার করে আপনার WhatsApp Business সেটিংস আপডেট করতে পারেন।.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "পুনরায় কনফিগার করুন",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp Business-এ সংযুক্ত করুন",
+ "WHATSAPP_CONNECT_SUBHEADER": "সহজ ব্যবস্থাপনার জন্য WhatsApp এম্বেডেড সাইনআপে আপগ্রেড করুন।.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "উন্নত ফিচার ও সহজ ব্যবস্থাপনার জন্য এই ইনবক্সটি WhatsApp Business-এর সাথে সংযুক্ত করুন।.",
+ "WHATSAPP_CONNECT_BUTTON": "সংযুক্ত করুন",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp Business-এ সফলভাবে সংযুক্ত হয়েছে!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp Business-এ সংযুক্ত করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business সফলভাবে পুনঃকনফিগার করা হয়েছে!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp Business পুনরায় কনফিগার করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID কনফিগার করা হয়নি। অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন।.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID কনফিগার করা হয়নি। অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন।.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp লগইন বাতিল করা হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook যাচাইকরণ টোকেন",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "ওয়েবহুক এন্ডপয়েন্টের সত্যতা যাচাইয়ের জন্য এই টোকেনটি ব্যবহৃত হয়।.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "টেমপ্লেট সিঙ্ক করুন",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "আপনার উপলব্ধ টেমপ্লেট আপডেট করতে WhatsApp থেকে মেসেজ টেমপ্লেটগুলো ম্যানুয়ালি সিঙ্ক করুন।.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "টেমপ্লেট সিঙ্ক করুন",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "টেমপ্লেট সিঙ্ক সফলভাবে শুরু হয়েছে। আপডেট হতে কয়েক মিনিট সময় লাগতে পারে।.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "প্রি-চ্যাট ফর্ম সেটিংস আপডেট করুন"
+ },
+ "HELP_CENTER": {
+ "LABEL": "সহায়তা কেন্দ্র",
+ "PLACEHOLDER": "সহায়তা কেন্দ্র নির্বাচন করুন",
+ "SELECT_PLACEHOLDER": "হেল্প সেন্টার নির্বাচন করুন",
+ "NONE": "কিছুই না",
+ "REMOVE": "হেল্প সেন্টার সরান",
+ "SUB_TEXT": "ইনবক্সের সাথে একটি হেল্প সেন্টার সংযুক্ত করুন"
+ },
+ "AUTO_ASSIGNMENT": {
+ "MAX_ASSIGNMENT_LIMIT": "স্বয়ংক্রিয় বরাদ্দের সীমা",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "অনুগ্রহ করে ০-এর চেয়ে বড় একটি মান দিন",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "এই ইনবক্স থেকে একজন এজেন্টের কাছে স্বয়ংক্রিয়ভাবে অ্যাসাইন করা সর্বাধিক কথোপকথনের সংখ্যা সীমিত করুন"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "কথোপকথন বরাদ্দ",
+ "DESCRIPTION": "বরাদ্দ নীতিমালা অনুযায়ী আগত কথোপকথন স্বয়ংক্রিয়ভাবে উপলব্ধ এজেন্টদের মধ্যে ভাগ করে দিন",
+ "ENABLE_AUTO_ASSIGNMENT": "স্বয়ংক্রিয় কথোপকথন বরাদ্দ সক্রিয় করুন",
+ "DEFAULT_RULES_TITLE": "ডিফল্ট বরাদ্দ নিয়মাবলী",
+ "DEFAULT_RULES_DESCRIPTION": "সব কথোপকথনের জন্য ডিফল্ট বরাদ্দ আচরণ ব্যবহার করা হচ্ছে",
+ "DEFAULT_RULE_1": "সবচেয়ে আগে তৈরি হওয়া কথোপকথন আগে",
+ "DEFAULT_RULE_2": "রাউন্ড রবিন বিতরণ",
+ "CUSTOMIZE_WITH_POLICY": "অ্যাসাইনমেন্ট নীতিমালা দিয়ে কাস্টমাইজ করুন",
+ "USING_POLICY": "এই ইনবক্সের জন্য কাস্টম অ্যাসাইনমেন্ট নীতিমালা ব্যবহার করা হচ্ছে",
+ "CUSTOMIZE_POLICY": "অ্যাসাইনমেন্ট নীতিমালা দিয়ে কাস্টমাইজ করুন",
+ "DELETE_POLICY": "নীতি মুছুন",
+ "POLICY_LABEL": "অ্যাসাইনমেন্ট নীতি",
+ "ASSIGNMENT_ORDER_LABEL": "অ্যাসাইনমেন্টের ক্রম",
+ "ASSIGNMENT_METHOD_LABEL": "অ্যাসাইনমেন্ট পদ্ধতি",
+ "POLICY_STATUS": {
+ "ACTIVE": "সক্রিয়",
+ "INACTIVE": "নিষ্ক্রিয়"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "সর্বপ্রথম তৈরি",
+ "LONGEST_WAITING": "সর্বাধিক অপেক্ষমাণ"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "রাউন্ড রবিন",
+ "BALANCED": "সুষম অ্যাসাইনমেন্ট"
+ },
+ "UPGRADE_PROMPT": "কাস্টম অ্যাসাইনমেন্ট নীতিমালা শুধুমাত্র বিজনেস প্ল্যানে উপলব্ধ",
+ "UPGRADE_TO_BUSINESS": "বিজনেস প্ল্যানে আপগ্রেড করুন",
+ "DEFAULT_POLICY_LINKED": "ডিফল্ট নীতিমালা সংযুক্ত হয়েছে",
+ "DEFAULT_POLICY_DESCRIPTION": "এই ইনবক্সে এজেন্টদের কাছে কথোপকথন কীভাবে অ্যাসাইন হবে তা কাস্টমাইজ করতে একটি কাস্টম অ্যাসাইনমেন্ট নীতিমালা সংযুক্ত করুন।.",
+ "LINK_EXISTING_POLICY": "বিদ্যমান নীতিমালা সংযুক্ত করুন",
+ "CREATE_NEW_POLICY": "নতুন নীতি তৈরি করুন",
+ "NO_POLICIES": "কোনো অ্যাসাইনমেন্ট নীতি পাওয়া যায়নি",
+ "VIEW_ALL_POLICIES": "সব নীতি দেখুন",
+ "CURRENT_BEHAVIOR": "বর্তমানে ডিফল্ট অ্যাসাইনমেন্ট আচরণ ব্যবহার করা হচ্ছে:",
+ "LINK_SUCCESS": "অ্যাসাইনমেন্ট নীতি সফলভাবে সংযুক্ত হয়েছে",
+ "LINK_ERROR": "অ্যাসাইনমেন্ট নীতি সংযুক্ত করতে ব্যর্থ হয়েছে"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "অ্যাসাইনমেন্ট নীতি মুছে ফেলবেন?",
+ "DELETE_CONFIRM_MESSAGE": "আপনি কি নিশ্চিত যে আপনি এই ইনবক্স থেকে অ্যাসাইনমেন্ট নীতি সরাতে চান? ইনবক্সটি ডিফল্ট অ্যাসাইনমেন্ট নিয়মে ফিরে যাবে।.",
+ "CANCEL": "বাতিল করুন",
+ "CONFIRM_DELETE": "মুছে ফেলুন",
+ "DELETE_SUCCESS": "অ্যাসাইনমেন্ট নীতি সফলভাবে অপসারণ করা হয়েছে",
+ "DELETE_ERROR": "অ্যাসাইনমেন্ট নীতি অপসারণে ব্যর্থ হয়েছে"
+ },
+ "FACEBOOK_REAUTHORIZE": {
+ "TITLE": "পুনঃঅনুমোদন",
+ "SUBTITLE": "আপনার Facebook সংযোগের মেয়াদ শেষ হয়েছে, পরিষেবা চালিয়ে যেতে অনুগ্রহ করে আপনার Facebook পৃষ্ঠা পুনরায় সংযুক্ত করুন",
+ "MESSAGE_SUCCESS": "পুনঃসংযোগ সফল হয়েছে",
+ "MESSAGE_ERROR": "একটি ত্রুটি ঘটেছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "PRE_CHAT_FORM": {
+ "DESCRIPTION": "প্রি চ্যাট ফর্ম আপনাকে ব্যবহারকারীর তথ্য সংগ্রহ করতে দেয় তাদের সাথে কথোপকথন শুরু করার আগে।",
+ "SET_FIELDS": "চ্যাটের আগে ফর্মের ক্ষেত্রসমূহ",
+ "SET_FIELDS_HEADER": {
+ "FIELDS": "ফিল্ডসমূহ",
+ "LABEL": "লেবেল",
+ "PLACE_HOLDER": "প্লেসহোল্ডার",
+ "KEY": "কি",
+ "TYPE": "ধরন",
+ "REQUIRED": "আবশ্যক"
+ },
+ "ENABLE": {
+ "LABEL": "প্রি চ্যাট ফর্ম সক্রিয় করুন",
+ "OPTIONS": {
+ "ENABLED": "হ্যাঁ",
+ "DISABLED": "না"
+ }
+ },
+ "PRE_CHAT_MESSAGE": {
+ "LABEL": "চ্যাটের পূর্ববর্তী বার্তা",
+ "PLACEHOLDER": "এই বার্তাটি ফর্মের সাথে ব্যবহারকারীদের কাছে দৃশ্যমান হবে"
+ },
+ "REQUIRE_EMAIL": {
+ "LABEL": "চ্যাট শুরু করার আগে দর্শকদের তাদের নাম এবং ইমেইল ঠিকানা প্রদান করতে হবে"
+ }
+ },
+ "CSAT": {
+ "TITLE": "CSAT সক্রিয় করুন",
+ "SUBTITLE": "কথোপকথনের শেষে স্বয়ংক্রিয়ভাবে CSAT জরিপ চালু করুন, যাতে গ্রাহকরা তাদের সহায়তা অভিজ্ঞতা সম্পর্কে কেমন অনুভব করছেন তা বোঝা যায়। সন্তুষ্টির প্রবণতা ট্র্যাক করুন এবং সময়ের সাথে সাথে উন্নতির ক্ষেত্রগুলি চিহ্নিত করুন।.",
+ "DISPLAY_TYPE": {
+ "LABEL": "প্রদর্শনের ধরন"
+ },
+ "MESSAGE": {
+ "LABEL": "বার্তা",
+ "PLACEHOLDER": "ফর্মের সাথে ব্যবহারকারীদের দেখানোর জন্য একটি বার্তা লিখুন"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "বাটনের লেখা",
+ "PLACEHOLDER": "অনুগ্রহ করে আমাদের রেট করুন"
+ },
+ "LANGUAGE": {
+ "LABEL": "ভাষা",
+ "PLACEHOLDER": "টেমপ্লেটের ভাষা নির্বাচন করুন"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "বার্তার প্রিভিউ",
+ "TOOLTIP": "WhatsApp-এর প্ল্যাটফর্মে প্রদর্শনের সময় এটি কিছুটা ভিন্ন হতে পারে।."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "WhatsApp দ্বারা অনুমোদিত",
+ "PENDING": "WhatsApp অনুমোদনের জন্য অপেক্ষমাণ",
+ "REJECTED": "Meta টেমপ্লেটটি প্রত্যাখ্যান করেছে",
+ "DEFAULT": "WhatsApp অনুমোদন প্রয়োজন",
+ "NOT_FOUND": "Meta প্ল্যাটফর্মে টেমপ্লেটটি নেই।."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp টেমপ্লেট সফলভাবে তৈরি হয়েছে এবং অনুমোদনের জন্য পাঠানো হয়েছে",
+ "ERROR_MESSAGE": "WhatsApp টেমপ্লেট তৈরি করতে ব্যর্থ হয়েছে"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "সার্ভে বিবরণ সম্পাদনা করুন",
+ "DESCRIPTION": "আমরা পূর্বের টেমপ্লেটটি মুছে ফেলব এবং একটি নতুন টেমপ্লেট তৈরি করব, যা আবার WhatsApp অনুমোদনের জন্য পাঠানো হবে",
+ "CONFIRM": "নতুন টেমপ্লেট তৈরি করুন",
+ "CANCEL": "ফিরে যান"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "ইউটিলিটি ফিট যাচাই করুন",
+ "HELPER_NOTE": "ইউটিলিটি ফিট উন্নত করতে জমা দেওয়ার আগে এই বার্তাটি যাচাই করুন। সিস্টেমটি রিপোর্টিংয়ের জন্য বোতামসহ একটি নির্দিষ্ট CSAT টেমপ্লেট তৈরি করে এবং এটিকে ইউটিলিটি হিসেবে জমা দেয়; তবে বিষয়বস্তুর উপর ভিত্তি করে Meta এটিকে মার্কেটিং হিসেবেও পুনঃশ্রেণিবদ্ধ করতে পারে।.",
+ "RESULT_LABEL": "Meta ক্যাটাগরি পূর্বাভাস",
+ "GUIDANCE_NOTE": "এটি একটি দিকনির্দেশনা যাচাই, Meta অনুমোদনের নিশ্চয়তা নয়।.",
+ "SUGGESTION_LABEL": "প্রস্তাবিত নিরাপদ পুনর্লিখন",
+ "APPLY": "এই পুনর্লিখন ব্যবহার করুন",
+ "ERROR_MESSAGE": "বার্তাটি বিশ্লেষণ করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "সম্ভবত ইউটিলিটি",
+ "LIKELY_MARKETING": "সম্ভবত মার্কেটিং",
+ "UNCLEAR": "স্পষ্টতা প্রয়োজন"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "সার্ভে নিয়ম",
+ "DESCRIPTION_PREFIX": "কথোপকথনটি যদি",
+ "DESCRIPTION_SUFFIX": "যেকোনো লেবেল",
+ "OPERATOR": {
+ "CONTAINS": "অন্তর্ভুক্ত করে",
+ "DOES_NOT_CONTAINS": "অন্তর্ভুক্ত করে না"
+ },
+ "SELECT_PLACEHOLDER": "লেবেল নির্বাচন করুন"
+ },
+ "NOTE": "নোট: CSAT জরিপ প্রতিটি কথোপকথনের জন্য শুধুমাত্র একবার পাঠানো হয়",
+ "WHATSAPP_NOTE": "নোট: আপনি সংরক্ষণ করলে, সিস্টেমটি WhatsApp-এ একটি নির্দিষ্ট CSAT টেমপ্লেট তৈরি করে (যা রিপোর্টে রেটিং ও ফিডব্যাক সংগ্রহ করতে ব্যবহৃত হয়) এবং অনুমোদনের জন্য ইউটিলিটি হিসেবে জমা দেয়। বিষয়বস্তুর উপর ভিত্তি করে Meta এটিকে মার্কেটিং হিসেবেও শ্রেণিবদ্ধ করতে পারে। অনুমোদনের পর, সার্ভে নিয়ম অনুযায়ী প্রতি কথোপকথনে একবারই সার্ভে পাঠানো হবে।.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT সেটিংস সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "আমরা CSAT সেটিংস আপডেট করতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন।."
+ }
+ },
+ "BUSINESS_HOURS": {
+ "TITLE": "আপনার উপলব্ধতা নির্ধারণ করুন",
+ "SUBTITLE": "আপনার লাইভচ্যাট উইজেটে আপনার উপলব্ধতা নির্ধারণ করুন",
+ "WEEKLY_TITLE": "আপনার সাপ্তাহিক সময় নির্ধারণ করুন",
+ "TIMEZONE_LABEL": "টাইমজোন নির্বাচন করুন",
+ "UPDATE": "ব্যবসায়িক সময়ের সেটিংস আপডেট করুন",
+ "TOGGLE_AVAILABILITY": "এই ইনবক্সের জন্য ব্যবসায়িক উপলব্ধতা চালু করুন",
+ "UNAVAILABLE_MESSAGE_LABEL": "ভিজিটরদের জন্য অনুপলব্ধ বার্তা",
+ "TOGGLE_HELP": "ব্যবসার উপস্থিতি সক্রিয় করলে লাইভ চ্যাট উইজেটে উপলব্ধ সময় দেখাবে, এমনকি সব এজেন্ট অফলাইনে থাকলেও। নির্ধারিত সময়ের বাইরে ভিজিটরদের একটি বার্তা ও প্রি-চ্যাট ফর্ম দিয়ে সতর্ক করা যেতে পারে।.",
+ "DAY": {
+ "DAY": "দিন",
+ "AVAILABILITY": "উপস্থিতি",
+ "HOURS": "ঘণ্টা",
+ "ENABLE": "এই দিনের জন্য উপলব্ধতা সক্রিয় করুন",
+ "UNAVAILABLE": "উপলব্ধ নেই",
+ "VALIDATION_ERROR": "শুরুর সময় বন্ধের সময়ের আগে হওয়া উচিত।",
+ "CHOOSE": "পছন্দ করুন"
+ },
+ "ALL_DAY": "সারাদিন"
+ },
+ "IMAP": {
+ "TITLE": "IMAP",
+ "SUBTITLE": "আপনার IMAP বিবরণ সেট করুন",
+ "NOTE_TEXT": "SMTP সক্রিয় করতে, অনুগ্রহ করে IMAP কনফিগার করুন।.",
+ "UPDATE": "IMAP সেটিংস আপডেট করুন",
+ "TOGGLE_AVAILABILITY": "এই ইনবক্সের জন্য IMAP কনফিগারেশন সক্রিয় করুন",
+ "TOGGLE_HELP": "IMAP সক্রিয় করলে ব্যবহারকারী ইমেইল গ্রহণ করতে পারবেন",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "IMAP সেটিংস সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "IMAP সেটিংস আপডেট করা সম্ভব হয়নি"
+ },
+ "ADDRESS": {
+ "LABEL": "ঠিকানা",
+ "PLACE_HOLDER": "ঠিকানা (যেমন: imap.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "পোর্ট",
+ "PLACE_HOLDER": "পোর্ট"
+ },
+ "LOGIN": {
+ "LABEL": "লগইন",
+ "PLACE_HOLDER": "লগইন"
+ },
+ "PASSWORD": {
+ "LABEL": "পাসওয়ার্ড",
+ "PLACE_HOLDER": "পাসওয়ার্ড"
+ },
+ "ENABLE_SSL": "SSL সক্রিয় করুন",
+ "AUTH_MECHANISM": "প্রমাণীকরণ"
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "SUBTITLE": "আপনার MICROSOFT অ্যাকাউন্ট পুনরায় অনুমোদন করুন"
+ },
+ "SMTP": {
+ "TITLE": "SMTP",
+ "SUBTITLE": "আপনার SMTP বিবরণ সেট করুন",
+ "UPDATE": "SMTP সেটিংস আপডেট করুন",
+ "TOGGLE_AVAILABILITY": "এই ইনবক্সের জন্য SMTP কনফিগারেশন সক্রিয় করুন",
+ "TOGGLE_HELP": "SMTP সক্রিয় করলে ব্যবহারকারী ইমেইল পাঠাতে পারবেন",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "SMTP সেটিংস সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "SMTP সেটিংস আপডেট করা সম্ভব হয়নি"
+ },
+ "ADDRESS": {
+ "LABEL": "ঠিকানা",
+ "PLACE_HOLDER": "ঠিকানা (যেমন: smtp.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "পোর্ট",
+ "PLACE_HOLDER": "পোর্ট"
+ },
+ "LOGIN": {
+ "LABEL": "লগইন",
+ "PLACE_HOLDER": "লগইন"
+ },
+ "PASSWORD": {
+ "LABEL": "পাসওয়ার্ড",
+ "PLACE_HOLDER": "পাসওয়ার্ড"
+ },
+ "DOMAIN": {
+ "LABEL": "ডোমেইন",
+ "PLACE_HOLDER": "ডোমেইন"
+ },
+ "ENCRYPTION": "এনক্রিপশন",
+ "SSL_TLS": "SSL/TLS",
+ "START_TLS": "STARTTLS",
+ "OPEN_SSL_VERIFY_MODE": "Open SSL যাচাইকরণ মোড",
+ "AUTH_MECHANISM": "প্রমাণীকরণ"
+ },
+ "NOTE": "নোট: ",
+ "WIDGET_BUILDER": {
+ "WIDGET_OPTIONS": {
+ "AVATAR": {
+ "LABEL": "ওয়েবসাইট অ্যাভাটার",
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "অ্যাভাটার সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ }
+ }
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "ওয়েবসাইটের নাম",
+ "PLACE_HOLDER": "আপনার ওয়েবসাইটের নাম লিখুন (যেমন: Acme Inc)",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ওয়েবসাইটের নাম লিখুন"
+ },
+ "WELCOME_HEADING": {
+ "LABEL": "স্বাগত শিরোনাম",
+ "PLACE_HOLDER": "হ্যালো!"
+ },
+ "WELCOME_TAGLINE": {
+ "LABEL": "স্বাগত বার্তা",
+ "PLACE_HOLDER": "আমাদের সাথে যোগাযোগ করা সহজ। যেকোনো কিছু জিজ্ঞাসা করুন, অথবা আপনার মতামত শেয়ার করুন।."
+ },
+ "REPLY_TIME": {
+ "LABEL": "উত্তরের সময়",
+ "IN_A_FEW_MINUTES": "কয়েক মিনিটের মধ্যে",
+ "IN_A_FEW_HOURS": "কয়েক ঘণ্টার মধ্যে",
+ "IN_A_DAY": "এক দিনের মধ্যে"
+ },
+ "WIDGET_COLOR_LABEL": "উইজেটের রঙ",
+ "WIDGET_BUBBLE": "বাবল",
+ "WIDGET_BUBBLE_POSITION_LABEL": "অবস্থান:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "ধরন:",
+ "WIDGET_BUBBLE_LAUNCHER_TITLE": {
+ "DEFAULT": "আমাদের সাথে চ্যাট করুন",
+ "LABEL": "লঞ্চার টাইটেল",
+ "PLACE_HOLDER": "আমাদের সাথে চ্যাট করুন"
+ },
+ "UPDATE": {
+ "BUTTON_TEXT": "উইজেট সেটিংস আপডেট করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "উইজেট সেটিংস সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "উইজেট সেটিংস আপডেট করা সম্ভব হয়নি"
+ }
+ },
+ "WIDGET_VIEW_OPTION": {
+ "PREVIEW": "প্রিভিউ",
+ "SCRIPT": "স্ক্রিপ্ট"
+ },
+ "WIDGET_BUBBLE_POSITION": {
+ "LEFT": "বাম",
+ "RIGHT": "ডান"
+ },
+ "WIDGET_BUBBLE_TYPE": {
+ "STANDARD": "স্ট্যান্ডার্ড",
+ "EXPANDED_BUBBLE": "বিস্তৃত বুদবুদ"
+ }
+ },
+ "WIDGET_SCREEN": {
+ "DEFAULT": "ডিফল্ট",
+ "CHAT": "চ্যাট মোড"
+ },
+ "REPLY_TIME": {
+ "IN_A_FEW_MINUTES": "সাধারণত কয়েক মিনিটের মধ্যে উত্তর দেয়",
+ "IN_A_FEW_HOURS": "সাধারণত কয়েক ঘণ্টার মধ্যে উত্তর দেয়",
+ "IN_A_DAY": "সাধারণত এক দিনের মধ্যে উত্তর দেয়"
+ },
+ "FOOTER": {
+ "START_CONVERSATION_BUTTON_TEXT": "আলাপ শুরু করুন",
+ "CHAT_INPUT_PLACEHOLDER": "আপনার বার্তা লিখুন"
+ },
+ "BODY": {
+ "TEAM_AVAILABILITY": {
+ "ONLINE": "আমরা অনলাইনে আছি",
+ "OFFLINE": "আমরা এই মুহূর্তে অনুপস্থিত"
+ },
+ "USER_MESSAGE": "হাই",
+ "AGENT_MESSAGE": "হ্যালো"
+ },
+ "BRANDING_TEXT": "Chatwoot দ্বারা পরিচালিত",
+ "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
+ },
+ "EMAIL_PROVIDERS": {
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Microsoft-এর সাথে সংযুক্ত করুন"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Google-এর সাথে সংযুক্ত করুন"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "অন্যান্য প্রদানকারী",
+ "DESCRIPTION": "অন্যান্য প্রদানকারীর সাথে সংযুক্ত করুন"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "মেসেঞ্জার",
+ "WEB_WIDGET": "ওয়েবসাইট",
+ "TWITTER_PROFILE": "টুইটার",
+ "TWILIO_SMS": "টুইলিও SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "এসএমএস",
+ "EMAIL": "ইমেইল",
+ "TELEGRAM": "টেলিগ্রাম",
+ "LINE": "লাইন",
+ "API": "API চ্যানেল",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "ভয়েস"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/integrationApps.json b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json
new file mode 100644
index 000000000..a922473c6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/integrationApps.json
@@ -0,0 +1,67 @@
+{
+ "INTEGRATION_APPS": {
+ "FETCHING": "Fetching Integrations",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
+ "HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CONFIGURE": "Configure",
+ "ADD_BUTTON": "Add a new hook",
+ "DELETE": {
+ "TITLE": {
+ "INBOX": "Confirm deletion",
+ "ACCOUNT": "Disconnect"
+ },
+ "MESSAGE": {
+ "INBOX": "Are you sure to delete?",
+ "ACCOUNT": "Are you sure to disconnect?"
+ },
+ "CONFIRM_BUTTON_TEXT": {
+ "INBOX": "Yes, Delete",
+ "ACCOUNT": "Yes, Disconnect"
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Hook deleted successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "LIST": {
+ "FETCHING": "Fetching integration hooks",
+ "INBOX": "Inbox",
+ "ACTIONS": "Actions",
+ "DELETE": {
+ "BUTTON_TEXT": "Delete"
+ }
+ },
+ "ADD": {
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox"
+ },
+ "SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Integration hook added successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "Connect"
+ },
+ "DISCONNECT": {
+ "BUTTON_TEXT": "Disconnect"
+ },
+ "SIDEBAR_DESCRIPTION": {
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/integrations.json b/app/javascript/dashboard/i18n/locale/bn/integrations.json
new file mode 100644
index 000000000..bcadf8389
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/integrations.json
@@ -0,0 +1,1104 @@
+{
+ "INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Shopify ইন্টিগ্রেশন মুছুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে Shopify ইন্টিগ্রেশন মুছতে চান?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify স্টোর সংযুক্ত করুন",
+ "LABEL": "স্টোর URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "আপনার Shopify স্টোরের myshopify.com URL লিখুন",
+ "CANCEL": "বাতিল করুন",
+ "SUBMIT": "স্টোর সংযুক্ত করুন"
+ },
+ "ERROR": "Shopify সংযোগে ত্রুটি হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন অথবা সমস্যা চলতে থাকলে সহায়তার সাথে যোগাযোগ করুন।"
+ },
+ "HEADER": "ইন্টিগ্রেশন",
+ "DESCRIPTION": "Chatwoot আপনার দলের দক্ষতা বাড়ানোর জন্য একাধিক টুল এবং সার্ভিসের সাথে ইন্টিগ্রেট করে। আপনার পছন্দের অ্যাপগুলি কনফিগার করতে নিচের তালিকা অন্বেষণ করুন।",
+ "LEARN_MORE": "ইন্টিগ্রেশন সম্পর্কে আরও জানুন",
+ "LOADING": "ইন্টিগ্রেশনগুলি আনছে",
+ "SEARCH_PLACEHOLDER": "ইন্টিগ্রেশন খুঁজুন...",
+ "NO_RESULTS": "আপনার অনুসন্ধানের সাথে মিলে যাওয়া কোনো ইন্টিগ্রেশন পাওয়া যায়নি",
+ "CAPTAIN": {
+ "DISABLED": "আপনার অ্যাকাউন্টে Captain সক্রিয় নয়।",
+ "CLICK_HERE_TO_CONFIGURE": "কনফিগার করতে এখানে ক্লিক করুন",
+ "LOADING_CONSOLE": "Captain কনসোল লোড হচ্ছে...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain কনসোল লোড করতে ব্যর্থ হয়েছে। অনুগ্রহ করে রিফ্রেশ করে আবার চেষ্টা করুন।"
+ },
+ "WEBHOOK": {
+ "SUBSCRIBED_EVENTS": "সাবস্ক্রাইব করা ইভেন্ট",
+ "LEARN_MORE": "ওয়েবহুক সম্পর্কে আরও জানুন",
+ "SECRET": {
+ "LABEL": "গোপন কোড",
+ "COPY": "গোপন কোড ক্লিপবোর্ডে কপি করুন",
+ "COPY_SUCCESS": "গোপন কোড ক্লিপবোর্ডে কপি হয়েছে",
+ "TOGGLE": "গোপন কোডের দৃশ্যমানতা টগল করুন",
+ "CREATED_DESC": "আপনার ওয়েবহুক তৈরি হয়েছে। ওয়েবহুক স্বাক্ষর যাচাই করতে নিচের গোপন কোডটি ব্যবহার করুন। দয়া করে এখনই এটি কপি করুন — আপনি পরে ওয়েবহুক সম্পাদনা ফর্মেও এটি খুঁজে পাবেন।.",
+ "DONE": "সম্পন্ন"
+ },
+ "COUNT": "{n} ওয়েবহুক | {n} ওয়েবহুক",
+ "SEARCH_PLACEHOLDER": "ওয়েবহুক খুঁজুন...",
+ "NO_RESULTS": "আপনার অনুসন্ধানের সাথে মিলে যাওয়া কোনো ওয়েবহুক পাওয়া যায়নি",
+ "FORM": {
+ "CANCEL": "বাতিল করুন",
+ "DESC": "ওয়েবহুক ইভেন্টগুলি আপনাকে আপনার Chatwoot অ্যাকাউন্টে যা ঘটছে তার রিয়েলটাইম তথ্য প্রদান করে। অনুগ্রহ করে একটি বৈধ URL প্রবেশ করান কলব্যাক কনফিগার করার জন্য।",
+ "SUBSCRIPTIONS": {
+ "LABEL": "ইভেন্ট",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "কথোপকথন তৈরি হয়েছে",
+ "CONVERSATION_STATUS_CHANGED": "কথোপকথনের অবস্থা পরিবর্তিত হয়েছে",
+ "CONVERSATION_UPDATED": "কথোপকথন আপডেট হয়েছে",
+ "MESSAGE_CREATED": "মেসেজ তৈরি হয়েছে",
+ "MESSAGE_UPDATED": "মেসেজ আপডেট হয়েছে",
+ "WEBWIDGET_TRIGGERED": "ব্যবহারকারী দ্বারা লাইভ চ্যাট উইজেট খোলা হয়েছে",
+ "CONTACT_CREATED": "যোগাযোগ তৈরি হয়েছে",
+ "CONTACT_UPDATED": "যোগাযোগ আপডেট হয়েছে",
+ "CONVERSATION_TYPING_ON": "কথোপকথন টাইপিং চালু আছে",
+ "CONVERSATION_TYPING_OFF": "কথোপকথন টাইপিং বন্ধ আছে",
+ "INBOX_UPDATED": "Inbox updated"
+ }
+ },
+ "NAME": {
+ "LABEL": "Webhook নাম",
+ "PLACEHOLDER": "ওয়েবহুকের নাম লিখুন"
+ },
+ "END_POINT": {
+ "LABEL": "ওয়েবহুক URL",
+ "PLACEHOLDER": "উদাহরণ: {webhookExampleURL}",
+ "ERROR": "একটি বৈধ URL প্রবেশ করান"
+ },
+ "EDIT_SUBMIT": "ওয়েবহুক আপডেট করুন",
+ "ADD_SUBMIT": "ওয়েবহুক তৈরি করুন"
+ },
+ "TITLE": "ওয়েবহুক",
+ "CONFIGURE": "কনফিগার করুন",
+ "HEADER": "ওয়েবহুক সেটিংস",
+ "HEADER_BTN_TXT": "নতুন ওয়েবহুক যোগ করুন",
+ "LOADING": "সংযুক্ত ওয়েবহুক আনছে",
+ "SEARCH_404": "এই অনুসন্ধানের সাথে মেলানো কোনো আইটেম নেই",
+ "SIDEBAR_TXT": "ওয়েবহুক
ওয়েবহুক হলো HTTP কলব্যাক যা প্রতিটি অ্যাকাউন্টের জন্য সংজ্ঞায়িত করা যায়। এগুলো Chatwoot-এ মেসেজ তৈরি হওয়ার মতো ইভেন্ট দ্বারা ট্রিগার হয়। আপনি এই অ্যাকাউন্টের জন্য একাধিক ওয়েবহুক তৈরি করতে পারেন।
একটি ওয়েবহুক তৈরি করতে, নতুন ওয়েবহুক যোগ করুন বোতামে ক্লিক করুন। বিদ্যমান যেকোনো ওয়েবহুক মুছে ফেলতেও আপনি Delete বোতামে ক্লিক করতে পারেন।
",
+ "LIST": {
+ "404": "এই অ্যাকাউন্টে কোনো ওয়েবহুক কনফিগার করা হয়নি।",
+ "TITLE": "ওয়েবহুক পরিচালনা করুন",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "ওয়েবহুক এন্ডপয়েন্ট",
+ "ACTIONS": "কর্ম"
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "সম্পাদনা করুন",
+ "TITLE": "ওয়েবহুক সম্পাদনা করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "ওয়েবহুক কনফিগারেশন সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "Woot সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "ADD": {
+ "CANCEL": "বাতিল করুন",
+ "TITLE": "নতুন ওয়েবহুক যোগ করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "ওয়েবহুক কনফিগারেশন সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "Woot সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "মুছুন",
+ "API": {
+ "SUCCESS_MESSAGE": "ওয়েবহুক সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "Woot সার্ভারের সাথে সংযোগ স্থাপন করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "CONFIRM": {
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে ওয়েবহুকটি মুছে ফেলতে চান? ({webhookURL})",
+ "YES": "হ্যাঁ, মুছুন ",
+ "NO": "না, রাখুন"
+ }
+ }
+ },
+ "SLACK": {
+ "HEADER": "Slack",
+ "DELETE": "মুছে ফেলুন",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "ইন্টিগ্রেশন মুছে ফেলুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে আপনি ইন্টিগ্রেশনটি মুছে ফেলতে চান? এটি করলে আপনার Slack ওয়ার্কস্পেসের কথোপকথনের অ্যাক্সেস হারাবেন।"
+ },
+ "HELP_TEXT": {
+ "TITLE": "Slack ইন্টিগ্রেশন কীভাবে ব্যবহার করবেন?",
+ "BODY": "এই ইন্টিগ্রেশনের মাধ্যমে, আপনার সমস্ত ইনকামিং কথোপকথন আপনার Slack ওয়ার্কস্পেসের ***{selectedChannelName}*** চ্যানেলে সিঙ্ক হবে। আপনি এই চ্যানেল থেকেই আপনার গ্রাহকদের সব কথোপকথন পরিচালনা করতে পারবেন এবং কোনো মেসেজ মিস করবেন না।\n\nএই ইন্টিগ্রেশনের প্রধান বৈশিষ্ট্যগুলো:\n\n**Slack থেকেই কথোপকথনে উত্তর দিন:** ***{selectedChannelName}*** Slack চ্যানেলে কোনো কথোপকথনে উত্তর দিতে, শুধু আপনার মেসেজ লিখে থ্রেড হিসেবে পাঠান। এতে Chatwoot-এর মাধ্যমে গ্রাহককে উত্তর পাঠানো হবে। এটি খুব সহজ!\n\n**প্রাইভেট নোট তৈরি করুন:** উত্তর না দিয়ে যদি প্রাইভেট নোট যোগ করতে চান, তাহলে আপনার মেসেজটি ***`note:`*** দিয়ে শুরু করুন। এতে আপনার মেসেজটি প্রাইভেট থাকবে এবং গ্রাহক দেখতে পারবে না।\n\n**এজেন্ট প্রোফাইল যুক্ত করুন:** Slack-এ উত্তরদাতা যদি একই ইমেইলে Chatwoot-এ এজেন্ট প্রোফাইল থাকে, তাহলে উত্তরগুলো স্বয়ংক্রিয়ভাবে সেই এজেন্ট প্রোফাইলের সাথে যুক্ত হবে। এতে সহজেই জানা যাবে কে কখন কী বলেছেন। অন্যদিকে, যদি উত্তরদাতার কোনো এজেন্ট প্রোফাইল না থাকে, তাহলে উত্তরগুলো গ্রাহকের কাছে বট প্রোফাইল থেকে যাবে।.",
+ "SELECTED": "নির্বাচিত"
+ },
+ "SELECT_CHANNEL": {
+ "OPTION_LABEL": "একটি চ্যানেল নির্বাচন করুন",
+ "UPDATE": "আপডেট করুন",
+ "BUTTON_TEXT": "চ্যানেল সংযুক্ত করুন",
+ "DESCRIPTION": "আপনার Slack ওয়ার্কস্পেস এখন Chatwoot-এর সাথে সংযুক্ত। তবে, ইন্টিগ্রেশনটি বর্তমানে নিষ্ক্রিয়। ইন্টিগ্রেশন সক্রিয় করতে এবং Chatwoot-এ একটি চ্যানেল সংযুক্ত করতে নিচের বোতামে ক্লিক করুন।\n\n**দ্রষ্টব্য:** আপনি যদি একটি ব্যক্তিগত চ্যানেল সংযুক্ত করতে চান, তাহলে এই ধাপটি চালানোর আগে Slack চ্যানেলে Chatwoot অ্যাপটি যোগ করুন।।",
+ "ATTENTION_REQUIRED": "মনোযোগ প্রয়োজন",
+ "EXPIRED": "আপনার Slack ইন্টিগ্রেশন মেয়াদ উত্তীর্ণ হয়েছে। Slack-এ বার্তা পাওয়া চালিয়ে যেতে, অনুগ্রহ করে ইন্টিগ্রেশনটি মুছে ফেলুন এবং আপনার ওয়ার্কস্পেস আবার সংযুক্ত করুন।।"
+ },
+ "UPDATE_ERROR": "ইন্টিগ্রেশন আপডেট করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "UPDATE_SUCCESS": "চ্যানেল সফলভাবে সংযুক্ত হয়েছে",
+ "FAILED_TO_FETCH_CHANNELS": "Slack থেকে চ্যানেলগুলি আনতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "DYTE": {
+ "CLICK_HERE_TO_JOIN": "যোগ দিতে এখানে ক্লিক করুন",
+ "LEAVE_THE_ROOM": "রুম থেকে বেরিয়ে যান",
+ "START_VIDEO_CALL_HELP_TEXT": "গ্রাহকের সাথে একটি নতুন ভিডিও কল শুরু করুন",
+ "JOIN_ERROR": "কল যোগদানে ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "CREATE_ERROR": "মিটিং লিঙ্ক তৈরি করতে ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "OPEN_AI": {
+ "AI_ASSIST": "এআই সহায়তা",
+ "WITH_AI": " {option} AI সহ ",
+ "OPTIONS": {
+ "REPLY_SUGGESTION": "উত্তর প্রস্তাবনা",
+ "SUMMARIZE": "সারাংশ তৈরি করুন",
+ "REPHRASE": "লেখা উন্নত করুন",
+ "FIX_SPELLING_GRAMMAR": "বানান এবং ব্যাকরণ ঠিক করুন",
+ "SHORTEN": "সংক্ষিপ্ত করুন",
+ "EXPAND": "বিস্তৃত করুন",
+ "MAKE_FRIENDLY": "বার্তার স্বর বন্ধুত্বপূর্ণ করুন",
+ "MAKE_FORMAL": "আনুষ্ঠানিক স্বর ব্যবহার করুন",
+ "SIMPLIFY": "সরল করুন",
+ "CONFIDENT": "আত্মবিশ্বাসী টোন ব্যবহার করুন",
+ "PROFESSIONAL": "পেশাদার টোন ব্যবহার করুন",
+ "CASUAL": "স্বচ্ছন্দ টোন ব্যবহার করুন",
+ "STRAIGHTFORWARD": "সরল টোন ব্যবহার করুন"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "উত্তর উন্নত করুন",
+ "IMPROVE_REPLY_SELECTION": "নির্বাচন উন্নত করুন",
+ "CHANGE_TONE": {
+ "TITLE": "টোন পরিবর্তন করুন",
+ "OPTIONS": {
+ "PROFESSIONAL": "পেশাদার",
+ "CASUAL": "স্বাভাবিক",
+ "STRAIGHTFORWARD": "সরল",
+ "CONFIDENT": "আত্মবিশ্বাসী",
+ "FRIENDLY": "বন্ধুত্বপূর্ণ"
+ }
+ },
+ "GRAMMAR": "ব্যাকরণ ও বানান ঠিক করুন",
+ "SUGGESTION": "উত্তরের পরামর্শ দিন",
+ "SUMMARIZE": "আলাপচারিতার সারাংশ দিন",
+ "ASK_COPILOT": "Copilot-কে জিজ্ঞাসা করুন"
+ },
+ "ASSISTANCE_MODAL": {
+ "DRAFT_TITLE": "খসড়া বিষয়বস্তু",
+ "GENERATED_TITLE": "উত্পন্ন বিষয়বস্তু",
+ "AI_WRITING": "এআই লিখছে",
+ "BUTTONS": {
+ "APPLY": "এই প্রস্তাবটি ব্যবহার করুন",
+ "CANCEL": "বাতিল করুন"
+ }
+ },
+ "CTA_MODAL": {
+ "TITLE": "OpenAI-এর সাথে সংযুক্ত করুন",
+ "DESC": "OpenAI-এর GPT মডেলগুলোর সাথে আপনার ড্যাশবোর্ডে উন্নত এআই বৈশিষ্ট্য আনুন। শুরু করতে, আপনার OpenAI অ্যাকাউন্ট থেকে API কী প্রবেশ করান।।",
+ "KEY_PLACEHOLDER": "আপনার OpenAI API কী প্রবেশ করান",
+ "BUTTONS": {
+ "NEED_HELP": "সাহায্য দরকার?",
+ "DISMISS": "বাতিল করুন",
+ "FINISH": "সেটআপ শেষ করুন"
+ },
+ "DISMISS_MESSAGE": "আপনি যখন খুশি OpenAI ইন্টিগ্রেশন পরে সেটআপ করতে পারেন।।",
+ "SUCCESS_MESSAGE": "OpenAI ইন্টিগ্রেশন সফলভাবে সেটআপ হয়েছে"
+ },
+ "TITLE": "AI দিয়ে উন্নত করুন",
+ "SUMMARY_TITLE": "এআই-এর সাথে সারাংশ",
+ "REPLY_TITLE": "এআই-এর সাথে উত্তর প্রস্তাব",
+ "SUBTITLE": "আপনার বর্তমান খসড়ার ভিত্তিতে AI ব্যবহার করে একটি উন্নত উত্তর তৈরি করা হবে।",
+ "TONE": {
+ "TITLE": "টোন",
+ "OPTIONS": {
+ "PROFESSIONAL": "পেশাদার",
+ "FRIENDLY": "বন্ধুত্বপূর্ণ"
+ }
+ },
+ "BUTTONS": {
+ "GENERATE": "উত্পন্ন করুন",
+ "GENERATING": "উত্পন্ন হচ্ছে...",
+ "CANCEL": "বাতিল করুন"
+ },
+ "GENERATE_ERROR": "বিষয়বস্তু প্রক্রিয়াকরণে সমস্যা হয়েছে, অনুগ্রহ করে আপনার OpenAI API কী যাচাই করুন এবং আবার চেষ্টা করুন"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "মুছুন",
+ "API": {
+ "SUCCESS_MESSAGE": "ইন্টিগ্রেশন সফলভাবে মুছে ফেলা হয়েছে"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "সংযোগ করুন"
+ },
+ "DASHBOARD_APPS": {
+ "TITLE": "ড্যাশবোর্ড অ্যাপ",
+ "HEADER_BTN_TXT": "নতুন একটি ড্যাশবোর্ড অ্যাপ যোগ করুন",
+ "SIDEBAR_TXT": "ড্যাশবোর্ড অ্যাপ
ড্যাশবোর্ড অ্যাপগুলো প্রতিষ্ঠানগুলোকে Chatwoot ড্যাশবোর্ডের ভিতরে একটি অ্যাপ্লিকেশন এম্বেড করার সুযোগ দেয় যাতে কাস্টমার সাপোর্ট এজেন্টদের জন্য প্রাসঙ্গিক তথ্য সরবরাহ করা যায়। এই ফিচারটি আপনাকে স্বাধীনভাবে একটি অ্যাপ্লিকেশন তৈরি করে সেটি ড্যাশবোর্ডে এম্বেড করার সুযোগ দেয়, যা ব্যবহারকারীর তথ্য, তাদের অর্ডার বা পূর্ববর্তী পেমেন্ট ইতিহাস প্রদর্শন করতে পারে।
যখন আপনি Chatwoot-এ ড্যাশবোর্ড ব্যবহার করে আপনার অ্যাপ্লিকেশন এম্বেড করবেন, তখন আপনার অ্যাপ্লিকেশন কথোপকথন এবং যোগাযোগের প্রসঙ্গ উইন্ডো ইভেন্ট হিসেবে পাবে। আপনার পৃষ্ঠায় মেসেজ ইভেন্টের জন্য একটি লিসেনার ইমপ্লিমেন্ট করুন প্রসঙ্গ গ্রহণের জন্য।
নতুন একটি ড্যাশবোর্ড অ্যাপ যোগ করতে, 'নতুন একটি ড্যাশবোর্ড অ্যাপ যোগ করুন' বোতামে ক্লিক করুন।
",
+ "DESCRIPTION": "ড্যাশবোর্ড অ্যাপগুলো প্রতিষ্ঠানগুলোকে ড্যাশবোর্ডের ভিতরে একটি অ্যাপ্লিকেশন এম্বেড করার সুযোগ দেয় যাতে কাস্টমার সাপোর্ট এজেন্টদের জন্য প্রাসঙ্গিক তথ্য সরবরাহ করা যায়। এই ফিচারটি আপনাকে স্বাধীনভাবে একটি অ্যাপ্লিকেশন তৈরি করে সেটি এম্বেড করার সুযোগ দেয়, যা ব্যবহারকারীর তথ্য, তাদের অর্ডার বা পূর্ববর্তী পেমেন্ট ইতিহাস প্রদর্শন করতে পারে।",
+ "LEARN_MORE": "ড্যাশবোর্ড অ্যাপস সম্পর্কে আরও জানুন",
+ "COUNT": "{n} ড্যাশবোর্ড অ্যাপ | {n} ড্যাশবোর্ড অ্যাপ",
+ "SEARCH_PLACEHOLDER": "ড্যাশবোর্ড অ্যাপ খুঁজুন...",
+ "NO_RESULTS": "আপনার অনুসন্ধানের সাথে মিলে যাওয়া কোনো ড্যাশবোর্ড অ্যাপ পাওয়া যায়নি",
+ "LIST": {
+ "404": "এই অ্যাকাউন্টে এখনও কোনো ড্যাশবোর্ড অ্যাপ কনফিগার করা হয়নি",
+ "LOADING": "ড্যাশবোর্ড অ্যাপ আনছে...",
+ "TABLE_HEADER": {
+ "NAME": "নাম",
+ "ENDPOINT": "এন্ডপয়েন্ট",
+ "ACTIONS": "কর্ম"
+ },
+ "EDIT_TOOLTIP": "অ্যাপ সম্পাদনা করুন",
+ "DELETE_TOOLTIP": "অ্যাপ মুছুন"
+ },
+ "FORM": {
+ "TITLE_LABEL": "নাম",
+ "TITLE_PLACEHOLDER": "আপনার ড্যাশবোর্ড অ্যাপের জন্য একটি নাম লিখুন",
+ "TITLE_ERROR": "ড্যাশবোর্ড অ্যাপের জন্য একটি নাম আবশ্যক",
+ "URL_LABEL": "এন্ডপয়েন্ট",
+ "URL_PLACEHOLDER": "আপনার অ্যাপ হোস্ট করা এন্ডপয়েন্ট URL লিখুন",
+ "URL_ERROR": "একটি বৈধ URL আবশ্যক"
+ },
+ "CREATE": {
+ "HEADER": "নতুন একটি ড্যাশবোর্ড অ্যাপ যোগ করুন",
+ "FORM_SUBMIT": "জমা দিন",
+ "FORM_CANCEL": "বাতিল করুন",
+ "API_SUCCESS": "ড্যাশবোর্ড অ্যাপ সফলভাবে কনফিগার করা হয়েছে",
+ "API_ERROR": "আমরা অ্যাপ তৈরি করতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "UPDATE": {
+ "HEADER": "ড্যাশবোর্ড অ্যাপ সম্পাদনা করুন",
+ "FORM_SUBMIT": "আপডেট করুন",
+ "FORM_CANCEL": "বাতিল করুন",
+ "API_SUCCESS": "ড্যাশবোর্ড অ্যাপ সফলভাবে আপডেট হয়েছে",
+ "API_ERROR": "আমরা অ্যাপ আপডেট করতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "DELETE": {
+ "CONFIRM_YES": "হ্যাঁ, মুছুন",
+ "CONFIRM_NO": "না, রাখুন",
+ "TITLE": "মুছে ফেলা নিশ্চিত করুন",
+ "MESSAGE": "আপনি কি নিশ্চিত যে অ্যাপটি মুছে ফেলতে চান - {appName}?",
+ "API_SUCCESS": "ড্যাশবোর্ড অ্যাপ সফলভাবে মুছে ফেলা হয়েছে",
+ "API_ERROR": "আমরা অ্যাপ মুছে ফেলতে পারিনি। অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "লিনিয়ার",
+ "ADD_OR_LINK_BUTTON": "Linear সমস্যা তৈরি/সংযুক্ত করুন",
+ "LOADING": "Linear সমস্যা আনছে...",
+ "LOADING_ERROR": "Linear সমস্যা আনতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "CREATE": "তৈরি করুন",
+ "LINK": {
+ "SEARCH": "সমস্যা অনুসন্ধান করুন",
+ "SELECT": "সমস্যা নির্বাচন করুন",
+ "TITLE": "সংযুক্ত করুন",
+ "EMPTY_LIST": "কোন Linear সমস্যা পাওয়া যায়নি",
+ "LOADING": "লোড হচ্ছে",
+ "ERROR": "Linear সমস্যা আনতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "LINK_SUCCESS": "সমস্যা সফলভাবে সংযুক্ত হয়েছে",
+ "LINK_ERROR": "সমস্যা সংযুক্ত করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "LINK_TITLE": "আলাপচারিতা (#{conversationId}) {name} এর সাথে"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linear সমস্যা তৈরি/সংযুক্ত করুন",
+ "DESCRIPTION": "কথোপকথন থেকে Linear ইস্যু তৈরি করুন, অথবা বিদ্যমান ইস্যুগুলো সংযুক্ত করুন সহজ ট্র্যাকিংয়ের জন্য।",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "শিরোনাম",
+ "PLACEHOLDER": "শিরোনাম লিখুন",
+ "REQUIRED_ERROR": "শিরোনাম আবশ্যক"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "বর্ণনা লিখুন"
+ },
+ "TEAM": {
+ "LABEL": "টিম",
+ "PLACEHOLDER": "টিম নির্বাচন করুন",
+ "SEARCH": "টিম অনুসন্ধান করুন",
+ "REQUIRED_ERROR": "টিম আবশ্যক"
+ },
+ "ASSIGNEE": {
+ "LABEL": "অ্যাসাইনী",
+ "PLACEHOLDER": "অ্যাসাইনী নির্বাচন করুন",
+ "SEARCH": "অ্যাসাইনী অনুসন্ধান করুন"
+ },
+ "PRIORITY": {
+ "LABEL": "অগ্রাধিকার",
+ "PLACEHOLDER": "অগ্রাধিকার নির্বাচন করুন",
+ "SEARCH": "অগ্রাধিকার অনুসন্ধান করুন"
+ },
+ "LABEL": {
+ "LABEL": "লেবেল",
+ "PLACEHOLDER": "লেবেল নির্বাচন করুন",
+ "SEARCH": "লেবেল অনুসন্ধান করুন"
+ },
+ "STATUS": {
+ "LABEL": "অবস্থা",
+ "PLACEHOLDER": "স্ট্যাটাস নির্বাচন করুন",
+ "SEARCH": "স্ট্যাটাস অনুসন্ধান করুন"
+ },
+ "PROJECT": {
+ "LABEL": "প্রকল্প",
+ "PLACEHOLDER": "প্রকল্প নির্বাচন করুন",
+ "SEARCH": "প্রকল্প অনুসন্ধান করুন"
+ }
+ },
+ "CREATE": "তৈরি করুন",
+ "CANCEL": "বাতিল করুন",
+ "CREATE_SUCCESS": "ইস্যু সফলভাবে তৈরি হয়েছে",
+ "CREATE_ERROR": "ইস্যু তৈরি করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "LOADING_TEAM_ERROR": "টিম আনতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "LOADING_TEAM_ENTITIES_ERROR": "টিম সত্তাগুলো আনতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "ISSUE": {
+ "STATUS": "অবস্থা",
+ "PRIORITY": "অগ্রাধিকার",
+ "ASSIGNEE": "অ্যাসাইনী",
+ "LABELS": "লেবেল",
+ "CREATED_AT": "{createdAt} এ তৈরি হয়েছে"
+ },
+ "UNLINK": {
+ "TITLE": "আনলিঙ্ক",
+ "SUCCESS": "ইস্যুটি সফলভাবে আনলিঙ্ক করা হয়েছে",
+ "ERROR": "ইস্যুটি আনলিঙ্ক করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "NO_LINKED_ISSUES": "কোনো সংযুক্ত সমস্যা পাওয়া যায়নি",
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে ইন্টিগ্রেশনটি মুছে ফেলতে চান?",
+ "MESSAGE": "আপনি কি নিশ্চিত যে ইন্টিগ্রেশনটি মুছে ফেলতে চান?",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "CANCEL": "বাতিল করুন"
+ },
+ "CTA": {
+ "TITLE": "Linear সংযুক্ত করুন",
+ "AGENT_DESCRIPTION": "Linear ওয়ার্কস্পেস সংযুক্ত নয়। এই ইন্টিগ্রেশন ব্যবহার করতে আপনার প্রশাসককে একটি ওয়ার্কস্পেস সংযুক্ত করার অনুরোধ করুন।",
+ "DESCRIPTION": "Linear ওয়ার্কস্পেস সংযুক্ত নয়। এই ইন্টিগ্রেশন ব্যবহার করতে নিচের বোতামে ক্লিক করে আপনার ওয়ার্কস্পেস সংযুক্ত করুন।",
+ "BUTTON_TEXT": "Linear ওয়ার্কস্পেস সংযুক্ত করুন"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে Notion ইন্টিগ্রেশন মুছতে চান?",
+ "MESSAGE": "এই ইন্টিগ্রেশন মুছে ফেলা হলে আপনার Notion ওয়ার্কস্পেসের অ্যাক্সেস মুছে যাবে এবং সমস্ত সম্পর্কিত কার্যকারিতা বন্ধ হয়ে যাবে।",
+ "CONFIRM": "হ্যাঁ, মুছুন",
+ "CANCEL": "বাতিল করুন"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "ক্যাপ্টেন",
+ "HEADER_KNOW_MORE": "আরও জানুন",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "সহকারীসমূহ",
+ "SWITCH_ASSISTANT": "সহকারী পরিবর্তন করুন",
+ "NEW_ASSISTANT": "সহকারী তৈরি করুন",
+ "EMPTY_LIST": "কোনো সহকারী পাওয়া যায়নি, শুরু করতে একটি তৈরি করুন"
+ },
+ "COPILOT": {
+ "TITLE": "কপিলট",
+ "TRY_THESE_PROMPTS": "এই প্রম্পটগুলো চেষ্টা করুন",
+ "PANEL_TITLE": "কপিলট দিয়ে শুরু করুন",
+ "KICK_OFF_MESSAGE": "দ্রুত সারসংক্ষেপ দরকার, পূর্ববর্তী কথোপকথন পরীক্ষা করতে চান, অথবা একটি ভালো উত্তর খসড়া করতে চান? কপিলট এখানে দ্রুততা আনার জন্য।",
+ "SEND_MESSAGE": "বার্তা পাঠান...",
+ "EMPTY_MESSAGE": "প্রতিক্রিয়া তৈরি করতে ত্রুটি হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "LOADER": "Captain চিন্তা করছে",
+ "YOU": "আপনি",
+ "USE": "এটি ব্যবহার করুন",
+ "RESET": "রিসেট",
+ "SHOW_STEPS": "ধাপগুলো দেখান",
+ "SELECT_ASSISTANT": "সহকারী নির্বাচন করুন",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "এই কথোপকথন সারসংক্ষেপ করুন",
+ "CONTENT": "গ্রাহক এবং সাপোর্ট এজেন্টের মধ্যে আলোচিত মূল বিষয়গুলি সারসংক্ষেপ করুন, যার মধ্যে গ্রাহকের উদ্বেগ, প্রশ্ন এবং সাপোর্ট এজেন্টের প্রদত্ত সমাধান বা উত্তর অন্তর্ভুক্ত থাকবে।"
+ },
+ "SUGGEST": {
+ "LABEL": "একটি উত্তর প্রস্তাব করুন",
+ "CONTENT": "গ্রাহকের অনুসন্ধান বিশ্লেষণ করুন এবং এমন একটি উত্তর খসড়া করুন যা তাদের উদ্বেগ বা প্রশ্ন কার্যকরভাবে সমাধান করে। নিশ্চিত করুন যে উত্তরটি স্পষ্ট, সংক্ষিপ্ত এবং সহায়ক তথ্য প্রদান করে।"
+ },
+ "RATE": {
+ "LABEL": "এই কথোপকথন মূল্যায়ন করুন",
+ "CONTENT": "কথোপকথন পর্যালোচনা করুন এবং দেখুন এটি গ্রাহকের চাহিদা কতটা পূরণ করে। স্বর, স্পষ্টতা এবং কার্যকারিতার ভিত্তিতে ৫ এর মধ্যে একটি রেটিং শেয়ার করুন।"
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "উচ্চ অগ্রাধিকার কথোপকথন",
+ "CONTENT": "আমাকে সব উচ্চ অগ্রাধিকার খোলা কথোপকথনের সারসংক্ষেপ দিন। কথোপকথন আইডি, গ্রাহকের নাম (যদি পাওয়া যায়), শেষ বার্তার বিষয়বস্তু এবং নিয়োগকৃত এজেন্ট অন্তর্ভুক্ত করুন। প্রাসঙ্গিক হলে স্থিতি অনুযায়ী গ্রুপ করুন।"
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "যোগাযোগের তালিকা",
+ "CONTENT": "আমাকে শীর্ষ 10 জন যোগাযোগের তালিকা দেখান। নাম, ইমেল বা ফোন নম্বর (যদি পাওয়া যায়), সর্বশেষ দেখা সময়, ট্যাগ (যদি থাকে) অন্তর্ভুক্ত করুন।"
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "আপনি",
+ "ASSISTANT": "সহকারী",
+ "MESSAGE_PLACEHOLDER": "আপনার বার্তা টাইপ করুন...",
+ "HEADER": "প্লেগ্রাউন্ড",
+ "DESCRIPTION": "এই প্লেগ্রাউন্ড ব্যবহার করে আপনার সহকারীকে বার্তা পাঠান এবং পরীক্ষা করুন এটি সঠিক, দ্রুত এবং প্রত্যাশিত স্বরে প্রতিক্রিয়া দেয় কিনা।",
+ "CREDIT_NOTE": "এখানে পাঠানো বার্তাগুলো আপনার ক্যাপ্টেন ক্রেডিটের মধ্যে গণনা হবে।"
+ },
+ "PAYWALL": {
+ "TITLE": "Captain AI ব্যবহারের জন্য আপগ্রেড করুন।",
+ "AVAILABLE_ON": "Captain ফ্রি প্ল্যানে উপলব্ধ নয়।",
+ "UPGRADE_PROMPT": "আমাদের সহকারী, কপিলট এবং আরও অনেক কিছু ব্যবহারের জন্য আপনার প্ল্যান আপগ্রেড করুন।",
+ "UPGRADE_NOW": "এখনই আপগ্রেড করুন",
+ "CANCEL_ANYTIME": "আপনি যেকোনো সময় আপনার প্ল্যান পরিবর্তন বা বাতিল করতে পারেন।"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI শুধুমাত্র এন্টারপ্রাইজ প্ল্যানে উপলব্ধ।.",
+ "UPGRADE_PROMPT": "আমাদের সহকারী, কপিলট এবং আরও অনেক কিছু ব্যবহারের জন্য আপনার প্ল্যান আপগ্রেড করুন।",
+ "ASK_ADMIN": "অনুগ্রহ করে আপগ্রেডের জন্য আপনার প্রশাসকের সাথে যোগাযোগ করুন।"
+ },
+ "BANNER": {
+ "RESPONSES": "আপনি আপনার প্রতিক্রিয়া সীমার ৮০% এর বেশি ব্যবহার করেছেন। Captain AI ব্যবহার চালিয়ে যেতে, অনুগ্রহ করে আপগ্রেড করুন।",
+ "DOCUMENTS": "ডকুমেন্ট সীমা পূর্ণ হয়েছে। Captain AI ব্যবহার চালিয়ে যেতে আপগ্রেড করুন।"
+ },
+ "FORM": {
+ "CANCEL": "বাতিল করুন",
+ "CREATE": "তৈরি করুন",
+ "EDIT": "আপডেট করুন"
+ },
+ "ASSISTANTS": {
+ "HEADER": "সহকারী",
+ "NO_ASSISTANTS_AVAILABLE": "আপনার অ্যাকাউন্টে কোনো সহকারী উপলব্ধ নেই।",
+ "ADD_NEW": "নতুন সহকারী তৈরি করুন",
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে সহকারীটি মুছে ফেলতে চান?",
+ "DESCRIPTION": "এই কাজটি স্থায়ী। এই সহকারীটি মুছে ফেলা হলে এটি সমস্ত সংযুক্ত ইনবক্স থেকে সরিয়ে ফেলা হবে এবং সমস্ত তৈরি জ্ঞান স্থায়ীভাবে মুছে যাবে।",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "সহকারী সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "সহকারী মুছে ফেলতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM_DESCRIPTION": "নীচের বিবরণ পূরণ করে আপনার সহকারীর নাম দিন, এর উদ্দেশ্য বর্ণনা করুন, এবং এটি কোন পণ্য সমর্থন করবে তা নির্দিষ্ট করুন।",
+ "CREATE": {
+ "TITLE": "একটি সহকারী তৈরি করুন",
+ "SUCCESS_MESSAGE": "সহকারী সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "সহকারী তৈরি করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM": {
+ "UPDATE": "আপডেট করুন",
+ "SECTIONS": {
+ "BASIC_INFO": "মৌলিক তথ্য",
+ "SYSTEM_MESSAGES": "সিস্টেম বার্তা",
+ "INSTRUCTIONS": "নির্দেশাবলী",
+ "FEATURES": "বৈশিষ্ট্য",
+ "TOOLS": "সরঞ্জাম "
+ },
+ "NAME": {
+ "LABEL": "নাম",
+ "PLACEHOLDER": "সহকারীর নাম লিখুন",
+ "ERROR": "নাম আবশ্যক"
+ },
+ "TEMPERATURE": {
+ "LABEL": "প্রতিক্রিয়ার তাপমাত্রা",
+ "DESCRIPTION": "সহকারীর প্রতিক্রিয়া কতটা সৃজনশীল বা সীমাবদ্ধ হবে তা সামঞ্জস্য করুন। কম মান আরও কেন্দ্রীভূত এবং নির্ধারিত প্রতিক্রিয়া তৈরি করে, যখন উচ্চ মান আরও সৃজনশীল এবং বৈচিত্র্যময় আউটপুটের অনুমতি দেয়।"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "সহকারীর বর্ণনা লিখুন",
+ "ERROR": "বর্ণনা আবশ্যক"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "পণ্যের নাম",
+ "PLACEHOLDER": "পণ্যের নাম লিখুন",
+ "ERROR": "পণ্যের নাম আবশ্যক"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "স্বাগতম বার্তা",
+ "PLACEHOLDER": "স্বাগতম বার্তা লিখুন"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "হ্যান্ডঅফ বার্তা",
+ "PLACEHOLDER": "হ্যান্ডঅফ বার্তা লিখুন"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "সমাধান বার্তা",
+ "PLACEHOLDER": "সমাধান বার্তা লিখুন"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "নির্দেশাবলী",
+ "PLACEHOLDER": "সহকারীর জন্য নির্দেশাবলী লিখুন"
+ },
+ "FEATURES": {
+ "TITLE": "বৈশিষ্ট্য",
+ "ALLOW_CONVERSATION_FAQS": "সমাধানকৃত কথোপকথন থেকে FAQ তৈরি করুন",
+ "ALLOW_MEMORIES": "গ্রাহক যোগাযোগ থেকে মূল তথ্য স্মৃতিতে ধারণ করুন।",
+ "ALLOW_CITATIONS": "উত্তরে উৎসের উদ্ধৃতি অন্তর্ভুক্ত করুন",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "সহকারী আপডেট করুন",
+ "SUCCESS_MESSAGE": "সহকারী সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "সহকারী আপডেট করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।",
+ "NOT_FOUND": "সহকারী পাওয়া যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "SETTINGS": {
+ "HEADER": "সেটিংস",
+ "BASIC_SETTINGS": {
+ "TITLE": "মৌলিক সেটিংস",
+ "DESCRIPTION": "কথোপকথন শেষ করার সময় বা একজন মানুষের কাছে হস্তান্তর করার সময় সহকারী কী বলে তা কাস্টমাইজ করুন।"
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "সিস্টেম সেটিংস",
+ "DESCRIPTION": "কথোপকথন শেষ করার সময় বা একজন মানুষের কাছে হস্তান্তর করার সময় সহকারী কী বলে তা কাস্টমাইজ করুন।"
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "মজার জিনিস",
+ "DESCRIPTION": "সহকারীকে আরও নিয়ন্ত্রণ যোগ করুন। (একটু ভিজ্যুয়াল, যেমন একটি গল্প: প্রশ্ন রক্ষাকবচ → পরিস্থিতি → আউটপুট) ব্যবহারকারীকে এগুলো ব্যবহার করতে উৎসাহিত করে।",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "গার্ডরেলস",
+ "DESCRIPTION": "কাজ সঠিক পথে রাখে—শুধুমাত্র সেই ধরনের প্রশ্নের উত্তর যা আপনি আপনার সহকারীকে দিতে চান, কিছুই সীমার বাইরে বা বিষয়বস্তুর বাইরে নয়।"
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "প্রতিক্রিয়া নির্দেশিকা",
+ "DESCRIPTION": "আপনার সহকারীর উত্তরগুলোর ভঙ্গি ও গঠন—স্পষ্ট এবং বন্ধুত্বপূর্ণ? সংক্ষিপ্ত এবং প্রাণবন্ত? বিস্তারিত এবং আনুষ্ঠানিক?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "সহকারী মুছুন",
+ "DESCRIPTION": "এই কাজটি স্থায়ী। এই সহকারী মুছে ফেললে এটি সকল সংযুক্ত ইনবক্স থেকে সরিয়ে ফেলা হবে এবং সমস্ত তৈরি হওয়া জ্ঞান স্থায়ীভাবে মুছে যাবে।.",
+ "BUTTON_TEXT": "{assistantName} মুছুন"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "সহকারী সম্পাদনা করুন",
+ "DELETE_ASSISTANT": "সহকারী মুছে ফেলুন",
+ "VIEW_CONNECTED_INBOXES": "সংযুক্ত ইনবক্স দেখুন"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "কোনো সহকারী উপলব্ধ নেই।",
+ "SUBTITLE": "একটি সহকারী তৈরি করুন যা আপনার ব্যবহারকারীদের দ্রুত এবং সঠিক উত্তর প্রদান করবে। এটি আপনার সাহায্য প্রবন্ধ এবং পূর্ববর্তী কথোপকথন থেকে শিখতে পারে।",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain সহকারী",
+ "NOTE": "Captain সহকারী সরাসরি গ্রাহকদের সাথে যোগাযোগ করে, আপনার সাহায্য ডকুমেন্ট এবং পূর্ববর্তী কথোপকথন থেকে শিখে, এবং তাৎক্ষণিক, সঠিক উত্তর প্রদান করে। এটি প্রাথমিক প্রশ্নগুলি পরিচালনা করে দ্রুত সমাধান দেয়, প্রয়োজনে একজন এজেন্টের কাছে হস্তান্তর করে।"
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "গার্ডরেলস",
+ "DESCRIPTION": "কাজ সঠিক পথে রাখে—শুধুমাত্র সেই ধরনের প্রশ্নের উত্তর যা আপনি আপনার সহকারীকে দিতে চান, কিছুই সীমার বাইরে বা বিষয়বস্তুর বাইরে নয়।",
+ "BULK_ACTION": {
+ "SELECTED": "{count} আইটেম নির্বাচিত | {count} আইটেম নির্বাচিত",
+ "SELECT_ALL": "সব নির্বাচন করুন ({count})",
+ "UNSELECT_ALL": "সব নির্বাচন বাতিল করুন ({count})",
+ "BULK_DELETE_BUTTON": "মুছে ফেলুন"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "উদাহরণ গার্ডরেলস",
+ "ADD": "সবগুলো যোগ করুন",
+ "ADD_SINGLE": "এটি যোগ করুন",
+ "SAVE": "যোগ করুন এবং সংরক্ষণ করুন (↵)",
+ "PLACEHOLDER": "আরেকটি গার্ডরেল টাইপ করুন..."
+ },
+ "NEW": {
+ "TITLE": "একটি গার্ডরেল যোগ করুন",
+ "CREATE": "তৈরি করুন",
+ "CANCEL": "বাতিল করুন",
+ "PLACEHOLDER": "আরেকটি গার্ডরেল টাইপ করুন...",
+ "TEST_ALL": "সব পরীক্ষা করুন"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "অনুসন্ধান করুন..."
+ },
+ "EMPTY_MESSAGE": "কোন গার্ডরেল পাওয়া যায়নি। শুরু করতে উদাহরণ তৈরি করুন বা যোগ করুন।",
+ "SEARCH_EMPTY_MESSAGE": "এই অনুসন্ধানের জন্য কোন গার্ডরেল পাওয়া যায়নি।",
+ "API": {
+ "ADD": {
+ "SUCCESS": "গার্ডরেল সফলভাবে যোগ করা হয়েছে।",
+ "ERROR": "গার্ডরেল যোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "UPDATE": {
+ "SUCCESS": "গার্ডরেল সফলভাবে আপডেট হয়েছে।",
+ "ERROR": "গার্ডরেল আপডেট করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "DELETE": {
+ "SUCCESS": "গার্ডরেল সফলভাবে মুছে ফেলা হয়েছে।",
+ "ERROR": "গার্ডরেল মুছে ফেলতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "প্রতিক্রিয়া নির্দেশিকা",
+ "DESCRIPTION": "আপনার সহকারীর উত্তরগুলোর ভঙ্গি ও গঠন—স্পষ্ট এবং বন্ধুত্বপূর্ণ? সংক্ষিপ্ত এবং প্রাণবন্ত? বিস্তারিত এবং আনুষ্ঠানিক?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} আইটেম নির্বাচিত | {count} আইটেম নির্বাচিত",
+ "SELECT_ALL": "সব নির্বাচন করুন ({count})",
+ "UNSELECT_ALL": "সব নির্বাচন বাতিল করুন ({count})",
+ "BULK_DELETE_BUTTON": "মুছে ফেলুন"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "উদাহরণ প্রতিক্রিয়া নির্দেশিকা",
+ "ADD": "সব যোগ করুন",
+ "ADD_SINGLE": "এটি যোগ করুন",
+ "SAVE": "যোগ করুন এবং সংরক্ষণ করুন (↵)",
+ "PLACEHOLDER": "আরেকটি প্রতিক্রিয়া নির্দেশিকা টাইপ করুন..."
+ },
+ "NEW": {
+ "TITLE": "একটি প্রতিক্রিয়া নির্দেশিকা যোগ করুন",
+ "CREATE": "তৈরি করুন",
+ "CANCEL": "বাতিল করুন",
+ "PLACEHOLDER": "আরেকটি প্রতিক্রিয়া নির্দেশিকা টাইপ করুন...",
+ "TEST_ALL": "সব পরীক্ষা করুন"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "অনুসন্ধান করুন..."
+ },
+ "EMPTY_MESSAGE": "কোন প্রতিক্রিয়া নির্দেশিকা পাওয়া যায়নি। শুরু করতে উদাহরণ তৈরি করুন বা যোগ করুন।",
+ "SEARCH_EMPTY_MESSAGE": "এই অনুসন্ধানের জন্য কোন প্রতিক্রিয়া নির্দেশিকা পাওয়া যায়নি।",
+ "API": {
+ "ADD": {
+ "SUCCESS": "প্রতিক্রিয়া নির্দেশিকা সফলভাবে যোগ করা হয়েছে।",
+ "ERROR": "প্রতিক্রিয়া নির্দেশিকা যোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "UPDATE": {
+ "SUCCESS": "প্রতিক্রিয়া নির্দেশিকা সফলভাবে আপডেট হয়েছে।",
+ "ERROR": "প্রতিক্রিয়া নির্দেশিকা আপডেট করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "DELETE": {
+ "SUCCESS": "প্রতিক্রিয়া নির্দেশিকা সফলভাবে মুছে ফেলা হয়েছে।",
+ "ERROR": "প্রতিক্রিয়া নির্দেশিকা মুছে ফেলতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "পরিস্থিতি",
+ "DESCRIPTION": "আপনার সহকারীকে কিছু প্রেক্ষাপট দিন—যেমন “যখন ব্যবহারকারী আটকে যায় তখন কী করতে হবে,” অথবা “রিফান্ড অনুরোধের সময় কীভাবে আচরণ করতে হবে।”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} আইটেম নির্বাচিত | {count} আইটেম নির্বাচিত",
+ "SELECT_ALL": "সবগুলো নির্বাচন করুন ({count})",
+ "UNSELECT_ALL": "সবগুলো নির্বাচন বাতিল করুন ({count})",
+ "BULK_DELETE_BUTTON": "মুছে ফেলুন"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "উদাহরণ পরিস্থিতি",
+ "ADD": "সবগুলো যোগ করুন",
+ "ADD_SINGLE": "এটি যোগ করুন",
+ "TOOLS_USED": "ব্যবহৃত সরঞ্জাম:"
+ },
+ "NEW": {
+ "CREATE": "একটি পরিস্থিতি যোগ করুন",
+ "TITLE": "একটি পরিস্থিতি তৈরি করুন",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "শিরোনাম",
+ "PLACEHOLDER": "পরিস্থিতির জন্য একটি নাম লিখুন",
+ "ERROR": "পরিস্থিতির নাম আবশ্যক"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "এই পরিস্থিতি কীভাবে এবং কোথায় ব্যবহার হবে তা বর্ণনা করুন",
+ "ERROR": "পরিস্থিতির বর্ণনা আবশ্যক"
+ },
+ "INSTRUCTION": {
+ "LABEL": "কীভাবে পরিচালনা করবেন",
+ "PLACEHOLDER": "এই পরিস্থিতি কীভাবে এবং কোথায় পরিচালনা করা হবে তা বর্ণনা করুন",
+ "ERROR": "পরিস্থিতির বিষয়বস্তু আবশ্যক"
+ },
+ "CREATE": "তৈরি করুন",
+ "CANCEL": "বাতিল করুন"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "বাতিল করুন",
+ "UPDATE": "পরিবর্তন আপডেট করুন"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "অনুসন্ধান করুন..."
+ },
+ "EMPTY_MESSAGE": "কোনো দৃশ্যপট পাওয়া যায়নি। শুরু করতে উদাহরণ তৈরি করুন বা যোগ করুন।.",
+ "SEARCH_EMPTY_MESSAGE": "এই অনুসন্ধানের জন্য কোনো দৃশ্যপট পাওয়া যায়নি।.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "দৃশ্যপট সফলভাবে যোগ করা হয়েছে",
+ "ERROR": "দৃশ্যপট যোগ করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।."
+ },
+ "UPDATE": {
+ "SUCCESS": "দৃশ্যপট সফলভাবে আপডেট হয়েছে",
+ "ERROR": "দৃশ্যপট আপডেট করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।."
+ },
+ "DELETE": {
+ "SUCCESS": "দৃশ্যপট সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR": "দৃশ্যপট মুছে ফেলতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "নথিপত্র",
+ "ADD_NEW": "নতুন নথি তৈরি করুন",
+ "SELECTED": "{count} নির্বাচিত",
+ "SELECT_ALL": "সব নির্বাচন করুন ({count})",
+ "UNSELECT_ALL": "সব নির্বাচন বাতিল করুন ({count})",
+ "BULK_DELETE_BUTTON": "মুছে ফেলুন",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "হ্যাঁ, সব মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "ব্যর্থ"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "পৃষ্ঠা খুঁজে পাওয়া যায়নি",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "সম্পর্কিত FAQ",
+ "DESCRIPTION": "এই FAQ গুলো সরাসরি ডকুমেন্ট থেকে তৈরি হয়েছে।"
+ },
+ "FORM_DESCRIPTION": "নথির URL প্রবেশ করান যাতে এটি একটি জ্ঞান উৎস হিসেবে যোগ করা যায় এবং এটি কোন সহকারীর সাথে যুক্ত হবে তা নির্বাচন করুন।",
+ "CREATE": {
+ "TITLE": "একটি নথি যোগ করুন",
+ "SUCCESS_MESSAGE": "নথি সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "নথি তৈরি করতে সমস্যা হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "ডকুমেন্টের ধরন",
+ "URL": "URL",
+ "PDF": "PDF ফাইল"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "নথির URL প্রবেশ করান",
+ "ERROR": "অনুগ্রহ করে নথির জন্য একটি বৈধ URL প্রদান করুন"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF ফাইল",
+ "CHOOSE_FILE": "PDF ফাইল নির্বাচন করুন",
+ "ERROR": "অনুগ্রহ করে একটি PDF ফাইল নির্বাচন করুন",
+ "HELP_TEXT": "সর্বাধিক ফাইল সাইজ: ১০MB",
+ "INVALID_TYPE": "অনুগ্রহ করে একটি বৈধ PDF ফাইল নির্বাচন করুন",
+ "TOO_LARGE": "ফাইলের আকার ১০MB সীমা অতিক্রম করেছে"
+ },
+ "NAME": {
+ "LABEL": "ডকুমেন্টের নাম (ঐচ্ছিক)",
+ "PLACEHOLDER": "ডকুমেন্টের জন্য একটি নাম লিখুন"
+ }
+ },
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে নথিটি মুছে ফেলতে চান?",
+ "DESCRIPTION": "এই কাজটি স্থায়ী। এই নথিটি মুছে ফেলা হলে সমস্ত তৈরি জ্ঞান স্থায়ীভাবে মুছে যাবে।",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "নথিটি সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "নথি মুছে ফেলতে একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "সম্পর্কিত উত্তরসমূহ দেখুন",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "নথি মুছে ফেলুন"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "কোনো ডকুমেন্ট উপলব্ধ নেই।",
+ "SUBTITLE": "ডকুমেন্টগুলি আপনার সহকারীকে FAQ তৈরি করতে ব্যবহৃত হয়। আপনি আপনার সহকারীর জন্য প্রাসঙ্গিকতা দিতে ডকুমেন্ট আমদানি করতে পারেন।",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "ক্যাপ্টেন ডকুমেন্ট",
+ "NOTE": "ক্যাপ্টেনে একটি ডকুমেন্ট সহকারী জন্য জ্ঞান সম্পদ হিসেবে কাজ করে। আপনার হেল্প সেন্টার বা গাইড সংযুক্ত করে, ক্যাপ্টেন বিষয়বস্তু বিশ্লেষণ করতে পারে এবং গ্রাহকের প্রশ্নের জন্য সঠিক উত্তর প্রদান করে।"
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "টুলস",
+ "ADD_NEW": "নতুন টুল তৈরি করুন",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "কোনো কাস্টম টুল নেই",
+ "SUBTITLE": "আপনার অ্যাসিস্ট্যান্টকে বাহ্যিক API ও সার্ভিসের সাথে সংযুক্ত করতে কাস্টম টুল তৈরি করুন, যাতে এটি আপনার পক্ষ থেকে ডেটা সংগ্রহ ও বিভিন্ন কাজ করতে পারে।.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "কাস্টম টুলস",
+ "NOTE": "কাস্টম টুলের মাধ্যমে আপনার অ্যাসিস্ট্যান্ট বাহ্যিক API ও সার্ভিসের সাথে ইন্টারঅ্যাক্ট করতে পারে। ডেটা সংগ্রহ, কাজ সম্পাদন বা আপনার বিদ্যমান সিস্টেমের সাথে ইন্টিগ্রেশনের জন্য টুল তৈরি করুন, যাতে অ্যাসিস্ট্যান্টের সক্ষমতা বাড়ে।."
+ }
+ },
+ "FORM_DESCRIPTION": "আপনার কাস্টম টুলটি বাহ্যিক API-র সাথে সংযোগ করতে কনফিগার করুন",
+ "OPTIONS": {
+ "EDIT_TOOL": "টুল সম্পাদনা করুন",
+ "DELETE_TOOL": "টুল মুছুন"
+ },
+ "CREATE": {
+ "TITLE": "কাস্টম টুল তৈরি করুন",
+ "SUCCESS_MESSAGE": "কাস্টম টুল সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "কাস্টম টুল তৈরি করতে ব্যর্থ হয়েছে"
+ },
+ "EDIT": {
+ "TITLE": "কাস্টম টুল সম্পাদনা করুন",
+ "SUCCESS_MESSAGE": "কাস্টম টুল সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "কাস্টম টুল আপডেট করতে ব্যর্থ হয়েছে"
+ },
+ "DELETE": {
+ "TITLE": "কাস্টম টুল মুছুন",
+ "DESCRIPTION": "আপনি কি নিশ্চিত যে আপনি এই কাস্টম টুলটি মুছে ফেলতে চান? এই কাজটি আর ফিরিয়ে আনা যাবে না।.",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "কাস্টম টুল সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "কাস্টম টুল মুছে ফেলা যায়নি"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "টুলের নাম",
+ "PLACEHOLDER": "অর্ডার অনুসন্ধান",
+ "ERROR": "টুলের নাম আবশ্যক",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা",
+ "PLACEHOLDER": "অর্ডার আইডি দ্বারা অর্ডারের বিস্তারিত খোঁজা হয়"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "পদ্ধতি"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "এন্ডপয়েন্ট URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "বৈধ URL প্রয়োজন"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "প্রমাণীকরণ ধরণ"
+ },
+ "AUTH_TYPES": {
+ "NONE": "কিছুই নয়",
+ "BEARER": "Bearer Token",
+ "BASIC": "বেসিক অথ",
+ "API_KEY": "API কী"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "আপনার বেয়ারার টোকেন লিখুন",
+ "USERNAME": "ইউজারনেম",
+ "USERNAME_PLACEHOLDER": "ইউজারনেম লিখুন",
+ "PASSWORD": "পাসওয়ার্ড",
+ "PASSWORD_PLACEHOLDER": "পাসওয়ার্ড লিখুন",
+ "API_KEY": "হেডার নাম",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "হেডার মান",
+ "API_VALUE_PLACEHOLDER": "API কী-এর মান লিখুন"
+ },
+ "PARAMETERS": {
+ "LABEL": "প্যারামিটার",
+ "HELP_TEXT": "ব্যবহারকারীর প্রশ্ন থেকে যেসব প্যারামিটার বের করা হবে, সেগুলো নির্ধারণ করুন"
+ },
+ "ADD_PARAMETER": "প্যারামিটার যোগ করুন",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "প্যারামিটারের নাম (যেমন, order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "টাইপ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "স্ট্রিং",
+ "NUMBER": "সংখ্যা",
+ "BOOLEAN": "বুলিয়ান",
+ "ARRAY": "অ্যারে",
+ "OBJECT": "অবজেক্ট"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "প্যারামিটারের বিবরণ"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "আবশ্যক"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "রিকোয়েস্ট বডি টেমপ্লেট (ঐচ্ছিক)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "রেসপন্স টেমপ্লেট (ঐচ্ছিক)",
+ "PLACEHOLDER": "অর্ডার {'{{'} order_id {'}}'} স্ট্যাটাস: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "প্যারামিটার নাম আবশ্যক"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "বিচারাধীন FAQ",
+ "ADD_NEW": "নতুন FAQ তৈরি করুন",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "কথোপকথন #{id}"
+ },
+ "SELECTED": "{count} নির্বাচিত",
+ "SELECT_ALL": "সব নির্বাচন করুন ({count})",
+ "UNSELECT_ALL": "সব নির্বাচন বাতিল করুন ({count})",
+ "SEARCH_PLACEHOLDER": "FAQ অনুসন্ধান করুন...",
+ "BULK_APPROVE_BUTTON": "অনুমোদন করুন",
+ "BULK_DELETE_BUTTON": "মুছে ফেলুন",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQ সফলভাবে অনুমোদিত হয়েছে।",
+ "ERROR_MESSAGE": "FAQ অনুমোদন করতে গিয়ে একটি ত্রুটি ঘটেছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "BULK_DELETE": {
+ "TITLE": "FAQ মুছে ফেলবেন?",
+ "DESCRIPTION": "আপনি কি নিশ্চিত যে নির্বাচিত FAQ গুলো মুছে ফেলতে চান? এই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না।",
+ "CONFIRM": "হ্যাঁ, সব মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "FAQ সফলভাবে মুছে ফেলা হয়েছে।",
+ "ERROR_MESSAGE": "FAQ মুছে ফেলতে গিয়ে একটি ত্রুটি ঘটেছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে FAQ মুছে ফেলতে চান?",
+ "DESCRIPTION": "",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "FAQ সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "FAQ মুছে ফেলতে একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FILTER": {
+ "ASSISTANT": "সহকারী: {selected}",
+ "STATUS": "অবস্থা: {selected}",
+ "ALL_ASSISTANTS": "সব"
+ },
+ "STATUS": {
+ "TITLE": "অবস্থা",
+ "PENDING": "অপেক্ষমাণ",
+ "APPROVED": "অনুমোদিত",
+ "ALL": "সব"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain কিছু FAQ খুঁজে পেয়েছে যা আপনার গ্রাহকরা খুঁজছিলেন।.",
+ "ACTION": "পর্যালোচনার জন্য এখানে ক্লিক করুন"
+ },
+ "FORM_DESCRIPTION": "একটি প্রশ্ন এবং তার সংশ্লিষ্ট উত্তর জ্ঞানভাণ্ডারে যোগ করুন এবং যে সহকারীটির সাথে এটি যুক্ত হবে তা নির্বাচন করুন।",
+ "CREATE": {
+ "TITLE": "একটি FAQ যোগ করুন",
+ "SUCCESS_MESSAGE": "প্রতিক্রিয়া সফলভাবে যোগ করা হয়েছে।",
+ "ERROR_MESSAGE": "প্রতিক্রিয়া যোগ করার সময় একটি ত্রুটি ঘটেছে। অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "প্রশ্ন",
+ "PLACEHOLDER": "এখানে প্রশ্ন লিখুন",
+ "ERROR": "একটি বৈধ প্রশ্ন প্রদান করুন।"
+ },
+ "ANSWER": {
+ "LABEL": "উত্তর",
+ "PLACEHOLDER": "এখানে উত্তর লিখুন",
+ "ERROR": "একটি বৈধ উত্তর প্রদান করুন।"
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ আপডেট করুন",
+ "SUCCESS_MESSAGE": "FAQ সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "FAQ আপডেট করতে গিয়ে একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ অনুমোদিত হিসেবে চিহ্নিত হয়েছে।"
+ },
+ "OPTIONS": {
+ "APPROVE": "অনুমোদন করুন",
+ "EDIT_RESPONSE": "সম্পাদনা করুন",
+ "DELETE_RESPONSE": "মুছে ফেলুন"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "কোনো FAQ পাওয়া যায়নি।",
+ "NO_PENDING_TITLE": "আর কোনো বিচারাধীন FAQ নেই পর্যালোচনার জন্য",
+ "SUBTITLE": "FAQ গুলো আপনার সহকারীকে গ্রাহকদের প্রশ্নের দ্রুত এবং সঠিক উত্তর দিতে সাহায্য করে। এগুলো স্বয়ংক্রিয়ভাবে আপনার বিষয়বস্তু থেকে তৈরি হতে পারে অথবা ম্যানুয়ালি যোগ করা যেতে পারে।",
+ "CLEAR_SEARCH": "সক্রিয় ফিল্টারসমূহ মুছুন",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "ক্যাপ্টেন FAQ",
+ "NOTE": "ক্যাপ্টেন FAQ সাধারণ গ্রাহক প্রশ্ন সনাক্ত করে—আপনার জ্ঞানভাণ্ডারে অনুপস্থিত বা প্রায়ই জিজ্ঞাসিত—এবং প্রাসঙ্গিক FAQ তৈরি করে সহায়তা উন্নত করার জন্য। আপনি প্রতিটি প্রস্তাব পর্যালোচনা করে অনুমোদন বা প্রত্যাখ্যান করতে পারেন।"
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "সংযুক্ত ইনবক্স",
+ "ADD_NEW": "নতুন একটি ইনবক্স সংযুক্ত করুন",
+ "OPTIONS": {
+ "DISCONNECT": "সংযোগ বিচ্ছিন্ন করুন"
+ },
+ "DELETE": {
+ "TITLE": "আপনি কি নিশ্চিত যে ইনবক্সটি সংযোগ বিচ্ছিন্ন করতে চান?",
+ "DESCRIPTION": "",
+ "CONFIRM": "হ্যাঁ, মুছে ফেলুন",
+ "SUCCESS_MESSAGE": "ইনবক্স সফলভাবে সংযোগ বিচ্ছিন্ন হয়েছে।",
+ "ERROR_MESSAGE": "ইনবক্স সংযোগ বিচ্ছিন্ন করতে একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM_DESCRIPTION": "সহকারীর সাথে সংযোগ করার জন্য একটি ইনবক্স নির্বাচন করুন।",
+ "CREATE": {
+ "TITLE": "একটি ইনবক্স সংযুক্ত করুন",
+ "SUCCESS_MESSAGE": "ইনবক্স সফলভাবে সংযুক্ত হয়েছে।",
+ "ERROR_MESSAGE": "ইনবক্স সংযুক্ত করতে একটি ত্রুটি হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "ইনবক্স",
+ "PLACEHOLDER": "সহকারী মোতায়েন করার জন্য ইনবক্স নির্বাচন করুন।",
+ "ERROR": "ইনবক্স নির্বাচন আবশ্যক।"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "কোনো সংযুক্ত ইনবক্স নেই।",
+ "SUBTITLE": "একটি ইনবক্স সংযোগ করলে সহকারী আপনার গ্রাহকদের প্রাথমিক প্রশ্নগুলি পরিচালনা করতে পারে, তারপর প্রয়োজনে আপনাকে হস্তান্তর করে।"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json
new file mode 100644
index 000000000..96e272e46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/labelsMgmt.json
@@ -0,0 +1,89 @@
+{
+ "LABEL_MGMT": {
+ "HEADER": "Labels",
+ "HEADER_BTN_TXT": "Add label",
+ "LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
+ "SEARCH_404": "There are no items matching this query",
+ "LIST": {
+ "404": "There are no labels available in this account.",
+ "TITLE": "Manage labels",
+ "DESC": "Labels let you group the conversations together.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Label Name",
+ "PLACEHOLDER": "Label name",
+ "REQUIRED_ERROR": "Label name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Label Description"
+ },
+ "COLOR": {
+ "LABEL": "Color"
+ },
+ "SHOW_ON_SIDEBAR": {
+ "LABEL": "Show label on sidebar"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "SUGGESTIONS": {
+ "TOOLTIP": {
+ "SINGLE_SUGGESTION": "Add label to conversation",
+ "MULTIPLE_SUGGESTION": "Select this label",
+ "DESELECT": "Deselect label",
+ "DISMISS": "Dismiss suggestion"
+ },
+ "POWERED_BY": "Chatwoot AI",
+ "DISMISS": "Dismiss",
+ "ADD_SELECTED_LABELS": "Add selected labels",
+ "ADD_SELECTED_LABEL": "Add selected label",
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
+ },
+ "ADD": {
+ "TITLE": "Add label",
+ "DESC": "Labels let you group the conversations together.",
+ "API": {
+ "SUCCESS_MESSAGE": "Label added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit label",
+ "API": {
+ "SUCCESS_MESSAGE": "Label updated successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Label deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/login.json b/app/javascript/dashboard/i18n/locale/bn/login.json
new file mode 100644
index 000000000..061284247
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/login.json
@@ -0,0 +1,41 @@
+{
+ "LOGIN": {
+ "TITLE": "Login to Chatwoot",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "example{'@'}companyname.com",
+ "ERROR": "Please enter a valid email address"
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Login successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
+ "UNAUTH": "Username or password is incorrect. Please try again."
+ },
+ "OAUTH": {
+ "GOOGLE_LOGIN": "Login with Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
+ "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ },
+ "FORGOT_PASSWORD": "Forgot your password?",
+ "CREATE_NEW_ACCOUNT": "Create a new account",
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/macros.json b/app/javascript/dashboard/i18n/locale/bn/macros.json
new file mode 100644
index 000000000..e51975921
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/macros.json
@@ -0,0 +1,121 @@
+{
+ "MACROS": {
+ "HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "Add a new macro",
+ "HEADER_BTN_TXT_SAVE": "Save macro",
+ "LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "Something went wrong. Please try again",
+ "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "ADD": {
+ "FORM": {
+ "NAME": {
+ "LABEL": "Macro name",
+ "PLACEHOLDER": "Enter a name for your macro",
+ "ERROR": "Name is required for creating a macro"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro added successfully",
+ "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
+ "404": "No macros found"
+ },
+ "DELETE": {
+ "TOOLTIP": "Delete macro",
+ "CONFIRM": {
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete",
+ "NO": "No"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ }
+ },
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
+ "EDIT": {
+ "TOOLTIP": "Edit macro",
+ "API": {
+ "SUCCESS_MESSAGE": "Macro updated successfully",
+ "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ }
+ },
+ "EDITOR": {
+ "START_FLOW": "Start Flow",
+ "END_FLOW": "End Flow",
+ "LOADING": "Fetching macro",
+ "ADD_BTN_TOOLTIP": "Add new action",
+ "DELETE_BTN_TOOLTIP": "Delete Action",
+ "VISIBILITY": {
+ "LABEL": "Macro Visibility",
+ "GLOBAL": {
+ "LABEL": "Public",
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
+ },
+ "PERSONAL": {
+ "LABEL": "Private",
+ "DESCRIPTION": "This macro will be private to you and not be available to others."
+ }
+ }
+ },
+ "EXECUTE": {
+ "BUTTON_TOOLTIP": "Execute",
+ "PREVIEW": "Preview Macro",
+ "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/mfa.json b/app/javascript/dashboard/i18n/locale/bn/mfa.json
new file mode 100644
index 000000000..e87177daf
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "দ্বি-স্তরীয় প্রমাণীকরণ",
+ "SUBTITLE": "TOTP-ভিত্তিক প্রমাণীকরণের মাধ্যমে আপনার অ্যাকাউন্টকে অননুমোদিত প্রবেশ থেকে সুরক্ষিত করুন। এটি আপনার অ্যাকাউন্টে অতিরিক্ত নিরাপত্তা যোগ করে.",
+ "DESCRIPTION": "সময়-ভিত্তিক একবারের পাসওয়ার্ড (TOTP) ব্যবহার করে আপনার অ্যাকাউন্টে অতিরিক্ত নিরাপত্তা যোগ করুন",
+ "STATUS_TITLE": "প্রমাণীকরণের অবস্থা",
+ "STATUS_DESCRIPTION": "আপনার দ্বি-স্তরীয় প্রমাণীকরণ সেটিংস এবং ব্যাকআপ পুনরুদ্ধার কোডগুলি পরিচালনা করুন",
+ "ENABLED": "সক্রিয়",
+ "DISABLED": "নিষ্ক্রিয়",
+ "STATUS_ENABLED": "দ্বি-স্তরীয় প্রমাণীকরণ সক্রিয় আছে",
+ "STATUS_ENABLED_DESC": "আপনার অ্যাকাউন্ট অতিরিক্ত নিরাপত্তা স্তর দ্বারা সুরক্ষিত",
+ "ENABLE_BUTTON": "দ্বি-স্তরীয় প্রমাণীকরণ চালু করুন",
+ "ENHANCE_SECURITY": "আপনার অ্যাকাউন্টের নিরাপত্তা বৃদ্ধি করুন",
+ "ENHANCE_SECURITY_DESC": "দ্বি-স্তরীয় প্রমাণীকরণ আপনার নিরাপত্তা আরও বাড়ায়, কারণ এটি আপনার পাসওয়ার্ডের পাশাপাশি আপনার authenticator অ্যাপ থেকে একটি যাচাইকরণ কোড চায়.",
+ "SETUP": {
+ "STEP_NUMBER_1": "১",
+ "STEP_NUMBER_2": "২",
+ "STEP1_TITLE": "আপনার Authenticator অ্যাপ দিয়ে QR কোড স্ক্যান করুন",
+ "STEP1_DESCRIPTION": "Google Authenticator, Authy, অথবা যেকোনো TOTP-সামঞ্জস্যপূর্ণ অ্যাপ ব্যবহার করুন",
+ "LOADING_QR": "লোড হচ্ছে...",
+ "MANUAL_ENTRY": "স্ক্যান করতে পারছেন না? কোডটি ম্যানুয়ালি লিখুন",
+ "SECRET_KEY": "সিক্রেট কী",
+ "COPY": "কপি করুন",
+ "ENTER_CODE": "আপনার অথেন্টিকেটর অ্যাপ থেকে ৬-সংখ্যার কোডটি লিখুন",
+ "ENTER_CODE_PLACEHOLDER": "০০০০০০",
+ "VERIFY_BUTTON": "যাচাই করুন ও চালিয়ে যান",
+ "CANCEL": "বাতিল করুন",
+ "ERROR_STARTING": "MFA সক্রিয় নয়। অনুগ্রহ করে প্রশাসকের সাথে যোগাযোগ করুন.",
+ "INVALID_CODE": "ভুল যাচাইকরণ কোড",
+ "SECRET_COPIED": "সিক্রেট কী ক্লিপবোর্ডে কপি করা হয়েছে",
+ "SUCCESS": "দ্বৈত-ধাপ যাচাইকরণ সফলভাবে সক্রিয় করা হয়েছে"
+ },
+ "BACKUP": {
+ "TITLE": "আপনার ব্যাকআপ কোড সংরক্ষণ করুন",
+ "DESCRIPTION": "এই কোডগুলো নিরাপদে রাখুন। আপনার অথেন্টিকেটরে প্রবেশ হারালে প্রতিটি কোড একবার করে ব্যবহার করা যাবে",
+ "IMPORTANT": "গুরুত্বপূর্ণ:",
+ "IMPORTANT_NOTE": " এই কোডগুলো নিরাপদ স্থানে সংরক্ষণ করুন। আপনি এগুলো আর দেখতে পারবেন না.",
+ "DOWNLOAD": "ডাউনলোড করুন",
+ "COPY_ALL": "সব কপি করুন",
+ "CONFIRM": "আমি আমার ব্যাকআপ কোডগুলো নিরাপদ স্থানে সংরক্ষণ করেছি এবং বুঝতে পেরেছি যে এগুলো আমি আর দেখতে পারব না",
+ "COMPLETE_SETUP": "সেটআপ সম্পন্ন করুন",
+ "CODES_COPIED": "ব্যাকআপ কোডগুলো ক্লিপবোর্ডে কপি করা হয়েছে"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "ব্যাকআপ কোড",
+ "BACKUP_CODES_DESC": "আপনার বিদ্যমান কোডগুলো হারিয়ে গেলে বা ব্যবহার হয়ে গেলে নতুন কোড তৈরি করুন",
+ "REGENERATE": "ব্যাকআপ কোড পুনরায় তৈরি করুন",
+ "DISABLE_MFA": "২এফএ নিষ্ক্রিয় করুন",
+ "DISABLE_MFA_DESC": "আপনার অ্যাকাউন্ট থেকে দুই-ধাপ যাচাইকরণ সরান",
+ "DISABLE_BUTTON": "দুই-ধাপ যাচাইকরণ নিষ্ক্রিয় করুন"
+ },
+ "DISABLE": {
+ "TITLE": "দুই-ধাপ যাচাইকরণ নিষ্ক্রিয় করুন",
+ "DESCRIPTION": "দুই-ধাপ যাচাইকরণ নিষ্ক্রিয় করতে আপনাকে আপনার পাসওয়ার্ড এবং একটি যাচাইকরণ কোড প্রবেশ করতে হবে.",
+ "PASSWORD": "পাসওয়ার্ড",
+ "OTP_CODE": "ভেরিফিকেশন কোড",
+ "OTP_CODE_PLACEHOLDER": "০০০০০০",
+ "BACKUP_CODE": "ব্যাকআপ কোড",
+ "BACKUP_CODE_PLACEHOLDER": "আপনার ব্যাকআপ কোডগুলোর মধ্যে একটি লিখুন",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "2FA নিষ্ক্রিয় করুন",
+ "CANCEL": "বাতিল করুন",
+ "SUCCESS": "টু-ফ্যাক্টর অথেন্টিকেশন নিষ্ক্রিয় করা হয়েছে",
+ "ERROR": "MFA নিষ্ক্রিয় করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আপনার শংসাপত্র যাচাই করুন."
+ },
+ "REGENERATE": {
+ "TITLE": "ব্যাকআপ কোড পুনরায় তৈরি করুন",
+ "DESCRIPTION": "এটি আপনার বর্তমান ব্যাকআপ কোডসমূহ বাতিল করবে এবং নতুন কোড তৈরি করবে। চালিয়ে যেতে আপনার যাচাইকরণ কোড দিন.",
+ "OTP_CODE": "যাচাইকরণ কোড",
+ "OTP_CODE_PLACEHOLDER": "০০০০০০",
+ "CONFIRM": "নতুন কোড তৈরি করুন",
+ "CANCEL": "বাতিল করুন",
+ "NEW_CODES_TITLE": "নতুন ব্যাকআপ কোড তৈরি হয়েছে",
+ "NEW_CODES_DESC": "আপনার পুরোনো ব্যাকআপ কোডগুলো বাতিল করা হয়েছে। এই নতুন কোডগুলো নিরাপদ স্থানে সংরক্ষণ করুন.",
+ "CODES_IMPORTANT": "গুরুত্বপূর্ণ:",
+ "CODES_IMPORTANT_NOTE": " প্রতিটি কোড শুধুমাত্র একবার ব্যবহার করা যাবে। এই উইন্ডো বন্ধ করার আগে কোডগুলো সংরক্ষণ করুন.",
+ "DOWNLOAD_CODES": "কোড ডাউনলোড করুন",
+ "COPY_ALL_CODES": "সব কোড কপি করুন",
+ "CODES_SAVED": "আমি আমার কোডগুলো সংরক্ষণ করেছি",
+ "SUCCESS": "নতুন ব্যাকআপ কোড তৈরি হয়েছে",
+ "ERROR": "ব্যাকআপ কোড পুনরায় তৈরি করতে ব্যর্থ হয়েছে"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "দ্বি-স্তরীয় প্রমাণীকরণ",
+ "DESCRIPTION": "চালিয়ে যেতে আপনার যাচাইকরণ কোড দিন",
+ "AUTHENTICATOR_APP": "অথেন্টিকেটর অ্যাপ",
+ "BACKUP_CODE": "ব্যাকআপ কোড",
+ "ENTER_OTP_CODE": "আপনার authenticator অ্যাপ থেকে ৬-সংখ্যার কোডটি লিখুন",
+ "ENTER_BACKUP_CODE": "আপনার ব্যাকআপ কোডগুলোর মধ্যে একটি লিখুন",
+ "BACKUP_CODE_PLACEHOLDER": "০০০০০০",
+ "VERIFY_BUTTON": "যাচাই করুন",
+ "TRY_ANOTHER_METHOD": "অন্য একটি যাচাইকরণ পদ্ধতি চেষ্টা করুন",
+ "CANCEL_LOGIN": "বাতিল করুন এবং লগইন পৃষ্ঠায় ফিরে যান",
+ "HELP_TEXT": "সাইন ইন করতে সমস্যা হচ্ছে?",
+ "LEARN_MORE": "2FA সম্পর্কে আরও জানুন",
+ "HELP_MODAL": {
+ "TITLE": "টু-ফ্যাক্টর অথেন্টিকেশন সহায়তা",
+ "AUTHENTICATOR_TITLE": "অথেন্টিকেটর অ্যাপ ব্যবহার করা হচ্ছে",
+ "AUTHENTICATOR_DESC": "আপনার authenticator অ্যাপ (Google Authenticator, Authy, ইত্যাদি) খুলুন এবং আপনার অ্যাকাউন্টের জন্য দেখানো ৬-সংখ্যার কোডটি লিখুন.",
+ "BACKUP_TITLE": "ব্যাকআপ কোড ব্যবহার করুন",
+ "BACKUP_DESC": "যদি আপনার authenticator অ্যাপে প্রবেশাধিকার না থাকে, তাহলে 2FA সেটআপ করার সময় সংরক্ষণ করা ব্যাকআপ কোডগুলোর যেকোনো একটি ব্যবহার করতে পারেন। প্রতিটি কোড কেবল একবারই ব্যবহার করা যাবে.",
+ "CONTACT_TITLE": "আরও সাহায্য দরকার?",
+ "CONTACT_DESC_CLOUD": "আপনি যদি আপনার authenticator অ্যাপ এবং ব্যাকআপ কোড দুটোই হারিয়ে ফেলেন, তাহলে সহায়তার জন্য অনুগ্রহ করে Chatwoot সাপোর্ট টিমের সাথে যোগাযোগ করুন.",
+ "CONTACT_DESC_SELF_HOSTED": "আপনি যদি আপনার authenticator অ্যাপ এবং ব্যাকআপ কোড দুটোই হারিয়ে ফেলেন, সহায়তার জন্য অনুগ্রহ করে আপনার অ্যাডমিনিস্ট্রেটরের সাথে যোগাযোগ করুন."
+ },
+ "VERIFICATION_FAILED": "ভেরিফিকেশন ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/onboarding.json b/app/javascript/dashboard/i18n/locale/bn/onboarding.json
new file mode 100644
index 000000000..73130cfcd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "ওয়েবসাইট",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "সময় অঞ্চল",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "টাইমজোন নির্বাচন করুন",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "চালিয়ে যান",
+ "SAVING": "সংরক্ষণ হচ্ছে...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/report.json b/app/javascript/dashboard/i18n/locale/bn/report.json
new file mode 100644
index 000000000..c64c2edef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/report.json
@@ -0,0 +1,650 @@
+{
+ "REPORT": {
+ "HEADER": "কথোপকথন",
+ "LOADING_CHART": "চার্ট ডেটা লোড হচ্ছে...",
+ "NO_ENOUGH_DATA": "রিপোর্ট তৈরি করার জন্য যথেষ্ট ডেটা নেই, পরে আবার চেষ্টা করুন।",
+ "DOWNLOAD_CONVERSATION_REPORTS": "কথোপকথনের রিপোর্ট ডাউনলোড করুন",
+ "DATA_FETCHING_FAILED": "তথ্য আনতে ব্যর্থ হয়েছে, পরে আবার চেষ্টা করুন।",
+ "SUMMARY_FETCHING_FAILED": "সারাংশ আনতে ব্যর্থ হয়েছে, পরে আবার চেষ্টা করুন।",
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "কনভার্সেশন",
+ "DESC": "( মোট )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "প্রাপ্ত বার্তা",
+ "DESC": "( মোট )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "প্রেরিত বার্তা",
+ "DESC": "( মোট )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "প্রথম সাড়া দেওয়ার সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "সমাধানের সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "সমাধানের সংখ্যা",
+ "DESC": "( মোট )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "সমাধানের সংখ্যা",
+ "DESC": "( মোট )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "হস্তান্তরের সংখ্যা",
+ "DESC": "( মোট )"
+ },
+ "REPLY_TIME": {
+ "NAME": "গ্রাহকের অপেক্ষার সময়",
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
+ }
+ },
+ "DATE_RANGE_OPTIONS": {
+ "LAST_7_DAYS": "গত ৭ দিন",
+ "LAST_14_DAYS": "গত ১৪ দিন",
+ "LAST_30_DAYS": "গত ৩০ দিন",
+ "THIS_MONTH": "এই মাস",
+ "LAST_MONTH": "গত মাস",
+ "LAST_3_MONTHS": "গত ৩ মাস",
+ "LAST_6_MONTHS": "গত ৬ মাস",
+ "LAST_YEAR": "গত বছর",
+ "CUSTOM_DATE_RANGE": "কাস্টম তারিখ পরিসর"
+ },
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "প্রয়োগ করুন",
+ "PLACEHOLDER": "তারিখ নির্বাচন করুন"
+ },
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "গ্রুপ করুন",
+ "DURATION_FILTER_LABEL": "সময়কাল",
+ "GROUPING_OPTIONS": {
+ "DAY": "দিন",
+ "WEEK": "সপ্তাহ",
+ "MONTH": "মাস",
+ "YEAR": "বছর"
+ },
+ "GROUP_BY_DAY_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "দিন"
+ }
+ ],
+ "GROUP_BY_WEEK_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "দিন"
+ },
+ {
+ "id": 2,
+ "groupBy": "সপ্তাহ"
+ }
+ ],
+ "GROUP_BY_MONTH_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "দিন"
+ },
+ {
+ "id": 2,
+ "groupBy": "সপ্তাহ"
+ },
+ {
+ "id": 3,
+ "groupBy": "মাস"
+ }
+ ],
+ "GROUP_BY_YEAR_OPTIONS": [
+ {
+ "id": 2,
+ "groupBy": "সপ্তাহ"
+ },
+ {
+ "id": 3,
+ "groupBy": "মাস"
+ },
+ {
+ "id": 4,
+ "groupBy": "বছর"
+ }
+ ],
+ "BUSINESS_HOURS": "ব্যবসায়িক সময়",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "ফিল্টার পরিষ্কার করুন",
+ "EMPTY_LIST": "কোনও ফলাফল পাওয়া যায়নি"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
+ },
+ "AGENT_REPORTS": {
+ "HEADER": "এজেন্ট সংক্ষিপ্ত বিবরণ",
+ "DESCRIPTION": "কথোপকথন, সাড়া দেওয়ার সময়, সমাধানের সময় ও সমাধানকৃত কেসসহ গুরুত্বপূর্ণ মেট্রিক্সে সহজেই এজেন্ট পারফরম্যান্স ট্র্যাক করুন। আরও জানতে এজেন্টের নাম ক্লিক করুন।",
+ "LOADING_CHART": "চার্ট ডেটা লোড হচ্ছে...",
+ "NO_ENOUGH_DATA": "রিপোর্ট তৈরি করার জন্য যথেষ্ট ডেটা নেই, পরে আবার চেষ্টা করুন।",
+ "DOWNLOAD_AGENT_REPORTS": "এজেন্ট রিপোর্ট ডাউনলোড করুন",
+ "FILTER_DROPDOWN_LABEL": "এজেন্ট নির্বাচন করুন",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "এজেন্ট খুঁজুন"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "কনভার্সেশন",
+ "DESC": "( মোট )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "আসা বার্তা",
+ "DESC": "( মোট )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "প্রেরিত বার্তা",
+ "DESC": "( মোট )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "প্রথম সাড়া দেওয়ার সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "সমাধান সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "সমাধান সংখ্যা",
+ "DESC": "( মোট )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "গত ৭ দিন"
+ },
+ {
+ "id": 1,
+ "name": "গত ৩০ দিন"
+ },
+ {
+ "id": 2,
+ "name": "গত ৩ মাস"
+ },
+ {
+ "id": 3,
+ "name": "গত ৬ মাস"
+ },
+ {
+ "id": 4,
+ "name": "গত বছর"
+ },
+ {
+ "id": 5,
+ "name": "কাস্টম তারিখ পরিসর"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "প্রয়োগ করুন",
+ "PLACEHOLDER": "তারিখ পরিসর নির্বাচন করুন"
+ }
+ },
+ "LABEL_REPORTS": {
+ "HEADER": "লেবেল সংক্ষিপ্তসার",
+ "DESCRIPTION": "কথোপকথন, সাড়া দেওয়ার সময়, সমাধানের সময় ও সমাধানকৃত কেসসহ মূল পরিসংখ্যান দিয়ে লেবেলের কার্যকারিতা ট্র্যাক করুন। বিস্তারিত জানতে লেবেলের নাম ক্লিক করুন।",
+ "LOADING_CHART": "চার্ট ডেটা লোড হচ্ছে...",
+ "NO_ENOUGH_DATA": "রিপোর্ট তৈরি করার জন্য যথেষ্ট ডেটা নেই, পরে আবার চেষ্টা করুন।",
+ "DOWNLOAD_LABEL_REPORTS": "লেবেল রিপোর্ট ডাউনলোড করুন",
+ "FILTER_DROPDOWN_LABEL": "লেবেল নির্বাচন করুন",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "লেবেল খুঁজুন"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "কনভার্সেশন",
+ "DESC": "( মোট )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "ইনকামিং মেসেজ",
+ "DESC": "( মোট )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "আউটগোয়িং মেসেজ",
+ "DESC": "( মোট )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "প্রথম সাড়া সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "সমাধানের সময়",
+ "DESC": "( গড় )",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "সমাধান সংখ্যা",
+ "DESC": "( মোট )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "গত ৭ দিন"
+ },
+ {
+ "id": 1,
+ "name": "গত ৩০ দিন"
+ },
+ {
+ "id": 2,
+ "name": "গত ৩ মাস"
+ },
+ {
+ "id": 3,
+ "name": "গত ৬ মাস"
+ },
+ {
+ "id": 4,
+ "name": "গত বছর"
+ },
+ {
+ "id": 5,
+ "name": "কাস্টম তারিখ পরিসর"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "প্রয়োগ করুন",
+ "PLACEHOLDER": "তারিখের পরিসর নির্বাচন করুন"
+ }
+ },
+ "INBOX_REPORTS": {
+ "HEADER": "ইনবক্স সংক্ষিপ্ত বিবরণ",
+ "DESCRIPTION": "কথোপকথন, সাড়া দেওয়ার সময়, সমাধানের সময় ও সমাধানকৃত কেসসহ গুরুত্বপূর্ণ মেট্রিক্সে আপনার ইনবক্সের পারফরম্যান্স এক জায়গায় দ্রুত দেখুন। আরও জানতে ইনবক্সের নাম ক্লিক করুন।",
+ "LOADING_CHART": "চার্ট ডেটা লোড হচ্ছে...",
+ "NO_ENOUGH_DATA": "রিপোর্ট তৈরির জন্য যথেষ্ট ডেটা নেই, পরে আবার চেষ্টা করুন।",
+ "DOWNLOAD_INBOX_REPORTS": "ইনবক্স রিপোর্ট ডাউনলোড করুন",
+ "FILTER_DROPDOWN_LABEL": "ইনবক্স নির্বাচন করুন",
+ "ALL_INBOXES": "সব ইনবক্স",
+ "SEARCH_INBOX": "ইনবক্সে খুঁজুন",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "ইনবক্স খুঁজুন"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "কনভার্সেশন",
+ "DESC": "( মোট )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "ইনকামিং মেসেজ",
+ "DESC": "( মোট )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "প্রেরিত বার্তা",
+ "DESC": "(মোট)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "প্রথম সাড়া সময়",
+ "DESC": "(গড়)",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "সমাধানের সময়",
+ "DESC": "(গড়)",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "সমাধানের সংখ্যা",
+ "DESC": "(মোট)"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "গত ৭ দিন"
+ },
+ {
+ "id": 1,
+ "name": "গত ৩০ দিন"
+ },
+ {
+ "id": 2,
+ "name": "গত ৩ মাস"
+ },
+ {
+ "id": 3,
+ "name": "গত ৬ মাস"
+ },
+ {
+ "id": 4,
+ "name": "গত বছর"
+ },
+ {
+ "id": 5,
+ "name": "কাস্টম তারিখ পরিসর"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "প্রয়োগ করুন",
+ "PLACEHOLDER": "তারিখ পরিসর নির্বাচন করুন"
+ }
+ },
+ "TEAM_REPORTS": {
+ "HEADER": "টিমের সারসংক্ষেপ",
+ "DESCRIPTION": "কথোপকথন, সাড়া দেওয়ার সময়, সমাধানের সময় ও সমাধানকৃত কেসসহ গুরুত্বপূর্ণ মেট্রিক্সে আপনার টিমের পারফরম্যান্সের সারসংক্ষেপ দেখুন। আরও জানতে টিমের নাম ক্লিক করুন।",
+ "LOADING_CHART": "চার্ট ডেটা লোড হচ্ছে...",
+ "NO_ENOUGH_DATA": "রিপোর্ট তৈরির জন্য যথেষ্ট ডেটা নেই, পরে আবার চেষ্টা করুন।",
+ "DOWNLOAD_TEAM_REPORTS": "টিম রিপোর্ট ডাউনলোড করুন",
+ "FILTER_DROPDOWN_LABEL": "টিম নির্বাচন করুন",
+ "FILTERS": {
+ "ADD_FILTER": "ফিল্টার যোগ করুন",
+ "CLEAR_ALL": "সব মুছুন",
+ "NO_FILTER": "কোনো ফিল্টার নেই",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "টিম খুঁজুন"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "আলোচনা",
+ "DESC": "(মোট)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "প্রাপ্ত বার্তা",
+ "DESC": "(মোট)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "প্রেরিত বার্তা",
+ "DESC": "(মোট)"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "প্রথম সাড়া সময়",
+ "DESC": "(গড়)",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "সমাধানের সময়",
+ "DESC": "(গড়)",
+ "INFO_TEXT": "গণনার জন্য ব্যবহৃত মোট কথোপকথনের সংখ্যা:",
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "সমাধানের সংখ্যা",
+ "DESC": "( Total )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "গত ৭ দিন"
+ },
+ {
+ "id": 1,
+ "name": "গত ৩০ দিন"
+ },
+ {
+ "id": 2,
+ "name": "গত ৩ মাস"
+ },
+ {
+ "id": 3,
+ "name": "গত ৬ মাস"
+ },
+ {
+ "id": 4,
+ "name": "গত বছর"
+ },
+ {
+ "id": 5,
+ "name": "কাস্টম তারিখ পরিসর"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "প্রয়োগ করুন",
+ "PLACEHOLDER": "তারিখ পরিসর নির্বাচন করুন"
+ }
+ },
+ "CSAT_REPORTS": {
+ "HEADER": "CSAT রিপোর্ট",
+ "NO_RECORDS": "এখনও কোনো উত্তর নেই",
+ "NO_RECORDS_DESCRIPTION": "গ্রাহকরা ফিডব্যাক দিলে এখানে CSAT জরিপের উত্তর দেখা যাবে।",
+ "DOWNLOAD": "CSAT রিপোর্ট ডাউনলোড করুন",
+ "DOWNLOAD_FAILED": "CSAT রিপোর্ট ডাউনলোড ব্যর্থ হয়েছে",
+ "FILTERS": {
+ "ADD_FILTER": "ফিল্টার যোগ করুন",
+ "CLEAR_ALL": "সব মুছুন",
+ "NO_FILTER": "কোনো ফিল্টার নেই",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "এজেন্ট খুঁজুন",
+ "INBOXES": "ইনবক্স খুঁজুন",
+ "TEAMS": "টিম খুঁজুন",
+ "RATINGS": "রেটিং খুঁজুন"
+ },
+ "AGENTS": {
+ "LABEL": "এজেন্ট"
+ },
+ "INBOXES": {
+ "LABEL": "ইনবক্স"
+ },
+ "TEAMS": {
+ "LABEL": "টিম"
+ },
+ "RATINGS": {
+ "LABEL": "রেটিং"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "CONTACT_NAME": "যোগাযোগ",
+ "AGENT_NAME": "এজেন্ট",
+ "RATING": "রেটিং",
+ "FEEDBACK_TEXT": "মতামত",
+ "CONVERSATION": "কথোপকথন",
+ "CUSTOMER": "গ্রাহক",
+ "RESPONSE": "প্রতিক্রিয়া",
+ "HANDLED_BY": "যিনি পরিচালনা করেছেন"
+ },
+ "UNKNOWN_CUSTOMER": "অজানা গ্রাহক"
+ },
+ "NO_AGENT": "কোনো এজেন্ট নির্ধারিত নেই",
+ "NO_FEEDBACK": "কোনো মতামত দেওয়া হয়নি",
+ "METRIC": {
+ "TOTAL_RESPONSES": {
+ "LABEL": "মোট উত্তর",
+ "TOOLTIP": "মোট সংগৃহীত উত্তর"
+ },
+ "SATISFACTION_SCORE": {
+ "LABEL": "সন্তুষ্টি স্কোর",
+ "TOOLTIP": "মোট ইতিবাচক প্রতিক্রিয়া / মোট প্রতিক্রিয়া * ১০০"
+ },
+ "RESPONSE_RATE": {
+ "LABEL": "প্রতিক্রিয়া হার",
+ "TOOLTIP": "মোট প্রতিক্রিয়া / মোট CSAT জরিপ বার্তা * ১০০"
+ },
+ "RATING_DISTRIBUTION": "রেটিং বণ্টন"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "নোটসমূহ পর্যালোচনা করুন",
+ "PLACEHOLDER": "এই রেটিং সম্পর্কে পর্যালোচনার নোট যোগ করুন...",
+ "SAVE": "সংরক্ষণ করুন",
+ "CANCEL": "বাতিল করুন",
+ "SAVING": "সংরক্ষণ করা হচ্ছে...",
+ "SAVED": "নোট সফলভাবে সংরক্ষিত হয়েছে",
+ "SAVE_ERROR": "নোট সংরক্ষণে ব্যর্থ হয়েছে",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "আপডেট করেছেন",
+ "PAYWALL": {
+ "TITLE": "পর্যালোচনার নোট যোগ করতে আপগ্রেড করুন",
+ "AVAILABLE_ON": "পর্যালোচনার নোট ফিচারটি শুধুমাত্র Business এবং Enterprise প্ল্যানে উপলব্ধ।",
+ "UPGRADE_PROMPT": "প্রতি CSAT প্রতিক্রিয়ায় রিভিউ নোট যোগ করে অভ্যন্তরীণ তথ্য যুক্ত করুন। কী ঘটেছিল তা ধরুন, দ্রুত প্যাটার্ন চিনুন এবং আপনার ফিডব্যাক থেকে আরও ভালো সিদ্ধান্ত নিন।",
+ "UPGRADE_NOW": "এখনই আপগ্রেড করুন",
+ "CANCEL_ANYTIME": "আপনি যেকোনো সময় আপনার প্ল্যান পরিবর্তন বা বাতিল করতে পারেন"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "বট রিপোর্ট",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "কথোপকথনের সংখ্যা",
+ "TOOLTIP": "বট দ্বারা পরিচালিত মোট কথোপকথন"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "মোট উত্তর",
+ "TOOLTIP": "বট দ্বারা পাঠানো মোট উত্তর"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "সমাধান হার",
+ "TOOLTIP": "বট দ্বারা সমাধানকৃত মোট কথোপকথন / বট দ্বারা পরিচালিত মোট কথোপকথন * ১০০"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "হ্যান্ডঅফ হার",
+ "TOOLTIP": "এজেন্টদের কাছে হ্যান্ডঅফ করা মোট কথোপকথন / বট দ্বারা পরিচালিত মোট কথোপকথন * ১০০"
+ }
+ }
+ },
+ "OVERVIEW_REPORTS": {
+ "HEADER": "সংক্ষিপ্ত বিবরণ",
+ "LIVE": "লাইভ",
+ "ACCOUNT_CONVERSATIONS": {
+ "HEADER": "খোলা কথোপকথন",
+ "LOADING_MESSAGE": "কথোপকথনের পরিসংখ্যান লোড হচ্ছে...",
+ "OPEN": "খোলা",
+ "UNATTENDED": "অবহেলিত",
+ "UNASSIGNED": "অবরোধহীন",
+ "PENDING": "অপেক্ষমাণ"
+ },
+ "CONVERSATION_HEATMAP": {
+ "HEADER": "কথোপকথনের ট্রাফিক",
+ "NO_CONVERSATIONS": "কোনো কথোপকথন নেই",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "রিপোর্ট ডাউনলোড করুন"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "সমাধানসমূহ",
+ "NO_CONVERSATIONS": "কোনো কথোপকথন নেই",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "রিপোর্ট ডাউনলোড করুন"
+ },
+ "AGENT_CONVERSATIONS": {
+ "HEADER": "এজেন্ট অনুযায়ী কথোপকথন",
+ "LOADING_MESSAGE": "এজেন্টের পরিসংখ্যান লোড হচ্ছে...",
+ "NO_AGENTS": "এজেন্টদের কোনো কথোপকথন নেই",
+ "TABLE_HEADER": {
+ "AGENT": "এজেন্ট",
+ "OPEN": "খোলা",
+ "UNATTENDED": "অযত্নে",
+ "STATUS": "অবস্থা"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "সব টিম",
+ "HEADER": "দলের ভিত্তিতে কথোপকথন",
+ "LOADING_MESSAGE": "দলের পরিসংখ্যান লোড হচ্ছে...",
+ "NO_TEAMS": "কোনো তথ্য নেই",
+ "TABLE_HEADER": {
+ "TEAM": "দল",
+ "OPEN": "খোলা",
+ "UNATTENDED": "অবহেলিত",
+ "STATUS": "অবস্থা"
+ }
+ },
+ "AGENT_STATUS": {
+ "HEADER": "এজেন্টের অবস্থা",
+ "ONLINE": "অনলাইন",
+ "BUSY": "ব্যস্ত",
+ "OFFLINE": "অফলাইন"
+ }
+ },
+ "DAYS_OF_WEEK": {
+ "SUNDAY": "রবিবার",
+ "MONDAY": "সোমবার",
+ "TUESDAY": "মঙ্গলবার",
+ "WEDNESDAY": "বুধবার",
+ "THURSDAY": "বৃহস্পতিবার",
+ "FRIDAY": "শুক্রবার",
+ "SATURDAY": "শনিবার"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA রিপোর্ট",
+ "NO_RECORDS": "SLA প্রয়োগকৃত কোনো কথোপকথন নেই।",
+ "LOADING": "SLA ডেটা লোড হচ্ছে...",
+ "DOWNLOAD_SLA_REPORTS": "SLA রিপোর্ট ডাউনলোড করুন",
+ "DOWNLOAD_FAILED": "SLA রিপোর্ট ডাউনলোড ব্যর্থ হয়েছে",
+ "DROPDOWN": {
+ "ADD_FIlTER": "ফিল্টার যোগ করুন",
+ "CLEAR_ALL": "সব মুছুন",
+ "CLEAR_FILTER": "ফিল্টার মুছুন",
+ "EMPTY_LIST": "কোনও ফলাফল পাওয়া যায়নি",
+ "NO_FILTER": "কোনও ফিল্টার নেই",
+ "SEARCH": "ফিল্টার অনুসন্ধান করুন",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA নাম",
+ "AGENTS": "এজেন্টের নাম",
+ "INBOXES": "ইনবক্সের নাম",
+ "LABELS": "লেবেল নাম",
+ "TEAMS": "টিমের নাম"
+ },
+ "SLA": "SLA নীতি",
+ "INBOXES": "ইনবক্স",
+ "AGENTS": "এজেন্ট",
+ "LABELS": "লেবেল",
+ "TEAMS": "টিম"
+ },
+ "WITH": "সহ",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "হিট হার",
+ "TOOLTIP": "তৈরি হওয়া SLA-র শতকরা কত সফলভাবে সম্পন্ন হয়েছে"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "মিসের সংখ্যা",
+ "TOOLTIP": "নির্দিষ্ট সময়ে মোট SLA মিস"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "কথোপকথনের সংখ্যা",
+ "TOOLTIP": "SLA সহ মোট কথোপকথনের সংখ্যা"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "নীতি",
+ "CONVERSATION": "কথোপকথন",
+ "AGENT": "এজেন্ট"
+ },
+ "VIEW_DETAILS": "বিস্তারিত দেখুন"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "ইনবক্স",
+ "AGENT": "এজেন্ট",
+ "TEAM": "টিম",
+ "LABEL": "লেবেল",
+ "AVG_RESOLUTION_TIME": "গড় সমাধান সময়",
+ "AVG_FIRST_RESPONSE_TIME": "গড় প্রথম সাড়া সময়",
+ "AVG_REPLY_TIME": "গড় গ্রাহক অপেক্ষার সময়",
+ "RESOLUTION_COUNT": "সমাধান সংখ্যা",
+ "CONVERSATIONS": "কথোপকথনের সংখ্যা"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/resetPassword.json b/app/javascript/dashboard/i18n/locale/bn/resetPassword.json
new file mode 100644
index 000000000..955696b0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/resetPassword.json
@@ -0,0 +1,17 @@
+{
+ "RESET_PASSWORD": {
+ "TITLE": "Reset password",
+ "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
+ "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "Please enter your email.",
+ "ERROR": "Please enter a valid email."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Password reset link has been sent to your email.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/search.json b/app/javascript/dashboard/i18n/locale/bn/search.json
new file mode 100644
index 000000000..2fc8e7998
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/search.json
@@ -0,0 +1,68 @@
+{
+ "SEARCH": {
+ "TABS": {
+ "ALL": "All results",
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "SECTION": {
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
+ "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
+ "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "BOT_LABEL": "Bot",
+ "READ_MORE": "Read more",
+ "READ_LESS": "Read less",
+ "WROTE": "wrote:",
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json b/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json
new file mode 100644
index 000000000..4908dad02
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/setNewPassword.json
@@ -0,0 +1,23 @@
+{
+ "SET_NEW_PASSWORD": {
+ "TITLE": "Set new password",
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short."
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm Password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Successfully changed the password.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CAPTCHA": {
+ "ERROR": "Verification expired. Please solve captcha again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/settings.json b/app/javascript/dashboard/i18n/locale/bn/settings.json
new file mode 100644
index 000000000..8ff2971be
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/settings.json
@@ -0,0 +1,923 @@
+{
+ "PROFILE_SETTINGS": {
+ "LINK": "প্রোফাইল সেটিং",
+ "TITLE": "প্রোফাইল সেটিং",
+ "BTN_TEXT": "প্রোফাইল আপডেট",
+ "DELETE_AVATAR": "অ্যাভাটার মুছে ফেলুন",
+ "AVATAR_DELETE_SUCCESS": "অ্যাভাটার সফলভাবে মুছে ফেলা হয়েছে",
+ "AVATAR_DELETE_FAILED": "অ্যাভাটার মুছে ফেলার সময় একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "UPDATE_SUCCESS": "আপনার প্রোফাইল সফলভাবে আপডেট হয়েছে",
+ "PASSWORD_UPDATE_SUCCESS": "আপনার পাসওয়ার্ড সফলভাবে পরিবর্তন হয়েছে",
+ "AFTER_EMAIL_CHANGED": "আপনার প্রোফাইল সফলভাবে আপডেট হয়েছে, অনুগ্রহ করে আবার লগইন করুন কারণ আপনার লগইন তথ্য পরিবর্তিত হয়েছে",
+ "FORM": {
+ "PICTURE": "প্রোফাইল ছবি",
+ "AVATAR": "প্রোফাইল ইমেজ",
+ "ERROR": "অনুগ্রহ করে ফর্মের ত্রুটিগুলো ঠিক করুন",
+ "REMOVE_IMAGE": "সরান",
+ "UPLOAD_IMAGE": "ইমেজ আপলোড করুন",
+ "UPDATE_IMAGE": "ইমেজ আপডেট করুন",
+ "PROFILE_SECTION": {
+ "TITLE": "প্রোফাইল",
+ "NOTE": "আপনার ইমেইল ঠিকানা আপনার পরিচয় এবং লগইন করার জন্য ব্যবহৃত হয়।."
+ },
+ "SEND_MESSAGE": {
+ "TITLE": "বার্তা পাঠানোর শর্টকাট",
+ "NOTE": "আপনি আপনার লেখার পছন্দ অনুযায়ী একটি শর্টকাট নির্বাচন করতে পারেন (Enter অথবা Cmd/Ctrl+Enter)।.",
+ "UPDATE_SUCCESS": "আপনার সেটিংস সফলভাবে আপডেট হয়েছে",
+ "CARD": {
+ "ENTER_KEY": {
+ "HEADING": "এন্টার (↵)",
+ "CONTENT": "সেন্ড বোতাম ক্লিক করার পরিবর্তে এন্টার কী চাপ দিয়ে বার্তা পাঠান।."
+ },
+ "CMD_ENTER_KEY": {
+ "HEADING": "Cmd/Ctrl + এন্টার (⌘ + ↵)",
+ "CONTENT": "সেন্ড বোতাম ক্লিক করার পরিবর্তে Cmd/Ctrl + এন্টার কী চাপ দিয়ে বার্তা পাঠান।."
+ }
+ }
+ },
+ "INTERFACE_SECTION": {
+ "TITLE": "ইন্টারফেস",
+ "NOTE": "আপনার Chatwoot ড্যাশবোর্ডের চেহারা এবং অনুভূতি কাস্টমাইজ করুন.",
+ "FONT_SIZE": {
+ "TITLE": "ফন্ট সাইজ",
+ "NOTE": "আপনার পছন্দ অনুযায়ী ড্যাশবোর্ডের টেক্সট সাইজ সামঞ্জস্য করুন.",
+ "UPDATE_SUCCESS": "আপনার ফন্ট সেটিংস সফলভাবে আপডেট হয়েছে",
+ "UPDATE_ERROR": "ফন্ট সেটিংস আপডেট করার সময় একটি ত্রুটি ঘটেছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "OPTIONS": {
+ "SMALLER": "ছোট",
+ "SMALL": "সামান্য ছোট",
+ "DEFAULT": "ডিফল্ট",
+ "LARGE": "বড়",
+ "LARGER": "আরও বড়",
+ "EXTRA_LARGE": "অতিরিক্ত বড়"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "পছন্দসই ভাষা",
+ "NOTE": "আপনি যে ভাষা ব্যবহার করতে চান তা নির্বাচন করুন.",
+ "UPDATE_SUCCESS": "আপনার ভাষা সেটিংস সফলভাবে আপডেট হয়েছে",
+ "UPDATE_ERROR": "ভাষা সেটিংস আপডেট করার সময় একটি ত্রুটি ঘটেছে, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "USE_ACCOUNT_DEFAULT": "অ্যাকাউন্ট ডিফল্ট ব্যবহার করুন"
+ }
+ },
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "ব্যক্তিগত বার্তার স্বাক্ষর",
+ "NOTE": "আপনার যেকোনো ইনবক্স থেকে পাঠানো প্রতিটি বার্তার শেষে একটি অনন্য বার্তা স্বাক্ষর তৈরি করুন। আপনি চাইলে ইনলাইন ছবি যোগ করতে পারেন, যা লাইভ-চ্যাট, ইমেল এবং API ইনবক্সে সমর্থিত।.",
+ "BTN_TEXT": "বার্তার স্বাক্ষর সংরক্ষণ করুন",
+ "API_ERROR": "স্বাক্ষর সংরক্ষণ করা যায়নি! আবার চেষ্টা করুন",
+ "API_SUCCESS": "স্বাক্ষর সফলভাবে সংরক্ষণ হয়েছে",
+ "IMAGE_UPLOAD_ERROR": "ছবি আপলোড করা সম্ভব হয়নি! আবার চেষ্টা করুন",
+ "IMAGE_UPLOAD_SUCCESS": "ছবি সফলভাবে যোগ হয়েছে। স্বাক্ষর সংরক্ষণ করতে অনুগ্রহ করে সেভ-এ ক্লিক করুন।",
+ "IMAGE_UPLOAD_SIZE_ERROR": "ছবির আকার {size}MB-এর কম হতে হবে",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "বার্তার স্বাক্ষর",
+ "ERROR": "বার্তার স্বাক্ষর খালি রাখা যাবে না",
+ "PLACEHOLDER": "এখানে আপনার ব্যক্তিগত বার্তা স্বাক্ষর লিখুন।."
+ },
+ "PASSWORD_SECTION": {
+ "TITLE": "পাসওয়ার্ড",
+ "NOTE": "আপনার পাসওয়ার্ড আপডেট করলে একাধিক ডিভাইসে আপনার লগইন রিসেট হবে।.",
+ "BTN_TEXT": "পাসওয়ার্ড পরিবর্তন করুন"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "নিরাপত্তা",
+ "NOTE": "আপনার অ্যাকাউন্টের জন্য অতিরিক্ত নিরাপত্তা বৈশিষ্ট্যগুলি পরিচালনা করুন।.",
+ "MFA_BUTTON": "দ্বি-ফ্যাক্টর প্রমাণীকরণ পরিচালনা করুন"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "অ্যাক্সেস টোকেন",
+ "NOTE": "আপনি যদি API ভিত্তিক সংযোগ তৈরি করেন, তাহলে এই টোকেন ব্যবহার করা যেতে পারে",
+ "COPY": "কপি",
+ "RESET": "রিসেট",
+ "CONFIRM_RESET": "আপনি কি নিশ্চিত?",
+ "CONFIRM_HINT": "নিশ্চিত করতে আবার ক্লিক করুন",
+ "RESET_SUCCESS": "অ্যাক্সেস টোকেন সফলভাবে পুনরায় তৈরি হয়েছে",
+ "RESET_ERROR": "অ্যাক্সেস টোকেন পুনরায় তৈরি করা যায়নি। অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "অডিও অ্যালার্ট",
+ "NOTE": "নতুন বার্তা ও কথোপকথনের জন্য ড্যাশবোর্ডে অডিও অ্যালার্ট সক্রিয় করুন।.",
+ "PLAY": "শব্দ চালান",
+ "ALERT_TYPES": {
+ "NONE": "কিছুই নয়",
+ "MINE": "বরাদ্দ",
+ "ALL": "সব",
+ "ASSIGNED": "আমার বরাদ্দকৃত কথোপকথন",
+ "UNASSIGNED": "অবরাদ্দকৃত কথোপকথন",
+ "NOTME": "অন্যদের বরাদ্দকৃত খোলা কথোপকথন"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "আপনি কোনো অপশন নির্বাচন করেননি, কোনো অডিও অ্যালার্ট পাবেন না।.",
+ "ASSIGNED": "আপনি আপনার কাছে বরাদ্দকৃত কথোপকথনের জন্য অ্যালার্ট পাবেন।.",
+ "UNASSIGNED": "আপনি কোনো বরাদ্দহীন কথোপকথনের জন্য অ্যালার্ট পাবেন।.",
+ "NOTME": "আপনি অন্যদের বরাদ্দকৃত কথোপকথনের জন্য অ্যালার্ট পাবেন।.",
+ "ASSIGNED+UNASSIGNED": "আপনি আপনার বরাদ্দকৃত কথোপকথন এবং যেকোনো অবহেলিত কথোপকথনের জন্য অ্যালার্ট পাবেন।.",
+ "ASSIGNED+NOTME": "আপনার এবং অন্যদের বরাদ্দকৃত কথোপকথনের জন্য আপনি অ্যালার্ট পাবেন, তবে বরাদ্দহীন কথোপকথনের জন্য পাবেন না।.",
+ "NOTME+UNASSIGNED": "আপনি অবহেলিত কথোপকথন এবং অন্যদের বরাদ্দকৃত কথোপকথনের জন্য অ্যালার্ট পাবেন।.",
+ "ASSIGNED+NOTME+UNASSIGNED": "আপনি সব কথোপকথনের জন্য অ্যালার্ট পাবেন।."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "কথোপকথনের জন্য অ্যালার্ট ইভেন্ট",
+ "NONE": "কোনোটিই নয়",
+ "ASSIGNED": "নির্ধারিত কথোপকথন",
+ "ALL_CONVERSATIONS": "সমস্ত কথোপকথন"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "সতর্কতা সুর:"
+ },
+ "CONDITIONS": {
+ "TITLE": "সতর্কতা শর্তাবলী:",
+ "CONDITION_ONE": "শুধুমাত্র তখনই অডিও সতর্কতা পাঠান যখন ব্রাউজার উইন্ডো সক্রিয় না থাকে",
+ "CONDITION_TWO": "সমস্ত বরাদ্দকৃত কথোপকথন পড়া না হওয়া পর্যন্ত প্রতি 30s অন্তর সতর্কতা পাঠান"
+ },
+ "SOUND_PERMISSION_ERROR": "আপনার ব্রাউজারে অটোপ্লে নিষ্ক্রিয়। স্বয়ংক্রিয়ভাবে অ্যালার্ট শুনতে, ব্রাউজারের সেটিংসে সাউন্ড অনুমতি সক্রিয় করুন অথবা পৃষ্ঠার সাথে ইন্টারঅ্যাক্ট করুন।.",
+ "READ_MORE": "আরও পড়ুন"
+ },
+ "EMAIL_NOTIFICATIONS_SECTION": {
+ "TITLE": "ইমেইল নোটিফিকেশন",
+ "NOTE": "এখানে আপনার ইমেইল নোটিফিকেশন পছন্দ আপডেট করুন",
+ "CONVERSATION_ASSIGNMENT": "যখন আমার কাছে কোনো কথোপকথন বরাদ্দ করা হয় তখন ইমেইল নোটিফিকেশন পাঠান",
+ "CONVERSATION_CREATION": "নতুন কথোপকথন তৈরি হলে ইমেইল নোটিফিকেশন পাঠান",
+ "CONVERSATION_MENTION": "আপনি যখন কোনো কথোপকথনে উল্লেখিত হবেন তখন ইমেইল নোটিফিকেশন পাঠান",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "নির্ধারিত কথোপকথনে নতুন বার্তা তৈরি হলে ইমেইল নোটিফিকেশন পাঠান",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "অংশগ্রহণ করা কথোপকথনে নতুন বার্তা তৈরি হলে ইমেল নোটিফিকেশন পাঠান",
+ "SLA_MISSED_FIRST_RESPONSE": "কোনো কথোপকথন প্রথম প্রতিক্রিয়া SLA মিস করলে ইমেল নোটিফিকেশন পাঠান",
+ "SLA_MISSED_NEXT_RESPONSE": "কোনো কথোপকথন পরবর্তী প্রতিক্রিয়া SLA মিস করলে ইমেল নোটিফিকেশন পাঠান",
+ "SLA_MISSED_RESOLUTION": "কোনো কথোপকথন সমাধান SLA মিস করলে ইমেল নোটিফিকেশন পাঠান"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "নোটিফিকেশন পছন্দ",
+ "TYPE_TITLE": "নোটিফিকেশনের ধরন",
+ "EMAIL": "ইমেল",
+ "PUSH": "পুশ নোটিফিকেশন",
+ "TYPES": {
+ "CONVERSATION_CREATED": "একটি নতুন কথোপকথন তৈরি হয়েছে",
+ "CONVERSATION_ASSIGNED": "আপনার জন্য একটি কথোপকথন বরাদ্দ করা হয়েছে",
+ "CONVERSATION_MENTION": "আপনাকে একটি কথোপকথনে উল্লেখ করা হয়েছে",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "নির্ধারিত কথোপকথনে একটি নতুন বার্তা তৈরি হয়েছে",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "অংশগ্রহণ করা কথোপকথনে একটি নতুন বার্তা তৈরি হয়েছে",
+ "SLA_MISSED_FIRST_RESPONSE": "একটি কথোপকথন প্রথম প্রতিক্রিয়া SLA মিস করেছে",
+ "SLA_MISSED_NEXT_RESPONSE": "একটি কথোপকথন পরবর্তী প্রতিক্রিয়া SLA মিস করেছে",
+ "SLA_MISSED_RESOLUTION": "একটি কথোপকথন সমাধান SLA মিস করেছে"
+ },
+ "BROWSER_PERMISSION": "আপনার ব্রাউজারে পুশ নোটিফিকেশন চালু করুন যাতে আপনি এগুলো পেতে পারেন"
+ },
+ "API": {
+ "UPDATE_SUCCESS": "আপনার নোটিফিকেশন পছন্দ সফলভাবে আপডেট হয়েছে",
+ "UPDATE_ERROR": "পছন্দ আপডেট করার সময় একটি ত্রুটি হয়েছে, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "PUSH_NOTIFICATIONS_SECTION": {
+ "TITLE": "পুশ নোটিফিকেশন",
+ "NOTE": "এখানে আপনার পুশ নোটিফিকেশন পছন্দ আপডেট করুন",
+ "CONVERSATION_ASSIGNMENT": "যখন একটি কথোপকথন আমার কাছে বরাদ্দ করা হয় তখন পুশ নোটিফিকেশন পাঠান",
+ "CONVERSATION_CREATION": "যখন একটি নতুন কথোপকথন তৈরি হয় তখন পুশ নোটিফিকেশন পাঠান",
+ "CONVERSATION_MENTION": "আপনি যখন কোনো কথোপকথনে উল্লেখিত হবেন তখন পুশ নোটিফিকেশন পাঠান",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "নির্ধারিত কথোপকথনে নতুন বার্তা তৈরি হলে পুশ নোটিফিকেশন পাঠান",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "অংশগ্রহণ করা কথোপকথনে নতুন বার্তা তৈরি হলে পুশ নোটিফিকেশন পাঠান",
+ "HAS_ENABLED_PUSH": "আপনি এই ব্রাউজারে পুশ সক্রিয় করেছেন।.",
+ "REQUEST_PUSH": "পুশ নোটিফিকেশন সক্রিয় করুন",
+ "SLA_MISSED_FIRST_RESPONSE": "কোনো কথোপকথন প্রথম প্রতিক্রিয়া SLA মিস করলে পুশ নোটিফিকেশন পাঠান",
+ "SLA_MISSED_NEXT_RESPONSE": "কোনো কথোপকথন পরবর্তী প্রতিক্রিয়া SLA মিস করলে পুশ নোটিফিকেশন পাঠান",
+ "SLA_MISSED_RESOLUTION": "কোনো কথোপকথন সমাধান SLA মিস করলে পুশ নোটিফিকেশন পাঠান"
+ },
+ "PROFILE_IMAGE": {
+ "LABEL": "প্রোফাইল ইমেজ"
+ },
+ "NAME": {
+ "LABEL": "আপনার সম্পূর্ণ নাম",
+ "ERROR": "একটি বৈধ সম্পূর্ণ নাম লিখুন",
+ "PLACEHOLDER": "আপনার সম্পূর্ণ নাম লিখুন"
+ },
+ "DISPLAY_NAME": {
+ "LABEL": "প্রদর্শন নাম",
+ "ERROR": "একটি বৈধ প্রদর্শন নাম লিখুন",
+ "PLACEHOLDER": "একটি প্রদর্শন নাম লিখুন, এটি কথোপকথনে দেখানো হবে"
+ },
+ "AVAILABILITY": {
+ "LABEL": "উপলব্ধতা",
+ "STATUS": {
+ "ONLINE": "অনলাইন",
+ "BUSY": "ব্যস্ত",
+ "OFFLINE": "অফলাইন"
+ },
+ "SET_AVAILABILITY_SUCCESS": "উপলব্ধতা সফলভাবে সেট করা হয়েছে",
+ "SET_AVAILABILITY_ERROR": "উপলব্ধতা সেট করা যায়নি, অনুগ্রহ করে আবার চেষ্টা করুন",
+ "IMPERSONATING_ERROR": "একজন ব্যবহারকারীর ছদ্মবেশ ধারণ করার সময় উপলব্ধতা পরিবর্তন করা যাবে না"
+ },
+ "EMAIL": {
+ "LABEL": "আপনার ইমেইল ঠিকানা",
+ "ERROR": "অনুগ্রহ করে একটি বৈধ ইমেইল ঠিকানা লিখুন",
+ "PLACEHOLDER": "আপনার ইমেইল ঠিকানা লিখুন, এটি কথোপকথনে দেখানো হবে"
+ },
+ "CURRENT_PASSWORD": {
+ "LABEL": "বর্তমান পাসওয়ার্ড",
+ "ERROR": "বর্তমান পাসওয়ার্ড লিখুন",
+ "PLACEHOLDER": "বর্তমান পাসওয়ার্ড লিখুন"
+ },
+ "PASSWORD": {
+ "LABEL": "নতুন পাসওয়ার্ড",
+ "ERROR": "অনুগ্রহ করে ৬ বা তার বেশি অক্ষরের একটি পাসওয়ার্ড লিখুন",
+ "PLACEHOLDER": "অনুগ্রহ করে একটি নতুন পাসওয়ার্ড লিখুন"
+ },
+ "PASSWORD_CONFIRMATION": {
+ "LABEL": "নতুন পাসওয়ার্ড নিশ্চিত করুন",
+ "ERROR": "নিশ্চিতকরণ পাসওয়ার্ডটি পাসওয়ার্ডের সাথে মিলতে হবে",
+ "PLACEHOLDER": "অনুগ্রহ করে আপনার নতুন পাসওয়ার্ড পুনরায় লিখুন"
+ }
+ }
+ },
+ "SIDEBAR_ITEMS": {
+ "CHANGE_AVAILABILITY_STATUS": "পরিবর্তন করুন",
+ "CHANGE_ACCOUNTS": "অ্যাকাউন্ট পরিবর্তন করুন",
+ "SWITCH_ACCOUNT": "অ্যাকাউন্ট পরিবর্তন করুন",
+ "CONTACT_SUPPORT": "সাপোর্টে যোগাযোগ করুন",
+ "SELECTOR_SUBTITLE": "নিচের তালিকা থেকে একটি অ্যাকাউন্ট নির্বাচন করুন",
+ "PROFILE_SETTINGS": "প্রোফাইল সেটিংস",
+ "YEAR_IN_REVIEW": "বছরের পর্যালোচনা",
+ "KEYBOARD_SHORTCUTS": "কীবোর্ড শর্টকাট",
+ "APPEARANCE": "দেখা পরিবর্তন করুন",
+ "SUPER_ADMIN_CONSOLE": "সুপারঅ্যাডমিন কনসোল",
+ "DOCS": "ডকুমেন্টেশন পড়ুন",
+ "CHANGELOG": "পরিবর্তন লগ",
+ "LOGOUT": "লগ আউট"
+ },
+ "APP_GLOBAL": {
+ "TRIAL_MESSAGE": "দিনের ট্রায়াল বাকি আছে।.",
+ "TRAIL_BUTTON": "এখনই কিনুন",
+ "DELETED_USER": "মুছে ফেলা ইউজার",
+ "EMAIL_VERIFICATION_PENDING": "মনে হচ্ছে আপনি এখনও আপনার ইমেল ঠিকানা যাচাই করেননি। অনুগ্রহ করে যাচাইকরণ ইমেলটি দেখতে আপনার ইনবক্স চেক করুন।.",
+ "RESEND_VERIFICATION_MAIL": "যাচাইকরণ ইমেল পুনরায় পাঠান",
+ "EMAIL_VERIFICATION_SENT": "যাচাইকরণ ইমেল পাঠানো হয়েছে। অনুগ্রহ করে আপনার ইনবক্স চেক করুন।.",
+ "ACCOUNT_SUSPENDED": {
+ "TITLE": "অ্যাকাউন্ট স্থগিত করা হয়েছে",
+ "MESSAGE": "আপনার অ্যাকাউন্ট স্থগিত করা হয়েছে। আরও তথ্যের জন্য অনুগ্রহ করে সাপোর্ট টিমের সাথে যোগাযোগ করুন।."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "কোনো অ্যাকাউন্ট পাওয়া যায়নি",
+ "MESSAGE_CLOUD": "আপনি এখন কোনো অ্যাকাউন্টের অংশ নন। আপনি যদি মনে করেন এটি একটি ভুল, অনুগ্রহ করে আমাদের সাপোর্ট টিমের সাথে যোগাযোগ করুন।.",
+ "MESSAGE_SELF_HOSTED": "আপনি এখন কোনো অ্যাকাউন্টের অংশ নন। অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন।.",
+ "LOGOUT": "লগ আউট"
+ }
+ },
+ "COMPONENTS": {
+ "CODE": {
+ "BUTTON_TEXT": "কপি করুন",
+ "CODEPEN": "CodePen-এ খুলুন",
+ "COPY_SUCCESSFUL": "ক্লিপবোর্ডে কপি হয়েছে"
+ },
+ "SHOW_MORE_BLOCK": {
+ "SHOW_MORE": "আরও দেখান",
+ "SHOW_LESS": "কম দেখান"
+ },
+ "FILE_BUBBLE": {
+ "DOWNLOAD": "ডাউনলোড করুন",
+ "UPLOADING": "আপলোড হচ্ছে...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "এই স্টোরি আর উপলব্ধ নেই।.",
+ "INSTAGRAM_STORY_REPLY": "আপনার স্টোরিতে উত্তর দিয়েছেন:"
+ },
+ "LOCATION_BUBBLE": {
+ "SEE_ON_MAP": "মানচিত্রে দেখুন"
+ },
+ "FORM_BUBBLE": {
+ "SUBMIT": "জমা দিন"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "এই ছবি আর উপলব্ধ নেই।.",
+ "LOADING_FAILED": "লোডিং ব্যর্থ হয়েছে"
+ }
+ },
+ "CONFIRM_EMAIL": "যাচাই হচ্ছে...",
+ "SETTINGS": {
+ "INBOXES": {
+ "NEW_INBOX": "ইনবক্স অ্যাড করুন"
+ }
+ },
+ "SIDEBAR": {
+ "NO_ITEMS": "কোনো আইটেম নেই",
+ "CURRENTLY_VIEWING_ACCOUNT": "বর্তমানে দেখছেন:",
+ "SWITCH": "পরিবর্তন করুন",
+ "INBOX_VIEW": "ইনবক্স ভিউ",
+ "CONVERSATIONS": "আলাপচারিতা",
+ "INBOX": "আমার ইনবক্স",
+ "ALL_CONVERSATIONS": "সমস্ত আলোচনা",
+ "MENTIONED_CONVERSATIONS": "উল্লেখ",
+ "PARTICIPATING_CONVERSATIONS": "অংশগ্রহণ",
+ "UNATTENDED_CONVERSATIONS": "অযত্নে ফেলে রাখা",
+ "REPORTS": "রিপোর্টসমূহ",
+ "SETTINGS": "সেটিং",
+ "CONTACTS": "কন্টাক্টসমূহ",
+ "ACTIVE": "সক্রিয়",
+ "COMPANIES": "কোম্পানি",
+ "ALL_COMPANIES": "সমস্ত কোম্পানি",
+ "CAPTAIN": "ক্যাপ্টেন",
+ "CAPTAIN_ASSISTANTS": "সহকারী",
+ "CAPTAIN_DOCUMENTS": "ডকুমেন্ট",
+ "CAPTAIN_RESPONSES": "প্রশ্নাবলী",
+ "CAPTAIN_TOOLS": "টুলস",
+ "CAPTAIN_SCENARIOS": "পরিস্থিতি",
+ "CAPTAIN_PLAYGROUND": "খেলার মাঠ",
+ "CAPTAIN_INBOXES": "ইনবক্স",
+ "CAPTAIN_SETTINGS": "সেটিংস",
+ "HOME": "প্রধান পৃষ্ঠা",
+ "AGENTS": "এজেন্ট",
+ "AGENT_BOTS": "বট",
+ "AUDIT_LOGS": "অডিট লগসমূহ",
+ "INBOXES": "ইনবক্সসমূহ",
+ "NOTIFICATIONS": "নোটিফিকেশন",
+ "CANNED_RESPONSES": "সংরক্ষিত উত্তর",
+ "INTEGRATIONS": "ইন্টিগ্রেশনসমূহ",
+ "PROFILE_SETTINGS": "প্রোফাইল সেটিংস",
+ "ACCOUNT_SETTINGS": "অ্যাকাউন্ট সেটিং",
+ "APPLICATIONS": "অ্যাপ্লিকেশন",
+ "LABELS": "লেবেল",
+ "CUSTOM_ATTRIBUTES": "কাস্টম অ্যাট্রিবিউট",
+ "AUTOMATION": "স্বয়ংক্রিয়করণ",
+ "MACROS": "ম্যাক্রো",
+ "TEAMS": "টিমসমূহ",
+ "BILLING": "বিলিং",
+ "CUSTOM_VIEWS_FOLDER": "ফোল্ডার",
+ "CUSTOM_VIEWS_SEGMENTS": "সেগমেন্ট",
+ "ALL_CONTACTS": "সমস্ত কন্টাক্ট",
+ "TAGGED_WITH": "ট্যাগসহ",
+ "NEW_LABEL": "নতুন লেবেল",
+ "NEW_TEAM": "নতুন দল",
+ "NEW_INBOX": "নতুন ইনবক্স",
+ "REPORTS_CONVERSATION": "আলাপচারিতা",
+ "CSAT": "CSAT",
+ "LIVE_CHAT": "লাইভ চ্যাট",
+ "SMS": "এসএমএস",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "ক্যাম্পেইন",
+ "ONGOING": "চলমান",
+ "ONE_OFF": "এককালীন",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "বট",
+ "REPORTS_AGENT": "এজেন্টগণ",
+ "REPORTS_LABEL": "লেবেল",
+ "REPORTS_INBOX": "ইনবক্স",
+ "REPORTS_TEAM": "দল",
+ "AGENT_ASSIGNMENT": "এজেন্ট নিয়োগ",
+ "SET_AVAILABILITY_TITLE": "নিজেকে নির্ধারণ করুন",
+ "SET_YOUR_AVAILABILITY": "আপনার উপস্থিতি সেট করুন",
+ "SLA": "SLA",
+ "CUSTOM_ROLES": "কাস্টম রোল",
+ "BETA": "বেটা",
+ "REPORTS_OVERVIEW": "সারাংশ",
+ "REAUTHORIZE": "আপনার ইনবক্স সংযোগের মেয়াদ শেষ হয়েছে, অনুগ্রহ করে পুনরায় সংযোগ করুন\n বার্তা গ্রহণ ও পাঠানো চালিয়ে যেতে",
+ "HELP_CENTER": {
+ "TITLE": "সহায়তা কেন্দ্র",
+ "ARTICLES": "নিবন্ধ",
+ "CATEGORIES": "বিভাগ",
+ "LOCALES": "লোকেল",
+ "SETTINGS": "সেটিং"
+ },
+ "CHANNELS": "চ্যানেল",
+ "SET_AUTO_OFFLINE": {
+ "TEXT": "স্বয়ংক্রিয়ভাবে অফলাইন চিহ্নিত করুন",
+ "INFO_TEXT": "যখন আপনি অ্যাপ বা ড্যাশবোর্ড ব্যবহার করছেন না তখন সিস্টেম স্বয়ংক্রিয়ভাবে আপনাকে অফলাইন চিহ্নিত করবে।.",
+ "INFO_SHORT": "আপনি যখন অ্যাপ ব্যবহার করছেন না, তখন স্বয়ংক্রিয়ভাবে অফলাইন চিহ্নিত করুন।."
+ },
+ "DOCS": "ডকস পড়ুন",
+ "SECURITY": "নিরাপত্তা",
+ "CAPTAIN_AI": "ক্যাপ্টেন",
+ "CONVERSATION_WORKFLOW": "কথোপকথন ওয়ার্কফ্লো"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "ক্যাপ্টেন সেটিংস",
+ "DESCRIPTION": "ক্যাপ্টেনের জন্য আপনার AI মডেল এবং বৈশিষ্ট্যগুলি কনফিগার করুন। ক্যাপ্টেন একটি ক্রেডিট ভিত্তিক বিলিং অনুসরণ করে, নির্বাচিত মডেলের উপর ভিত্তি করে ক্যাপ্টেন যে প্রতিটি ক্রিয়া গ্রহণ করে তার জন্য আপনাকে ক্রেডিট চার্জ করা হবে।.",
+ "LOADING": "ক্যাপ্টেন কনফিগারেশন লোড হচ্ছে...",
+ "LINK_TEXT": "ক্যাপ্টেন ক্রেডিট সম্পর্কে আরও জানুন",
+ "NOT_ENABLED": "আপনার অ্যাকাউন্টের জন্য ক্যাপ্টেন সক্রিয় নয়। ক্যাপ্টেন ফিচার ব্যবহারের জন্য অনুগ্রহ করে আপনার প্ল্যান আপগ্রেড করুন।.",
+ "MODEL_CONFIG": {
+ "TITLE": "মডেল কনফিগারেশন",
+ "DESCRIPTION": "বিভিন্ন ফিচারের জন্য AI মডেল নির্বাচন করুন।.",
+ "SELECT_MODEL": "মডেল নির্বাচন করুন",
+ "CREDITS_PER_MESSAGE": "{credits} ক্রেডিট/বার্তা",
+ "COMING_SOON": "শীঘ্রই আসছে",
+ "EDITOR": {
+ "TITLE": "সম্পাদক বৈশিষ্ট্য",
+ "DESCRIPTION": "আপনার বার্তা সম্পাদককে স্মার্ট কম্পোজ, ব্যাকরণ সংশোধন, স্বর সমন্বয় এবং বিষয়বস্তু উন্নত করার ক্ষমতা প্রদান করে."
+ },
+ "ASSISTANT": {
+ "TITLE": "সহকারী",
+ "DESCRIPTION": "গ্রাহক সংলাপের জন্য স্বয়ংক্রিয় প্রতিক্রিয়া, কথোপকথনের সারাংশ এবং বুদ্ধিমান উত্তর পরামর্শ পরিচালনা করে."
+ },
+ "COPILOT": {
+ "TITLE": "কো-পাইলট",
+ "DESCRIPTION": "কথোপকথনের সময় রিয়েল-টাইম প্রাসঙ্গিক পরামর্শ, নলেজ বেস সুপারিশ এবং সক্রিয় অন্তর্দৃষ্টি প্রদান করে।."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "বৈশিষ্ট্যসমূহ",
+ "DESCRIPTION": "AI-চালিত বৈশিষ্ট্যগুলি সক্রিয় বা নিষ্ক্রিয় করুন।.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "অডিও ট্রান্সক্রিপশন",
+ "DESCRIPTION": "স্বয়ংক্রিয়ভাবে ভয়েস মেসেজ এবং কল রেকর্ডিং অনুসন্ধানযোগ্য টেক্সট ট্রান্সক্রিপ্টে রূপান্তর করুন।."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "হেল্প সেন্টার সার্চ ইনডেক্সিং",
+ "DESCRIPTION": "আপনার হেল্প সেন্টার আর্টিকেলগুলির মধ্যে প্রসঙ্গ-সচেতন অনুসন্ধানের জন্য AI ব্যবহার করুন।."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "লেবেল পরামর্শ",
+ "DESCRIPTION": "বিষয়বস্তু বিশ্লেষণ এবং প্রসঙ্গের ভিত্তিতে স্বয়ংক্রিয়ভাবে কথোপকথনের জন্য প্রাসঙ্গিক লেবেল এবং ট্যাগ প্রস্তাব করুন।.",
+ "MODEL_TITLE": "লেবেল পরামর্শ মডেল",
+ "MODEL_DESCRIPTION": "কথোপকথন বিশ্লেষণ এবং উপযুক্ত লেবেল প্রস্তাব করার জন্য ব্যবহৃত AI মডেল নির্বাচন করুন"
+ }
+ },
+ "API": {
+ "SUCCESS": "ক্যাপ্টেন সেটিংস সফলভাবে আপডেট হয়েছে।.",
+ "ERROR": "ক্যাপ্টেন সেটিংস আপডেট করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন."
+ }
+ },
+ "BILLING_SETTINGS": {
+ "TITLE": "বিলিং",
+ "DESCRIPTION": "এখানে আপনার সাবস্ক্রিপশন পরিচালনা করুন, আপনার প্ল্যান আপগ্রেড করুন এবং আপনার দলের জন্য আরও সুবিধা পান।.",
+ "CURRENT_PLAN": {
+ "TITLE": "বর্তমান প্ল্যান",
+ "PLAN_NOTE": "আপনি বর্তমানে **{plan}** প্ল্যানে **{quantity}** লাইসেন্সে সাবস্ক্রাইব করেছেন",
+ "SEAT_COUNT": "আসনের সংখ্যা",
+ "RENEWS_ON": "নবায়নের তারিখ"
+ },
+ "VIEW_PRICING": "মূল্য দেখুন",
+ "MANAGE_SUBSCRIPTION": {
+ "TITLE": "আপনার সাবস্ক্রিপশন পরিচালনা করুন",
+ "DESCRIPTION": "আপনার পূর্ববর্তী ইনভয়েস দেখুন, আপনার বিলিং বিবরণ সম্পাদনা করুন, অথবা আপনার সাবস্ক্রিপশন বাতিল করুন।.",
+ "BUTTON_TXT": "বিলিং পোর্টালে যান"
+ },
+ "CAPTAIN": {
+ "TITLE": "ক্যাপ্টেন",
+ "DESCRIPTION": "Captain AI-এর জন্য ব্যবহার এবং ক্রেডিট পরিচালনা করুন।.",
+ "BUTTON_TXT": "আরও ক্রেডিট কিনুন",
+ "DOCUMENTS": "নথিপত্র",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain ফ্রি প্ল্যানে উপলব্ধ নয়, সহকারী, কপাইলট এবং আরও অনেক কিছু অ্যাক্সেস পেতে এখনই আপগ্রেড করুন.",
+ "REFRESH_CREDITS": "রিফ্রেশ"
+ },
+ "CHAT_WITH_US": {
+ "TITLE": "সাহায্য প্রয়োজন?",
+ "DESCRIPTION": "আপনি কি বিলিংয়ে কোনো সমস্যা পাচ্ছেন? আমরা সাহায্য করতে এখানে আছি।.",
+ "BUTTON_TXT": "আমাদের সাথে চ্যাট করুন"
+ },
+ "NO_BILLING_USER": "আপনার বিলিং অ্যাকাউন্ট কনফিগার করা হচ্ছে। দয়া করে পৃষ্ঠা রিফ্রেশ করুন এবং আবার চেষ্টা করুন।.",
+ "TOPUP": {
+ "BUY_CREDITS": "আরও ক্রেডিট কিনুন",
+ "MODAL_TITLE": "AI ক্রেডিট কিনুন",
+ "MODAL_DESCRIPTION": "Captain AI-এর জন্য অতিরিক্ত ক্রেডিট কিনুন।.",
+ "CREDITS": "ক্রেডিট",
+ "ONE_TIME": "এককালীন",
+ "POPULAR": "সর্বাধিক জনপ্রিয়",
+ "NOTE_TITLE": "নোট:",
+ "NOTE_DESCRIPTION": "ক্রেডিটগুলি সঙ্গে সঙ্গে যোগ হয় এবং ৬ মাসের মধ্যে মেয়াদোত্তীর্ণ হয়। ক্রেডিট ব্যবহার করতে একটি সক্রিয় সাবস্ক্রিপশন প্রয়োজন। কেনা ক্রেডিটগুলি আপনার মাসিক প্ল্যান ক্রেডিটের পরে ব্যবহার হয়।.",
+ "CANCEL": "বাতিল করুন",
+ "PURCHASE": "ক্রেডিট ক্রয় করুন",
+ "LOADING": "অপশনগুলি লোড হচ্ছে...",
+ "FETCH_ERROR": "ক্রেডিট অপশনগুলি লোড করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "PURCHASE_ERROR": "ক্রয় প্রক্রিয়া করতে ব্যর্থ হয়েছে। অনুগ্রহ করে আবার চেষ্টা করুন।.",
+ "PURCHASE_SUCCESS": "আপনার অ্যাকাউন্টে সফলভাবে {credits} ক্রেডিট যোগ করা হয়েছে",
+ "CONFIRM": {
+ "TITLE": "ক্রয় নিশ্চিত করুন",
+ "DESCRIPTION": "আপনি {amount} এর জন্য {credits} ক্রেডিট কিনতে যাচ্ছেন।.",
+ "INSTANT_DEDUCTION_NOTE": "নিশ্চিতকরণের সঙ্গে সঙ্গে আপনার সংরক্ষিত কার্ড থেকে টাকা কেটে নেওয়া হবে।.",
+ "GO_BACK": "ফিরে যান",
+ "CONFIRM_PURCHASE": "ক্রয় নিশ্চিত করুন"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "নিরাপত্তা",
+ "DESCRIPTION": "আপনার অ্যাকাউন্টের নিরাপত্তা সেটিংস পরিচালনা করুন.",
+ "LINK_TEXT": "SAML SSO সম্পর্কে আরও জানুন",
+ "SAML_DISABLED_MESSAGE": "SAML SSO বর্তমানে নিষ্ক্রিয়। এই ফিচারটি সক্রিয় করতে আপনার প্রশাসকের সাথে যোগাযোগ করুন।.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "আপনার অ্যাকাউন্টের জন্য SAML সিঙ্গেল সাইন-অন কনফিগার করুন। ব্যবহারকারীরা ইমেল/পাসওয়ার্ড ব্যবহার করার পরিবর্তে আপনার পরিচয় প্রদানকারীর মাধ্যমে প্রমাণীকরণ করবেন।.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "অ্যাসারশন কনজিউমার সার্ভিস URL - SAML প্রতিক্রিয়াগুলির গন্তব্য হিসাবে আপনার IdP-তে এই URL কনফিগার করুন"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "SAML প্রমাণীকরণ অনুরোধগুলি যেখানে পাঠানো হবে সেই URL",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "PEM ফরম্যাটে সাইনিং সার্টিফিকেট",
+ "HELP": "SAML প্রতিক্রিয়া যাচাই করার জন্য আপনার পরিচয় প্রদানকারীর পাবলিক সার্টিফিকেট",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "ফিঙ্গারপ্রিন্ট",
+ "TOOLTIP": "সার্টিফিকেটের SHA-1 ফিঙ্গারপ্রিন্ট - আপনার IdP কনফিগারেশনে সার্টিফিকেট যাচাই করতে এটি ব্যবহার করুন"
+ },
+ "COPY_SUCCESS": "ক্লিপবোর্ডে কপি করা হয়েছে",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP এন্টিটি আইডি",
+ "HELP": "এই অ্যাপ্লিকেশনটির জন্য একটি অনন্য সনাক্তকারী হিসাবে সার্ভিস প্রোভাইডার (স্বয়ংক্রিয়ভাবে তৈরি).",
+ "TOOLTIP": "Chatwoot কে সার্ভিস প্রোভাইডার হিসাবে অনন্য সনাক্তকারী - এটি আপনার IdP সেটিংসে কনফিগার করুন"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "আইডেন্টিটি প্রোভাইডার এন্টিটি আইডি",
+ "HELP": "আপনার আইডেন্টিটি প্রোভাইডারের জন্য অনন্য সনাক্তকারী (সাধারণত IdP কনফিগারেশনে পাওয়া যায়)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML সেটিংস আপডেট করুন",
+ "API": {
+ "SUCCESS": "SAML সেটিংস সফলভাবে আপডেট হয়েছে",
+ "ERROR": "SAML সেটিংস আপডেট করতে ব্যর্থ হয়েছে",
+ "ERROR_LOADING": "SAML সেটিংস লোড করতে ব্যর্থ হয়েছে",
+ "DISABLED": "SAML সেটিংস সফলভাবে নিষ্ক্রিয় করা হয়েছে"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, এবং সার্টিফিকেট আবশ্যক ক্ষেত্র।",
+ "SSO_URL_ERROR": "একটি বৈধ SSO URL লিখুন।",
+ "CERTIFICATE_ERROR": "সার্টিফিকেট আবশ্যক।",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID আবশ্যক।"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO ফিচার শুধুমাত্র এন্টারপ্রাইজ প্ল্যানগুলিতে উপলব্ধ।.",
+ "UPGRADE_PROMPT": "SAML সিঙ্গেল সাইন-অন এবং অন্যান্য উন্নত নিরাপত্তা বৈশিষ্ট্যগুলিতে অ্যাক্সেস পেতে একটি এন্টারপ্রাইজ প্ল্যানে আপগ্রেড করুন।.",
+ "ASK_ADMIN": "আপগ্রেডের জন্য অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন।."
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO সক্ষম করতে আপগ্রেড করুন",
+ "AVAILABLE_ON": "SAML SSO বৈশিষ্ট্য শুধুমাত্র এন্টারপ্রাইজ প্ল্যানে উপলব্ধ।.",
+ "UPGRADE_PROMPT": "SAML সিঙ্গেল সাইন-অন এবং অন্যান্য উন্নত বৈশিষ্ট্যগুলিতে অ্যাক্সেস পেতে আপনার প্ল্যান আপগ্রেড করুন।.",
+ "UPGRADE_NOW": "এখনই আপগ্রেড করুন",
+ "CANCEL_ANYTIME": "আপনি যেকোনো সময় আপনার পরিকল্পনা পরিবর্তন বা বাতিল করতে পারেন"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML অ্যাট্রিবিউট সেটআপ",
+ "DESCRIPTION": "নিম্নলিখিত অ্যাট্রিবিউট ম্যাপিংগুলি আপনার পরিচয় প্রদানকারীতে কনফিগার করতে হবে"
+ },
+ "INFO_SECTION": {
+ "TITLE": "সার্ভিস প্রোভাইডার তথ্য",
+ "TOOLTIP": "এই মানগুলি কপি করুন এবং SAML সংযোগ স্থাপনের জন্য আপনার আইডেন্টিটি প্রোভাইডারে কনফিগার করুন"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "কথোপকথন ওয়ার্কফ্লোসমূহ",
+ "DESCRIPTION": "কথোপকথন সমাধানের জন্য নিয়ম এবং প্রয়োজনীয় ক্ষেত্রগুলি কনফিগার করুন."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "সমাধানের জন্য প্রয়োজনীয় বৈশিষ্ট্যসমূহ",
+ "DESCRIPTION": "কথোপকথন সমাধান করার সময়, এজেন্টদের যদি এখনও পূরণ না করে থাকে তবে এই বৈশিষ্ট্যগুলি পূরণ করতে বলা হবে.",
+ "NO_ATTRIBUTES": "এখনও কোনো বৈশিষ্ট্য যোগ করা হয়নি",
+ "ADD": {
+ "TITLE": "বৈশিষ্ট্য যোগ করুন",
+ "SEARCH_PLACEHOLDER": "বৈশিষ্ট্য অনুসন্ধান করুন"
+ },
+ "SAVE": {
+ "SUCCESS": "প্রয়োজনীয় বৈশিষ্ট্যগুলি আপডেট হয়েছে",
+ "ERROR": "প্রয়োজনীয় বৈশিষ্ট্যগুলি আপডেট করা যায়নি, অনুগ্রহ করে আবার চেষ্টা করুন"
+ },
+ "MODAL": {
+ "TITLE": "কথোপকথন সমাধান করুন",
+ "DESCRIPTION": "এই কথোপকথন সমাধান করার আগে অনুগ্রহ করে নিম্নলিখিত কাস্টম বৈশিষ্ট্যগুলি পূরণ করুন",
+ "ACTIONS": {
+ "RESOLVE": "কথোপকথন সমাধান করুন",
+ "CANCEL": "বাতিল করুন"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "একটি নোট লিখুন...",
+ "NUMBER": "একটি সংখ্যা লিখুন",
+ "LINK": "একটি লিঙ্ক যোগ করুন",
+ "DATE": "একটি তারিখ নির্বাচন করুন",
+ "LIST": "একটি বিকল্প নির্বাচন করুন"
+ },
+ "CHECKBOX": {
+ "YES": "হ্যাঁ",
+ "NO": "না"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "প্রয়োজনীয় অ্যাট্রিবিউট ব্যবহার করতে আপগ্রেড করুন",
+ "AVAILABLE_ON": "প্রয়োজনীয় কথোপকথন অ্যাট্রিবিউট ফিচারটি বিজনেস এবং এন্টারপ্রাইজ প্ল্যানে উপলব্ধ.",
+ "UPGRADE_PROMPT": "কথোপকথন সমাধানের আগে এজেন্টদের প্রয়োজনীয় অ্যাট্রিবিউট পূরণ করতে প্রম্পট করার জন্য আপনার প্ল্যান আপগ্রেড করুন.",
+ "UPGRADE_NOW": "এখনই আপগ্রেড করুন",
+ "CANCEL_ANYTIME": "আপনি যেকোনো সময় আপনার পরিকল্পনা পরিবর্তন বা বাতিল করতে পারেন"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "প্রয়োজনীয় কথোপকথন বৈশিষ্ট্যগুলি পেইড প্ল্যানে উপলব্ধ.",
+ "UPGRADE_PROMPT": "কথোপকথন সমাধানের আগে প্রয়োজনীয় বৈশিষ্ট্যগুলি কার্যকর করতে একটি পেইড প্ল্যানে আপগ্রেড করুন.",
+ "ASK_ADMIN": "আপগ্রেডের জন্য অনুগ্রহ করে আপনার প্রশাসকের সাথে যোগাযোগ করুন."
+ }
+ }
+ },
+ "CREATE_ACCOUNT": {
+ "NO_ACCOUNT_WARNING": "উফ! আমরা কোনো Chatwoot অ্যাকাউন্ট খুঁজে পাইনি। চালিয়ে যেতে একটি নতুন অ্যাকাউন্ট তৈরি করুন।.",
+ "NEW_ACCOUNT": "নতুন অ্যাকাউন্ট",
+ "SELECTOR_SUBTITLE": "নতুন অ্যাকাউন্ট তৈরি করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "অ্যাকাউন্ট সফলভাবে তৈরি হয়েছে",
+ "EXIST_MESSAGE": "অ্যাকাউন্ট ইতিমধ্যে বিদ্যমান",
+ "ERROR_MESSAGE": "Woot সার্ভারে সংযোগ করা যায়নি, অনুগ্রহ করে পরে আবার চেষ্টা করুন"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "কোম্পানির নাম",
+ "PLACEHOLDER": "ওয়েন এন্টারপ্রাইজ"
+ },
+ "SUBMIT": "জমা দিন",
+ "CANCEL": "বাতিল করুন"
+ }
+ },
+ "KEYBOARD_SHORTCUTS": {
+ "TOGGLE_MODAL": "সমস্ত শর্টকাট দেখুন",
+ "TITLE": {
+ "OPEN_CONVERSATION": "আলোচনা খুলুন",
+ "RESOLVE_AND_NEXT": "সমাধান করুন এবং পরবর্তীটিতে যান",
+ "NAVIGATE_DROPDOWN": "ড্রপডাউন আইটেমে নেভিগেট করুন",
+ "RESOLVE_CONVERSATION": "আলোচনা সমাধান করুন",
+ "GO_TO_CONVERSATION_DASHBOARD": "আলোচনা ড্যাশবোর্ডে যান",
+ "ADD_ATTACHMENT": "সংযুক্তি যুক্ত করুন",
+ "GO_TO_CONTACTS_DASHBOARD": "যোগাযোগ ড্যাশবোর্ডে যান",
+ "TOGGLE_SIDEBAR": "সাইডবার চালু/বন্ধ করুন",
+ "GO_TO_REPORTS_SIDEBAR": "রিপোর্টস সাইডবারে যান",
+ "MOVE_TO_NEXT_TAB": "আলোচনা তালিকার পরবর্তী ট্যাবে যান",
+ "GO_TO_SETTINGS": "সেটিংসে যান",
+ "SWITCH_TO_PRIVATE_NOTE": "প্রাইভেট নোটে পরিবর্তন করুন",
+ "SWITCH_TO_REPLY": "উত্তরে পরিবর্তন করুন",
+ "TOGGLE_SNOOZE_DROPDOWN": "স্নুজ ড্রপডাউন চালু/বন্ধ করুন"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "এজেন্ট বরাদ্দ",
+ "DESCRIPTION": "ইনবক্স এবং এজেন্টদের চাহিদা অনুযায়ী কাজের পরিমাণ কার্যকরভাবে পরিচালনা এবং কথোপকথন রুট করার জন্য নীতি নির্ধারণ করুন। আরও জানুন এখানে"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "বরাদ্দ নীতি",
+ "DESCRIPTION": "কিভাবে কথোপকথন ইনবক্সে বরাদ্দ হবে তা পরিচালনা করুন.",
+ "FEATURES": [
+ "কথোপকথনের ভিত্তিতে সমানভাবে বা উপলব্ধ ক্ষমতা অনুযায়ী বরাদ্দ করুন",
+ "যেকোনো এজেন্টের অতিরিক্ত কাজ এড়াতে ন্যায্য বণ্টন নিয়ম যোগ করুন",
+ "একটি নীতিতে ইনবক্স যোগ করুন - প্রতি ইনবক্স একটি নীতি"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "এজেন্ট ক্ষমতা নীতি",
+ "DESCRIPTION": "এজেন্টদের কাজের পরিমাণ পরিচালনা করুন.",
+ "FEATURES": [
+ "প্রতি ইনবক্স সর্বোচ্চ কথোপকথন নির্ধারণ করুন",
+ "লেবেল এবং সময়ের ভিত্তিতে ব্যতিক্রম তৈরি করুন",
+ "একটি নীতিতে এজেন্ট যোগ করুন - প্রতি এজেন্ট একটি নীতি"
+ ]
+ }
+ },
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "অ্যাসাইনমেন্ট নীতি",
+ "CREATE_POLICY": "নতুন নীতি"
+ },
+ "CARD": {
+ "ORDER": "অর্ডার",
+ "PRIORITY": "অগ্রাধিকার",
+ "ACTIVE": "সক্রিয়",
+ "INACTIVE": "নিষ্ক্রিয়",
+ "POPOVER": "যোগ করা ইনবক্স",
+ "EDIT": "সম্পাদনা করুন"
+ },
+ "NO_RECORDS_FOUND": "কোনো অ্যাসাইনমেন্ট নীতি পাওয়া যায়নি"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "অ্যাসাইনমেন্ট নীতি তৈরি করুন"
+ },
+ "CREATE_BUTTON": "নীতি তৈরি করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "অ্যাসাইনমেন্ট নীতি সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "অ্যাসাইনমেন্ট নীতি তৈরি করতে ব্যর্থ হয়েছে",
+ "INBOX_LINKED": "ইনবক্স নীতির সাথে সংযুক্ত হয়েছে"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "অ্যাসাইনমেন্ট নীতি সম্পাদনা করুন"
+ },
+ "EDIT_BUTTON": "নীতি আপডেট করুন",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "ইনবক্স যোগ করুন",
+ "DESCRIPTION": "{inboxName} ইনবক্স ইতিমধ্যেই অন্য একটি নীতির সাথে সংযুক্ত। আপনি কি নিশ্চিত যে এটি এই নীতির সাথে সংযুক্ত করতে চান? এটি অন্য নীতির থেকে সংযোগ বিচ্ছিন্ন হবে.",
+ "CONFIRM_BUTTON_LABEL": "চালিয়ে যান",
+ "CANCEL_BUTTON_LABEL": "বাতিল করুন"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "নীতির সাথে ইনবক্স সংযুক্ত করুন",
+ "DESCRIPTION": "আপনি কি এই ইনবক্সটি অ্যাসাইনমেন্ট নীতির সাথে সংযুক্ত করতে চান?",
+ "LINK_BUTTON": "ইনবক্স সংযুক্ত করুন",
+ "CANCEL_BUTTON": "এড়িয়ে যান"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "অ্যাসাইনমেন্ট নীতি সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "অ্যাসাইনমেন্ট নীতি আপডেট করতে ব্যর্থ হয়েছে"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "নীতিতে ইনবক্স সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "নীতিতে ইনবক্স যোগ করতে ব্যর্থ হয়েছে"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "নীতির থেকে ইনবক্স সফলভাবে সরানো হয়েছে",
+ "ERROR_MESSAGE": "নীতির থেকে ইনবক্স সরাতে ব্যর্থ হয়েছে"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "নীতির নাম:",
+ "PLACEHOLDER": "নীতির নাম লিখুন"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা:",
+ "PLACEHOLDER": "বর্ণনা লিখুন"
+ },
+ "STATUS": {
+ "LABEL": "অবস্থা:",
+ "PLACEHOLDER": "অবস্থা নির্বাচন করুন",
+ "ACTIVE": "নীতিটি সক্রিয়",
+ "INACTIVE": "নীতিটি নিষ্ক্রিয়"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "অ্যাসাইনমেন্টের ক্রম",
+ "ROUND_ROBIN": {
+ "LABEL": "রাউন্ড রবিন",
+ "DESCRIPTION": "এজেন্টদের মধ্যে কথোপকথন সমানভাবে বরাদ্দ করুন."
+ },
+ "BALANCED": {
+ "LABEL": "সামঞ্জস্যপূর্ণ",
+ "DESCRIPTION": "উপলব্ধ ক্ষমতার ভিত্তিতে কথোপকথন বরাদ্দ করুন.",
+ "PREMIUM_MESSAGE": "সামঞ্জস্যপূর্ণ অ্যাসাইনমেন্ট এবং এজেন্ট ক্যাপাসিটি ব্যবস্থাপনার জন্য আপগ্রেড করুন.",
+ "PREMIUM_BADGE": "প্রিমিয়াম"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "বরাদ্দ অগ্রাধিকার",
+ "EARLIEST_CREATED": {
+ "LABEL": "সর্বপ্রথম তৈরি",
+ "DESCRIPTION": "যে কথোপকথনটি প্রথম তৈরি হয়েছে সেটি প্রথম বরাদ্দ করা হবে."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "সবচেয়ে দীর্ঘ সময় অপেক্ষমাণ",
+ "DESCRIPTION": "সবচেয়ে দীর্ঘ সময় অপেক্ষমাণ কথোপকথনটি প্রথমে বরাদ্দ করা হয়."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "ন্যায্য বণ্টন নীতি",
+ "DESCRIPTION": "কোনো এক এজেন্টের অতিরিক্ত কাজ এড়াতে একটি নির্দিষ্ট সময়ের মধ্যে প্রতি এজেন্টকে বরাদ্দ করা সর্বোচ্চ কথোপকথনের সংখ্যা নির্ধারণ করুন। এই আবশ্যক ক্ষেত্রের ডিফল্ট মান প্রতি ঘণ্টায় ১০০ কথোপকথন.",
+ "INPUT_MAX": "সর্বোচ্চ বরাদ্দ করুন",
+ "DURATION": "প্রতি এজেন্ট প্রতি কথোপকথন প্রতি"
+ },
+ "INBOXES": {
+ "LABEL": "যোগ করা ইনবক্স",
+ "DESCRIPTION": "যেসব ইনবক্সের জন্য এই নীতি প্রযোজ্য হবে সেগুলি যোগ করুন.",
+ "ADD_BUTTON": "ইনবক্স যোগ করুন",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "যোগ করার জন্য ইনবক্স অনুসন্ধান এবং নির্বাচন করুন",
+ "ADD_BUTTON": "যোগ করুন"
+ },
+ "EMPTY_STATE": "এই নীতিতে কোনো ইনবক্স যোগ করা হয়নি, শুরু করতে একটি ইনবক্স যোগ করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "নীতিতে ইনবক্স সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "নীতিতে ইনবক্স যোগ করতে ব্যর্থ হয়েছে"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "অ্যাসাইনমেন্ট নীতি সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "অ্যাসাইনমেন্ট নীতি মুছে ফেলা ব্যর্থ হয়েছে"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "এজেন্ট ক্ষমতা",
+ "CREATE_POLICY": "নতুন নীতি"
+ },
+ "CARD": {
+ "POPOVER": "যোগ করা এজেন্ট",
+ "EDIT": "সম্পাদনা"
+ },
+ "NO_RECORDS_FOUND": "কোনো এজেন্ট ক্যাপাসিটি নীতি পাওয়া যায়নি"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "এজেন্ট ক্ষমতা নীতি তৈরি করুন"
+ },
+ "CREATE_BUTTON": "নীতি তৈরি করুন",
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট ক্ষমতা নীতি সফলভাবে তৈরি হয়েছে",
+ "ERROR_MESSAGE": "এজেন্ট ক্ষমতা নীতি তৈরি করতে ব্যর্থ হয়েছে"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "এজেন্ট ক্ষমতা নীতি সম্পাদনা করুন"
+ },
+ "EDIT_BUTTON": "নীতিটি আপডেট করুন",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "এজেন্ট যোগ করুন",
+ "DESCRIPTION": "{agentName} ইতিমধ্যেই অন্য নীতির সাথে সংযুক্ত। আপনি কি নিশ্চিত যে এটি এই নীতির সাথে সংযুক্ত করতে চান? এটি অন্য নীতির থেকে বিচ্ছিন্ন হয়ে যাবে.",
+ "CONFIRM_BUTTON_LABEL": "চালিয়ে যান",
+ "CANCEL_BUTTON_LABEL": "বাতিল করুন"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট ক্ষমতা নীতি সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "এজেন্ট ক্ষমতা নীতি আপডেট করতে ব্যর্থ হয়েছে"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "নীতিতে এজেন্ট সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "নীতিতে এজেন্ট যোগ করতে ব্যর্থ হয়েছে"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "নীতির থেকে এজেন্ট সফলভাবে সরানো হয়েছে",
+ "ERROR_MESSAGE": "নীতিমালা থেকে এজেন্ট সরানো ব্যর্থ হয়েছে"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "ইনবক্স সীমা সফলভাবে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "ইনবক্স সীমা যোগ করতে ব্যর্থ হয়েছে"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "ইনবক্স সীমা সফলভাবে আপডেট হয়েছে",
+ "ERROR_MESSAGE": "ইনবক্স সীমা আপডেট করতে ব্যর্থ হয়েছে"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "ইনবক্স সীমা সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "ইনবক্স সীমা মুছে ফেলতে ব্যর্থ হয়েছে"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "নীতিমালার নাম:",
+ "PLACEHOLDER": "নীতিমালার নাম লিখুন"
+ },
+ "DESCRIPTION": {
+ "LABEL": "বর্ণনা:",
+ "PLACEHOLDER": "বর্ণনা লিখুন"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "ইনবক্স ক্ষমতার সীমা",
+ "ADD_BUTTON": "ইনবক্স যোগ করুন",
+ "FIELD": {
+ "SELECT_INBOX": "ইনবক্স নির্বাচন করুন",
+ "MAX_CONVERSATIONS": "সর্বোচ্চ কথোপকথন",
+ "SET_LIMIT": "সীমা নির্ধারণ করুন"
+ },
+ "EMPTY_STATE": "কোন ইনবক্স সীমা নির্ধারিত হয়নি"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "বর্জন নিয়মাবলী",
+ "DESCRIPTION": "যেসব কথোপকথন নিম্নলিখিত শর্ত পূরণ করে সেগুলো এজেন্টের ক্ষমতার মধ্যে গণনা হবে না",
+ "TAGS": {
+ "LABEL": "নির্দিষ্ট লেবেলযুক্ত কথোপকথন বাদ দিন",
+ "ADD_TAG": "ট্যাগ যোগ করুন",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ট্যাগ অনুসন্ধান করুন এবং যোগ করার জন্য নির্বাচন করুন"
+ },
+ "EMPTY_STATE": "এই নীতিতে কোনো ট্যাগ যোগ করা হয়নি."
+ },
+ "DURATION": {
+ "LABEL": "নির্দিষ্ট সময়কাল থেকে পুরনো কথোপকথন বাদ দিন",
+ "PLACEHOLDER": "সময় নির্ধারণ করুন"
+ }
+ },
+ "USERS": {
+ "LABEL": "নির্ধারিত এজেন্টরা",
+ "DESCRIPTION": "যে এজেন্টদের জন্য এই নীতি প্রযোজ্য হবে তাদের যোগ করুন.",
+ "ADD_BUTTON": "এজেন্ট যোগ করুন",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "যোগ করার জন্য এজেন্ট অনুসন্ধান করুন এবং নির্বাচন করুন",
+ "ADD_BUTTON": "যোগ করুন"
+ },
+ "EMPTY_STATE": "কোনো এজেন্ট যোগ করা হয়নি",
+ "API": {
+ "SUCCESS_MESSAGE": "এজেন্ট সফলভাবে নীতিতে যোগ করা হয়েছে",
+ "ERROR_MESSAGE": "নীতিতে এজেন্ট যোগ করতে ব্যর্থ হয়েছে"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "এজেন্ট ক্যাপাসিটি নীতি সফলভাবে মুছে ফেলা হয়েছে",
+ "ERROR_MESSAGE": "এজেন্ট ক্যাপাসিটি পলিসি মুছে ফেলতে ব্যর্থ হয়েছে"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "পলিসি মুছুন",
+ "DESCRIPTION": "আপনি কি নিশ্চিত যে আপনি এই পলিসিটি মুছে ফেলতে চান? এই ক্রিয়াটি পূর্বাবস্থায় ফেরানো যাবে না.",
+ "CONFIRM_BUTTON_LABEL": "মুছুন",
+ "CANCEL_BUTTON_LABEL": "বাতিল করুন"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/signup.json b/app/javascript/dashboard/i18n/locale/bn/signup.json
new file mode 100644
index 000000000..46a21aa23
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/signup.json
@@ -0,0 +1,57 @@
+{
+ "REGISTER": {
+ "TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
+ "TITLE": "Register",
+ "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
+ "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
+ "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "OAUTH": {
+ "GOOGLE_SIGNUP": "Sign up with Google"
+ },
+ "COMPANY_NAME": {
+ "LABEL": "Company name",
+ "PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
+ "ERROR": "Company name is too short."
+ },
+ "FULL_NAME": {
+ "LABEL": "Full name",
+ "PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
+ "ERROR": "Full name is too short."
+ },
+ "EMAIL": {
+ "LABEL": "Work email",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "Please enter a valid work email address."
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short.",
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Registration Successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Create account",
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "যাচাইকরণ ইমেল পুনরায় পাঠান",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/sla.json b/app/javascript/dashboard/i18n/locale/bn/sla.json
new file mode 100644
index 000000000..9ab41fb82
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/sla.json
@@ -0,0 +1,117 @@
+{
+ "SLA": {
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "SLA Name",
+ "PLACEHOLDER": "SLA Name",
+ "REQUIRED_ERROR": "SLA name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "SLA for premium customers"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "LABEL": "First Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "NEXT_RESPONSE_TIME": {
+ "LABEL": "Next Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "RESOLUTION_TIME": {
+ "LABEL": "Resolution Time",
+ "PLACEHOLDER": "60"
+ },
+ "BUSINESS_HOURS": {
+ "LABEL": "Business Hours",
+ "PLACEHOLDER": "Only during business hours"
+ },
+ "THRESHOLD_TIME": {
+ "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "ADD": {
+ "TITLE": "Add SLA",
+ "DESC": "Friendly promises for great service!",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete SLA",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/snooze.json b/app/javascript/dashboard/i18n/locale/bn/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json
new file mode 100644
index 000000000..f3ce7f167
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/teamsSettings.json
@@ -0,0 +1,124 @@
+{
+ "TEAMS_SETTINGS": {
+ "NEW_TEAM": "Create new team",
+ "HEADER": "Teams",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
+ "LIST": {
+ "404": "There are no teams created on this account.",
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
+ },
+ "CREATE_FLOW": {
+ "CREATE": {
+ "TITLE": "Create a new team",
+ "DESC": "Add a title and description to your new team."
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Add agents to team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
+ },
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "EDIT_FLOW": {
+ "CREATE": {
+ "TITLE": "Edit your team details",
+ "DESC": "Edit title and description to your team.",
+ "BUTTON_TEXT": "Update team"
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Update agents in team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
+ },
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "TEAM_FORM": {
+ "ERROR_MESSAGE": "Couldn't save the team details. Try again."
+ },
+ "AGENTS": {
+ "AGENT": "Agent",
+ "EMAIL": "Email",
+ "BUTTON_TEXT": "Add agents",
+ "ADD_AGENTS": "Adding Agents to your Team...",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
+ },
+ "ADD": {
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
+ "BUTTON_TEXT": "Add agents",
+ "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ },
+ "FINISH": {
+ "TITLE": "Your team is ready!",
+ "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
+ "BUTTON_TEXT": "Finish"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Team deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the team. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure you want to delete the team?",
+ "PLACE_HOLDER": "Please type {teamName} to confirm",
+ "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "SETTINGS": "Settings",
+ "FORM": {
+ "UPDATE": "Update team",
+ "CREATE": "Create team",
+ "NAME": {
+ "LABEL": "Team name",
+ "PLACEHOLDER": "Example: Sales, Customer Support"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Team Description",
+ "PLACEHOLDER": "Short description about this team."
+ },
+ "AUTO_ASSIGN": {
+ "LABEL": "Allow auto assign for this team."
+ },
+ "SUBMIT_CREATE": "Create team"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/webhooks.json b/app/javascript/dashboard/i18n/locale/bn/webhooks.json
new file mode 100644
index 000000000..347c96893
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/webhooks.json
@@ -0,0 +1,5 @@
+{
+ "WEBHOOKS_SETTINGS": {
+ "HEADER": "Webhook Settings"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json
new file mode 100644
index 000000000..cf28312dc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/whatsappTemplates.json
@@ -0,0 +1,47 @@
+{
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/bn/yearInReview.json b/app/javascript/dashboard/i18n/locale/bn/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/bn/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json
index 5b8453224..9ca94f33b 100644
--- a/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ca/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
"TITLE": "Filtre de converses",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "Afegiu els vostres filtres a continuació i premeu 'Aplicar filtres' per eliminar el desordre del xat.",
+ "EDIT_CUSTOM_FILTER": "Edita la carpeta",
+ "CUSTOM_VIEWS_SUBTITLE": "Afegeix o elimina filtres i actualitza la teva carpeta.",
+ "ADD_NEW_FILTER": "Afegeix un filtre",
+ "FILTER_DELETE_ERROR": "Vaja, sembla que no podem desar res! Afegiu almenys un filtre per desar-lo.",
"SUBMIT_BUTTON_LABEL": "Aplicar filtres",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "Actualitza la carpeta",
"CANCEL_BUTTON_LABEL": "Cancel·la",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
+ "CLEAR_BUTTON_LABEL": "Esborra els filtres",
+ "FOLDER_LABEL": "Nom de la carpeta",
+ "FOLDER_QUERY_LABEL": "Consulta de carpeta",
"EMPTY_VALUE_ERROR": "El valor és necessari.",
"TOOLTIP_LABEL": "Filtre de converses",
"QUERY_DROPDOWN_LABELS": {
"AND": "I",
"OR": "O"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Igual a",
"not_equal_to": "No és igual a",
- "contains": "Conté",
"does_not_contain": "No conté",
"is_present": "És present",
"is_not_present": "No és present",
"is_greater_than": "És més gran que",
"is_less_than": "És més petit que",
- "days_before": "Is x days before",
- "starts_with": "Starts with"
+ "days_before": "És x dies abans",
+ "starts_with": "Comença amb",
+ "equalTo": "Igual a",
+ "notEqualTo": "No és igual a",
+ "contains": "Conté",
+ "doesNotContain": "No conté",
+ "isPresent": "És present",
+ "isNotPresent": "No és present",
+ "isGreaterThan": "És més gran que",
+ "isLessThan": "És més petit que",
+ "daysBefore": "És x dies abans",
+ "startsWith": "Comença amb"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Cert",
@@ -36,66 +46,72 @@
},
"ATTRIBUTES": {
"STATUS": "Estat",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "Team name",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "ASSIGNEE_NAME": "Nom assignat",
+ "INBOX_NAME": "Nom de la safata d'entrada",
+ "TEAM_NAME": "Nom de l'equip",
+ "CONVERSATION_IDENTIFIER": "Identificador de conversa",
+ "CAMPAIGN_NAME": "Nom de la campanya",
"LABELS": "Etiquetes",
- "BROWSER_LANGUAGE": "Browser language",
- "PRIORITY": "Priority",
- "COUNTRY_NAME": "Country name",
- "REFERER_LINK": "Referer link",
- "CUSTOM_ATTRIBUTE_LIST": "List",
+ "BROWSER_LANGUAGE": "Idioma del navegador",
+ "PRIORITY": "Prioritat",
+ "COUNTRY_NAME": "Nom del país",
+ "REFERER_LINK": "Enllaç de referència",
+ "CUSTOM_ATTRIBUTE_LIST": "Llista",
"CUSTOM_ATTRIBUTE_TEXT": "Llista",
"CUSTOM_ATTRIBUTE_NUMBER": "Número",
"CUSTOM_ATTRIBUTE_LINK": "Enllaç",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
- "CREATED_AT": "Created at",
- "LAST_ACTIVITY": "Last activity"
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Casella de selecció",
+ "CREATED_AT": "Creat a",
+ "LAST_ACTIVITY": "Última activitat"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "El valor és necessari",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "Filtres estàndard",
+ "ADDITIONAL_FILTERS": "Filtres addicionals",
+ "CUSTOM_ATTRIBUTES": "Atributs personalitzats"
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "Do you want to save this filter?",
- "LABEL": "Name this filter",
- "PLACEHOLDER": "Name your filter to refer it later.",
- "ERROR_MESSAGE": "Name is required.",
- "SAVE_BUTTON": "Save filter",
+ "TITLE": "Vols desar aquest filtre?",
+ "LABEL": "Anomena aquest filtre",
+ "PLACEHOLDER": "Anomena el teu filtre per referir-lo més endavant.",
+ "ERROR_MESSAGE": "El nom és obligatori.",
+ "SAVE_BUTTON": "Desa el filtre",
"CANCEL_BUTTON": "Cancel·la",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder created successfully.",
- "ERROR_MESSAGE": "Error while creating folder."
+ "SUCCESS_MESSAGE": "Carpeta creada correctament.",
+ "ERROR_MESSAGE": "S'ha produït un error en crear la carpeta."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment created successfully.",
- "ERROR_MESSAGE": "Error while creating segment."
+ "SUCCESS_MESSAGE": "Segment creat correctament.",
+ "ERROR_MESSAGE": "S'ha produït un error en crear el segment."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "Editar la carpeta"
},
"DELETE": {
- "DELETE_BUTTON": "Delete filter",
+ "DELETE_BUTTON": "Suprimir el filtre",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the filter ",
- "YES": "Yes, delete",
- "NO": "No, keep it"
+ "TITLE": "Confirmar la supressió",
+ "MESSAGE": "Esteu segur que suprimiu el filtre ",
+ "YES": "Sí, esborra",
+ "NO": "No, guarda-ho"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting folder."
+ "SUCCESS_MESSAGE": "La carpeta s'ha suprimit correctament.",
+ "ERROR_MESSAGE": "S'ha produït un error en suprimir la carpeta."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting segment."
+ "SUCCESS_MESSAGE": "El segment s'ha suprimit correctament.",
+ "ERROR_MESSAGE": "S'ha produït un error en suprimir el segment."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/agentBots.json b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
index 05c65ed72..7dcb782bb 100644
--- a/app/javascript/dashboard/i18n/locale/ca/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ca/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "Bots",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "Selecciona un bot d'agent",
+ "DESC": "Assigna un bot d'agent a la teva safata d'entrada. Poden gestionar les converses inicials i transferir-les a un agent en directe quan sigui necessari.",
"SUBMIT": "Actualitza",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "Desconnecta el bot",
+ "SUCCESS_MESSAGE": "S'ha actualitzat correctament el bot de l'agent.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "S'ha desconnectat correctament el bot de l'agent.",
+ "ERROR_MESSAGE": "No s'ha pogut actualitzar el bot de l'agent. Torneu-ho a provar.",
+ "DISCONNECTED_ERROR_MESSAGE": "No s'ha pogut desconnectar el bot de l'agent. Torneu-ho a provar.",
+ "SELECT_PLACEHOLDER": "Selecciona el bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "Bot afegit correctament.",
+ "ERROR_MESSAGE": "No s'ha pogut afegir el bot. Torneu-ho a provar més endavant."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "S'estan obtenint bots...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "URL del webhook",
+ "ACTIONS": "Accions"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Esborrar",
- "TITLE": "Delete bot",
- "SUBMIT": "Esborrar",
- "CANCEL_BUTTON_TEXT": "Cancel·la",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "TITLE": "Suprimeix el bot",
+ "CONFIRM": {
+ "TITLE": "Confirma l'esborrat",
+ "MESSAGE": "Are you sure you want to delete {name}?",
+ "YES": "Si, esborra",
+ "NO": "No, segueix"
+ },
"API": {
- "SUCCESS_MESSAGE": "Bot deleted successfully.",
- "ERROR_MESSAGE": "Could not delete bot. Please try again."
+ "SUCCESS_MESSAGE": "S'ha esborrat el bot correctament.",
+ "ERROR_MESSAGE": "No s'ha pogut eliminar el bot. Torneu-ho a provar més endavant."
}
},
"EDIT": {
"BUTTON_TEXT": "Edita",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Cancel·la",
+ "TITLE": "Edita el bot",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "Bot actualitzat correctament.",
+ "ERROR_MESSAGE": "No s'ha pogut actualitzar el bot. Torneu-ho a provar."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
index 829bcc7ef..bf6a477b3 100644
--- a/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Afegir Agent",
"LOADING": "S'està recollint la llista d'agents",
- "SIDEBAR_TXT": "Agents
Un Agent és membre del vostre equip d’atenció al client.
Els agents podran veure i respondre missatges dels teus usuaris. La llista mostra tots els agents que hi ha actualment al teu compte.
Fer clic a Afegeix Agent per afegir un agent nou. L’agent que afegeixes rebrà un correu electrònic amb un enllaç de confirmació per activar el seu compte, després del qual podrà accedir a Chatwoot i respondre als missatges.
L’accés a les funcions de Chatwoot es basa en els següents rols.
Agent - Els agents amb aquesta funció només poden accedir a les bústies d’entrada, als informes i a les converses. Poden assignar converses a altres agents o a ells mateixos i resoldre converses.
Administrador - L'administrador tindrà accés a totes les funcions de Chatwoot habilitades per al teu compte, inclosa la configuració, juntament amb tots els privilegis dels agents normals.
",
+ "DESCRIPTION": "Un agent és un membre del vostre equip d'atenció al client que pot veure i respondre als missatges dels usuaris. La llista següent mostra tots els agents del vostre compte.",
+ "LEARN_MORE": "Rakibkazi",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrador/a",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "No hi ha agents associats a aquest compte",
"TITLE": "Gestiona agents en el teu equip",
@@ -17,7 +19,8 @@
"STATUS": "Estat",
"ACTIONS": "Accions",
"VERIFIED": "Verificat",
- "VERIFICATION_PENDING": "Verificació pendent"
+ "VERIFICATION_PENDING": "Verificació pendent",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Afegir agent al teu equip",
@@ -31,7 +34,7 @@
"AGENT_TYPE": {
"LABEL": "Tipus d'Agent",
"PLACEHOLDER": "Selecciona un tipus",
- "ERROR": "El tipus d'Agent és necessari"
+ "ERROR": "El rol és necessari"
},
"EMAIL": {
"LABEL": "Adreça de correu electrònic",
@@ -76,8 +79,8 @@
},
"AGENT_AVAILABILITY": {
"LABEL": "Disponibilitat",
- "PLACEHOLDER": "Please select an availability status",
- "ERROR": "Availability is required"
+ "PLACEHOLDER": "Seleccioneu un estat de disponibilitat",
+ "ERROR": "Es requereix disponibilitat"
},
"SUBMIT": "Editar l'agent"
},
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
+ "SEARCH_PLACEHOLDER": "Cerca agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No s'ha trobat agents."
},
@@ -103,6 +108,9 @@
"AGENT": "Seleccionar Agent",
"TEAM": "Selecciona equip"
},
+ "LIST": {
+ "NONE": "Ningú"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No s'han trobat agents",
@@ -111,7 +119,7 @@
"PLACEHOLDER": {
"AGENT": "Cerca agents",
"TEAM": "Cerca equips",
- "INPUT": "Search for agents"
+ "INPUT": "Cerca agent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
index 04cddfe5e..93313e7e9 100644
--- a/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/attributesMgmt.json
@@ -1,121 +1,147 @@
{
"ATTRIBUTES_MGMT": {
"HEADER": "Atributs personalitzats",
- "HEADER_BTN_TXT": "Add Custom Attribute",
- "LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "HEADER_BTN_TXT": "Afegir atribut personalitzat",
+ "LOADING": "S'estan recollint atributs personalitzats",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Cerca atributs...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversa",
+ "CONTACT": "Contacte",
+ "COMPANY": "Companyia"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Llista",
+ "NUMBER": "Número",
+ "LINK": "Enllaç",
+ "DATE": "Date",
+ "LIST": "Llista",
+ "CHECKBOX": "Casella de selecció"
+ },
"ADD": {
- "TITLE": "Add Custom Attribute",
+ "TITLE": "Afegir atribut personalitzat",
"SUBMIT": "Crear",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"FORM": {
"NAME": {
- "LABEL": "Display Name",
- "PLACEHOLDER": "Enter custom attribute display name",
- "ERROR": "Name is required"
+ "LABEL": "Mostre el nom",
+ "PLACEHOLDER": "Introdueix el nom de visualització de l'atribut personalitzat",
+ "ERROR": "El valor és necessari"
},
"DESC": {
"LABEL": "Descripció",
- "PLACEHOLDER": "Enter custom attribute description",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "Introdueix la descripció de l'atribut personalitzat",
+ "ERROR": "La descripció és necessària"
},
"MODEL": {
- "LABEL": "Applies to",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Model is required"
+ "LABEL": "S'aplica a",
+ "PLACEHOLDER": "Selecciona un",
+ "ERROR": "El model és necessari"
},
"TYPE": {
- "LABEL": "Type",
+ "LABEL": "Tipus",
"PLACEHOLDER": "Selecciona un tipus",
- "ERROR": "Type is required",
+ "ERROR": "El tipus és necessari",
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter value and press enter key",
- "ERROR": "Must have at least one value"
+ "LABEL": "Llista de valors",
+ "PLACEHOLDER": "Introdueix el valor i prem la tecla Intro",
+ "ERROR": "Ha de tenir almenys un valor"
}
},
"KEY": {
- "LABEL": "Key",
- "PLACEHOLDER": "Enter custom attribute key",
- "ERROR": "Key is required",
- "IN_VALID": "Invalid key"
+ "LABEL": "Clau",
+ "PLACEHOLDER": "Introduïu la clau d'atribut personalitzada",
+ "ERROR": "La clau és necessària",
+ "IN_VALID": "Clau no vàlida"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Patró d'expressió regular",
+ "PLACEHOLDER": "Introdueix un patró d'expressió regular d'atribut personalitzat. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Senyal d'expressió regular",
+ "PLACEHOLDER": "Introdueix la pista del patró d'expressió regular. (Opcional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Activa la validació d'expressions regulars"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
- "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ "SUCCESS_MESSAGE": "Atribut personalitzat afegit correctament!",
+ "ERROR_MESSAGE": "No s'ha pogut crear un atribut personalitzat. Intenta-ho més tard."
}
},
"DELETE": {
"BUTTON_TEXT": "Esborrar",
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ "SUCCESS_MESSAGE": "Atribut personalitzat suprimit correctament.",
+ "ERROR_MESSAGE": "No s'ha pogut suprimir l'atribut personalitzat. Torna-ho a provar."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
- "PLACE_HOLDER": "Please type {attributeName} to confirm",
- "MESSAGE": "Deleting will remove the custom attribute",
+ "TITLE": "Estàs segur que vols suprimir - {attributeName}",
+ "PLACE_HOLDER": "Escriu {attributeName} per confirmar",
+ "MESSAGE": "En suprimir, s'eliminarà l'atribut personalitzat",
"YES": "Suprimeix ",
"NO": "Cancel·la"
}
},
"EDIT": {
- "TITLE": "Edit Custom Attribute",
+ "TITLE": "Edita atribut personalitzat",
"UPDATE_BUTTON_TEXT": "Actualitza",
"TYPE": {
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter values and press enter key"
+ "LABEL": "Llista de valors",
+ "PLACEHOLDER": "Introdueix els valors i prem la tecla Intro"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
- "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ "SUCCESS_MESSAGE": "Atribut personalitzat actualitzat correctament",
+ "ERROR_MESSAGE": "S'ha produït un error en actualitzar l'atribut personalitzat. Torneu-ho a provar"
}
},
"TABS": {
"HEADER": "Atributs personalitzats",
- "CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONVERSATION": "Conversa",
+ "CONTACT": "Contacte",
+ "COMPANY": "Companyia"
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Descripció",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Descripció",
+ "TYPE": "Tipus",
+ "KEY": "Clau"
+ },
"BUTTONS": {
"EDIT": "Edita",
"DELETE": "Esborrar"
},
"EMPTY_RESULT": {
- "404": "There are no custom attributes created",
- "NOT_FOUND": "There are no custom attributes configured"
+ "404": "No s'han creat atributs personalitzats",
+ "NOT_FOUND": "No hi ha atributs personalitzats configurats"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Patró d'expressió regular",
+ "PLACEHOLDER": "Introdueix un patró d'expressió regular d'atribut personalitzat. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Senyal d'expressió regular",
+ "PLACEHOLDER": "Introdueix la pista del patró d'expressió regular. (Opcional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Activa la validació d'expressions regulars"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/auditLogs.json b/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
index 6cb1c776f..17d4d02ac 100644
--- a/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ca/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
+ "HEADER": "Registres d'auditoria",
+ "HEADER_BTN_TXT": "Afegeix registres d'auditoria",
+ "LOADING": "S'estan recollint registres d'auditoria",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta",
- "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "SIDEBAR_TXT": "Registres d'auditoria
Els registres d'auditoria són pistes d'esdeveniments i accions en un sistema de Chatwoot.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Adreça IP"
- ]
+ "404": "No hi ha registres d'auditoria disponibles en aquest compte.",
+ "TITLE": "Gestiona els registres d'auditoria",
+ "DESC": "Els registres d'auditoria són pistes d'esdeveniments i accions en un sistema Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Temps",
+ "IP_ADDRESS": "Adreça IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "SUCCESS_MESSAGE": "Els registres d'auditoria s'han recuperat correctament",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "Sistema",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} ha convidat {invitee} al compte com a {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} ha canviat els seus {attributes} a {values}",
+ "OTHER": "{agentName} ha canviat {attributes} de {user} a {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} ha iniciat la sessió",
+ "SIGN_OUT": "{agentName} ha tancat la sessió"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 9f3429c8b..170d703b8 100644
--- a/app/javascript/dashboard/i18n/locale/ca/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/automation.json
@@ -1,54 +1,58 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
- "LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "HEADER": "Automatització",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "S'estan recollint regles d'automatització",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
- "TITLE": "Add Automation Rule",
+ "TITLE": "Afegeix una regla d'automatització",
"SUBMIT": "Crear",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"FORM": {
"NAME": {
- "LABEL": "Rule Name",
- "PLACEHOLDER": "Enter rule name",
- "ERROR": "Name is required"
+ "LABEL": "Nom de la regla",
+ "PLACEHOLDER": "Introdueix el nom de la regla",
+ "ERROR": "El valor és necessari"
},
"DESC": {
"LABEL": "Descripció",
- "PLACEHOLDER": "Enter rule description",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "Introdueix la descripció de la regla",
+ "ERROR": "La descripció és necessària"
},
"EVENT": {
"LABEL": "Esdeveniment",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Event is required"
+ "PLACEHOLDER": "Selecciona un",
+ "ERROR": "És necessari un esdeveniment"
},
"CONDITIONS": {
- "LABEL": "Conditions"
+ "LABEL": "Condicions"
},
"ACTIONS": {
"LABEL": "Accions"
}
},
- "CONDITION_BUTTON_LABEL": "Add Condition",
- "ACTION_BUTTON_LABEL": "Add Action",
+ "CONDITION_BUTTON_LABEL": "Afegeix condició",
+ "ACTION_BUTTON_LABEL": "Afegeix acció",
"API": {
- "SUCCESS_MESSAGE": "Automation rule added successfully",
- "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "La regla d'automatització s'ha afegit correctament",
+ "ERROR_MESSAGE": "No s'ha pogut crear una regla d'automatització. Intenta-ho més tard"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Descripció",
- "Active",
- "Created on"
- ],
- "404": "No automation rules found"
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "ACTIVE": "Actiu",
+ "CREATED_ON": "Creat el",
+ "ACTIONS": "Accions"
+ },
+ "404": "No s'han trobat regles d'automatització"
},
"DELETE": {
- "TITLE": "Delete Automation Rule",
+ "TITLE": "Suprimeix una regla d'automatització",
"SUBMIT": "Esborrar",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"CONFIRM": {
@@ -58,24 +62,24 @@
"NO": "No, segueix "
},
"API": {
- "SUCCESS_MESSAGE": "Automation rule deleted successfully",
- "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "La regla d'automatització s'ha suprimit correctament",
+ "ERROR_MESSAGE": "No s'ha pogut suprimir una regla d'automatització. Intenta-ho més tard"
}
},
"EDIT": {
- "TITLE": "Edit Automation Rule",
+ "TITLE": "Edita una regla d'automatització",
"SUBMIT": "Actualitza",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"API": {
- "SUCCESS_MESSAGE": "Automation rule updated successfully",
- "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "La regla d'automatització s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut actualitzar una regla d'automatització. Intenta-ho més tard"
}
},
"CLONE": {
- "TOOLTIP": "Clone",
+ "TOOLTIP": "Clona",
"API": {
- "SUCCESS_MESSAGE": "Automation cloned successfully",
- "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "L'automatització s'ha clonat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut clonar una regla d'automatització. Intenta-ho més tard"
}
},
"FORM": {
@@ -83,36 +87,107 @@
"CREATE": "Crear",
"DELETE": "Esborrar",
"CANCEL": "Cancel·la",
- "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ "RESET_MESSAGE": "Si canvies el tipus d'esdeveniment, es restabliran les condicions i els esdeveniments que has afegit a continuació"
},
"CONDITION": {
- "DELETE_MESSAGE": "You need to have atleast one condition to save",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "DELETE_MESSAGE": "Necessites almenys una condició per desar",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Contacta amb Atributs personalitzats",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Atributs personalitzats de conversa"
},
"ACTION": {
- "DELETE_MESSAGE": "You need to have atleast one action to save",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "DELETE_MESSAGE": "Necessites almenys una acció per desar",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Introdueix el teu missatge aquí",
+ "TEAM_DROPDOWN_PLACEHOLDER": "Selecciona els equips",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Activate Automation Rule",
- "DEACTIVATION_TITLE": "Deactivate Automation Rule",
- "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
- "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
- "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
- "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "ACTIVATION_TITLE": "Activa la regla d'automatització",
+ "DEACTIVATION_TITLE": "Desactiva la regla d'automatització",
+ "ACTIVATION_DESCRIPTION": "Aquesta acció activarà la regla d'automatització '{automationName}'. Estàs segur que vols continuar?",
+ "DEACTIVATION_DESCRIPTION": "Aquesta acció desactivarà la regla d'automatització '{automationName}'. Estàs segur que vols continuar?",
+ "ACTIVATION_SUCCESFUL": "La regla d'automatització s'ha activat correctament",
+ "DEACTIVATION_SUCCESFUL": "La regla d'automatització s'ha desactivat correctament",
+ "ACTIVATION_ERROR": "No s'ha pogut activar l'automatització. Intenta-ho més tard",
+ "DEACTIVATION_ERROR": "No s'ha pogut desactivar l'automatització. Intenta-ho més tard",
"CONFIRMATION_LABEL": "Si",
"CANCEL_LABEL": "No"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Could not upload attachment, Please try again",
- "LABEL_IDLE": "Upload Attachment",
+ "UPLOAD_ERROR": "No s'ha pogut carregar el fitxer adjunt. Torna-ho a provar",
+ "LABEL_IDLE": "Puja fitxer adjunt",
"LABEL_UPLOADING": "S'està carregant...",
- "LABEL_UPLOADED": "Successfully Uploaded",
- "LABEL_UPLOAD_FAILED": "Upload Failed"
+ "LABEL_UPLOADED": "S'ha pujat correctament",
+ "LABEL_UPLOAD_FAILED": "Ha fallat la pujada"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "El valor és necessari",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Ningú",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa Creada",
+ "CONVERSATION_UPDATED": "Conversa Actualitzada",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Canvia la prioritat",
+ "ADD_SLA": "Afegeix SLA",
+ "OPEN_CONVERSATION": "Obrir conversa",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ningú",
+ "LOW": "Baixa",
+ "MEDIUM": "Mitjana",
+ "HIGH": "Alta",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Nota privada",
+ "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",
+ "COMPANY_NAME": "Companyia",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Cessionari",
+ "TEAM_NAME": "Equip",
+ "PRIORITY": "Prioritat",
+ "LABELS": "Etiquetes"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
index 9cd87b5d6..a4713996a 100644
--- a/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ca/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Seleccionar Agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assignar",
+ "CONVERSATIONS_SELECTED": "{conversationCount} converses seleccionades",
+ "NONE": "Ningú",
+ "CLEAR_SELECTION": "Neteja",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Si",
- "ASSIGN_AGENT_TOOLTIP": "Assign agent",
- "ASSIGN_TEAM_TOOLTIP": "Assign team",
- "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
- "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
+ "CANCEL": "Cancel·la",
+ "SEARCH_INPUT_PLACEHOLDER": "Cercar",
+ "ASSIGN_AGENT_TOOLTIP": "Assigna un agent",
+ "ASSIGN_TEAM_TOOLTIP": "Assigna un equip",
+ "ASSIGN_SUCCESFUL": "Les converses s'han assignat correctament.",
+ "ASSIGN_FAILED": "No s'han pogut assignar les converses. Torna-ho a provar.",
+ "RESOLVE_SUCCESFUL": "Les converses s'han resolt correctament.",
+ "RESOLVE_FAILED": "No s'han pogut resoldre les converses. Torna-ho a provar.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Les converses visibles en aquesta pàgina només estan seleccionades.",
"UPDATE": {
- "CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
- "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "CHANGE_STATUS": "Canvia l'estat",
+ "SNOOZE_UNTIL": "Posposat",
+ "UPDATE_SUCCESFUL": "L'estat de les converses s'ha actualitzat correctament.",
+ "UPDATE_FAILED": "No s'han pogut actualitzar les converses. Torna-ho a provar."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
- "ASSIGN_SELECTED_LABELS": "Assign selected labels",
- "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_LABELS": "Assignar etiquetes",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "Assigna les etiquetes seleccionades",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "L'etiqueta s'ha assignat correctament.",
+ "ASSIGN_FAILED": "No s'han pogut assignar les etiquetes. Torna-ho a provar.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Selecciona equip",
"NONE": "Ningú",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Equips assignats correctament.",
+ "ASSIGN_FAILED": "No s'han pogut assignar els equips. Torna-ho a provar."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/campaign.json b/app/javascript/dashboard/i18n/locale/ca/campaign.json
index e3d69bc29..1686f5c1e 100644
--- a/app/javascript/dashboard/i18n/locale/ca/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ca/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel·la",
- "CREATE_BUTTON_TEXT": "Crear",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Habilita",
+ "DISABLED": "Inhabilita"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Missatge",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Enviat per",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Introduïu una URL vàlid"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Enviat per",
+ "BOT": "Bot",
+ "FROM": "des de",
+ "URL": "URL:"
+ }
},
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel·la",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Títol",
+ "PLACEHOLDER": "Introduïu el títol de la campanya",
+ "ERROR": "El títol és necessari"
+ },
+ "MESSAGE": {
+ "LABEL": "Missatge",
+ "PLACEHOLDER": "Introdueix el missatge de la campanya",
+ "ERROR": "El missatge és obligatori"
+ },
+ "INBOX": {
+ "LABEL": "Selecciona Safata d'entrada",
+ "PLACEHOLDER": "Selecciona Safata d'entrada",
+ "ERROR": "Safata d'entrada és necessària"
+ },
+ "SENT_BY": {
+ "LABEL": "Enviat per",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "El remitent és obligatori"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Introdueix la URL vàlid",
+ "ERROR": "Introduïu una URL vàlid"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Temps a la pàgina (segons)",
+ "PLACEHOLDER": "Introdueix l'hora",
+ "ERROR": "L'hora a la pàgina és obligatori"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Activa la campanya",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Activa només durant l'horari comercial"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "S'ha produït un error. Torna-ho a provar."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "S'ha produït un error. Torna-ho a provar."
+ }
+ }
+ }
+ },
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completat",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel·la",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Títol",
+ "PLACEHOLDER": "Introduïu el títol de la campanya",
+ "ERROR": "El títol és necessari"
+ },
+ "MESSAGE": {
+ "LABEL": "Missatge",
+ "PLACEHOLDER": "Introdueix el missatge de la campanya",
+ "ERROR": "El missatge és obligatori"
+ },
+ "INBOX": {
+ "LABEL": "Selecciona Safata d'entrada",
+ "PLACEHOLDER": "Selecciona Safata d'entrada",
+ "ERROR": "Safata d'entrada és necessària"
+ },
+ "AUDIENCE": {
+ "LABEL": "Públic",
+ "PLACEHOLDER": "Selecciona les etiquetes dels clients",
+ "ERROR": "L'audiència és obligatòria"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Hora programada",
+ "PLACEHOLDER": "Selecciona l'hora",
+ "ERROR": "Es requereix hora programada"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "S'ha produït un error. Torna-ho a provar."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completat",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel·la",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Títol",
+ "PLACEHOLDER": "Introduïu el títol de la campanya",
+ "ERROR": "El títol és necessari"
+ },
+ "INBOX": {
+ "LABEL": "Selecciona Safata d'entrada",
+ "PLACEHOLDER": "Selecciona Safata d'entrada",
+ "ERROR": "Safata d'entrada és necessària"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Procés {templateName}",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Públic",
+ "PLACEHOLDER": "Selecciona les etiquetes dels clients",
+ "ERROR": "L'audiència és obligatòria"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Hora programada",
+ "PLACEHOLDER": "Selecciona l'hora",
+ "ERROR": "Es requereix hora programada"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "S'ha produït un error. Torna-ho a provar."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "N'estàs segur?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Esborrar",
"API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "SUCCESS_MESSAGE": "La campanya s'ha suprimit correctament",
+ "ERROR_MESSAGE": "S'ha produït un error. Torna-ho a provar."
}
- },
- "DELETE": {
- "BUTTON_TEXT": "Esborrar",
- "CONFIRM": {
- "TITLE": "Confirma l'esborrat",
- "MESSAGE": "N'estàs segur?",
- "YES": "Si, esborra ",
- "NO": "No, segueix "
- },
- "API": {
- "SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
- }
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Actualitza",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Missatge",
- "INBOX": "Inbox",
- "STATUS": "Estat",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edita",
- "DELETE": "Esborrar"
- },
- "STATUS": {
- "ENABLED": "Habilita",
- "DISABLED": "Inhabilita",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
index 187c3ac27..a7565279a 100644
--- a/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "Respostes predeterminades",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Afegir resposta predeterminada",
+ "LOADING": "S'estan recollint les respostes predeterminades...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "No hi ha respostes predeterminades disponibles en aquest compte.",
"TITLE": "Gestiona les respostes predeterminades",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Contingut",
- "Accions"
- ]
+ "DESC": "Les respostes predeterminades són plantilles de resposta predefinides que es poden utilitzar per enviar ràpidament respostes a les converses.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Codi curt",
+ "CONTENT": "Contingut",
+ "ACTIONS": "Accions"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "Afegir resposta predeterminada",
+ "DESC": "Les respostes predeterminades són plantilles de resposta predefinides que es poden utilitzar per enviar ràpidament respostes a les converses.",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "Codi curt",
+ "PLACEHOLDER": "Introduïu un codi curt.",
+ "ERROR": "És necessari el codi curt."
},
"CONTENT": {
"LABEL": "Missatge",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Escriviu el missatge que voleu desar com a plantilla per utilitzar-lo més tard.",
+ "ERROR": "El missatge és obligatori."
},
"SUBMIT": "Envia"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "Resposta predeterminada afegida correctament.",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "Edita la resposta predeterminada",
"CANCEL_BUTTON_TEXT": "Cancel·la",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "Codi curt",
+ "PLACEHOLDER": "Introduïu un codi curt.",
+ "ERROR": "És necessari el codi curt."
},
"CONTENT": {
"LABEL": "Missatge",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Escriviu el missatge que voleu desar com a plantilla per utilitzar-lo més tard.",
+ "ERROR": "El missatge és obligatori."
},
"SUBMIT": "Envia"
},
"BUTTON_TEXT": "Edita",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "Resposta predeterminada actualitzada correctament.",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
"DELETE": {
"BUTTON_TEXT": "Esborra",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "Resposta predeterminada eliminada correctament.",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
+ "TITLE": "Confirma l'esborrat",
"MESSAGE": "N'estas segur ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "Sí, esborra ",
+ "NO": "No, mantén-la "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/chatlist.json b/app/javascript/dashboard/i18n/locale/ca/chatlist.json
index 1608a5a8b..0c1c4bd4e 100644
--- a/app/javascript/dashboard/i18n/locale/ca/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ca/chatlist.json
@@ -6,9 +6,10 @@
"LIST": {
"404": "No hi ha converses actives en aquest grup."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Converses",
"MENTION_HEADING": "Mencions",
- "UNATTENDED_HEADING": "Unattended",
+ "UNATTENDED_HEADING": "Sense assistència",
"SEARCH": {
"INPUT": "Cerca persones, xats, respostes desades .."
},
@@ -36,45 +37,48 @@
}
},
"VIEW_FILTER": "Veure",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "Ordena les converses",
"CHAT_SORT": {
"STATUS": "Estat",
- "ORDER_BY": "Order by"
+ "ORDER_BY": "Ordena per"
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "Created",
- "OLDEST": "Created at:"
+ "LATEST": "Creat",
+ "OLDEST": "Creat per:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "Darrera activitat:",
+ "ACTIVE": "Darrera activitat"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "Última activitat: Més antic primer"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "Última activitat: La més nova primer"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "Creat a: El més nou primer"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "Creat a: el més antic primer"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "Prioritat: primer el més alt"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "Prioritat: primer el més baix"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "Resposta pendent: el més llarg primer"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "Resposta pendent: el més curt primer"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,25 +97,34 @@
"location": {
"CONTENT": "Ubicació"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "ha compartit una URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
- "DROPDOWN_TITLE": "Sort by",
+ "TITLE": "Ordena la conversa",
+ "DROPDOWN_TITLE": "Ordenat per",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
- "LABEL": "Last activity"
+ "NAME": "Darrera activitat a les",
+ "LABEL": "Darrera activitat"
},
"CREATED_AT": {
- "NAME": "Created at",
- "LABEL": "Created at"
+ "NAME": "Creat per",
+ "LABEL": "Creat per"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "Últim missatge de l'usuari a les",
+ "LABEL": "Últim missatge"
}
}
},
@@ -120,12 +133,14 @@
"REPLY_TO_TWEET": "Respon a aquest tuit",
"LINK_TO_STORY": "Ves a la història d'instagram",
"SENT": "Enviat correctament",
- "READ": "Read successfully",
- "DELIVERED": "Delivered successfully",
+ "READ": "Llegit correctament",
+ "DELIVERED": "S'ha lliurat correctament",
"NO_MESSAGES": "Cap Missatge",
"NO_CONTENT": "No hi ha contingut disponible",
"HIDE_QUOTED_TEXT": "Amaga text entre cometes",
"SHOW_QUOTED_TEXT": "Mostra text entre cometes",
- "MESSAGE_READ": "Llegir"
+ "MESSAGE_READ": "Llegir",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/companies.json b/app/javascript/dashboard/i18n/locale/ca/companies.json
new file mode 100644
index 000000000..797229f4b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Ordenat per",
+ "OPTIONS": {
+ "NAME": "Nom",
+ "DOMAIN": "Domini",
+ "CREATED_AT": "Creat per",
+ "LAST_ACTIVITY_AT": "Darrera activitat",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contactes",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Cerca atributs...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Carregant contactes...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Companyia",
+ "CONTACT_LABEL": "Contacte",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel·la"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nom",
+ "DOMAIN": "Domini"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/components.json b/app/javascript/dashboard/i18n/locale/ca/components.json
new file mode 100644
index 000000000..2f29110f4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No s'han trobat resultats.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} més"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No s'han trobat resultats.",
+ "SEARCHING": "S'està cercant..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel·la",
+ "CONFIRM": "Confirma"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Selecciona un codi de marcatge de la llista"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "L'autor no està disponible"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Aprèn més",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/contact.json b/app/javascript/dashboard/i18n/locale/ca/contact.json
index 73b6a92b2..7cff15bb7 100644
--- a/app/javascript/dashboard/i18n/locale/ca/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ca/contact.json
@@ -15,8 +15,17 @@
"INITIATED_FROM": "Iniciada des de",
"INITIATED_AT": "Iniciada a les",
"IP_ADDRESS": "Adreça IP",
- "CREATED_AT_LABEL": "Created",
+ "CREATED_AT_LABEL": "Creat",
"NEW_MESSAGE": "Nou missatge",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "No hi han converses prèvies associades a aquest contacte.",
"TITLE": "Converses prèvies"
@@ -34,21 +43,22 @@
"TITLE": "Afegir etiquetes",
"PLACEHOLDER": "Cerca etiquetes",
"NO_RESULT": "No s'han trobat etiquetes",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "Crea una etiqueta nova"
}
},
"MERGE_CONTACT": "Reagrupa contacte",
"CONTACT_ACTIONS": "Accions de contacte",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "Bloqueja el contacte",
+ "UNMUTE_CONTACT": "Desbloqueja el contacte",
+ "MUTED_SUCCESS": "Aquest contacte s'ha bloquejat correctament. No se us notificarà cap conversa futura.",
+ "UNMUTED_SUCCESS": "Aquest contacte s'ha desbloquejat correctament.",
"SEND_TRANSCRIPT": "Envia la transcripció",
"EDIT_LABEL": "Edita",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Atributs personalitzats",
"CONTACT_LABELS": "Etiquetes de contactes",
- "PREVIOUS_CONVERSATIONS": "Converses prèvies"
+ "PREVIOUS_CONVERSATIONS": "Converses prèvies",
+ "NO_RECORDS_FOUND": "No s'han trobat atributs"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edita el contacte",
"DESC": "Edita els detalls de contacte"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nou Contacte",
- "TITLE": "Crear un nou contacte",
- "DESC": "Afegir informació bàsica sobre el contacte."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importa",
- "TITLE": "Importa contactes",
- "DESC": "Importa contactes a través d'un fitxer CSV.",
- "DOWNLOAD_LABEL": "Descarrega un csv d'exemple.",
- "FORM": {
- "LABEL": "Fitxer CSV",
- "SUBMIT": "Importa",
- "CANCEL": "Cancel·la"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirma l'esborrat",
- "MESSAGE": "Vols suprimir aquesta nota amb seguretat?",
- "YES": "Si, esborra'l",
- "NO": "No, manten-la"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Contacte esborrat",
"TITLE": "Contacte esborrat",
@@ -135,9 +106,9 @@
"PLACEHOLDER": "Introdueix el número de telèfon del contacte",
"LABEL": "Número de telèfon",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
- "ERROR": "Phone number should be either empty or of E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
- "DUPLICATE": "This phone number is in use for another contact."
+ "ERROR": "El número de telèfon ha d'estar buit o en format E.164",
+ "DIAL_CODE_ERROR": "Selecciona un codi de marcatge de la llista",
+ "DUPLICATE": "Aquest número de telèfon està en ús per a un altre contacte."
},
"LOCATION": {
"PLACEHOLDER": "Introdueix la ubicació del contacte",
@@ -148,15 +119,15 @@
"LABEL": "Nom de la companyia"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
+ "PLACEHOLDER": "Introdueix el nom del país",
"LABEL": "Nom del país",
- "SELECT_PLACEHOLDER": "Select",
+ "SELECT_PLACEHOLDER": "Selecciona",
"REMOVE": "Suprimeix",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "Selecciona país"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "Introdueix el nom de la ciutat",
+ "LABEL": "Nom de la ciutat"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
@@ -179,8 +150,8 @@
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "Contact avatar deleted successfully",
- "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
+ "SUCCESS_MESSAGE": "L'avatar del contacte s'ha suprimit correctament",
+ "ERROR_MESSAGE": "No s'ha pogut esborrar l'avatar de contacte. Torneu-ho a provar."
}
},
"SUCCESS_MESSAGE": "Contacte guardat correctament",
@@ -189,194 +160,507 @@
"NEW_CONVERSATION": {
"BUTTON_LABEL": "Inicia la conversa",
"TITLE": "Nova conversació",
- "DESC": "Start a new conversation by sending a new message.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "DESC": "Inicia una conversa nova enviant un missatge nou.",
+ "NO_INBOX": "No s'ha pogut trobar una safata d'entrada per iniciar una conversa nova amb aquest contacte.",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "Per"
},
"INBOX": {
"LABEL": "Inbox",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "PLACEHOLDER": "Trieu la safata d'entrada d'origen",
+ "ERROR": "Selecciona una Safata d'entrada"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
- "ERROR": "Subject can't be empty"
+ "LABEL": "Assumpte",
+ "PLACEHOLDER": "Assumpte",
+ "ERROR": "L'assumpte no pot estar buit"
},
"MESSAGE": {
"LABEL": "Missatge",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "PLACEHOLDER": "Escriu el teu missatge aquí",
+ "ERROR": "El missatge no pot estar buit"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "Trieu fitxers",
+ "HELP_TEXT": "Arrossegueu i deixeu anar fitxers aquí o trieu fitxers per adjuntar"
},
- "SUBMIT": "Send message",
+ "SUBMIT": "Envia missatge",
"CANCEL": "Cancel·la",
- "SUCCESS_MESSAGE": "Message sent!",
+ "SUCCESS_MESSAGE": "Missatges enviat!",
"GO_TO_CONVERSATION": "Veure",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "ERROR_MESSAGE": "No s'ha pogut enviar! torna-ho a provar"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contactes",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Cercar",
- "SEARCH_INPUT_PLACEHOLDER": "Cerca de contactes",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Carregant contactes...",
- "404": "No hi ha cap contacte que coincideixi amb la vostra cerca 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Nom",
- "PHONE_NUMBER": "Número de telèfon",
- "CONVERSATIONS": "Converses",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Companyia",
- "EMAIL_ADDRESS": "Adreça de correu electrònic"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contactes",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "converses"
+ "SOCIAL_PROFILES": "Perfils socials"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
- "BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
+ "BUTTON": "Afegir atributs personalitzats",
"COPY_SUCCESSFUL": "S'ha copiat al porta-retalls amb èxit",
+ "SHOW_MORE": "Mostra tots els atributs",
+ "SHOW_LESS": "Mostra menys atributs",
"ACTIONS": {
- "COPY": "Copy attribute",
- "DELETE": "Delete attribute",
- "EDIT": "Edit attribute"
+ "COPY": "Copia l'atribut",
+ "DELETE": "Suprimeix l'atribut",
+ "EDIT": "Edita l'atribut"
},
"ADD": {
- "TITLE": "Create custom attribute",
- "DESC": "Add custom information to this contact."
+ "TITLE": "Crear atribut personalitzat",
+ "DESC": "Afegeix informació personalitzada a aquest contacte."
},
"FORM": {
- "CREATE": "Add attribute",
+ "CREATE": "Afegir atribut",
"CANCEL": "Cancel·la",
"NAME": {
- "LABEL": "Custom attribute name",
- "PLACEHOLDER": "Eg: shopify id",
- "ERROR": "Invalid custom attribute name"
+ "LABEL": "Personalitza el nom de l'atribut",
+ "PLACEHOLDER": "P. ex.: identificador de Shopify",
+ "ERROR": "El nom de l'atribut personalitzat no és vàlid"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "Valor de l'atribut",
+ "PLACEHOLDER": "Ex: 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "Crear nou atribut ",
+ "SUCCESS": "Atribut afegit correctament",
+ "ERROR": "No es pot afegir l'atribut. Si us plau, intenta-ho més tard"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "Atribut actualitzat correctament",
+ "ERROR": "No es pot actualitzar l'atribut. Si us plau, intenta-ho més tard"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "Atribut esborrat correctament",
+ "ERROR": "No es pot esborrar l'atribut. Si us plau, intenta-ho més tard"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "Afegir atributs",
+ "PLACEHOLDER": "Cerca atributs",
+ "NO_RESULT": "No s'han trobat atributs"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
- "NO_RESULT": "No result found"
+ "PLACEHOLDER": "Selecciona valor",
+ "SEARCH_INPUT_PLACEHOLDER": "Cerca valor",
+ "NO_RESULT": "No s'ha trobat cap resultat"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "Invalid URL",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "Un valor vàlid és necessari",
+ "INVALID_URL": "URL no vàlid",
+ "INVALID_INPUT": "Entrada incorrecta"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
+ "TITLE": "Fusiona contactes",
"DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "Contacte principal",
+ "HELP_LABEL": "Per esborrar"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "Contacte per fusionar",
+ "PLACEHOLDER": "Cerca un contacte",
+ "HELP_LABEL": "S'ha de mantenir"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "Resum",
+ "DELETE_WARNING": "El contacte de {primaryContactName} es suprimirà.",
+ "ATTRIBUTE_WARNING": "Les dades de contacte de {primaryContactName} es copiaran a {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
- "SUBMIT": " Merge contacts",
+ "SUBMIT": " Fusiona contactes",
"CANCEL": "Cancel·la",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "Seleccioneu un contacte fill per fusionar"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "Contacte fusionat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut fusionar els contactes, torna-ho a provar!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contactes",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Missatge",
+ "SEND_MESSAGE": "Envia missatge",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contactes"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Aquesta adreça de correu electrònic s’utilitza per a un altre contacte.",
+ "PHONE_NUMBER_DUPLICATE": "Aquest número de telèfon està en ús per a un altre contacte.",
+ "SUCCESS_MESSAGE": "Contacte guardat correctament",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Aquest contacte s'ha desbloquejat correctament",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importa contactes a través d'un fitxer CSV.",
+ "DOWNLOAD_LABEL": "Descarrega un csv d'exemple.",
+ "LABEL": "Fitxer CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Canvia",
+ "CANCEL": "Cancel·la",
+ "IMPORT": "Importa",
+ "SUCCESS_MESSAGE": "Es notificarà per correu electrònic quan s'hagi completat la importació.",
+ "ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Exporta",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
+ },
+ "SORT_BY": {
+ "LABEL": "Ordenat per",
+ "OPTIONS": {
+ "NAME": "Nom",
+ "EMAIL": "Correu electrònic",
+ "PHONE_NUMBER": "Número de telèfon",
+ "COMPANY": "Companyia",
+ "COUNTRY": "País",
+ "CITY": "Ciutat",
+ "LAST_ACTIVITY": "Darrera activitat",
+ "CREATED_AT": "Creat per"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Vols desar aquest filtre?",
+ "CONFIRM": "Desa el filtre",
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirma l'esborrat",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Si, esborra",
+ "CANCEL": "No, cancel·la",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nom",
+ "EMAIL": "Correu electrònic",
+ "PHONE_NUMBER": "Número de telèfon",
+ "IDENTIFIER": "Identificador",
+ "COUNTRY": "País",
+ "CITY": "Ciutat",
+ "COMPANY": "Companyia",
+ "CREATED_AT": "Creat per",
+ "LAST_ACTIVITY": "Darrera activitat",
+ "REFERER_LINK": "Enllaç de referència",
+ "BLOCKED": "Blocat",
+ "BLOCKED_TRUE": "Cert",
+ "BLOCKED_FALSE": "Fals",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Esborra els filtres",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Aplicar filtres",
+ "ADD_FILTER": "Afegeix un filtre"
+ },
+ "TITLE": "Filtra els contactes",
+ "EDIT_SEGMENT": "Edita segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Esborra els filtres"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Veure detalls",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edita els detalls de contacte",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Aquesta adreça de correu electrònic s’utilitza per a un altre contacte."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Aquest número de telèfon està en ús per a un altre contacte."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Introdueix el nom de la ciutat"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Introdueix el nom de la companyia"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Contacte esborrat",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirma l'esborrat",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Si, esborra",
+ "API": {
+ "SUCCESS_MESSAGE": "Contacte esborrat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut esborrar el contacte. Torneu-ho a provar."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar esborrat correctament",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "No hi han converses prèvies associades a aquest contacte"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Si",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Selecciona valor",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Un valor vàlid és necessari",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "URL no vàlid",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No s'han trobat atributs",
+ "API": {
+ "SUCCESS_MESSAGE": "Atribut actualitzat correctament",
+ "DELETE_SUCCESS_MESSAGE": "Atribut esborrat correctament",
+ "UPDATE_ERROR": "No es pot actualitzar l'atribut. Si us plau, intenta-ho més tard",
+ "DELETE_ERROR": "No es pot esborrar l'atribut. Si us plau, intenta-ho més tard"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Reagrupa contacte",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Contacte principal",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Per esborrar",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Cerca un contacte",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contacte fusionat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut fusionar els contactes, torna-ho a provar!",
+ "IS_SEARCHING": "S'està cercant...",
+ "BUTTONS": {
+ "CANCEL": "Cancel·la",
+ "CONFIRM": "Reagrupa contacte"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Afegeix una nota",
+ "WROTE": "va escriure",
+ "YOU": "Tu",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No hi ha cap contacte que coincideixi amb la vostra cerca 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "L'etiqueta s'ha assignat correctament.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Esborrar",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Contacte esborrat"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Veure",
+ "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": "Per:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Assumpte :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Cco:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Cco"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Escriu el teu missatge aquí..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Torna",
+ "SEND_MESSAGE": "Envia missatge"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Torna",
+ "SEND_MESSAGE": "Envia missatge"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/contactFilters.json b/app/javascript/dashboard/i18n/locale/ca/contactFilters.json
index edb654eca..92eea6e1c 100644
--- a/app/javascript/dashboard/i18n/locale/ca/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ca/contactFilters.json
@@ -1,20 +1,20 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filter Contacts",
- "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "TITLE": "Filtra els contactes",
+ "SUBTITLE": "Afegeix filtres a continuació i prem \"Envia\" per filtrar els contactes.",
+ "EDIT_CUSTOM_SEGMENT": "Edita segment",
+ "CUSTOM_VIEWS_SUBTITLE": "Afegeix o elimina filtres i actualitza el teu segment.",
"ADD_NEW_FILTER": "Afegeix filtre",
- "CLEAR_ALL_FILTERS": "Clear All Filters",
- "FILTER_DELETE_ERROR": "You should have atleast one filter to save",
+ "CLEAR_ALL_FILTERS": "Esborra tots els filtres",
+ "FILTER_DELETE_ERROR": "Hauries de tenir almenys un filtre per desar",
"SUBMIT_BUTTON_LABEL": "Envia",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "Actualitza el segment",
"CANCEL_BUTTON_LABEL": "Cancel·la",
- "CLEAR_BUTTON_LABEL": "Clear Filters",
+ "CLEAR_BUTTON_LABEL": "Esborra els filtres",
"EMPTY_VALUE_ERROR": "El valor és necessari",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
- "TOOLTIP_LABEL": "Filter contacts",
+ "SEGMENT_LABEL": "Nom del segment",
+ "SEGMENT_QUERY_LABEL": "Consulta de segments",
+ "TOOLTIP_LABEL": "Filtra els contactes",
"QUERY_DROPDOWN_LABELS": {
"AND": "I",
"OR": "O"
@@ -27,28 +27,33 @@
"is_present": "És present",
"is_not_present": "No és present",
"is_greater_than": "És més gran que",
- "is_lesser_than": "Is lesser than",
- "days_before": "Is x days before"
+ "is_lesser_than": "És més petit que",
+ "days_before": "És x dies abans"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "El valor és necessari"
},
"ATTRIBUTES": {
"NAME": "Nom",
"EMAIL": "Correu electrònic",
"PHONE_NUMBER": "Número de telèfon",
- "IDENTIFIER": "Identifier",
- "CITY": "City",
- "COUNTRY": "Country",
- "CUSTOM_ATTRIBUTE_LIST": "List",
+ "IDENTIFIER": "Identificador",
+ "CITY": "Ciutat",
+ "COUNTRY": "País",
+ "CUSTOM_ATTRIBUTE_LIST": "Llista",
"CUSTOM_ATTRIBUTE_TEXT": "Llista",
"CUSTOM_ATTRIBUTE_NUMBER": "Número",
"CUSTOM_ATTRIBUTE_LINK": "Enllaç",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
- "CREATED_AT": "Created At",
- "LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Casella de selecció",
+ "CREATED_AT": "Creat per",
+ "LAST_ACTIVITY": "Darrera activitat",
+ "REFERER_LINK": "Enllaç de referència",
+ "BLOCKED": "Blocat",
+ "LABELS": "Etiquetes"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard Filters",
- "ADDITIONAL_FILTERS": "Additional Filters",
+ "STANDARD_FILTERS": "Filtres estàndard",
+ "ADDITIONAL_FILTERS": "Filtres addicionals",
"CUSTOM_ATTRIBUTES": "Atributs personalitzats"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ca/contentTemplates.json
new file mode 100644
index 000000000..26a642faa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cerca plantilles",
+ "NO_TEMPLATES_FOUND": "No s'han trobat plantilles per a",
+ "NO_CONTENT": "Sense contingut",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Cos de la plantilla",
+ "CATEGORY": "Categoria"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Llista"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Introdueix el valor {variable}",
+ "GO_BACK_LABEL": "Torna enrere",
+ "SEND_MESSAGE_LABEL": "Envia missatge",
+ "FORM_ERROR_MESSAGE": "Omple totes les variables abans d'enviar-les",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Enrere",
+ "SEND_MESSAGE_BUTTON": "Envia missatge"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/conversation.json b/app/javascript/dashboard/i18n/locale/ca/conversation.json
index 58f77304c..b9c75f2c4 100644
--- a/app/javascript/dashboard/i18n/locale/ca/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ca/conversation.json
@@ -1,27 +1,29 @@
{
"CONVERSATION": {
"SELECT_A_CONVERSATION": "Si us plau, selecciona una conversa al panell de l’esquerra",
- "CSAT_REPLY_MESSAGE": "Please rate the conversation",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
- "DASHBOARD_APP_TAB_MESSAGES": "Messages",
- "UNVERIFIED_SESSION": "The identity of this user is not verified",
+ "CSAT_REPLY_MESSAGE": "Si us plau, valoreu la conversa",
+ "404": "Ho sentim, no podem trobar la conversa. Torneu-ho a provar",
+ "SWITCH_VIEW_LAYOUT": "Canvia el disseny",
+ "DASHBOARD_APP_TAB_MESSAGES": "Missatges",
+ "UNVERIFIED_SESSION": "La identitat d'aquest usuari no està verificada",
"NO_MESSAGE_1": "Uh oh! Sembla que no hi ha missatges de clients a la safata d'entrada.",
"NO_MESSAGE_2": " per enviar un missatge a la vostra pàgina!",
"NO_INBOX_1": "Hola! Sembla que encara no heu afegit cap safata d'entrada.",
"NO_INBOX_2": " per començar",
"NO_INBOX_AGENT": "Uh Oh! Sembla que no ets a cap safata d'entrada. Si us plau, poseu-vos en contacte amb l'administrador",
"SEARCH_MESSAGES": "Cerca missatges a les converses",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "per obrir el menú d'ordres",
+ "KEYBOARD_SHORTCUTS": "per veure les dreceres del teclat"
},
"SEARCH": {
"TITLE": "Cerca missatges",
- "RESULT_TITLE": "Search Results",
+ "RESULT_TITLE": "Resultats de la cerca",
"LOADING_MESSAGE": "S'estan restringint les dades...",
"PLACEHOLDER": "Escriu qualsevol text per cercar missatges",
- "NO_MATCHING_RESULTS": "No results found."
+ "NO_MATCHING_RESULTS": "No s'han trobat resultats."
},
"UNREAD_MESSAGES": "Missatges no Llegits",
"UNREAD_MESSAGE": "Missatge no Llegit",
@@ -30,168 +32,259 @@
"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",
- "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",
+ "48_HOURS_WINDOW": "Restricció de finestra de missatges de 48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
+ "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",
- "UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "UNKNOWN_FILE_TYPE": "Fitxer desconegut",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} ha iniciat una reunió"
+ },
"UPLOADING_ATTACHMENTS": "Pujant fitxers adjunts...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
+ "REPLIED_TO_STORY": "Va respondre a la teva història",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "Aquest missatge no està suportat. Pots veure aquest missatge a l'aplicació Facebook Messenger.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "Aquest missatge no està suportat. Pots veure aquest missatge a l'aplicació d'Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "El missatge s'ha suprimit correctament",
+ "FAIL_DELETE_MESSSAGE": "No s'ha pogut suprimir el missatge! Torna-ho a provar",
"NO_RESPONSE": "Sense resposta",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "RESPONSE": "Response",
+ "RATING_TITLE": "Valoració",
+ "FEEDBACK_TITLE": "Comentaris",
+ "REPLY_MESSAGE_NOT_FOUND": "Missatge no disponible",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "Mostra etiquetes",
+ "HIDE_LABELS": "Amaga etiquetes",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resoldre",
"REOPEN_ACTION": "Tornar a obrir",
"OPEN_ACTION": "Obrir",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Més",
"CLOSE": "Tanca",
"DETAILS": "detalls",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
- },
- "RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
- "SNOOZE_UNTIL": "Snooze",
- "SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
- "TOMORROW": "Tomorrow",
- "NEXT_WEEK": "Next week"
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "Posposat fins a",
+ "SNOOZED_UNTIL_TOMORROW": "Posposat fins demà",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Posposat fins a la setmana vinent",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Posposat fins a la següent resposta",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "perduda",
+ "DUE": "límit"
}
},
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "Marca com a pendent",
+ "SNOOZE_UNTIL": "Posposat",
+ "SNOOZE": {
+ "TITLE": "Posposat fins a",
+ "NEXT_REPLY": "Següent resposta",
+ "TOMORROW": "Demà",
+ "NEXT_WEEK": "Pròxima setmana"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Equips"
+ },
"CUSTOM_SNOOZE": {
- "TITLE": "Snooze until",
- "APPLY": "Snooze",
+ "TITLE": "Posposat fins a",
+ "APPLY": "Posposat",
"CANCEL": "Cancel·la"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "Prioritat",
"OPTIONS": {
"NONE": "Ningú",
"URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "HIGH": "Alta",
+ "MEDIUM": "Mitjana",
+ "LOW": "Baixa"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "Ningú",
- "INPUT_PLACEHOLDER": "Select priority",
+ "INPUT_PLACEHOLDER": "Selecciona la prioritat",
"NO_RESULTS": "No s'ha trobat agents",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "S'ha canviat la prioritat de l'ID de conversa {conversationId} a {priority}",
+ "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": "Mark as pending",
- "RESOLVED": "Mark as resolved",
- "MARK_AS_UNREAD": "Mark as unread",
+ "PENDING": "Marca com a pendent",
+ "RESOLVED": "Marca com a resolt",
+ "MARK_AS_UNREAD": "Marca com a no llegit",
+ "MARK_AS_READ": "Marca com a llegit",
"REOPEN": "Torna a obrir la conversa",
"SNOOZE": {
- "TITLE": "Snooze",
- "NEXT_REPLY": "Until next reply",
- "TOMORROW": "Until tomorrow",
- "NEXT_WEEK": "Until next week"
+ "TITLE": "Posposat",
+ "NEXT_REPLY": "Fins a la propera resposta",
+ "TOMORROW": "Fins demà",
+ "NEXT_WEEK": "Fins a la setmana vinent"
},
- "ASSIGN_AGENT": "Assign agent",
- "ASSIGN_LABEL": "Assign label",
- "AGENTS_LOADING": "Loading agents...",
- "ASSIGN_TEAM": "Assign team",
+ "ASSIGN_AGENT": "Assigna un agent",
+ "ASSIGN_LABEL": "Assigna etiqueta",
+ "AGENTS_LOADING": "S'estan carregant els agents...",
+ "ASSIGN_TEAM": "Assigna un equip",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
- "FAILED": "Couldn't assign agent. Please try again."
+ "SUCCESFUL": "Id de conversa {conversationId} assignat a \"{agentName}\"",
+ "FAILED": "No s'ha pogut assignar l'agent. Torna-ho a provar."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
- "FAILED": "Couldn't assign label. Please try again."
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
+ "FAILED": "No s'ha pogut assignar l'etiqueta. Torna-ho a provar."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "S'ha assignat l'equip \"{team}\" a l'id de conversa {conversationId}",
+ "FAILED": "No s'ha pogut assignar l'equip. Torna-ho a provar."
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
+ "MESSAGE_SIGN_TOOLTIP": "Signatura del missatge",
+ "ENABLE_SIGN_TOOLTIP": "Activa la signatura",
+ "DISABLE_SIGN_TOOLTIP": "Desactiva la signatura",
"MSG_INPUT": "Shift + enter per a una línia nova. Comença amb '/' per seleccionar una resposta predeterminada.",
"PRIVATE_MSG_INPUT": "Shift + enter per una línia nova. Això serà visible només per als Agents",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "La signatura del missatge no està configurada, configura-la a la configuració del perfil.",
+ "COPILOT_MSG_INPUT": "Dóna instruccions addicionals a copilot o pregunta qualsevol altra cosa... Prem enter per enviar un seguiment",
+ "CLICK_HERE": "Fes clic aquí per actualitzar",
+ "WHATSAPP_TEMPLATES": "Plantilles de Whatsapp"
},
"REPLYBOX": {
"REPLY": "Respon",
"PRIVATE_NOTE": "Nota privada",
"SEND": "Envia",
"CREATE": "Afegeix una nota",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Mostra l'editor de text enriquit",
+ "INSERT_READ_MORE": "Llegir més",
+ "DISMISS_REPLY": "Ignora la resposta",
+ "REPLYING_TO": "Responent a:",
"TIP_EMOJI_ICON": "Mostra la selecció d'emoticones",
"TIP_ATTACH_ICON": "Ajuntar fitxers",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "TIP_AUDIORECORDER_ICON": "Gravar àudio",
+ "TIP_AUDIORECORDER_PERMISSION": "Permet l'accés a l'àudio",
+ "TIP_AUDIORECORDER_ERROR": "No s'ha pogut obrir l'àudio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "Arrossega i deixa anar aquí per adjuntar-lo",
+ "START_AUDIO_RECORDING": "Inicia la gravació d'àudio",
+ "STOP_AUDIO_RECORDING": "Atura la gravació d'àudio",
+ "COPILOT_THINKING": "Copilot està pensant",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Add bcc",
+ "TO": "A",
+ "ADD_BCC": "Afegeix cco",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "Correus electrònics separats per comes",
+ "ERROR": "Introduïu adreces de correu electrònic vàlides"
},
"BCC": {
- "LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "LABEL": "CCO",
+ "PLACEHOLDER": "Correus electrònics separats per comes",
+ "ERROR": "Introduïu adreces de correu electrònic vàlides"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
- "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "TITLE": "Variables sense definir",
+ "MESSAGE": "Tens {undefinedVariablesCount} variables sense definir al teu missatge: {undefinedVariables}. Vols enviar el missatge igualment?",
"CONFIRM": {
"YES": "Envia",
"CANCEL": "Cancel·la"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Nota privada: Només és visible per tu i el vostre equip",
"CHANGE_STATUS": "Estat de la conversa canviat",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
+ "CHANGE_STATUS_FAILED": "No s'ha pogut canviar l'estat de la conversa",
"CHANGE_AGENT": "Assignació de la conversa canviat",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "Conversation team changed",
- "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",
+ "CHANGE_AGENT_FAILED": "El canvi de l'assignat ha fallat",
+ "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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "No es pot enviar aquest missatge, torna-ho a provar més tard",
"SENT_BY": "Enviat per:",
"BOT": "Bot",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
+ "SEND_FAILED": "No s'ha pogut enviar el missatge! Torna-ho a provar",
+ "TRY_AGAIN": "reintenta",
"ASSIGNMENT": {
"SELECT_AGENT": "Seleccionar Agent",
"REMOVE": "Suprimeix",
@@ -199,18 +292,37 @@
},
"CONTEXT_MENU": {
"COPY": "Copia",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "Respon a aquest missatge",
"DELETE": "Esborrar",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "Afegir a les respostes predeterminades",
+ "TRANSLATE": "Tradueix",
+ "COPY_PERMALINK": "Copia l'enllaç al missatge",
+ "LINK_COPIED": "URL del missatge copiat al porta-retalls",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "Estàs segur que vols suprimir aquest missatge?",
+ "MESSAGE": "No pots desfer aquesta acció",
"DELETE": "Esborrar",
"CANCEL": "Cancel·la"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contacte",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Descartar",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Cancel·la",
"SEND_EMAIL_SUCCESS": "La transcripció del xat s'ha enviat correctament",
"SEND_EMAIL_ERROR": "S'ha produït un error; tornau-ho a provar",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Envia la transcripció al client",
"SEND_TO_AGENT": "Envia la transcripció a l'agent assignat",
@@ -231,96 +344,147 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
- "READ_LATEST_UPDATES": "Read our latest updates",
+ "TITLE": "Hola 👋, Benvingut a {installationName}!",
+ "DESCRIPTION": "Gràcies per registrar-te. Volem que treguis el màxim profit de {installationName}. Aquí teniu algunes coses que pots fer a {installationName} perquè l'experiència sigui agradable.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
+ "READ_LATEST_UPDATES": "Llegiu les nostres últimes actualitzacions",
"ALL_CONVERSATION": {
- "TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "TITLE": "Totes les teves converses en un sol lloc",
+ "DESCRIPTION": "Consulta totes les converses dels teus clients en un únic tauler. Podeu filtrar les converses pel canal d'entrada, l'etiqueta i l'estat.",
+ "NEW_LINK": "Fes clic aquí per crear una safata d'entrada"
},
"TEAM_MEMBERS": {
- "TITLE": "Invite your team members",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "Click here to invite a team member"
- },
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
+ "TITLE": "Convida els membres del teu equip",
+ "DESCRIPTION": "Com que us esteu preparant per parlar amb el vostre client, feu venir els vostres companys d'equip per ajudar-vos. Pots convidar els teus companys d'equip afegint les seves adreces de correu electrònic a la llista d'agents.",
+ "NEW_LINK": "Feu clic aquí per convidar un membre de l'equip"
},
"LABELS": {
- "TITLE": "Organize conversations with labels",
- "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
- "NEW_LINK": "Click here to create tags"
+ "TITLE": "Organitza converses amb etiquetes",
+ "DESCRIPTION": "Les etiquetes proporcionen una manera més fàcil de classificar la vostra conversa. Crea algunes etiquetes com #consulta-suport, #pregunta-facturació, etc., perquè les puguis utilitzar en una conversa més endavant.",
+ "NEW_LINK": "Fes clic aquí per crear etiquetes"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Assigned Agent",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "Assigned Team",
+ "ASSIGNEE_LABEL": "Agent assignat",
+ "SELF_ASSIGN": "Assigna-me-la",
+ "TEAM_LABEL": "Assignada a un equip",
"SELECT": {
- "PLACEHOLDER": "None"
+ "PLACEHOLDER": "Ningú"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
+ "CONTACT_DETAILS": "Detalls de contacte",
+ "CONVERSATION_ACTIONS": "Accions de conversa",
"CONVERSATION_LABELS": "Etiquetes de converses",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
+ "CONVERSATION_INFO": "Informació de la conversa",
+ "CONTACT_NOTES": "Contact Notes",
+ "CONTACT_ATTRIBUTES": "Atributs de contacte",
"PREVIOUS_CONVERSATION": "Converses prèvies",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Veure tot",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pendent",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
+ "ADD_BUTTON_TEXT": "Crea atribut",
+ "NO_RECORDS_FOUND": "No s'han trobat atributs",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "Atribut actualitzat correctament",
+ "ERROR": "No es pot actualitzar l'atribut. Si us plau, intenta-ho més tard"
},
"ADD": {
- "TITLE": "Add",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "Afegir",
+ "SUCCESS": "Atribut afegit correctament",
+ "ERROR": "No es pot afegir l'atribut. Si us plau, intenta-ho més tard"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "Atribut esborrat correctament",
+ "ERROR": "No es pot esborrar l'atribut. Si us plau, intenta-ho més tard"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "Afegir atributs",
+ "PLACEHOLDER": "Cerca atributs",
+ "NO_RESULT": "No s'han trobat atributs"
}
},
"EMAIL_HEADER": {
- "FROM": "From",
- "TO": "To",
- "BCC": "Bcc",
+ "FROM": "Des de",
+ "TO": "Per",
+ "BCC": "Cco",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Assumpte",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
+ "SIDEBAR_MENU_TITLE": "Participant",
+ "SIDEBAR_TITLE": "Participants de la conversa",
"NO_RECORDS_FOUND": "No s'ha trobat agents",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
- "NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "ADD_PARTICIPANTS": "Selecciona els participants",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} més",
+ "REMANING_PARTICIPANT_TEXT": "+{count} més",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} persones estan participant.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} persona està participant.",
+ "NO_PARTICIPANTS_TEXT": "No hi participa ningú!",
+ "WATCH_CONVERSATION": "Uneix-te a la conversa",
+ "YOU_ARE_WATCHING": "Estàs participant",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "No s'ha pogut actualitzar, torna-ho a provar!",
+ "SUCCESS_MESSAGE": "Participants actualitzats!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
- "DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "TITLE": "Veure contingut traduït",
+ "DESC": "Pots veure el contingut traduït a cada idioma.",
+ "ORIGINAL_CONTENT": "Contingut original",
+ "TRANSLATED_CONTENT": "Contingut traduït",
+ "NO_TRANSLATIONS_AVAILABLE": "No hi ha traduccions disponibles per a aquest contingut"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/csatMgmt.json b/app/javascript/dashboard/i18n/locale/ca/csatMgmt.json
index 9e16dc2b3..5de226331 100644
--- a/app/javascript/dashboard/i18n/locale/ca/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/csatMgmt.json
@@ -1,13 +1,13 @@
{
"CSAT": {
- "TITLE": "Rate your conversation",
- "PLACEHOLDER": "Tell us more...",
+ "TITLE": "Valora la teva conversa",
+ "PLACEHOLDER": "Explica'ns més...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 Pobre",
+ "FAIR": "😑 Just",
+ "AVERAGE": "😐 Mitjana",
+ "GOOD": "😀 Bé",
+ "EXCELLENT": "😍 Excel·lent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/customRole.json b/app/javascript/dashboard/i18n/locale/ca/customRole.json
new file mode 100644
index 000000000..d508cff53
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Actualitza el teu pla per accedir a funcions avançades com ara gestió d'equips, automatitzacions, atributs personalitzats i molt més.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Actualitza a un pla de pagament per accedir a funcions avançades com els registres d'auditoria, la capacitat de l'agent i molt més.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Descripció",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Accions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "El nom és obligatori."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "La descripció és necessària."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel·la",
+ "API": {
+ "ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Envia",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edita",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Actualitza",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Esborrar",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirma la supressió",
+ "MESSAGE": "N'estas segur? ",
+ "YES": "Sí, esborra ",
+ "NO": "No, mantén-la "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/datePicker.json b/app/javascript/dashboard/i18n/locale/ca/datePicker.json
new file mode 100644
index 000000000..8dcbbf682
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Aplica",
+ "CLEAR_BUTTON": "Neteja",
+ "DATE_RANGE_INPUT": {
+ "START": "Data d'inici",
+ "END": "Data de finalització"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "RANG DE DATES",
+ "LAST_7_DAYS": "Últims 7 dies",
+ "LAST_30_DAYS": "Últims 30 dies",
+ "LAST_3_MONTHS": "Últims tres mesos",
+ "LAST_6_MONTHS": "Últims sis mesos",
+ "LAST_YEAR": "Darrer any",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Interval de dates personalitzat"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/emoji.json b/app/javascript/dashboard/i18n/locale/ca/emoji.json
index f89f088b6..4da107aac 100644
--- a/app/javascript/dashboard/i18n/locale/ca/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/ca/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "Cerca emojis",
+ "NOT_FOUND": "Cap emoji coincideix amb la teva cerca",
"REMOVE": "Suprimeix"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/general.json b/app/javascript/dashboard/i18n/locale/ca/general.json
new file mode 100644
index 000000000..f08cdd56f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Es mostren {firstIndex}-{lastIndex} de {totalCount} elements",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Cercar",
+ "EMPTY_STATE": "No s'ha trobat agents"
+ },
+ "CLOSE": "Tanca",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Si",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
index 1e45c4ed8..06d551545 100644
--- a/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/generalSettings.json
@@ -1,13 +1,39 @@
{
"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. Your plan only allows {allowedAgents} 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",
- "DISMISS": "Dismiss",
+ "DISMISS": "Descartar",
"UPDATE": {
"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": {
@@ -15,8 +41,36 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Account ID",
- "NOTE": "This ID is required if you are building an API based integration"
+ "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",
@@ -24,7 +78,7 @@
"ERROR": "Introduïu un nom de compte vàlid"
},
"LANGUAGE": {
- "LABEL": "Site language",
+ "LABEL": "Idioma del lloc",
"PLACEHOLDER": "El nom del vostre compte",
"ERROR": ""
},
@@ -38,39 +92,62 @@
"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": "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": "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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Ara podeu rebre correus electrònics al vostre domini personalitzat."
}
},
- "UPDATE_CHATWOOT": "L'actualització %{latestChatwootVersion} per Chatwoot està disponible. Si us plau, actualitza l'instancia.",
- "LEARN_MORE": "Learn more",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information 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"
+ "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ó"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "Presiona retorn (tecla enter) per seleccionar",
"ENTER_TO_REMOVE": "Presiona retorn (tecla enter) per eliminar",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Selecciona un",
- "SELECT": "Select"
+ "SELECT": "Selecciona"
}
},
"NOTIFICATIONS_PAGE": {
"HEADER": "Notificacions",
"MARK_ALL_DONE": "Marca Tot Fet",
- "DELETE_TITLE": "deleted",
+ "DELETE_TITLE": "eliminat",
"UNREAD_NOTIFICATION": {
- "TITLE": "Unread Notifications",
- "ALL_NOTIFICATIONS": "View all notifications",
- "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
- "EMPTY_MESSAGE": "You have no unread notifications"
+ "TITLE": "Notificacions no llegides",
+ "ALL_NOTIFICATIONS": "Veure totes les notificacions",
+ "LOADING_UNREAD_MESSAGE": "S'estan carregant les notificacions no llegides...",
+ "EMPTY_MESSAGE": "No tens notificacions no llegides"
},
"LIST": {
"LOADING_MESSAGE": "Carregant notificacions...",
@@ -87,82 +164,89 @@
"conversation_assignment": "Conversació Assignada",
"assigned_conversation_new_message": "Missatge Nou",
"participating_conversation_new_message": "Missatge Nou",
- "conversation_mention": "Menció"
+ "conversation_mention": "Menció",
+ "sla_missed_first_response": "SLA perdut",
+ "sla_missed_next_response": "SLA perdut",
+ "sla_missed_resolution": "SLA perdut"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Fora de línia"
+ "OFFLINE": "Fora de línia",
+ "RECONNECTING": "Reconnectant...",
+ "RECONNECT_SUCCESS": "Reconnectat"
},
"BUTTON": {
- "REFRESH": "Refresh"
+ "REFRESH": "Actualitza"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SEARCH_PLACEHOLDER": "Cerca o salta a",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Informes",
- "CONVERSATION": "Conversation",
- "CHANGE_ASSIGNEE": "Change Assignee",
- "CHANGE_PRIORITY": "Change Priority",
- "CHANGE_TEAM": "Change Team",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "ADD_LABEL": "Add label to the conversation",
- "REMOVE_LABEL": "Remove label from the conversation",
+ "CONVERSATION": "Conversa",
+ "BULK_ACTIONS": "Accions massives",
+ "CHANGE_ASSIGNEE": "Canvia l'assignat",
+ "CHANGE_PRIORITY": "Canvia la prioritat",
+ "CHANGE_TEAM": "Canvia l'equip",
+ "SNOOZE_CONVERSATION": "Posposa la conversa",
+ "ADD_LABEL": "Afegeix una etiqueta a la conversa",
+ "REMOVE_LABEL": "Elimina l'etiqueta de la conversa",
"SETTINGS": "Configuracions",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "Assistència IA",
+ "APPEARANCE": "Aparença",
+ "SNOOZE_NOTIFICATION": "Posposa la notificació"
},
"COMMANDS": {
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
- "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
- "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
- "GO_TO_LABEL_REPORTS": "Go to Label Reports",
- "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
- "GO_TO_TEAM_REPORTS": "Go to Team Reports",
- "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
- "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
- "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
- "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
- "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
- "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
- "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
- "GO_TO_NOTIFICATIONS": "Go to Notifications",
- "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
- "ASSIGN_AN_AGENT": "Assign an agent",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
- "ASSIGN_A_TEAM": "Assign a team",
- "MUTE_CONVERSATION": "Mute conversation",
- "UNMUTE_CONVERSATION": "Unmute conversation",
- "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
+ "GO_TO_CONVERSATION_DASHBOARD": "Vés al Tauler de converses",
+ "GO_TO_CONTACTS_DASHBOARD": "Ves al Tauler de contactes",
+ "GO_TO_REPORTS_OVERVIEW": "Ves a Visió general dels informes",
+ "GO_TO_CONVERSATION_REPORTS": "Vés a Informes de converses",
+ "GO_TO_AGENT_REPORTS": "Ves a Informes d'agents",
+ "GO_TO_LABEL_REPORTS": "Ves a Informes d'etiquetes",
+ "GO_TO_INBOX_REPORTS": "Ves a Informes de la safata d'entrada",
+ "GO_TO_TEAM_REPORTS": "Ves a Informes d'equip",
+ "GO_TO_SETTINGS_AGENTS": "Ves a Configuració de l'agent",
+ "GO_TO_SETTINGS_TEAMS": "Ves a Configuració de l'equip",
+ "GO_TO_SETTINGS_INBOXES": "Ves a Configuració de la safata d'entrada",
+ "GO_TO_SETTINGS_LABELS": "Ves a Configuració de l'etiqueta",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Ves a Configuració de resposta enllaunada",
+ "GO_TO_SETTINGS_APPLICATIONS": "Ves a Configuració de l'aplicació",
+ "GO_TO_SETTINGS_ACCOUNT": "Ves a Configuració del compte",
+ "GO_TO_SETTINGS_PROFILE": "Ves a Configuració del perfil",
+ "GO_TO_NOTIFICATIONS": "Ves a Notificacions",
+ "ADD_LABELS_TO_CONVERSATION": "Afegeix una etiqueta a la conversa",
+ "ASSIGN_AN_AGENT": "Assigna un agent",
+ "AI_ASSIST": "Assistència IA",
+ "ASSIGN_PRIORITY": "Assigna prioritat",
+ "ASSIGN_A_TEAM": "Assigna un equip",
+ "MUTE_CONVERSATION": "Silencia la conversa",
+ "UNMUTE_CONVERSATION": "No silenciïs la conversa",
+ "REMOVE_LABEL_FROM_CONVERSATION": "Elimina l'etiqueta de la conversa",
"REOPEN_CONVERSATION": "Torna a obrir la conversa",
"RESOLVE_CONVERSATION": "Resol la conversa",
- "SEND_TRANSCRIPT": "Send an email transcript",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "UNTIL_NEXT_REPLY": "Until next reply",
- "UNTIL_NEXT_WEEK": "Until next week",
- "UNTIL_TOMORROW": "Until tomorrow",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "SEND_TRANSCRIPT": "Envia la transcripció per correu electrònic",
+ "SNOOZE_CONVERSATION": "Posposa la conversa",
+ "UNTIL_NEXT_REPLY": "Fins a la propera resposta",
+ "UNTIL_NEXT_WEEK": "Fins a la setmana vinent",
+ "UNTIL_TOMORROW": "Fins demà",
+ "UNTIL_NEXT_MONTH": "Fins al mes vinent",
+ "AN_HOUR_FROM_NOW": "Fins d'aquí una hora",
+ "UNTIL_CUSTOM_TIME": "Personalitzat...",
+ "CHANGE_APPEARANCE": "Canvia l'aparença",
+ "LIGHT_MODE": "Clar",
+ "DARK_MODE": "Fosc",
+ "SYSTEM_MODE": "Sistema",
+ "SNOOZE_NOTIFICATION": "Posposa la notificació"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Loading Dashboard App..."
+ "LOADING_MESSAGE": "S'està carregant l'aplicació Tauler..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "O",
"CLICK_HERE": "clica aquí"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
index 232cf9424..5453c8e74 100644
--- a/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ca/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "Centre d'ajuda",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Crea un portal"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
+ "FILTER": "Filtrat per",
+ "SORT": "Ordenat per",
+ "LOCALE": "Localització",
"SETTINGS_BUTTON": "Configuracions",
- "NEW_BUTTON": "New Article",
+ "NEW_BUTTON": "Nou article",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "Publicat",
+ "DRAFT": "Esborrany",
+ "ARCHIVED": "Arxivat"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "Tots els articles",
+ "MINE": "Tots els meus articles",
+ "DRAFT": "Esborrany d'articles",
+ "ARCHIVED": "Articles arxivats"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Selecciona localització",
+ "PLACEHOLDER": "Selecciona localització",
+ "NO_RESULT": "No s'ha trobat localització",
+ "SEARCH_PLACEHOLDER": "Cerca localització"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "Tots els articles",
+ "PUBLISH_BUTTON": "Publica",
+ "MOVE_TO_ARCHIVE_BUTTON": "Mou a arxivat",
+ "PREVIEW": "Vista prèvia",
+ "ADD_TRANSLATION": "Afegeix traducció",
+ "OPEN_SIDEBAR": "Obre la barra lateral",
+ "CLOSE_SIDEBAR": "Tanca la barra lateral",
+ "SAVING": "S'està desant...",
+ "SAVED": "Desat"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
"TITLE": "Puja imatge",
"UPLOADING": "S'està carregant...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "La imatge s'ha carregat correctament",
+ "ERROR": "S'ha produït un error en carregar la imatge",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
+ "ERROR_FILE_SIZE": "La mida de la imatge ha de ser inferior a {size}MB",
+ "ERROR_FILE_FORMAT": "El format de la imatge ha de ser JPG, JPEG o PNG",
+ "ERROR_FILE_DIMENSIONS": "Les dimensions de la imatge han de ser inferiors a 2000 x 2000"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "Configuració de l'article",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "Categoria",
+ "TITLE": "Selecciona categoria",
+ "PLACEHOLDER": "Selecciona categoria",
+ "NO_RESULT": "No s'ha trobat la categoria",
+ "SEARCH_PLACEHOLDER": "Cerca la categoria"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "Autor",
+ "TITLE": "Selecciona l'autor",
+ "PLACEHOLDER": "Selecciona l'autor",
+ "NO_RESULT": "No s'han trobat autors",
+ "SEARCH_PLACEHOLDER": "Cerca autor"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "Meta títol",
+ "PLACEHOLDER": "Afegeix un meta títol"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "Meta descripció",
+ "PLACEHOLDER": "Afegeix la teva meta descripció per obtenir millors resultats de SEO..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "Meta etiquetes",
+ "PLACEHOLDER": "Afegeix meta etiquetes separades per comes..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "Arxiva article",
+ "DELETE": "Suprimeix article"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "Sense categoria",
+ "SEARCH_RESULTS": "Resultats de la cerca per a {query}",
+ "EMPTY_TEXT": "Cerca articles per inserir a les respostes.",
+ "SEARCH_LOADER": "S'està cercant...",
+ "INSERT_ARTICLE": "Insereix",
+ "NO_RESULT": "No s'han trobat articles",
+ "COPY_LINK": "Copia l'enllaç de l'article al porta-retalls",
+ "OPEN_LINK": "Obre l'article en una pestanya nova",
+ "PREVIEW_LINK": "Vista prèvia de l'article"
},
"PORTAL": {
"HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
+ "DEFAULT": "Per defecte",
+ "NEW_BUTTON": "Nou portal",
+ "ACTIVE_BADGE": "actiu",
+ "CHOOSE_LOCALE_LABEL": "Escull una localització",
+ "LOADING_MESSAGE": "Carregant portals...",
"ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "NO_PORTALS_MESSAGE": "No hi ha portals disponibles",
+ "ADD_NEW_LOCALE": "Afegeix una nova localització",
"POPOVER": {
"TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "PORTAL_SETTINGS": "Configuració del portal",
+ "SUBTITLE": "Tens diversos portals i pots tenir diferents localitzacions per a cada portal.",
"CANCEL_BUTTON_LABEL": "Cancel·la",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "Escull localització"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
"COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
+ "ADD": "Afegeix localització",
+ "VISIT": "Visita el lloc",
"SETTINGS": "Configuracions",
"DELETE": "Esborrar"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "Configuracions del portal",
"ITEMS": {
"NAME": "Nom",
- "DOMAIN": "Custom domain",
+ "DOMAIN": "Domini personalitzat",
"SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "TITLE": "Títol del portal",
+ "THEME": "Color del tema",
+ "SUB_TEXT": "Subtext del portal"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "Localitzacions disponibles",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "Nom de la localització",
+ "CODE": "Codi de la localització",
+ "ARTICLE_COUNT": "Nre. d'articles",
+ "CATEGORIES": "Nre. de categories",
+ "SWAP": "Intercanvi",
"DELETE": "Esborrar",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "Per defecte"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "Suprimir portal",
+ "MESSAGE": "Estàs segur que vols suprimir aquest portal",
+ "YES": "Sí, esborra el portal",
+ "NO": "No, manté el portal",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "Portal esborrat correctament",
+ "DELETE_ERROR": "S'ha produït un error en suprimir el portal"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "Edita el portal",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "Informació bàsica"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "Personalització del portal"
},
"CATEGORY_SETTINGS": {
"TITLE": "Categories"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "Localitzacions"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "Categories a",
+ "NEW_CATEGORY": "Nova categoria",
"TABLE": {
"NAME": "Nom",
"DESCRIPTION": "Descripció",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "LOCALE": "Localització",
+ "ARTICLE_COUNT": "Nre. d'articles",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "Edita la categoria",
+ "DELETE": "Suprimeix la categoria"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "No s'han trobat categories"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "Actualitzar la configuració bàsica"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informació del centre d'ajuda",
+ "BODY": "Informació bàsica sobre el portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Personalització del centre d'ajuda",
+ "BODY": "Personalitza el portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Llest! 🎉",
+ "BODY": "Estàs a punt!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Enrere",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "Crea un portal",
+ "TITLE": "Informació del centre d'ajuda",
+ "CREATE_BASIC_SETTING_BUTTON": "Crea la configuració bàsica del portal"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "Personalització del portal",
+ "TITLE": "Personalització del centre d'ajuda",
+ "UPDATE_PORTAL_BUTTON": "Actualitza la configuració del portal"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "Lles!🎉 Estàs a punt!",
+ "MESSAGE": "Ara pots veure aquest portal creat en la teva pàgina de tots els portals.",
+ "FINISH": "Ves a la pàgina de tots els portals"
}
},
"LOGO": {
"LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "UPLOAD_BUTTON": "Actualitza el logo",
+ "HELP_TEXT": "Aquest logotip es mostrarà a la capçalera del portal.",
+ "IMAGE_UPLOAD_SUCCESS": "El logotip s'ha penjat correctament",
+ "IMAGE_UPLOAD_ERROR": "El logotip s'ha suprimit correctament",
+ "IMAGE_DELETE_ERROR": "S'ha produït un error en suprimir el logotip"
},
"NAME": {
"LABEL": "Nom",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nom del portal",
+ "HELP_TEXT": "El nom s'utilitzarà internament al portal públic.",
+ "ERROR": "El valor és necessari"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "PLACEHOLDER": "Slug del portal per a URLs",
+ "ERROR": "El slug és obligatori"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "Domini personalitzat",
+ "PLACEHOLDER": "Domini personalitzat del portal",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
+ "ERROR": "Introdueix una URL de domini vàlid"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "Enllaça a la pàgina d'inici",
+ "PLACEHOLDER": "Enllaç a la pàgina d'inici del portal",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
+ "ERROR": "Introdueix una URL de pàgina d'inici vàlid"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "Color del tema del portal",
+ "HELP_TEXT": "Aquest color es mostrarà com a color del tema per al portal."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "Títol de la pàgina",
+ "PLACEHOLDER": "Títol de la pàgina del portal",
+ "HELP_TEXT": "El títol de la pàgina s'utilitzarà al portal públic.",
+ "ERROR": "El títol de la pàgina és necessari"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "Text de la capçalera",
+ "PLACEHOLDER": "Text de la capçalera del portal",
+ "HELP_TEXT": "El text de la capçalera del portal s'utilitzarà al portal públic.",
+ "ERROR": "El text de la capçalera del portal és obligatori"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "Portal creat correctament.",
+ "ERROR_MESSAGE_FOR_BASIC": "No s'ha pogut crear el portal. Torna-ho a provar.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "Portal actualitzat correctament.",
+ "ERROR_MESSAGE_FOR_UPDATE": "No s'ha pogut actualitzar el portal. Torna-ho a provar."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
+ "TITLE": "Afegeix una nova localització",
+ "SUB_TITLE": "Això afegeix una configuració regional nova a la teva llista de traduccions disponible.",
"PORTAL": "Portal",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "Localització",
+ "PLACEHOLDER": "Escull una localització",
+ "ERROR": "La localització és necessari"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "Crea una localització",
"CANCEL": "Cancel·la"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "La localització s'ha afegit correctament",
+ "ERROR_MESSAGE": "No es pot afegir la localització. Torna-ho a provar."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "La localització predeterminada s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la localització. Torna-ho a provar."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "La localització s'ha eliminat del portal correctament",
+ "ERROR_MESSAGE": "No es pot eliminar la localització del portal. Torna-ho a provar."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "Carregant articles...",
+ "404": "No hi ha cap article que coincideixi amb la teva cerca 🔍",
+ "NO_ARTICLES": "No hi ha articles disponibles",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "TITLE": "Títol",
+ "CATEGORY": "Categoria",
+ "READ_COUNT": "Vistes",
"STATUS": "Estat",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "Última edició"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "per",
+ "AUTHOR_NOT_AVAILABLE": "L'autor no està disponible"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "Carregant articles...",
+ "TITLE_PLACEHOLDER": "El títol de l'article va aquí",
+ "CONTENT_PLACEHOLDER": "Escriu el teu article aquí",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "S'ha produït un error en desar l'article"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "S'ha produït un error en publicar l'article",
+ "SUCCESS": "Article publicat amb èxit"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "S'ha produït un error en arxivar l'article",
+ "SUCCESS": "Article arxivat correctament"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "Confirma l'esborrat",
- "MESSAGE": "Are you sure to delete the article?",
+ "MESSAGE": "Esteu segur que suprimiu l'article?",
"YES": "Si, esborra",
"NO": "No, manten-la"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "Article esborrat correctament",
+ "ERROR_MESSAGE": "S'ha produït un error en suprimir l'article"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "Afegiu l'encapçalament i el contingut de l'article i llavors pots actualitzar la configuració"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "Cerca articles"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
+ "TITLE": "Crea una categoria",
+ "SUB_TITLE": "La categoria s'utilitzarà al portal públic per categoritzar els articles.",
"PORTAL": "Portal",
- "LOCALE": "Locale",
+ "LOCALE": "Localització",
"NAME": {
"LABEL": "Nom",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nom de la categoria",
+ "HELP_TEXT": "El nom i la icona de la categoria s'utilitzaran al portal públic per categoritzar els articles.",
+ "ERROR": "El valor és necessari"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "PLACEHOLDER": "Slug de categoria per a URLs",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "El slug és obligatori"
},
"DESCRIPTION": {
"LABEL": "Descripció",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "Fes una breu descripció de la categoria.",
+ "ERROR": "La descripció és necessària"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "Crea la categoria",
"CANCEL": "Cancel·la"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "Categoria creada correctament",
+ "ERROR_MESSAGE": "No es pot crear la categoria"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
+ "TITLE": "Edita una categoria",
+ "SUB_TITLE": "L'edició d'una categoria actualitzarà la categoria al portal públic.",
"PORTAL": "Portal",
- "LOCALE": "Locale",
+ "LOCALE": "Localització",
"NAME": {
"LABEL": "Nom",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nom de la categoria",
+ "HELP_TEXT": "El nom i la icona de la categoria s'utilitzaran al portal públic per categoritzar els articles.",
+ "ERROR": "El valor és necessari"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "PLACEHOLDER": "Slug de categoria per a URLs",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "El slug és obligatori"
},
"DESCRIPTION": {
"LABEL": "Descripció",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "Fes una breu descripció de la categoria.",
+ "ERROR": "La descripció és necessària"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "Actualitza la categoria",
"CANCEL": "Cancel·la"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "Categoria actualitzada correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la categoria"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "Categoria suprimida correctament",
+ "ERROR_MESSAGE": "No es pot suprimir la categoria"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
+ "TITLE": "Cerca articles",
+ "PLACEHOLDER": "Cerca articles",
+ "NO_RESULT": "No s'han trobat articles",
+ "SEARCHING": "S'està cercant...",
"SEARCH_BUTTON": "Cercar",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "insereix enllaç",
+ "IFRAME_ERROR": "L'URL és buit o no és vàlid. No es pot mostrar el contingut.",
+ "OPEN_ARTICLE_SEARCH": "Insereix un article del Centre d'ajuda",
+ "SUCCESS_ARTICLE_INSERTED": "Article inserit correctament",
+ "PREVIEW_LINK": "Vista prèvia de l'article",
"CANCEL": "Tanca",
"BACK": "Enrere",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "Torna als resultats"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "Centre d'ajuda",
+ "DESCRIPTION": "Crea portals d'autoservei fàcils d'utilitzar. Ajuda els teus usuaris a accedir als articles i obtenir assistència les 24 hores del dia. Actualitza la teva subscripció per activar aquesta funció.",
+ "SELF_HOSTED_DESCRIPTION": "Crea portals d'autoservei fàcils d'utilitzar. Ajuda els teus usuaris a accedir als articles i obtenir assistència les 24 hores del dia. Posa't en contacte amb el teu administrador per activar aquesta funció.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "Aprèn més",
+ "UPGRADE": "Actualitza"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Múltiples portals",
+ "DESCRIPTION": "Crea diversos portals del centre d'ajuda per a diferents productes amb el mateix compte."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Suport total per a localitzacions",
+ "DESCRIPTION": "Localitza el portal en el teu idioma. Admetem totes les localitzacions i permetem traduccions per a cada article."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "Disseny SEO-friendly",
+ "DESCRIPTION": "Personalitza les teves meta etiquetes per millorar la teva visibilitat als motors de cerca amb les nostres pàgines SEO-friendly."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "Suport complet de l'API",
+ "DESCRIPTION": "Utilitza el portal com a CMS sense cap amb marcs de front-end de tercers mitjançant les nostres API."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publica",
+ "DRAFT": "Esborrany",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Tradueix",
+ "DELETE": "Esborrar"
+ },
+ "STATUS": {
+ "DRAFT": "Esborrany",
+ "PUBLISHED": "Publicat",
+ "ARCHIVED": "Arxivat"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Meves",
+ "DRAFT": "Esborrany",
+ "PUBLISHED": "Publicat",
+ "ARCHIVED": "Arxivat"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Tradueix",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Tradueix",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publica",
+ "DRAFT": "Esborrany",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Tradueix",
+ "MOVE_TO_CATEGORY": "Categoria",
+ "DELETE": "Esborrar",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Esborrar",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nova categoria",
+ "EDIT_CATEGORY": "Edita la categoria",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No s'han trobat categories",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria creada correctament",
+ "ERROR_MESSAGE": "No es pot crear la categoria"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria actualitzada correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la categoria"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria suprimida correctament",
+ "ERROR_MESSAGE": "No es pot suprimir la categoria"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Crea la categoria",
+ "EDIT": "Edita la categoria",
+ "DESCRIPTION": "L'edició d'una categoria actualitzarà la categoria al portal públic.",
+ "PORTAL": "Portal",
+ "LOCALE": "Localització"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Nom de la categoria",
+ "ERROR": "El valor és necessari"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug de categoria per a URLs",
+ "ERROR": "El slug és obligatori",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Fes una breu descripció de la categoria.",
+ "ERROR": "La descripció és necessària"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "EDIT": "Actualitza",
+ "CANCEL": "Cancel·la"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Per defecte",
+ "DRAFT": "Esborrany",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Esborrar"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Afegeix una nova localització",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Selecciona localització..."
+ },
+ "STATUS": {
+ "LABEL": "Estat",
+ "OPTIONS": {
+ "LIVE": "Publicat",
+ "DRAFT": "Esborrany"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "La localització s'ha afegit correctament",
+ "ERROR_MESSAGE": "No es pot afegir la localització. Torna-ho a provar."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "S'està desant...",
+ "SAVED": "Desat"
+ },
+ "PREVIEW": "Vista prèvia",
+ "PUBLISH": "Publica",
+ "DRAFT": "Esborrany",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Sense categoria",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta descripció",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta títol",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta etiquetes",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "S'ha produït un error en desar l'article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domini",
+ "PORTAL_NAME": "Nom del portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Crear",
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "El valor és necessari"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "El slug és obligatori",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "No s'ha pogut carregar la imatge! Torna-ho a provar",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "El logotip s'ha suprimit correctament",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "La mida de la imatge ha de ser inferior a {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Nom del portal",
+ "ERROR": "El valor és necessari"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Text de la capçalera del portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Títol de la pàgina del portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Enllaç a la pàgina d'inici del portal",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domini personalitzat",
+ "LABEL": "Domini personalitzat:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Domini personalitzat del portal",
+ "EDIT_BUTTON": "Edita",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "En directe",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Domini personalitzat",
+ "PLACEHOLDER": "Domini personalitzat del portal",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Envia"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Suprimir portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Esborrar"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Aparença",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Suprimeix"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal creat correctament",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal actualitzat correctament",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "S'està carregant...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancel·la",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generant...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completat",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/inbox.json b/app/javascript/dashboard/i18n/locale/ca/inbox.json
index 37aa55c95..dfd9088ef 100644
--- a/app/javascript/dashboard/i18n/locale/ca/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ca/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "S'han carregat totes les notificacions 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "Visualització",
+ "LOADING": "S'estan obtenint notificacions",
+ "404": "No hi ha notificacions actives en aquest grup.",
+ "NO_NOTIFICATIONS": "No hi ha notificacions",
+ "NOTE": "Notificacions de totes les safates d'entrada subscrites",
+ "NO_MESSAGES_AVAILABLE": "Ups! No es poden recuperar els missatges",
+ "SNOOZED_UNTIL": "Posposat fins a",
+ "SNOOZED_UNTIL_TOMORROW": "Posposat fins demà",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Posposat fins a la setmana vinent"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "Posposa la notificació",
+ "DELETE": "Suprimeix la notificació",
+ "BACK": "Enrere"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "T'han mencionat a la conversa",
+ "CONVERSATION_CREATION": "S'ha creat una nova conversa",
+ "CONVERSATION_ASSIGNMENT": "Una conversa ha estat assignada a tu",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Missatge nou en una conversa assignada",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Missatge nou en una conversa en què participeu",
+ "SLA_MISSED_FIRST_RESPONSE": "S'ha perdut la primera resposta de l'objectiu de SLA per a la conversa",
+ "SLA_MISSED_NEXT_RESPONSE": "S'ha perdut la següent resposta de l'objectiu de SLA per a la conversa",
+ "SLA_MISSED_RESOLUTION": "S'ha perdut la resolució de l'objectiu de SLA per a la conversa"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nou missatge",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nou missatge",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No hi ha contingut disponible",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
- "MARK_AS_UNREAD": "Mark as unread",
- "SNOOZE": "Snooze",
+ "MARK_AS_READ": "Marca com a llegit",
+ "MARK_AS_UNREAD": "Marca com a no llegit",
+ "SNOOZE": "Posposat",
"DELETE": "Esborrar",
"MARK_ALL_READ": "Marcar tots com a llegits",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "Suprimeix tot",
+ "DELETE_ALL_READ": "Suprimeix tots els llegits"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "Ordena",
+ "DISPLAY": "Visualització:",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
- "PRIORITY": "Priority"
+ "NEWEST": "Més nou",
+ "OLDEST": "Més antic",
+ "PRIORITY": "Prioritat"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "Posposat",
"READ": "Llegir",
"LABELS": "Etiquetes",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "ID de la conversa"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "Notificació marcada com a llegida",
+ "MARK_AS_UNREAD": "Notificació marcada com a no llegida",
+ "SNOOZE": "La notificació s'ha posposat",
+ "DELETE": "S'ha suprimit la notificació",
+ "MARK_ALL_READ": "Totes les notificacions s'han marcat com a llegides",
+ "DELETE_ALL": "S'han suprimit totes les notificacions",
+ "DELETE_ALL_READ": "S'han suprimit totes les notificacions de lectura"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
index 832808d3c..e29814a00 100644
--- a/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/inboxMgmt.json
@@ -1,41 +1,45 @@
{
"INBOX_MGMT": {
"HEADER": "Safates d'entrada",
- "SIDEBAR_TXT": "Safata d’entrada
Quan connecteu un lloc web o una pàgina de Facebook a Chatwoot, s’anomenaSafata d’entrada. Podeu tenir bústies d’entrada il·limitades al vostre compte de Chatwoot.
Fer clic a Add Safata d’entrada per connectar un lloc web o una pàgina de Facebook.
Al tauler, pots veure totes les converses de totes les teves safates d'entrada en un sol lloc i respondre-hi a la pestanya `Converses`.
També pots veure converses específiques d’una safata d’entrada fent clic al nom de la safata d’entrada a l'esquerre del tauler.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "La teva safata d'entrada està desconnectada. No rebràs missatges nous fins que no els tornis a autoritzar.",
+ "CLICK_TO_RECONNECT": "Fes clic aquí per tornar a connectar-te.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "No hi ha cap safata d'entrada connectat a aquest compte."
},
- "CREATE_FLOW": [
- {
- "title": "Triar canal",
- "route": "settings_inbox_new",
- "body": "Trieu el proveïdor que vulgueu integrar amb Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Triar canal",
+ "BODY": "Trieu el proveïdor que vulgueu integrar amb Chatwoot."
},
- {
- "title": "Crear safata d'entrada",
- "route": "settings_inboxes_page_channel",
- "body": "Autentiqueu el vostre compte i creeu una safata d'entrada."
+ "INBOX": {
+ "TITLE": "Crear safata d'entrada",
+ "BODY": "Autentiqueu el vostre compte i creeu una safata d'entrada."
},
- {
- "title": "Afegir agents",
- "route": "settings_inboxes_add_agents",
- "body": "Afegir agents a la safata d'entrada creada."
+ "AGENT": {
+ "TITLE": "Afegir agents",
+ "BODY": "Afegir agents a la safata d'entrada creada."
},
- {
- "title": "Llest!",
- "route": "settings_inbox_finish",
- "body": "Ja estàs preparat!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Ja estàs preparat!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nom de la safata d'entrada",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "PLACEHOLDER": "Introdueix el nom de la safata d'entrada (p. ex.: Acme Inc)",
+ "ERROR": "Introdueix un nom de safata d'entrada vàlid"
},
"WEBSITE_NAME": {
"LABEL": "Nom del lloc web",
- "PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
+ "PLACEHOLDER": "Introdueix el nom del vostre lloc web (per exemple: Acme Inc)"
},
"FB": {
"HELP": "PD: Al iniciar la sessió, només accediu als missatges de la vostra pàgina. Chatwoot mai no podrà accedir als vostres missatges privats.",
@@ -43,14 +47,31 @@
"CHOOSE_PLACEHOLDER": "Selecciona una pàgina de la llista",
"INBOX_NAME": "Nom de la safata d'entrada",
"ADD_NAME": "Afegeix un nom per a la safata d'entrada",
- "PICK_NAME": "Tria un nom a la safata d'entrada",
- "PICK_A_VALUE": "Tria un valor"
+ "PICK_NAME": "Tria un nom per a la teva safata d'entrada",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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' ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "ERROR_MESSAGE": "S'ha produït un error en connectar amb Twitter, torna-ho a provar",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "Crea converses a partir dels tuits esmentats"
}
},
"WEBSITE_CHANNEL": {
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL del webhook",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Introdueix l'URL del teu webhook",
"ERROR": "Introduïu una URL vàlid"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domini del lloc web",
"PLACEHOLDER": "Introduïu el vostre domini de lloc web (pe: acme.com)"
@@ -83,7 +112,7 @@
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "Activa la salutació del canal",
- "HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
+ "HELP_TEXT": "Envia automàticament missatges de salutació quan els clients inicien una conversa i envien el seu primer missatge.",
"ENABLED": "Habilita",
"DISABLED": "Inhabilita"
},
@@ -100,33 +129,33 @@
},
"SUBMIT_BUTTON": "Crea la safata entrada",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "No hem pogut crear un canal de lloc web, torna-ho a provar"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Canal Twilio SMS/WhatsApp",
+ "DESC": "Integra Twilio i comença a donar suport als teus clients mitjançant SMS o WhatsApp.",
"ACCOUNT_SID": {
"LABEL": "Compte SID",
"PLACEHOLDER": "Introduïu el vostre compte Twilio SID",
"ERROR": "Aquest camp és obligatori"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "Utilitzeu l'autenticació API Key",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "Introdueix la teva API Key SID",
"ERROR": "Aquest camp és obligatori"
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "PLACEHOLDER": "Introdueix la teva API Key Secret",
"ERROR": "Aquest camp és obligatori"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
+ "LABEL": "SID del servei de missatgeria",
+ "PLACEHOLDER": "Introdueix el teu SID del servei de missatgeria Twilio",
"ERROR": "Aquest camp és obligatori",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "USE_MESSAGING_SERVICE": "Utilitza un servei de missatgeria Twilio"
},
"CHANNEL_TYPE": {
"LABEL": "Tipus de canal",
@@ -139,13 +168,13 @@
},
"CHANNEL_NAME": {
"LABEL": "Nom de la safata d'entrada",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "Introdueix un nom de safata d'entrada",
"ERROR": "Aquest camp és obligatori"
},
"PHONE_NUMBER": {
"LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Proporciona un número de telèfon vàlid que comenci amb un signe \"+\" i que no contingui espais."
},
"API_CALLBACK": {
"TITLE": "Callback URL",
@@ -157,106 +186,184 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "Canal SMS",
+ "DESC": "Comença a donar suport als teus clients mitjançant SMS.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Proveïdor d'API",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "No hem pogut desar el canal SMS"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
+ "LABEL": "ID del compte",
+ "PLACEHOLDER": "Introdueix l'identificador del teu compte de Bandwidth",
"ERROR": "Aquest camp és obligatori"
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Introdueix la teva API Key de Bandwidth",
"ERROR": "Aquest camp és obligatori"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Introdueix la teva API Secret de Bandwidth",
"ERROR": "Aquest camp és obligatori"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
+ "LABEL": "ID d'aplicació",
+ "PLACEHOLDER": "Introdueix el teu ID de l'aplicació Bandwidth",
"ERROR": "Aquest camp és obligatori"
},
"INBOX_NAME": {
"LABEL": "Nom de la safata d'entrada",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "Introdueix un nom de safata d'entrada",
"ERROR": "Aquest camp és obligatori"
},
"PHONE_NUMBER": {
"LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Proporciona un número de telèfon vàlid que comenci amb un signe \"+\" i que no contingui espais."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Crea un canal de Bandwidth",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "No hem pogut autenticar les credencials de Bandwidth, prova de nou"
},
"API_CALLBACK": {
"TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "SUBTITLE": "Has de configurar l'URL de devolució del missatge a Bandwidth amb l'URL esmentada aquí."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "Canal WhatsApp",
+ "DESC": "Comença a donar suport als teus clients mitjançant WhatsApp.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Proveïdor d'API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
- "360_DIALOG": "360Dialog"
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
+ "360_DIALOG": "360dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
},
"INBOX_NAME": {
"LABEL": "Nom de la safata d'entrada",
- "PLACEHOLDER": "Please enter an inbox name",
+ "PLACEHOLDER": "Introdueix un nom de safata d'entrada",
"ERROR": "Aquest camp és obligatori"
},
"PHONE_NUMBER": {
"LABEL": "Número de telèfon",
"PLACEHOLDER": "Introduïu el número de telèfon des del qual serà enviat el missatge.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Proporciona un número de telèfon vàlid que comenci amb un signe \"+\" i que no contingui espais."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ID del número de telèfon",
+ "PLACEHOLDER": "Introdueix l'ID del número de telèfon obtingut al tauler de control de desenvolupadors de Facebook.",
+ "ERROR": "Introdueix un valor vàlid."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ID del compte comercial",
+ "PLACEHOLDER": "Introdueix l'ID del compte comercial obtingut al tauler de control de desenvolupadors de Facebook.",
+ "ERROR": "Introdueix un valor vàlid."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Token de verificació del webhook",
+ "PLACEHOLDER": "Introdueix un token de verificació que vulguis configurar per als webhooks de Facebook.",
+ "ERROR": "Introdueix un valor vàlid."
},
"API_KEY": {
"LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
+ "SUBTITLE": "Configura l'API key de WhatsApp.",
"PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "ERROR": "Introdueix un valor vàlid."
},
"API_CALLBACK": {
"TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "SUBTITLE": "Has de configurar l'URL del webhook i el testimoni de verificació al portal de desenvolupadors de Facebook amb els valors que es mostren a continuació.",
"WEBHOOK_URL": "URL del webhook",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "Token de verificació del webhook"
+ },
+ "SUBMIT_BUTTON": "Crea un canal de WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "No hem pogut desar el canal WhatsApp"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Número de telèfon",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Compte SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token d'autenticació",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
}
},
"API_CHANNEL": {
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "URL del webhook",
- "SUBTITLE": "Configura l'URL on vulguis rebre callbacks en esdeveniments.",
+ "SUBTITLE": "Configura l'URL on vulguis rebre les devolucions de trucada dels esdeveniments.",
"PLACEHOLDER": "URL del webhook"
},
"SUBMIT_BUTTON": "Crea un canal API",
@@ -294,58 +401,114 @@
"API": {
"ERROR_MESSAGE": "No hem pogut desar el canal de correu electrònic"
},
- "FINISH_MESSAGE": "Comença a reenviar els teus correus electrònics a la següent adreça electrònica."
+ "FINISH_MESSAGE": "Comença a reenviar els teus correus electrònics a la següent adreça electrònica.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Clica aquí",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "Canal LINE",
+ "DESC": "Integra't amb el canal LINE i comença a donar suport als teus clients.",
"CHANNEL_NAME": {
"LABEL": "Nom del canal",
"PLACEHOLDER": "Introduïu el nom del canal",
"ERROR": "Aquest camp és obligatori"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "ID del canal LINE",
+ "PLACEHOLDER": "ID del canal LINE"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "Secret del canal LINE",
+ "PLACEHOLDER": "Secret del canal LINE"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "Token del canal LINE",
+ "PLACEHOLDER": "Token del canal LINE"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "Crea un canal LINE",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "No hem pogut desar el canal de LINE"
},
"API_CALLBACK": {
"TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "SUBTITLE": "Has de configurar l'URL del webhook a l'aplicació LINE amb l'URL esmentat aquí."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Canal de Telegram",
+ "DESC": "Integra't amb el canal de Telegram i comença a donar suport als teus clients.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "Token del Bot",
+ "SUBTITLE": "Configura el token del bot que has obtingut de Telegram BotFather.",
+ "PLACEHOLDER": "Token del Bot"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Crea el canal de Telegram",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "No hem pogut desar el canal de Telegram"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "Escull un canal",
+ "DESC": "Chatwoot admet widgets de xat en directe, Facebook Messenger, WhatsApp, correus electrònics, etc., com a canals. Si voleu crear un canal personalitzat, podeu crear-lo mitjançant el canal API. Per començar, tria un dels canals següents.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Lloc web",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Correu electrònic",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agents",
"DESC": "Aquí podeu afegir agents per gestionar la vostra safata d'entrada de nova creació. Només aquests agents seleccionats tindran accés a la vostra safata d'entrada. Els agents que no formen part d'aquesta safata d'entrada no podran veure ni respondre als missatges d'aquesta safata d'entrada quan s’inicien.
PD: Com a administrador, si necessiteu accés a totes les bústies d’entrada, heu d’afegir-vos com a agent a totes les bústies de sortida que creeu.",
- "VALIDATION_ERROR": "Afageix almenys un agent a la teva safata d'entrada",
+ "VALIDATION_ERROR": "Afegeix almenys un agent a la teva safata d'entrada",
"PICK_AGENTS": "Tria agents per la safata d'entrada"
},
"DETAILS": {
@@ -357,22 +520,30 @@
"DESC": "Heu acabat d'integrar la vostra pàgina de Facebook amb Chatwoot. La propera vegada que un client escrigui un missatge a la vostra pàgina, la conversa apareixerà automàticament a la safata d'entrada.
També us proporcionem un script del widget que podeu afegir fàcilment al vostre web. Una vegada que estigui operatiu al vostre web, els clients us podran enviar missatges des del web sense l’ajuda de cap eina externa i la conversa apareixerà aquí mateix, a Chatwoot.
Genial, eh? Bé, segur que intentem ser-ho :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "Selecciona el teu proveïdor de correu electrònic",
+ "DESCRIPTION": "Selecciona un proveïdor de correu electrònic de la següent llista. Si no veus el teu proveïdor de correu electrònic a la llista, pots seleccionar l'opció de l'altre proveïdor i proporcionar les credencials IMAP i SMTP."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Correu Microsoft",
+ "DESCRIPTION": "Fes clic al botó Inicia sessió amb Microsoft per començar. Se't redirigirà a la pàgina d'inici de sessió del correu electrònic. Un cop acceptis els permisos sol·licitats, se't redirigirà al pas de creació de la safata d'entrada.",
+ "EMAIL_PLACEHOLDER": "Introdueix una adreça de correu electrònic",
+ "SIGN_IN": "Inicia la sessió amb Microsoft",
+ "ERROR_MESSAGE": "S'ha produït un error en connectar amb Microsoft, torna-ho a provar"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Introdueix una adreça de correu electrònic",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "S'està autenticant amb Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Alguna cosa ha anat malament, actualitza la pàgina...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "ERROR_FB_UNAUTHORIZED": "No estàs autoritzat per dur a terme aquesta acció. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Assegura't que tens accés a la pàgina de Facebook amb control total. Pots obtenir més informació sobre les funcions de Facebook aquí.",
"CREATING_CHANNEL": "S'està creant la safata d'entrada...",
"TITLE": "Configura els detalls de la safata d'entrada",
"DESC": ""
@@ -385,8 +556,11 @@
"TITLE": "La vostra safata d'entrada està a punt!",
"MESSAGE": "Ja podeu interactuar amb els vostres clients a través del vostre canal nou. Feliç suport",
"BUTTON_TEXT": "Porta'm allà",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "Heu finalitzat amb èxit la creació d'un canal web. Copieu el codi que es mostra a continuació i enganxeu-lo al lloc web. La propera vegada que un client utilitzi el xat en directe, la conversa apareixerà automàticament a la safata d'entrada."
+ "MORE_SETTINGS": "Més configuracions",
+ "WEBSITE_SUCCESS": "Heu finalitzat amb èxit la creació d'un canal web. Copieu el codi que es mostra a continuació i enganxeu-lo al lloc web. La propera vegada que un client utilitzi el xat en directe, la conversa apareixerà automàticament a la safata d'entrada.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reautoritza",
"VIEW": "Veure",
@@ -394,7 +568,7 @@
"API": {
"SUCCESS_MESSAGE": "El color del widget s'ha actualitzat correctament",
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Assignació automàtica actualitzada correctament",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "ERROR_MESSAGE": "No hem pogut actualitzar la configuració de la safata d'entrada. Intenta-ho més tard."
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "Habilita",
@@ -405,22 +579,22 @@
"DISABLED": "Inhabilita"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "Nom del remitent",
+ "SUB_TEXT": "Selecciona el nom que es mostra al vostre client quan reben correus electrònics dels teus agents.",
+ "FOR_EG": "Per exemple:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "Amable",
+ "FROM": "des de",
+ "SUBTITLE": "Afegeix el nom de l'agent que ha enviat la resposta al nom del remitent perquè sigui amigable."
},
"PROFESSIONAL": {
"TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "SUBTITLE": "Utilitza només el nom de l'empresa configurat com a nom del remitent a la capçalera del correu electrònic."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "Configura el nom del teu negoci",
+ "PLACEHOLDER": "Introdueix el nom de la teva empresa",
+ "SAVE_BUTTON_TEXT": "Desar"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -432,102 +606,292 @@
"DISABLED": "Inhabilita"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Habilita",
- "DISABLED": "Inhabilita"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "Habilita"
}
},
"DELETE": {
"BUTTON_TEXT": "Suprimeix",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "Suprimeix Avatar",
"CONFIRM": {
"TITLE": "Confirma esborrat",
"MESSAGE": "N'estas segur? ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
+ "PLACE_HOLDER": "Escriu {inboxName} per confirmar",
"YES": "Si, esborra ",
"NO": "No, segueix "
},
"API": {
"SUCCESS_MESSAGE": "S'ha suprimit la safata d'entrada correctament",
"ERROR_MESSAGE": "No s'ha pogut eliminar la safata d'entrada. Torneu-ho a provar més endavant.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "AVATAR_SUCCESS_MESSAGE": "L'avatar de la safata d'entrada s'ha suprimit correctament",
+ "AVATAR_ERROR_MESSAGE": "No s'ha pogut esborrar l'avatar de la safata d'entrada. Torneu-ho a provar."
}
},
"TABS": {
"SETTINGS": "Configuracions",
"COLLABORATORS": "Col·laboradors",
"CONFIGURATION": "Configuració",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "CAMPAIGN": "Campanyes",
+ "PRE_CHAT_FORM": "Formulari de xat previ",
+ "BUSINESS_HOURS": "Horari comercial",
+ "WIDGET_BUILDER": "Creador del widget",
+ "BOT_CONFIGURATION": "Configuracions del bot",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "En directe"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Configuracions",
"FEATURES": {
"LABEL": "Característiques",
"DISPLAY_FILE_PICKER": "Mostra el selector de fitxers al widget",
"DISPLAY_EMOJI_PICKER": "Mostra el selector d'emoji al widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "ALLOW_END_CONVERSATION": "Permet als usuaris finalitzar la conversa des del widget",
+ "USE_INBOX_AVATAR_FOR_BOT": "Utilitza el nom i l'avatar de la safata d'entrada per al bot"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Script del missatger",
"MESSENGER_SUB_HEAD": "Col·loca aquest botó dins de l'etiqueta body",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agents",
"INBOX_AGENTS_SUB_TEXT": "Afegir o eliminar agents d'aquesta safata d'entrada",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
+ "AGENT_ASSIGNMENT": "Conversació Assignada",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "Actualitza la configuració de l'assignació de conversa",
"UPDATE": "Actualitza",
- "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
+ "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": "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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "SENDER_NAME_SECTION": "Activa el nom de l'agent al correu electrònic",
+ "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.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Configuració de la safata d'entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualitza la configuració de la safata d'entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activa o desactiva l'assignació automàtica d'agents disponibles a les noves converses",
"HMAC_VERIFICATION": "Validació de la Identitat del Usuari",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "Pots llegir més aquí.",
+ "HMAC_MANDATORY_VERIFICATION": "Fer complir la validació de la identitat de l'usuari",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
+ "INBOX_IDENTIFIER": "Identificador de la safata d'entrada",
+ "INBOX_IDENTIFIER_SUB_TEXT": "Utilitza el token \"inbox_identifier\" que es mostra aquí per autenticar els vostres clients de l'API.",
+ "FORWARD_EMAIL_TITLE": "Reenvia al correu electrònic",
"FORWARD_EMAIL_SUB_TEXT": "Comença a reenviar els teus correus electrònics a la següent adreça electrònica.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "Permet missatges després de resoldre la conversa",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Permet als usuaris finals enviar missatges fins i tot després de resoldre la conversa.",
+ "WHATSAPP_SECTION_SUBHEADER": "Aquesta API key s'utilitza per a la integració amb les APIs de WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Introdueix la nova clau de l'API que s'utilitzarà per a la integració amb les APIs de WhatsApp.",
"WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Actualitza l'API Key",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Introdueix la nova clau de l'API aquí",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Actualitza",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connectar",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Token de verificació del webhook",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "Aquest testimoni s'utilitza per verificar l'autenticitat del punt final del webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Actualitza la configuració del formulari de xat prèvia"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "Centre d'ajuda",
+ "PLACEHOLDER": "Selecciona Centre d'ajuda",
+ "SELECT_PLACEHOLDER": "Selecciona Centre d'ajuda",
+ "NONE": "Ningú",
+ "REMOVE": "Suprimeix Centre d'ajuda",
+ "SUB_TEXT": "Adjunta un Centre d'ajuda amb la safata d'entrada"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "Límit d'assignació automàtica",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Introdueix un valor superior a 0",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limita el nombre màxim de converses d'aquesta safata d'entrada que es poden assignar automàticament a un agent"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "Conversació Assignada",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actiu",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel·la",
+ "CONFIRM_DELETE": "Esborrar",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
},
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautoritza",
@@ -536,63 +900,135 @@
"MESSAGE_ERROR": "S'ha produït un error; tornau-ho a provar"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "Els formularis previs al xat et permeten capturar informació de l'usuari abans que comencin a conversar amb vosaltres.",
+ "SET_FIELDS": "Camps del formulari previ al xat",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "Camps",
+ "LABEL": "Etiqueta",
+ "PLACE_HOLDER": "Espai reservat",
+ "KEY": "Clau",
+ "TYPE": "Tipus",
+ "REQUIRED": "Necessari"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "Activa el formulari de xat previ",
"OPTIONS": {
"ENABLED": "Si",
"DISABLED": "No"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "Missatge previ al xat",
+ "PLACEHOLDER": "Aquest missatge seria visible per als usuaris juntament amb el formulari"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Idioma",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Torna"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "Estableix la vostra disponibilitat",
+ "SUBTITLE": "Estableix la teva disponibilitat al widget del xat en directe",
+ "WEEKLY_TITLE": "Estableix el teu horari setmanal",
+ "TIMEZONE_LABEL": "Selecciona la zona horària",
+ "UPDATE": "Actualitza la configuració de l'horari comercial",
+ "TOGGLE_AVAILABILITY": "Habilita la disponibilitat comercial per a aquesta safata d'entrada",
+ "UNAVAILABLE_MESSAGE_LABEL": "Missatge no disponible per als visitants",
+ "TOGGLE_HELP": "Si activeu la disponibilitat comercial, es mostraran les hores disponibles al giny del xat en directe, encara que tots els agents estiguin fora de línia. Fora de l'horari disponible, els visitants poden ser avisats amb un missatge i un formulari de xat previ.",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hores",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
+ "DAY": "Dia",
+ "AVAILABILITY": "Disponibilitat",
+ "HOURS": "Hours",
+ "ENABLE": "Activa la disponibilitat per a aquest dia",
+ "UNAVAILABLE": "No disponible",
+ "VALIDATION_ERROR": "L'hora d'inici ha de ser abans de l'hora de tancament.",
"CHOOSE": "Tria"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "Tot el dia"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "Configura els detalls de l'IMAP",
+ "NOTE_TEXT": "Per habilitar SMTP, configura IMAP.",
+ "UPDATE": "Actualitza la configuració IMAP",
+ "TOGGLE_AVAILABILITY": "Activa la configuració IMAP per a aquesta safata d'entrada",
+ "TOGGLE_HELP": "Habilitar IMAP ajudarà l'usuari a rebre correu electrònic",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "La configuració IMAP s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la configuració IMAP"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "Adreça",
+ "PLACE_HOLDER": "Adreça (p. ex.: imap.gmail.com)"
},
"PORT": {
"LABEL": "Port",
@@ -606,25 +1042,26 @@
"LABEL": "Contrasenya",
"PLACE_HOLDER": "Contrasenya"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Habilita SSL",
+ "AUTH_MECHANISM": "Autenticació"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Torna a autoritzar el teu compte de MICROSOFT"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "Configura els detalls del SMTP",
+ "UPDATE": "Actualitza la configuració SMTP",
+ "TOGGLE_AVAILABILITY": "Activa la configuració SNMP per a aquesta safata d'entrada",
+ "TOGGLE_HELP": "Habilitar SMTP ajudarà l'usuari a enviar correu electrònic",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "La configuració SMTP s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la configuració SMTP"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "Adreça",
+ "PLACE_HOLDER": "Adreça (p. ex.: smtp.gmail.com)"
},
"PORT": {
"LABEL": "Port",
@@ -639,77 +1076,78 @@
"PLACE_HOLDER": "Contrasenya"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "Domini",
+ "PLACE_HOLDER": "Domini"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "Xifratge",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Obre el mode de verificació SSL",
+ "AUTH_MECHANISM": "Autenticació"
},
- "NOTE": "Note: ",
+ "NOTE": "Nota: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "Avatar del lloc web",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "SUCCESS_MESSAGE": "Avatar esborrat correctament",
"ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
}
}
},
"WEBSITE_NAME": {
"LABEL": "Nom del lloc web",
- "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "PLACE_HOLDER": "Introdueix el nom del vostre lloc web (per exemple: Acme Inc)",
+ "ERROR": "Introdueix un nom de lloc web vàlid"
},
"WELCOME_HEADING": {
"LABEL": "Encapçalament de benvinguda",
- "PLACE_HOLDER": "Hi there!"
+ "PLACE_HOLDER": "Hola!"
},
"WELCOME_TAGLINE": {
"LABEL": "Lema de benvinguda",
"PLACE_HOLDER": "Facilitem la connexió amb nosaltres. Pregunteu-nos qualsevol cosa o compartiu els vostres comentaris."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
+ "LABEL": "Temps de resposta",
"IN_A_FEW_MINUTES": "En pocs minuts",
"IN_A_FEW_HOURS": "En poques hores",
"IN_A_DAY": "En un dia"
},
"WIDGET_COLOR_LABEL": "Color del Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipus:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Xateja amb nosaltres",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Xateja amb nosaltres"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "Actualitza la configuració del widget",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "La configuració del widget s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No es pot actualitzar la configuració del widget"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
+ "PREVIEW": "Vista prèvia",
"SCRIPT": "Script"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "Esquerra",
+ "RIGHT": "Dreta"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "Estàndard",
+ "EXPANDED_BUBBLE": "Bombolla expandida"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "Per defecte",
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalment responem en pocs minuts",
@@ -722,18 +1160,43 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
+ "ONLINE": "Estem en línia",
"OFFLINE": "Estem fora en aquest moment"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "Hola",
+ "AGENT_MESSAGE": "Hola"
},
"BRANDING_TEXT": "Desenvolupat per Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Altres proveïdors",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Lloc web",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Correu electrònic",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Canal de l'API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/index.js b/app/javascript/dashboard/i18n/locale/ca/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/index.js
+++ b/app/javascript/dashboard/i18n/locale/ca/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
index bf5ffcfc4..06c1c1912 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrationApps.json
@@ -1,36 +1,40 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
- "HEADER": "Applications",
+ "FETCHING": "S'estan obtenint integracions",
+ "NO_HOOK_CONFIGURED": "No hi ha integracions {integrationId} configurades en aquest compte.",
+ "HEADER": "Aplicacions",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Habilita",
"DISABLED": "Inhabilita"
},
"CONFIGURE": "Configura",
- "ADD_BUTTON": "Add a new hook",
+ "ADD_BUTTON": "Afegeix un nou hook",
"DELETE": {
"TITLE": {
- "INBOX": "Confirm deletion",
- "ACCOUNT": "Disconnect"
+ "INBOX": "Confirma la supressió",
+ "ACCOUNT": "Desconnecta"
},
"MESSAGE": {
"INBOX": "N'estàs segur?",
- "ACCOUNT": "Are you sure to disconnect?"
+ "ACCOUNT": "Segur que us desconnecteu?"
},
"CONFIRM_BUTTON_TEXT": {
"INBOX": "Si, esborra",
- "ACCOUNT": "Yes, Disconnect"
+ "ACCOUNT": "Sí, desconnecta"
},
"CANCEL_BUTTON_TEXT": "Cancel·la",
"API": {
- "SUCCESS_MESSAGE": "Hook deleted successfully",
+ "SUCCESS_MESSAGE": "S'ha esborrat el Hook correctament",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
"LIST": {
- "FETCHING": "Fetching integration hooks",
- "INBOX": "Inbox",
+ "FETCHING": "Recollint els hooks d'integració",
+ "INBOX": "Safata d'entrada",
+ "ACTIONS": "Accions",
"DELETE": {
"BUTTON_TEXT": "Esborrar"
}
@@ -38,14 +42,15 @@
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox"
+ "LABEL": "Selecciona Safata d'entrada",
+ "PLACEHOLDER": "Selecciona Safata d'entrada"
},
"SUBMIT": "Crear",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel·la"
},
"API": {
- "SUCCESS_MESSAGE": "Integration hook added successfully",
+ "SUCCESS_MESSAGE": "El hook d'integració s'ha afegit correctament",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
@@ -53,10 +58,10 @@
"BUTTON_TEXT": "Connectar"
},
"DISCONNECT": {
- "BUTTON_TEXT": "Disconnect"
+ "BUTTON_TEXT": "Desconnecta"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/integrations.json b/app/javascript/dashboard/i18n/locale/ca/integrations.json
index 1be0b5cbc..360c3c6bf 100644
--- a/app/javascript/dashboard/i18n/locale/ca/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ca/integrations.json
@@ -1,30 +1,76 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Cancel·la",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integracions",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "Esdeveniments subscrits",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel·la",
"DESC": "Els esdeveniments de Webhook us proporcionen informació en temps real sobre el que passa al vostre compte de Chatwoot. Introduïu una URL vàlid per configurar un callback.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "Esdeveniments",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "Conversa Creada",
+ "CONVERSATION_STATUS_CHANGED": "Estat de la conversa canviat",
+ "CONVERSATION_UPDATED": "Conversa Actualitzada",
+ "MESSAGE_CREATED": "Missatge creat",
+ "MESSAGE_UPDATED": "Missatge actualitzat",
+ "WEBWIDGET_TRIGGERED": "Widget de xat en directe obert per l'usuari",
+ "CONTACT_CREATED": "Contacte creat",
+ "CONTACT_UPDATED": "Contacte actualitzat",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "URL del webhook",
- "PLACEHOLDER": "Exemple: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Introduïu una URL vàlid"
},
- "EDIT_SUBMIT": "Update webhook",
+ "EDIT_SUBMIT": "Webhook actualitzat",
"ADD_SUBMIT": "Crear webhook"
},
"TITLE": "Webhook",
@@ -37,16 +83,16 @@
"LIST": {
"404": "No hi ha cap webhooks configurat per a aquest compte.",
"TITLE": "Gestiona els webhooks",
- "TABLE_HEADER": [
- "Punt final del webhook",
- "Accions"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Punt final del webhook",
+ "ACTIONS": "Accions"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Edita",
- "TITLE": "Edit webhook",
+ "TITLE": "Edita el webhook",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
+ "SUCCESS_MESSAGE": "La configuració del webhook s'ha actualitzat correctament",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
@@ -54,7 +100,7 @@
"CANCEL": "Cancel·la",
"TITLE": "Afegir un nou webhook",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
+ "SUCCESS_MESSAGE": "La configuració del webhook s'ha afegit correctament",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
}
},
@@ -66,91 +112,114 @@
},
"CONFIRM": {
"TITLE": "Confirma l'esborrat",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "N'estàs segur que suprimiu el webhook? ({webhookURL})",
"YES": "Si, esborra ",
- "NO": "No, manten-la"
+ "NO": "No, mantén-la"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Esborrar",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "Suprimeix la integració",
+ "MESSAGE": "N'estàs segur que vols suprimir la integració? Si ho fas, es perdrà l'accés a les converses del vostre espai de treball de Slack."
},
"HELP_TEXT": {
- "TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "TITLE": "Com utilitzar la integració de Slack?",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "seleccionat"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "Selecciona el canal",
"UPDATE": "Actualitza",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "Connecta el canal",
+ "DESCRIPTION": "El teu espai de treball de Slack ara està enllaçat amb Chatwoot. Tanmateix, actualment la integració està inactiva. Per activar la integració i connectar un canal a Chatwoot, feu clic al botó següent.\n\n**Nota:** si estas intentant connectar un canal privat, afegeix l'aplicació Chatwoot al canal de Slack abans de continuar amb aquest pas.",
+ "ATTENTION_REQUIRED": "Es requereix atenció",
+ "EXPIRED": "La teva integració de Slack ha caducat. Per continuar rebent missatges a Slack, suprimeix la integració i torna a connectar el vostre espai de treball."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "S'ha produït un error en actualitzar la integració, torna-ho a provar",
+ "UPDATE_SUCCESS": "El canal s'ha connectat correctament",
+ "FAILED_TO_FETCH_CHANNELS": "S'ha produït un error en obtenir els canals de Slack, torna-ho a provar"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "Fes clic aquí per unir-te",
+ "LEAVE_THE_ROOM": "Deixa la sala",
+ "START_VIDEO_CALL_HELP_TEXT": "Inicia una nova videotrucada amb el client",
+ "JOIN_ERROR": "S'ha produït un error en unir-se a la trucada, torna-ho a provar",
+ "CREATE_ERROR": "S'ha produït un error en crear un enllaç de reunió, torna-ho a provar"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "Assistència IA",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "Suggeriment de resposta",
+ "SUMMARIZE": "Resumir",
+ "REPHRASE": "Millorar l'escriptura",
+ "FIX_SPELLING_GRAMMAR": "Corregir l'ortografia i la gramàtica",
+ "SHORTEN": "Abreuja",
+ "EXPAND": "Expandeix",
+ "MAKE_FRIENDLY": "Canvia el to del missatge a amigable",
+ "MAKE_FORMAL": "Utilitza un to formal",
+ "SIMPLIFY": "Simplifica",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amable"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "Esborrany de contingut",
+ "GENERATED_TITLE": "Contingut generat",
+ "AI_WRITING": "La IA està escrivint",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "Utilitza aquest suggeriment",
"CANCEL": "Cancel·la"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "Integració amb OpenAI",
+ "DESC": "Aporta funcions d'IA avançades al teu tauler amb els models GPT d'OpenAI. Per començar, introdueix la clau API del teu compte d'OpenAI.",
+ "KEY_PLACEHOLDER": "Introdueix la vostra API key d'OpenAI",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "Necessita ajuda?",
+ "DISMISS": "Descartar",
+ "FINISH": "Finalitza la configuració"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "Pots configurar la integració d'OpenAI més tard quan vulguis.",
+ "SUCCESS_MESSAGE": "S'ha configurat correctament la integració d'OpenAI"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "Millora amb IA",
+ "SUMMARY_TITLE": "Resum amb IA",
+ "REPLY_TITLE": "Respon el suggeriment amb IA",
+ "SUBTITLE": "Es generarà una resposta millorada mitjançant IA, basada en el teu esborrany actual.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "To",
"OPTIONS": {
"PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "FRIENDLY": "Amable"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "Genera",
+ "GENERATING": "Generant...",
"CANCEL": "Cancel·la"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
@@ -165,49 +234,870 @@
"BUTTON_TEXT": "Connectar"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "Aplicacions del tauler de control",
+ "HEADER_BTN_TXT": "Afegeix una aplicació de tauler nova",
+ "SIDEBAR_TXT": "Aplicacions del tauler de control
Les aplicacions del tauler de control permeten a les organitzacions incrustar una aplicació dins del tauler de control de Chatwoot per proporcionar el context als agents d'atenció al client. Aquesta funció et permet crear una aplicació de manera independent i inserir-la dins del tauler per proporcionar informació de l'usuari, les seves comandes o el seu historial de pagaments anteriors.
Quan incrusteu la teva aplicació mitjançant el tauler de control de Chatwoot, la teva aplicació obté el context de la conversa i el contacte com a esdeveniment de finestra. Implementa un oient per a l'esdeveniment del missatge a la teva pàgina per rebre el context.
Per afegir una aplicació de tauler nova, feu clic al botó \"Afegeix una aplicació de tauler nova\".
",
+ "DESCRIPTION": "Les aplicacions del tauler permeten a les organitzacions incrustar una aplicació dins del tauler per proporcionar el context als agents d'atenció al client. Aquesta funció et permet crear una aplicació de manera independent i incorporar-la per proporcionar informació de l'usuari, les seves comandes o el seu historial de pagaments anterior.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Nom",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "Encara no hi ha cap aplicació de tauler configurada en aquest compte",
+ "LOADING": "S'estan obtenint les aplicacions del tauler de control...",
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Accions"
+ },
+ "EDIT_TOOLTIP": "Edita l'aplicació",
+ "DELETE_TOOLTIP": "Suprimeix l'aplicació"
},
"FORM": {
"TITLE_LABEL": "Nom",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
+ "TITLE_PLACEHOLDER": "Introdueix un nom per a l'aplicació del tauler",
+ "TITLE_ERROR": "Un nom per a l'aplicació del tauler és obligatori",
"URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "URL_PLACEHOLDER": "Introdueix l'URL del punt final on està allotjada la teva aplicació",
+ "URL_ERROR": "Una URL vàlida és obligatoria"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "Afegeix una aplicació de tauler nova",
"FORM_SUBMIT": "Envia",
"FORM_CANCEL": "Cancel·la",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "L'aplicació del tauler de control s'ha configurat correctament",
+ "API_ERROR": "No hem pogut crear una aplicació. Intenta-ho més tard"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
+ "HEADER": "Edita l'aplicació del tauler",
"FORM_SUBMIT": "Actualitza",
"FORM_CANCEL": "Cancel·la",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "L'aplicació del tauler de control s'ha actualitzat correctament",
+ "API_ERROR": "No hem pogut actualitzar l'aplicació. Intenta-ho més tard"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "Sí, esborra-ho",
+ "CONFIRM_NO": "No, mantén-la",
+ "TITLE": "Confirma la supressió",
+ "MESSAGE": "N'estàs segur que vols suprimir l'aplicació - {appName}?",
+ "API_SUCCESS": "L'aplicació del tauler de control s'ha esborrat correctament",
+ "API_ERROR": "No hem pogut esborrar l'aplicació. Intenta-ho més tard"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Crear/enllaçar una issue en Linear",
+ "LOADING": "S'estan buscant issues en Linear...",
+ "LOADING_ERROR": "S'ha produït un error en obtenir les issues en Linear, torna-ho a provar",
+ "CREATE": "Crear",
+ "LINK": {
+ "SEARCH": "Cerca issues",
+ "SELECT": "Selecciona una issue",
+ "TITLE": "Enllaç",
+ "EMPTY_LIST": "No s'han trobat issues de Linear",
+ "LOADING": "Carregant",
+ "ERROR": "S'ha produït un error en obtenir les issues en Linear, torna-ho a provar",
+ "LINK_SUCCESS": "S'ha enllaçat la issue correctament",
+ "LINK_ERROR": "S'ha produït un error en enllaçar la issue, torna-ho a provar",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Crear/enllaçar una issue en Linear",
+ "DESCRIPTION": "Crea issues en Linear a partir de converses o enllaça els existents per fer un seguiment perfecte.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Títol",
+ "PLACEHOLDER": "Introdueix un títol",
+ "REQUIRED_ERROR": "El títol és necessari"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Introdueix la descripció"
+ },
+ "TEAM": {
+ "LABEL": "Equip",
+ "PLACEHOLDER": "Selecciona equip",
+ "SEARCH": "Cerca equip",
+ "REQUIRED_ERROR": "Un equip és necessari"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Cessionari",
+ "PLACEHOLDER": "Selecciona assignat",
+ "SEARCH": "Cerca assignat"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritat",
+ "PLACEHOLDER": "Selecciona la prioritat",
+ "SEARCH": "Cerca prioritat"
+ },
+ "LABEL": {
+ "LABEL": "Etiqueta",
+ "PLACEHOLDER": "Selecciona l'etiqueta",
+ "SEARCH": "Cerca etiqueta"
+ },
+ "STATUS": {
+ "LABEL": "Estat",
+ "PLACEHOLDER": "Selecciona l'estat",
+ "SEARCH": "Cerca l'estat"
+ },
+ "PROJECT": {
+ "LABEL": "Projecte",
+ "PLACEHOLDER": "Selecciona el projecte",
+ "SEARCH": "Cerca el projecte"
+ }
+ },
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la",
+ "CREATE_SUCCESS": "Issue creada correctament",
+ "CREATE_ERROR": "S'ha produït un error en crear la issue, torna-ho a provar",
+ "LOADING_TEAM_ERROR": "S'ha produït un error en obtenir els equips, torna-ho a provar",
+ "LOADING_TEAM_ENTITIES_ERROR": "S'ha produït un error en recuperar les entitats de l'equip, torna-ho a provar"
+ },
+ "ISSUE": {
+ "STATUS": "Estat",
+ "PRIORITY": "Prioritat",
+ "ASSIGNEE": "Cessionari",
+ "LABELS": "Etiquetes",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Desenllaça",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Sí, esborra",
+ "CANCEL": "Cancel·la"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Saber més",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistents",
+ "SWITCH_ASSISTANT": "Canvia entre assistents",
+ "NEW_ASSISTANT": "Crea un assistent",
+ "EMPTY_LIST": "No s'ha trobat cap assistent, si us plau crea'n un per començar"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Comença amb Copilot",
+ "KICK_OFF_MESSAGE": "Necessites un resum ràpid, vols revisar converses anteriors o redactar una resposta millor? Copilot és aquí per accelerar-ho.",
+ "SEND_MESSAGE": "Envia missatge...",
+ "EMPTY_MESSAGE": "Hi ha hagut un error generant la resposta. Torna-ho a provar.",
+ "LOADER": "Captain està pensant",
+ "YOU": "Tu",
+ "USE": "Utilitza això",
+ "RESET": "Reinicia",
+ "SHOW_STEPS": "Mostra passos",
+ "SELECT_ASSISTANT": "Selecciona Assistente",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Resumeix aquesta conversa",
+ "CONTENT": "Resumeix els punts claus que s'han discutit entre el client i l'agent de suport, incloent les preocupacions, preguntes del client i les solucions o respostes aportades per l'agent."
+ },
+ "SUGGEST": {
+ "LABEL": "Suggerir una resposta",
+ "CONTENT": "Analitza la consulta del client i redacta una resposta que atiqui eficaçment les seves preocupacions o preguntes. Assegura que la resposta sigui clara, concisa i ofereixi informació útil."
+ },
+ "RATE": {
+ "LABEL": "Valora aquesta conversa",
+ "CONTENT": "Revisa la conversa per veure com de bé s'adapta a les necessitats del client. Comparteix una valoració de 5 punts basada en to, claredat i efectivitat."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Converses d'alta prioritat",
+ "CONTENT": "Dóna'm un resum de totes les converses obertes d'alta prioritat. Inclou la ID de la conversa, nom del client (si està disponible), contingut de l'últim missatge i agent assignat. Agrupa per estat si és rellevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Llista de contactes",
+ "CONTENT": "Mostra'm la llista dels 10 contactes principals. Inclou nom, correu electrònic o telèfon (si està disponible), última vegada que es va veure, etiquetes (si n'hi ha)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Tu",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Escriu el missatge...",
+ "HEADER": "Zona de proves",
+ "DESCRIPTION": "Utilitza aquest espai de proves per enviar missatges al teu assistent i comprovar si respon de manera precisa, ràpida i amb el to que esperes.",
+ "CREDIT_NOTE": "Els missatges enviats aquí comptaran per als teus crèdits de Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Actualitza per usar Captain AI",
+ "AVAILABLE_ON": "Captain no està disponible en el pla gratuït.",
+ "UPGRADE_PROMPT": "Actualitza el teu pla per accedir als nostres assistents, copilot i més.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI només està disponible en els plans Enterprise.",
+ "UPGRADE_PROMPT": "Actualitza el teu pla per accedir als nostres assistents, copilot i més.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ },
+ "BANNER": {
+ "RESPONSES": "Has utilitzat més del 80% del teu límit de respostes. Per continuar utilitzant Captain AI, si us plau actualitza.",
+ "DOCUMENTS": "S'ha arribat al límit de documents. Actualitza per continuar utilitzant Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Cancel·la",
+ "CREATE": "Crear",
+ "EDIT": "Actualitza"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Descripció",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Configuracions",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Esborrar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Esborrar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Esborrar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Títol",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Crear",
+ "CANCEL": "Cancel·la"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancel·la",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Esborrar",
+ "BULK_SYNC_BUTTON": "Actualitza",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "s'està actualitzant...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Pàgina no trobada",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Obrir facturació",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ningú",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Contrasenya",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipus"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Necessari"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Esborrar",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Totes"
+ },
+ "STATUS": {
+ "TITLE": "Estat",
+ "PENDING": "Pendent",
+ "APPROVED": "Approved",
+ "ALL": "Totes"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edita",
+ "DELETE_RESPONSE": "Esborrar"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Desconnecta"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sí, esborra",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Safata d'entrada",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
index 12c66de11..cf644d7e1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ca/labelsMgmt.json
@@ -3,25 +3,30 @@
"HEADER": "Etiquetes",
"HEADER_BTN_TXT": "Afegeix etiqueta",
"LOADING": "Obtenció d’etiquetes",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Cerca etiquetes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "No hi ha cap resposta que coincideixi amb aquesta consulta",
- "SIDEBAR_TXT": "Etiquetes
Les etiquetes t'ajuden a classificar les converses i a prioritzar-les. Pots assignar una etiqueta a una conversa des del tauler lateral.
Les etiquetes estan lligades al compte i es poden utilitzar per crear fluxos de treball personalitzats a la vostra organització. Pots assignar color personalitzat a una etiqueta, cosa que facilita la identificació de l’etiqueta. Pots mostrar l'etiqueta a la barra lateral per filtrar les converses fàcilment.
",
"LIST": {
"404": "No hi ha etiquetes disponibles en aquest compte.",
"TITLE": "Gestiona les etiquetes",
"DESC": "Les etiquetes et permeten agrupar les converses.",
- "TABLE_HEADER": [
- "Nom",
- "Descripció",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Descripció",
+ "COLOR": "Color",
+ "ACTION": "Accions"
+ }
},
"FORM": {
"NAME": {
"LABEL": "Nom de l'etiqueta",
"PLACEHOLDER": "Nom de l'etiqueta",
- "REQUIRED_ERROR": "Label name is required",
- "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
- "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ "REQUIRED_ERROR": "El nom de l’etiqueta és obligatori",
+ "MINIMUM_LENGTH_ERROR": "Es requereix una longitud mínima de 2",
+ "VALID_ERROR": "Només es permeten alfabets, números, guionet i guió baix"
},
"DESCRIPTION": {
"LABEL": "Descripció",
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "Afegeix una etiqueta a la conversa",
+ "MULTIPLE_SUGGESTION": "Seleccioneu aquesta etiqueta",
+ "DESELECT": "Desseleccioneu l'etiqueta",
+ "DISMISS": "Ignora el suggeriment"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "Descartar",
+ "ADD_SELECTED_LABELS": "Afegeix les etiquetes seleccionades",
+ "ADD_SELECTED_LABEL": "Afegeix les etiquetes seleccionades",
+ "ADD_ALL_LABELS": "Afegiu totes les etiquetes",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Afegeix etiqueta",
diff --git a/app/javascript/dashboard/i18n/locale/ca/login.json b/app/javascript/dashboard/i18n/locale/ca/login.json
index 787445e5b..5de4ef8fc 100644
--- a/app/javascript/dashboard/i18n/locale/ca/login.json
+++ b/app/javascript/dashboard/i18n/locale/ca/login.json
@@ -3,7 +3,7 @@
"TITLE": "Entra a Chatwoot",
"EMAIL": {
"LABEL": "Correu electrònic",
- "PLACEHOLDER": "Correu electrònic p.e.: someone@exemple.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Introduïu una adreça de correu electrònic vàlida"
},
"PASSWORD": {
@@ -16,12 +16,26 @@
"UNAUTH": "Nom d'usuari / contrasenya incorrecte. Torna-ho a provar-ho"
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "Inicieu sessió amb Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Si us plau, utilitzeu l'adreça de correu electrònic de la vostra empresa per iniciar sessió",
+ "NO_ACCOUNT_FOUND": "No hem trobat cap compte per a la vostra adreça de correu electrònic."
},
"FORGOT_PASSWORD": "Has oblidat la contrasenya?",
"CREATE_NEW_ACCOUNT": "Crear un nou compte",
- "SUBMIT": "Inicia la sessió"
+ "SUBMIT": "Inicia la sessió",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/macros.json b/app/javascript/dashboard/i18n/locale/ca/macros.json
index a00bebd69..c33688917 100644
--- a/app/javascript/dashboard/i18n/locale/ca/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ca/macros.json
@@ -1,78 +1,121 @@
{
"MACROS": {
"HEADER": "Macros",
- "HEADER_BTN_TXT": "Add a new macro",
- "HEADER_BTN_TXT_SAVE": "Save macro",
- "LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
- "ERROR": "Something went wrong. Please try again",
- "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "Afegeix una nova macro",
+ "HEADER_BTN_TXT_SAVE": "Desa la macro",
+ "LOADING": "Obtenció de macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "Alguna cosa ha anat malament, torna-ho a provar",
+ "ORDER_INFO": "Les macros s'executaran en l'ordre en què afegeixis les teves accions. Pots reorganitzar-los arrossegant-los per l'identificador al costat de cada node.",
"ADD": {
"FORM": {
"NAME": {
- "LABEL": "Macro name",
- "PLACEHOLDER": "Enter a name for your macro",
- "ERROR": "Name is required for creating a macro"
+ "LABEL": "Nom de la macro",
+ "PLACEHOLDER": "Introdueix un nom per la teva macro",
+ "ERROR": "El nom és necessari per crear una macro"
},
"ACTIONS": {
"LABEL": "Accions"
}
},
"API": {
- "SUCCESS_MESSAGE": "Macro added successfully",
- "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ "SUCCESS_MESSAGE": "La macro s'ha afegit correctament",
+ "ERROR_MESSAGE": "No es pot crear la macro. Intenta-ho més tard"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
- "404": "No macros found"
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "CREATED BY": "Creat per",
+ "LAST_UPDATED_BY": "Última actualització per",
+ "VISIBILITY": "Visibilitat",
+ "ACTIONS": "Accions"
+ },
+ "404": "No s'han trobat macros"
},
"DELETE": {
- "TOOLTIP": "Delete macro",
+ "TOOLTIP": "Suprimeix la macro",
"CONFIRM": {
"MESSAGE": "N'estas segur? ",
"YES": "Si, esborra",
"NO": "No"
},
"API": {
- "SUCCESS_MESSAGE": "Macro deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ "SUCCESS_MESSAGE": "La macro s'ha suprimit correctament",
+ "ERROR_MESSAGE": "S'ha produït un error suprimint la macro. Torna-ho a provar"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
- "TOOLTIP": "Edit macro",
+ "TOOLTIP": "Edita la macro",
"API": {
- "SUCCESS_MESSAGE": "Macro updated successfully",
- "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ "SUCCESS_MESSAGE": "La macro s'ha actualitzat correctament",
+ "ERROR_MESSAGE": "No s'ha pogut actualitzar la macro. Torna-ho a provar més tard"
}
},
"EDITOR": {
- "START_FLOW": "Start Flow",
- "END_FLOW": "End Flow",
- "LOADING": "Fetching macro",
- "ADD_BTN_TOOLTIP": "Add new action",
- "DELETE_BTN_TOOLTIP": "Delete Action",
+ "START_FLOW": "Inicia el flux",
+ "END_FLOW": "Finalitza el flux",
+ "LOADING": "S'està obtenint la macro",
+ "ADD_BTN_TOOLTIP": "Afegeix nova acció",
+ "DELETE_BTN_TOOLTIP": "Suprimeix l'acció",
"VISIBILITY": {
- "LABEL": "Macro Visibility",
+ "LABEL": "Visibilitat de la macro",
"GLOBAL": {
- "LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "LABEL": "Públic",
+ "DESCRIPTION": "Aquesta macro està disponible públicament per a tots els agents d'aquest compte.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
- "LABEL": "Private",
- "DESCRIPTION": "This macro will be private to you and not be available to others."
+ "LABEL": "Privat",
+ "DESCRIPTION": "Aquesta macro serà privada per a tu i no estarà disponible per als altres."
}
}
},
"EXECUTE": {
- "BUTTON_TOOLTIP": "Execute",
- "PREVIEW": "Preview Macro",
- "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ "BUTTON_TOOLTIP": "Executa",
+ "PREVIEW": "Vista prèvia de la macro",
+ "EXECUTED_SUCCESSFULLY": "La macro s'ha executat correctament"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "El valor és necessari",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ningú",
+ "LOW": "Baixa",
+ "MEDIUM": "Mitjana",
+ "HIGH": "Alta",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/mfa.json b/app/javascript/dashboard/i18n/locale/ca/mfa.json
new file mode 100644
index 000000000..38b9bdad4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Habilita",
+ "DISABLED": "Inhabilita",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copia",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel·la",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Descarrega",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Contrasenya",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel·la",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel·la",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/onboarding.json b/app/javascript/dashboard/i18n/locale/ca/onboarding.json
new file mode 100644
index 000000000..852422299
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Correu electrònic",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Lloc web",
+ "LANGUAGE": "Idioma",
+ "TIMEZONE": "Fus horari",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Selecciona la zona horària",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "S'està desant...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/report.json b/app/javascript/dashboard/i18n/locale/ca/report.json
index 307a38d72..0c33997d1 100644
--- a/app/javascript/dashboard/i18n/locale/ca/report.json
+++ b/app/javascript/dashboard/i18n/locale/ca/report.json
@@ -3,9 +3,9 @@
"HEADER": "Converses",
"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_AGENT_REPORTS": "Descarregar Informes d'Agent",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "No s'han pogut obtenir les dades. Intenta-ho més tard.",
+ "SUMMARY_FETCHING_FAILED": "No s'ha pogut obtenir el resum; torna-ho a provar més tard.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -20,100 +20,86 @@
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "Primer Temps de Resposta",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de primera resposta (FRT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de resolució",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de resolució (RT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_COUNT": {
"NAME": "Total de resolucions",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Total de resolucions",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Recompte de lliuraments",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "Temps d'espera del client",
+ "TOOLTIP_TEXT": "El temps d'espera és {metricValue} (basat en {conversationCount} respostes)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Últims 7 dies",
+ "LAST_14_DAYS": "Últims 14 dies",
"LAST_30_DAYS": "Últims 30 dies",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
+ "LAST_3_MONTHS": "Últims tres mesos",
+ "LAST_6_MONTHS": "Últims sis mesos",
+ "LAST_YEAR": "Darrer any",
+ "CUSTOM_DATE_RANGE": "Interval de dates personalitzat"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Últims 7 dies"
- },
- {
- "id": 1,
- "name": "Últims 30 dies"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Aplica",
+ "PLACEHOLDER": "Seleccioneu l'interval de dates"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "Agrupar per",
+ "DURATION_FILTER_LABEL": "Durada",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
- "YEAR": "Month"
+ "DAY": "Dia",
+ "WEEK": "Setmana",
+ "MONTH": "Mes",
+ "YEAR": "Any"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Dia"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Dia"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "Setmana"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Dia"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "Setmana"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "Mes"
}
],
"GROUP_BY_YEAR_OPTIONS": [
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Horari comercial",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Esborra els filtres",
+ "EMPTY_LIST": "No s'ha trobat agents"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
+ "HEADER": "Visió general dels agents",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Descarregar Informes d'Agent",
"FILTER_DROPDOWN_LABEL": "Seleccionar Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -152,16 +152,16 @@
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "Primer Temps de Resposta",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de primera resposta (FRT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de resolució",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de resolució (RT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_COUNT": {
"NAME": "Total de resolucions",
@@ -179,32 +179,38 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Últims tres mesos"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Últims sis mesos"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Darrer any"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Interval de dates personalitzat"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Aplica",
+ "PLACEHOLDER": "Seleccioneu l'interval de dates"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
+ "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": "Download label reports",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "DOWNLOAD_LABEL_REPORTS": "Descarregar Informes d'etiquetes",
+ "FILTER_DROPDOWN_LABEL": "Selecciona l'etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cerca etiquetes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -219,16 +225,16 @@
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Primer Temps de Resposta",
+ "DESC": "(Mitjana)",
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de primera resposta (FRT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de resolució",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de resolució (RT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_COUNT": {
"NAME": "Total de resolucions",
@@ -246,32 +252,40 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Últims tres mesos"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Últims sis mesos"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Darrer any"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Interval de dates personalitzat"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Aplica",
+ "PLACEHOLDER": "Seleccioneu l'interval de dates"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
+ "HEADER": "Visió general de la safata d'entrada",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "DOWNLOAD_INBOX_REPORTS": "Baixa els informes de la safata d'entrada",
+ "FILTER_DROPDOWN_LABEL": "Selecciona Safata d'entrada",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -286,16 +300,16 @@
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "Primer Temps de Resposta",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de primera resposta (FRT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de resolució",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de resolució (RT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_COUNT": {
"NAME": "Total de resolucions",
@@ -313,32 +327,41 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Últims tres mesos"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Últims sis mesos"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Darrer any"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Interval de dates personalitzat"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Aplica",
+ "PLACEHOLDER": "Seleccioneu l'interval de dates"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
+ "HEADER": "Visió general de l'equip",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "DOWNLOAD_TEAM_REPORTS": "Descarregar Informes d'equip",
+ "FILTER_DROPDOWN_LABEL": "Selecciona equip",
+ "FILTERS": {
+ "ADD_FILTER": "Afegeix un filtre",
+ "CLEAR_ALL": "Esborrar tot",
+ "NO_FILTER": "No hi ha filtres disponibles",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cerca equips"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Converses",
@@ -353,16 +376,16 @@
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "Primer Temps de Resposta",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de primera resposta (FRT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de resolució",
"DESC": "( Promig )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "Nombre total de converses utilitzades per al càlcul:",
+ "TOOLTIP_TEXT": "El temps de resolució (RT) és {metricValue} (basat en {conversationCount} converses)"
},
"RESOLUTION_COUNT": {
"NAME": "Total de resolucions",
@@ -380,101 +403,248 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Últims tres mesos"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Últims sis mesos"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Darrer any"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Interval de dates personalitzat"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Aplica",
+ "PLACEHOLDER": "Seleccioneu l'interval de dates"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "Informes CSAT",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
+ "DOWNLOAD": "Descarregar informes CSAT",
+ "DOWNLOAD_FAILED": "No s'han pogut baixar els informes CSAT",
"FILTERS": {
+ "ADD_FILTER": "Afegeix un filtre",
+ "CLEAR_ALL": "Esborrar tot",
+ "NO_FILTER": "No hi ha filtres disponibles",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Cerca equips",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Safata d'entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equip"
+ },
+ "RATINGS": {
+ "LABEL": "Valoració"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "Contacte",
+ "AGENT_NAME": "Agent",
+ "RATING": "Valoració",
+ "FEEDBACK_TEXT": "Comentaris",
+ "CONVERSATION": "Conversa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "Respostes totals",
+ "TOOLTIP": "Nombre total de respostes recollides"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "Puntuació de satisfacció",
+ "TOOLTIP": "Nombre total de respostes positives / Nombre total de respostes * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "Taxa de resposta",
+ "TOOLTIP": "Nombre total de respostes / Nombre total de missatges d'enquesta CSAT enviats * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Desar",
+ "CANCEL": "Cancel·la",
+ "SAVING": "S'està desant...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Informes de bot",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Nre. de converses",
+ "TOOLTIP": "Nombre total de converses gestionades pel bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Respostes totals",
+ "TOOLTIP": "Nombre total de respostes enviades pel bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Taxa de resolució",
+ "TOOLTIP": "Nombre total de converses resoltes pel bot / Nombre total de converses gestionades pel bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Taxa de trasllat",
+ "TOOLTIP": "Nombre total de converses lliurades als agents / Nombre total de converses gestionades pel bot * 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
- "LIVE": "Live",
+ "HEADER": "Resum",
+ "LIVE": "En directe",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
+ "HEADER": "Obrir converses",
+ "LOADING_MESSAGE": "S'estan carregant les mètriques de les converses...",
"OPEN": "Obrir",
- "UNATTENDED": "Unattended",
+ "UNATTENDED": "Sense assistència",
"UNASSIGNED": "Sense assignar",
"PENDING": "Pendent"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "Trànsit de conversa",
+ "NO_CONVERSATIONS": "Sense converses",
+ "CONVERSATION": "{count} conversa",
+ "CONVERSATIONS": "{count} converses",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Sense converses",
+ "CONVERSATION": "{count} conversa",
+ "CONVERSATIONS": "{count} converses",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "Converses per agents",
+ "LOADING_MESSAGE": "S'estan carregant les mètriques dels agents...",
+ "NO_AGENTS": "No hi ha converses per part dels agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
- "UNATTENDED": "Unattended",
+ "OPEN": "Obrir",
+ "UNATTENDED": "Sense assistència",
+ "STATUS": "Estat"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Equip",
+ "OPEN": "Obrir",
+ "UNATTENDED": "Sense assistència",
"STATUS": "Estat"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
+ "HEADER": "Estat de l'agent",
"ONLINE": "En línia",
"BUSY": "Ocupat",
"OFFLINE": "Fora de línia"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "Diumenge",
+ "MONDAY": "Dilluns",
+ "TUESDAY": "Dimarts",
+ "WEDNESDAY": "Dimecres",
+ "THURSDAY": "Dijous",
+ "FRIDAY": "Divendres",
+ "SATURDAY": "Dissabte"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "Informes SLA",
+ "NO_RECORDS": "Les converses aplicades per l'SLA no estan disponibles.",
+ "LOADING": "S'estan carregant dades del SLA...",
+ "DOWNLOAD_SLA_REPORTS": "Descarregar informes SLA",
+ "DOWNLOAD_FAILED": "No s'han pogut baixar els informes SLA",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Afegeix un filtre",
+ "CLEAR_ALL": "Esborrar tot",
+ "CLEAR_FILTER": "Esborra els filtres",
+ "EMPTY_LIST": "No s'ha trobat agents",
+ "NO_FILTER": "No hi ha filtres disponibles",
+ "SEARCH": "Cerca filtre",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "Nom del SLA",
+ "AGENTS": "Nom de l'Agent",
+ "INBOXES": "Nom de la safata d'entrada",
+ "LABELS": "Nom de l'etiqueta",
+ "TEAMS": "Nom de l'equip"
+ },
+ "SLA": "Política SLA",
+ "INBOXES": "Safata d'entrada",
+ "AGENTS": "Agent",
+ "LABELS": "Etiqueta",
+ "TEAMS": "Equip"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Proporció d'encerts",
+ "TOOLTIP": "El percentatge de SLA creats s'ha completat correctament"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Nombre de faltes",
+ "TOOLTIP": "SLA total faltes en un període determinat"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Número de Converses",
+ "TOOLTIP": "Nombre total de converses amb SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Política",
+ "CONVERSATION": "Converses",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "Veure Detalls"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Total de resolucions",
+ "CONVERSATIONS": "Nre. de converses"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/resetPassword.json b/app/javascript/dashboard/i18n/locale/ca/resetPassword.json
index 5254f9d37..5df0b7319 100644
--- a/app/javascript/dashboard/i18n/locale/ca/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ca/resetPassword.json
@@ -1,8 +1,8 @@
{
"RESET_PASSWORD": {
"TITLE": "Restablir la contrasenya",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "Introduïu l'adreça de correu electrònic que feu servir per iniciar sessió a Chatwoot per obtenir les instruccions de restabliment de la contrasenya.",
+ "GO_BACK_TO_LOGIN": "Si voleu tornar a la pàgina d'inici de sessió,",
"EMAIL": {
"LABEL": "Correu electrònic",
"PLACEHOLDER": "Introduïu el vostre correu electrònic.",
diff --git a/app/javascript/dashboard/i18n/locale/ca/search.json b/app/javascript/dashboard/i18n/locale/ca/search.json
index a114145ee..9a2866f60 100644
--- a/app/javascript/dashboard/i18n/locale/ca/search.json
+++ b/app/javascript/dashboard/i18n/locale/ca/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Totes",
+ "ALL": "All results",
"CONTACTS": "Contactes",
"CONVERSATIONS": "Converses",
- "MESSAGES": "Messages"
+ "MESSAGES": "Missatges",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contactes",
"CONVERSATIONS": "Converses",
- "MESSAGES": "Messages"
+ "MESSAGES": "Missatges",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "S'està cercant",
+ "LOADING_DATA": "Carregant",
+ "EMPTY_STATE": "No s'ha trobat cap {item} per a la consulta '{query}'",
+ "EMPTY_STATE_FULL": "No s'han trobat resultats per a la consulta '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/centrar",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Esborrar tot",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "correu electrònic"
+ "READ_MORE": "Llegir més",
+ "READ_LESS": "Read less",
+ "WROTE": "va escriure:",
+ "FROM": "Des de",
+ "EMAIL": "Correu electrònic",
+ "EMAIL_SUBJECT": "Assumpte",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Últims 7 dies",
+ "LAST_30_DAYS": "Últims 30 dies",
+ "LAST_60_DAYS": "Últims 60 dies",
+ "LAST_90_DAYS": "Últims 90 dies",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Aplica",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Esborra els filtres"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Remitent",
+ "IN": "Safata d'entrada",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contactes",
+ "INBOXES": "Safates d'entrada",
+ "NO_AGENTS": "No s'han trobat agents",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ca/setNewPassword.json
index 7742e7cc6..b465bee36 100644
--- a/app/javascript/dashboard/i18n/locale/ca/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ca/setNewPassword.json
@@ -1,13 +1,13 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set new password",
+ "TITLE": "Estableix la nova contrasenya",
"PASSWORD": {
"LABEL": "Contrasenya",
"PLACEHOLDER": "Contrasenya",
"ERROR": "La contrasenya és massa curta."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
+ "LABEL": "Confirma la contrasenya",
"PLACEHOLDER": "Confirma la contrasenya",
"ERROR": "La contrasenya no coindeix."
},
@@ -16,7 +16,7 @@
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "La verificació ha caducat. Si us plau, torna a resoldre captcha."
},
"SUBMIT": "Envia"
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/settings.json b/app/javascript/dashboard/i18n/locale/ca/settings.json
index 5d54e7af3..f3d5c03eb 100644
--- a/app/javascript/dashboard/i18n/locale/ca/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/settings.json
@@ -3,13 +3,14 @@
"LINK": "Configuració del Perfil",
"TITLE": "Configuració del Perfil",
"BTN_TEXT": "Actualització del Perfil",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
+ "DELETE_AVATAR": "Suprimeix Avatar",
+ "AVATAR_DELETE_SUCCESS": "L'avatar s'ha suprimit correctament",
+ "AVATAR_DELETE_FAILED": "S'ha produït un error en suprimir l'avatar, torneu-ho a provar",
+ "UPDATE_SUCCESS": "El teu perfil s'ha actualitzat correctament",
"PASSWORD_UPDATE_SUCCESS": "La teva contrasenya ha estat canviada correctament",
"AFTER_EMAIL_CHANGED": "El vostre perfil s'ha actualitzat correctament. Torneu a iniciar la sessió ja que les vostres credencials d'inici de sessió han canviat",
"FORM": {
+ "PICTURE": "Imatge de perfil",
"AVATAR": "Imatge del Perfil",
"ERROR": "Corregiu els errors del formulari",
"REMOVE_IMAGE": "Suprimeix",
@@ -20,61 +21,119 @@
"NOTE": "La vostra adreça de correu electrònic és la vostra identitat i s'utilitza per iniciar la sessió."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "Tecla d'accés ràpid per enviar missatges",
+ "NOTE": "Pots seleccionar una tecla d'accés ràpid (Enter o Cmd/Ctrl+Enter) segons les teves preferències d'escriptura.",
+ "UPDATE_SUCCESS": "La teva configuració s'ha actualitzat correctament",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "Retorn (↵)",
+ "CONTENT": "Envia missatges prement la tecla Intro en comptes de fer clic al botó d'enviament."
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "Envia missatges prement Cmd/Ctrl + tecla Intro en lloc de fer clic al botó d'enviament."
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Per defecte",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "Signatura personal del missatge",
+ "NOTE": "Crea una signatura de missatge única per aparèixer al final de cada missatge que envieu des de qualsevol safata d'entrada. També pots incloure una imatge en línia, que és compatible amb el xat en directe, el correu electrònic i les bústies d'entrada de l'API.",
+ "BTN_TEXT": "Desa la signatura del missatge",
+ "API_ERROR": "No s'ha pogut desar la signatura! Torna-ho a provar",
+ "API_SUCCESS": "La signatura s'ha desat correctament",
+ "IMAGE_UPLOAD_ERROR": "No s'ha pogut carregar la imatge! Torna-ho a provar",
+ "IMAGE_UPLOAD_SUCCESS": "La imatge s'ha afegit correctament. Fes clic a desa per desar la signatura",
+ "IMAGE_UPLOAD_SIZE_ERROR": "La mida de la imatge ha de ser inferior a {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "Signatura del missatge",
+ "ERROR": "La signatura del missatge no pot estar buida",
+ "PLACEHOLDER": "Introdueix aquí la teva signatura de missatge personal."
},
"PASSWORD_SECTION": {
"TITLE": "Contrasenya",
"NOTE": "L'actualització de la contrasenya restableix els vostres inicis de sessió en múltiples dispositius.",
- "BTN_TEXT": "Change password"
+ "BTN_TEXT": "Canvia la contrasenya"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
},
"ACCESS_TOKEN": {
"TITLE": "Token d'accés",
- "NOTE": "Aquest token es pot utilitzar si creeu una integració basada en l'API"
+ "NOTE": "Aquest token es pot utilitzar si creeu una integració basada en l'API",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
"NONE": "Ningú",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "MINE": "Assignat",
+ "ALL": "Totes",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Esdeveniments d'alerta per a converses",
+ "NONE": "Ningú",
+ "ASSIGNED": "Converses assignades",
+ "ALL_CONVERSATIONS": "Totes les converses"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "To d'alerta:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "Condicions d'alerta:",
+ "CONDITION_ONE": "Envia alertes d'àudio només si la finestra del navegador no està activa",
+ "CONDITION_TWO": "Envia alertes cada 30 segons fins que es llegeixin totes les converses assignades"
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Llegir més"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notificacions per correu electrònic",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Envieu notificacions per correu electrònic quan es crea una nova conversa",
"CONVERSATION_MENTION": "Enviar notificacions per mail quan siguis esmentat en una conversació",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envia notificacions per correu electrònic quan es creï un missatge nou en una conversa assignada",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Envia notificacions per correu electrònic quan es crea un missatge nou en una conversa participant",
+ "SLA_MISSED_FIRST_RESPONSE": "Envia notificacions per correu electrònic quan una conversa no compleixi un SLA de primera resposta",
+ "SLA_MISSED_NEXT_RESPONSE": "Envia notificacions per correu electrònic quan una conversa es perdi la següent resposta SLA",
+ "SLA_MISSED_RESOLUTION": "Envia notificacions per correu electrònic quan una conversa no resol un SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Preferències de notificació",
+ "TYPE_TITLE": "Tipus de notificació",
+ "EMAIL": "Correu electrònic",
+ "PUSH": "Notificació Push",
+ "TYPES": {
+ "CONVERSATION_CREATED": "S'ha creat una nova conversa",
+ "CONVERSATION_ASSIGNED": "Se t'assigna una conversa",
+ "CONVERSATION_MENTION": "Se't menciona en una conversa",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Es crea un missatge nou en una conversa assignada",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Es crea un missatge nou en una conversa participant",
+ "SLA_MISSED_FIRST_RESPONSE": "Una conversa no té un SLA de primera resposta",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA de la següent resposta no és una conversa",
+ "SLA_MISSED_RESOLUTION": "Una conversa no resol un SLA"
+ },
+ "BROWSER_PERMISSION": "Activa les notificacions push en el teu navegador perquè puguis rebre-les"
},
"API": {
"UPDATE_SUCCESS": "Les teves preferències de notificació s’han actualitzat correctament",
@@ -96,9 +175,12 @@
"CONVERSATION_CREATION": "Envia notificacions automàtiques quan es creï una conversa nova",
"CONVERSATION_MENTION": "Enviar notificacions push quan siguis esmentat en una conversació",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envia notificacions automàtiques quan es creï un missatge nou en una conversa assignada",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Envia notificacions push quan es crea un missatge nou en una conversa participant",
"HAS_ENABLED_PUSH": "Heu activat les notificacions per a aquest navegador.",
- "REQUEST_PUSH": "Activa les notificacions"
+ "REQUEST_PUSH": "Activa les notificacions",
+ "SLA_MISSED_FIRST_RESPONSE": "Envia notificacions automàtiques quan una conversa no tingui un SLA de primera resposta",
+ "SLA_MISSED_NEXT_RESPONSE": "Envia notificacions automàtiques quan una conversa no s'aconsegueixi la següent resposta SLA",
+ "SLA_MISSED_RESOLUTION": "Envia notificacions quan una conversa no resol el SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Imatge del Perfil"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Disponibilitat",
- "STATUSES_LIST": [
- "En línia",
- "Ocupat",
- "Fora de línia"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "STATUS": {
+ "ONLINE": "En línia",
+ "BUSY": "Ocupat",
+ "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",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "La teva adreça de correu electrònic",
@@ -129,65 +212,80 @@
"PLACEHOLDER": "Introduïu la vostra adreça de correu electrònic, que es mostrarà a les converses"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "Contrasenya actual",
+ "ERROR": "Introdueix la contrasenya actual",
+ "PLACEHOLDER": "Introdueix la contrasenya actual"
},
"PASSWORD": {
- "LABEL": "New password",
+ "LABEL": "Nova contrasenya",
"ERROR": "Introduïu una contrasenya d'una longitud de 6 o més",
"PLACEHOLDER": "Introduïu una nova contrasenya"
},
"PASSWORD_CONFIRMATION": {
"LABEL": "Confirmació de la nova contrasenya",
"ERROR": "Confirmeu que les contrasenyes coincideixin",
- "PLACEHOLDER": "Please re-enter your new password"
+ "PLACEHOLDER": "Torna a introduir la nova contrasenya"
}
}
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Canvia",
- "CHANGE_ACCOUNTS": "Canvia de compte",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Selecciona un compte de la llista següent",
- "PROFILE_SETTINGS": "Configuració del Perfil",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Sortir"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dies de prova restants.",
"TRAIL_BUTTON": "Compra ara",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "Usuari suprimit",
+ "EMAIL_VERIFICATION_PENDING": "Sembla que encara no has verificat la teva adreça de correu electrònic. Comprova la teva safata d'entrada per trobar el correu electrònic de verificació.",
+ "RESEND_VERIFICATION_MAIL": "Reenviar correu electrònic de verificació",
+ "EMAIL_VERIFICATION_SENT": "S'ha enviat un correu electrònic de verificació. Comprova la teva safata d'entrada.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "Compte suspès",
+ "MESSAGE": "El teu compte està suspès. Posa't en contacte amb l'equip d'assistència per obtenir més informació."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "Copia",
- "CODEPEN": "Open in CodePen",
+ "CODEPEN": "Obre en CodePen",
"COPY_SUCCESSFUL": "El codi s'ha copiat al porta-retalls amb èxit"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "Mostra més",
+ "SHOW_LESS": "Mostra menys"
},
"FILE_BUBBLE": {
"DOWNLOAD": "Descarrega",
"UPLOADING": "S'està carregant...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Aquesta història ja no està disponible.",
+ "INSTAGRAM_STORY_REPLY": "Va respondre a la teva història:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "Veure al mapa"
},
"FORM_BUBBLE": {
"SUBMIT": "Envia"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "S'està verificant...",
@@ -197,91 +295,323 @@
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
+ "NO_ITEMS": "No items",
+ "CURRENTLY_VIEWING_ACCOUNT": "Visualització actual:",
+ "SWITCH": "Canvia",
+ "INBOX_VIEW": "Vista de la safata d'entrada",
"CONVERSATIONS": "Converses",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
+ "INBOX": "My Inbox",
+ "ALL_CONVERSATIONS": "Totes les converses",
"MENTIONED_CONVERSATIONS": "Mencions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
+ "PARTICIPATING_CONVERSATIONS": "Participant",
+ "UNATTENDED_CONVERSATIONS": "Sense assistència",
"REPORTS": "Informes",
"SETTINGS": "Configuracions",
"CONTACTS": "Contactes",
+ "ACTIVE": "Actiu",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Safates d'entrada",
+ "CAPTAIN_SETTINGS": "Configuracions",
"HOME": "Inici",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
+ "AUDIT_LOGS": "Registres d'auditoria",
"INBOXES": "Safates d'entrada",
"NOTIFICATIONS": "Notificacions",
"CANNED_RESPONSES": "Respostes predeterminades",
"INTEGRATIONS": "Integracions",
"PROFILE_SETTINGS": "Configuració del Perfil",
"ACCOUNT_SETTINGS": "Configuració del compte",
- "APPLICATIONS": "Applications",
+ "APPLICATIONS": "Aplicacions",
"LABELS": "Etiquetes",
"CUSTOM_ATTRIBUTES": "Atributs personalitzats",
- "AUTOMATION": "Automation",
+ "AUTOMATION": "Automatització",
"MACROS": "Macros",
"TEAMS": "Equips",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
+ "BILLING": "Facturació",
+ "CUSTOM_VIEWS_FOLDER": "Carpetes",
"CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
+ "ALL_CONTACTS": "Tots els contactes",
+ "TAGGED_WITH": "Etiquetat amb",
"NEW_LABEL": "Nova etiqueta",
"NEW_TEAM": "Nou equip",
- "NEW_INBOX": "New inbox",
+ "NEW_INBOX": "Safata d'entrada nova",
"REPORTS_CONVERSATION": "Converses",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "Campanyes",
+ "ONGOING": "En marxa",
+ "ONE_OFF": "Un fora",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agents",
"REPORTS_LABEL": "Etiquetes",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_INBOX": "Safata d'entrada",
+ "REPORTS_TEAM": "Equip",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
+ "SET_AVAILABILITY_TITLE": "Posa't com",
+ "SET_YOUR_AVAILABILITY": "Estableix la vostra disponibilitat",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "La teva connexió a Facebook ha caducat, torna a connectar la vostra pàgina de Facebook per continuar els serveis",
+ "REPORTS_OVERVIEW": "Resum",
+ "REAUTHORIZE": "La vostra connexió a la safata d'entrada ha caducat, torna a connectar\n per continuar rebent i enviant missatges",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Configuracions",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "Centre d'ajuda",
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Localitzacions",
+ "SETTINGS": "Configuracions"
},
+ "CHANNELS": "Canals",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "Marca fora de línia automàticament",
+ "INFO_TEXT": "Permet que el sistema et marqui automàticament fora de línia quan no facis servir l'aplicació o el tauler.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Llegir documents",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Característiques",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "Facturació",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "Pla actual",
+ "PLAN_NOTE": "Actualment estàs subscrit al pla **{plan}** amb **{quantity}** llicències",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "Gestiona la teva subscripció",
+ "DESCRIPTION": "Consulta les teves factures anteriors, edita els teus detalls de facturació o cancel·la la teva subscripció.",
+ "BUTTON_TXT": "Ves al portal de facturació"
+ },
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Actualitza"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "Necessita ajuda?",
+ "DESCRIPTION": "Trobes algun problema en la facturació? Estem aquí per ajudar.",
"BUTTON_TXT": "Xateja amb nosaltres"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "El teu compte de facturació s'està configurant. Actualitza la pàgina i torna-ho a provar.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Nota:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancel·la",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Torna enrere",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "El codi s'ha copiat al porta-retalls amb èxit",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Cerca atributs"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resol la conversa",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resol la conversa",
+ "CANCEL": "Cancel·la"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Si",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
+ "NO_ACCOUNT_WARNING": "Uh oh! No hem trobat cap compte de Chatwoot. Crea un compte nou per continuar.",
"NEW_ACCOUNT": "Compte nou",
"SELECTOR_SUBTITLE": "Crear un compte nou",
"API": {
@@ -294,32 +624,300 @@
"LABEL": "Nom de la companyia",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Envia"
+ "SUBMIT": "Envia",
+ "CANCEL": "Cancel·la"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "Veure totes les dreceres",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "Obrir conversa",
+ "RESOLVE_AND_NEXT": "Resol i passa al següent",
+ "NAVIGATE_DROPDOWN": "Navega pels elements desplegables",
+ "RESOLVE_CONVERSATION": "Resol la conversa",
+ "GO_TO_CONVERSATION_DASHBOARD": "Ves al Tauler de converses",
+ "ADD_ATTACHMENT": "Afegeix fitxer adjunt",
+ "GO_TO_CONTACTS_DASHBOARD": "Ves al tauler de contactes",
+ "TOGGLE_SIDEBAR": "Commuta la barra lateral",
+ "GO_TO_REPORTS_SIDEBAR": "Anar a la barra lateral Informes",
+ "MOVE_TO_NEXT_TAB": "Anar a la pestanya següent de la llista de converses",
+ "GO_TO_SETTINGS": "Ves a la configuració",
+ "SWITCH_TO_PRIVATE_NOTE": "Canvia a la nota privada",
+ "SWITCH_TO_REPLY": "Canvia a Respon",
+ "TOGGLE_SNOOZE_DROPDOWN": "Commuta el menú desplegable de posposar"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritat",
+ "ACTIVE": "Actiu",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Edita"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel·la"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció:",
+ "PLACEHOLDER": "Introdueix la descripció"
+ },
+ "STATUS": {
+ "LABEL": "Estat:",
+ "PLACEHOLDER": "Selecciona l'estat",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Afegir"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Edita"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel·la"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripció:",
+ "PLACEHOLDER": "Introdueix la descripció"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Afegir"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Esborrar",
+ "CANCEL_BUTTON_LABEL": "Cancel·la"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/signup.json b/app/javascript/dashboard/i18n/locale/ca/signup.json
index 16dead7a5..e06e1267e 100644
--- a/app/javascript/dashboard/i18n/locale/ca/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ca/signup.json
@@ -1,17 +1,18 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "Crear un compte",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registre",
- "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
- "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
- "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "TESTIMONIAL_HEADER": "Només cal un pas per avançar",
+ "TESTIMONIAL_CONTENT": "Esteu a un pas de captar els vostres clients, retenir-los i trobar-ne de nous.",
+ "TERMS_ACCEPT": "En crear un compte, acceptes els nostres T&C i Política de privadesa",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Registra't amb Google"
},
"COMPANY_NAME": {
- "LABEL": "Company name",
+ "LABEL": "Nom de la companyia",
"PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
- "ERROR": "Company name is too short"
+ "ERROR": "El nom de l'empresa és massa curt."
},
"FULL_NAME": {
"LABEL": "Nom complet",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Email de treball",
- "PLACEHOLDER": "Introdueix la teva adreça email de treball. ex: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Contrasenya",
"PLACEHOLDER": "Contrasenya",
"ERROR": "La contrasenya és massa curta",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirma la contrasenya",
"PLACEHOLDER": "Confirma la contrasenya",
- "ERROR": "Les contrasenyes no coincideixen"
+ "ERROR": "La contrasenya no coindeix."
},
"API": {
- "SUCCESS_MESSAGE": "Registrat correctament",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "No s'ha pogut connectar amb el servidor Woot. Torna-ho a provar més endavant"
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Ja tens un compte?"
+ "SUBMIT": "Crear un compte",
+ "HAVE_AN_ACCOUNT": "Ja tens un compte?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Reenviar correu electrònic de verificació",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/sla.json b/app/javascript/dashboard/i18n/locale/ca/sla.json
index 69cdca30b..64dd58e02 100644
--- a/app/javascript/dashboard/i18n/locale/ca/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ca/sla.json
@@ -1,41 +1,71 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "No hi ha articles que coincideixin amb aquesta consulta",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Afegeix SLA",
+ "ADD_ACTION_LONG": "Crea una nova política de SLA",
+ "DESCRIPTION": "Els acords de nivell de servei (SLA) són contractes que defineixen expectatives clares entre el vostre equip i els clients. Estableixen estàndards de temps de resposta i resolució, creen un marc de responsabilitat i garanteixen una experiència coherent i d'alta qualitat.",
+ "LEARN_MORE": "Més informació sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "S'estan obtenint SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Actualitza per crear SLA",
+ "AVAILABLE_ON": "La funció SLA només està disponible als plans Business i Enterprise.",
+ "UPGRADE_PROMPT": "Actualitza el teu pla per accedir a funcions avançades com ara gestió d'equips, automatitzacions, atributs personalitzats i molt més.",
+ "UPGRADE_NOW": "Actualitza ara",
+ "CANCEL_ANYTIME": "Pots canviar o cancel·lar el teu pla en qualsevol moment"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funció SLA només està disponible als plans de pagament.",
+ "UPGRADE_PROMPT": "Actualitza a un pla de pagament per accedir a funcions avançades com els registres d'auditoria, la capacitat de l'agent i molt més.",
+ "ASK_ADMIN": "Posa't en contacte amb el vostre administrador per obtenir l'actualització."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nom",
- "Descripció",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "404": "No hi ha cap SLA disponible en aquest compte.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Empresa P0",
+ "DESC_1": "Problemes plantejats pels clients empresarials, que requereixen atenció immediata.",
+ "TITLE_2": "Empresa P1",
+ "DESC_2": "Problemes plantejats pels clients empresarials, que cal reconèixer ràpidament."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "Primer llindar de temps de resposta",
+ "NRT": "Següent llindar de temps de resposta",
+ "RT": "Llindar de temps de resolució",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
- "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
- "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ "LABEL": "Nom del SLA",
+ "PLACEHOLDER": "Nom del SLA",
+ "REQUIRED_ERROR": "El nom del SLA és obligatori",
+ "MINIMUM_LENGTH_ERROR": "Es requereix una longitud mínima de 2",
+ "VALID_ERROR": "Només es permeten alfabets, números, guionet i guió baix"
},
"DESCRIPTION": {
"LABEL": "Descripció",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "SLA per a clients premium"
},
"FIRST_RESPONSE_TIME": {
- "LABEL": "First Response Time",
+ "LABEL": "Primer Temps de Resposta",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "Pròxim temps de resposta",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
@@ -43,11 +73,11 @@
"PLACEHOLDER": "60"
},
"BUSINESS_HOURS": {
- "LABEL": "Business Hours",
- "PLACEHOLDER": "Only during business hours"
+ "LABEL": "Horari comercial",
+ "PLACEHOLDER": "Només durant l'horari comercial"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "El llindar ha de ser un nombre i més gran que zero"
},
"EDIT": "Edita",
"CREATE": "Crear",
@@ -55,19 +85,33 @@
"CANCEL": "Cancel·la"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "Afegeix SLA",
+ "DESC": "Promeses amistoses per a un gran servei!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA afegit correctament",
"ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Suprimeix el SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "S'ha esborrat el SLA correctament",
"ERROR_MESSAGE": "S'ha produït un error; tornau-ho a provar"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirma l'esborrat",
+ "MESSAGE": "Estàs segur que vols suprimir ",
+ "YES": "Si, esborra ",
+ "NO": "No, segueix "
}
+ },
+ "EVENTS": {
+ "TITLE": "Faltes SLA",
+ "FRT": "Primer temps de resposta",
+ "NRT": "Pròxim temps de resposta",
+ "RT": "Temps de resolució",
+ "SHOW_MORE": "{count} més",
+ "HIDE": "Amaga {count} files"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/snooze.json b/app/javascript/dashboard/i18n/locale/ca/snooze.json
new file mode 100644
index 000000000..9a71a1e74
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hores",
+ "DAY": "dia",
+ "DAYS": "days",
+ "WEEK": "setmana",
+ "WEEKS": "weeks",
+ "MONTH": "mes",
+ "MONTHS": "months",
+ "YEAR": "any",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "demà",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "pròxima setmana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "setmana",
+ "DAY": "dia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
index 6ec12d43d..90d580c77 100644
--- a/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ca/teamsSettings.json
@@ -1,125 +1,124 @@
{
"TEAMS_SETTINGS": {
- "NEW_TEAM": "Create new team",
+ "NEW_TEAM": "Cea un nou equip",
"HEADER": "Equips",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Cerca equips...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
- "404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "404": "No hi ha cap equip creat en aquest compte.",
+ "EDIT_TEAM": "Edita l'equip",
+ "NONE": "Ningú"
},
"CREATE_FLOW": {
"CREATE": {
- "TITLE": "Create a new team",
- "DESC": "Add a title and description to your new team."
+ "TITLE": "Cea un nou equip",
+ "DESC": "Afegeix un títol i una descripció al teu nou equip."
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
+ "BUTTON_TEXT": "Afegir agents a l'equip",
+ "TITLE": "Afegeix agents a l'equip - {teamName}",
+ "DESC": "Afegeix agents al teu equip acabat de crear. Això et permet col·laborar com a equip en converses, rebre notificacions sobre esdeveniments nous a la mateixa conversa."
},
- "WIZARD": [
- {
- "title": "Crear",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Afegir agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Ja estàs preparat!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Crear",
+ "BODY": "Crea un nou equip d'agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Afegir agents",
+ "BODY": "Afegeix agents a l'equip."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finalitza",
+ "BODY": "Ja estàs preparat!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
- "TITLE": "Edit your team details",
- "DESC": "Edit title and description to your team.",
- "BUTTON_TEXT": "Update team"
+ "TITLE": "Edita els detalls del teu equip",
+ "DESC": "Edita un títol i una descripció al teu equip.",
+ "BUTTON_TEXT": "Actualitza l'equip"
},
"AGENTS": {
- "BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
+ "BUTTON_TEXT": "Actualitza els agents de l'equip",
+ "TITLE": "Afegeix agents a l'equip - {teamName}",
+ "DESC": "Afegeix agents al teu equip acabat de crear. Tots els agents afegits rebran una notificació quan s'assigni una conversa a aquest equip."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Ja estàs preparat!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Detalls de l'equip",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Canvia el nom, la descripció i altres detalls."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edita agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edita agents en el teu equip."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finalitza",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Ja estàs preparat!"
+ }
},
"TEAM_FORM": {
- "ERROR_MESSAGE": "Couldn't save the team details. Try again."
+ "ERROR_MESSAGE": "No s'han pogut desar els detalls de l'equip. Torna-ho a provar."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Agent",
"EMAIL": "Correu electrònic",
"BUTTON_TEXT": "Afegir agents",
- "ADD_AGENTS": "Adding Agents to your Team...",
- "SELECT": "select",
- "SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "ADD_AGENTS": "S'estan afegint agents al teu equip...",
+ "SELECT": "selecciona",
+ "SELECT_ALL": "selecciona tots els agents",
+ "SELECTED_COUNT": "{selected} de {total} agents seleccionats."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
- "SELECT": "select",
- "SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "TITLE": "Afegeix agents a l'equip - {teamName}",
+ "DESC": "Afegeix agents al teu equip acabat de crear. Això et permet col·laborar com a equip en converses, rebre notificacions sobre esdeveniments nous a la mateixa conversa.",
+ "SELECT": "selecciona",
+ "SELECT_ALL": "selecciona tots els agents",
+ "SELECTED_COUNT": "{selected} de {total} agents seleccionats.",
"BUTTON_TEXT": "Afegir agents",
- "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ "AGENT_VALIDATION_ERROR": "Selecciona almenys un agent."
},
"FINISH": {
- "TITLE": "Your team is ready!",
- "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
- "BUTTON_TEXT": "Finish"
+ "TITLE": "El teu equip està preparat!",
+ "MESSAGE": "Ara pots col·laborar com un equip en les converses. Feliç suport ",
+ "BUTTON_TEXT": "Finalitza"
},
"DELETE": {
"BUTTON_TEXT": "Esborrar",
"API": {
- "SUCCESS_MESSAGE": "Team deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the team. Try again."
+ "SUCCESS_MESSAGE": "Equip esborrat correctament.",
+ "ERROR_MESSAGE": "No s'ha pogut suprimir l'equip. Torna-ho a provar."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
- "PLACE_HOLDER": "Please type {teamName} to confirm",
- "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
+ "TITLE": "Are you sure you want to delete the team?",
+ "PLACE_HOLDER": "Escriu {teamName} per confirmar",
+ "MESSAGE": "En suprimir l'equip, se suprimirà l'assignació d'equip de les converses assignades a aquest equip.",
"YES": "Suprimeix ",
"NO": "Cancel·la"
}
},
"SETTINGS": "Configuracions",
"FORM": {
- "UPDATE": "Update team",
- "CREATE": "Create team",
+ "UPDATE": "Actualitza l'equip",
+ "CREATE": "Crea l'equip",
"NAME": {
- "LABEL": "Team name",
- "PLACEHOLDER": "Example: Sales, Customer Support"
+ "LABEL": "Nom de l'equip",
+ "PLACEHOLDER": "Exemple: Vendes, Atenció al client"
},
"DESCRIPTION": {
- "LABEL": "Team Description",
- "PLACEHOLDER": "Short description about this team."
+ "LABEL": "Descripció de l’equip",
+ "PLACEHOLDER": "Breu descripció d'aquest equip."
},
"AUTO_ASSIGN": {
- "LABEL": "Allow auto assign for this team."
+ "LABEL": "Permet l'assignació automàtica d'aquest equip."
},
- "SUBMIT_CREATE": "Create team"
+ "SUBMIT_CREATE": "Crea l'equip"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ca/whatsappTemplates.json
index bbcf28156..bd2910734 100644
--- a/app/javascript/dashboard/i18n/locale/ca/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ca/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Plantilles de Whatsapp",
+ "SUBTITLE": "Selecciona la plantilla de whatsapp que vols enviar",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cerca plantilles",
+ "NO_TEMPLATES_FOUND": "No s'han trobat plantilles per a",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Cos de la plantilla",
+ "CATEGORY": "Categoria"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Introdueix el valor {variable}",
+ "GO_BACK_LABEL": "Torna enrere",
+ "SEND_MESSAGE_LABEL": "Envia missatge",
+ "FORM_ERROR_MESSAGE": "Omple totes les variables abans d'enviar-les",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ca/yearInReview.json b/app/javascript/dashboard/i18n/locale/ca/yearInReview.json
new file mode 100644
index 000000000..85557f98f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ca/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Tanca",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "converses",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Descarrega",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json b/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json
index 8e5c767cd..65392275f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/cs/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Je menší než",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Rovno",
+ "notEqualTo": "Nerovno",
+ "contains": "Contains",
+ "doesNotContain": "Neobsahuje",
+ "isPresent": "Je přítomno",
+ "isNotPresent": "Není přítomno",
+ "isGreaterThan": "Je větší než",
+ "isLessThan": "Je menší než",
+ "daysBefore": "Je o x dnů dříve",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -51,9 +61,15 @@
"CUSTOM_ATTRIBUTE_NUMBER": "Number",
"CUSTOM_ATTRIBUTE_LINK": "Link",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
- "CREATED_AT": "Created at",
+ "CREATED_AT": "Vytvořeno",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Hodnota je povinná",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/cs/agentBots.json b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
index b982590da..b012e30ff 100644
--- a/app/javascript/dashboard/i18n/locale/cs/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/cs/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Akce"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
index 883dcd0fa..85056ae17 100644
--- a/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agenti",
"HEADER_BTN_TXT": "Přidat agenta",
"LOADING": "Načítání seznamu agentů",
- "SIDEBAR_TXT": "Agenti
Agent je členem vašeho týmu zákaznické podpory.
Agenti budou moci prohlížet a odpovídat na zprávy od uživatelů. Seznam zobrazuje všechny agenty aktuálně na vašem účtu.
Pro přidání nového agenta klikněte na Přidat agenta. Přidaný agent obdrží e-mail s potvrzovacím odkazem pro aktivaci jejich účtu, poté bude mít přístup k Chatwoot a bude reagovat na zprávy.
Přístup k funkcím Chatwootu je založen na následujících rolích.
Agent - Agent s touto rolí může přistupovat pouze k doručeným zprávám, zprávám a konverzacím. Mohou přiřadit konverzace jiným agentům nebo sobě a řešit konverzace.
Administrátor - Správce bude mít přístup ke všem funkcím Chatwoot povoleným pro váš účet, včetně nastavení spolu se všemi obvyklými právy agenta.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrátor",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "K tomuto účtu nejsou přiřazeni žádní agenti",
"TITLE": "Spravujte agenty ve vašem týmu",
@@ -17,7 +19,8 @@
"STATUS": "Stav",
"ACTIONS": "Akce",
"VERIFIED": "Ověřeno",
- "VERIFICATION_PENDING": "Probíhá ověření"
+ "VERIFICATION_PENDING": "Probíhá ověření",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Přidat agenta do vašeho týmu",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
}
},
+ "SEARCH_PLACEHOLDER": "Hledat agenty...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Žádné výsledky."
},
@@ -103,6 +108,9 @@
"AGENT": "Vybrat agenta",
"TEAM": "Vybrat tým"
},
+ "LIST": {
+ "NONE": "Nic"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nenalezeni žádní agenti",
diff --git a/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
index 7f08ae00b..22939a044 100644
--- a/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Vlastní atributy",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Společnost"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Vymazat ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Vlastní atributy",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Společnost"
},
"LIST": {
- "TABLE_HEADER": [
- "Název",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Upravit",
"DELETE": "Vymazat"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/auditLogs.json b/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
index b7245cc99..1620dab00 100644
--- a/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/cs/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP adresa"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP adresa"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 064200a54..476a1874c 100644
--- a/app/javascript/dashboard/i18n/locale/cs/automation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Název",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Akce"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Nahrávání...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Hodnota je povinná",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Nic",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Zpráva vytvořena",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Konverzace otevřena"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Přiřadit agentovi",
+ "ASSIGN_TEAM": "Přiřadit tým",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "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",
+ "ADD_PRIVATE_NOTE": "Přidat soukromou poznámku",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nic",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Typ zprávy",
+ "PRIVATE_NOTE": "Soukromá poznámka",
+ "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ě",
+ "COMPANY_NAME": "Společnost",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Štítky"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
index 081045841..0330986df 100644
--- a/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/cs/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Vybrat agenta",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Přiřadit",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Nic",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ano",
+ "CANCEL": "Zrušit",
+ "SEARCH_INPUT_PLACEHOLDER": "Hledat",
"ASSIGN_AGENT_TOOLTIP": "Přiřadit agenta",
"ASSIGN_TEAM_TOOLTIP": "Přiřadit tým",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Načítání agentů",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Odložit",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Vybrat tým",
"NONE": "Nic",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/campaign.json b/app/javascript/dashboard/i18n/locale/cs/campaign.json
index 391c7919f..2d7efdefd 100644
--- a/app/javascript/dashboard/i18n/locale/cs/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/cs/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampaně",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Zrušit",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Povoleno",
+ "DISABLED": "Zakázáno"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Zpráva",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Odeslal",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Zadejte prosím platnou URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Odeslal",
+ "BOT": "Bot",
+ "FROM": "od",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Zrušit",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Zpráva",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Odeslal",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Zadejte prosím platnou URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Zrušit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Vymazat",
- "CONFIRM": {
- "TITLE": "Potvrdit odstranění",
- "MESSAGE": "Opravdu chcete odstranit?",
- "YES": "Ano, odstranit ",
- "NO": "Ne, zachovat "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Zrušit",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Zpráva",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Zrušit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Zrušit",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Zrušit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Opravdu chcete odstranit?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Vymazat",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Aktualizovat",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Zpráva",
- "INBOX": "Inbox",
- "STATUS": "Stav",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Upravit",
- "DELETE": "Vymazat"
- },
- "STATUS": {
- "ENABLED": "Povoleno",
- "DISABLED": "Zakázáno",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
index 39c675612..ef11bb64a 100644
--- a/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Konzervované odpovědi",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "V tomto účtu nejsou k dispozici žádné konzervované odpovědi.",
"TITLE": "Spravovat konzervované odpovědi",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Obsah",
- "Akce"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Obsah",
+ "ACTIONS": "Akce"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/cs/chatlist.json b/app/javascript/dashboard/i18n/locale/cs/chatlist.json
index a8ee531b8..a5ec68c33 100644
--- a/app/javascript/dashboard/i18n/locale/cs/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/cs/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "V této skupině nejsou žádné aktivní konverzace."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Konverzace",
"MENTION_HEADING": "Zmínky",
"UNATTENDED_HEADING": "Unattended",
@@ -47,34 +48,37 @@
"OLDEST": "Created at:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "Poslední aktivita:",
+ "ACTIVE": "Poslední aktivita"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "Poslední aktivita: od nejstarších"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "Poslední aktivita: od nejnovějších"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "Vytvořeno: od nejnovějších"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "Vytvořeno: od nejstarších"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "Priorita: od nejvyšší"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "Priorita: Od nejnižší"
},
"waiting_since_asc": {
"TEXT": "Pending Response: Longest first"
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Poloha"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "sdílel URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -106,12 +119,12 @@
"LABEL": "Last activity"
},
"CREATED_AT": {
- "NAME": "Created at",
- "LABEL": "Created at"
+ "NAME": "Vytvořeno",
+ "LABEL": "Vytvořeno"
},
"LAST_USER_MESSAGE_AT": {
"NAME": "Last user message at",
- "LABEL": "Last message"
+ "LABEL": "Poslední zpráva"
}
}
},
@@ -126,6 +139,8 @@
"NO_CONTENT": "Žádný obsah k dispozici",
"HIDE_QUOTED_TEXT": "Skrýt citovaný text",
"SHOW_QUOTED_TEXT": "Zobrazit citovaný text",
- "MESSAGE_READ": "Přečtené"
+ "MESSAGE_READ": "Přečtené",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/companies.json b/app/javascript/dashboard/i18n/locale/cs/companies.json
new file mode 100644
index 000000000..221918e9f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Seřadit podle",
+ "OPTIONS": {
+ "NAME": "Název",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Vytvořeno",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kontakty",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Načítání kontaktů...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Společnost",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Zrušit"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Název",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/components.json b/app/javascript/dashboard/i18n/locale/cs/components.json
new file mode 100644
index 000000000..2caba589c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Žádné výsledky.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Žádné výsledky.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Zrušit",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Vyhledat zemi",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/contact.json b/app/javascript/dashboard/i18n/locale/cs/contact.json
index 893161434..c66408198 100644
--- a/app/javascript/dashboard/i18n/locale/cs/contact.json
+++ b/app/javascript/dashboard/i18n/locale/cs/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP adresa",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "K tomuto kontaktu nejsou přiřazeny žádné předchozí konverzace.",
"TITLE": "Předchozí konverzace"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Vlastní atributy",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Předchozí konverzace"
+ "PREVIOUS_CONVERSATIONS": "Předchozí konverzace",
+ "NO_RECORDS_FOUND": "Nebyly nalezeny žádné atributy"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Upravit kontakt",
"DESC": "Upravit kontaktní údaje"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nový kontakt",
- "TITLE": "Vytvořit nový kontakt",
- "DESC": "Přidat základní informace o kontaktu."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Zrušit"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Potvrdit odstranění",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontakty",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Hledat",
- "SEARCH_INPUT_PLACEHOLDER": "Hledat kontakty",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Načítání kontaktů...",
- "404": "Vašemu hledání neodpovídají žádné kontakty 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Název",
- "PHONE_NUMBER": "Telefonní číslo",
- "CONVERSATIONS": "Konverzace",
- "LAST_ACTIVITY": "Poslední aktivita",
- "CREATED_AT": "Vytvořeno",
- "COUNTRY": "Země",
- "CITY": "Město",
- "SOCIAL_PROFILES": "Sociální profily",
- "COMPANY": "Společnost",
- "EMAIL_ADDRESS": "E-mailová adresa"
- },
- "VIEW_DETAILS": "Zobrazit detaily"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontakty",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "konverzace"
+ "SOCIAL_PROFILES": "Sociální profily"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Úspěšně zkopírováno do schránky",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakty",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Zpráva",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakty"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Tuto e-mailovou adresu již používá jiný kontakt.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Kontakt byl úspěšně uložen",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Změnit",
+ "CANCEL": "Zrušit",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
+ },
+ "SORT_BY": {
+ "LABEL": "Seřadit podle",
+ "OPTIONS": {
+ "NAME": "Název",
+ "EMAIL": "E-mailová adresa",
+ "PHONE_NUMBER": "Telefonní číslo",
+ "COMPANY": "Společnost",
+ "COUNTRY": "Země",
+ "CITY": "Město",
+ "LAST_ACTIVITY": "Poslední aktivita",
+ "CREATED_AT": "Vytvořeno"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Název",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Potvrdit odstranění",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ano, odstranit",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Název",
+ "EMAIL": "E-mailová adresa",
+ "PHONE_NUMBER": "Telefonní číslo",
+ "IDENTIFIER": "Identifikátor",
+ "COUNTRY": "Země",
+ "CITY": "Město",
+ "COMPANY": "Společnost",
+ "CREATED_AT": "Vytvořeno",
+ "LAST_ACTIVITY": "Poslední aktivita",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filtrovat kontakty",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Zobrazit detaily",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Upravit kontaktní údaje",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Tuto e-mailovou adresu již používá jiný kontakt."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Zadejte název společnosti"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Potvrdit odstranění",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ano, odstranit",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "K tomuto kontaktu nejsou přiřazeny žádné předchozí konverzace"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Ano",
+ "NO": "Ne",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Nebyly nalezeny žádné atributy",
+ "API": {
+ "SUCCESS_MESSAGE": "Atribut byl úspěšně aktualizován",
+ "DELETE_SUCCESS_MESSAGE": "Atribut byl úspěšně odstraněn",
+ "UPDATE_ERROR": "Atribut nelze aktualizovat. Zkuste to prosím později",
+ "DELETE_ERROR": "Atribut nelze odstranit. Zkuste to prosím později"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Zrušit",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "Vy",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Vašemu hledání neodpovídají žádné kontakty 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Vymazat",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Zobrazit",
+ "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": "Komu:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Předmět :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/contactFilters.json b/app/javascript/dashboard/i18n/locale/cs/contactFilters.json
index ea9a3253a..715ff8a7a 100644
--- a/app/javascript/dashboard/i18n/locale/cs/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/cs/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Je menší než",
"days_before": "Je o x dnů dříve"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Hodnota je povinná"
+ },
"ATTRIBUTES": {
"NAME": "Název",
"EMAIL": "E-mailová adresa",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Zaškrtávací pole",
"CREATED_AT": "Vytvořeno",
"LAST_ACTIVITY": "Poslední aktivita",
- "REFERER_LINK": "Odkazující odkaz"
+ "REFERER_LINK": "Odkazující odkaz",
+ "BLOCKED": "Blocked",
+ "LABELS": "Štítky"
},
"GROUPS": {
"STANDARD_FILTERS": "Standardní filtry",
diff --git a/app/javascript/dashboard/i18n/locale/cs/contentTemplates.json b/app/javascript/dashboard/i18n/locale/cs/contentTemplates.json
new file mode 100644
index 000000000..ee85b11d8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Zpět",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/conversation.json b/app/javascript/dashboard/i18n/locale/cs/conversation.json
index 39c33ec8b..09d1c5408 100644
--- a/app/javascript/dashboard/i18n/locale/cs/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/cs/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " začít",
"NO_INBOX_AGENT": "Uh Oh! Vypadá to, že nejste součástí žádné schránky. Obraťte se na správce",
"SEARCH_MESSAGES": "Hledat zprávy v konverzacích",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Načítání konverzací",
"CANNOT_REPLY": "Nemůžete odpovědět z důvodu",
"24_HOURS_WINDOW": "24 hodinové omezení okna",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Neznámý soubor",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Nahrávání příloh...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Zpráva byla úspěšně smazána",
"FAIL_DELETE_MESSSAGE": "Zpráva se nepodařilo odstranit! Zkuste to znovu",
"NO_RESPONSE": "Bez odpovědi",
+ "RESPONSE": "Response",
"RATING_TITLE": "Hodnocení",
"FEEDBACK_TITLE": "Zpětná vazba",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"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",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Odloženo do zítřka",
"SNOOZED_UNTIL_NEXT_WEEK": "Odloženo do příštího týdne",
- "SNOOZED_UNTIL_NEXT_REPLY": "Odloženo do další odpovědi"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Odloženo do další odpovědi",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Označit jako nevyřízené",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Příští týden"
}
},
+ "MENTION": {
+ "AGENTS": "Agenti",
+ "TEAMS": "Týmy"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Odložit do",
"APPLY": "Odložit",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nic",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "Žádné výsledky",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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é",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Znovu otevřít konverzaci",
"SNOOZE": {
"TITLE": "Odložit",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Přiřadit štítek",
"AGENTS_LOADING": "Načítání agentů...",
"ASSIGN_TEAM": "Přiřadit tým",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Konverzace id %{conversationId} přiřazena \"%{agentName}\"",
+ "SUCCESFUL": "Konverzace id {conversationId} přiřazena \"{agentName}\"",
"FAILED": "Nelze přiřadit agenta. Zkuste to prosím znovu."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Přiřazený štítek #%{labelName} ke konverzaci id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nelze přiřadit štítek. Zkuste to prosím znovu."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Přiřazený tým #%{team} ke konverzaci id %{conversationId}",
+ "SUCCESFUL": "Přiřazený tým \"{team}\" ke konverzaci id {conversationId}",
"FAILED": "Nelze přiřadit tým. Zkuste to prosím znovu."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Zakázat podpis",
"MSG_INPUT": "Shift + zadejte pro nový řádek. Začněte '/' pro výběr zrušené odpovědi.",
"PRIVATE_MSG_INPUT": "Shift + zadejte pro nový řádek. Toto bude viditelné pouze pro agenty",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Podpis zprávy není nakonfigurován, prosím nakonfigurujte jej v nastavení profilu.",
- "CLICK_HERE": "Klikněte zde pro aktualizaci"
+ "COPILOT_MSG_INPUT": "Dejte copilotu další podněty nebo se zeptejte na cokoliv dalšího... Stiskněte Enter pro odeslání pokračování",
+ "CLICK_HERE": "Klikněte zde pro aktualizaci",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Odpověď",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Zobrazit formátovaný textový editor",
"TIP_EMOJI_ICON": "Zobrazit výběr emoji",
"TIP_ATTACH_ICON": "Přiložit soubory",
"TIP_AUDIORECORDER_ICON": "Nahrát zvuk",
"TIP_AUDIORECORDER_PERMISSION": "Povolit přístup ke zvuku",
"TIP_AUDIORECORDER_ERROR": "Zvuk se nepodařilo otevřít",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Přetažením sem připojíte",
"START_AUDIO_RECORDING": "Spustit nahrávání zvuku",
"STOP_AUDIO_RECORDING": "Zastavit nahrávání zvuku",
- "": "",
+ "COPILOT_THINKING": "Copilot přemýšlí",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Přidat bcc",
@@ -176,6 +257,13 @@
"YES": "Poslat",
"CANCEL": "Zrušit"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Soukromá poznámka: Viditelné pouze pro vás a váš tým",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nepodařilo se odeslat tuto zprávu, zkuste to prosím později",
"SENT_BY": "Odeslal:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Odeslání zprávy se nezdařilo! Zkuste to znovu",
"TRY_AGAIN": "opakovat",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Vymazat",
"CANCEL": "Zrušit"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Zrušit",
"SEND_EMAIL_SUCCESS": "Přepis chatu byl úspěšně odeslán",
"SEND_EMAIL_ERROR": "Došlo k chybě, zkuste to prosím znovu",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Poslat přepis zákazníkovi",
"SEND_TO_AGENT": "Zašlete přepis přidělenému agentovi",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Ahoj, 👋, Vítejte na %{installationName}!",
- "DESCRIPTION": "Děkujeme za registraci. Chceme, abyste získali maximum z %{installationName}. Zde je několik věcí, které můžete v %{installationName} udělat, abyste udělali zážitek příjemný.",
+ "TITLE": "Ahoj, 👋, Vítejte na {installationName}!",
+ "DESCRIPTION": "Děkujeme za registraci. Chceme, abyste získali maximum z {installationName}. Zde je několik věcí, které můžete v {installationName} udělat, abyste udělali zážitek příjemný.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Přečtěte si nejnovější aktualizace",
"ALL_CONVERSATION": {
"TITLE": "Všechny vaše konverzace na jednom místě",
- "DESCRIPTION": "Zobrazit všechny konverzace od zákazníků na jednom nástěnce. Můžete filtrovat konverzace podle příchozího kanálu, popisku a stavu."
+ "DESCRIPTION": "Zobrazit všechny konverzace od zákazníků na jednom nástěnce. Můžete filtrovat konverzace podle příchozího kanálu, popisku a stavu.",
+ "NEW_LINK": "Klikněte zde pro vytvoření schránky"
},
"TEAM_MEMBERS": {
"TITLE": "Pozvěte své členy týmu",
"DESCRIPTION": "Vzhledem k tomu, že se připravujete na rozhovor se zákazníkem, přiveďte své týmové spolupracovníky, kteří Vám pomohou. Můžete pozvat své spolupracovníky přidáním jejich e-mailové adresy do seznamu agentů.",
"NEW_LINK": "Klikněte zde pro pozvání člena týmu"
},
- "INBOXES": {
- "TITLE": "Připojit schránky",
- "DESCRIPTION": "Připojte různé kanály, pomocí kterých budou Vaši zákazníci s Vámi mluvit. Může to být živý chat, Vaše Facebook nebo Twitter stránka nebo dokonce Vaše WhatsApp číslo.",
- "NEW_LINK": "Klikněte zde pro vytvoření schránky"
- },
"LABELS": {
"TITLE": "Spravovat konverzace s popisky",
"DESCRIPTION": "Štítky poskytují jednodušší způsob, jak kategorizovat vaši konverzaci. Vytvořte nějaké štítky jako #podpora, #fakturace atd., abyste je mohli použít v konverzaci později.",
"NEW_LINK": "Klikněte zde pro vytvoření štítků"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Čekající",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Vytvořit atribut",
+ "NO_RECORDS_FOUND": "Nebyly nalezeny žádné atributy",
"UPDATE": {
"SUCCESS": "Atribut byl úspěšně aktualizován",
"ERROR": "Atribut nelze aktualizovat. Zkuste to prosím později"
@@ -297,17 +449,18 @@
"TO": "Komu",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Předmět"
+ "SUBJECT": "Předmět",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Žádné výsledky",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/customRole.json b/app/javascript/dashboard/i18n/locale/cs/customRole.json
new file mode 100644
index 000000000..a94d89139
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Akce"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Název",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Zrušit",
+ "API": {
+ "ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Odeslat",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Upravit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Aktualizovat",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Vymazat",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Opravdu chcete odstranit ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/datePicker.json b/app/javascript/dashboard/i18n/locale/cs/datePicker.json
new file mode 100644
index 000000000..b1cfe0e4e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Použít",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Posledních 7 dní",
+ "LAST_30_DAYS": "Posledních 30 dní",
+ "LAST_3_MONTHS": "Poslední 3 měsíce",
+ "LAST_6_MONTHS": "Posledních 6 měsíců",
+ "LAST_YEAR": "Poslední rok",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Vlastní časové rozmezí"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/general.json b/app/javascript/dashboard/i18n/locale/cs/general.json
new file mode 100644
index 000000000..ad4bb4731
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Hledat",
+ "EMPTY_STATE": "Žádné výsledky"
+ },
+ "CLOSE": "Zavřít",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ano",
+ "NO": "Ne"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/generalSettings.json b/app/javascript/dashboard/i18n/locale/cs/generalSettings.json
index 3ceeb280d..6af6232cf 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Nyní můžete přijímat e-maily na vaši vlastní doménu."
}
},
- "UPDATE_CHATWOOT": "Je dostupná aktualizace %{latestChatwootVersion} pro Chatwoot. Aktualizujte prosím svou instanci.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Stiskněte Enter pro vybrání",
"ENTER_TO_REMOVE": "Stiskněte Enter pro odebrání",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Vyberte jeden",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Přiřazená konverzace",
"assigned_conversation_new_message": "Nová zpráva",
"participating_conversation_new_message": "Nová zpráva",
- "conversation_mention": "Zmínka"
+ "conversation_mention": "Zmínka",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Zprávy",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
index 95232f805..7f9405422 100644
--- a/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/cs/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filtrovat podle",
"SORT": "Seřadit podle",
@@ -41,6 +46,7 @@
"UPLOADING": "Nahrávání...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Zpět",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publikovat",
+ "DRAFT": "Koncept",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Vymazat"
+ },
+ "STATUS": {
+ "DRAFT": "Koncept",
+ "PUBLISHED": "Publikované",
+ "ARCHIVED": "Archivované"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Moje",
+ "DRAFT": "Koncept",
+ "PUBLISHED": "Publikované",
+ "ARCHIVED": "Archivované"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publikovat",
+ "DRAFT": "Koncept",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Vymazat",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Vymazat",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Název",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "EDIT": "Aktualizovat",
+ "CANCEL": "Zrušit"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Koncept",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Vymazat"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Stav",
+ "OPTIONS": {
+ "LIVE": "Publikované",
+ "DRAFT": "Koncept"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Ukládání...",
+ "SAVED": "Uloženo"
+ },
+ "PREVIEW": "Náhled",
+ "PUBLISH": "Publikovat",
+ "DRAFT": "Koncept",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta popis",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta titulek",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tagy",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portály",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "články",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Create",
+ "NAME": {
+ "LABEL": "Název",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Název",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Upravit",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Poslat"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Vymazat"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Odebrat"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Nahrávání...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Zrušit",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/inbox.json b/app/javascript/dashboard/i18n/locale/cs/inbox.json
index 028f74569..1160a5c86 100644
--- a/app/javascript/dashboard/i18n/locale/cs/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/cs/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Odloženo do zítřka",
"SNOOZED_UNTIL_NEXT_WEEK": "Odloženo do příštího týdne"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Zpět"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Žádný obsah k dispozici",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
index 8eb79b1ab..2f43b809f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Schránky",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "K tomuto účtu nejsou připojeny žádné doručené schránky."
},
- "CREATE_FLOW": [
- {
- "title": "Vybrat kanál",
- "route": "settings_inbox_new",
- "body": "Vyberte si poskytovatele, který chcete integrovat do Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Vybrat kanál",
+ "BODY": "Vyberte si poskytovatele, který chcete integrovat do Chatwoot."
},
- {
- "title": "Vytvořit doručenou poštu",
- "route": "settings_inboxes_page_channel",
- "body": "Ověřte si svůj účet a vytvořte si doručenou poštu."
+ "INBOX": {
+ "TITLE": "Vytvořit doručenou poštu",
+ "BODY": "Ověřte si svůj účet a vytvořte si doručenou poštu."
},
- {
- "title": "Přidat agenty",
- "route": "settings_inboxes_add_agents",
- "body": "Přidat agenty do vytvořené schránky."
+ "AGENT": {
+ "TITLE": "Přidat agenty",
+ "BODY": "Přidat agenty do vytvořené schránky."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Vše je nastaveno!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Vše je nastaveno!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Název schránky",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Vyberte stránku ze seznamu",
"INBOX_NAME": "Název schránky",
"ADD_NAME": "Zadejte název schránky",
- "PICK_NAME": "Vyberte název schránky",
- "PICK_A_VALUE": "Vyberte hodnotu"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL webového háčku",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Zadejte prosím platnou URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Doména webových stránek",
"PLACEHOLDER": "Zadejte doménu webu (např. acme.com)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Toto pole je povinné"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Toto pole je povinné"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Název schránky",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefonní číslo",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID účtu",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "URL webového háčku",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "URL webového háčku"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Název kanálu",
"PLACEHOLDER": "Zadejte název kanálu",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klikněte zde",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mailová adresa",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenti",
"DESC": "Zde můžete přidat agenty ke správě nově vytvořené schránky. Pouze tito vybraní agenti budou mít přístup do vaší schránky. Agenty, které nejsou součástí této schránky, nebudou moci při přihlášení vidět zprávy v této schránce ani na ně reagovat.
PS: Jako správce, pokud potřebujete přístup ke všem schránkám, byste se měli přidat jako agent do všech schránek, které vytváříte.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Ověřování pomocí Facebooku...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Něco se pokazilo, prosím obnovte stránku...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Vezmi mě tam",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "Úspěšně jste dokončili vytvoření webového kanálu. Zkopírujte kód zobrazený níže a vložte jej na vaše webové stránky. Když zákazník příště použije živý chat, konverzace se automaticky objeví ve vaší doručené poště."
+ "WEBSITE_SUCCESS": "Úspěšně jste dokončili vytvoření webového kanálu. Zkopírujte kód zobrazený níže a vložte jej na vaše webové stránky. Když zákazník příště použije živý chat, konverzace se automaticky objeví ve vaší doručené poště.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Znovu autorizovat",
"VIEW": "Zobrazit",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Zakázáno"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Povoleno",
- "DISABLED": "Zakázáno"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Formulář před chatem",
"BUSINESS_HOURS": "Pracovní doba",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Nastavení",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger skript",
"MESSENGER_SUB_HEAD": "Umístěte toto tlačítko dovnitř vašeho tělesného štítku",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenti",
"INBOX_AGENTS_SUB_TEXT": "Přidat nebo odebrat agenty z této složky doručené pošty",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Nastavení doručené pošty",
"INBOX_UPDATE_SUB_TEXT": "Aktualizujte nastavení doručené pošty",
"AUTO_ASSIGNMENT_SUB_TEXT": "Povolit nebo zakázat automatické přiřazování nových konverzací agentům přidaným do této schránky.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Aktualizovat",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Nic",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Zrušit",
+ "CONFIRM_DELETE": "Vymazat",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Znovu autorizovat",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Den",
+ "AVAILABILITY": "Dostupnost",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Nedostupný",
- "HOURS": "hodiny",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Vyberte"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Heslo",
"PLACE_HOLDER": "Heslo"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Do dne"
},
"WIDGET_COLOR_LABEL": "Barva widgetu",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Napiště nám",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Napiště nám"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Většinou odpovíme během pár minut",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mailová adresa",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/index.js b/app/javascript/dashboard/i18n/locale/cs/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/cs/index.js
+++ b/app/javascript/dashboard/i18n/locale/cs/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
index 3d62d1798..50099d606 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Povoleno",
"DISABLED": "Zakázáno"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Akce",
"DELETE": {
"BUTTON_TEXT": "Vymazat"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Zrušit"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/integrations.json b/app/javascript/dashboard/i18n/locale/cs/integrations.json
index b53f61b4b..f26b6d5bc 100644
--- a/app/javascript/dashboard/i18n/locale/cs/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/cs/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Zrušit",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrace",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Zrušit",
"DESC": "Události webhooku vám poskytují reálné informace o tom, co se děje ve vašem Chatwoot účtu. Zadejte prosím platnou URL pro nastavení hovoru.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "URL webového háčku",
- "PLACEHOLDER": "Příklad: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Zadejte prosím platnou URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Pro tento účet nejsou nakonfigurovány žádné webové háčky.",
"TITLE": "Spravovat webové háčky",
- "TABLE_HEADER": [
- "Koncový bod webhooku",
- "Akce"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Koncový bod webhooku",
+ "ACTIONS": "Akce"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Upravit",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Potvrdit odstranění",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Ano, odstranit ",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Vymazat",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Název",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Akce"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Create",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Odkaz",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Vybrat tým",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Stav",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Create",
+ "CANCEL": "Zrušit",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Stav",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Štítky",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Zrušit"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Zjistit více",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asistenti",
+ "SWITCH_ASSISTANT": "Přepínání mezi asistenty",
+ "NEW_ASSISTANT": "Vytvořit asistenta",
+ "EMPTY_LIST": "Nebyli nalezeni žádní asistenti, prosím vytvořte si jednoho pro začátek"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Začněte s Copilotem",
+ "KICK_OFF_MESSAGE": "Potřebujete rychlý přehled, chcete zkontrolovat předchozí rozhovory, nebo vytvořit lepší odpověď? Copilot je tu, aby to zrychlil.",
+ "SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "Při generování odpovědi došlo k chybě. Zkuste to prosím znovu.",
+ "LOADER": "Captain přemýšlí",
+ "YOU": "Vy",
+ "USE": "Použít toto",
+ "RESET": "Resetovat",
+ "SHOW_STEPS": "Zobrazit kroky",
+ "SELECT_ASSISTANT": "Vybrat asistenta",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Shrň tuto konverzaci",
+ "CONTENT": "Shrň klíčové body diskutované mezi zákazníkem a podpůrným agentem, včetně obav zákazníka, otázek a řešení nebo odpovědí poskytnutých agentem podpory"
+ },
+ "SUGGEST": {
+ "LABEL": "Navrhni odpověď",
+ "CONTENT": "Analyzuj dotaz zákazníka a vytvoř odpověď, která efektivně řeší jeho obavy nebo otázky. Zajisti, aby byla odpověď jasná, stručná a poskytovala užitečné informace."
+ },
+ "RATE": {
+ "LABEL": "Ohodnoť tuto konverzaci",
+ "CONTENT": "Prohlédni konverzaci a zhodnoť, jak dobře odpovídá potřebám zákazníka. Sdílej hodnocení od 1 do 5 na základě tónu, srozumitelnosti a efektivity."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Konverzace s vysokou prioritou",
+ "CONTENT": "Dej mi shrnutí všech otevřených konverzací s vysokou prioritou. Uveď ID konverzace, jméno zákazníka (pokud je k dispozici), obsah poslední zprávy a přiděleného agenta. Pokud je relevantní, seskup je podle stavu."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Seznam kontaktů",
+ "CONTENT": "Ukázat seznam 10 nejlepších kontaktů. Uveď jméno, email nebo telefonní číslo (pokud je k dispozici), čas posledního přístupu, štítky (pokud jsou)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vy",
+ "ASSISTANT": "Asistent",
+ "MESSAGE_PLACEHOLDER": "Zde začněte psát...",
+ "HEADER": "Hřiště",
+ "DESCRIPTION": "Použijte toto hřiště pro odesílání zpráv vašemu asistentovi a ověřte, zda odpovídá přesně, rychle a v očekávaném tónu.",
+ "CREDIT_NOTE": "Zprávy odeslané zde se budou počítat do vašich kreditů Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgradujte pro používání Captain AI",
+ "AVAILABLE_ON": "Captain není dostupný v bezplatném plánu.",
+ "UPGRADE_PROMPT": "Upgradujte svůj plán, abyste získali přístup k našim asistentům, copilotu a dalším funkcím.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI je dostupný pouze v podnicích plánech.",
+ "UPGRADE_PROMPT": "Upgradujte svůj plán, abyste získali přístup k našim asistentům, copilotu a dalším funkcím.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Vyčerpali jste více než 80 % svého limitu odpovědí. Pro pokračování v používání Captain AI upgradujte.",
+ "DOCUMENTS": "Limit dokumentů byl dosažen. Pro pokračování v používání Captain AI upgradujte."
+ },
+ "FORM": {
+ "CANCEL": "Zrušit",
+ "CREATE": "Create",
+ "EDIT": "Aktualizovat"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Nastavení",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Vymazat"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Zrušit",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Vymazat"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Zrušit",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Vymazat"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Zrušit"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Zrušit",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Vymazat",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nic",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Heslo",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Vymazat",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Vše"
+ },
+ "STATUS": {
+ "TITLE": "Stav",
+ "PENDING": "Čekající",
+ "APPROVED": "Approved",
+ "ALL": "Vše"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Upravit",
+ "DELETE_RESPONSE": "Vymazat"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
index d2c9d417e..5814c0f1a 100644
--- a/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/cs/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Štítky",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Název",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Akce"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/cs/login.json b/app/javascript/dashboard/i18n/locale/cs/login.json
index f63d825ab..65c42b406 100644
--- a/app/javascript/dashboard/i18n/locale/cs/login.json
+++ b/app/javascript/dashboard/i18n/locale/cs/login.json
@@ -3,7 +3,7 @@
"TITLE": "Přihlásit se do Chatwoot",
"EMAIL": {
"LABEL": "E-mailová adresa",
- "PLACEHOLDER": "E-mail např: někdo@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Zadejte prosím platnou e-mailovou adresu"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Zapomněli jste heslo?",
"CREATE_NEW_ACCOUNT": "Vytvořit nový účet",
- "SUBMIT": "Přihlásit se"
+ "SUBMIT": "Přihlásit se",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/macros.json b/app/javascript/dashboard/i18n/locale/cs/macros.json
index 4e31e1dfa..93ab46439 100644
--- a/app/javascript/dashboard/i18n/locale/cs/macros.json
+++ b/app/javascript/dashboard/i18n/locale/cs/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Název",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Název",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Akce"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Hodnota je povinná",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nic",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/mfa.json b/app/javascript/dashboard/i18n/locale/cs/mfa.json
new file mode 100644
index 000000000..654664e43
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Povoleno",
+ "DISABLED": "Zakázáno",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopírovat",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Zrušit",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Stáhnout",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Heslo",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Zrušit",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Zrušit",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/onboarding.json b/app/javascript/dashboard/i18n/locale/cs/onboarding.json
new file mode 100644
index 000000000..4f971092c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mailová adresa",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Vyberte časové pásmo",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Ukládání...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/report.json b/app/javascript/dashboard/i18n/locale/cs/report.json
index a97071ef7..62369df5e 100644
--- a/app/javascript/dashboard/i18n/locale/cs/report.json
+++ b/app/javascript/dashboard/i18n/locale/cs/report.json
@@ -3,7 +3,7 @@
"HEADER": "Konverzace",
"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_AGENT_REPORTS": "Stáhnout reporty agentů",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Čas rozlišení",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Počet rozlišení",
"DESC": "( celkem)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Počet rozlišení",
+ "DESC": "( celkem)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( celkem)"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Posledních 7 dní",
+ "LAST_14_DAYS": "Posledních 14 dní",
"LAST_30_DAYS": "Posledních 30 dní",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Poslední 3 měsíce",
"LAST_6_MONTHS": "Posledních 6 měsíců",
"LAST_YEAR": "Poslední rok",
"CUSTOM_DATE_RANGE": "Vlastní časové rozmezí"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Posledních 7 dní"
- },
- {
- "id": 1,
- "name": "Posledních 30 dní"
- },
- {
- "id": 2,
- "name": "Poslední 3 měsíce"
- },
- {
- "id": 3,
- "name": "Posledních 6 měsíců"
- },
- {
- "id": 4,
- "name": "Poslední rok"
- },
- {
- "id": 5,
- "name": "Vlastní časové rozmezí"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Použít",
"PLACEHOLDER": "Zvolte časové rozmezí"
@@ -130,14 +116,28 @@
"groupBy": "Měsíc"
}
],
- "BUSINESS_HOURS": "Pracovní doba"
+ "BUSINESS_HOURS": "Pracovní doba",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Žádné výsledky"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Stáhnout reporty agentů",
"FILTER_DROPDOWN_LABEL": "Vybrat agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hledat agenty"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Čas rozlišení",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Počet rozlišení",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Čas rozlišení",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Počet rozlišení",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Čas rozlišení",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Počet rozlišení",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Hledat týmy"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konverzace",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Čas rozlišení",
"DESC": "(Průměrný)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Počet rozlišení",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Hledat agenty",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Hledat týmy",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Hodnocení"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Hodnocení",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Zrušit",
+ "SAVING": "Ukládání...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Otevřít",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Stav"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Otevřít",
"UNATTENDED": "Unattended",
"STATUS": "Stav"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Žádné výsledky",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Jméno agenta",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Počet rozlišení",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/search.json b/app/javascript/dashboard/i18n/locale/cs/search.json
index a4de7a921..0d90f9ba0 100644
--- a/app/javascript/dashboard/i18n/locale/cs/search.json
+++ b/app/javascript/dashboard/i18n/locale/cs/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Vše",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "od",
- "EMAIL": "e-mailová adresa"
+ "FROM": "Od",
+ "EMAIL": "E-mailová adresa",
+ "EMAIL_SUBJECT": "Předmět",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Posledních 7 dní",
+ "LAST_30_DAYS": "Posledních 30 dní",
+ "LAST_60_DAYS": "Posledních 60 dní",
+ "LAST_90_DAYS": "Posledních 90 dní",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Použít",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agenti",
+ "CONTACTS": "Kontakty",
+ "INBOXES": "Schránky",
+ "NO_AGENTS": "Nenalezeni žádní agenti",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/settings.json b/app/javascript/dashboard/i18n/locale/cs/settings.json
index f76442ea6..6411bf614 100644
--- a/app/javascript/dashboard/i18n/locale/cs/settings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
"AFTER_EMAIL_CHANGED": "Váš profil byl úspěšně aktualizován, přihlaste se prosím znovu, protože se vaše přihlašovací údaje změnily",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profilový obrázek",
"ERROR": "Opravte chyby formuláře",
"REMOVE_IMAGE": "Odebrat",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,45 @@
"NOTE": "Aktualizace hesla by obnovila vaše přihlašovací údaje na více zařízeních.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Přístupový token",
- "NOTE": "Tento token může být použit při vytváření integrace založené na API"
+ "NOTE": "Tento token může být použit při vytváření integrace založené na API",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Nic",
+ "MINE": "Assigned",
+ "ALL": "Vše",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "Nic",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-mailová oznámení",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Odeslat oznámení e-mailem při vytváření nové konverzace",
"CONVERSATION_MENTION": "Odeslat oznámení e-mailem, pokud jste zmíněni v konverzaci",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Odeslat oznámení e-mailem, když je nová zpráva vytvořena v přiřazené konverzaci",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-mailová adresa",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Vaše předvolby oznámení byly úspěšně aktualizovány",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Odeslat push oznámení, když je nová zpráva vytvořena v přiřazené konverzaci",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Povolili jste push pro tento prohlížeč.",
- "REQUEST_PUSH": "Povolit push oznámení"
+ "REQUEST_PUSH": "Povolit push oznámení",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profil obrázek"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Dostupnost",
- "STATUSES_LIST": [
- "Online",
- "Zaneprázdněn",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Zaneprázdněn",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Změnit",
- "CHANGE_ACCOUNTS": "Přepnout účet",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Vyberte účet z následujícího seznamu",
- "PROFILE_SETTINGS": "Nastavení profilu",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Odhlásit se"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dní zbývá zkušební verze.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Stáhnout",
"UPLOADING": "Nahrávání...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Odeslat"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Ověřování...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Konverzace",
- "INBOX": "Inbox",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Zmínky",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Zprávy",
"SETTINGS": "Nastavení",
"CONTACTS": "Kontakty",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Schránky",
+ "CAPTAIN_SETTINGS": "Nastavení",
"HOME": "Domů",
"AGENTS": "Agenti",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Konverzace",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampaně",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agenti",
"REPORTS_LABEL": "Štítky",
"REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Nastavte svou dostupnost",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Nastavení",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Nastavení"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkce",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Napiště nám"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Zrušit",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Kód byl úspěšně zkopírován do schránky",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Zrušit"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ano",
+ "NO": "Ne"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Název společnosti",
"PLACEHOLDER": "Wayne podniky"
},
- "SUBMIT": "Odeslat"
+ "SUBMIT": "Odeslat",
+ "CANCEL": "Zrušit"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Upravit"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Zrušit"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Stav:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Přidat"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Upravit"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Zrušit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Přidat"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Vymazat",
+ "CANCEL_BUTTON_LABEL": "Zrušit"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/signup.json b/app/javascript/dashboard/i18n/locale/cs/signup.json
index f05140e49..a091a8d00 100644
--- a/app/javascript/dashboard/i18n/locale/cs/signup.json
+++ b/app/javascript/dashboard/i18n/locale/cs/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrovat se",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Pracovní e-mail",
- "PLACEHOLDER": "Zadejte svou pracovní e-mailovou adresu. např.: jan@novak.spolecnost",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Heslo",
"PLACEHOLDER": "Heslo",
"ERROR": "Heslo je příliš krátké",
- "IS_INVALID_PASSWORD": "Heslo by mělo obsahovat alespoň jedno velké písmeno, jedno malé písmeno, jedno číslo a jeden speciální znak"
+ "IS_INVALID_PASSWORD": "Heslo by mělo obsahovat alespoň jedno velké písmeno, jedno malé písmeno, jedno číslo a jeden speciální znak",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Potvrzení hesla",
"PLACEHOLDER": "Potvrzení hesla",
- "ERROR": "Heslo se neshoduje"
+ "ERROR": "Hesla se neshodují."
},
"API": {
- "SUCCESS_MESSAGE": "Registrace byla úspěšná",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Nelze se připojit k Woot serveru, opakujte akci později"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Máte již účet?"
+ "HAVE_AN_ACCOUNT": "Máte již účet?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/sla.json b/app/javascript/dashboard/i18n/locale/cs/sla.json
index e9bff62ba..9b58ac9f5 100644
--- a/app/javascript/dashboard/i18n/locale/cs/sla.json
+++ b/app/javascript/dashboard/i18n/locale/cs/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Neexistují žádné položky odpovídající tomuto dotazu",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Název",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Pracovní doba"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Došlo k chybě, zkuste to prosím znovu"
+ },
+ "CONFIRM": {
+ "TITLE": "Potvrdit odstranění",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ano, odstranit ",
+ "NO": "Ne, zachovat "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Čas první odpovědi",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/snooze.json b/app/javascript/dashboard/i18n/locale/cs/snooze.json
new file mode 100644
index 000000000..7cdcc5866
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hodiny",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "den",
+ "WEEKS": "weeks",
+ "MONTH": "týden",
+ "MONTHS": "months",
+ "YEAR": "měsíc",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "zítra",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "příští týden",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "den",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json b/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
index ca5aa7b61..60cabe29f 100644
--- a/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/cs/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Týmy",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Hledat týmy...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "Nic"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Přidat agenty",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Vše je nastaveno!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Přidat agenty",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "Vše je nastaveno!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Vše je nastaveno!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Vše je nastaveno!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-MAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mailová adresa",
"BUTTON_TEXT": "Přidat agenty",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Přidat agenty",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Vymazat ",
diff --git a/app/javascript/dashboard/i18n/locale/cs/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/cs/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/cs/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/cs/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/cs/yearInReview.json b/app/javascript/dashboard/i18n/locale/cs/yearInReview.json
new file mode 100644
index 000000000..ba473a381
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/cs/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Zavřít",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "konverzace",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Stáhnout",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/advancedFilters.json b/app/javascript/dashboard/i18n/locale/da/advancedFilters.json
index de7ee13c4..d6769c8df 100644
--- a/app/javascript/dashboard/i18n/locale/da/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/da/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "OG",
"OR": "ELLER"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Lig med",
"not_equal_to": "Ikke lig med",
- "contains": "Indeholder",
"does_not_contain": "Indeholder ikke",
"is_present": "Er til stede",
"is_not_present": "Er ikke til stede",
"is_greater_than": "Er større end",
"is_less_than": "Er mindre end",
"days_before": "Er x dage før",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Lig med",
+ "notEqualTo": "Ikke lig med",
+ "contains": "Indeholder",
+ "doesNotContain": "Indeholder ikke",
+ "isPresent": "Er til stede",
+ "isNotPresent": "Er ikke til stede",
+ "isGreaterThan": "Er større end",
+ "isLessThan": "Er mindre end",
+ "daysBefore": "Er x dage før",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Sandt",
@@ -54,6 +64,12 @@
"CREATED_AT": "Oprettet den",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Værdi er påkrævet",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/da/agentBots.json b/app/javascript/dashboard/i18n/locale/da/agentBots.json
index 25a445171..92eddba01 100644
--- a/app/javascript/dashboard/i18n/locale/da/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/da/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Handlinger"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
index 549ae64ed..011a97816 100644
--- a/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agenter",
"HEADER_BTN_TXT": "Tilføj Agent",
"LOADING": "Henter Agent Liste",
- "SIDEBAR_TXT": "Agenter
En Agent er medlemmer af dit kundesupportteam.
Agenter vil være i stand til at se og besvare beskeder fra dine brugere. Listen viser alle agenter i øjeblikket på din konto.
Klik på Tilføj agent for at tilføje en ny agent. Agent du tilføjer, vil modtage en e-mail med et bekræftelseslink for at aktivere deres konto, hvorefter de kan få adgang til Chatwoot og svare på beskeder.
Adgang til Chatwoot's funktioner er baseret på følgende roller.
Agent - Agenter med denne rolle kan kun få adgang til indbakker, rapporter og samtaler. De kan tildele samtaler til andre agenter eller sig selv og løse samtaler.
Administrator - Administrator vil have adgang til alle Chatwoot-funktioner aktiveret for din konto, herunder indstillinger sammen med alle normale agenters privilegier.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Der er ingen agenter tilknyttet denne konto",
"TITLE": "Administrer agenter i dit team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Handlinger",
"VERIFIED": "Verificeret",
- "VERIFICATION_PENDING": "Verifikation Afventer"
+ "VERIFICATION_PENDING": "Verifikation Afventer",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Tilføj agent til dit team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
}
},
+ "SEARCH_PLACEHOLDER": "Søg agenter...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Ingen resultater fundet."
},
@@ -103,6 +108,9 @@
"AGENT": "Vælg agent",
"TEAM": "Vælg hold"
},
+ "LIST": {
+ "NONE": "Ingen"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Ingen agenter fundet",
diff --git a/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
index 0d14d7476..80ba75957 100644
--- a/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Brugerdefinerede Egenskaber",
"HEADER_BTN_TXT": "Tilføj Tilpasset Attribut",
"LOADING": "Henter brugerdefinerede attributter",
- "SIDEBAR_TXT": "Brugerdefinerede attributter
En brugerdefineret attribut sporer fakta om dine kontakter/samtale — såsom abonnementet, eller når de bestilte det første element osv.
For at oprette en brugerdefineret attribut, klik blot påTilføj brugerdefineret attribut. Du kan også redigere eller slette en eksisterende brugerdefineret attribut ved at klikke på Rediger eller Slet knappen.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Søg attributter...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Samtale",
+ "CONTACT": "Kontakt",
+ "COMPANY": "Virksomhed"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Tekst",
+ "NUMBER": "Nummer",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "Liste",
+ "CHECKBOX": "Afkrydsningsfelt"
+ },
"ADD": {
"TITLE": "Tilføj Tilpasset Attribut",
"SUBMIT": "Opret",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Kunne ikke slette den brugerdefinerede attribut. Prøv igen."
},
"CONFIRM": {
- "TITLE": "Er du sikker på du vil slette - %{attributeName}",
+ "TITLE": "Er du sikker på du vil slette - {attributeName}",
"PLACE_HOLDER": "Skriv venligst {attributeName} for at bekræfte",
"MESSAGE": "Sletning vil fjerne den brugerdefinerede attribut",
"YES": "Slet ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Brugerdefinerede Egenskaber",
"CONVERSATION": "Samtale",
- "CONTACT": "Kontakt"
+ "CONTACT": "Kontakt",
+ "COMPANY": "Virksomhed"
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Type",
- "Nøgle"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "TYPE": "Type",
+ "KEY": "Nøgle"
+ },
"BUTTONS": {
"EDIT": "Rediger",
"DELETE": "Slet"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/auditLogs.json b/app/javascript/dashboard/i18n/locale/da/auditLogs.json
index 3642b2a6f..fdac019c5 100644
--- a/app/javascript/dashboard/i18n/locale/da/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/da/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Ip Adresse"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "Ip Adresse"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 97fd5095e..68834d1ed 100644
--- a/app/javascript/dashboard/i18n/locale/da/automation.json
+++ b/app/javascript/dashboard/i18n/locale/da/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatiseringer",
- "HEADER_BTN_TXT": "Tilføj Automatiseringsregel",
+ "HEADER": "Automatisering",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Henter automatiseringsregler",
- "SIDEBAR_TXT": "Automatiseringsregler
Automatisering kan erstatte og automatisere eksisterende processer, der kræver manuel indsats. Du kan gøre mange ting med automatisering, herunder tilføje etiketter og tildele samtale til den bedste agent. Så holdet fokuserer på, hvad de gør bedst, og bruger mere lidt tid på manuelle opgaver.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Tilføj Automatiseringsregel",
"SUBMIT": "Opret",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Aktiv",
- "Oprettet den"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "ACTIVE": "Aktiv",
+ "CREATED_ON": "Oprettet den",
+ "ACTIONS": "Handlinger"
+ },
"404": "Ingen automatiseringsregler fundet"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Du skal have mindst én handling for at gemme",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Indtast din besked her",
- "TEAM_DROPDOWN_PLACEHOLDER": "Vælg teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Vælg teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Aktivér Automatiseringsregel",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploader...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Mislykkedes"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Værdi er påkrævet",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Ingen",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Samtale Oprettet",
+ "CONVERSATION_UPDATED": "Samtale Opdateret",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Åbn samtale",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ingen",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privat Note",
+ "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",
+ "COMPANY_NAME": "Virksomhed",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Etiketter"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/bulkActions.json b/app/javascript/dashboard/i18n/locale/da/bulkActions.json
index 4edc6a89b..fdf3ff597 100644
--- a/app/javascript/dashboard/i18n/locale/da/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/da/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} samtaler valgt",
- "AGENT_SELECT_LABEL": "Vælg agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Gå tilbage",
- "ASSIGN_LABEL": "Tildel",
+ "CONVERSATIONS_SELECTED": "{conversationCount} samtaler valgt",
+ "NONE": "Ingen",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ja",
+ "CANCEL": "Annuller",
+ "SEARCH_INPUT_PLACEHOLDER": "Søg",
"ASSIGN_AGENT_TOOLTIP": "Tildel agent",
"ASSIGN_TEAM_TOOLTIP": "Tildel team",
"ASSIGN_SUCCESFUL": "Samtaler tildelt.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Samtaler løst med succes.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Samtaler synlig på denne side er kun valgt.",
- "AGENT_LIST_LOADING": "Indlæser agenter",
"UPDATE": {
"CHANGE_STATUS": "Skift status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Udsæt til næste svar.",
+ "SNOOZE_UNTIL": "Udsæt",
"UPDATE_SUCCESFUL": "Samtalens status blev opdateret.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Ingen etiketter fundet for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Tildel valgte etiketter",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etiketter tildelt med succes.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Vælg hold",
"NONE": "Ingen",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Tildel det valgte team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/campaign.json b/app/javascript/dashboard/i18n/locale/da/campaign.json
index d23f592e6..bda82c798 100644
--- a/app/javascript/dashboard/i18n/locale/da/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/da/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampagner",
- "SIDEBAR_TXT": "Proaktive beskeder giver kunden mulighed for at sende udgående beskeder til deres kontakter, hvilket ville udløse flere samtaler. Klik på Tilføj kampagne for at oprette en ny kampagne. Du kan også redigere eller slette en eksisterende kampagne ved at klikke på Rediger eller Slet knappen.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Opret en kampagne fra",
- "ONGOING": "Opret en igangværende kampagne"
- },
- "ADD": {
- "TITLE": "Opret en kampagne",
- "DESC": "Proaktive beskeder giver kunden mulighed for at sende udgående beskeder til deres kontakter, hvilket ville udløse flere samtaler.",
- "CANCEL_BUTTON_TEXT": "Annuller",
- "CREATE_BUTTON_TEXT": "Opret",
- "FORM": {
- "TITLE": {
- "LABEL": "Titel",
- "PLACEHOLDER": "Indtast titlen på kampagnen",
- "ERROR": "Titel er påkrævet"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Aktiveret",
+ "DISABLED": "Deaktiveret"
},
- "SCHEDULED_AT": {
- "LABEL": "Planlagt tid",
- "PLACEHOLDER": "Vælg venligst tid",
- "CONFIRM": "Bekræft",
- "ERROR": "Planlagt tid er påkrævet"
- },
- "AUDIENCE": {
- "LABEL": "Målgruppe",
- "PLACEHOLDER": "Vælg kunde etiketter",
- "ERROR": "Målgruppe er påkrævet"
- },
- "INBOX": {
- "LABEL": "Vælg Indbakke",
- "PLACEHOLDER": "Vælg Indbakke",
- "ERROR": "Indbakke er påkrævet"
- },
- "MESSAGE": {
- "LABEL": "Besked",
- "PLACEHOLDER": "Indtast venligst meddelelsen af kampagnen",
- "ERROR": "Beskeden er påkrævet"
- },
- "SENT_BY": {
- "LABEL": "Sendt af",
- "PLACEHOLDER": "Vælg venligst indholdet af kampagnen",
- "ERROR": "Afsenderen er påkrævet"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Indtast venligst URL",
- "ERROR": "Angiv en gyldig URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Tid på side (sekunder)",
- "PLACEHOLDER": "Indtast venligst tid",
- "ERROR": "Tid på siden er påkrævet"
- },
- "ENABLED": "Aktiver kampagne",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Udløs kun i åbningstiden",
- "SUBMIT": "Tilføj Kampagne"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sendt af",
+ "BOT": "Bot",
+ "FROM": "fra",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampagne oprettet",
- "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Annuller",
+ "CREATE_BUTTON_TEXT": "Opret",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Indtast titlen på kampagnen",
+ "ERROR": "Titel er påkrævet"
+ },
+ "MESSAGE": {
+ "LABEL": "Besked",
+ "PLACEHOLDER": "Indtast venligst meddelelsen af kampagnen",
+ "ERROR": "Beskeden er påkrævet"
+ },
+ "INBOX": {
+ "LABEL": "Vælg Indbakke",
+ "PLACEHOLDER": "Vælg Indbakke",
+ "ERROR": "Indbakke er påkrævet"
+ },
+ "SENT_BY": {
+ "LABEL": "Sendt af",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Afsenderen er påkrævet"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Indtast venligst URL",
+ "ERROR": "Angiv en gyldig URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Tid på side (sekunder)",
+ "PLACEHOLDER": "Indtast venligst tid",
+ "ERROR": "Tid på siden er påkrævet"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Aktiver kampagne",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Udløs kun i åbningstiden"
+ },
+ "BUTTONS": {
+ "CREATE": "Opret",
+ "CANCEL": "Annuller"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Slet",
- "CONFIRM": {
- "TITLE": "Bekræft Sletning",
- "MESSAGE": "Er du sikker på du vil slette?",
- "YES": "Ja, Slet ",
- "NO": "Nej, Behold "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Afsluttet",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Annuller",
+ "CREATE_BUTTON_TEXT": "Opret",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Indtast titlen på kampagnen",
+ "ERROR": "Titel er påkrævet"
+ },
+ "MESSAGE": {
+ "LABEL": "Besked",
+ "PLACEHOLDER": "Indtast venligst meddelelsen af kampagnen",
+ "ERROR": "Beskeden er påkrævet"
+ },
+ "INBOX": {
+ "LABEL": "Vælg Indbakke",
+ "PLACEHOLDER": "Vælg Indbakke",
+ "ERROR": "Indbakke er påkrævet"
+ },
+ "AUDIENCE": {
+ "LABEL": "Målgruppe",
+ "PLACEHOLDER": "Vælg kunde etiketter",
+ "ERROR": "Målgruppe er påkrævet"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Planlagt tid",
+ "PLACEHOLDER": "Vælg venligst tid",
+ "ERROR": "Planlagt tid er påkrævet"
+ },
+ "BUTTONS": {
+ "CREATE": "Opret",
+ "CANCEL": "Annuller"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Afsluttet",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Annuller",
+ "CREATE_BUTTON_TEXT": "Opret",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Indtast titlen på kampagnen",
+ "ERROR": "Titel er påkrævet"
+ },
+ "INBOX": {
+ "LABEL": "Vælg Indbakke",
+ "PLACEHOLDER": "Vælg Indbakke",
+ "ERROR": "Indbakke er påkrævet"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Proces {templateName}",
+ "LANGUAGE": "Sprog",
+ "CATEGORY": "Kategori",
+ "VARIABLES_LABEL": "Variabler",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Målgruppe",
+ "PLACEHOLDER": "Vælg kunde etiketter",
+ "ERROR": "Målgruppe er påkrævet"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Planlagt tid",
+ "PLACEHOLDER": "Vælg venligst tid",
+ "ERROR": "Planlagt tid er påkrævet"
+ },
+ "BUTTONS": {
+ "CREATE": "Opret",
+ "CANCEL": "Annuller"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Er du sikker på du vil slette?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Slet",
"API": {
"SUCCESS_MESSAGE": "Kampagne slettet",
- "ERROR_MESSAGE": "Kunne ikke slette kampagnen. Prøv igen senere."
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen."
}
- },
- "EDIT": {
- "TITLE": "Rediger kampagne",
- "UPDATE_BUTTON_TEXT": "Opdater",
- "API": {
- "SUCCESS_MESSAGE": "Kampagne opdateret",
- "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Indlæser kampagner...",
- "404": "Der er ingen kampagner oprettet for denne indbakke.",
- "TABLE_HEADER": {
- "TITLE": "Titel",
- "MESSAGE": "Besked",
- "INBOX": "Indbakke",
- "STATUS": "Status",
- "SENDER": "Afsender",
- "URL": "URL",
- "SCHEDULED_AT": "Planlagt tid",
- "TIME_ON_PAGE": "Tid(sekunder)",
- "CREATED_AT": "Oprettet den"
- },
- "BUTTONS": {
- "ADD": "Tilføj",
- "EDIT": "Rediger",
- "DELETE": "Slet"
- },
- "STATUS": {
- "ENABLED": "Aktiveret",
- "DISABLED": "Deaktiveret",
- "COMPLETED": "Afsluttet",
- "ACTIVE": "Aktiv"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Kampagner",
- "404": "Der er ingen slukkede kampagner oprettet",
- "INBOXES_NOT_FOUND": "Opret venligst en sms-indbakke og begynd at tilføje kampagner"
- },
- "ONGOING": {
- "HEADER": "Igangværende kampagner",
- "404": "Der er ingen igangværende kampagner oprettet",
- "INBOXES_NOT_FOUND": "Opret venligst en hjemmeside indbakke og begynd at tilføje kampagner"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
index 81e0a48c7..4b0185cb1 100644
--- a/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Standardsvar Svar",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Der er ingen tilgængelige standardsvar på denne konto.",
"TITLE": "Administrer standardsvar",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Indhold",
- "Handlinger"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Indhold",
+ "ACTIONS": "Handlinger"
+ }
},
"ADD": {
"TITLE": "Add canned response",
@@ -34,7 +38,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Canned response added successfully.",
- "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot server, Prøv igen senere."
}
},
"EDIT": {
@@ -56,14 +60,14 @@
"BUTTON_TEXT": "Rediger",
"API": {
"SUCCESS_MESSAGE": "Canned response is updated successfully.",
- "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere."
}
},
"DELETE": {
"BUTTON_TEXT": "Slet",
"API": {
"SUCCESS_MESSAGE": "Canned response deleted successfully.",
- "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere."
},
"CONFIRM": {
"TITLE": "Bekræft sletning",
diff --git a/app/javascript/dashboard/i18n/locale/da/chatlist.json b/app/javascript/dashboard/i18n/locale/da/chatlist.json
index 3647711dd..019b28f14 100644
--- a/app/javascript/dashboard/i18n/locale/da/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/da/chatlist.json
@@ -6,9 +6,10 @@
"LIST": {
"404": "Der er ingen aktive samtaler i denne gruppe."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Samtaler",
"MENTION_HEADING": "Omtaler",
- "UNATTENDED_HEADING": "Unattet",
+ "UNATTENDED_HEADING": "Ubehandlet",
"SEARCH": {
"INPUT": "Søg efter Mennesker, Chats, Gemte svar .."
},
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Lokation"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "har delt en URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Intet tilgængeligt indhold",
"HIDE_QUOTED_TEXT": "Skjul Citeret Tekst",
"SHOW_QUOTED_TEXT": "Vis Citeret Tekst",
- "MESSAGE_READ": "Læst"
+ "MESSAGE_READ": "Læst",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/companies.json b/app/javascript/dashboard/i18n/locale/da/companies.json
new file mode 100644
index 000000000..1c0430b6d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sorter efter",
+ "OPTIONS": {
+ "NAME": "Navn",
+ "DOMAIN": "Domæne",
+ "CREATED_AT": "Oprettet den",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kontakter",
+ "HISTORY": "History",
+ "NOTES": "Noter"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Søg attributter...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Indlæser kontakter...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Virksomhed",
+ "CONTACT_LABEL": "Kontakt",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Annuller"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Navn",
+ "DOMAIN": "Domæne"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/components.json b/app/javascript/dashboard/i18n/locale/da/components.json
new file mode 100644
index 000000000..d42be12a5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Ingen resultater fundet.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Ingen resultater fundet.",
+ "SEARCHING": "Søger..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Annuller",
+ "CONFIRM": "Bekræft"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Søg land",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Forfatteren er ikke tilgængelig"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Lær mere",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/contact.json b/app/javascript/dashboard/i18n/locale/da/contact.json
index 53abd01a0..0423dfac1 100644
--- a/app/javascript/dashboard/i18n/locale/da/contact.json
+++ b/app/javascript/dashboard/i18n/locale/da/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Ip Adresse",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "Ny besked",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Der er ingen tidligere samtaler tilknyttet denne kontakt.",
"TITLE": "Tidligere Samtaler"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Brugerdefinerede Egenskaber",
"CONTACT_LABELS": "Kontakt Labels",
- "PREVIOUS_CONVERSATIONS": "Tidligere Samtaler"
+ "PREVIOUS_CONVERSATIONS": "Tidligere Samtaler",
+ "NO_RECORDS_FOUND": "Ingen attributter fundet"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Rediger Kontakt",
"DESC": "Rediger kontaktoplysninger"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Ny Kontakt",
- "TITLE": "Opret ny kontakt",
- "DESC": "Tilføj grundlæggende oplysninger om kontakten."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importér",
- "TITLE": "Importér Kontakter",
- "DESC": "Importér kontakter via en CSV-fil.",
- "DOWNLOAD_LABEL": "Download en prøve csv.",
- "FORM": {
- "LABEL": "CSV Fil",
- "SUBMIT": "Importer",
- "CANCEL": "Annuller"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Bekræft Sletning",
- "MESSAGE": "Er du sikker på at slette denne note?",
- "YES": "Ja, Slet",
- "NO": "Nej, behold det"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Slet Kontakt",
"TITLE": "Slet kontakt",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontakter",
- "FIELDS": "Kontakt felter",
- "SEARCH_BUTTON": "Søg",
- "SEARCH_INPUT_PLACEHOLDER": "Søg efter kontakter",
- "FILTER_CONTACTS": "Filtrer",
- "FILTER_CONTACTS_SAVE": "Gem filter",
- "FILTER_CONTACTS_DELETE": "Slet filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Indlæser kontakter...",
- "404": "Ingen kontakter matcher din søgning 🔍",
- "NO_CONTACTS": "Der er ingen tilgængelige kontakter",
"TABLE_HEADER": {
- "NAME": "Navn",
- "PHONE_NUMBER": "Telefonnummer",
- "CONVERSATIONS": "Samtaler",
- "LAST_ACTIVITY": "Sidste Aktivitet",
- "CREATED_AT": "Oprettet Den",
- "COUNTRY": "Land",
- "CITY": "By",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Virksomhed",
- "EMAIL_ADDRESS": "E-Mail Adresse"
- },
- "VIEW_DETAILS": "Se detaljer"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontakter",
- "LOADING": "Indlæser kontaktprofil..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Tilføj",
- "TITLE": "Shift + Enter for at oprette en opgave"
- },
- "FOOTER": {
- "DUE_DATE": "Forfaldsdato",
- "LABEL_TITLE": "Angiv type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Henter noter...",
- "NOT_AVAILABLE": "Der er ingen noter oprettet til denne kontakt",
- "HEADER": {
- "TITLE": "Noter"
- },
- "LIST": {
- "LABEL": "tilføjede en note"
- },
- "ADD": {
- "BUTTON": "Tilføj",
- "PLACEHOLDER": "Tilføj en note",
- "TITLE": "Skift + Enter for at oprette en note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Slet note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Aktiviteter"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "noter",
- "PILL_BUTTON_EVENTS": "begivenheder",
- "PILL_BUTTON_CONVO": "samtaler"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Tilføj attributter",
"BUTTON": "Tilføj brugerdefineret attribut",
- "NOT_AVAILABLE": "Der er ingen brugerdefinerede attributter tilgængelige for denne kontakt.",
"COPY_SUCCESSFUL": "Kopiering til udklipsholder lykkedes",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Kopier attribut",
"DELETE": "Slet egenskab",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Oversigt",
- "DELETE_WARNING": "Kontakt af %{primaryContactName} vil blive slettet.",
- "ATTRIBUTE_WARNING": "Kontaktoplysninger på %{primaryContactName} vil blive kopieret til %{parentContactName}."
+ "DELETE_WARNING": "Kontakt af {primaryContactName} vil blive slettet.",
+ "ATTRIBUTE_WARNING": "Kontaktoplysninger på {primaryContactName} vil blive kopieret til {parentContactName}."
},
"SEARCH": {
- "ERROR": "FEJL_MEDDELELSE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Sammenflet kontakter",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontakt flettet med succes",
"ERROR_MESSAGE": "Kunne ikke sammenflette kontakter, prøv igen!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakter",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Besked",
+ "SEND_MESSAGE": "Send besked",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakter"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Denne e-mail adresse er i brug for en anden kontakt.",
+ "PHONE_NUMBER_DUPLICATE": "Dette telefonnummer er i brug for en anden kontakt.",
+ "SUCCESS_MESSAGE": "Kontakt gemt med succes",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importér kontakter via en CSV-fil.",
+ "DOWNLOAD_LABEL": "Download en prøve csv.",
+ "LABEL": "CSV Fil:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Skift",
+ "CANCEL": "Annuller",
+ "IMPORT": "Importér",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
+ },
+ "SORT_BY": {
+ "LABEL": "Sorter efter",
+ "OPTIONS": {
+ "NAME": "Navn",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Telefonnummer",
+ "COMPANY": "Virksomhed",
+ "COUNTRY": "Land",
+ "CITY": "By",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Oprettet den"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Vil du gemme dette filter?",
+ "CONFIRM": "Gem filter",
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Bekræft Sletning",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ja, Slet",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Navn",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Telefonnummer",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Land",
+ "CITY": "By",
+ "COMPANY": "Virksomhed",
+ "CREATED_AT": "Oprettet den",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Refererer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Sandt",
+ "BLOCKED_FALSE": "Falsk",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Anvend filtre",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filtrer kontaktpersoner",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Se detaljer",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Rediger kontaktoplysninger",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Denne e-mail adresse er i brug for en anden kontakt."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Dette telefonnummer er i brug for en anden kontakt."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Indtast virksomhedens navn"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Slet kontakt",
+ "DELETE_DIALOG": {
+ "TITLE": "Bekræft Sletning",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ja, Slet",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakten blev slettet",
+ "ERROR_MESSAGE": "Kunne ikke slette kontakten. Prøv igen senere."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar slettet",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Noter",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Der er ingen tidligere samtaler tilknyttet denne kontakt"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Ja",
+ "NO": "Nej",
+ "TRIGGER": {
+ "SELECT": "Vælg værdi",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Gyldig værdi er påkrævet",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Ugyldig URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Ingen attributter fundet",
+ "API": {
+ "SUCCESS_MESSAGE": "Attributten er opdateret",
+ "DELETE_SUCCESS_MESSAGE": "Attributten blev slettet",
+ "UPDATE_ERROR": "Kan ikke opdatere attributten. Prøv igen senere",
+ "DELETE_ERROR": "Kan ikke slette attributten. Prøv igen senere"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Sammenflet kontakt",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primær kontakt",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Skal slettes",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Søg efter en kontakt",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Kontakt flettet med succes",
+ "ERROR_MESSAGE": "Kunne ikke sammenflette kontakter, prøv igen!",
+ "IS_SEARCHING": "Søger...",
+ "BUTTONS": {
+ "CANCEL": "Annuller",
+ "CONFIRM": "Sammenflet kontakt"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Tilføj en note",
+ "WROTE": "wrote",
+ "YOU": "Dig",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Ingen kontakter matcher din søgning 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Tildel Etiketter",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etiketter tildelt med succes.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Slet",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Slet kontakt"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Vis",
+ "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": "Til:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Emne :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Skriv din besked her..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variabler",
+ "BACK": "Gå tilbage",
+ "SEND_MESSAGE": "Send besked"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Gå tilbage",
+ "SEND_MESSAGE": "Send besked"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/contactFilters.json b/app/javascript/dashboard/i18n/locale/da/contactFilters.json
index f053ec360..47167bda8 100644
--- a/app/javascript/dashboard/i18n/locale/da/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/da/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Er mindre end",
"days_before": "Er x dage før"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Værdi er påkrævet"
+ },
"ATTRIBUTES": {
"NAME": "Navn",
"EMAIL": "E-mail",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Afkrydsningsfelt",
"CREATED_AT": "Oprettet Den",
"LAST_ACTIVITY": "Sidste Aktivitet",
- "REFERER_LINK": "Link til reference"
+ "REFERER_LINK": "Link til reference",
+ "BLOCKED": "Blocked",
+ "LABELS": "Etiketter"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filtre",
diff --git a/app/javascript/dashboard/i18n/locale/da/contentTemplates.json b/app/javascript/dashboard/i18n/locale/da/contentTemplates.json
new file mode 100644
index 000000000..34a16c814
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Søg Skabeloner",
+ "NO_TEMPLATES_FOUND": "Ingen skabeloner fundet for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategori",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Sprog",
+ "TEMPLATE_BODY": "Skabelon Krop",
+ "CATEGORY": "Kategori"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Tekst"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabler",
+ "LANGUAGE": "Sprog",
+ "CATEGORY": "Kategori",
+ "VARIABLE_PLACEHOLDER": "Indtast {variable} værdi",
+ "GO_BACK_LABEL": "Gå Tilbage",
+ "SEND_MESSAGE_LABEL": "Send Besked",
+ "FORM_ERROR_MESSAGE": "Udfyld venligst alle variabler før afsendelse",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Tilbage",
+ "SEND_MESSAGE_BUTTON": "Send Besked"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/conversation.json b/app/javascript/dashboard/i18n/locale/da/conversation.json
index d7e162d0c..3e959a0c4 100644
--- a/app/javascript/dashboard/i18n/locale/da/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/da/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " for at komme i gang",
"NO_INBOX_AGENT": "Åh Åh! Det ser ud til, at du ikke er en del af en indbakke. Kontakt venligst din administrator",
"SEARCH_MESSAGES": "Søg efter beskeder i samtaler",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Indlæser Samtaler",
"CANNOT_REPLY": "Du kan ikke svare på grund af",
"24_HOURS_WINDOW": "24 timers beskedvindue begrænsning",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Ukendt Fil",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploader vedhæftede filer...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Besked slettet",
"FAIL_DELETE_MESSSAGE": "Kunne ikke slette beskeden! Prøv igen",
"NO_RESPONSE": "Intet svar",
+ "RESPONSE": "Response",
"RATING_TITLE": "Bedømmelse",
"FEEDBACK_TITLE": "Tilbagemelding",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Vis etiketter",
- "HIDE_LABELS": "Skjul etiketter"
+ "HIDE_LABELS": "Skjul etiketter",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Genåben",
"OPEN_ACTION": "Åbn",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mere",
"CLOSE": "Luk",
"DETAILS": "detaljer",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Udsat til i morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Udsat indtil næste uge",
- "SNOOZED_UNTIL_NEXT_REPLY": "Udsat indtil næste svar"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Udsat indtil næste svar",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Markér som afventende",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Næste uge"
}
},
+ "MENTION": {
+ "AGENTS": "Agenter",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Udsæt til",
"APPLY": "Udsæt",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Ingen",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "Ingen resultater fundet",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Marker som ulæst",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Genåbn samtale",
"SNOOZE": {
"TITLE": "Udsæt",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Tildel etiket",
"AGENTS_LOADING": "Indlæser agenter...",
"ASSIGN_TEAM": "Tildel team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Samtale id %{conversationId} tildelt \"%{agentName}\"",
+ "SUCCESFUL": "Samtale id {conversationId} tildelt \"{agentName}\"",
"FAILED": "Kunne ikke tildele agent. Prøv venligst igen."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Tildelt etiket #%{labelName} til samtale-id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Kunne ikke tildele etiket. Prøv venligst igen."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Tildelt team \"%{team}\" til samtale-id %{conversationId}",
+ "SUCCESFUL": "Tildelt team \"{team}\" til samtale-id {conversationId}",
"FAILED": "Kunne ikke tildele team. Prøv venligst igen."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Deaktivér signatur",
"MSG_INPUT": "Shift + enter for ny linje. Start med '/' for at vælge et standardsvar.",
"PRIVATE_MSG_INPUT": "Shift + enter for ny linje. Dette vil kun være synligt for Agenter",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Beskedsignatur er ikke konfigureret, konfigurer den i profilindstillinger.",
- "CLICK_HERE": "Klik her for at opdatere"
+ "COPILOT_MSG_INPUT": "Giv copilot yderligere prompts, eller spørg om noget andet... Tryk enter for at sende opfølgning",
+ "CLICK_HERE": "Klik her for at opdatere",
+ "WHATSAPP_TEMPLATES": "Whatsapp Skabeloner"
},
"REPLYBOX": {
"REPLY": "Svar",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Vis rig teksteditor",
"TIP_EMOJI_ICON": "Vis emoji-vælger",
"TIP_ATTACH_ICON": "Vedhæft filer",
"TIP_AUDIORECORDER_ICON": "Optag lyd",
"TIP_AUDIORECORDER_PERMISSION": "Tillad adgang til lyd",
"TIP_AUDIORECORDER_ERROR": "Kunne ikke åbne lyden",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Træk og slip her for at vedhæfte",
"START_AUDIO_RECORDING": "Start lydoptagelse",
"STOP_AUDIO_RECORDING": "Stop lydoptagelse",
- "": "",
+ "COPILOT_THINKING": "Copilot tænker",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Tilføj bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Annuller"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privat Note: Kun synlig for dig og dit team",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Kunne ikke sende denne besked, prøv igen senere",
"SENT_BY": "Sendt af:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Kunne ikke sende besked! Prøv igen",
"TRY_AGAIN": "prøv igen",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Slet",
"CANCEL": "Annuller"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontakt",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Annuller",
"SEND_EMAIL_SUCCESS": "Chatudskriften blev sendt med succes",
"SEND_EMAIL_ERROR": "Der opstod en fejl. Prøv venligst igen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send udskrift til kunden",
"SEND_TO_AGENT": "Send udskrift til den tildelte agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hej 👋, Velkommen til %{installationName}!",
- "DESCRIPTION": "Tak for din tilmelding. Vi vil have dig til at få mest muligt ud af %{installationName}. Her er et par ting, du kan gøre i %{installationName} for at gøre oplevelsen dejlig.",
+ "TITLE": "Hej 👋, Velkommen til {installationName}!",
+ "DESCRIPTION": "Tak for din tilmelding. Vi vil have dig til at få mest muligt ud af {installationName}. Her er et par ting, du kan gøre i {installationName} for at gøre oplevelsen dejlig.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Læs vores seneste opdateringer",
"ALL_CONVERSATION": {
"TITLE": "Alle dine samtaler på ét sted",
- "DESCRIPTION": "Se alle samtaler fra dine kunder på et enkelt betjeningspanel. Du kan filtrere samtaler efter indgående kanal, etiket og status."
+ "DESCRIPTION": "Se alle samtaler fra dine kunder på et enkelt betjeningspanel. Du kan filtrere samtaler efter indgående kanal, etiket og status.",
+ "NEW_LINK": "Klik her for at oprette en indbakke"
},
"TEAM_MEMBERS": {
"TITLE": "Inviter dine teammedlemmer",
"DESCRIPTION": "Da du er ved at blive klar til at tale med din kunde, skal du medbringe dine holdkammerater for at hjælpe dig. Du kan invitere dine holdkammerater ved at tilføje deres e-mailadresser til agentlisten.",
"NEW_LINK": "Klik her for at invitere et teammedlem"
},
- "INBOXES": {
- "TITLE": "Forbind Indbakker",
- "DESCRIPTION": "Tilslut forskellige kanaler, hvorigennem dine kunder ville tale med dig. Det kan være en hjemmeside live-chat, din Facebook eller Twitter side eller endda dit WhatsApp nummer.",
- "NEW_LINK": "Klik her for at oprette en indbakke"
- },
"LABELS": {
"TITLE": "Organiser samtaler med etiketter",
"DESCRIPTION": "Etiketter giver en lettere måde at kategorisere din samtale. Opret nogle etiketter som #support-forespørgsel, #billing-spørgsmål osv., så du kan bruge dem i en samtale senere.",
"NEW_LINK": "Klik her for at oprette tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Afventer",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Opret ny egenskab",
+ "NO_RECORDS_FOUND": "Ingen attributter fundet",
"UPDATE": {
"SUCCESS": "Attributten er opdateret",
"ERROR": "Kan ikke opdatere attributten. Prøv igen senere"
@@ -297,17 +449,18 @@
"TO": "Til",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Emne"
+ "SUBJECT": "Emne",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Ingen resultater fundet",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/customRole.json b/app/javascript/dashboard/i18n/locale/da/customRole.json
new file mode 100644
index 000000000..21bed9856
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Handlinger"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Navn er påkrævet."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Beskrivelse er påkrævet."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Annuller",
+ "API": {
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Send",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Rediger",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Opdater",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Slet",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere."
+ },
+ "CONFIRM": {
+ "TITLE": "Bekræft sletning",
+ "MESSAGE": "Er du sikker på du vil slette ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/datePicker.json b/app/javascript/dashboard/i18n/locale/da/datePicker.json
new file mode 100644
index 000000000..5fb859bef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Anvend",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Seneste 7 dage",
+ "LAST_30_DAYS": "Seneste 30 dage",
+ "LAST_3_MONTHS": "Seneste 3 måneder",
+ "LAST_6_MONTHS": "Seneste 6 måneder",
+ "LAST_YEAR": "Sidste år",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Tilpasset datointerval"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/general.json b/app/javascript/dashboard/i18n/locale/da/general.json
new file mode 100644
index 000000000..ab081ca60
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Søg",
+ "EMPTY_STATE": "Ingen resultater fundet"
+ },
+ "CLOSE": "Luk",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ja",
+ "NO": "Nej"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/generalSettings.json b/app/javascript/dashboard/i18n/locale/da/generalSettings.json
index 3ccfbaf25..9ad9eb70d 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Du kan modtage e-mails på dit brugerdefinerede domæne nu."
}
},
- "UPDATE_CHATWOOT": "En opdatering %{latestChatwootVersion} til Chatwoot er tilgængelig. Opdater venligst din instans.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Tryk enter for at vælge",
"ENTER_TO_REMOVE": "Tryk enter for at fjerne",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Vælg en",
"SELECT": "Vælg"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Samtale Tildelt",
"assigned_conversation_new_message": "Ny Besked",
"participating_conversation_new_message": "Ny Besked",
- "conversation_mention": "Omtale"
+ "conversation_mention": "Omtale",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Opdater"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Søg eller hop til",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Generelt",
"REPORTS": "Rapporter",
"CONVERSATION": "Samtale",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Skift Modtager",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Skift Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Indtil i morgen",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/da/helpCenter.json b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
index 8ad43b61a..e641bd74d 100644
--- a/app/javascript/dashboard/i18n/locale/da/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/da/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Hjælpecenter",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Opret et selvbetjeningscenter til dine kunder. Hjælp dem med at finde svar hurtigt, uden at vente. Strømlin forespørgsler, øge agent effektivitet og øge kundesupport.",
+ "CREATE_PORTAL_BUTTON": "Opret Portal"
+ },
"HEADER": {
"FILTER": "Filtrer efter",
"SORT": "Sorter efter",
@@ -18,10 +23,10 @@
"ARCHIVED": "Arkiverede Artikler"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Vælg sprog",
+ "PLACEHOLDER": "Vælg sprog",
+ "NO_RESULT": "Ingen sprog fundet",
+ "SEARCH_PLACEHOLDER": "Søg efter sprog"
}
},
"EDIT_HEADER": {
@@ -39,11 +44,12 @@
"IMAGE_UPLOAD": {
"TITLE": "Upload billede",
"UPLOADING": "Uploader...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "Billede blev uploadet",
+ "ERROR": "Fejl under overførsel af billede",
+ "UN_AUTHORIZED_ERROR": "Du har ikke tilladelse til at overføre billeder",
+ "ERROR_FILE_SIZE": "Billedets størrelse skal være mindre end {size}MB",
+ "ERROR_FILE_FORMAT": "Billedformatet skal være jpg, jpeg eller png",
+ "ERROR_FILE_DIMENSIONS": "Billeddimensioner skal være mindre end 2000 x 2000 px"
}
},
"ARTICLE_SETTINGS": {
@@ -82,15 +88,15 @@
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
+ "UNCATEGORIZED": "Ikke Kategoriseret",
+ "SEARCH_RESULTS": "Søgeresultater for {query}",
+ "EMPTY_TEXT": "Søg efter artikler at indsætte i svar.",
"SEARCH_LOADER": "Søger...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "INSERT_ARTICLE": "Indsæt",
+ "NO_RESULT": "Ingen artikler fundet",
+ "COPY_LINK": "Kopier artikellink til udklipsholder",
+ "OPEN_LINK": "Åbn artikel i ny fane",
+ "PREVIEW_LINK": "Forhåndsvis artikel"
},
"PORTAL": {
"HEADER": "Portals",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal slettet",
"DELETE_ERROR": "Fejl under sletning af portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Information om hjælpecenter",
- "route": "new_portal_information",
- "body": "Grundlæggende oplysninger om portal",
- "CREATE_BASIC_SETTING_BUTTON": "Opret grundlæggende portal indstillinger"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Information om hjælpecenter",
+ "BODY": "Grundlæggende oplysninger om portal"
},
- {
- "title": "Tilpasning af hjælpecenter",
- "route": "portal_tilpasning",
- "body": "Tilpas portal",
- "UPDATE_PORTAL_BUTTON": "Opdater portalindstillinger"
+ "CUSTOMIZATION": {
+ "TITLE": "Tilpasning af hjælpecenter",
+ "BODY": "Tilpas portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "Du er klar!",
- "FINISH": "Afslut"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "Du er klar!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Tilbage",
"BASIC_SETTINGS_PAGE": {
@@ -231,9 +237,9 @@
"LABEL": "Logo",
"UPLOAD_BUTTON": "Upload logo",
"HELP_TEXT": "Dette logo vil blive vist i portalens header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "IMAGE_UPLOAD_SUCCESS": "Logo uploadet",
+ "IMAGE_UPLOAD_ERROR": "Logo blev slettet",
+ "IMAGE_DELETE_ERROR": "Fejl under sletning af logo"
},
"NAME": {
"LABEL": "Navn",
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Tilpasset Domæne",
"PLACEHOLDER": "Portal brugerdefineret domæne",
- "HELP_TEXT": "Tilføj kun hvis du vil bruge et brugerdefineret domæne, til dine portaler. Eksempelvis https://example.com",
+ "HELP_TEXT": "Tilføj kun Hvis du vil bruge et brugerdefineret domæne til dine portaler. Eks.: {exampleURL}",
"ERROR": "Indtast et gyldigt domæne URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Link Til Hjemmeside",
"PLACEHOLDER": "Link til portalens hjemmeside",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "Linket, der bruges til at vende tilbage fra portalen til hjemmesiden. Eks.: {exampleURL}",
"ERROR": "Indtast en gyldig URL til startsiden"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Landestandard fjernet fra portal",
"ERROR_MESSAGE": "Kan ikke fjerne landestandard fra portalen. Prøv igen."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -319,13 +337,13 @@
"HEADERS": {
"TITLE": "Titel",
"CATEGORY": "Kategori",
- "READ_COUNT": "Views",
+ "READ_COUNT": "Visninger",
"STATUS": "Status",
"LAST_EDITED": "Sidst redigeret"
},
"COLUMNS": {
"BY": "af",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "AUTHOR_NOT_AVAILABLE": "Forfatteren er ikke tilgængelig"
}
},
"EDIT_ARTICLE": {
@@ -339,7 +357,7 @@
"PUBLISH_ARTICLE": {
"API": {
"ERROR": "Fejl under publicering af artikel",
- "SUCCESS": "Article published successfully"
+ "SUCCESS": "Artiklen er publiceret"
}
},
"ARCHIVE_ARTICLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Artikel arkiveret"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Fejl under lagring af artikel",
+ "SUCCESS": "Artikel arkiveret"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Fejl under sletning af artikel"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Tilføj venligst artiklens overskrift og indhold, så kun du kan opdatere indstillingerne"
},
@@ -379,7 +413,7 @@
"NAME": {
"LABEL": "Navn",
"PLACEHOLDER": "Kategori navn",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Kategorinavn og ikon vil blive brugt i den offentlige portal til at kategorisere artikler.",
"ERROR": "Navn er påkrævet"
},
"SLUG": {
@@ -410,7 +444,7 @@
"NAME": {
"LABEL": "Navn",
"PLACEHOLDER": "Kategori navn",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Kategorinavn og ikon vil blive brugt i den offentlige portal til at kategorisere artikler.",
"ERROR": "Navn er påkrævet"
},
"SLUG": {
@@ -441,39 +475,39 @@
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
+ "TITLE": "Søg efter artikler",
+ "PLACEHOLDER": "Søg efter artikler",
+ "NO_RESULT": "Ingen artikler fundet",
"SEARCHING": "Søger...",
"SEARCH_BUTTON": "Søg",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "Indsæt link",
+ "IFRAME_ERROR": "URL er tom eller ugyldig. Kan ikke vise indholdet.",
+ "OPEN_ARTICLE_SEARCH": "Indsæt artikel fra Hjælpecenter",
+ "SUCCESS_ARTICLE_INSERTED": "Artikel indsat",
+ "PREVIEW_LINK": "Forhåndsvis artikel",
"CANCEL": "Luk",
"BACK": "Tilbage",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "Tilbage til resultater"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "Hjælpecenter",
+ "DESCRIPTION": "Opret brugervenlige selvbetjeningsportaler. Hjælp dine brugere med at få adgang til artiklerne og få support 24/7. Opgrader dit abonnement for at aktivere denne funktion.",
+ "SELF_HOSTED_DESCRIPTION": "Opret brugervenlige selvbetjeningsportaler. Hjælp dine brugere med at få adgang til artiklerne og få support 24/7. Kontakt din administrator for at aktivere denne funktion.",
"BUTTON": {
"LEARN_MORE": "Lær mere",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "Opgrader"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Flere portaler",
+ "DESCRIPTION": "Opret flere selvbetjeningscentre for forskellige produkter ved hjælp af samme konto."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Fuld understøttelse af flere sprog på samme tid",
+ "DESCRIPTION": "Lokaliser portalen på dit sprog. Vi understøtter alle landestandarder og tillader oversættelser for alle artikler."
},
"SEO": {
- "TITLE": "SEO-friendly design",
+ "TITLE": "SEO venligt design",
"DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
},
"API": {
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Udgiv",
+ "DRAFT": "Kladde",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Slet"
+ },
+ "STATUS": {
+ "DRAFT": "Kladde",
+ "PUBLISHED": "Publiceret",
+ "ARCHIVED": "Arkiveret"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mine",
+ "DRAFT": "Kladde",
+ "PUBLISHED": "Publiceret",
+ "ARCHIVED": "Arkiveret"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Udgiv",
+ "DRAFT": "Kladde",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Kategori",
+ "DELETE": "Slet",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Slet",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Ny kategori",
+ "EDIT_CATEGORY": "Rediger kategori",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Ingen kategorier fundet",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori oprettet",
+ "ERROR_MESSAGE": "Kan ikke oprette kategori"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori opdateret",
+ "ERROR_MESSAGE": "Kan ikke opdatere kategori"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori slettet",
+ "ERROR_MESSAGE": "Kan ikke slette kategori"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Opret kategori",
+ "EDIT": "Rediger kategori",
+ "DESCRIPTION": "Redigering af en kategori vil opdatere kategorien i den offentlige vender portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Landestandard"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Kategori navn",
+ "ERROR": "Navn er påkrævet"
+ },
+ "SLUG": {
+ "LABEL": "Snegl",
+ "PLACEHOLDER": "Kategori slug for webls",
+ "ERROR": "Slug er påkrævet",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Giv en kort beskrivelse af kategorien.",
+ "ERROR": "Beskrivelse er påkrævet"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Opret",
+ "EDIT": "Opdater",
+ "CANCEL": "Annuller"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Standard",
+ "DRAFT": "Kladde",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Slet"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Tilføj en ny landestandard",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Publiceret",
+ "DRAFT": "Kladde"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Landestandard tilføjet",
+ "ERROR_MESSAGE": "Kan ikke tilføje locale. Prøv igen."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Gemmer...",
+ "SAVED": "Gemt"
+ },
+ "PREVIEW": "Eksempelvisning",
+ "PUBLISH": "Udgiv",
+ "DRAFT": "Kladde",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Ikke Kategoriseret",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta beskrivelse",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta titel",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Fejl under lagring af artikel"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "artikler",
+ "DOMAIN": "domæne",
+ "PORTAL_NAME": "Portal navn"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Opret",
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Navn er påkrævet"
+ },
+ "SLUG": {
+ "LABEL": "Snegl",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug er påkrævet",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo blev slettet",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Billedets størrelse skal være mindre end {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Portal navn",
+ "ERROR": "Navn er påkrævet"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header tekst"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal side titel"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Link til portalens hjemmeside",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Snegl",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Tilpasset domæne",
+ "LABEL": "Tilpasset domæne:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal brugerdefineret domæne",
+ "EDIT_BUTTON": "Rediger",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Levende",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Tilpasset domæne",
+ "PLACEHOLDER": "Portal brugerdefineret domæne",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Slet portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Slet"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Fjern"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal oprettet",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal opdateret",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Uploader...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Annuller",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Afsluttet",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/inbox.json b/app/javascript/dashboard/i18n/locale/da/inbox.json
index 571deefe8..bf34cc73a 100644
--- a/app/javascript/dashboard/i18n/locale/da/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/da/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Indbakke",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Udsat til i morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Udsat indtil næste uge"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Tilbage"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Ny besked",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Ny besked",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Intet tilgængeligt indhold",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Marker som ulæst",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
index 8b93c1136..f672656da 100644
--- a/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Indbakker",
- "SIDEBAR_TXT": "Indbakke
Når du forbinder en hjemmeside eller en facebook side til Chatwoot, det kaldes en Indbakke. Du kan have ubegrænset indbakker på din Chatwoot-konto.
Klik på Tilføj indbakke for at forbinde en hjemmeside eller en Facebook-side.
I betjeningspanelet du kan se alle samtalerne fra alle dine indbakker på et enkelt sted og svare på dem under fanen 'Samtaler'.
Du kan også se samtaler, der er specifikke for en indbakke, ved at klikke på indbakkens navn i dashboardets venstre rude.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Der er ingen indbakker tilknyttet denne konto."
},
- "CREATE_FLOW": [
- {
- "title": "Vælg Kanal",
- "route": "settings_inbox_new",
- "body": "Vælg den udbyder, du vil integrere med Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Vælg Kanal",
+ "BODY": "Vælg den udbyder, du vil integrere med Chatwoot."
},
- {
- "title": "Opret Indbakke",
- "route": "settings_inboxes_page_channel",
- "body": "Autentificer din konto og opret en indbakke."
+ "INBOX": {
+ "TITLE": "Opret Indbakke",
+ "BODY": "Autentificer din konto og opret en indbakke."
},
- {
- "title": "Tilføj Agenter",
- "route": "settings_inboxes_add_agents",
- "body": "Tilføj agenter til den oprettede indbakke."
+ "AGENT": {
+ "TITLE": "Tilføj Agenter",
+ "BODY": "Tilføj agenter til den oprettede indbakke."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Så er alt klart!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Så er alt klart!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Indbakke Navn",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Vælg en side fra listen",
"INBOX_NAME": "Indbakke Navn",
"ADD_NAME": "Tilføj et navn til din indbakke",
- "PICK_NAME": "Vælg et navn til din indbakke",
- "PICK_A_VALUE": "Vælg en værdi"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Indtast din Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Angiv en gyldig URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Hjemmeside Domæne",
"PLACEHOLDER": "Indtast dit website domæne (fx: ditfirma.dk)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Nøgle",
- "PLACEHOLDER": "Indtast venligst dit Båndbredde Konto ID",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Dette felt er påkrævet"
},
"API_SECRET": {
"LABEL": "API Hemmelighed",
- "PLACEHOLDER": "Indtast venligst dit Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Dette felt er påkrævet"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Begynd at støtte dine kunder via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Sky",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Indbakke Navn",
"PLACEHOLDER": "Indtast venligst et indbakkens navn",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verificér Token",
- "PLACEHOLDER": "Indtast en verificeringstoken, som du vil konfigurere for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Angiv en gyldig værdi."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook verifikations token"
},
"SUBMIT_BUTTON": "Opret WhatsApp Kanal",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Vi kunne ikke gemme WhatsApp-kanalen"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefonnummer",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Konto SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Kanal",
"DESC": "Integrer med API-kanal og begynd at supportere dine kunder.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Indstil URL'en hvor du vil modtage callbacks på begivenheder.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Opret API-kanal",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "E-mail Kanal",
- "DESC": "Integrer din e-mail indbakke.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Kanalnavn",
"PLACEHOLDER": "Indtast et kanalnavn",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Vi kunne ikke gemme e-mailkanalen"
},
- "FINISH_MESSAGE": "Begynd at videresende dine e-mails til følgende e-mailadresse."
+ "FINISH_MESSAGE": "Begynd at videresende dine e-mails til følgende e-mailadresse.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klik her",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Kanal",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Vælg en kanal",
- "DESC": "Chatwoot understøtter live-chat-widgets, Facebook Messenger, Twitter-profiler, WhatsApp, E-mails, osv., som kanaler. Hvis du ønsker at bygge en brugerdefineret kanal, kan du oprette den ved hjælp af API-kanalen. For at komme i gang, vælg en af kanalerne nedenfor."
+ "DESC": "Chatwoot understøtter live-chat-widgets, Facebook Messenger, Twitter-profiler, WhatsApp, E-mails, osv., som kanaler. Hvis du ønsker at bygge en brugerdefineret kanal, kan du oprette den ved hjælp af API-kanalen. For at komme i gang, vælg en af kanalerne nedenfor.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenter",
"DESC": "Her kan du tilføje agenter til at håndtere din nyoprettede indbakke. Kun disse valgte agenter vil have adgang til din indbakke. Agenter som ikke er en del af denne indbakke, vil ikke kunne se eller reagere på beskeder i denne indbakke, når de logger ind.
PS: Som administrator, hvis du har brug for adgang til alle indbakker, bør du tilføje dig selv som agent til alle indbakker, du opretter.",
- "VALIDATION_ERROR": "Tilføj mindst én agent til din nye indbakke",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Vælg agenter for indbakken"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Autentificerer dig med Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Noget gik galt, Opdatér siden...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Du kan nu engagere dig med dine kunder gennem din nye kanal. Glædelig supportering",
"BUTTON_TEXT": "Tag mig med dertil",
"MORE_SETTINGS": "Flere indstillinger",
- "WEBSITE_SUCCESS": "Du er færdig med at oprette en hjemmeside kanal. Kopier koden vist nedenfor og indsæt den på din hjemmeside. Næste gang en kunde bruger live chat, vil samtalen automatisk vises i din indbakke."
+ "WEBSITE_SUCCESS": "Du er færdig med at oprette en hjemmeside kanal. Kopier koden vist nedenfor og indsæt den på din hjemmeside. Næste gang en kunde bruger live chat, vil samtalen automatisk vises i din indbakke.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Genautorisér",
"VIEW": "Vis",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Deaktiveret"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktiveret",
- "DISABLED": "Deaktiveret"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktiver"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Forretningstider",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot konfiguration"
+ "BOT_CONFIGURATION": "Bot konfiguration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Levende"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Indstillinger",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger- Script",
"MESSENGER_SUB_HEAD": "Placer denne knap inde i din body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenter",
"INBOX_AGENTS_SUB_TEXT": "Tilføj eller fjern agenter fra denne indbakke",
"AGENT_ASSIGNMENT": "Samtale Tildeling",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Indbakke Indstillinger",
"INBOX_UPDATE_SUB_TEXT": "Opdater dine indbakkeindstillinger",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling af nye samtaler til agenter tilføjet til denne indbakke.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Brug den `inbox_identifier` token vist her til godkendelse dine API-klienter.",
"FORWARD_EMAIL_TITLE": "Videresend til e-mail",
"FORWARD_EMAIL_SUB_TEXT": "Begynd at videresende dine e-mails til følgende e-mailadresse.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Tillad beskeder efter samtalen løst",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Tillad slutbrugere at sende beskeder, selv efter samtalen er løst.",
"WHATSAPP_SECTION_SUBHEADER": "Denne API-nøgle bruges til integration med WhatsApp API'erne.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Nøgle",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Opdater",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verificér Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Tilslut",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook verifikations token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Ingen",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Indtast en værdi større end 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Begræns det maksimale antal samtaler fra denne indbakke, der kan være auto tildelt en agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Samtale Tildeling",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuller",
+ "CONFIRM_DELETE": "Slet",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Genautorisér",
"SUBTITLE": "Din Facebook-forbindelse er udløbet, tilslut venligst din Facebook-side igen for at fortsætte tjenesterne",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Sprog",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Gå tilbage"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Utilgængelig besked til besøgende",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dag",
+ "AVAILABILITY": "Tilgængelighed",
+ "HOURS": "Hours",
"ENABLE": "Aktiver tilgængelighed for denne dag",
"UNAVAILABLE": "Unavailable",
- "HOURS": "timer",
"VALIDATION_ERROR": "Starttidspunkt bør være før lukketid.",
"CHOOSE": "Vælg"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "For at aktivere SMTP skal du konfigurere IMAP.",
"UPDATE": "Opdater indstillinger",
"TOGGLE_AVAILABILITY": "Aktiver IMAP- konfiguration for denne indbakke",
- "TOGGLE_HELP": "Aktivering af IMAP, vil hjælpe brugeren med at modtage e-mail",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "Indbakkeindstillinger opdateret",
"ERROR_MESSAGE": "Kunne ikke opdatere IMAP-indstillinger"
@@ -606,7 +1042,8 @@
"LABEL": "Adgangskode",
"PLACE_HOLDER": "Adgangskode"
},
- "ENABLE_SSL": "Aktiver SSL"
+ "ENABLE_SSL": "Aktiver SSL",
+ "AUTH_MECHANISM": "Godkendelse"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "På en dag"
},
"WIDGET_COLOR_LABEL": "Widget Farve",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat med os",
- "LABEL": "Widget Bubble Launcher Titel",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat med os"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Standard",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarer typisk på et par minutter",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mail",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Kanal",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/index.js b/app/javascript/dashboard/i18n/locale/da/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/da/index.js
+++ b/app/javascript/dashboard/i18n/locale/da/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/da/integrationApps.json b/app/javascript/dashboard/i18n/locale/da/integrationApps.json
index 3223df2a3..f92e12f13 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Henter Integrationer",
- "NO_HOOK_CONFIGURED": "Der er ingen %{integrationId} integrationer konfigureret på denne konto.",
+ "NO_HOOK_CONFIGURED": "Der er ingen {integrationId} integrationer konfigureret på denne konto.",
"HEADER": "Applikationer",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktiveret",
"DISABLED": "Deaktiveret"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Henter integrationshoks",
"INBOX": "Indbakke",
+ "ACTIONS": "Handlinger",
"DELETE": {
"BUTTON_TEXT": "Slet"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Vælg Indbakke"
},
"SUBMIT": "Opret",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Annuller"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Afbryd"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow er en naturlig sprogforståelsesplatform, der gør det nemt at designe og integrere en samtalebrugergrænseflade i din mobile app, webapplikation, enhed, bot, interaktivt talespons system, og så videre.
Dialogflow integration med %{installationName} giver dig mulighed for at konfigurere en Dialogflow bot med dine indbakker, som lader botten håndtere spørgsmålene i første omgang og overdrage dem til en agent, når det er nødvendigt. Dialogflow kan bruges til at kvalificere kundeemner, reducere arbejdsbyrden af agenter ved at stille ofte stillede spørgsmål osv.
For at tilføje Dialogflow skal du oprette en servicekonto i din Google-projektkonsol og dele legitimationsoplysningerne. Se Dialogflow dokumenterne for mere information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/integrations.json b/app/javascript/dashboard/i18n/locale/da/integrations.json
index 09cf1dc44..6e11fc565 100644
--- a/app/javascript/dashboard/i18n/locale/da/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/da/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Annuller",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrationer",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonnerede Begivenheder",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuller",
"DESC": "Webhook-begivenheder giver dig realtidsoplysninger om, hvad der sker på din Chatwoot-konto. Angiv en gyldig URL for at konfigurere et callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Eksempel: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Angiv en gyldig URL"
},
"EDIT_SUBMIT": "Opdater webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Der er ingen webhooks konfigureret til denne konto.",
"TITLE": "Administrer webhooks",
- "TABLE_HEADER": [
- "Webhook endepunkt",
- "Handlinger"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endepunkt",
+ "ACTIONS": "Handlinger"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Rediger",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Bekræft Sletning",
- "MESSAGE": "Er du sikker på at du vil slette webhook? (%{webhookURL})",
+ "MESSAGE": "Er du sikker på at du vil slette webhook? ({webhookURL})",
"YES": "Ja, Slet ",
"NO": "Nej, behold det"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Slet",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Brug Slack Integration",
- "BODY": "
Chatwoot vil nu synkronisere alle indgående samtaler ind i kundesamtaler kanalen i din slack arbejdsplads.
Svar på en samtaletråd i kunde-samtaler slack kanal vil skabe et svar tilbage til kunden gennem chatwoot.
Start svarene med note: for at oprette private noter i stedet for svar.
Hvis replikatoren på slack har en agentprofil i chatwoot under samme e-mail, vil svarene blive tilknyttet i overensstemmelse hermed.
Når replikatoren ikke har en tilknyttet agentprofil, vil svarene blive fremsat fra bot-profilen.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Tilføj en ny dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps tillader organisationer at integrere en applikation i Chatwoot-dashboardet for at give konteksten til kundesupportagenter. Denne funktion giver dig mulighed for at oprette et program uafhængigt og integrere at inde i instrumentbrættet til at give brugerinformation, deres ordrer eller deres tidligere betalingshistorie.
Når du indlejrer din applikation ved hjælp af instrumentbrættet i Chatwoot, dit program vil få konteksten af samtalen og kontakt som en vinduesbegivenhed. Gennemfør en lytter til besked begivenheden på din side for at modtage konteksten.
For at tilføje en ny dashboard app, klik på knappen 'Tilføj en ny dashboard app'.
",
"DESCRIPTION": "Dashboard Apps giver organisationer mulighed for at integrere et program i instrumentbrættet for at give konteksten for kundesupportagenter. Denne funktion giver dig mulighed for at oprette et program uafhængigt og integrere at give brugeroplysninger, deres ordrer, eller deres tidligere betalingshistorik.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Der er ingen dashboard apps konfigureret på denne konto endnu",
"LOADING": "Henter dashboard apps...",
- "TABLE_HEADER": [
- "Navn",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Handlinger"
+ },
"EDIT_TOOLTIP": "Rediger app",
"DELETE_TOOLTIP": "Slet app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Ja, slet det",
"CONFIRM_NO": "Nej, behold det",
"TITLE": "Bekræft sletning",
- "MESSAGE": "Er du sikker på at du vil slette appen - %{appName}?",
+ "MESSAGE": "Er du sikker på at du vil slette appen - {appName}?",
"API_SUCCESS": "Dashboard app slettet",
"API_ERROR": "Vi kunne ikke slette appen. Prøv igen senere"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Opret",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Titel er påkrævet"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Vælg hold",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Etiketter",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Opret",
+ "CANCEL": "Annuller",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Etiketter",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Annuller"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Få mere at vide",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistenter",
+ "SWITCH_ASSISTANT": "Skift mellem assistenter",
+ "NEW_ASSISTANT": "Opret assistent",
+ "EMPTY_LIST": "Ingen assistenter fundet, opret en for at komme i gang"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Kom godt i gang med Copilot",
+ "KICK_OFF_MESSAGE": "Brug for et hurtigt sammendrag, vil du tjekke tidligere samtaler eller udarbejde et bedre svar? Copilot er her for at fremskynde processen.",
+ "SEND_MESSAGE": "Send besked...",
+ "EMPTY_MESSAGE": "Der opstod en fejl ved generering af svaret. Prøv igen.",
+ "LOADER": "Captain tænker",
+ "YOU": "Dig",
+ "USE": "Brug dette",
+ "RESET": "Nulstil",
+ "SHOW_STEPS": "Vis trin",
+ "SELECT_ASSISTANT": "Vælg assistent",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Sammenfat denne samtale",
+ "CONTENT": "Sammenfat hovedpunkterne diskuteret mellem kunden og supportagenten, inklusive kundens bekymringer, spørgsmål og de løsninger eller svar, supportagenten har givet"
+ },
+ "SUGGEST": {
+ "LABEL": "Foreslå et svar",
+ "CONTENT": "Analyser kundens forespørgsel, og udarbejd et svar, der effektivt imødekommer deres bekymringer eller spørgsmål. Sørg for, at svaret er klart, præcist og giver nyttige oplysninger."
+ },
+ "RATE": {
+ "LABEL": "Vurder denne samtale",
+ "CONTENT": "Gennemgå samtalen for at se, hvor godt den opfylder kundens behov. Del en vurdering ud af 5 baseret på tone, klarhed og effektivitet."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Samtaler med høj prioritet",
+ "CONTENT": "Giv mig et sammendrag af alle åbne samtaler med høj prioritet. Inkluder samtale-ID, kundens navn (hvis tilgængeligt), indholdet af sidste besked og tildelt agent. Grupper efter status, hvis relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Liste over kontakter",
+ "CONTENT": "Vis mig listen over de 10 bedste kontakter. Inkluder navn, e-mail eller telefonnummer (hvis tilgængeligt), sidst set tidspunkt, tags (hvis nogen)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Dig",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Skriv din besked...",
+ "HEADER": "Legeplads",
+ "DESCRIPTION": "Brug denne legeplads til at sende beskeder til din assistent og tjekke, om den svarer korrekt, hurtigt og i den tone, du forventer.",
+ "CREDIT_NOTE": "Beskeder sendt her tæller mod dine Captain-kreditter."
+ },
+ "PAYWALL": {
+ "TITLE": "Opgrader for at bruge Captain AI",
+ "AVAILABLE_ON": "Captain er ikke tilgængelig på gratisplanen.",
+ "UPGRADE_PROMPT": "Opgrader din plan for at få adgang til vores assistenter, copilot og mere.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI er kun tilgængelig i Enterprise-planerne.",
+ "UPGRADE_PROMPT": "Opgrader din plan for at få adgang til vores assistenter, copilot og mere.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Du har brugt over 80 % af din svargrænse. For at fortsætte med at bruge Captain AI skal du opgradere.",
+ "DOCUMENTS": "Dokumentgrænse nået. Opgrader for at fortsætte med at bruge Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Annuller",
+ "CREATE": "Opret",
+ "EDIT": "Opdater"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Beskrivelse",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Indstillinger",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slet"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Opret",
+ "CANCEL": "Annuller",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slet"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Opret",
+ "CANCEL": "Annuller",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slet"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Opret",
+ "CANCEL": "Annuller"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Annuller",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slet",
+ "BULK_SYNC_BUTTON": "Opdater",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ingen",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Nøgle"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Adgangskode",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nummer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Påkrævet"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Slet",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Alle"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Afventer",
+ "APPROVED": "Approved",
+ "ALL": "Alle"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Rediger",
+ "DELETE_RESPONSE": "Slet"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Afbryd"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Indbakke",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
index f87937096..946c90de5 100644
--- a/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/da/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etiketter",
"HEADER_BTN_TXT": "Tilføj etiket",
"LOADING": "Henter etiketter",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Søg efter labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel",
- "SIDEBAR_TXT": "Etiketter
Etiketter hjælper dig med at kategorisere samtaler og prioritere dem. Du kan tildele etiket til en samtale fra dit sidepanel.
Etiketter er bundet til kontoen og kan bruges til at oprette brugerdefinerede arbejdsgange i din organisation. Du kan tildele brugerdefineret farve til en etiket, det gør det lettere at identificere etiketten. Du vil være i stand til at vise etiketten på sidepanelet for nemt at filtrere samtalerne.
",
"LIST": {
"404": "Der er ingen tilgængelige etiketter på denne konto.",
"TITLE": "Administrer etiketter",
"DESC": "Etiketter lader dig gruppere samtalerne sammen.",
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Farve"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "COLOR": "Farve",
+ "ACTION": "Handlinger"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Tilføj etiket",
diff --git a/app/javascript/dashboard/i18n/locale/da/login.json b/app/javascript/dashboard/i18n/locale/da/login.json
index 3fb3a66d9..6fbf51bbb 100644
--- a/app/javascript/dashboard/i18n/locale/da/login.json
+++ b/app/javascript/dashboard/i18n/locale/da/login.json
@@ -3,7 +3,7 @@
"TITLE": "Log ind på Chatwoot",
"EMAIL": {
"LABEL": "E-mail",
- "PLACEHOLDER": "E-mail, fx: navn@eksempel.dk",
+ "PLACEHOLDER": "navn{'@'}example.dk",
"ERROR": "Indtast venligst en gyldig e-mailadresse"
},
"PASSWORD": {
@@ -12,16 +12,30 @@
},
"API": {
"SUCCESS_MESSAGE": "Login Lykkedes",
- "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere",
- "UNAUTH": "Brugernavn / adgangskode forkert. Prøv igen"
+ "ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere.",
+ "UNAUTH": "Brugernavn / adgangskode forkert. Prøv igen."
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "Login med Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Brug venligst din virksomheds e-mailadresse til at logge ind",
+ "NO_ACCOUNT_FOUND": "Vi kunne ikke finde en konto til din e-mailadresse."
},
"FORGOT_PASSWORD": "Glemt din adgangskode?",
"CREATE_NEW_ACCOUNT": "Opret ny konto",
- "SUBMIT": "Log Ind"
+ "SUBMIT": "Log Ind",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/macros.json b/app/javascript/dashboard/i18n/locale/da/macros.json
index b51ebc52a..f237e215a 100644
--- a/app/javascript/dashboard/i18n/locale/da/macros.json
+++ b/app/javascript/dashboard/i18n/locale/da/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Gem macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Oprettet af",
- "Last updated by",
- "Synlighed"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "CREATED BY": "Oprettet af",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Synlighed",
+ "ACTIONS": "Handlinger"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privat",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Værdi er påkrævet",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ingen",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/mfa.json b/app/javascript/dashboard/i18n/locale/da/mfa.json
new file mode 100644
index 000000000..473c18302
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Aktiveret",
+ "DISABLED": "Deaktiveret",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopiér",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Annuller",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Adgangskode",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Annuller",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Annuller",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/onboarding.json b/app/javascript/dashboard/i18n/locale/da/onboarding.json
new file mode 100644
index 000000000..d94ac3ffa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mail",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Sprog",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Vælg tidszone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Gemmer...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/report.json b/app/javascript/dashboard/i18n/locale/da/report.json
index 7addae06e..8ecb08ffa 100644
--- a/app/javascript/dashboard/i18n/locale/da/report.json
+++ b/app/javascript/dashboard/i18n/locale/da/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtaler",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
- "DOWNLOAD_AGENT_REPORTS": "Download agentrapporter",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Første Respons Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Første svartid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Første svartid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_TIME": {
"NAME": "Løsnings Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Opløsningstid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Opløsningstid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_COUNT": {
"NAME": "Antal Afsluttede",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Antal Afsluttede",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Seneste 7 dage",
+ "LAST_14_DAYS": "Seneste 14 dage",
"LAST_30_DAYS": "Seneste 30 dage",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Seneste 3 måneder",
"LAST_6_MONTHS": "Seneste 6 måneder",
"LAST_YEAR": "Sidste år",
"CUSTOM_DATE_RANGE": "Tilpasset datointerval"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Seneste 7 dage"
- },
- {
- "id": 1,
- "name": "Seneste 30 dage"
- },
- {
- "id": 2,
- "name": "Seneste 3 måneder"
- },
- {
- "id": 3,
- "name": "Seneste 6 måneder"
- },
- {
- "id": 4,
- "name": "Sidste år"
- },
- {
- "id": 5,
- "name": "Tilpasset datointerval"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Anvend",
"PLACEHOLDER": "Vælg datointerval"
@@ -130,14 +116,28 @@
"groupBy": "Måned"
}
],
- "BUSINESS_HOURS": "Forretningstider"
+ "BUSINESS_HOURS": "Forretningstider",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Ingen resultater fundet"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agenter Oversigt",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_AGENT_REPORTS": "Download agentrapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søg agenter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -155,13 +155,13 @@
"NAME": "Første Respons Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Første svartid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Første svartid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_TIME": {
"NAME": "Løsnings Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Opløsningstid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Opløsningstid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_COUNT": {
"NAME": "Antal Afsluttede",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Vælg Etiket",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Søg efter labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -222,13 +228,13 @@
"NAME": "Første Respons Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Første svartid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Første svartid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_TIME": {
"NAME": "Løsnings Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Opløsningstid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Opløsningstid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_COUNT": {
"NAME": "Antal Afsluttede",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Oversigt Over Indbakke",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_INBOX_REPORTS": "Download indbakke rapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Indbakke",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -289,13 +303,13 @@
"NAME": "Første Respons Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Første svartid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Første svartid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_TIME": {
"NAME": "Løsnings Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Opløsningstid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Opløsningstid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_COUNT": {
"NAME": "Antal Afsluttede",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Oversigt",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Indlæser diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke modtaget nok datapunkter til at generere rapport. Prøv igen senere.",
"DOWNLOAD_TEAM_REPORTS": "Download teamrapporter",
"FILTER_DROPDOWN_LABEL": "Vælg Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Søg i teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -356,13 +379,13 @@
"NAME": "Første Respons Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Første svartid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Første svartid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_TIME": {
"NAME": "Løsnings Tid",
"DESC": "( Gns. )",
"INFO_TEXT": "Samlet antal samtaler, der anvendes til beregning:",
- "TOOLTIP_TEXT": "Opløsningstid er %{metricValue} (baseret på %{conversationCount} samtaler)"
+ "TOOLTIP_TEXT": "Opløsningstid er {metricValue} (baseret på {conversationCount} samtaler)"
},
"RESOLUTION_COUNT": {
"NAME": "Antal Afsluttede",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Rapporter",
- "NO_RECORDS": "Der er ingen CSAT undersøgelse svar til rådighed.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Rapporter",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søg agenter",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Søg i teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Vælg Agenter"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Indbakke"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Bedømmelse"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Tildelt agent",
+ "AGENT_NAME": "Agent",
"RATING": "Bedømmelse",
- "FEEDBACK_TEXT": "Kommentar til feedback"
- }
+ "FEEDBACK_TEXT": "Kommentar til feedback",
+ "CONVERSATION": "Samtale",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Svar i alt",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Respons rate",
"TOOLTIP": "Samlet antal svar / Samlet antal CSAT undersøgelsesmeddelelser sendt * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Annuller",
+ "SAVING": "Gemmer...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Samtaler af agenter",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Der er ingen samtaler af agenter",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "ÅBN",
+ "OPEN": "Åbn",
+ "UNATTENDED": "Unattet",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Åbn",
"UNATTENDED": "Unattet",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Ingen resultater fundet",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agentens navn",
+ "INBOXES": "Indbakkens navn",
+ "LABELS": "Etiket Navn",
+ "TEAMS": "Team navn"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Indbakke",
+ "AGENTS": "Agent",
+ "LABELS": "Etiketter",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Samtale",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Antal Afsluttede",
+ "CONVERSATIONS": "Antal samtaler"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/search.json b/app/javascript/dashboard/i18n/locale/da/search.json
index 3f1f78776..e0c7c1af0 100644
--- a/app/javascript/dashboard/i18n/locale/da/search.json
+++ b/app/javascript/dashboard/i18n/locale/da/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Alle",
+ "ALL": "All results",
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Beskeder"
+ "MESSAGES": "Beskeder",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Beskeder"
+ "MESSAGES": "Beskeder",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Søger",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "fra",
- "EMAIL": "e-mail"
+ "FROM": "Fra",
+ "EMAIL": "E-mail",
+ "EMAIL_SUBJECT": "Emne",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Seneste 7 dage",
+ "LAST_30_DAYS": "Seneste 30 dage",
+ "LAST_60_DAYS": "Seneste 60 dage",
+ "LAST_90_DAYS": "Seneste 90 dage",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Anvend",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Afsender",
+ "IN": "Indbakke",
+ "AGENTS": "Agenter",
+ "CONTACTS": "Kontakter",
+ "INBOXES": "Indbakker",
+ "NO_AGENTS": "Ingen agenter fundet",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/settings.json b/app/javascript/dashboard/i18n/locale/da/settings.json
index 6444a2ed9..c2c75d777 100644
--- a/app/javascript/dashboard/i18n/locale/da/settings.json
+++ b/app/javascript/dashboard/i18n/locale/da/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Din adgangskode er blevet ændret",
"AFTER_EMAIL_CHANGED": "Din profil er blevet opdateret. Log venligst ind igen, da dine loginoplysninger er ændret",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profilbillede",
"ERROR": "Ret venligst formularfejl",
"REMOVE_IMAGE": "Fjern",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Standard",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personlig beskedsignatur",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signatur gemt",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Billedets størrelse skal være mindre end {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Besked Signatur",
@@ -54,15 +81,45 @@
"NOTE": "Opdatering af din adgangskode vil nulstille dine logins på flere enheder.",
"BTN_TEXT": "Skift adgangskode"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Adgangs Token",
- "NOTE": "Denne token kan bruges, hvis du bygger en API-baseret integration"
+ "NOTE": "Denne token kan bruges, hvis du bygger en API-baseret integration",
+ "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": "Lyd Notifikationer",
- "NOTE": "Aktivér lydmeddelelser i dashboard for nye beskeder og samtaler.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Ingen",
+ "MINE": "Assigned",
+ "ALL": "Alle",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "Ingen",
"ASSIGNED": "Tildelte Samtaler",
"ALL_CONVERSATIONS": "Alle Samtaler"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-Mail Notifikationer",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Send e-mail notifikationer når en ny samtale er oprettet",
"CONVERSATION_MENTION": "Send e-mail notifikationer, når du er nævnt i en samtale",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send e-mail notifikationer når en ny besked er oprettet i en tildelt samtale",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-mail",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Dine notifikationsindstillinger er opdateret",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push-notifikationer, når en ny besked oprettes i en tildelt samtale",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Du har aktiveret push for denne browser.",
- "REQUEST_PUSH": "Aktivér push-notifikationer"
+ "REQUEST_PUSH": "Aktivér push-notifikationer",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profilbillede"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Tilgængelighed",
- "STATUSES_LIST": [
- "Online",
- "Optaget",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Optaget",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Skift",
- "CHANGE_ACCOUNTS": "Skift Konto",
- "CONTACT_SUPPORT": "Kontakt Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Vælg en konto fra følgende liste",
- "PROFILE_SETTINGS": "Profilindstillinger",
- "KEYBOARD_SHORTCUTS": "Tastaturgenveje",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Log Ud"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dage prøveperiode tilbage.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Konto Suspenderet",
"MESSAGE": "Din konto er suspenderet. Gå ud til supportteamet for mere information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploader...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Denne historie er ikke længere tilgængelig."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Denne historie er ikke længere tilgængelig.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Se på kort"
},
"FORM_BUBBLE": {
"SUBMIT": "Send"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verificerer...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Vises nu:",
"SWITCH": "Skift",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Samtaler",
- "INBOX": "Indbakke",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Alle Samtaler",
"MENTIONED_CONVERSATIONS": "Omtaler",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Rapporter",
"SETTINGS": "Indstillinger",
"CONTACTS": "Kontakter",
+ "ACTIVE": "Aktiv",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Indbakker",
+ "CAPTAIN_SETTINGS": "Indstillinger",
"HOME": "Hjem",
"AGENTS": "Agenter",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Ny indbakke",
"REPORTS_CONVERSATION": "Samtaler",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampagner",
"ONGOING": "Igangværende",
"ONE_OFF": "En rabat",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agenter",
"REPORTS_LABEL": "Etiketter",
"REPORTS_INBOX": "Indbakke",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Sæt dig selv som",
+ "SET_YOUR_AVAILABILITY": "Indstil din tilgængelighed",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Oversigt",
- "FACEBOOK_REAUTHORIZE": "Din Facebook-forbindelse er udløbet, tilslut venligst din Facebook-side igen for at fortsætte tjenesterne",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "Alle Artikler",
- "MY_ARTICLES": "Alle Artikler",
- "DRAFT": "Kladde",
- "ARCHIVED": "Arkiveret",
- "CATEGORY": "Kategori",
- "SETTINGS": "Indstillinger",
- "CATEGORY_EMPTY_MESSAGE": "Ingen kategorier fundet"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategorier",
+ "LOCALES": "Locales",
+ "SETTINGS": "Indstillinger"
},
+ "CHANNELS": "Kanaler",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Læs dokumenter"
+ "DOCS": "Læs dokumenter",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktioner",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Fakturering",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Nuværende Abonnement",
- "PLAN_NOTE": "Du abonnerer i øjeblikket på **%{plan}** planen med **%{quantity}** licenser"
+ "PLAN_NOTE": "Du abonnerer i øjeblikket på **{plan}** planen med **{quantity}** licenser",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Administrer dit abonnement",
"DESCRIPTION": "Se dine tidligere fakturaer, rediger dine fakturaoplysninger eller annuller dit abonnement.",
"BUTTON_TXT": "Gå til faktureringsportalen"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Opdater"
+ },
"CHAT_WITH_US": {
"TITLE": "Brug for hjælp?",
"DESCRIPTION": "Har du problemer med fakturering? Vi er her for at hjælpe.",
"BUTTON_TXT": "Chat med os"
},
- "NO_BILLING_USER": "Din faktureringskonto er ved at blive konfigureret. Opdater venligst siden og prøv igen."
+ "NO_BILLING_USER": "Din faktureringskonto er ved at blive konfigureret. Opdater venligst siden og prøv igen.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Bemærk:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Annuller",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Gå Tilbage",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Kode kopieret til udklipsholder med succes",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Søg attributter"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Løs samtale",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Løs samtale",
+ "CANCEL": "Annuller"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ja",
+ "NO": "Nej"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Vi kunne ikke finde nogen Chatwoot-konti. Opret venligst en ny konto for at fortsætte.",
@@ -294,7 +624,8 @@
"LABEL": "Virksomhedens Navn",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Send"
+ "SUBMIT": "Send",
+ "CANCEL": "Annuller"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Gå til Rapporter sidepanel",
"MOVE_TO_NEXT_TAB": "Flyt til næste fane i samtalelisten",
"GO_TO_SETTINGS": "Gå til Indstillinger",
- "SWITCH_CONVERSATION_STATUS": "Skift til næste samtalestatus",
"SWITCH_TO_PRIVATE_NOTE": "Skift til privat note",
"SWITCH_TO_REPLY": "Skift til svar",
"TOGGLE_SNOOZE_DROPDOWN": "Skift snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Vind / ¤",
- "ALT_OR_OPTION_KEY": "Alt. / ¤",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Rediger"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuller"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Tilføj"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Rediger"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuller"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Tilføj"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Slet",
+ "CANCEL_BUTTON_LABEL": "Annuller"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/signup.json b/app/javascript/dashboard/i18n/locale/da/signup.json
index dd9206bd0..cd47ab0ad 100644
--- a/app/javascript/dashboard/i18n/locale/da/signup.json
+++ b/app/javascript/dashboard/i18n/locale/da/signup.json
@@ -1,12 +1,13 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "Opret en konto",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrer",
"TESTIMONIAL_HEADER": "Alt, hvad der skal til, er blot et skridt for at komme videre",
"TESTIMONIAL_CONTENT": "Du er et skridt fra at engagere dine kunder, fastholde dem og finde nye kunder.",
- "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "TERMS_ACCEPT": "Ved at oprette en konto, accepterer du vores T & C og Privatlivspolitik",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Tilmeld dig med Google"
},
"COMPANY_NAME": {
"LABEL": "Firmanavn",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Arbejde e-mail",
- "PLACEHOLDER": "Indtast din arbejdsmailadresse fx: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Indtast din arbejdsmailadresse. F.eks. navn{'@'}eksempel{'.'}dk",
"ERROR": "Indtast venligst en gyldig arbejdsmail"
},
"PASSWORD": {
"LABEL": "Adgangskode",
"PLACEHOLDER": "Adgangskode",
"ERROR": "Adgangskoden er for kort",
- "IS_INVALID_PASSWORD": "Adgangskoden skal indeholde mindst 1 stort bogstav, 1 lille bogstav, 1 nummer og 1 specialtegn"
+ "IS_INVALID_PASSWORD": "Adgangskoden skal indeholde mindst 1 stort bogstav, 1 lille bogstav, 1 nummer og 1 specialtegn",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Bekræft Adgangskode",
"PLACEHOLDER": "Bekræft Adgangskode",
- "ERROR": "Adgangskode stemmer ikke overens"
+ "ERROR": "Adgangskoder stemmer ikke overens."
},
"API": {
- "SUCCESS_MESSAGE": "Registrering Succesfuld",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Kunne ikke oprette forbindelse til Woot Server, Prøv igen senere"
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Har du allerede en konto?"
+ "SUBMIT": "Opret en konto",
+ "HAVE_AN_ACCOUNT": "Har du allerede en konto?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/sla.json b/app/javascript/dashboard/i18n/locale/da/sla.json
index 049bcc54a..689ffe7f8 100644
--- a/app/javascript/dashboard/i18n/locale/da/sla.json
+++ b/app/javascript/dashboard/i18n/locale/da/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Der er ingen elementer, der matcher denne forespørgsel",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "FRT",
- "NRT",
- "RT",
- "Forretningstider"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Der opstod en fejl. Prøv venligst igen"
+ },
+ "CONFIRM": {
+ "TITLE": "Bekræft Sletning",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ja, Slet ",
+ "NO": "Nej, Behold "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Første svartid",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/da/snooze.json b/app/javascript/dashboard/i18n/locale/da/snooze.json
new file mode 100644
index 000000000..c3b99e8cd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "timer",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "dag",
+ "WEEKS": "weeks",
+ "MONTH": "uge",
+ "MONTHS": "months",
+ "YEAR": "måned",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "i Morgen",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "næste uge",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "dag",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/da/teamsSettings.json b/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
index b055d31ce..174ab57df 100644
--- a/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/da/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Opret nyt team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Hold
Hold lader dig organisere dine agenter i grupper baseret på deres ansvar.
En agent kan være en del af flere hold. Du kan tildele samtaler til et team, når du arbejder i fællesskab.
",
+ "LOADING": "Henter hold",
+ "DESCRIPTION": "Teams giver dig mulighed for at organisere agenter i grupper baseret på deres ansvar. En agent kan tilhøre flere hold. Når du arbejder sammen, kan du tildele samtaler til bestemte teams.",
+ "LEARN_MORE": "Få flere oplysninger om hold funktionen",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Søg i teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Der er ingen teams oprettet på denne konto.",
- "EDIT_TEAM": "Rediger team"
+ "EDIT_TEAM": "Rediger team",
+ "NONE": "Ingen"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Tilføj agenter til team",
- "TITLE": "Tilføj agenter til team - %{teamName}",
+ "TITLE": "Tilføj agenter til team - {teamName}",
"DESC": "Tilføj agenter til dit nyoprettede team. Dette lader dig samarbejde som et team om samtaler, få besked om nye begivenheder i samme samtale."
},
- "WIZARD": [
- {
- "title": "Opret",
- "route": "settings_teams_new",
- "body": "Opret et nyt team af agenter."
- },
- {
- "title": "Tilføj Agenter",
- "route": "settings_teams_add_agents",
- "body": "Tilføj agenter til holdet."
- },
- {
- "title": "Afslut",
- "route": "settings_teams_finish",
- "body": "Så er alt klart!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Opret",
+ "BODY": "Opret et nyt team af agenter."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Tilføj Agenter",
+ "BODY": "Tilføj agenter til holdet."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Afslut",
+ "BODY": "Så er alt klart!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Opdater agenter i teamet",
- "TITLE": "Tilføj agenter til team - %{teamName}",
+ "TITLE": "Tilføj agenter til team - {teamName}",
"DESC": "Tilføj agenter til dit nyoprettede team. Alle de tilføjede agenter vil blive underrettet, når en samtale er tildelt til dette team."
},
- "WIZARD": [
- {
- "title": "Team detaljer",
- "route": "settings_teams_edit",
- "body": "Skift navn, beskrivelse og andre detaljer."
- },
- {
- "title": "Rediger Agenter",
- "route": "settings_teams_edit_members",
- "body": "Rediger agenter i dit team."
- },
- {
- "title": "Afslut",
- "route": "settings_teams_edit_finish",
- "body": "Så er alt klart!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team detaljer",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Skift navn, beskrivelse og andre detaljer."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Rediger Agenter",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Rediger agenter i dit team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Afslut",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Så er alt klart!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Kunne ikke gemme teamdetaljerne. Prøv igen."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-MAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Tilføj agenter",
"ADD_AGENTS": "Tilføjer agenter til dit Team...",
"SELECT": "vælg",
"SELECT_ALL": "vælg alle agenter",
- "SELECTED_COUNT": "%{selected} ud af %{total} valgte agenter."
+ "SELECTED_COUNT": "{selected} ud af {total} valgte agenter."
},
"ADD": {
- "TITLE": "Tilføj agenter til team - %{teamName}",
+ "TITLE": "Tilføj agenter til team - {teamName}",
"DESC": "Tilføj agenter til dit nyoprettede team. Dette lader dig samarbejde som et team om samtaler, få besked om nye begivenheder i samme samtale.",
"SELECT": "vælg",
"SELECT_ALL": "vælg alle agenter",
- "SELECTED_COUNT": "%{selected} ud af %{total} valgte agenter.",
+ "SELECTED_COUNT": "{selected} ud af {total} valgte agenter.",
"BUTTON_TEXT": "Tilføj agenter",
"AGENT_VALIDATION_ERROR": "Vælg mindst én agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Kunne ikke slette teamet. Prøv igen."
},
"CONFIRM": {
- "TITLE": "Er du sikker på du vil slette - %{teamName}",
+ "TITLE": "Er du sikker på du vil slette dette hold?",
"PLACE_HOLDER": "Skriv venligst {teamName} for at bekræfte",
"MESSAGE": "Sletning af teamet vil fjerne teamtildelingen fra de samtaler, der er tildelt dette team.",
"YES": "Slet ",
diff --git a/app/javascript/dashboard/i18n/locale/da/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/da/whatsappTemplates.json
index 11b8ced68..a964730aa 100644
--- a/app/javascript/dashboard/i18n/locale/da/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/da/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Skabeloner",
- "SUBTITLE": "Vælg den whatsapp skabelon, du vil sende",
- "TEMPLATE_SELECTED_SUBTITLE": "Proces %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Søg Skabeloner",
- "NO_TEMPLATES_FOUND": "Ingen skabeloner fundet for",
- "LABELS": {
- "LANGUAGE": "Sprog",
- "TEMPLATE_BODY": "Skabelon Krop",
- "CATEGORY": "Kategori"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variabler",
- "VARIABLE_PLACEHOLDER": "Indtast %{variable} værdi",
- "GO_BACK_LABEL": "Gå Tilbage",
- "SEND_MESSAGE_LABEL": "Send Besked",
- "FORM_ERROR_MESSAGE": "Udfyld venligst alle variabler før afsendelse"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Skabeloner",
+ "SUBTITLE": "Vælg den whatsapp skabelon, du vil sende",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Søg Skabeloner",
+ "NO_TEMPLATES_FOUND": "Ingen skabeloner fundet for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategori",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Sprog",
+ "TEMPLATE_BODY": "Skabelon Krop",
+ "CATEGORY": "Kategori"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabler",
+ "LANGUAGE": "Sprog",
+ "CATEGORY": "Kategori",
+ "VARIABLE_PLACEHOLDER": "Indtast {variable} værdi",
+ "GO_BACK_LABEL": "Gå Tilbage",
+ "SEND_MESSAGE_LABEL": "Send Besked",
+ "FORM_ERROR_MESSAGE": "Udfyld venligst alle variabler før afsendelse",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/da/yearInReview.json b/app/javascript/dashboard/i18n/locale/da/yearInReview.json
new file mode 100644
index 000000000..93b924e93
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/da/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Luk",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "samtaler",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/advancedFilters.json b/app/javascript/dashboard/i18n/locale/de/advancedFilters.json
index 11809a5aa..cdff554ae 100644
--- a/app/javascript/dashboard/i18n/locale/de/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/de/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
"TITLE": "Gespräche filtern",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "Füge Filter unten hinzu und klicke auf „Filter anwenden“, um das Durcheinander der Chats zu beenden.",
+ "EDIT_CUSTOM_FILTER": "Ordner bearbeiten",
+ "CUSTOM_VIEWS_SUBTITLE": "Füge Filter hinzu oder entferne sie und aktualisieren deinen Ordner.",
+ "ADD_NEW_FILTER": "Filter hinzufügen",
+ "FILTER_DELETE_ERROR": "Hoppla, wir können nicht, nichts speichern! Bitte füge mindestens einen Filter hinzu, um ihn zu speichern.",
"SUBMIT_BUTTON_LABEL": "Filter übernehmen",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "Ordner aktualisieren",
"CANCEL_BUTTON_LABEL": "Abbrechen",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
+ "CLEAR_BUTTON_LABEL": "Filter zurücksetzen",
+ "FOLDER_LABEL": "Ordnername",
+ "FOLDER_QUERY_LABEL": "Ordnerabfrage",
"EMPTY_VALUE_ERROR": "Wert ist erforderlich.",
"TOOLTIP_LABEL": "Gespräche filtern",
"QUERY_DROPDOWN_LABELS": {
"AND": "UND",
"OR": "ODER"
},
+ "INPUT_PLACEHOLDER": "Wert eintragen",
"OPERATOR_LABELS": {
"equal_to": "Gleich",
"not_equal_to": "Nicht gleich",
- "contains": "Enthält",
"does_not_contain": "Beinhaltet nicht",
"is_present": "Ist anwesend",
"is_not_present": "Ist nicht anwesend",
"is_greater_than": "Ist größer als",
"is_less_than": "Ist kleiner als",
"days_before": "Ist x Tage her",
- "starts_with": "Beginnt mit"
+ "starts_with": "Beginnt mit",
+ "equalTo": "Gleich",
+ "notEqualTo": "Nicht gleich",
+ "contains": "Enthält",
+ "doesNotContain": "Beinhaltet nicht",
+ "isPresent": "Ist anwesend",
+ "isNotPresent": "Ist nicht anwesend",
+ "isGreaterThan": "Ist größer als",
+ "isLessThan": "Ist kleiner als",
+ "daysBefore": "Ist x Tage her",
+ "startsWith": "Beginnt mit"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Ja",
@@ -36,15 +46,15 @@
},
"ATTRIBUTES": {
"STATUS": "Status",
- "ASSIGNEE_NAME": "Assignee name",
+ "ASSIGNEE_NAME": "Bearbeiter Name",
"INBOX_NAME": "Posteingangsname",
"TEAM_NAME": "Teamname",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "CONVERSATION_IDENTIFIER": "Konversation-ID",
+ "CAMPAIGN_NAME": "Kampagnenname",
"LABELS": "Labels",
- "BROWSER_LANGUAGE": "Browser language",
+ "BROWSER_LANGUAGE": "Browsersprache",
"PRIORITY": "Priorität",
- "COUNTRY_NAME": "Country name",
+ "COUNTRY_NAME": "Landesname",
"REFERER_LINK": "Referer-Link",
"CUSTOM_ATTRIBUTE_LIST": "Liste",
"CUSTOM_ATTRIBUTE_TEXT": "Text",
@@ -54,16 +64,22 @@
"CREATED_AT": "Erstellt am",
"LAST_ACTIVITY": "Letzte Aktivität"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Wert ist erforderlich",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribut-Schlüssel ist erforderlich",
+ "FILTER_OPERATOR_REQUIRED": "Filter-Operator ist erforderlich",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Wert muss zwischen 1 und 998 liegen"
+ },
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "Standard Filter",
+ "ADDITIONAL_FILTERS": "Zusätzliche Filter",
+ "CUSTOM_ATTRIBUTES": "Benutzerdefinierte Attribute"
},
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "Möchten Sie diesen Filter speichern?",
"LABEL": "Diesen Filter benennen",
- "PLACEHOLDER": "Name your filter to refer it later.",
+ "PLACEHOLDER": "Benenne deinen Filter, um ihn später wiederzuerkennen.",
"ERROR_MESSAGE": "Name wird benötigt.",
"SAVE_BUTTON": "Filter speichern",
"CANCEL_BUTTON": "Abbrechen",
@@ -77,7 +93,7 @@
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "Ordner bearbeiten"
},
"DELETE": {
"DELETE_BUTTON": "Filter löschen",
@@ -85,7 +101,7 @@
"CONFIRM": {
"TITLE": "Löschen bestätigen",
"MESSAGE": "Möchten Sie den Filter wirklich löschen ",
- "YES": "Yes, delete",
+ "YES": "Ja, löschen",
"NO": "Nein, behalte es"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/de/agentBots.json b/app/javascript/dashboard/i18n/locale/de/agentBots.json
index 2560ef1ed..b763812a8 100644
--- a/app/javascript/dashboard/i18n/locale/de/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/de/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "Bots",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Bot Name ist erforderlich."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Was macht dieser Bot?"
- },
- "BOT_CONFIG": {
- "ERROR": "Bitte geben Sie Ihre CSML Bot-Konfiguration oben ein.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validieren und speichern"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "DESC": "Weise deinem Posteingang einen Agent Bot zu. Er kann die ersten Konversationen bearbeiten und sie bei Bedarf an einen echten Agenten übertragen.",
"SUBMIT": "Aktualisieren",
- "DISCONNECT": "Disconnect bot",
+ "DISCONNECT": "Bot-Verbindung trennen",
"SUCCESS_MESSAGE": "Agenten-Bot erfolgreich aktualisiert.",
"DISCONNECTED_SUCCESS_MESSAGE": "Agent-Bot erfolgreich getrennt.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "ERROR_MESSAGE": "Der Agent Bot konnte nicht aktualisiert werden, bitte versuche es später erneut.",
+ "DISCONNECTED_ERROR_MESSAGE": "Der Agent Bot konnte nicht entfernt werden, bitte versuchen Sie es später erneut.",
+ "SELECT_PLACEHOLDER": "Bot auswählen"
},
"ADD": {
- "TITLE": "Neuen Bot konfigurieren",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Stornieren",
"API": {
"SUCCESS_MESSAGE": "Bot erfolgreich hinzugefügt.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "ERROR_MESSAGE": "Bot konnte nicht hinzugefügt werden, bitte versuchen Sie es später erneut."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "Bots werden geladen...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook-URL",
+ "ACTIONS": "Aktionen"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Löschen",
- "TITLE": "Delete bot",
- "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.",
+ "TITLE": "Bot löschen",
+ "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": "Could not delete bot. Please try again."
+ "ERROR_MESSAGE": "Der Bot konnte nicht gelöscht werden, bitte versuche es später erneut."
}
},
"EDIT": {
"BUTTON_TEXT": "Bearbeiten",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Stornieren",
+ "TITLE": "Bot bearbeiten",
"API": {
"SUCCESS_MESSAGE": "Bot erfolgreich aktualisiert.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "ERROR_MESSAGE": "Der Bot konnte nicht aktualisiert werden, bitte versuche es später erneut."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
index c53d7aca7..0ed891af8 100644
--- a/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agenten",
"HEADER_BTN_TXT": "Agent hinzufügen",
"LOADING": "Agentenliste abrufen",
- "SIDEBAR_TXT": "Agenten
Ein Agent ist Mitglied Ihres Kundenservice-Teams.
Agenten können Nachrichten Ihrer Benutzer ansehen und beantworten. Die Liste zeigt alle Agenten, die derzeit in Ihrem Konto sind.
Klicken Sie auf Agent hinzufügen, um einen neuen Agent hinzuzufügen. Agent, den du hinzufügst, wird eine E-Mail mit einem Bestätigungslink erhalten, um sein Konto zu aktivieren. Danach kann er auf Chatwoot zugreifen und auf Nachrichten antworten.
Zugriff auf Chatwoots Funktionen basieren auf folgenden Rollen.
Agent - Agenten mit dieser Rolle können nur auf Posteingänge, Berichte und Unterhaltungen zugreifen. Sie können Konversationen anderen Akteuren oder sich selbst zuweisen und Gespräche lösen.
Administrator - Administrator hat Zugriff auf alle für Ihr Konto aktivierten Chatwoot-Funktionen einschließlich der Einstellungen, zusammen mit allen Privilegien eines normalen Agenten.
",
+ "DESCRIPTION": "Ein Agent ist ein Mitglied Ihres Kundensupport-Teams, das Nachrichten von Benutzern einsehen und beantworten kann. Die folgende Liste zeigt alle Agenten in Ihrem Konto.",
+ "LEARN_MORE": "Lernen Sie mehr über Benutzerrollen",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Diesem Konto sind keine Agenten zugeordnet",
"TITLE": "Verwalten Sie Agenten in Ihrem Team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Aktionen",
"VERIFIED": "Verifiziert",
- "VERIFICATION_PENDING": "Überprüfung ausstehend"
+ "VERIFICATION_PENDING": "Überprüfung ausstehend",
+ "AVAILABLE_CUSTOM_ROLE": "Verfügbare Berechtigungen der benutzerdefinierten Rolle"
},
"ADD": {
"TITLE": "Fügen Sie Ihrem Team einen Agenten hinzu",
@@ -76,7 +79,7 @@
},
"AGENT_AVAILABILITY": {
"LABEL": "Verfügbarkeit",
- "PLACEHOLDER": "Bitte wählen Sie den Online Status",
+ "PLACEHOLDER": "Bitte wählen Sie Ihre Verfügbarkeit aus",
"ERROR": "Verfügbarkeit ist erforderlich"
},
"SUBMIT": "Agent bearbeiten"
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
}
},
+ "SEARCH_PLACEHOLDER": "Agenten suchen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Keine Ergebnisse gefunden."
},
@@ -103,6 +108,9 @@
"AGENT": "Agent auswählen",
"TEAM": "Team auswählen"
},
+ "LIST": {
+ "NONE": "Keine"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Keine Agenten gefunden",
diff --git a/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
index 1a8e88c38..7c63b9747 100644
--- a/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Benutzerdefinierte Attribute",
"HEADER_BTN_TXT": "Benutzerdefiniertes Attribut hinzufügen",
"LOADING": "Benutzerdefinierte Attribute abrufen",
- "SIDEBAR_TXT": "Benutzerdefinierte Attribute
Ein benutzerdefiniertes Attribut verfolgt Fakten über Ihre Kontakte/Konversationen – wie den Abonnementplan oder wann sie den ersten Artikel bestellt haben usw.
Um ein benutzerdefiniertes Attribut zu erstellen, klicken Sie einfach auf Benutzerdefiniertes Attribut hinzufügen. Sie können auch ein vorhandenes benutzerdefiniertes Attribut bearbeiten oder löschen, indem Sie auf die Schaltfläche „Bearbeiten“ oder „Löschen“ klicken.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Attribut suchen...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Konversation",
+ "CONTACT": "Kontakt",
+ "COMPANY": "Firma"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Nummer",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "Liste",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Benutzerdefiniertes Attribut hinzufügen",
"SUBMIT": "Erstellen",
@@ -41,15 +58,19 @@
"IN_VALID": "Ungültiger Schlüssel"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Regex Muster",
+ "PLACEHOLDER": "Bitte benutzerdefiniertes Attribut Regex Muster eingeben. (Optional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Regex Hinweis",
+ "PLACEHOLDER": "Bitte geben Sie einen Hinweis zum Regex Muster ein. (Optional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Regex Validierung aktivieren"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Das benutzerdefinierte Attribut konnte nicht gelöscht werden. Versuchen Sie es noch einmal."
},
"CONFIRM": {
- "TITLE": "Sind Sie sicher, dass Sie %{attributeName} löschen möchten",
+ "TITLE": "Sind Sie sicher, dass Sie {attributeName} löschen möchten",
"PLACE_HOLDER": "Bitte geben Sie {attributeName} zur Bestätigung ein",
"MESSAGE": "Beim Löschen wird das benutzerdefinierte Attribut entfernt",
"YES": "Löschen ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Benutzerdefinierte Attribute",
"CONVERSATION": "Konversation",
- "CONTACT": "Kontakt"
+ "CONTACT": "Kontakt",
+ "COMPANY": "Firma"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Beschreibung",
- "Typ",
- "Schlüssel"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Beschreibung",
+ "TYPE": "Typ",
+ "KEY": "Schlüssel"
+ },
"BUTTONS": {
"EDIT": "Bearbeiten",
"DELETE": "Löschen"
@@ -106,16 +128,20 @@
"NOT_FOUND": "Es sind keine benutzerdefinierten Attribute konfiguriert"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Regex Muster",
+ "PLACEHOLDER": "Bitte benutzerdefiniertes Attribut Regex Muster eingeben. (Optional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Regex Hinweis",
+ "PLACEHOLDER": "Bitte geben Sie einen Hinweis zum Regex Muster ein. (Optional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Regex Validierung aktivieren"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/auditLogs.json b/app/javascript/dashboard/i18n/locale/de/auditLogs.json
index 7fd21f6eb..6b4c17a47 100644
--- a/app/javascript/dashboard/i18n/locale/de/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/de/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit-Protokolle",
"HEADER_BTN_TXT": "Audit-Protokolle hinzufügen",
"LOADING": "Audit-Protokolle abrufen",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Es gibt keine Elemente, die dieser Abfrage entsprechen",
"SIDEBAR_TXT": "Auditprotokolle
Auditprotokolle sind Spuren für Ereignisse und Aktionen in einem Chatwoot-System.
",
"LIST": {
"404": "Es gibt keine Audit-Protokolle in diesem Konto.",
"TITLE": "Audit-Protokolle verwalten",
"DESC": "Auditprotokolle sind Spuren für Ereignisse und Aktionen in einem Chatwoot-System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP-Adresse"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP-Adresse"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Audit-Protokolle erfolgreich abgerufen",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 4701a1e92..6a908b5a1 100644
--- a/app/javascript/dashboard/i18n/locale/de/automation.json
+++ b/app/javascript/dashboard/i18n/locale/de/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatisierungen",
- "HEADER_BTN_TXT": "Automatisierungsregel hinzufügen",
+ "HEADER": "Automatisierung",
+ "DESCRIPTION": "Mittels Automatisierung können bestehende Prozesse ersetzt und rationalisiert werden, die manuellen Aufwand erfordern, z. B. das Hinzufügen von Etiketten und die Zuweisung von Gesprächen an den am besten geeigneten Agenten. So kann sich das Team auf seine Stärken konzentrieren und gleichzeitig den Zeitaufwand für Routineaufgaben reduzieren.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatisierungsregeln abrufen",
- "SIDEBAR_TXT": "Automation Rules
Automation kann bestehende Prozesse ersetzen und automatisieren, die manuellen Aufwand erfordern. Mit der Automatisierung kannst Du viele Dinge tun, darunter das Hinzufügen von Labels und das Zuweisen von Gesprächen zum besten Agenten. Das Team konzentriert sich also auf das, was es am besten kann, und verbringt weniger Zeit mit manuellen Aufgaben.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatisierungsregel hinzufügen",
"SUBMIT": "Erstellen",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Beschreibung",
- "Aktiv",
- "Erstellt am"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Aktiv",
+ "CREATED_ON": "Erstellt am",
+ "ACTIONS": "Aktionen"
+ },
"404": "Keine Automatisierungsregeln gefunden"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Zum Speichern ist mindestens eine Aktion erforderlich",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Geben Sie hier Ihre Nachricht ein",
- "TEAM_DROPDOWN_PLACEHOLDER": "Teams auswählen"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Teams auswählen",
+ "EMAIL_INPUT_PLACEHOLDER": "E-Mail eingeben",
+ "URL_INPUT_PLACEHOLDER": "URL eingeben"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Automatisierungsregel aktivieren",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Hochladen...",
"LABEL_UPLOADED": "Erfolgreich hochgeladen",
"LABEL_UPLOAD_FAILED": "Upload fehlgeschlagen"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribut-Schlüssel ist erforderlich",
+ "FILTER_OPERATOR_REQUIRED": "Filter-Operator ist erforderlich",
+ "VALUE_REQUIRED": "Wert ist erforderlich",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Wert muss zwischen 1 und 998 liegen",
+ "ACTION_PARAMETERS_REQUIRED": "Aktionsparameter sind erforderlich",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "Mindestens eine Bedingung ist erforderlich",
+ "ATLEAST_ONE_ACTION_REQUIRED": "Mindestens eine Aktion ist erforderlich"
+ },
+ "NONE_OPTION": "Keine",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Konversation erstellt",
+ "CONVERSATION_UPDATED": "Konversation aktualisiert",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Priorität ändern",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Unterhaltung öffnen",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Keine",
+ "LOW": "Niedrig",
+ "MEDIUM": "Mittel",
+ "HIGH": "Hoch",
+ "URGENT": "Dringend"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Notiz",
+ "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",
+ "COMPANY_NAME": "Firma",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Zugewiesener",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priorität",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/bulkActions.json b/app/javascript/dashboard/i18n/locale/de/bulkActions.json
index 0f1155b07..64ffeef2e 100644
--- a/app/javascript/dashboard/i18n/locale/de/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/de/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} Konversationen ausgewählt",
- "AGENT_SELECT_LABEL": "Agent auswählen",
- "ASSIGN_CONFIRMATION_LABEL": "Sind Sie sicher, %{conversationCount} %{conversationLabel} zuzuweisen",
- "UNASSIGN_CONFIRMATION_LABEL": "Möchten Sie die Zuweisung von %{conversationCount} %{conversationLabel} wirklich aufheben?",
- "GO_BACK_LABEL": "Zurück",
- "ASSIGN_LABEL": "Zuordnen",
+ "CONVERSATIONS_SELECTED": "{conversationCount} Konversationen ausgewählt",
+ "NONE": "Keine",
+ "CLEAR_SELECTION": "Leeren",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ja",
+ "CANCEL": "Stornieren",
+ "SEARCH_INPUT_PLACEHOLDER": "Suchen",
"ASSIGN_AGENT_TOOLTIP": "Agent zuweisen",
"ASSIGN_TEAM_TOOLTIP": "Team zuweisen",
"ASSIGN_SUCCESFUL": "Konversationen erfolgreich zugewiesen.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "ASSIGN_FAILED": "Konversationen konnten nicht zugewiesen werden. Bitte versuchen Sie es erneut.",
"RESOLVE_SUCCESFUL": "Konversationen erfolgreich gelöst.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "RESOLVE_FAILED": "Konversationen konnten nicht gelöst werden. Bitte versuchen Sie es erneut.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Nur auf dieser Seite sichtbaren Konversationen sind ausgewählt.",
- "AGENT_LIST_LOADING": "Agenten werden geladen",
"UPDATE": {
"CHANGE_STATUS": "Status ändern",
- "SNOOZE_UNTIL_NEXT_REPLY": "Bis zur nächsten Antwort zurückstellen.",
+ "SNOOZE_UNTIL": "Erinnern",
"UPDATE_SUCCESFUL": "Der Konversationsstatus wurde erfolgreich aktualisiert.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "UPDATE_FAILED": "Konversationen konnten nicht aktualisiert werden. Bitte versuchen Sie es erneut."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Konversationen können aufgrund fehlender notwendiger Attribute nicht gelöst werden",
+ "PARTIAL_SUCCESS": "Einige Konversationen benötigen zum Lösen erforderliche Attribute und wurden übersprungen"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Keine Labels gefunden für",
+ "ASSIGN_LABELS": "Labels zuweisen",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Ausgewählte Labels zuweisen",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels erfolgreich zugewiesen.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Labels konnten nicht zugewiesen werden. Bitte versuchen Sie es erneut.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Team auswählen",
"NONE": "Keine",
- "NO_TEAMS_AVAILABLE": "Es wurden noch keine Teams zu diesem Konto hinzugefügt.",
- "ASSIGN_SELECTED_TEAMS": "Ausgewähltes Team zuweisen.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"ASSIGN_SUCCESFUL": "Teams erfolgreich zugewiesen.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_FAILED": "Team konnte nicht zugewiesen werden. Bitte versuche es erneut."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/campaign.json b/app/javascript/dashboard/i18n/locale/de/campaign.json
index ed7737ed2..27e9cfeb1 100644
--- a/app/javascript/dashboard/i18n/locale/de/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/de/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampagnen",
- "SIDEBAR_TXT": "Proaktive Nachrichten ermöglichen es dem Kunden, ausgehende Nachrichten an seine Kontakte zu senden, die mehr Gespräche auslösen würden. Klicken Sie auf Kampagne hinzufügen, um eine neue Kampagne zu erstellen. Sie können eine bestehende Kampagne auch bearbeiten oder löschen, indem Sie auf die Schaltfläche Bearbeiten oder Löschen klicken.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Eine einmalige Kampagne erstellen",
- "ONGOING": "Eine laufende Kampagne erstellen"
- },
- "ADD": {
- "TITLE": "Kampagne erstellen",
- "DESC": "Proaktive Nachrichten ermöglichen es dem Kunden, ausgehende Nachrichten an seine Kontakte zu senden, die mehr Konversationen auslösen würden.",
- "CANCEL_BUTTON_TEXT": "Abbrechen",
- "CREATE_BUTTON_TEXT": "Erstellen",
- "FORM": {
- "TITLE": {
- "LABEL": "Titel",
- "PLACEHOLDER": "Bitte geben Sie den Titel der Kampagne ein",
- "ERROR": "Titel ist erforderlich"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Aktiviert",
+ "DISABLED": "Deaktiviert"
},
- "SCHEDULED_AT": {
- "LABEL": "Geplanter Zeitpunkt",
- "PLACEHOLDER": "Bitte wählen Sie die Zeit",
- "CONFIRM": "Bestätigen",
- "ERROR": "Geplante Zeit ist erforderlich"
- },
- "AUDIENCE": {
- "LABEL": "Zielgruppe",
- "PLACEHOLDER": "Kunden-Labels auswählen",
- "ERROR": "Zielgruppe ist erforderlich"
- },
- "INBOX": {
- "LABEL": "Posteingang auswählen",
- "PLACEHOLDER": "Posteingang auswählen",
- "ERROR": "Posteingang ist erforderlich"
- },
- "MESSAGE": {
- "LABEL": "Nachricht",
- "PLACEHOLDER": "Bitte geben Sie die Nachricht der Kampagne ein",
- "ERROR": "Nachricht ist erforderlich"
- },
- "SENT_BY": {
- "LABEL": "Gesendet von",
- "PLACEHOLDER": "Bitte wählen Sie den Inhalt der Kampagne aus",
- "ERROR": "Absender ist erforderlich"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Bitte URL eingeben",
- "ERROR": "Bitte geben Sie eine gültige URL ein"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Zeit auf Seite (Sekunden)",
- "PLACEHOLDER": "Bitte die Uhrzeit eingeben",
- "ERROR": "Uhrzeit auf Seite ist erforderlich"
- },
- "ENABLED": "Kampagne aktivieren",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Nur während Geschäftszeiten auslösen",
- "SUBMIT": "Kampagne hinzufügen"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Gesendet von",
+ "BOT": "Bot",
+ "FROM": "von",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampagne erfolgreich erstellt",
- "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Stornieren",
+ "CREATE_BUTTON_TEXT": "Erstellen",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Bitte geben Sie den Titel der Kampagne ein",
+ "ERROR": "Titel ist erforderlich"
+ },
+ "MESSAGE": {
+ "LABEL": "Nachricht",
+ "PLACEHOLDER": "Bitte geben Sie die Nachricht der Kampagne ein",
+ "ERROR": "Nachricht ist erforderlich"
+ },
+ "INBOX": {
+ "LABEL": "Eingang auswählen",
+ "PLACEHOLDER": "Eingang auswählen",
+ "ERROR": "Posteingang ist erforderlich"
+ },
+ "SENT_BY": {
+ "LABEL": "Gesendet von",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Absender ist erforderlich"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Bitte URL eingeben",
+ "ERROR": "Bitte geben Sie eine gültige URL ein"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Zeit auf Seite (Sekunden)",
+ "PLACEHOLDER": "Bitte die Uhrzeit eingeben",
+ "ERROR": "Uhrzeit auf Seite ist erforderlich"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Kampagne aktivieren",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Nur während Geschäftszeiten auslösen"
+ },
+ "BUTTONS": {
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Löschen",
- "CONFIRM": {
- "TITLE": "Löschung bestätigen",
- "MESSAGE": "Sind Sie sicher, dass Sie das löschen möchten?",
- "YES": "Ja, löschen ",
- "NO": "Nein, behalten "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Erledigt",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Stornieren",
+ "CREATE_BUTTON_TEXT": "Erstellen",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Bitte geben Sie den Titel der Kampagne ein",
+ "ERROR": "Titel ist erforderlich"
+ },
+ "MESSAGE": {
+ "LABEL": "Nachricht",
+ "PLACEHOLDER": "Bitte geben Sie die Nachricht der Kampagne ein",
+ "ERROR": "Nachricht ist erforderlich"
+ },
+ "INBOX": {
+ "LABEL": "Eingang auswählen",
+ "PLACEHOLDER": "Eingang auswählen",
+ "ERROR": "Posteingang ist erforderlich"
+ },
+ "AUDIENCE": {
+ "LABEL": "Zielgruppe",
+ "PLACEHOLDER": "Kunden-Labels auswählen",
+ "ERROR": "Zielgruppe ist erforderlich"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Geplanter Zeitpunkt",
+ "PLACEHOLDER": "Bitte wählen Sie die Zeit",
+ "ERROR": "Geplante Zeit ist erforderlich"
+ },
+ "BUTTONS": {
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Erledigt",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Stornieren",
+ "CREATE_BUTTON_TEXT": "Erstellen",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Bitte geben Sie den Titel der Kampagne ein",
+ "ERROR": "Titel ist erforderlich"
+ },
+ "INBOX": {
+ "LABEL": "Eingang auswählen",
+ "PLACEHOLDER": "Eingang auswählen",
+ "ERROR": "Posteingang ist erforderlich"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Verarbeite {templateName}",
+ "LANGUAGE": "Sprache",
+ "CATEGORY": "Kategorie",
+ "VARIABLES_LABEL": "Variablen",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Zielgruppe",
+ "PLACEHOLDER": "Kunden-Labels auswählen",
+ "ERROR": "Zielgruppe ist erforderlich"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Geplanter Zeitpunkt",
+ "PLACEHOLDER": "Bitte wählen Sie die Zeit",
+ "ERROR": "Geplante Zeit ist erforderlich"
+ },
+ "BUTTONS": {
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Sind Sie sicher, dass Sie das löschen möchten?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Löschen",
"API": {
"SUCCESS_MESSAGE": "Kampagne erfolgreich gelöscht",
- "ERROR_MESSAGE": "Die Kampagne konnte nicht gelöscht werden. Bitte versuchen Sie es später noch einmal."
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut."
}
- },
- "EDIT": {
- "TITLE": "Kampagne bearbeiten",
- "UPDATE_BUTTON_TEXT": "Aktualisieren",
- "API": {
- "SUCCESS_MESSAGE": "Kampagne erfolgreich aktualisiert",
- "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Lade Kampagnen...",
- "404": "Es wurden keine Kampagnen für diesen Posteingang erstellt.",
- "TABLE_HEADER": {
- "TITLE": "Titel",
- "MESSAGE": "Nachricht",
- "INBOX": "Posteingang",
- "STATUS": "Status",
- "SENDER": "Absender",
- "URL": "URL",
- "SCHEDULED_AT": "Geplanter Zeitpunkt",
- "TIME_ON_PAGE": "Zeit (Sekunden)",
- "CREATED_AT": "Erstellt am"
- },
- "BUTTONS": {
- "ADD": "Hinzufügen",
- "EDIT": "Bearbeiten",
- "DELETE": "Löschen"
- },
- "STATUS": {
- "ENABLED": "Aktiviert",
- "DISABLED": "Deaktiviert",
- "COMPLETED": "Erledigt",
- "ACTIVE": "Aktiv"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Einmalige Kampagne",
- "404": "Keine einmalige Kampagnen",
- "INBOXES_NOT_FOUND": "Bitte erstellen Sie einen SMS-Posteingang und fügen Sie Kampagnen hinzu"
- },
- "ONGOING": {
- "HEADER": "Laufende Kampagnen",
- "404": "Keine laufende Kampagnen",
- "INBOXES_NOT_FOUND": "Bitte erstellen Sie einen Website-Posteingang und fügen Sie Kampagnen hinzu"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
index 6bcf5cd44..e26e3dede 100644
--- a/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "Vorgefertigte Antworten",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "LEARN_MORE": "Erfahren Sie mehr über vorgefertigte Antworten",
+ "DESCRIPTION": "Vorgefertigte Antworten sind vorgeschriebene Antwortvorlagen, die Ihnen helfen, schnell auf eine Konversation zu reagieren. Agenten können das Zeichen '/' gefolgt von dem Kurzbefehl eingeben, um während einer Konversation eine vorgefertigte Antwort einzufügen. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Vorgefertigte Antwort hinzufügen",
+ "LOADING": "Lade vorgefertigte Antworten...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "In diesem Konto sind keine gespeicherten Antworten verfügbar.",
"TITLE": "Verwalten Sie vordefinierte Antworten",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Inhalt",
- "Aktionen"
- ]
+ "DESC": "Vorgefertigte Antworten sind vorgeschriebene Antwortvorlagen, die verwendet werden können, um schnell auf Gespräche zu antworten.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short-Code",
+ "CONTENT": "Inhalt",
+ "ACTIONS": "Aktionen"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "Vorgefertigte Antwort hinzufügen",
+ "DESC": "Vorgefertigte Antworten sind vorgeschriebene Antwortvorlagen, die verwendet werden können, um schnell auf Gespräche zu antworten.",
"CANCEL_BUTTON_TEXT": "Abbrechen",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "Short-Code",
+ "PLACEHOLDER": "Bitte geben Sie einen Short-Code ein.",
+ "ERROR": "Short-Code ist erforderlich."
},
"CONTENT": {
"LABEL": "Nachricht",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Bitte schreiben Sie die Nachricht, die Sie als Vorlage speichern möchten, um sie später zu verwenden.",
+ "ERROR": "Nachricht ist erforderlich."
},
"SUBMIT": "Einreichen"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "Vorgefertigte Antwort erfolgreich hinzugefügt.",
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "Vorgefertigte Antwort bearbeiten",
"CANCEL_BUTTON_TEXT": "Abbrechen",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "Short-Code",
+ "PLACEHOLDER": "Bitte geben Sie einen Short-Code ein.",
+ "ERROR": "Short-Code ist erforderlich."
},
"CONTENT": {
"LABEL": "Nachricht",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "PLACEHOLDER": "Bitte schreiben Sie die Nachricht, die Sie als Antwortvorlage speichern möchten, um sie später zu verwenden.",
"ERROR": "Nachricht ist erforderlich."
},
"SUBMIT": "Einreichen"
},
"BUTTON_TEXT": "Bearbeiten",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "Vorgefertigte Antwort wurde erfolgreich aktualisiert.",
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
}
},
"DELETE": {
"BUTTON_TEXT": "Löschen",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "Vorgefertigte Antwort wurde erfolgreich gelöscht.",
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
},
"CONFIRM": {
"TITLE": "Löschen bestätigen",
"MESSAGE": "Bist du sicher, das du das löschen möchtest",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "Ja, löschen ",
+ "NO": "Nein, behalten "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/chatlist.json b/app/javascript/dashboard/i18n/locale/de/chatlist.json
index c5bfe39c7..166730e96 100644
--- a/app/javascript/dashboard/i18n/locale/de/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/de/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "In dieser Gruppe existieren keine aktiven Gespräche."
},
+ "FAILED_TO_SEND": "Fehler beim Senden",
"TAB_HEADING": "Gespräche",
"MENTION_HEADING": "Erwähnungen",
"UNATTENDED_HEADING": "Unbeaufsichtigt",
@@ -53,28 +54,31 @@
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "Letzte Aktivität: Älteste zuerst"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "Letzte Aktivität: Neueste zuerst"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "Erstellt am: Neueste zuerst"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "Erstellt am: Älteste zuerst"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "Priorität: Höchste zuerst"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "Priorität: Niedrigste zuerst"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "Ausstehende Antwort: Längste zuerst"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "Ausstehende Antwort: Kürzeste zuerst"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Ort"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "hat eine URL geteilt"
+ },
+ "contact": {
+ "CONTENT": "Geteilter Kontakt"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Kein Inhalt verfügbar",
"HIDE_QUOTED_TEXT": "Zitierten Text ausblenden",
"SHOW_QUOTED_TEXT": "Zitierten Text anzeigen",
- "MESSAGE_READ": "Lesen"
+ "MESSAGE_READ": "Lesen",
+ "SENDING": "Sende",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/companies.json b/app/javascript/dashboard/i18n/locale/de/companies.json
new file mode 100644
index 000000000..e83924080
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Unternehmen",
+ "SORT_BY": {
+ "LABEL": "Sortieren nach",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Erstellt am",
+ "LAST_ACTIVITY_AT": "Letzte Aktivität",
+ "CONTACTS_COUNT": "Anzahl Kontakte"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Aufsteigend",
+ "DESCENDING": "Absteigend"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Unternehmen suchen...",
+ "LOADING": "Unternehmen werden geladen...",
+ "UNNAMED": "Unbenanntes Unternehmen",
+ "CONTACTS_COUNT": "{n} Kontakt | {n} Kontakte",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attribute",
+ "CONTACTS": "Kontakte",
+ "HISTORY": "Verlauf",
+ "NOTES": "Notizen"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Attribut suchen...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Kontakte werden geladen...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Kontakt hinzufügen",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Kontakte suchen...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "Keine Kontakte gefunden.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Firma",
+ "CONTACT_LABEL": "Kontakt",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Stornieren"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Erstellt am {date}",
+ "LAST_ACTIVE": "Zuletzt aktiv {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Keine Unternehmen gefunden"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Zeige {startItem} – {endItem} von {totalItems} Unternehmen | Zeige {startItem} – {endItem} von {totalItems} Unternehmen"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/components.json b/app/javascript/dashboard/i18n/locale/de/components.json
new file mode 100644
index 000000000..9a02af04c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Keine Ergebnisse gefunden.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Keine Ergebnisse gefunden.",
+ "SEARCHING": "Suchen..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Stornieren",
+ "CONFIRM": "Bestätigen"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Bitte wählen Sie die Landesvorwahl aus der Liste"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Autor ist nicht verfügbar"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Mehr erfahren",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/contact.json b/app/javascript/dashboard/i18n/locale/de/contact.json
index 33dd5889b..f1f06d269 100644
--- a/app/javascript/dashboard/i18n/locale/de/contact.json
+++ b/app/javascript/dashboard/i18n/locale/de/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP-Adresse",
"CREATED_AT_LABEL": "Erstellt",
"NEW_MESSAGE": "Neue Nachricht",
+ "CALL": "Anruf",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Spracheingang wählen"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Es sind keine vorherigen Gespräche mit diesem Kontakt verbunden.",
"TITLE": "Vorherige Gespräche"
@@ -39,16 +48,17 @@
},
"MERGE_CONTACT": "Kontakte zusammenführen",
"CONTACT_ACTIONS": "Kontakt-Aktionen",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "Kontakt blockieren",
+ "UNMUTE_CONTACT": "Kontakt entsperren",
+ "MUTED_SUCCESS": "Dieser Kontakt wurde erfolgreich blockiert. Sie werden über keine zukünftigen Konversationen benachrichtigt.",
+ "UNMUTED_SUCCESS": "Dieser Kontakt wurde erfolgreich entsperrt.",
"SEND_TRANSCRIPT": "Transkript senden",
"EDIT_LABEL": "Bearbeiten",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Benutzerdefinierte Attribute",
"CONTACT_LABELS": "Kontakt-Labels",
- "PREVIOUS_CONVERSATIONS": "Vorherige Konversationen"
+ "PREVIOUS_CONVERSATIONS": "Vorherige Konversationen",
+ "NO_RECORDS_FOUND": "Keine Attribute gefunden"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Kontakt bearbeiten",
"DESC": "Kontaktdetails bearbeiten"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Neuer Kontakt",
- "TITLE": "Neuen Kontakt erstellen",
- "DESC": "Fügen Sie grundlegende Informationen über den Kontakt hinzu."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importieren",
- "TITLE": "Kontakte importieren",
- "DESC": "Kontakte über CSV-Datei importieren.",
- "DOWNLOAD_LABEL": "Ein CSV-Beispiel herunterladen.",
- "FORM": {
- "LABEL": "CSV-Datei",
- "SUBMIT": "Importieren",
- "CANCEL": "Abbrechen"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exportieren",
- "TITLE": "Kontakte exportieren",
- "DESC": "Kontakte als CSV exportieren.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut",
- "CONFIRM": {
- "TITLE": "Kontakte exportieren",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Löschung bestätigen",
- "MESSAGE": "Möchten Sie diese Notiz wirklich löschen?",
- "YES": "Ja, löschen",
- "NO": "Nein, behalte es"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Kontakt löschen",
"TITLE": "Kontakt löschen",
@@ -211,8 +182,8 @@
"ERROR": "Nachricht darf nicht leer sein"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "Dateien auswählen",
+ "HELP_TEXT": "Ziehe Dateien hierher oder wähle Dateien zum Anhängen aus"
},
"SUBMIT": "Nachricht senden",
"CANCEL": "Abbrechen",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontakte",
- "FIELDS": "Kontakt-Felder",
- "SEARCH_BUTTON": "Suchen",
- "SEARCH_INPUT_PLACEHOLDER": "Suche nach Kontakten",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Filter speichern",
- "FILTER_CONTACTS_DELETE": "Filter löschen",
- "FILTER_CONTACTS_EDIT": "Segment bearbeiten",
"LIST": {
- "LOADING_MESSAGE": "Kontakte werden geladen...",
- "404": "Keine Kontakte entsprechen Ihrer Suche 🔍",
- "NO_CONTACTS": "Keine Kontakte verfügbar",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Telefonnummer",
- "CONVERSATIONS": "Gespräche",
- "LAST_ACTIVITY": "Letzte Aktivität",
- "CREATED_AT": "Erstellt am",
- "COUNTRY": "Land",
- "CITY": "Stadt",
- "SOCIAL_PROFILES": "Profile in sozialen Netzwerken",
- "COMPANY": "Firma",
- "EMAIL_ADDRESS": "E-Mail-Adresse"
- },
- "VIEW_DETAILS": "Details anzeigen"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontakte",
- "LOADING": "Kontaktprofil wird geladen..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Hinzufügen",
- "TITLE": "Shift + Enter um eine Aufgabe zu erstellen"
- },
- "FOOTER": {
- "DUE_DATE": "Fälligkeitsdatum",
- "LABEL_TITLE": "Typ festlegen"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Notizen werden geladen...",
- "NOT_AVAILABLE": "Für diesen Kontakt wurden keine Notizen erstellt",
- "HEADER": {
- "TITLE": "Notizen"
- },
- "LIST": {
- "LABEL": "Notiz hinzugefügt"
- },
- "ADD": {
- "BUTTON": "Hinzufügen",
- "PLACEHOLDER": "Notiz hinzufügen",
- "TITLE": "Shift + Enter um eine Notiz zu erstellen"
- },
- "CONTENT_HEADER": {
- "DELETE": "Notiz löschen"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Aktivitäten"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "Notizen",
- "PILL_BUTTON_EVENTS": "Veranstaltungen",
- "PILL_BUTTON_CONVO": "Konversation"
+ "SOCIAL_PROFILES": "Profile in sozialen Netzwerken"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Attribute hinzufügen",
"BUTTON": "Eigenes Attribut hinzufügen",
- "NOT_AVAILABLE": "Für diesen Kontakt sind keine benutzerdefinierten Attribute verfügbar.",
"COPY_SUCCESSFUL": "Erfolgreich in die Zwischenablage kopiert",
+ "SHOW_MORE": "Alle Attribute anzeigen",
+ "SHOW_LESS": "Weniger Attribute anzeigen",
"ACTIONS": {
"COPY": "Attribut kopieren",
"DELETE": "Attribut löschen",
@@ -346,7 +254,7 @@
"VALIDATIONS": {
"REQUIRED": "Gültiger Wert ist erforderlich",
"INVALID_URL": "Ungültige URL",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_INPUT": "Ungültige Eingabe"
}
},
"MERGE_CONTACTS": {
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Zusammenfassung",
- "DELETE_WARNING": "Der Kontakt von %{primaryContactName} wird gelöscht.",
- "ATTRIBUTE_WARNING": "Details von Kontakt %{primaryContactName} wird zu %{parentContactName} kopiert."
+ "DELETE_WARNING": "Der Kontakt von {primaryContactName} wird gelöscht.",
+ "ATTRIBUTE_WARNING": "Details von Kontakt {primaryContactName} wird zu {parentContactName} kopiert."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Etwas ist schiefgelaufen. Bitte später erneut versuchen."
},
"FORM": {
"SUBMIT": " Kontakte zusammenführen",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontakt erfolgreich zusammengeführt",
"ERROR_MESSAGE": "Kontakte konnten nicht zusammengeführt werden, bitte erneut versuchen!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakte",
+ "SEARCH_TITLE": "Kontakte suchen",
+ "ACTIVE_TITLE": "Aktive Kontakt",
+ "SEARCH_PLACEHOLDER": "Suchen...",
+ "MESSAGE_BUTTON": "Nachricht",
+ "SEND_MESSAGE": "Nachricht senden",
+ "BLOCK_CONTACT": "Kontakt blockieren",
+ "UNBLOCK_CONTACT": "Kontakt entsperren",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakte"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Kontakt hinzufügen",
+ "EXPORT_CONTACT": "Kontakte exportieren",
+ "IMPORT_CONTACT": "Kontakte importieren",
+ "SAVE_CONTACT": "Kontakt speichern",
+ "EMAIL_ADDRESS_DUPLICATE": "Diese E-Mail-Adresse wird bereits für einen anderen Kontakt verwendet.",
+ "PHONE_NUMBER_DUPLICATE": "Diese Telefonnummer wird für einen anderen Kontakt verwendet.",
+ "SUCCESS_MESSAGE": "Kontakt erfolgreich gespeichert",
+ "ERROR_MESSAGE": "Kontakt konnte nicht gespeichert werden. Bitte versuchen Sie es später erneut."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "Dieser Kontakt wurde erfolgreich blockiert",
+ "BLOCK_ERROR_MESSAGE": "Kontakt konnte nicht blockiert werden. Bitte versuchen Sie es später erneut.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Dieser Kontakt wurde erfolgreich entsperrt",
+ "UNBLOCK_ERROR_MESSAGE": "Kontakt konnte nicht entsperrt werden. Bitte versuchen Sie es später erneut.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Kontakte importieren",
+ "DESCRIPTION": "Kontakte über CSV-Datei importieren.",
+ "DOWNLOAD_LABEL": "Ein CSV-Beispiel herunterladen.",
+ "LABEL": "CSV-Datei:",
+ "CHOOSE_FILE": "Datei auswählen",
+ "CHANGE": "Ändern",
+ "CANCEL": "Stornieren",
+ "IMPORT": "Importieren",
+ "SUCCESS_MESSAGE": "Sie werden per E-Mail benachrichtigt, wenn der Import abgeschlossen ist.",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Kontakte exportieren",
+ "DESCRIPTION": "Exportieren Sie schnell eine CSV-Datei mit umfassenden Daten Ihrer Kontakte",
+ "CONFIRM": "Exportieren",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
+ },
+ "SORT_BY": {
+ "LABEL": "Sortieren nach",
+ "OPTIONS": {
+ "NAME": "Name",
+ "EMAIL": "E-Mail",
+ "PHONE_NUMBER": "Telefonnummer",
+ "COMPANY": "Firma",
+ "COUNTRY": "Land",
+ "CITY": "Stadt",
+ "LAST_ACTIVITY": "Letzte Aktivität",
+ "CREATED_AT": "Erstellt am"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Bestellen",
+ "OPTIONS": {
+ "ASCENDING": "Aufsteigend",
+ "DESCENDING": "Absteigend"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Möchten Sie diesen Filter speichern?",
+ "CONFIRM": "Filter speichern",
+ "LABEL": "Name",
+ "PLACEHOLDER": "Geben Sie einen Namen für diesen Filter ein",
+ "ERROR": "Gib einen gültigen Namen ein",
+ "SUCCESS_MESSAGE": "Filter erfolgreich gespeichert",
+ "ERROR_MESSAGE": "Filter konnte nicht gespeichert werden. Bitte versuchen Sie es später erneut."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Löschung bestätigen",
+ "DESCRIPTION": "Möchten Sie diesen Filter wirklich löschen?",
+ "CONFIRM": "Ja, löschen",
+ "CANCEL": "Nein, abbrechen",
+ "SUCCESS_MESSAGE": "Filter erfolgreich gelöscht",
+ "ERROR_MESSAGE": "Filter konnte nicht gelöscht werden. Bitte versuchen Sie es später erneut."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Zeige {startItem} - {endItem} von {totalItems} Kontakten"
+ },
+ "FILTER": {
+ "NAME": "Name",
+ "EMAIL": "E-Mail",
+ "PHONE_NUMBER": "Telefonnummer",
+ "IDENTIFIER": "Identifizierer",
+ "COUNTRY": "Land",
+ "CITY": "Stadt",
+ "COMPANY": "Firma",
+ "CREATED_AT": "Erstellt am",
+ "LAST_ACTIVITY": "Letzte Aktivität",
+ "REFERER_LINK": "Referer-Link",
+ "BLOCKED": "Blockiert",
+ "BLOCKED_TRUE": "Ja",
+ "BLOCKED_FALSE": "Nein",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Filter zurücksetzen",
+ "UPDATE_SEGMENT": "Segment aktualisieren",
+ "APPLY_FILTERS": "Filter übernehmen",
+ "ADD_FILTER": "Filter hinzufügen"
+ },
+ "TITLE": "Kontakte filtern",
+ "EDIT_SEGMENT": "Segment bearbeiten",
+ "SEGMENT": {
+ "LABEL": "Segmentname",
+ "INPUT_PLACEHOLDER": "Geben Sie den Namen des Segments ein"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} weitere Filter",
+ "CLEAR_FILTERS": "Filter zurücksetzen"
+ }
+ },
+ "CARD": {
+ "OF": "von",
+ "VIEW_DETAILS": "Details anzeigen",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Kontaktdetails bearbeiten",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Vorname eingeben"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Nachname eingeben"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "E-Mail-Adresse eingeben",
+ "DUPLICATE": "Diese E-Mail-Adresse wird bereits für einen anderen Kontakt verwendet."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Telefonnummer eingeben",
+ "DUPLICATE": "Diese Telefonnummer wird für einen anderen Kontakt verwendet."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Geben Sie den Ortsnamen ein"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Land auswählen"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Biografie eingeben"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Firmenname eingeben"
+ }
+ },
+ "UPDATE_BUTTON": "Kontakt aktualisieren",
+ "SUCCESS_MESSAGE": "Kontakt erfolgreich aktualisiert",
+ "ERROR_MESSAGE": "Kontakt konnte nicht aktualisiert werden. Bitte versuche es später erneut."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Social-Media Links bearbeiten",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook hinzufügen"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github hinzufügen"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagram hinzufügen"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn hinzufügen"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter hinzufügen"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Diese Aktion ist permanent und unwiderruflich.",
+ "BUTTON": "Jetzt löschen"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Erstellt am {date}",
+ "LAST_ACTIVITY": "Zuletzt aktiv {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Diesen Kontakt dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden",
+ "DELETE_CONTACT": "Kontakt löschen",
+ "DELETE_DIALOG": {
+ "TITLE": "Löschung bestätigen",
+ "DESCRIPTION": "Sind Sie sicher, dass Sie den Kontakt löschen möchten?",
+ "CONFIRM": "Ja, löschen",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakt erfolgreich gelöscht",
+ "ERROR_MESSAGE": "Kontakt konnte nicht gelöscht werden. Bitte versuchen Sie es später erneut."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Avatar konnte nicht hochgeladen werden. Bitte versuche es später erneut.",
+ "SUCCESS_MESSAGE": "Avatar erfolgreich hochgeladen"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar erfolgreich gelöscht",
+ "ERROR_MESSAGE": "Avatar konnte nicht gelöscht werden. Bitte versuche es später erneut."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attribute",
+ "HISTORY": "Verlauf",
+ "NOTES": "Notizen",
+ "MERGE": "Zusammenführen"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Es sind keine vorherigen Gespräche mit diesem Kontakt verbunden"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Nach Attributen suchen",
+ "UNUSED_ATTRIBUTES": "{count} verwendete Attribute | {count} ungenutzte Attribute",
+ "EMPTY_STATE": "Es gibt keine benutzerdefinierten Attribute für Kontakte in diesem Konto. Sie können ein eigenes Attribut in den Einstellungen erstellen.",
+ "YES": "Ja",
+ "NO": "Nein",
+ "TRIGGER": {
+ "SELECT": "Wert wählen",
+ "INPUT": "Wert eintragen"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Ungültige Nummer",
+ "REQUIRED": "Gültiger Wert ist erforderlich",
+ "INVALID_INPUT": "Ungültige Eingabe",
+ "INVALID_URL": "Ungültige URL",
+ "INVALID_DATE": "Ungültiges Datum"
+ },
+ "NO_ATTRIBUTES": "Keine Attribute gefunden",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribut erfolgreich aktualisiert",
+ "DELETE_SUCCESS_MESSAGE": "Attribut erfolgreich gelöscht",
+ "UPDATE_ERROR": "Attribut kann nicht aktualisiert werden. Bitte versuchen Sie es später noch einmal",
+ "DELETE_ERROR": "Attribut kann nicht gelöscht werden. Bitte versuchen Sie es später noch einmal"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Kontakte zusammenführen",
+ "DESCRIPTION": "Profile zusammenführen, um zwei Profile zu einem zu kombinieren, einschließlich aller Attribute und Gespräche. Im Falle eines Konflikts haben die Attribute des primären Kontakts Vorrang.",
+ "PRIMARY": "Hauptkontakt",
+ "PRIMARY_HELP_LABEL": "Zu speichern",
+ "PRIMARY_REQUIRED_ERROR": "Bitte wähle einen Kontakt zum Zusammenführen aus, bevor du fortfährst",
+ "PARENT": "Zusammenzuführen",
+ "PARENT_HELP_LABEL": "Zu löschen",
+ "EMPTY_STATE": "Keine Kontakte gefunden",
+ "PLACEHOLDER": "Nach primärem Kontakt suchen",
+ "SEARCH_PLACEHOLDER": "Nach Kontakt suchen",
+ "SEARCH_ERROR_MESSAGE": "Kontakte konnten nicht gesucht werden. Bitte versuchen Sie es später erneut.",
+ "SUCCESS_MESSAGE": "Kontakt erfolgreich zusammengeführt",
+ "ERROR_MESSAGE": "Kontakte konnten nicht zusammengeführt werden, bitte erneut versuchen!",
+ "IS_SEARCHING": "Suchen...",
+ "BUTTONS": {
+ "CANCEL": "Stornieren",
+ "CONFIRM": "Kontakte zusammenführen"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Notiz hinzufügen",
+ "WROTE": "schrieb",
+ "YOU": "Sie",
+ "SAVE": "Notiz speichern",
+ "ADD_NOTE": "Füge eine Kontakt-Notiz hinzu",
+ "EXPAND": "Erweitern",
+ "COLLAPSE": "Einklappen",
+ "NO_NOTES": "Keine Notizen, Sie können Notizen auf der Kontakt-Detailseite hinzufügen.",
+ "EMPTY_STATE": "Es gibt keine Notizen zu diesem Kontakt. Sie können eine Notiz hinzufügen, indem Sie diese in das obige Feld eingeben.",
+ "CONVERSATION_EMPTY_STATE": "Es sind noch keine Notizen vorhanden. Benutzen Sie die Schaltfläche \"Notiz hinzufügen\" um eine zu erstellen."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Keine Kontakte in diesem Konto gefunden",
+ "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 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Im Moment sind keine Kontakte aktiv 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Labels zuweisen",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels erfolgreich zugewiesen.",
+ "ASSIGN_LABELS_FAILED": "Fehler beim Zuweisen der Labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Wählen Sie die Labels aus, die zu den ausgewählten Kontakten hinzugefügt werden sollen.",
+ "NO_LABELS_FOUND": "Noch keine Labels vorhanden.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Auswahl löschen",
+ "SELECT_ALL": "Alle auswählen ({count})",
+ "DELETE_CONTACTS": "Löschen",
+ "DELETE_SUCCESS": "Kontakte erfolgreich gelöscht.",
+ "DELETE_FAILED": "Kontakte konnten nicht gelöscht werden.",
+ "DELETE_DIALOG": {
+ "TITLE": "Ausgewählte Kontakte löschen",
+ "SINGULAR_TITLE": "Ausgewählten Kontakt löschen",
+ "DESCRIPTION": "Dies wird {count} ausgewählte Kontakte dauerhaft löschen. Diese Aktion kann nicht rückgängig gemacht werden.",
+ "SINGULAR_DESCRIPTION": "Der ausgewählte Kontakt wird dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.",
+ "CONFIRM_MULTIPLE": "Kontakte löschen",
+ "CONFIRM_SINGLE": "Kontakt löschen"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Wir konnten die Suche nicht abschließen. Bitte versuch es erneut."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Anzeigen",
+ "SUCCESS_MESSAGE": "Die Nachricht wurde erfolgreich versendet!",
+ "ERROR_MESSAGE": "Beim Erstellen der Unterhaltung ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut.",
+ "NO_INBOX_ALERT": "Es sind keine Posteingänge vorhanden, um eine Unterhaltung mit diesem Kontakt zu starten.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "An:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Neuen Kontakt erstellen..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Posteingänge anzeigen"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Betreff :",
+ "SUBJECT_PLACEHOLDER": "E-Mail Betreff hier eingeben",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Schreiben Sie Ihre Nachricht hier..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Vorlage auswählen",
+ "SEARCH_PLACEHOLDER": "Vorlagen suchen",
+ "EMPTY_STATE": "Keine Vorlagen gefunden",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp Template: {templateName}",
+ "VARIABLES": "Variablen",
+ "BACK": "Zurück",
+ "SEND_MESSAGE": "Nachricht senden"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Vorlage auswählen",
+ "SEARCH_PLACEHOLDER": "Vorlagen suchen",
+ "EMPTY_STATE": "Keine Vorlagen gefunden",
+ "TEMPLATE_PARSER": {
+ "BACK": "Zurück",
+ "SEND_MESSAGE": "Nachricht senden"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Verwerfen",
+ "SEND": "Senden ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/contactFilters.json b/app/javascript/dashboard/i18n/locale/de/contactFilters.json
index 07fe84233..acfd8a6e1 100644
--- a/app/javascript/dashboard/i18n/locale/de/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/de/contactFilters.json
@@ -2,18 +2,18 @@
"CONTACTS_FILTER": {
"TITLE": "Kontakte filtern",
"SUBTITLE": "Fügen Sie unten Filter hinzu und klicken Sie auf 'Senden', um die Kontakte zu filtern.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "EDIT_CUSTOM_SEGMENT": "Segment bearbeiten",
+ "CUSTOM_VIEWS_SUBTITLE": "Füge Filter hinzu oder entferne sie und aktualisieren dein Segment.",
"ADD_NEW_FILTER": "Filter hinzufügen",
"CLEAR_ALL_FILTERS": "Alle Filter löschen",
"FILTER_DELETE_ERROR": "Sie sollten mindestens einen Filter zum Speichern haben",
"SUBMIT_BUTTON_LABEL": "Einreichen",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "Segment aktualisieren",
"CANCEL_BUTTON_LABEL": "Abbrechen",
"CLEAR_BUTTON_LABEL": "Filter zurücksetzen",
"EMPTY_VALUE_ERROR": "Wert ist erforderlich",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
+ "SEGMENT_LABEL": "Segmentname",
+ "SEGMENT_QUERY_LABEL": "Segment-Abfrage",
"TOOLTIP_LABEL": "Kontakte filtern",
"QUERY_DROPDOWN_LABELS": {
"AND": "UND",
@@ -30,6 +30,9 @@
"is_lesser_than": "Ist kleiner als",
"days_before": "Ist x Tage her"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Wert ist erforderlich"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "E-Mail",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Erstellt am",
"LAST_ACTIVITY": "Letzte Aktivität",
- "REFERER_LINK": "Verweis-Link"
+ "REFERER_LINK": "Verweis-Link",
+ "BLOCKED": "Blockiert",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standardfilter",
diff --git a/app/javascript/dashboard/i18n/locale/de/contentTemplates.json b/app/javascript/dashboard/i18n/locale/de/contentTemplates.json
new file mode 100644
index 000000000..e4f382aef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Vorlagen suchen",
+ "NO_TEMPLATES_FOUND": "Keine Vorlagen gefunden für",
+ "NO_CONTENT": "Kein Inhalt",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorie",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Sprache",
+ "TEMPLATE_BODY": "Vorlagenbody",
+ "CATEGORY": "Kategorie"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variablen",
+ "LANGUAGE": "Sprache",
+ "CATEGORY": "Kategorie",
+ "VARIABLE_PLACEHOLDER": "Geben Sie den Wert {variable} ein",
+ "GO_BACK_LABEL": "Zurück",
+ "SEND_MESSAGE_LABEL": "Nachricht senden",
+ "FORM_ERROR_MESSAGE": "Bitte füllen Sie vor dem Absenden alle Variablen aus",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Zurück",
+ "SEND_MESSAGE_BUTTON": "Nachricht senden"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/conversation.json b/app/javascript/dashboard/i18n/locale/de/conversation.json
index b3aa92ee7..e370d3873 100644
--- a/app/javascript/dashboard/i18n/locale/de/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/de/conversation.json
@@ -12,9 +12,11 @@
"NO_INBOX_2": " um loszulegen",
"NO_INBOX_AGENT": "Oh oh! Sieht so aus, als wären Sie nicht Teil eines Posteingangs. Bitte wenden Sie sich an Ihren Administrator",
"SEARCH_MESSAGES": "Nachrichten in Unterhaltungen suchen",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "zum Öffnen des Kommandomenüs",
+ "KEYBOARD_SHORTCUTS": "um Tastenkürzel anzuzeigen"
},
"SEARCH": {
"TITLE": "Nachrichten durchsuchen",
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Gespräche laden",
"CANNOT_REPLY": "Sie können nicht antworten, weil",
"24_HOURS_WINDOW": "24-Stunden-Nachrichtenfenster-Beschränkung",
+ "48_HOURS_WINDOW": "Beschränkung des 48-Stunden-Nachrichtenfensters",
+ "API_HOURS_WINDOW": "Sie können auf diese Unterhaltung nur innerhalb von {hours} Stunden antworten",
"NOT_ASSIGNED_TO_YOU": "Diese Konversation ist Ihnen nicht zugeordnet. Möchten Sie dieses Gespräch sich selbst zuordnen?",
"ASSIGN_TO_ME": "Mir zuweisen",
+ "BOT_HANDOFF_MESSAGE": "Sie antworten auf eine Unterhaltung, die derzeit von einem Assistenten oder einem Bot bearbeitet wird.",
+ "BOT_HANDOFF_ACTION": "Als geöffnet markieren und Ihnen zuweisen",
+ "BOT_HANDOFF_REOPEN_ACTION": "Gespräch als geöffnet markieren",
+ "BOT_HANDOFF_SUCCESS": "Die Unterhaltung wurde dir übergeben",
+ "BOT_HANDOFF_ERROR": "Die Unterhaltung konnte nicht übernommen werden. Bitte versuche es erneut.",
"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": "Dieser Instagram-Account wurde in den neuen Instagram-Kanal übertragen. Alle neuen Nachrichten werden dort erscheinen. Sie werden keine Nachrichten mehr von dieser Unterhaltung senden können.",
"REPLYING_TO": "Sie antworten auf:",
"REMOVE_SELECTION": "Auswahl entfernen",
"DOWNLOAD": "Herunterladen",
"UNKNOWN_FILE_TYPE": "Unbekannte Datei",
- "SAVE_CONTACT": "Speichern",
+ "SAVE_CONTACT": "Kontakt speichern",
+ "NO_CONTENT": "Kein Inhalt zum Anzeigen",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} hat einen Kontakt geteilt",
+ "LOCATION": "{sender} hat einen Standort geteilt",
+ "FILE": "{sender} hat eine Datei geteilt",
+ "MEETING": "{sender} hat ein Meeting begonnen"
+ },
"UPLOADING_ATTACHMENTS": "Anhänge werden hochgeladen...",
"REPLIED_TO_STORY": "Auf deine Geschichte geantwortet",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Facebook/Instagram-App sehen.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Facebook-Messenger-App sehen.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "Diese Nachricht wird nicht unterstützt. Sie können diese Nachricht in der Instagram-App sehen.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Nachricht erfolgreich gelöscht",
"FAIL_DELETE_MESSSAGE": "Nachricht konnte nicht gelöscht werden! Versuchen Sie es erneut",
"NO_RESPONSE": "Keine Antwort",
+ "RESPONSE": "Antwort",
"RATING_TITLE": "Bewertung",
"FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "REPLY_MESSAGE_NOT_FOUND": "Nachricht nicht verfügbar",
"CARD": {
"SHOW_LABELS": "Labels anzeigen",
- "HIDE_LABELS": "Labels ausblenden"
+ "HIDE_LABELS": "Labels ausblenden",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Eingehender Anruf",
+ "OUTGOING_CALL": "Ausgehender Anruf",
+ "CALL_IN_PROGRESS": "Anruf läuft",
+ "NO_ANSWER": "Keine Antwort",
+ "NO_ANSWER_OUTBOUND_LABEL": "Keine Antwort",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Entgangener Anruf",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Anruf beendet",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Noch nicht beantwortet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Sie antworteten",
+ "YOU_ANSWERED": "Sie haben beantwortet",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Fall schließen",
"REOPEN_ACTION": "Wieder öffnen",
"OPEN_ACTION": "Öffnen",
+ "MORE_ACTIONS": "Weitere Aktionen",
"OPEN": "Mehr",
"CLOSE": "Schließen",
"DETAILS": "Einzelheiten",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Stummschalten bis",
"SNOOZED_UNTIL_TOMORROW": "Schlummern bis morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Schlummern bis nächste Woche",
- "SNOOZED_UNTIL_NEXT_REPLY": "Schlummern bis zur nächsten Antwort"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Schlummern bis zur nächsten Antwort",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "verpasst",
+ "DUE": "fällig"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Als ausstehend markieren",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Nächste Woche"
}
},
+ "MENTION": {
+ "AGENTS": "Agenten",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Stummschalten bis",
"APPLY": "Stummschalten",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Keine",
"INPUT_PLACEHOLDER": "Priorität auswählen",
"NO_RESULTS": "Keine Ergebnisse gefunden",
- "SUCCESSFUL": "Priorität der Konversations-ID %{conversationId} zu %{priority} geändert",
+ "SUCCESSFUL": "Priorität der Konversations-ID {conversationId} zu {priority} geändert",
"FAILED": "Priorität konnte nicht geändert werden. Bitte versuchen Sie es erneut."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Lösche Unterhaltung #{conversationId}",
+ "DESCRIPTION": "Sind Sie sicher, dass Sie diese Unterhaltung löschen möchten?",
+ "CONFIRM": "Löschen"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Als ausstehend markieren",
"RESOLVED": "Als gelöst markieren",
"MARK_AS_UNREAD": "Als ungelesen markieren",
+ "MARK_AS_READ": "Als gelesen markieren",
"REOPEN": "Konversation wieder öffnen",
"SNOOZE": {
"TITLE": "Erinnern",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Label zuweisen",
"AGENTS_LOADING": "Agenten werden geladen...",
"ASSIGN_TEAM": "Team zuweisen",
+ "DELETE": "Unterhaltung löschen",
+ "OPEN_IN_NEW_TAB": "In neuem Tab öffnen",
+ "COPY_LINK": "Konversationslink kopieren",
+ "COPY_LINK_SUCCESS": "Konversationslink in Zwischenablage kopiert",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Konversations-ID %{conversationId} zugewiesen zu \"%{agentName}\"",
+ "SUCCESFUL": "Konversations-ID {conversationId} zugewiesen zu \"{agentName}\"",
"FAILED": "Agent konnte nicht zugewiesen werden. Bitte versuche es erneut."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Das Label #%{labelName} wurde der Konversations-ID %{conversationId} zugewiesen",
+ "SUCCESFUL": "Label #{labelName} der Konversations-ID {conversationId} zugewiesen",
"FAILED": "Label konnte nicht zugewiesen werden. Bitte versuche es erneut."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Das Team\"%{team}\" wurde der Konversations-ID %{conversationId} zugewiesen",
+ "SUCCESFUL": "Das Team\"{team}\" wurde der Konversations-ID {conversationId} zugewiesen",
"FAILED": "Team konnte nicht zugewiesen werden. Bitte versuche es erneut."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Signatur deaktivieren",
"MSG_INPUT": "Umschalt + Eingabetaste für neue Zeile. Beginnen Sie mit '/', um eine vordefinierte Antwort auszuwählen.",
"PRIVATE_MSG_INPUT": "Umschalt + Eingabetaste für neue Zeile. Dies ist nur für Agenten sichtbar",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Die Nachrichtensignatur ist nicht konfiguriert, bitte konfigurieren Sie sie in den Profileinstellungen.",
- "CLICK_HERE": "Klicken Sie hier, um zu aktualisieren"
+ "COPILOT_MSG_INPUT": "Geben Sie Copilot zusätzliche Aufforderungen oder fragen Sie etwas anderes ... Drücken Sie Enter, um eine Folgefrage zu senden",
+ "CLICK_HERE": "Klicken Sie hier, um zu aktualisieren",
+ "WHATSAPP_TEMPLATES": "WhatsApp-Vorlagen"
},
"REPLYBOX": {
"REPLY": "Antworten",
@@ -143,18 +224,18 @@
"SEND": "Senden",
"CREATE": "Notiz hinzufügen",
"INSERT_READ_MORE": "Mehr erfahren",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Rich Text Editor anzeigen",
+ "DISMISS_REPLY": "Antwort verwerfen",
+ "REPLYING_TO": "Antwort auf:",
"TIP_EMOJI_ICON": "Emoji-Auswahl anzeigen",
"TIP_ATTACH_ICON": "Dateien anhängen",
"TIP_AUDIORECORDER_ICON": "Audio aufzeichnen",
"TIP_AUDIORECORDER_PERMISSION": "Zugriff auf Audio zulassen",
"TIP_AUDIORECORDER_ERROR": "Audio konnte nicht geöffnet werden",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Zum Anhängen hierher ziehen und ablegen",
"START_AUDIO_RECORDING": "Audioaufzeichnung starten",
"STOP_AUDIO_RECORDING": "Audioaufzeichnung stoppen",
- "": "",
+ "COPILOT_THINKING": "Copilot denkt",
"EMAIL_HEAD": {
"TO": "An",
"ADD_BCC": "BCC hinzufügen",
@@ -176,6 +257,13 @@
"YES": "Senden",
"CANCEL": "Abbrechen"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Zitierten E-Mail-Thread einbeziehen",
+ "DISABLE_TOOLTIP": "Zitierten E-Mail-Thread nicht einbeziehen",
+ "REMOVE_PREVIEW": "Zitierte E-Mail-Themen entfernen",
+ "COLLAPSE": "Vorschau ausblenden",
+ "EXPAND": "Vorschau erweitern"
}
},
"VISIBLE_TO_AGENTS": "Privater Hinweis: Nur für Sie und Ihr Team sichtbar",
@@ -186,10 +274,15 @@
"ASSIGN_LABEL_SUCCESFUL": "Label erfolgreich zugewiesen",
"ASSIGN_LABEL_FAILED": "Labelzuweisung fehlgeschlagen",
"CHANGE_TEAM": "Das Konversationsteam hat sich geändert",
+ "SUCCESS_DELETE_CONVERSATION": "Unterhaltung erfolgreich gelöscht",
+ "FAIL_DELETE_CONVERSATION": "Unterhaltung konnte nicht gelöscht werden! Erneut versuchen",
"FILE_SIZE_LIMIT": "Die Datei überschreitet das Anhangslimit von {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nachricht konnte nicht gesendet werden, bitte versuchen Sie es später erneut",
"SENT_BY": "Gesendet von:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nachricht konnte nicht gesendet werden! Versuchen Sie es noch einmal",
"TRY_AGAIN": "neu versuchen",
"ASSIGNMENT": {
@@ -199,7 +292,7 @@
},
"CONTEXT_MENU": {
"COPY": "Kopieren",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "Auf diese Nachricht antworten",
"DELETE": "Löschen",
"CREATE_A_CANNED_RESPONSE": "Zu vorgefertigten Antworten hinzufügen",
"TRANSLATE": "Übersetzen",
@@ -211,6 +304,25 @@
"DELETE": "Löschen",
"CANCEL": "Abbrechen"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontakt",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Eingehender Anruf",
+ "OUTGOING_CALL": "Ausgehender Anruf",
+ "CALL_IN_PROGRESS": "Anruf läuft",
+ "NOT_ANSWERED_YET": "Noch nicht beantwortet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Verwerfen",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Abbrechen",
"SEND_EMAIL_SUCCESS": "Das Chat-Protokoll wurde erfolgreich gesendet",
"SEND_EMAIL_ERROR": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Das Transkript an den Kunden senden",
"SEND_TO_AGENT": "Transkript an den zugewiesenen Agenten senden",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hallo 👋, Willkommen bei %{installationName}!",
- "DESCRIPTION": "Danke für's Registrieren. Wir möchten, dass Sie %{installationName} optimal nutzen. Hier sind ein paar Dinge, die Sie in %{installationName} tun können, um das Erlebnis angenehm zu gestalten.",
+ "TITLE": "Hallo 👋, Willkommen bei {installationName}!",
+ "DESCRIPTION": "Danke für's Registrieren. Wir möchten, dass Sie {installationName} optimal nutzen. Hier sind ein paar Dinge, die Sie in {installationName} tun können, um das Erlebnis angenehm zu gestalten.",
+ "GREETING_MORNING": "👋 Guten Morgen, {name}. Willkommen bei {installationName}.",
+ "GREETING_AFTERNOON": "👋 Guten Nachmittag, {name}. Willkommen bei {installationName}.",
+ "GREETING_EVENING": "👋 Guten Abend, {name}. Willkommen bei {installationName}.",
"READ_LATEST_UPDATES": "Lesen Sie unsere neuesten Updates",
"ALL_CONVERSATION": {
"TITLE": "All Ihre Konversationen an einem Ort",
- "DESCRIPTION": "Zeigen Sie alle Konversationen Ihrer Kunden in einem einzigen Dashboard an. Sie können die Konversationen nach eingehendem Kanal, Bezeichnung und Status filtern."
+ "DESCRIPTION": "Zeigen Sie alle Konversationen Ihrer Kunden in einem einzigen Dashboard an. Sie können die Konversationen nach eingehendem Kanal, Bezeichnung und Status filtern.",
+ "NEW_LINK": "Hier klicken, um einen Posteingang zu erstellen"
},
"TEAM_MEMBERS": {
"TITLE": "Laden Sie Ihre Teammitglieder ein",
"DESCRIPTION": "Da Sie sich darauf vorbereiten, mit Ihrem Kunden zu sprechen, ziehen Sie Ihre Teamkollegen hinzu, um Ihnen zu helfen. Sie können Ihre Teamkollegen einladen, indem Sie deren E-Mail-Adressen zur Agentenliste hinzufügen.",
"NEW_LINK": "Klicken Sie hier, um ein Teammitglied einzuladen"
},
- "INBOXES": {
- "TITLE": "Posteingänge verbinden",
- "DESCRIPTION": "Verbinden Sie verschiedene Kanäle, über die Ihre Kunden mit Ihnen sprechen würden. Das kann ein Website-Live-Chat, Ihre Facebook- oder Twitter-Seite oder sogar Ihre WhatsApp-Nummer sein.",
- "NEW_LINK": "Hier klicken, um einen Posteingang zu erstellen"
- },
"LABELS": {
"TITLE": "Organisieren Sie Konversationen mit Labels",
"DESCRIPTION": "Labels bieten eine einfachere Möglichkeit, Ihre Konversation zu kategorisieren. Erstellen Sie einige Labels wie #support-enquiry, #billing-quest etc., damit Sie sie später in einem Gespräch verwenden können.",
"NEW_LINK": "Hier klicken, um Tags zu erstellen"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Vorgefertigte Antworten erstellen",
+ "DESCRIPTION": "Vorgefertigte Schnellantwortvorlagen helfen Ihnen, schnell auf eine Konversation zu antworten. Agenten können das Zeichen '/' gefolgt vom Short-Code eingeben, um eine Antwort einzufügen.",
+ "NEW_LINK": "Hier klicken, um eine vorgefertigte Antwort zu erstellen"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Konversationsaktionen",
"CONVERSATION_LABELS": "Konversationslabels",
"CONVERSATION_INFO": "Konversationsinformationen",
+ "CONTACT_NOTES": "Kontakt Notizen",
"CONTACT_ATTRIBUTES": "Kontakt-Attribute",
"PREVIOUS_CONVERSATION": "Vorherige Konversationen",
- "MACROS": "Makros"
+ "MACROS": "Makros",
+ "LINEAR_ISSUES": "Verknüpfte lineare Probleme",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Alle anzeigen",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Ausstehend",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Attribut erstellen",
+ "NO_RECORDS_FOUND": "Keine Attribute gefunden",
"UPDATE": {
"SUCCESS": "Attribut erfolgreich aktualisiert",
"ERROR": "Attribut kann nicht aktualisiert werden. Bitte versuchen Sie es später noch einmal"
@@ -297,17 +449,18 @@
"TO": "An",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Betreff"
+ "SUBJECT": "Betreff",
+ "EXPAND": "E-Mail erweitern"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Zugewiesen",
"SIDEBAR_TITLE": "Konversationsteilnehmer",
"NO_RECORDS_FOUND": "Keine Ergebnisse gefunden",
"ADD_PARTICIPANTS": "Teilnehmer wählen",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} andere",
- "REMANING_PARTICIPANT_TEXT": "+%{count} andere",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} Personen nehmen teil.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} Person nimmt teil.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} andere",
+ "REMANING_PARTICIPANT_TEXT": "+{count} andere",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} Personen nehmen teil.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} Person nimmt teil.",
"NO_PARTICIPANTS_TEXT": "Niemand nimmt teil!.",
"WATCH_CONVERSATION": "Konversation beitreten",
"YOU_ARE_WATCHING": "Sie nehmen teil",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Originalinhalt",
"TRANSLATED_CONTENT": "Übersetzter Inhalt",
"NO_TRANSLATIONS_AVAILABLE": "Für diesen Inhalt sind keine Übersetzungen verfügbar"
+ },
+ "TYPING": {
+ "ONE": "{user} tippt",
+ "TWO": "{user} und {secondUser} tippen",
+ "MULTIPLE": "{user} und {count} andere tippen"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Probiere diese Prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Anhang konnte nicht heruntergeladen werden. Bitte versuche es erneut"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/customRole.json b/app/javascript/dashboard/i18n/locale/de/customRole.json
new file mode 100644
index 000000000..11b6e8c6a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Beschreibung",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Aktionen"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name wird benötigt."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Beschreibung wird benötigt."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Stornieren",
+ "API": {
+ "ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Einreichen",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Bearbeiten",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Aktualisieren",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Löschen",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
+ },
+ "CONFIRM": {
+ "TITLE": "Löschen bestätigen",
+ "MESSAGE": "Bist du sicher, das du das löschen möchtest?",
+ "YES": "Ja, löschen ",
+ "NO": "Nein, behalten "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/datePicker.json b/app/javascript/dashboard/i18n/locale/de/datePicker.json
new file mode 100644
index 000000000..eab957fad
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Übernehmen",
+ "CLEAR_BUTTON": "Leeren",
+ "DATE_RANGE_INPUT": {
+ "START": "Startdatum",
+ "END": "Enddatum"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATUMSSPANNE",
+ "LAST_7_DAYS": "Letzte 7 Tage",
+ "LAST_30_DAYS": "Letzte 30 Tage",
+ "LAST_3_MONTHS": "Letzte 3 Monate",
+ "LAST_6_MONTHS": "Letzte 6 Monate",
+ "LAST_YEAR": "Letztes Jahr",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Benutzerdefinierter Zeitraum"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/general.json b/app/javascript/dashboard/i18n/locale/de/general.json
new file mode 100644
index 000000000..0197be8d6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "{firstIndex}-{lastIndex} von {totalCount} Elementen werden angezeigt",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Suchen",
+ "EMPTY_STATE": "Keine Ergebnisse gefunden"
+ },
+ "CLOSE": "Schließen",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Verwerfen",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ja",
+ "NO": "Nein"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/generalSettings.json b/app/javascript/dashboard/i18n/locale/de/generalSettings.json
index e0e0e035c..ecf1109ab 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": "Sie haben das Konversationslimit überschritten. Der Hacker Plan erlaubt nur 500 Unterhaltungen.",
+ "INBOXES": "Sie haben das Posteingang-Limit überschritten. Der Hacker-Plan unterstützt nur Live-Chat der Webseite. Zusätzliche Posteingänge wie E-Mail, WhatsApp usw. erfordern einen kostenpflichtigen Tarif.",
+ "AGENTS": "Sie haben das Agenten-Limit überschritten. Ihr Plan erlaubt nur {allowedAgents} Agenten.",
+ "NON_ADMIN": "Bitte kontaktieren Sie Ihren Administrator, um den Plan zu upgraden und alle Funktionen weiterzunutzen."
+ },
"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": "Löschen Sie Ihr Konto",
+ "NOTE": "Sobald Sie Ihr Konto gelöscht haben, werden alle Ihre Daten gelöscht.",
+ "BUTTON_TEXT": "Löschen Sie Ihr Konto",
+ "CONFIRM": {
+ "TITLE": "Konto löschen",
+ "MESSAGE": "Das Löschen Ihres Kontos ist unwiderruflich. Geben Sie Ihren Kontonamen ein, um zu bestätigen, dass Sie es dauerhaft löschen möchten.",
+ "BUTTON_TEXT": "Löschen",
+ "DISMISS": "Stornieren",
+ "PLACE_HOLDER": "Bitte {accountName} zur Bestätigung eingeben"
+ },
+ "SUCCESS": "Konto zur Löschung markiert",
+ "FAILURE": "Konto konnte nicht gelöscht werden, versuche es erneut!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Konto für Löschung geplant",
+ "MESSAGE_MANUAL": "Dieses Konto ist für das Löschen auf {deletionDate} geplant. Dies wurde von einem Administrator angefordert. Sie können das Löschen vor diesem Datum abbrechen.",
+ "MESSAGE_INACTIVITY": "Dieses Konto ist für die Löschung auf {deletionDate} aufgrund von Kontoinaktivität vorgesehen. Sie können die Löschung vor diesem Datum abbrechen.",
+ "CLEAR_BUTTON": "Geplante Löschung abbrechen"
+ }
+ },
"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": "Unterhaltungen automatisch auflösen",
+ "NOTE": "Diese Konfiguration würde es Ihnen ermöglichen, die Unterhaltung nach einer gewissen Zeit der Inaktivität automatisch zu beenden.",
+ "DURATION": {
+ "LABEL": "Dauer der Inaktivität",
+ "HELP": "Zeit der Inaktivität, nach der die Unterhaltung automatisch gelöst wird",
+ "PLACEHOLDER": "30",
+ "ERROR": "Automatische Auflösungsdauer sollte zwischen 10 Minuten und 999 Tagen liegen",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "Die Unterhaltung wurde durch das System aufgrund von 15 Tagen Inaktivität geschlossen",
+ "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,19 +92,41 @@
"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": "Automatische Auflösungsdauer sollte zwischen 10 Minuten und 999 Tagen liegen",
+ "API": {
+ "SUCCESS": "Auto resolve settings updated successfully",
+ "ERROR": "Failed to update auto resolve settings"
+ },
+ "UPDATE_BUTTON": "Aktualisieren",
+ "MESSAGE_LABEL": "Custom resolution message",
+ "MESSAGE_PLACEHOLDER": "Die Unterhaltung wurde durch das System aufgrund von 15 Tagen Inaktivität geschlossen",
+ "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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Sie können jetzt E-Mails in Ihrer benutzerdefinierten Domäne empfangen."
}
},
- "UPDATE_CHATWOOT": "Ein Update %{latestChatwootVersion} für Chatwoot ist verfügbar. Bitte aktualisieren Sie Ihre Instanz.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Drücken Sie zur Auswahl die Eingabetaste",
"ENTER_TO_REMOVE": "Drücken Sie zum Entfernen die Eingabetaste",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Eines wählen",
"SELECT": "Auswählen"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Konversation zugewiesen",
"assigned_conversation_new_message": "Neue Nachricht",
"participating_conversation_new_message": "Neue Nachricht",
- "conversation_mention": "Erwähnung"
+ "conversation_mention": "Erwähnung",
+ "sla_missed_first_response": "SLA verpasst",
+ "sla_missed_next_response": "SLA verpasst",
+ "sla_missed_resolution": "SLA verpasst"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Verbinde neu...",
+ "RECONNECT_SUCCESS": "Wiederverbunden"
},
"BUTTON": {
"REFRESH": "Neu laden"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Suchen oder springen zu",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Generell",
"REPORTS": "Berichte",
"CONVERSATION": "Konversation",
+ "BULK_ACTIONS": "Massenaktionen",
"CHANGE_ASSIGNEE": "Beauftragten ändern",
"CHANGE_PRIORITY": "Priorität ändern",
"CHANGE_TEAM": "Team wechseln",
@@ -111,9 +195,9 @@
"ADD_LABEL": "Label zur Konversation hinzufügen",
"REMOVE_LABEL": "Label aus der Konversation entfernen",
"SETTINGS": "Einstellungen",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "AI-Assistent",
+ "APPEARANCE": "Darstellung",
+ "SNOOZE_NOTIFICATION": "Ungelesene Benachrichtigungen"
},
"COMMANDS": {
"GO_TO_CONVERSATION_DASHBOARD": "Zur Konversationsübersicht",
@@ -135,7 +219,7 @@
"GO_TO_NOTIFICATIONS": "Zu Benachrichtigungen",
"ADD_LABELS_TO_CONVERSATION": "Label zur Konversation hinzufügen",
"ASSIGN_AN_AGENT": "Einen Agent zuweisen",
- "AI_ASSIST": "AI Assist",
+ "AI_ASSIST": "AI-Assistent",
"ASSIGN_PRIORITY": "Priorität zuweisen",
"ASSIGN_A_TEAM": "Ein Team zuweisen",
"MUTE_CONVERSATION": "Konversation stummschalten",
@@ -150,19 +234,19 @@
"UNTIL_TOMORROW": "Bis morgen",
"UNTIL_NEXT_MONTH": "bis zum nächsten Monat",
"AN_HOUR_FROM_NOW": "bis in einer Stunde von jetzt an",
- "CUSTOM": "individuell",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
+ "UNTIL_CUSTOM_TIME": "individuell",
+ "CHANGE_APPEARANCE": "Aussehen ändern",
+ "LIGHT_MODE": "Hell",
+ "DARK_MODE": "Dunkel",
"SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "SNOOZE_NOTIFICATION": "Ungelesene Benachrichtigungen"
}
},
"DASHBOARD_APPS": {
"LOADING_MESSAGE": "Dashboard-App wird geladen..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "Oder",
"CLICK_HERE": "hier klicken"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/helpCenter.json b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
index b6504f093..4d416885d 100644
--- a/app/javascript/dashboard/i18n/locale/de/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/de/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Hilfezentrum",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Portal erstellen"
+ },
"HEADER": {
"FILTER": "Filtern nach",
"SORT": "Sortieren nach",
@@ -18,10 +23,10 @@
"ARCHIVED": "Archivierte Artikel"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Sprache auswählen",
+ "PLACEHOLDER": "Sprache auswählen",
+ "NO_RESULT": "Keine Sprache gefunden",
+ "SEARCH_PLACEHOLDER": "Sprache suchen"
}
},
"EDIT_HEADER": {
@@ -41,6 +46,7 @@
"UPLOADING": "Hochladen...",
"SUCCESS": "Bild erfolgreich hochgeladen",
"ERROR": "Fehler beim Hochladen des Bildes",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Bildgröße sollte kleiner als {size}MB sein",
"ERROR_FILE_FORMAT": "Bildformat sollte jpg, jpeg oder png sein",
"ERROR_FILE_DIMENSIONS": "Bildgröße sollte kleiner als 2000 x 2000 sein"
@@ -82,15 +88,15 @@
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
+ "UNCATEGORIZED": "Nicht kategorisiert",
+ "SEARCH_RESULTS": "Suchergebnisse für {query}",
+ "EMPTY_TEXT": "Suche nach Artikeln, um sie in Antworten einzufügen.",
"SEARCH_LOADER": "Suchen...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "INSERT_ARTICLE": "Einfügen",
+ "NO_RESULT": "Keine Artikel gefunden",
+ "COPY_LINK": "Artikellink in die Zwischenablage kopieren",
+ "OPEN_LINK": "Artikel in neuem Fenster öffnen",
+ "PREVIEW_LINK": "Artikelvorschau anzeigen"
},
"PORTAL": {
"HEADER": "Portale",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal erfolgreich gelöscht",
"DELETE_ERROR": "Fehler beim Löschen des Portals"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informationen zum Hilfezentrum",
- "route": "new_portal_information",
- "body": "Grundlegende Informationen zum Portal",
- "CREATE_BASIC_SETTING_BUTTON": "Portalgrundeinstellungen erstellen"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informationen zum Hilfezentrum",
+ "BODY": "Grundlegende Informationen zum Portal"
},
- {
- "title": "Anpassung des Help Centers",
- "route": "portal_customization",
- "body": "Portal anpassen",
- "UPDATE_PORTAL_BUTTON": "Portaleinstellungen aktualisieren"
+ "CUSTOMIZATION": {
+ "TITLE": "Anpassung des Help Centers",
+ "BODY": "Portal anpassen"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "Sie sind bereit!",
- "FINISH": "Abschließen"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "Sie sind bereit!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Zurück",
"BASIC_SETTINGS_PAGE": {
@@ -231,9 +237,9 @@
"LABEL": "Logo",
"UPLOAD_BUTTON": "Logo hochladen",
"HELP_TEXT": "Dieses Logo wird in der Kopfzeile des Portals angezeigt.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "IMAGE_UPLOAD_SUCCESS": "Logo erfolgreich hochgeladen",
+ "IMAGE_UPLOAD_ERROR": "Logo erfolgreich gelöscht",
+ "IMAGE_DELETE_ERROR": "Fehler beim Löschen des Logos"
},
"NAME": {
"LABEL": "Name",
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Benutzerdefinierte Domain",
"PLACEHOLDER": "Benutzerdefinierte Domain des Portals",
- "HELP_TEXT": "Nur hinzufügen, wenn Sie eine benutzerdefinierte Domäne für Ihre Portale verwenden möchten. Beispiel: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Geben Sie eine gültige Domänen-URL ein"
},
"HOME_PAGE_LINK": {
"LABEL": "Homepage-Link",
"PLACEHOLDER": "Link zur Startseite des Portals",
- "HELP_TEXT": "Der Link, der verwendet wird, um vom Portal zur Startseite zurückzukehren. Beispiel: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Geben Sie eine gültige Startseiten-URL ein"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Sprache wurde erfolgreich aus dem Portal entfernt",
"ERROR_MESSAGE": "Sprache kann nicht aus dem Portal entfernt werden. Versuchen Sie es nochmal."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -319,13 +337,13 @@
"HEADERS": {
"TITLE": "Titel",
"CATEGORY": "Kategorie",
- "READ_COUNT": "Views",
+ "READ_COUNT": "Ansichten",
"STATUS": "Status",
"LAST_EDITED": "Zuletzt bearbeitet"
},
"COLUMNS": {
"BY": "von",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "AUTHOR_NOT_AVAILABLE": "Autor ist nicht verfügbar"
}
},
"EDIT_ARTICLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Artikel erfolgreich archiviert"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Fehler beim Löschen des Artikels"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Bitte fügen Sie die Überschrift und den Inhalt des Artikels hinzu, dann können nur Sie die Einstellungen aktualisieren"
},
@@ -379,7 +413,7 @@
"NAME": {
"LABEL": "Name",
"PLACEHOLDER": "Kategoriename",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Der Kategoriename und das Symbol werden im öffentlich zugänglichen Portal verwendet, um Artikel zu kategorisieren.",
"ERROR": "Name wird benötigt"
},
"SLUG": {
@@ -410,7 +444,7 @@
"NAME": {
"LABEL": "Name",
"PLACEHOLDER": "Kategoriename",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Der Kategoriename und das Symbol werden im öffentlich zugänglichen Portal verwendet, um Artikel zu kategorisieren.",
"ERROR": "Name wird benötigt"
},
"SLUG": {
@@ -441,46 +475,484 @@
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
+ "TITLE": "Artikel suchen",
+ "PLACEHOLDER": "Artikel suchen",
+ "NO_RESULT": "Keine Artikel gefunden",
"SEARCHING": "Suchen...",
"SEARCH_BUTTON": "Suchen",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "Link einfügen",
+ "IFRAME_ERROR": "URL ist leer oder ungültig. Inhalt kann nicht angezeigt werden.",
+ "OPEN_ARTICLE_SEARCH": "Artikel aus dem Help Center einfügen",
+ "SUCCESS_ARTICLE_INSERTED": "Artikel erfolgreich eingefügt",
+ "PREVIEW_LINK": "Artikelvorschau anzeigen",
"CANCEL": "Schließen",
"BACK": "Zurück",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "Zurück zu den Ergebnissen"
},
"UPGRADE_PAGE": {
"TITLE": "Hilfezentrum",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "DESCRIPTION": "Erstellen Sie benutzerfreundliche Self Service-Portale. Helfen Sie Ihren Nutzern, auf die Artikel zuzugreifen und rund um die Uhr Unterstützung zu erhalten. Erweitern Sie Ihr Abonnement, um diese Funktion zu aktivieren.",
+ "SELF_HOSTED_DESCRIPTION": "Erstellen Sie benutzerfreundliche Self Service-Portale. Helfen Sie Ihren Nutzern, auf die Artikel zuzugreifen und rund um die Uhr Unterstützung zu erhalten. Bitte kontaktieren Sie Ihren Administrator, um diese Funktion zu aktivieren.",
"BUTTON": {
"LEARN_MORE": "Mehr erfahren",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "Upgrade durchführen"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Mehrere Portale",
+ "DESCRIPTION": "Erstellen Sie mehrere Help Center-Portale für verschiedene Produkte mit demselben Konto."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Vollständige Unterstützung für Sprachen",
+ "DESCRIPTION": "Finden Sie das Portal in Ihrer Sprache. Wir unterstützen alle Sprachen und ermöglichen Übersetzungen für jeden Artikel."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO-freundliches Design",
+ "DESCRIPTION": "Passen Sie Ihre Meta-Tags an, um Ihre Sichtbarkeit in Suchmaschinen mit unseren SEO-freundlichen Seiten zu verbessern."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "Vollständige API-Unterstützung",
+ "DESCRIPTION": "Verwenden Sie das Portal als Headless-CMS mit Drittanbieter-Front-End-Frameworks mithilfe unserer APIs."
}
}
+ },
+ "LOADING": "Laden...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Veröffentlichen",
+ "DRAFT": "Entwürfe",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Übersetzen",
+ "DELETE": "Löschen"
+ },
+ "STATUS": {
+ "DRAFT": "Entwürfe",
+ "PUBLISHED": "Veröffentlicht",
+ "ARCHIVED": "Archiviert"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Meine",
+ "DRAFT": "Entwürfe",
+ "PUBLISHED": "Veröffentlicht",
+ "ARCHIVED": "Archiviert"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Übersetzen",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Auswahl löschen",
+ "TRANSLATE_BUTTON": "Übersetzen",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Veröffentlichen",
+ "DRAFT": "Entwürfe",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Übersetzen",
+ "MOVE_TO_CATEGORY": "Kategorie",
+ "DELETE": "Löschen",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Löschen",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Neue Kategorie",
+ "EDIT_CATEGORY": "Kategorie bearbeiten",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Keine Kategorien gefunden",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorie erfolgreich erstellt",
+ "ERROR_MESSAGE": "Kategorie kann nicht erstellt werden"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorie erfolgreich aktualisiert",
+ "ERROR_MESSAGE": "Kategorie kann nicht aktualisiert werden"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorie erfolgreich gelöscht",
+ "ERROR_MESSAGE": "Kategorie kann nicht gelöscht werden"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Kategorie erstellen",
+ "EDIT": "Kategorie bearbeiten",
+ "DESCRIPTION": "Durch das Bearbeiten einer Kategorie wird die Kategorie im öffentlich zugänglichen Portal aktualisiert.",
+ "PORTAL": "Portal",
+ "LOCALE": "Sprache"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Kategoriename",
+ "ERROR": "Name wird benötigt"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Kategorie-Slug für URLs",
+ "ERROR": "Slug ist erforderlich",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Geben Sie eine kurze Beschreibung der Kategorie ein.",
+ "ERROR": "Beschreibung wird benötigt"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Erstellen",
+ "EDIT": "Aktualisieren",
+ "CANCEL": "Stornieren"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Standard",
+ "DRAFT": "Entwürfe",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Löschen"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Neues Gebietsschema hinzufügen",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Sprache auswählen..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Veröffentlicht",
+ "DRAFT": "Entwürfe"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Sprache erfolgreich hinzugefügt",
+ "ERROR_MESSAGE": "Sprache kann nicht hinzugefügt werden. Versuchen Sie es nochmal."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Speichern...",
+ "SAVED": "Gespeichert"
+ },
+ "PREVIEW": "Vorschau",
+ "PUBLISH": "Veröffentlichen",
+ "DRAFT": "Entwürfe",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Nicht kategorisiert",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta-Beschreibung",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta-Titel",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta-Tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Fehler beim Speichern des Artikels"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portale",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "Artikel",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portalname"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Erstellen",
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name wird benötigt"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug ist erforderlich",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Bild konnte nicht hochgeladen werden! Versuchen Sie es erneut",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo erfolgreich gelöscht",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Bildgröße sollte kleiner als {size}MB sein"
+ },
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Portalname",
+ "ERROR": "Name wird benötigt"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal-Header-Text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Titel der Portalseite"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Link zur Startseite des Portals",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Benutzerdefinierte Domain",
+ "LABEL": "Benutzerdefinierte Domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Benutzerdefinierte Domain des Portals",
+ "EDIT_BUTTON": "Bearbeiten",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Benutzerdefinierte Domain",
+ "PLACEHOLDER": "Benutzerdefinierte Domain des Portals",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Senden"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Portal löschen",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Löschen"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Darstellung",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Entfernen"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal erfolgreich erstellt",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal erfolgreich aktualisiert",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Hochladen...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Stornieren",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generieren...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Erledigt",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/inbox.json b/app/javascript/dashboard/i18n/locale/de/inbox.json
index 4895b8008..cf85c97f1 100644
--- a/app/javascript/dashboard/i18n/locale/de/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/de/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Posteingang",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "Alle Benachrichtigungen geladen 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "Anzeigen",
+ "LOADING": "Benachrichtigungen werden abgerufen",
+ "404": "Es gibt keine aktiven Benachrichtigungen in dieser Gruppe.",
+ "NO_NOTIFICATIONS": "Keine Benachrichtigungen",
+ "NOTE": "Benachrichtigungen aus allen abonnierten Posteingängen",
+ "NO_MESSAGES_AVAILABLE": "Hoppla! Nachrichten konnten nicht abgerufen werden",
"SNOOZED_UNTIL": "Stummschalten bis",
"SNOOZED_UNTIL_TOMORROW": "Schlummern bis morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Schlummern bis nächste Woche"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "Schlummerbenachrichtigung",
+ "DELETE": "Benachrichtigung löschen",
+ "BACK": "Zurück"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "Sie wurden in einer Unterhaltung erwähnt",
+ "CONVERSATION_CREATION": "Neue Unterhaltung erstellt",
+ "CONVERSATION_ASSIGNMENT": "Eine Unterhaltung wurde Ihnen zugewiesen",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Neue Nachricht in einer zugewiesenen Unterhaltung",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Neue Nachricht in einer Unterhaltung, an dem Sie teilnehmen",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA-Ziel für die erste Antwort in der Unterhaltung verpasst",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA-Ziel für die nächste Antwort in der Unterhaltung verpasst",
+ "SLA_MISSED_RESOLUTION": "SLA-Ziel zur Lösung der Unterhaltung verpasst"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Neue Nachricht",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Neue Nachricht",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Kein Inhalt verfügbar",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "Als gelesen markieren",
"MARK_AS_UNREAD": "Als ungelesen markieren",
"SNOOZE": "Erinnern",
"DELETE": "Löschen",
"MARK_ALL_READ": "Alle als gelesen markieren",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "Alles löschen",
+ "DELETE_ALL_READ": "Alle gelesenen löschen"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "Sortieren",
+ "DISPLAY": "Anzeigen:",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "Neuste",
+ "OLDEST": "Älteste",
"PRIORITY": "Priorität"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "Erinnern",
"READ": "Lesen",
"LABELS": "Labels",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "Konversations-ID"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "Benachrichtigung als gelesen markiert",
+ "MARK_AS_UNREAD": "Benachrichtigung als ungelesen markiert",
+ "SNOOZE": "Benachrichtigung schlummern gestellt",
+ "DELETE": "Benachrichtigung gelöscht",
+ "MARK_ALL_READ": "Alle Benachrichtigungen als gelesen markiert",
+ "DELETE_ALL": "Alle Benachrichtigungen gelöscht",
+ "DELETE_ALL_READ": "Alle gelesenen Benachrichtigungen gelöscht"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
index cc2ad3c9e..4d5f5f71d 100644
--- a/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Posteingänge",
- "SIDEBAR_TXT": "Inbox
Wenn Sie eine Website oder eine Facebook-Seite mit Chatwoot verbinden, wird diese als bInbox bezeichnet. Sie können unbegrenzte Posteingänge in Ihrem Chatwoot-Konto haben.
Posteingang hinzufügen, um eine Website oder eine Facebook-Seite zu verbinden.
Im Dashboard können Sie alle Konversationen aus all Ihren Posteingängen an einem einzigen Ort sehen und unter der Registerkarte 'Konversationen' darauf antworten.
Sie können auch zu einem Posteingang spezifische Konversationen anzeigen, indem Sie auf den Namen des Posteingangs im linken Bereich des Dashboards klicken.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Mehr über Posteingänge erfahren",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Ihr Posteingang ist nicht verbunden. Sie erhalten keine neuen Nachrichten, bis Sie ihn erneut autorisieren.",
+ "CLICK_TO_RECONNECT": "Klicken Sie hier, um die Verbindung wiederherzustellen.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Diesem Konto sind keine Posteingänge zugeordnet."
},
- "CREATE_FLOW": [
- {
- "title": "Wählen Sie Kanal",
- "route": "settings_inbox_new",
- "body": "Wählen Sie den Anbieter, den Sie in Chatwoot integrieren möchten."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Wählen Sie Kanal",
+ "BODY": "Wählen Sie den Anbieter, den Sie in Chatwoot integrieren möchten."
},
- {
- "title": "Posteingang erstellen",
- "route": "settings_inboxes_page_channel",
- "body": "Authentifizieren Sie Ihr Konto und erstellen Sie einen Posteingang."
+ "INBOX": {
+ "TITLE": "Posteingang erstellen",
+ "BODY": "Authentifizieren Sie Ihr Konto und erstellen Sie einen Posteingang."
},
- {
- "title": "Agenten hinzufügen",
- "route": "settings_inboxes_add_agents",
- "body": "Fügen Sie dem erstellten Posteingang Agenten hinzu."
+ "AGENT": {
+ "TITLE": "Agenten hinzufügen",
+ "BODY": "Fügen Sie dem erstellten Posteingang Agenten hinzu."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Sie sind bereit zu gehen!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Geschafft!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Posteingang-Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Wähle eine Seite aus der Liste",
"INBOX_NAME": "Posteingang-Name",
"ADD_NAME": "Namen für diesen Posteingang eingeben",
- "PICK_NAME": "Wählen Sie einen Namen für Ihren Posteingang",
- "PICK_A_VALUE": "Wählen Sie einen Wert aus"
+ "PICK_NAME": "Wählen Sie einen Namen für Ihren Posteingang aus",
+ "PICK_A_VALUE": "Wählen Sie einen Wert aus",
+ "CREATE_INBOX": "Posteingang erstellen"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Mit Instagram fortfahren",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Verbinde dein 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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Um Ihr Twitter-Profil als Kanal hinzuzufügen, müssen Sie Ihr Twitter-Profil authentifizieren, indem Sie auf 'Mit Twitter anmelden' klicken.",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook-URL",
- "PLACEHOLDER": "Geben Sie Ihre Webhook-URL ein",
+ "PLACEHOLDER": "Bitte geben Sie Ihre Webhook-URL ein",
"ERROR": "Bitte geben Sie eine gültige URL ein"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website-Domain",
"PLACEHOLDER": "Geben Sie Ihre Website-Domain ein (eg: acme.com)"
@@ -112,14 +141,14 @@
"ERROR": "Dieses Feld wird benötigt"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "USE_API_KEY": "Verwenden Sie die API-Schlüssel-Authentifizierung",
+ "LABEL": "API-Schlüssel SID",
+ "PLACEHOLDER": "Bitte geben Sie Ihre API-Schlüssel SID ein",
"ERROR": "Dieses Feld wird benötigt"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "LABEL": "API-Schlüssel-Geheimnis",
+ "PLACEHOLDER": "Bitte geben Sie Ihr API-Schlüssel-Geheimnis ein",
"ERROR": "Dieses Feld wird benötigt"
},
"MESSAGING_SERVICE_SID": {
@@ -180,7 +209,7 @@
},
"API_SECRET": {
"LABEL": "API-Secret",
- "PLACEHOLDER": "Bitte geben Sie Ihr Bandbreiten-API-Secret ein",
+ "PLACEHOLDER": "Bitte geben Sie Ihr Bandbreiten-API-Geheimnis ein",
"ERROR": "Dieses Feld wird benötigt"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Unterstützen Sie Ihre Kunden via WhatsApp.",
"PROVIDERS": {
"LABEL": "API-Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Wähle deinen API-Provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Posteingang-Name",
"PLACEHOLDER": "Bitte geben Sie einen Namen für den Posteingang ein",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook-Verifizierungstoken",
- "PLACEHOLDER": "Geben Sie ein Überprüfungstoken ein, das Sie für Facebook-Webhooks konfigurieren möchten.",
+ "PLACEHOLDER": "Geben Sie ein Bestätigungstoken ein, das Sie für Facebook-Webhooks konfigurieren möchten.",
"ERROR": "Bitte geben Sie einen gültigen Wert ein."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook-Verifizierungstoken"
},
"SUBMIT_BUTTON": "WhatsApp-Kanal erstellen",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentifizierung nicht abgeschlossen. Bitte starte den Prozess neu.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account wurde erfolgreich konfiguriert",
+ "MANUAL_FALLBACK": "Wenn Ihre Nummer bereits mit der WhatsApp Business Plattform (API) verbunden ist, oder wenn Sie als Technologieanbieter Ihre eigene Nummer an Bord haben, verwenden Sie bitte den {link} Flow",
+ "MANUAL_LINK_TEXT": "Manueller Einrichtungsablauf",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Wir konnten den WhatsApp-Kanal nicht speichern"
}
},
+ "VOICE": {
+ "TITLE": "Sprachkanal",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefonnummer",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth-Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API-Schlüssel SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API-Schlüssel-Geheimnis",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API-Kanal",
"DESC": "Integrieren Sie einen API-Kanal und starten Sie mit der Unterstützung Ihrer Kunden.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook-URL",
- "SUBTITLE": "Konfigurieren Sie die URL, auf der Sie Callbacks bei Events erhalten möchten.",
+ "SUBTITLE": "Konfigurieren Sie die URL, unter der Sie Rückrufe bei Ereignissen empfangen möchten.",
"PLACEHOLDER": "Webhook-URL"
},
"SUBMIT_BUTTON": "API-Kanal erstellen",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "E-Mail-Kanal",
- "DESC": "Integrieren Sie Ihren Posteingang.",
+ "DESC": "Integrieren Sie Ihren E-Mail-Posteingang.",
"CHANNEL_NAME": {
"LABEL": "Kanal Name",
"PLACEHOLDER": "Bitte geben Sie einen Kanalnamen ein",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Wir konnten den E-Mail-Kanal nicht speichern"
},
- "FINISH_MESSAGE": "Starten Sie die Weiterleitung Ihrer E-Mails an die folgende E-Mail-Adresse."
+ "FINISH_MESSAGE": "Starten Sie die Weiterleitung Ihrer E-Mails an die folgende E-Mail-Adresse.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Hier klicken",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE-Kanal",
@@ -340,7 +451,59 @@
},
"AUTH": {
"TITLE": "Wählen Sie einen Kanal",
- "DESC": "Chatwoot unterstützt Live-Chat-Widgets, Facebook Messenger, Twitter-Profile, WhatsApp, E-Mails usw. als Kanäle. Wenn Sie einen benutzerdefinierten Kanal erstellen möchten, können Sie ihn mithilfe des API-Kanals erstellen. Wählen Sie zunächst einen der folgenden Kanäle aus."
+ "DESC": "Chatwoot unterstützt Live-Chat-Widgets, Facebook Messenger, Twitter-Profile, WhatsApp, E-Mails usw. als Kanäle. Wenn Sie einen benutzerdefinierten Kanal erstellen möchten, können Sie ihn mithilfe des API-Kanals erstellen. Wählen Sie zunächst einen der folgenden Kanäle aus.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Webseite",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-Mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegramm",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenten",
@@ -364,15 +527,23 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Klicken Sie auf die Schaltfläche Einloggen mit Microsoft, um loszulegen. Sie werden zur E-Mail-Anmeldeseite weitergeleitet. Sobald Sie die angeforderten Berechtigungen angenommen haben, werden Sie zum Erstellungsschritt für den Posteingang weitergeleitet.",
"EMAIL_PLACEHOLDER": "E-Mail-Adresse eingeben",
- "HELP": "Um Ihr Microsoft-Konto als Kanal hinzuzufügen, müssen Sie Ihr Microsoft-Konto authentifizieren, indem Sie auf 'Mit Microsoft anmelden' klicken ",
+ "SIGN_IN": "Mit Microsoft anmelden",
"ERROR_MESSAGE": "Beim Verbinden mit Microsoft ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
+ },
+ "GOOGLE": {
+ "TITLE": "Google E-Mail",
+ "DESCRIPTION": "Klicken Sie auf die Schaltfläche Einloggen mit Google, um loszulegen. Sie werden zur E-Mail-Anmeldeseite weitergeleitet. Sobald Sie die angeforderten Berechtigungen angenommen haben, werden Sie zum Erstellungsschritt für den Posteingang weitergeleitet.",
+ "SIGN_IN": "Mit Google anmelden",
+ "EMAIL_PLACEHOLDER": "E-Mail-Adresse eingeben",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authentifizierung mit Facebook ...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Es ist ein Fehler aufgetreten. Bitte Seite aktualisieren ...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "ERROR_FB_UNAUTHORIZED": "Sie sind nicht berechtigt, diese Aktion auszuführen. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Bitte stellen Sie sicher, dass Sie vollen Zugriff auf die Facebook-Seite haben. Weitere Informationen zu Facebook-Rollen finden Sie here.",
"CREATING_CHANNEL": "Erstellen Sie Ihren Posteingang ...",
"TITLE": "Posteingangsdetails konfigurieren",
"DESC": ""
@@ -386,7 +557,10 @@
"MESSAGE": "Sie können jetzt über Ihren neuen Kanal mit Ihren Kunden in Kontakt treten. Fröhliches Unterstützen",
"BUTTON_TEXT": "Bring mich dahin",
"MORE_SETTINGS": "Weitere Einstellungen",
- "WEBSITE_SUCCESS": "Sie haben die Erstellung eines Website-Kanals erfolgreich abgeschlossen. Kopieren Sie den unten gezeigten Code und fügen Sie ihn in Ihre Website ein. Wenn ein Kunde das nächste Mal den Live-Chat verwendet, wird die Konversation automatisch in Ihrem Posteingang angezeigt."
+ "WEBSITE_SUCCESS": "Sie haben die Erstellung eines Website-Kanals erfolgreich abgeschlossen. Kopieren Sie den unten gezeigten Code und fügen Sie ihn in Ihre Website ein. Wenn ein Kunde das nächste Mal den Live-Chat verwendet, wird die Konversation automatisch in Ihrem Posteingang angezeigt.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Neu autorisieren",
"VIEW": "Aussicht",
@@ -405,21 +579,21 @@
"DISABLED": "Deaktiviert"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "Name des Absenders",
+ "SUB_TEXT": "Wählen Sie den Namen aus, der Ihren Kunden angezeigt wird, wenn sie E-Mails von Ihren Agenten erhalten.",
+ "FOR_EG": "Zum Beispiel:",
"FRIENDLY": {
"TITLE": "Freundlich",
"FROM": "von",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "Fügen Sie den Namen des Agenten, der die Antwort gesendet hat, in den Absendernamen ein, um es freundlicher zu gestalten."
},
"PROFESSIONAL": {
"TITLE": "Professionell",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "SUBTITLE": "Verwenden Sie nur den konfigurierten Firmennamen als Absendernamen in der E-Mail-Kopfzeile."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
+ "BUTTON_TEXT": "Konfigurieren Sie Ihren Firmennamen",
+ "PLACEHOLDER": "Geben Sie Ihren Firmennamen ein",
"SAVE_BUTTON_TEXT": "Speichern"
}
},
@@ -432,8 +606,10 @@
"DISABLED": "Deaktiviert"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktiviert",
- "DISABLED": "Deaktiviert"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktivieren"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre-Chat-Formular",
"BUSINESS_HOURS": "Öffnungszeiten",
"WIDGET_BUILDER": "Widget-Generator",
- "BOT_CONFIGURATION": "Bot-Konfiguration"
+ "BOT_CONFIGURATION": "Bot-Konfiguration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Einstellungen",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger-Skript",
"MESSENGER_SUB_HEAD": "Platzieren Sie diese Schaltfläche in Ihrem Body-Tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenten",
"INBOX_AGENTS_SUB_TEXT": "Hinzufügen oder Entfernen von Agenten zu diesem Posteingang",
"AGENT_ASSIGNMENT": "Konversationssauftrag",
@@ -485,14 +778,13 @@
"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": "Enable Agent Name in Email",
- "ENABLE_CSAT_SUB_TEXT": "CSAT(Kundenzufriedenheit) Umfrage aktivieren/deaktivieren nach Abschluss eines Gesprächs",
- "SENDER_NAME_SECTION_TEXT": "Enable/Disable showing Agent's name in email, if disabled it will show business name",
+ "SENDER_NAME_SECTION": "Aktivieren Sie den Agentennamen in der E-Mail",
+ "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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Merere Konversationen zulassen",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Mehrere gleichzeitige Unterhaltungen für denselben Kontakt in diesem Posteingang aktivieren oder deaktivieren",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Posteingangseinstellungen",
"INBOX_UPDATE_SUB_TEXT": "Posteingangseinstellungen aktualisieren",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktivieren oder deaktivieren Sie die automatische Zuweisung verfügbarer Agenten für neue Konversationen",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Verwenden Sie den hier angezeigten `inbox_identifier`-Token zur Authentifizierung Ihrer API-Clients.",
"FORWARD_EMAIL_TITLE": "Weiterleitung an E-Mail",
"FORWARD_EMAIL_SUB_TEXT": "Starten Sie die Weiterleitung Ihrer E-Mails an die folgende E-Mail-Adresse.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Nachrichten zulassen, nachdem die Konversation gelöst wurde",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Den Endbenutzern erlauben, Nachrichten zu versenden, auch wenn die Unterhaltung abgeschlossen ist.",
"WHATSAPP_SECTION_SUBHEADER": "Dieser API Key wird für die Integration mit den WhatsApp APIs verwendet.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Geben Sie den aktualisierten Schlüssel ein, der für die Integration von WhatsApp API verwendet werden soll.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Geben Sie den neuen API-Schlüssel ein, der für die Integration mit den WhatsApp-APIs verwendet werden soll.",
"WHATSAPP_SECTION_TITLE": "API-Schlüssel",
"WHATSAPP_SECTION_UPDATE_TITLE": "API-Schlüssel aktualisieren",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Neuen API-Schlüssel hier eingeben",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Aktualisieren",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Verbinden",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "Webhook-Verifizierungstoken",
"WHATSAPP_WEBHOOK_SUBHEADER": "Mit diesem Token wird die Authentizität des Webhook Endpunktes überprüft.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Pre Chat Einstellungen aktualisieren"
},
"HELP_CENTER": {
"LABEL": "Hilfezentrum",
"PLACEHOLDER": "Hilfezentrum auswählen",
"SELECT_PLACEHOLDER": "Hilfezentrum auswählen",
+ "NONE": "Keine",
"REMOVE": "Hilfezentrum entfernen",
"SUB_TEXT": "Ein Hilfezentrum am Posteingang anhängen"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Bitte geben Sie einen Wert größer als 0 ein",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Beschränken Sie die maximale Anzahl von Konversationen aus diesem Posteingang, die einem Agenten automatisch zugewiesen werden können"
},
+ "ASSIGNMENT": {
+ "TITLE": "Konversationssauftrag",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Stornieren",
+ "CONFIRM_DELETE": "Löschen",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Neu autorisieren",
"SUBTITLE": "Ihre Facebook-Verbindung ist abgelaufen, bitte verbinden Sie sich neu, um die Dienste fortzuführen",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Sprache",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "Die Voralge ist auf der Meta-Plattform nicht vorhanden."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "Wir löschen die vorherige Vorlage und erstellen eine neue, die erneut zur Genehmigung durch WhatsApp gesendet wird",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Zurück"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -569,11 +1003,13 @@
"UPDATE": "Einstellungen für Geschäftszeiten aktualisieren",
"TOGGLE_AVAILABILITY": "Geschäftszeiten für diesen Posteingang aktivieren",
"UNAVAILABLE_MESSAGE_LABEL": "Nachricht für Besucher außerhalb Geschäftszeiten",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TOGGLE_HELP": "Wenn die Geschäftsverfügbarkeit aktiviert ist, werden die verfügbaren Stunden im Live-Chat-Widget angezeigt, auch wenn alle Agenten offline sind. Außerhalb der verfügbaren Stunden können Besucher mit einer Nachricht und einem Chat-Formular gewarnt werden.",
"DAY": {
+ "DAY": "Tag",
+ "AVAILABILITY": "Verfügbarkeit",
+ "HOURS": "Hours",
"ENABLE": "Verfügbarkeit für diesen Tag aktivieren",
"UNAVAILABLE": "Nicht verfügbar",
- "HOURS": "Stunden",
"VALIDATION_ERROR": "Die Startzeit sollte vor der Schließzeit liegen.",
"CHOOSE": "Auswählen"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Um SMTP zu aktivieren, konfigurieren Sie bitte IMAP.",
"UPDATE": "IMAP-Einstellungen aktualisieren",
"TOGGLE_AVAILABILITY": "IMAP-Konfiguration für diesen Posteingang aktivieren",
- "TOGGLE_HELP": "Die Aktivierung von IMAP hilft dem Benutzer, E-Mails zu empfangen",
+ "TOGGLE_HELP": "Wenn IMAP aktiviert ist, kann der Benutzer E-Mails empfangen",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP-Einstellungen erfolgreich aktualisiert",
"ERROR_MESSAGE": "IMAP-Einstellungen können nicht aktualisiert werden"
@@ -606,7 +1042,8 @@
"LABEL": "Passwort",
"PLACE_HOLDER": "Passwort"
},
- "ENABLE_SSL": "SSL aktivieren"
+ "ENABLE_SSL": "SSL aktivieren",
+ "AUTH_MECHANISM": "Authentifizierung"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Innerhalb eines Tages"
},
"WIDGET_COLOR_LABEL": "Widget Farbe",
- "WIDGET_BUBBLE_POSITION_LABEL": "Position der Widget-Blase",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget-Blasentyp",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Typ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatten Sie mit uns",
- "LABEL": "Widget Bubble Launcher-Titel",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatten Sie mit uns"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Standard",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Wir antworten üblicherweise innerhalb weniger Minuten",
@@ -717,7 +1155,7 @@
"IN_A_DAY": "Wir antworten üblicherweise innerhalb eines Tages"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Unterhaltung beginnen",
+ "START_CONVERSATION_BUTTON_TEXT": "Konversation beginnen",
"CHAT_INPUT_PLACEHOLDER": "Schreiben Sie Ihre Nachricht"
},
"BODY": {
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Andere Anbieter"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Andere Anbieter",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Webseite",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-Mail",
+ "TELEGRAM": "Telegramm",
+ "LINE": "Line",
+ "API": "API-Kanal",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/index.js b/app/javascript/dashboard/i18n/locale/de/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/de/index.js
+++ b/app/javascript/dashboard/i18n/locale/de/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/de/integrationApps.json b/app/javascript/dashboard/i18n/locale/de/integrationApps.json
index 10c210ea3..cd030e97a 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Integrationen werden abgerufen",
- "NO_HOOK_CONFIGURED": "Es wurden keine %{integrationId} Integrationen in diesem Konto konfiguriert.",
+ "NO_HOOK_CONFIGURED": "Es wurden keine {integrationId} Integrationen in diesem Konto konfiguriert.",
"HEADER": "Anwendungen",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktiviert",
"DISABLED": "Deaktiviert"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Hooks werden abgerufen",
"INBOX": "Posteingang",
+ "ACTIONS": "Aktionen",
"DELETE": {
"BUTTON_TEXT": "Löschen"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Posteingang auswählen"
},
"SUBMIT": "Erstellen",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Abbrechen"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Verbindung trennen"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow ist eine Sprachverständnis-Plattform, die es einfach macht, eine interaktive Benutzeroberfläche in Ihre mobile App, Web-Anwendung, Gerät, Bot, interaktives Voice-Antwort-System etc. zu integrieren.
Die Dialogflow-Integration mit %{installationName} ermöglicht es Ihnen, einen Dialogfluss-Bot mit Ihren Posteingängen zu verknüpfen. Dieser Bot erlaubt es Ihnen, eingehende Anfragen zunächst zu bearbeiten und diese bei Bedarf an einen Agenten zu übergeben. Dialogflow kann zur Qualifizierung der Leads, zur Reduzierung der Arbeitsbelastung von Agenten durch häufig gestellte Fragen usw. genutzt werden.
Um Dialogflow hinzuzufügen, müssen Sie ein Service-Konto in Ihrer Google-Projekt-Konsole erstellen und die Zugangsdaten freigeben. Weitere Informationen finden Sie in der Dialogflow-Dokumentation."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/integrations.json b/app/javascript/dashboard/i18n/locale/de/integrations.json
index f1d497717..6c0f93bee 100644
--- a/app/javascript/dashboard/i18n/locale/de/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/de/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Stornieren",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrationen",
+ "DESCRIPTION": "Chatwoot integriert sich mit mehreren Tools und Diensten, um die Effizienz Ihres Teams zu verbessern. Erkunden Sie die folgende Liste, um Ihre Lieblingsapps zu konfigurieren.",
+ "LEARN_MORE": "Mehr über Integrationen erfahren",
+ "LOADING": "Integrationen werden abgerufen",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain ist auf Ihrem Konto nicht aktiviert.",
+ "CLICK_HERE_TO_CONFIGURE": "Hier klicken, um zu konfigurieren",
+ "LOADING_CONSOLE": "Captain-Konsole wird geladen...",
+ "FAILED_TO_LOAD_CONSOLE": "Fehler beim Laden der Captain-Konsole. Bitte aktualisieren und erneut versuchen."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonnierte Events",
+ "LEARN_MORE": "Mehr über Webhooks erfahren",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Stornieren",
"DESC": "Webhook-Ereignisse bieten Ihnen Echtzeitinformationen darüber, was in Ihrem Chatwoot-Konto passiert. Bitte geben Sie eine gültige URL ein, um einen Rückruf zu konfigurieren.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook-URL",
- "PLACEHOLDER": "Beispiel: https://beispiel/api/webhook",
+ "PLACEHOLDER": "Beispiel: {webhookExampleURL}",
"ERROR": "Bitte geben Sie eine gültige URL ein"
},
"EDIT_SUBMIT": "Webhook aktualisieren",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Für dieses Konto sind keine Webhooks konfiguriert.",
"TITLE": "Webhooks verwalten",
- "TABLE_HEADER": [
- "Webhook-Endpunkt",
- "Aktionen"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook-Endpunkt",
+ "ACTIONS": "Aktionen"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Bearbeiten",
@@ -66,34 +112,35 @@
},
"CONFIRM": {
"TITLE": "Löschung bestätigen",
- "MESSAGE": "Möchten Sie den Webhook wirklich löschen? (%{webhookURL})",
+ "MESSAGE": "Möchten Sie den Webhook wirklich löschen? ({webhookURL})",
"YES": "Ja, löschen ",
"NO": "Nein, behalte es"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Löschen",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "Integration löschen",
+ "MESSAGE": "Sind Sie sicher, dass Sie die Integration löschen möchten? Dadurch verlieren Sie den Zugang zu Konversationen in Ihrem Slack-Arbeitsbereich."
},
"HELP_TEXT": {
"TITLE": "Slack-Integration verwenden",
- "BODY": "
Chatwoot wird nun alle eingehenden Konversationen in den Kundengespräche Channel innerhalb Ihres Slack Arbeitsplatzes synchronisieren.
Wenn Sie in Kunden-Konversationen antworten, wird der Slack Kanal eine Antwort an den Kunden durch Chat erzeugen.
Starten Sie die Antworten mit Notiz: um private Notizen anstatt Antworten zu erstellen.
Wenn der Replier auf Slack ein Agentenprofil im Chatwoot unter der gleichen E-Mail hat, werden die Antworten entsprechend assoziiert.
Wenn der Replier kein Agentenprofil hat, werden die Antworten aus dem Bot-Profil getätigt.
",
- "SELECTED": "selected"
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "ausgewählt"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "Einen Kanal auswählen",
"UPDATE": "Aktualisieren",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "Kanal verbinden",
+ "DESCRIPTION": "Ihr Slack-Arbeitsbereich ist jetzt mit Chatwoot verbunden. Die Integration ist jedoch derzeit inaktiv. Um die Integration zu aktivieren und einen Kanal mit Chatwoot zu verbinden, klicken Sie bitte auf den untenstehenden Button.\n\n**Hinweis:** Wenn Sie versuchen, einen privaten Kanal zu verbinden, fügen Sie die Chatwoot-App dem Slack-Kanal hinzu, bevor Sie diesen Schritt fortsetzen.",
+ "ATTENTION_REQUIRED": "Achtung",
+ "EXPIRED": "Ihre Slack-Integration ist abgelaufen. Um weiterhin Nachrichten auf Slack zu erhalten, löschen Sie bitte die Integration und verbinden Sie Ihren Arbeitsbereich erneut."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "Beim Aktualisieren der Integration ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "UPDATE_SUCCESS": "Der Kanal wurde erfolgreich verbunden",
+ "FAILED_TO_FETCH_CHANNELS": "Beim Abrufen der Kanäle von Slack ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut"
},
"DYTE": {
"CLICK_HERE_TO_JOIN": "Klicken Sie hier, um beizutreten",
@@ -103,39 +150,61 @@
"CREATE_ERROR": "Beim Erstellen eines Meeting-Links ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI-Assistent",
+ "WITH_AI": " {option} mit KI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "Antwortvorschlag",
+ "SUMMARIZE": "Zusammenfassen",
+ "REPHRASE": "Schreibstil verbessern",
+ "FIX_SPELLING_GRAMMAR": "Rechtschreibung und Grammatik korrigieren",
+ "SHORTEN": "Kürzen",
+ "EXPAND": "Erweitern",
+ "MAKE_FRIENDLY": "Nachrichtenton in freundlich ändern",
+ "MAKE_FORMAL": "Formellen Ton verwenden",
+ "SIMPLIFY": "Vereinfachen",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionell",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Freundlich"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "Inhalt entwerfen",
+ "GENERATED_TITLE": "Generierter Inhalt",
+ "AI_WRITING": "Die KI schreibt",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "Diesen Vorschlag verwenden",
"CANCEL": "Stornieren"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "Mit OpenAI integrieren",
+ "DESC": "Erweitern Sie Ihr Dashboard um fortschrittliche KI-Funktionen mit OpenAI's GPT-Modellen. Um loszulegen, geben Sie den API-Schlüssel aus Ihrem OpenAI-Konto ein.",
+ "KEY_PLACEHOLDER": "Geben Sie Ihren OpenAI-API-Schlüssel ein",
"BUTTONS": {
"NEED_HELP": "Brauchen Sie Hilfe?",
"DISMISS": "Verwerfen",
- "FINISH": "Finish Setup"
+ "FINISH": "Einrichtung abschließen"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "Sie können die OpenAI-Integration später jederzeit einrichten.",
+ "SUCCESS_MESSAGE": "OpenAI-Integration erfolgreich eingerichtet"
},
"TITLE": "Mit KI verbessern",
"SUMMARY_TITLE": "Zusammenfassung mit KI",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Eine neue Dashboard-App hinzufügen",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard-Apps ermöglichen es Unternehmen, eine Anwendung in das Chatwoot-Dashboard einzubetten, um den Kontext für Kundendienstmitarbeiter bereitzustellen. Mit dieser Funktion können Sie eine Anwendung unabhängig erstellen und diese in das Dashboard einbetten, um Benutzerinformationen, ihre Bestellungen oder ihren bisherigen Zahlungsverlauf bereitzustellen.
Wenn Sie Ihre Anwendung über das Dashboard in Chatwoot einbetten, erhält Ihre Anwendung den Kontext der Unterhaltung und des Kontakts als Fensterereignis. Implementieren Sie einen Listener für das Nachrichtenereignis auf Ihrer Seite, um den Kontext zu erhalten.
Um eine neue Dashboard-App hinzuzufügen, klicken Sie auf die Schaltfläche „Neue Dashboard-App hinzufügen“.
",
"DESCRIPTION": "Dashboard-Apps ermöglichen es Unternehmen, eine Anwendung in das Dashboard einzubetten, um den Kontext für Kundendienstmitarbeiter bereitzustellen. Mit dieser Funktion können Sie eine Anwendung unabhängig erstellen und diese einbetten, um Benutzerinformationen, ihre Bestellungen oder ihren bisherigen Zahlungsverlauf bereitzustellen.",
+ "LEARN_MORE": "Mehr über Dashboard-Apps erfahren",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Für dieses Konto sind noch keine Dashboard-Apps konfiguriert",
"LOADING": "Dashboard-Apps werden abgerufen...",
- "TABLE_HEADER": [
- "Name",
- "Endpunkt"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ENDPOINT": "Endpunkt",
+ "ACTIONS": "Aktionen"
+ },
"EDIT_TOOLTIP": "App bearbeiten",
"DELETE_TOOLTIP": "Anwendung löschen"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Ja, löschen",
"CONFIRM_NO": "Nein, behalte es",
"TITLE": "Löschen bestätigen",
- "MESSAGE": "Möchten Sie die App %{appName} wirklich löschen?",
+ "MESSAGE": "Möchten Sie die App {appName} wirklich löschen?",
"API_SUCCESS": "Dashboard-App erfolgreich gelöscht",
"API_ERROR": "Wir konnten die App nicht löschen. Bitte versuchen Sie es später erneut"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Lineares Problem erstellen/verknüpfen",
+ "LOADING": "Lineare Probleme werden abgerufen...",
+ "LOADING_ERROR": "Beim Abrufen der linearen Probleme ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "CREATE": "Erstellen",
+ "LINK": {
+ "SEARCH": "Probleme suchen",
+ "SELECT": "Problem auswählen",
+ "TITLE": "Link",
+ "EMPTY_LIST": "Keine linearen Probleme gefunden",
+ "LOADING": "Wird geladen",
+ "ERROR": "Beim Abrufen der linearen Probleme ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "LINK_SUCCESS": "Problem erfolgreich verknüpft",
+ "LINK_ERROR": "Beim Verknüpfen des Problems ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "LINK_TITLE": "Unterhaltung (#{conversationId}) mit {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Lineares Problem erstellen/verknüpfen",
+ "DESCRIPTION": "Erstellen Sie lineare Tickets aus Unterhaltungen oder verknüpfen Sie bestehende zur nahtlosen Verfolgung.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Titel eingeben",
+ "REQUIRED_ERROR": "Titel ist erforderlich"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Beschreibung eingeben"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Team auswählen",
+ "SEARCH": "Team suchen",
+ "REQUIRED_ERROR": "Team ist erforderlich"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Zugewiesener",
+ "PLACEHOLDER": "Zuständigen auswählen",
+ "SEARCH": "Zuständigen suchen"
+ },
+ "PRIORITY": {
+ "LABEL": "Priorität",
+ "PLACEHOLDER": "Priorität auswählen",
+ "SEARCH": "Priorität suchen"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Label auswählen",
+ "SEARCH": "Label suchen"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Status auswählen",
+ "SEARCH": "Status suchen"
+ },
+ "PROJECT": {
+ "LABEL": "Projekt",
+ "PLACEHOLDER": "Projekt auswählen",
+ "SEARCH": "Projekt suchen"
+ }
+ },
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren",
+ "CREATE_SUCCESS": "Problem erfolgreich erstellt",
+ "CREATE_ERROR": "Beim Erstellen des Problems ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "LOADING_TEAM_ERROR": "Beim Abrufen der Teams ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut",
+ "LOADING_TEAM_ENTITIES_ERROR": "Beim Abrufen der Team-Entitäten ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Priorität",
+ "ASSIGNEE": "Zugewiesener",
+ "LABELS": "Labels",
+ "CREATED_AT": "Erstellt am {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Verknüpfung aufheben",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Ja, löschen",
+ "CANCEL": "Stornieren"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Kapitän",
+ "HEADER_KNOW_MORE": "Mehr erfahren",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistenten",
+ "SWITCH_ASSISTANT": "Zwischen Assistenten wechseln",
+ "NEW_ASSISTANT": "Assistent erstellen",
+ "EMPTY_LIST": "Keine Assistenten gefunden, bitte erstellen Sie einen, um zu beginnen"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Probiere diese Prompts",
+ "PANEL_TITLE": "Starten Sie mit Copilot",
+ "KICK_OFF_MESSAGE": "Brauchen Sie eine schnelle Zusammenfassung, möchten Sie vergangene Gespräche prüfen oder eine bessere Antwort entwerfen? Copilot hilft Ihnen, schneller voranzukommen.",
+ "SEND_MESSAGE": "Nachricht senden...",
+ "EMPTY_MESSAGE": "Beim Generieren der Antwort ist ein Fehler aufgetreten. Bitte versuchen Sie es erneut.",
+ "LOADER": "Captain denkt nach",
+ "YOU": "Sie",
+ "USE": "Verwenden",
+ "RESET": "Zurücksetzen",
+ "SHOW_STEPS": "Schritte anzeigen",
+ "SELECT_ASSISTANT": "Assistent auswählen",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Dieses Gespräch zusammenfassen",
+ "CONTENT": "Fassen Sie die wichtigsten Punkte zusammen, die zwischen dem Kunden und dem Supportmitarbeiter besprochen wurden, einschließlich der Anliegen, Fragen des Kunden sowie der vom Supportmitarbeiter gegebenen Lösungen oder Antworten"
+ },
+ "SUGGEST": {
+ "LABEL": "Antwort vorschlagen",
+ "CONTENT": "Analysiere die Anfrage des Kunden und entwerfe eine Antwort, die seine Anliegen oder Fragen effektiv beantwortet. Stelle sicher, dass die Antwort klar, prägnant und hilfreich ist."
+ },
+ "RATE": {
+ "LABEL": "Bewerten Sie dieses Gespräch",
+ "CONTENT": "Bewerten Sie das Gespräch, um zu sehen, wie gut es die Bedürfnisse des Kunden erfüllt. Geben Sie eine Bewertung von 1 bis 5 basierend auf Ton, Klarheit und Effektivität ab."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Gespräche mit hoher Priorität",
+ "CONTENT": "Gib mir eine Zusammenfassung aller offenen Gespräche mit hoher Priorität. Bitte die Gesprächs-ID, den Kundennamen (falls vorhanden), den Inhalt der letzten Nachricht und den zugewiesenen Mitarbeiter einschließen. Gruppiere nach Status, wenn relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Kontakte auflisten",
+ "CONTENT": "Zeige mir die Liste der Top 10 Kontakte. Bitte Name, E-Mail oder Telefonnummer (falls vorhanden), zuletzt gesehen Zeit, Tags (falls vorhanden) einschließen."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sie",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Schreiben Sie Ihre Nachricht...",
+ "HEADER": "Spielwiese",
+ "DESCRIPTION": "Nutzen Sie diesen Playground, um Nachrichten an Ihren Assistenten zu senden und zu prüfen, ob dieser genau, schnell und im erwarteten Ton antwortet.",
+ "CREDIT_NOTE": "Hier gesendete Nachrichten werden auf Ihre Captain-Guthaben angerechnet."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade auf Captain AI",
+ "AVAILABLE_ON": "Captain ist im kostenlosen Tarif nicht verfügbar.",
+ "UPGRADE_PROMPT": "Tarif upgraden, um Zugang zu unseren Assistenten, Copilot und mehr zu erhalten.",
+ "UPGRADE_NOW": "Jetzt upgraden",
+ "CANCEL_ANYTIME": "Sie können Ihr Paket jederzeit ändern oder kündigen"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI ist nur in den Enterprise-Tarifen 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."
+ },
+ "BANNER": {
+ "RESPONSES": "Sie haben über 80 % Ihres Antwortlimits verbraucht. Um Captain AI weiterhin zu nutzen, bitte upgraden.",
+ "DOCUMENTS": "Dokumentenlimit erreicht. Upgraden um Cpatain AI weiter zu verwenden."
+ },
+ "FORM": {
+ "CANCEL": "Stornieren",
+ "CREATE": "Erstellen",
+ "EDIT": "Aktualisieren"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Beschreibung",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Einstellungen",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Löschen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Löschen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Löschen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Erstellen",
+ "CANCEL": "Stornieren"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Stornieren",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Löschen",
+ "BULK_SYNC_BUTTON": "Neu laden",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "aktualisiere...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Seite nicht gefunden",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Rechnung öffnen",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Keine",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API-Schlüssel"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Passwort",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Typ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nummer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Benötigt"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Löschen",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Alle"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Ausstehend",
+ "APPROVED": "Approved",
+ "ALL": "Alle"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Bearbeiten",
+ "DELETE_RESPONSE": "Löschen"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Verbindung trennen"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, löschen",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Posteingang",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
index 5d9d599fd..3e7d8c811 100644
--- a/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/de/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Label hinzufügen",
"LOADING": "Label werden abgerufen",
+ "DESCRIPTION": "Labels helfen Ihnen, Konversationen und Leads zu kategorisieren und zu priorisieren. Sie können einer Konversation oder einem Kontakt über das Seitenpanel ein Label zuweisen.",
+ "LEARN_MORE": "Mehr über Labels erfahren",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Labels suchen...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Es existieren keine Elemente, die dieser Abfrage entsprechen",
- "SIDEBAR_TXT": "Labels
Mit Labels können Sie Konversationen kategorisieren und priorisieren. Sie können einer Konversation aus der Seitenleiste ein Label zuweisen.
Labels sind an das Konto gebunden und können verwendet werden, um benutzerdefinierte Arbeitsabläufe in Ihrem Unternehmen zu erstellen. Sie können einen Label eine benutzerdefinierte Farbe zuordnen, um die Identifizierung des Labels zu erleichtern. Sie können das Label in der Seitenleiste anzeigen, um die Unterhaltungen einfach zu filtern.
",
"LIST": {
"404": "In diesem Konto sind keine Labels verfügbar.",
"TITLE": "Labels verwalten",
"DESC": "Mit Labels lassen sich Unterhaltungen zusammenfassen.",
- "TABLE_HEADER": [
- "Name",
- "Beschreibung",
- "Farbe"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Beschreibung",
+ "COLOR": "Farbe",
+ "ACTION": "Aktionen"
+ }
},
"FORM": {
"NAME": {
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "Label zur Konversation hinzufügen",
+ "MULTIPLE_SUGGESTION": "Dieses Label auswählen",
+ "DESELECT": "Label abwählen",
+ "DISMISS": "Vorschlag verwerfen"
},
"POWERED_BY": "Chatwoot AI",
"DISMISS": "Verwerfen",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_SELECTED_LABELS": "Ausgewählte Labels hinzufügen",
+ "ADD_SELECTED_LABEL": "Ausgewähltes Label hinzufügen",
+ "ADD_ALL_LABELS": "Alle Labels hinzufügen",
+ "SUGGESTED_LABELS": "Vorgeschlagene Labels"
},
"ADD": {
"TITLE": "Label hinzufügen",
diff --git a/app/javascript/dashboard/i18n/locale/de/login.json b/app/javascript/dashboard/i18n/locale/de/login.json
index 5131d3952..24c8dc351 100644
--- a/app/javascript/dashboard/i18n/locale/de/login.json
+++ b/app/javascript/dashboard/i18n/locale/de/login.json
@@ -3,7 +3,7 @@
"TITLE": "Melden Sie sich bei Chatwoot an",
"EMAIL": {
"LABEL": "E-Mail",
- "PLACEHOLDER": "E-Mail zB: jemand@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Bitte geben Sie eine gültige E-Mail-Adresse ein"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Haben Sie Ihr Passwort vergessen?",
"CREATE_NEW_ACCOUNT": "Neuen Account erstellen",
- "SUBMIT": "Einloggen"
+ "SUBMIT": "Einloggen",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/macros.json b/app/javascript/dashboard/i18n/locale/de/macros.json
index ef0bb1130..fb9ccc08b 100644
--- a/app/javascript/dashboard/i18n/locale/de/macros.json
+++ b/app/javascript/dashboard/i18n/locale/de/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Makros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Neues Makro hinzufügen",
"HEADER_BTN_TXT_SAVE": "Makro speichern",
"LOADING": "Makros abrufen",
- "SIDEBAR_TXT": "Makros
Ein Makro ist eine Reihe gespeicherter Aktionen, mit denen Kundendienstmitarbeiter Aufgaben einfach erledigen können. Die Agenten können eine Reihe von Aktionen definieren, z. B. das Markieren einer Konversation mit einem Label, das Senden einer E-Mail-Transkription, das Aktualisieren eines benutzerdefinierten Attributs usw., und sie können diese Aktionen mit einem einzigen Klick ausführen. Wenn die Agenten das Makro ausführen, werden die Aktionen nacheinander in der definierten Reihenfolge ausgeführt. Makros verbessern die Produktivität und erhöhen die Konsistenz der Aktionen.
Ein Makro kann auf zwei Arten hilfreich sein.
Als Unterstützung eines Agenten: Wenn ein Agent eine Reihe von Aktionen mehrmals durchführt, kann er sie als Makro speichern und alle Aktionen zusammen mit einem einzigen Klick ausführen.
Als Option zum Onboarding eines Teammitglieds: Alle Der Agent muss während jedes Gesprächs viele verschiedene Überprüfungen/Aktionen durchführen. Das Onboarding eines neuen Support-Teammitglieds ist einfach, wenn vordefinierte Makros für das Konto verfügbar sind. Anstatt jeden Schritt im Detail zu beschreiben, kann der Manager/Teamleiter auf die Makros verweisen, die in verschiedenen Szenarien verwendet werden.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Etwas ist schiefgelaufen. Bitte versuche es erneut",
"ORDER_INFO": "Makros werden in der Reihenfolge ausgeführt, in der Sie Ihre Aktionen hinzufügen. Sie können sie neu anordnen, indem Sie sie am Griff neben jedem Knoten ziehen.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Erstellt von",
- "Zuletzt aktualisiert von",
- "Sichtbarkeit"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Erstellt von",
+ "LAST_UPDATED_BY": "Zuletzt aktualisiert von",
+ "VISIBILITY": "Sichtbarkeit",
+ "ACTIONS": "Aktionen"
+ },
"404": "Keine Makros gefunden"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Beim Löschen des Makros ist ein Fehler aufgetreten. Bitte versuchen Sie es später erneut"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Makro bearbeiten",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Makrosichtbarkeit",
"GLOBAL": {
"LABEL": "Öffentlich",
- "DESCRIPTION": "Dieses Makro ist öffentlich für alle Agenten in diesem Konto verfügbar."
+ "DESCRIPTION": "Dieses Makro ist öffentlich für alle Agenten in diesem Konto verfügbar.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privat",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Ausführen",
"PREVIEW": "Makrovorschau",
"EXECUTED_SUCCESSFULLY": "Makro erfolgreich ausgeführt"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribut-Schlüssel ist erforderlich",
+ "FILTER_OPERATOR_REQUIRED": "Filter-Operator ist erforderlich",
+ "VALUE_REQUIRED": "Wert ist erforderlich",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Wert muss zwischen 1 und 998 liegen",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Keine",
+ "LOW": "Niedrig",
+ "MEDIUM": "Mittel",
+ "HIGH": "Hoch",
+ "URGENT": "Dringend"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/mfa.json b/app/javascript/dashboard/i18n/locale/de/mfa.json
new file mode 100644
index 000000000..a4b3f6146
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Aktiviert",
+ "DISABLED": "Deaktiviert",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Laden...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopieren",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Stornieren",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Herunterladen",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Passwort",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Stornieren",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Stornieren",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/onboarding.json b/app/javascript/dashboard/i18n/locale/de/onboarding.json
new file mode 100644
index 000000000..6af0834cc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-Mail",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Webseite",
+ "LANGUAGE": "Sprache",
+ "TIMEZONE": "Zeitzone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Zeitzone auswählen",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Speichern...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/report.json b/app/javascript/dashboard/i18n/locale/de/report.json
index 043381824..8e83a1346 100644
--- a/app/javascript/dashboard/i18n/locale/de/report.json
+++ b/app/javascript/dashboard/i18n/locale/de/report.json
@@ -3,9 +3,9 @@
"HEADER": "Gespräche",
"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_AGENT_REPORTS": "Agenten-Berichte herunterladen",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "Daten konnten nicht abgerufen werden. Bitte versuchen Sie es später erneut.",
+ "SUMMARY_FETCHING_FAILED": "Zusammenfassung konnte nicht abgerufen werden. Bitte versuchen Sie es später erneut.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -23,57 +23,43 @@
"NAME": "Erste Antwortzeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_TIME": {
"NAME": "Lösungszeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Lösungszeit beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Lösungszeit beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_COUNT": {
"NAME": "Auflösungsanzahl",
"DESC": "( Gesamt )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Auflösungsanzahl",
+ "DESC": "( Gesamt )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Übergabezählung",
+ "DESC": "( Gesamt )"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "Wartezeit des Kunden",
+ "TOOLTIP_TEXT": "Die Wartezeit beträgt {metricValue} (basierend auf {conversationCount} Antworten)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Letzten 7 Tage",
+ "LAST_14_DAYS": "Letzten 14 Tage",
"LAST_30_DAYS": "Letzte 30 Tage",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Die letzten 3 Monate",
"LAST_6_MONTHS": "Die letzten 6 Monate",
"LAST_YEAR": "Letztes Jahr",
"CUSTOM_DATE_RANGE": "Benutzerdefinierter Zeitraum"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Letzten 7 Tage"
- },
- {
- "id": 1,
- "name": "Letzte 30 Tage"
- },
- {
- "id": 2,
- "name": "Die letzten 3 Monate"
- },
- {
- "id": 3,
- "name": "Die letzten 6 Monate"
- },
- {
- "id": 4,
- "name": "Letztes Jahr"
- },
- {
- "id": 5,
- "name": "Benutzerdefinierter Zeitraum"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Übernehmen",
"PLACEHOLDER": "Zeitraum auswählen"
@@ -130,14 +116,28 @@
"groupBy": "Monat"
}
],
- "BUSINESS_HOURS": "Öffnungszeiten"
+ "BUSINESS_HOURS": "Öffnungszeiten",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Filter löschen",
+ "EMPTY_LIST": "Keine Ergebnisse gefunden"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agenten-Übersicht",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Agenten-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Agent auswählen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenten suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -155,13 +155,13 @@
"NAME": "Erste Antwortzeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_TIME": {
"NAME": "Lösungszeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Lösungszeit beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Lösungszeit beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_COUNT": {
"NAME": "Lösungsanzahl",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Label auswählen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Labels suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -222,13 +228,13 @@
"NAME": "Erste Antwortzeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_TIME": {
"NAME": "Lösungszeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Lösungszeit beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Lösungszeit beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_COUNT": {
"NAME": "Lösungsanzahl",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Posteingangsübersicht",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Agenten-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Eingang auswählen",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -289,13 +303,13 @@
"NAME": "Erste Antwortzeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_TIME": {
"NAME": "Lösungszeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Lösungszeit beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Lösungszeit beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_COUNT": {
"NAME": "Lösungsanzahl",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team-Übersicht",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Team-Berichte herunterladen",
"FILTER_DROPDOWN_LABEL": "Team auswählen",
+ "FILTERS": {
+ "ADD_FILTER": "Filter hinzufügen",
+ "CLEAR_ALL": "Alle löschen",
+ "NO_FILTER": "Keine Filter verfügbar",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Teams suchen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Konversationen",
@@ -356,13 +379,13 @@
"NAME": "Erste Antwortzeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Zeit bis zur ersten Reaktion beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_TIME": {
"NAME": "Lösungszeit",
"DESC": "( Durchschnitt )",
"INFO_TEXT": "Gesamtzahl der Konversationen, die für die Berechnung verwendet wurden:",
- "TOOLTIP_TEXT": "Die Lösungszeit beträgt %{metricValue} (basierend auf %{conversationCount} Konversationen)"
+ "TOOLTIP_TEXT": "Die Lösungszeit beträgt {metricValue} (basierend auf {conversationCount} Konversationen)"
},
"RESOLUTION_COUNT": {
"NAME": "Lösungsanzahl",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT-Berichte",
- "NO_RECORDS": "Es sind keine Antworten zu CSAT Umfragen verfügbar.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "CSAT-Berichte herunterladen",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "DOWNLOAD_FAILED": "CSAT-Berichte konnten nicht heruntergeladen werden",
"FILTERS": {
+ "ADD_FILTER": "Filter hinzufügen",
+ "CLEAR_ALL": "Alle löschen",
+ "NO_FILTER": "Keine Filter verfügbar",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Agenten suchen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Teams suchen",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Agenten wählen"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Posteingang"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Bewertung"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Zugewiesener Agent",
+ "AGENT_NAME": "Agent",
"RATING": "Bewertung",
- "FEEDBACK_TEXT": "Feedback-Kommentar"
- }
+ "FEEDBACK_TEXT": "Feedback-Kommentar",
+ "CONVERSATION": "Konversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Antwort",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Antworten gesamt",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Antwortrate",
"TOOLTIP": "Anzahl aller Antworten / Anzahl der gesendeten CSAT-Umfrage * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Speichern",
+ "CANCEL": "Stornieren",
+ "SAVING": "Speichern...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot-Berichte",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Anzahl der Konversationen",
+ "TOOLTIP": "Gesamtzahl der vom Bot bearbeiteten Konversationen"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Gesamtanzahl Antworten",
+ "TOOLTIP": "Gesamtzahl der vom Bot gesendeten Antworten"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Lösungsrate",
+ "TOOLTIP": "Gesamtzahl der vom Bot gelösten Konversationen / Gesamtzahl der vom Bot bearbeiteten Konversationen * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Übergaberate",
+ "TOOLTIP": "Gesamtzahl der an Agenten übergebenen Konversationen / Gesamtzahl der vom Bot bearbeiteten Konversationen * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Gesprächsprotokoll",
"NO_CONVERSATIONS": "Keine Konversation",
- "CONVERSATION": "%{count} Konversation",
- "CONVERSATIONS": "%{count} Konversationen"
+ "CONVERSATION": "{count} Konversation",
+ "CONVERSATIONS": "{count} Konversationen",
+ "DOWNLOAD_REPORT": "Bericht herunterladen"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Keine Konversation",
+ "CONVERSATION": "{count} Konversation",
+ "CONVERSATIONS": "{count} Konversationen",
+ "DOWNLOAD_REPORT": "Bericht herunterladen"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Konversationen von Agenten",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Es existieren keine Konversationen von Agenten",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OFFEN",
+ "OPEN": "Öffnen",
+ "UNATTENDED": "Unbeaufsichtigt",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Öffnen",
"UNATTENDED": "Unbeaufsichtigt",
"STATUS": "Status"
}
@@ -469,12 +578,73 @@
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "Sonntag",
+ "MONDAY": "Montag",
+ "TUESDAY": "Dienstag",
+ "WEDNESDAY": "Mittwoch",
+ "THURSDAY": "Donnerstag",
+ "FRIDAY": "Freitag",
+ "SATURDAY": "Samstag"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA-Berichte",
+ "NO_RECORDS": "SLA-angewandte Unterhaltungen sind nicht verfügbar.",
+ "LOADING": "Lade SLA-Daten...",
+ "DOWNLOAD_SLA_REPORTS": "SLA-Berichte herunterladen",
+ "DOWNLOAD_FAILED": "SLA-Berichte konnten nicht heruntergeladen werden",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Filter hinzufügen",
+ "CLEAR_ALL": "Alle löschen",
+ "CLEAR_FILTER": "Filter löschen",
+ "EMPTY_LIST": "Keine Ergebnisse gefunden",
+ "NO_FILTER": "Keine Filter verfügbar",
+ "SEARCH": "Suchfilter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA-Name",
+ "AGENTS": "Agentenname",
+ "INBOXES": "Posteingangsname",
+ "LABELS": "Labelname",
+ "TEAMS": "Teamname"
+ },
+ "SLA": "SLA-Richtlinie",
+ "INBOXES": "Posteingang",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "mit",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Trefferquote",
+ "TOOLTIP": "Prozentsatz der erstellten SLAs, die erfolgreich abgeschlossen wurden"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Anzahl der Verfehlungen",
+ "TOOLTIP": "Gesamtanzahl der SLA-Verfehlungen in einem bestimmten Zeitraum"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Anzahl der Konversationen",
+ "TOOLTIP": "Gesamtzahl der Konversationen mit SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Richtlinie",
+ "CONVERSATION": "Konversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "Details anzeigen"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Auflösungsanzahl",
+ "CONVERSATIONS": "Anzahl der Konversationen"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/resetPassword.json b/app/javascript/dashboard/i18n/locale/de/resetPassword.json
index 033a2bdf0..8923aa78d 100644
--- a/app/javascript/dashboard/i18n/locale/de/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/de/resetPassword.json
@@ -1,8 +1,8 @@
{
"RESET_PASSWORD": {
"TITLE": "Passwort zurücksetzen",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "Geben Sie die E-Mail-Adresse ein, mit der Sie sich bei Chatwoot anmelden, um die Anweisungen zum Zurücksetzen des Passworts zu erhalten.",
+ "GO_BACK_TO_LOGIN": "Wenn Sie zur Login-Seite zurückkehren möchten",
"EMAIL": {
"LABEL": "E-Mail",
"PLACEHOLDER": "Bitte geben Sie Ihre E-Mail ein.",
diff --git a/app/javascript/dashboard/i18n/locale/de/search.json b/app/javascript/dashboard/i18n/locale/de/search.json
index 28b19cea2..9694e40d5 100644
--- a/app/javascript/dashboard/i18n/locale/de/search.json
+++ b/app/javascript/dashboard/i18n/locale/de/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Alle",
+ "ALL": "All results",
"CONTACTS": "Kontakte",
"CONVERSATIONS": "Gespräche",
- "MESSAGES": "Nachrichten"
+ "MESSAGES": "Nachrichten",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakte",
"CONVERSATIONS": "Gespräche",
- "MESSAGES": "Nachrichten"
+ "MESSAGES": "Nachrichten",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "Keine %{item} für Abfrage '%{query} ' gefunden",
- "EMPTY_STATE_FULL": "Kein Ergebnis für Abfrage '%{query} ' gefunden",
- "PLACEHOLDER_KEYBINDING": "/ fokussieren",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Suchen",
+ "LOADING_DATA": "Wird geladen",
+ "EMPTY_STATE": "Keine {item} für Abfrage '{query} ' gefunden",
+ "EMPTY_STATE_FULL": "Kein Ergebnis für Abfrage '{query} ' gefunden",
+ "PLACEHOLDER_KEYBINDING": "/fokussieren",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Alle löschen",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Mehr erfahren",
+ "READ_LESS": "Read less",
"WROTE": "schrieb:",
- "FROM": "von",
- "EMAIL": "e-Mail"
+ "FROM": "Von",
+ "EMAIL": "E-Mail",
+ "EMAIL_SUBJECT": "Betreff",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "erstellt am {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Letzte 7 Tage",
+ "LAST_30_DAYS": "Letzte 30 Tage",
+ "LAST_60_DAYS": "Letzten 60 Tage",
+ "LAST_90_DAYS": "Letzten 90 Tage",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "und",
+ "APPLY": "Übernehmen",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Filter löschen"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Absender",
+ "IN": "Posteingang",
+ "AGENTS": "Agenten",
+ "CONTACTS": "Kontakte",
+ "INBOXES": "Posteingänge",
+ "NO_AGENTS": "Keine Agenten gefunden",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/settings.json b/app/javascript/dashboard/i18n/locale/de/settings.json
index 286fd07a7..575549f0d 100644
--- a/app/javascript/dashboard/i18n/locale/de/settings.json
+++ b/app/javascript/dashboard/i18n/locale/de/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Ihr Passwort wurde erfolgreich geändert",
"AFTER_EMAIL_CHANGED": "Ihr Profil wurde erfolgreich aktualisiert. Melden Sie sich erneut an, wenn Ihre Anmeldeinformationen geändert werden",
"FORM": {
+ "PICTURE": "Profilbild",
"AVATAR": "Profilbild",
"ERROR": "Bitte korrigieren Sie Formularfehler",
"REMOVE_IMAGE": "Entfernen",
@@ -34,15 +35,41 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Standard",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Persönliche Nachrichtensignatur",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
+ "NOTE": "Erstellen Sie eine einzigartige Nachrichtensignatur, die am Ende jeder Nachricht angezeigt wird, die Sie aus einem beliebigen Posteingang senden. Sie können auch ein Inline-Bild einfügen, das in Live-Chat-, E-Mail- und API-Postfächern unterstützt wird.",
"BTN_TEXT": "Nachrichten-Signatur speichern",
"API_ERROR": "Signatur konnte nicht gespeichert werden! Versuch es noch einmal",
"API_SUCCESS": "Signatur erfolgreich gespeichert",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Bildgröße sollte kleiner als {size}MB sein"
+ "IMAGE_UPLOAD_ERROR": "Bild konnte nicht hochgeladen werden! Versuchen Sie es erneut",
+ "IMAGE_UPLOAD_SUCCESS": "Bild erfolgreich hinzugefügt. Bitte klicken Sie auf Speichern, um die Signatur zu speichern",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Bildgröße sollte kleiner als {size}MB sein",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Nachrichten-Signatur",
@@ -54,15 +81,45 @@
"NOTE": "Durch das Aktualisieren Ihres Kennworts werden Ihre Anmeldungen auf mehreren Geräten zurückgesetzt.",
"BTN_TEXT": "Passwort ändern"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Zugangstoken",
- "NOTE": "Dieses Token kann verwendet werden, wenn Sie eine API-basierte Integration erstellen"
+ "NOTE": "Dieses Token kann verwendet werden, wenn Sie eine API-basierte Integration erstellen",
+ "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-Benachrichtigungen",
- "NOTE": "Audio-Benachrichtigungen im Dashboard für neue Nachrichten und Unterhaltungen aktivieren.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Keine",
+ "MINE": "Zugewiesen",
+ "ALL": "Alle",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alarmereignisse:",
+ "TITLE": "Ereignisse für Konversationen zu alarmieren",
"NONE": "Keine",
"ASSIGNED": "Zugewiesene Unterhaltungen",
"ALL_CONVERSATIONS": "Alle Konversationen"
@@ -74,7 +131,9 @@
"TITLE": "Alarmbedingungen:",
"CONDITION_ONE": "Audio-Alarm nur dann senden, wenn das Browserfenster nicht aktiv ist",
"CONDITION_TWO": "Sende Benachrichtigungen alle 30 Sekunden, bis alle zugewiesenen Unterhaltungen gelesen werden"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Mehr erfahren"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-Mail Benachrichtigungen",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Senden Sie E-Mail-Benachrichtigungen, wenn eine neue Konversation erstellt wird",
"CONVERSATION_MENTION": "Senden Sie E-Mail-Benachrichtigungen, wenn Sie in einer Konversation erwähnt werden",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Senden Sie E-Mail-Benachrichtigungen, wenn eine neue Nachricht in einer zugewiesenen Konversation erstellt wird",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "E-Mail-Benachrichtigungen senden, wenn eine neue Nachricht in einer zugewiesenen Konversation erstellt wird"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "E-Mail-Benachrichtigungen senden, wenn eine neue Nachricht in einer zugewiesenen Konversation erstellt wird",
+ "SLA_MISSED_FIRST_RESPONSE": "Senden Sie E-Mail-Benachrichtigungen, wenn eine Konversation die erste Antwort-SLA verpasst",
+ "SLA_MISSED_NEXT_RESPONSE": "Senden Sie E-Mail-Benachrichtigungen, wenn eine Konversation die nächste Antwort-SLA verpasst",
+ "SLA_MISSED_RESOLUTION": "Senden Sie E-Mail-Benachrichtigungen, wenn eine Konversation die Lösung-SLA verpasst"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Benachrichtigungseinstellungen",
+ "TYPE_TITLE": "Benachrichtigungsart",
+ "EMAIL": "E-Mail",
+ "PUSH": "Push-Benachrichtigung",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Eine neue Konversation wurde erstellt",
+ "CONVERSATION_ASSIGNED": "Eine Konversation wurde Ihnen zugewiesen",
+ "CONVERSATION_MENTION": "Sie wurden in einer Konversation erwähnt",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Eine neue Nachricht wurde in einer zugewiesenen Konversation erstellt",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Eine neue Nachricht wurde in einer Konversation erstellt, an der Sie teilnehmen",
+ "SLA_MISSED_FIRST_RESPONSE": "Eine Konversation verpasst die erste Antwort-SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Eine Konversation verpasst die nächste Antwort-SLA",
+ "SLA_MISSED_RESOLUTION": "Eine Konversation verpasst die Lösungs-SLA"
+ },
+ "BROWSER_PERMISSION": "Aktivieren Sie Push-Benachrichtigungen für Ihren Browser, damit Sie diese empfangen können"
},
"API": {
"UPDATE_SUCCESS": "Ihre Benachrichtigungseinstellungen wurden erfolgreich aktualisiert",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Senden Sie Push-Benachrichtigungen, wenn eine neue Nachricht in einer zugewiesenen Konversation erstellt wird",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Sende Push-Benachrichtigungen, wenn eine neue Nachricht in einer zugewiesenen Konversation erstellt wird",
"HAS_ENABLED_PUSH": "Sie haben die Push-Benachrichtigung für diesen Browser aktiviert.",
- "REQUEST_PUSH": "Push-Benachrichtigungen aktivieren"
+ "REQUEST_PUSH": "Push-Benachrichtigungen aktivieren",
+ "SLA_MISSED_FIRST_RESPONSE": "Senden Sie Push-Benachrichtigungen, wenn eine Konversation die erste Antwort-SLA verpasst",
+ "SLA_MISSED_NEXT_RESPONSE": "Senden Sie Push-Benachrichtigungen, wenn eine Konversation die nächste Antwort-SLA verpasst",
+ "SLA_MISSED_RESOLUTION": "Senden Sie Push-Benachrichtigungen, wenn eine Konversation die Lösungs-SLA verpasst"
},
"PROFILE_IMAGE": {
"LABEL": "Profilbild"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Verfügbarkeit",
- "STATUSES_LIST": [
- "Online",
- "Beschäftigt",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Beschäftigt",
+ "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",
@@ -147,25 +230,35 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Ändern",
- "CHANGE_ACCOUNTS": "Benutzerkonto wechseln",
- "CONTACT_SUPPORT": "Support kontaktieren",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Wählen Sie ein Benutzerkonto aus der folgenden Liste",
- "PROFILE_SETTINGS": "Profileinstellungen",
- "KEYBOARD_SHORTCUTS": "Tastenkombinationen",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super-Admin Konsole",
- "LOGOUT": "Ausloggen"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "Tage der Testversion verbleibend.",
"TRAIL_BUTTON": "Jetzt kaufen",
"DELETED_USER": "Gelöschter Benutzer",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "EMAIL_VERIFICATION_PENDING": "Es scheint, dass Sie Ihre E-Mail-Adresse noch nicht verifiziert haben. Bitte überprüfen Sie Ihren Posteingang auf die Verifizierungs-E-Mail.",
+ "RESEND_VERIFICATION_MAIL": "Verifizierungs-E-Mail erneut senden",
+ "EMAIL_VERIFICATION_SENT": "Verifizierungs-E-Mail wurde versendet. Bitte überprüfen Sie Ihren Posteingang.",
"ACCOUNT_SUSPENDED": {
"TITLE": "Konto gesperrt",
"MESSAGE": "Ihr Account wurde gesperrt. Wenden Sie sich für weitere Informationen bitte an das Support-Team."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Herunterladen",
"UPLOADING": "Wird hochgeladen...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Diese Geschichte ist nicht mehr verfügbar."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Diese Geschichte ist nicht mehr verfügbar.",
+ "INSTAGRAM_STORY_REPLY": "Auf deine Geschichte geantwortet:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Auf Karte ansehen"
},
"FORM_BUBBLE": {
"SUBMIT": "Abschicken"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Überprüfen...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Wird gerade angezeigt:",
"SWITCH": "Wechseln",
+ "INBOX_VIEW": "Posteingangsansicht",
"CONVERSATIONS": "Gespräche",
- "INBOX": "Posteingang",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Alle Konversationen",
"MENTIONED_CONVERSATIONS": "Erwähnungen",
"PARTICIPATING_CONVERSATIONS": "Beteiligt",
@@ -208,6 +308,18 @@
"REPORTS": "Berichte",
"SETTINGS": "Einstellungen",
"CONTACTS": "Kontakte",
+ "ACTIVE": "Aktiv",
+ "COMPANIES": "Unternehmen",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Kapitän",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Posteingänge",
+ "CAPTAIN_SETTINGS": "Einstellungen",
"HOME": "Hauptseite",
"AGENTS": "Agenten",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Neuer Posteingang",
"REPORTS_CONVERSATION": "Gespräche",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampagnen",
"ONGOING": "Im Gange",
"ONE_OFF": "Einmalig",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agenten",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Posteingang",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Setzen Sie sich als",
+ "SET_YOUR_AVAILABILITY": "Legen Sie Ihre Verfügbarkeit fest",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Übersicht",
- "FACEBOOK_REAUTHORIZE": "Ihre Facebook-Verbindung ist abgelaufen, bitte verbinden Sie sich erneut.",
+ "REAUTHORIZE": "Ihre Posteingangsverbindung ist abgelaufen. Bitte erneut verbinden,\n um weiterhin Nachrichten empfangen und senden zu können",
"HELP_CENTER": {
"TITLE": "Hilfezentrum",
- "ALL_ARTICLES": "Alle Artikel",
- "MY_ARTICLES": "Meine Artikel",
- "DRAFT": "Entwürfe",
- "ARCHIVED": "Archiviert",
- "CATEGORY": "Kategorie",
- "SETTINGS": "Einstellungen",
- "CATEGORY_EMPTY_MESSAGE": "Keine Kategorien gefunden"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategorien",
+ "LOCALES": "Sprachen",
+ "SETTINGS": "Einstellungen"
},
+ "CHANNELS": "Kanäle",
"SET_AUTO_OFFLINE": {
"TEXT": "Automatisch offline markieren",
- "INFO_TEXT": "Lassen Sie sich vom System automatisch als offline markieren, wenn Sie die App oder das Dashboard nicht verwenden."
+ "INFO_TEXT": "Lassen Sie sich vom System automatisch als offline markieren, wenn Sie die App oder das Dashboard nicht verwenden.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Dokumente lesen"
+ "DOCS": "Dokumente lesen",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Kapitän",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktionen",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Rechnungen",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Derzeitiger Plan",
- "PLAN_NOTE": "Sie haben derzeit den Tarif **%{plan}** mit **%{quantity}** Lizenzen abonniert"
+ "PLAN_NOTE": "Sie haben derzeit den Tarif **{plan}** mit **{quantity}** Lizenzen abonniert",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Abonnement verwalten",
"DESCRIPTION": "Zeigen Sie Ihre vorherigen Rechnungen an, bearbeiten Sie Ihre Rechnungsdaten oder kündigen Sie Ihr Abonnement.",
"BUTTON_TXT": "Gehen Sie zum Abrechnungsportal"
},
+ "CAPTAIN": {
+ "TITLE": "Kapitän",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Neu laden"
+ },
"CHAT_WITH_US": {
"TITLE": "Brauchen Sie Hilfe?",
"DESCRIPTION": "Haben Sie Probleme bei der Abrechnung? Wir sind hier um zu helfen.",
"BUTTON_TXT": "Chatten Sie mit uns"
},
- "NO_BILLING_USER": "Ihr Rechnungskonto wird konfiguriert. Bitte aktualisieren Sie die Seite und versuchen Sie es erneut."
+ "NO_BILLING_USER": "Ihr Rechnungskonto wird konfiguriert. Bitte aktualisieren Sie die Seite und versuchen Sie es erneut.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Hinweis:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Stornieren",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Zurück",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code erfolgreich in die Zwischenablage kopiert",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Attribut suchen"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Konversation lösen",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Konversation lösen",
+ "CANCEL": "Stornieren"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ja",
+ "NO": "Nein"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oh oh! Wir konnten keine Chatwoot-Konten finden. Bitte erstellen Sie ein neues Konto um fortzufahren.",
@@ -294,7 +624,8 @@
"LABEL": "Firmenname",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Abschicken"
+ "SUBMIT": "Abschicken",
+ "CANCEL": "Stornieren"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Zur Berichtsseitenleiste",
"MOVE_TO_NEXT_TAB": "Zum nächsten Tab in der Konversationsliste gehen",
"GO_TO_SETTINGS": "Zu den Einstellungen",
- "SWITCH_CONVERSATION_STATUS": "Zum nächsten Gesprächsstatus wechseln",
"SWITCH_TO_PRIVATE_NOTE": "Zu privaten Notizen wechseln",
"SWITCH_TO_REPLY": "Zur Antwort wechseln",
"TOGGLE_SNOOZE_DROPDOWN": "Schlummer-Dropdown ein-/ausblenden"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priorität",
+ "ACTIVE": "Aktiv",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Bearbeiten"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Stornieren"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung:",
+ "PLACEHOLDER": "Beschreibung eingeben"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Status auswählen",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Hinzufügen"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Bearbeiten"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Stornieren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschreibung:",
+ "PLACEHOLDER": "Beschreibung eingeben"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Hinzufügen"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Löschen",
+ "CANCEL_BUTTON_LABEL": "Stornieren"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/signup.json b/app/javascript/dashboard/i18n/locale/de/signup.json
index c4c343d37..b42178644 100644
--- a/app/javascript/dashboard/i18n/locale/de/signup.json
+++ b/app/javascript/dashboard/i18n/locale/de/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Konto erstellen",
+ "GET_STARTED": "Mit Chatwoot loslegen",
"TITLE": "Registrieren",
"TESTIMONIAL_HEADER": "Alles, was er braucht, ist ein Schritt, um vorwärtszugehen",
"TESTIMONIAL_CONTENT": "Sie sind nur noch einen Schritt davon entfernt, Ihre Kunden zu gewinnen, zu binden und neue zu finden.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Geschäftliche E-Mail-Adresse",
- "PLACEHOLDER": "Geben Sie Ihre geschäftliche E-Mail-Adresse ein, z. B.: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Bitte geben Sie eine gültige Arbeits-E-Mail-Adresse ein"
},
"PASSWORD": {
"LABEL": "Passwort",
"PLACEHOLDER": "Passwort",
"ERROR": "Das Passwort ist zu kurz",
- "IS_INVALID_PASSWORD": "Das Passwort sollte mindestens 1 Großbuchstaben, 1 Kleinbuchstaben, 1 Ziffer und 1 Sonderzeichen enthalten"
+ "IS_INVALID_PASSWORD": "Das Passwort sollte mindestens 1 Großbuchstaben, 1 Kleinbuchstaben, 1 Ziffer und 1 Sonderzeichen enthalten",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Bestätige das Passwort",
"PLACEHOLDER": "Bestätige das Passwort",
- "ERROR": "Passwort stimmt nicht überein"
+ "ERROR": "Passwörter stimmen nicht überein."
},
"API": {
- "SUCCESS_MESSAGE": "Registrierung erfolgreich",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Es konnte keine Verbindung zum Woot Server hergestellt werden. Bitte versuchen Sie es später erneut"
},
"SUBMIT": "Konto erstellen",
- "HAVE_AN_ACCOUNT": "Haben Sie bereits ein Konto?"
+ "HAVE_AN_ACCOUNT": "Haben Sie bereits ein Konto?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Verifizierungs-E-Mail erneut senden",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/sla.json b/app/javascript/dashboard/i18n/locale/de/sla.json
index 6d12589ed..f58aa659c 100644
--- a/app/javascript/dashboard/i18n/locale/de/sla.json
+++ b/app/javascript/dashboard/i18n/locale/de/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Es gibt keine Elemente, die dieser Abfrage entsprechen",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Beschreibung",
- "FRT",
- "NRT",
- "RT",
- "Öffnungszeiten"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Es ist ein Fehler aufgetreten, bitte versuchen Sie es erneut"
+ },
+ "CONFIRM": {
+ "TITLE": "Löschung bestätigen",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ja, löschen ",
+ "NO": "Nein, behalten "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Erste Antwortzeit",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/de/snooze.json b/app/javascript/dashboard/i18n/locale/de/snooze.json
new file mode 100644
index 000000000..a475722e4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "Minute",
+ "MINUTES": "minutes",
+ "HOUR": "Stunde",
+ "HOURS": "Stunden",
+ "DAY": "Tag",
+ "DAYS": "days",
+ "WEEK": "tag",
+ "WEEKS": "Wochen",
+ "MONTH": "woche",
+ "MONTHS": "Monate",
+ "YEAR": "monat",
+ "YEARS": "Jahre"
+ },
+ "HALF": "halb",
+ "NEXT": "nächste",
+ "THIS": "diese",
+ "AT": "um",
+ "IN": "in",
+ "FROM_NOW": "ab jetzt",
+ "NEXT_YEAR": "nächstes Jahr",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "morgen",
+ "DAY_AFTER_TOMORROW": "übermorgen",
+ "NEXT_WEEK": "nächste Woche",
+ "NEXT_MONTH": "nächsten Monat",
+ "THIS_WEEKEND": "dieses Wochenende",
+ "NEXT_WEEKEND": "nächstes Wochenende"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "Morgen",
+ "AFTERNOON": "Nachmittag",
+ "EVENING": "Abend",
+ "NIGHT": "Nacht",
+ "NOON": "Mittag",
+ "MIDNIGHT": "Mitternacht"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "eins",
+ "TWO": "zwei",
+ "THREE": "drei",
+ "FOUR": "vier",
+ "FIVE": "fünf",
+ "SIX": "sechs",
+ "SEVEN": "sieben",
+ "EIGHT": "acht",
+ "NINE": "neun",
+ "TEN": "zehn",
+ "TWELVE": "zwölf",
+ "FIFTEEN": "fünfzehn",
+ "TWENTY": "zwanzig",
+ "THIRTY": "dreißig"
+ },
+ "ORDINALS": {
+ "FIRST": "erste",
+ "SECOND": "zweite",
+ "THIRD": "dritte",
+ "FOURTH": "vierte",
+ "FIFTH": "fünfte"
+ },
+ "OF": "von",
+ "AFTER": "nach",
+ "WEEK": "tag",
+ "DAY": "Tag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/de/teamsSettings.json b/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
index 849aff390..ced13b942 100644
--- a/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/de/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Neues Team erstellen",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Mit Teams können Sie Ihre Agenten basierend auf ihren Verantwortlichkeiten in Gruppen organisieren.
Ein Agent kann mehreren Teams angehören. Sie können Konversationen einem Team zuweisen, wenn Sie zusammenarbeiten.
",
+ "LOADING": "Teams werden abgerufen",
+ "DESCRIPTION": "Teams ermöglichen es Ihnen, Agenten basierend auf ihren Aufgaben in Gruppen zu organisieren. Ein Agent kann mehreren Teams angehören. Bei der Zusammenarbeit können Sie Unterhaltungen bestimmten Teams zuweisen.",
+ "LEARN_MORE": "Erfahren Sie mehr über Teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Teams suchen...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Es wurden noch keine Teams auf diesem Konto erstellt.",
- "EDIT_TEAM": "Team bearbeiten"
+ "EDIT_TEAM": "Team bearbeiten",
+ "NONE": "Keine"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Agenten zum Team hinzufügen",
- "TITLE": "Agenten zum Team hinzufügen - %{teamName}",
+ "TITLE": "Agenten zum Team {teamName} hinzufügen",
"DESC": "Fügen Sie Agenten zu Ihrem neu erstellten Team hinzu. So können Sie bei Konversationen als Team zusammenarbeiten, erhalten Sie Benachrichtigungen über neue Ereignisse in der gleichen Konversation."
},
- "WIZARD": [
- {
- "title": "Erstellen",
- "route": "settings_team_new",
- "body": "Erstellen Sie ein neues Team aus Agenten."
- },
- {
- "title": "Agenten hinzufügen",
- "route": "settings_teams_add_agents",
- "body": "Agenten zum Team hinzufügen."
- },
- {
- "title": "Abschließen",
- "route": "settings_teams_finish",
- "body": "Sie sind bereit zu gehen!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Erstellen",
+ "BODY": "Erstellen Sie ein neues Team aus Agenten."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Agenten hinzufügen",
+ "BODY": "Agenten zum Team hinzufügen."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Fertig",
+ "BODY": "Geschafft!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,26 +44,24 @@
},
"AGENTS": {
"BUTTON_TEXT": "Agenten im Team aktualisieren",
- "TITLE": "Agenten zum Team %{teamName} hinzufügen",
+ "TITLE": "Agenten zum Team {teamName} hinzufügen",
"DESC": "Fügen Sie Agenten zu Ihrem neu erstellten Team hinzu. Alle hinzugefügten Agenten werden benachrichtigt, wenn diesem Team eine Unterhaltung zugewiesen wird."
},
- "WIZARD": [
- {
- "title": "Teamdetails",
- "route": "settings_teams_edit",
- "body": "Name, Beschreibung und andere Details ändern."
- },
- {
- "title": "Agenten bearbeiten",
- "route": "settings_teams_edit_members",
- "body": "Verwalten Sie Agenten in Ihrem Team."
- },
- {
- "title": "Fertig",
- "route": "settings_teams_edit_finish",
- "body": "Geschafft!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Teamdetails",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Name, Beschreibung und andere Details ändern."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Agenten bearbeiten",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Verwalten Sie Agenten in Ihrem Team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Fertig",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Geschafft!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Die Teamdetails konnten nicht gespeichert werden. Versuchen Sie es nochmal."
@@ -74,14 +73,14 @@
"ADD_AGENTS": "Agenten zu Ihrem Team hinzufügen...",
"SELECT": "Auswählen",
"SELECT_ALL": "Alle Agenten auswählen",
- "SELECTED_COUNT": "%{selected} von %{total} Agenten ausgewählt."
+ "SELECTED_COUNT": "{selected} von {total} Agenten ausgewählt."
},
"ADD": {
- "TITLE": "Agenten zum Team %{teamName} hinzufügen",
+ "TITLE": "Agenten zum Team {teamName} hinzufügen",
"DESC": "Fügen Sie Agenten zu Ihrem neu erstellten Team hinzu. So können Sie bei Konversationen als Team zusammenarbeiten und erhalten Benachrichtigungen über neue Ereignisse in der gleichen Konversation.",
"SELECT": "Auswählen",
"SELECT_ALL": "Alle Agenten auswählen",
- "SELECTED_COUNT": "%{selected} von %{total} Agenten ausgewählt.",
+ "SELECTED_COUNT": "{selected} von {total} Agenten ausgewählt.",
"BUTTON_TEXT": "Agenten hinzufügen",
"AGENT_VALIDATION_ERROR": "Wählen Sie mindestens einen Agenten aus."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Das Team konnte nicht gelöscht werden. Versuchen Sie es erneut."
},
"CONFIRM": {
- "TITLE": "Sind Sie sicher, dass Sie %{teamName} löschen möchten",
+ "TITLE": "Sind Sie sicher, dass Sie das Team löschen möchten?",
"PLACE_HOLDER": "Bitte geben Sie {teamName} zur Bestätigung ein",
"MESSAGE": "Das Löschen des Teams wird die Teamzuordnung aus den Konversationen entfernen, die diesem Team zugewiesen wurden.",
"YES": "Löschen ",
diff --git a/app/javascript/dashboard/i18n/locale/de/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/de/whatsappTemplates.json
index 8c114d3b9..6d9836199 100644
--- a/app/javascript/dashboard/i18n/locale/de/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/de/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "WhatsApp-Vorlagen",
- "SUBTITLE": "Wählen Sie die WhatsApp-Vorlage aus, die Sie senden möchten",
- "TEMPLATE_SELECTED_SUBTITLE": "Verarbeite %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Vorlagen suchen",
- "NO_TEMPLATES_FOUND": "Keine Vorlagen gefunden für",
- "LABELS": {
- "LANGUAGE": "Sprache",
- "TEMPLATE_BODY": "Vorlagenbody",
- "CATEGORY": "Kategorie"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variablen",
- "VARIABLE_PLACEHOLDER": "Geben Sie den Wert %{variable} ein",
- "GO_BACK_LABEL": "Zurück",
- "SEND_MESSAGE_LABEL": "Nachricht senden",
- "FORM_ERROR_MESSAGE": "Bitte füllen Sie vor dem Absenden alle Variablen aus"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "WhatsApp-Vorlagen",
+ "SUBTITLE": "Wählen Sie die WhatsApp-Vorlage aus, die Sie senden möchten",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Vorlagen suchen",
+ "NO_TEMPLATES_FOUND": "Keine Vorlagen gefunden für",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorie",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Sprache",
+ "TEMPLATE_BODY": "Vorlagenbody",
+ "CATEGORY": "Kategorie"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variablen",
+ "LANGUAGE": "Sprache",
+ "CATEGORY": "Kategorie",
+ "VARIABLE_PLACEHOLDER": "Geben Sie den Wert {variable} ein",
+ "GO_BACK_LABEL": "Zurück",
+ "SEND_MESSAGE_LABEL": "Nachricht senden",
+ "FORM_ERROR_MESSAGE": "Bitte füllen Sie vor dem Absenden alle Variablen aus",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/de/yearInReview.json b/app/javascript/dashboard/i18n/locale/de/yearInReview.json
new file mode 100644
index 000000000..0d0162ec3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/de/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Schließen",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "Konversation",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Herunterladen",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Konversation teilen"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/advancedFilters.json b/app/javascript/dashboard/i18n/locale/el/advancedFilters.json
index 9e00b1947..26a2e80a7 100644
--- a/app/javascript/dashboard/i18n/locale/el/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/el/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Ίσο με",
"not_equal_to": "Όχι ίσο με",
- "contains": "Περιέχει",
"does_not_contain": "Δεν περιέχει",
"is_present": "Υπάρχει",
"is_not_present": "Δεν υπάρχει",
"is_greater_than": "Είναι μεγαλύτερο από",
"is_less_than": "Είναι μικρότερο από",
"days_before": "Είναι x ημέρες πριν",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Ίσο με",
+ "notEqualTo": "Όχι ίσο με",
+ "contains": "Περιέχει",
+ "doesNotContain": "Δεν περιέχει",
+ "isPresent": "Υπάρχει",
+ "isNotPresent": "Δεν υπάρχει",
+ "isGreaterThan": "Είναι μεγαλύτερο από",
+ "isLessThan": "Είναι μικρότερο από",
+ "daysBefore": "Είναι x ημέρες πριν",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Δημιουργήθηκε στις",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Απαιτείται τιμή",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/el/agentBots.json b/app/javascript/dashboard/i18n/locale/el/agentBots.json
index 6c7452f5d..1683e496f 100644
--- a/app/javascript/dashboard/i18n/locale/el/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/el/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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": "Επαλήθευση και αποθήκευση"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Ρύθμιση νέου bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Άκυρο",
"API": {
"SUCCESS_MESSAGE": "Το bot προστέθηκε επιτυχώς.",
@@ -40,16 +33,23 @@
}
},
"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",
+ "ACTIONS": "Ενέργειες"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
index ce1b8f80e..c3963ae5d 100644
--- a/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Πράκτορες",
"HEADER_BTN_TXT": "Προσθήκη Πράκτορα",
"LOADING": "Λήψη της λίστα των Πρακτόρων",
- "SIDEBAR_TXT": "Πράκτορες
Ένας Πράκτορας είναι ένα μέλος της ομάδας υποστήριξής σας.
Οι πράκτορες θα μπορούν να δουν και να απαντήσουν στα μηνύματα των χρηστών. Στην λίστα φαίνονται όλοι οι πράκτορες που συμμετέχουν στον λογαριασμό σας.
Πατήστε στο Προσθήκη Πράκτορα για να προσθέσετε έναν νέο. Ο πράκτορας θα λάβει ένα email με σύνδεσμο επιβεβαίωσης για να ενεργοποιήσει τον λογαριασμό του, ύστερα θα μπορούν να δουν το Chatwoot και να ανταποκρίνονται στα μηνύματά τους.
Η πρόσβαση στις δυνατότητες του Chatwoot βασίζεται στους παρακάτω ρόλους.
Πράκτορας - Οι χρήστες με αυτόν τον ρόλο έχουν πρόσβαση μόνο στα εισερχόμενα, αναφορές και τις συζητήσεις. Μπορούν επίσης να αναθέσουν συζητήσεις σε άλλους πράκτορες ή τον εαυτό τους και να τις ολοκληρώσουν.
Διαχειριστής - Ο διαχειριστής θα έχει πρόσβαση σε όλες τις δυνατότητες του Chatwoot που έχουν ενεργοποιηθεί για τον λογαριασμό, συμπεριλαμβανομένων των ρυθμίσεων της εφαρμογής, όπως επίσης και όλα τα δικαιώματα που έχει ένας πράκτορας.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Διαχειριστής",
"AGENT": "Πράκτορας"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Δεν υπάρχουν πράκτορες σε αυτόν τον λογαριασμό",
"TITLE": "Διαχείριση πρακτόρων της ομάδας σας",
@@ -17,7 +19,8 @@
"STATUS": "Κατάσταση",
"ACTIONS": "Ενέργειες",
"VERIFIED": "Επιβεβαιώθηκε",
- "VERIFICATION_PENDING": "Σε αναμονή επιβεβαίωσης"
+ "VERIFICATION_PENDING": "Σε αναμονή επιβεβαίωσης",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Προσθέστε έναν Πράκτορα στην ομάδα σας",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
}
},
+ "SEARCH_PLACEHOLDER": "Αναζήτηση πράκτορων...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Δεν βρέθηκαν αποτελέσματα."
},
@@ -103,6 +108,9 @@
"AGENT": "Επιλογή πράκτορα",
"TEAM": "Επιλογή ομάδας"
},
+ "LIST": {
+ "NONE": "Κανένα"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Δεν βρέθηκαν Πράκτορες",
diff --git a/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
index c0624e627..74fb9976a 100644
--- a/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Προσαρμοζόμενες Ιδιότητες",
"HEADER_BTN_TXT": "Προσθήκη προσαρμοσμένης ιδιότητας",
"LOADING": "Λήψη προσαρμοσμένων ιδιοτήτων",
- "SIDEBAR_TXT": "Προσαρμοσμένες Ιδιότητες
Μία προσαρμοσμένη ιδιότητα παρακολουθεί γεγονότα σχετικά με τις επαφές σας/συνομιλία σας — όπως το σχέδιο συνδρομής, ή όταν παραγγέλλουν το πρώτο αντικείμενο κ. λπ.
Για τη δημιουργία μίας προσαρμοσμένης Ιδιότητας, απλά κάντε κλικ στοΠροσθήκη προσαρμοσμένης Ιδιότητας. Μπορείτε επίσης να επεξεργαστείτε ή να διαγράψετε μια υπάρχουσα Προσαρμοσμένη Ιδιότητα κάνοντας κλικ στο κουμπί Επεξεργασία ή Διαγραφή.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ιδιοτήτων...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Συνομιλία",
+ "CONTACT": "Επαφές",
+ "COMPANY": "Εταιρία"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Κείμενο",
+ "NUMBER": "Αριθμός",
+ "LINK": "Σύνδεσμος",
+ "DATE": "Date",
+ "LIST": "Λίστα",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Προσθήκη προσαρμοσμένης ιδιότητας",
"SUBMIT": "Δημιουργία",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Δεν ήταν δυνατή η διαγραφή της ιδιότητας. Δοκιμάστε ξανά."
},
"CONFIRM": {
- "TITLE": "Είστε σίγουροι ότι θέλετε να διαγράψετε την ομάδα %{attributeName}",
+ "TITLE": "Είστε σίγουροι ότι θέλετε να διαγράψετε την ομάδα {attributeName}",
"PLACE_HOLDER": "Παρακαλώ πληκτρολογήστε {attributeName} για επιβεβαίωση",
"MESSAGE": "Η Διαγραφή θα καταργήσει την ιδιότητα",
"YES": "Διαγραφή ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Προσαρμοζόμενες Ιδιότητες",
"CONVERSATION": "Συνομιλία",
- "CONTACT": "Επαφές"
+ "CONTACT": "Επαφές",
+ "COMPANY": "Εταιρία"
},
"LIST": {
- "TABLE_HEADER": [
- "Όνομα",
- "Περιγραφή",
- "Τύπος",
- "Κλειδί"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "DESCRIPTION": "Περιγραφή",
+ "TYPE": "Τύπος",
+ "KEY": "Κλειδί"
+ },
"BUTTONS": {
"EDIT": "Επεξεργασία",
"DELETE": "Διαγραφή"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/auditLogs.json b/app/javascript/dashboard/i18n/locale/el/auditLogs.json
index 9ec81359e..0cfee94b1 100644
--- a/app/javascript/dashboard/i18n/locale/el/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/el/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Δεν υπάρχουν αντικείμενα να ταιριάζουν με αυτό το ερώτημα",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Διεύθυνση IP"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "Διεύθυνση IP"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 035b7e561..858435786 100644
--- a/app/javascript/dashboard/i18n/locale/el/automation.json
+++ b/app/javascript/dashboard/i18n/locale/el/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Αυτοματισμοί",
- "HEADER_BTN_TXT": "Προσθήκη Κανόνα Αυτοματισμού",
+ "HEADER": "Αυτοματισμός",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Λήψη κανόνων αυτοματισμού",
- "SIDEBAR_TXT": "Κανόνες Αυτοματισμού
Ο Αυτοματισμός μπορεί να αντικαταστήσει και να αυτοματοποιήσει διαδικασίες που απαιτούν χειροκίνητη προσπάθεια. Μπορείτε να κάνετε πολλά πράγματα με την αυτοματοποίηση, συμπεριλαμβανομένης της προσθήκης ετικετών και την ανάθεση συνομιλίας στον καλύτερο πράκτορα. Έτσι, η ομάδα επικεντρώνεται σε αυτό που κάνουν καλύτερα και ξοδεύει λίγο χρόνο για χειρωνακτικές εργασίες.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Προσθήκη Κανόνα Αυτοματισμού",
"SUBMIT": "Δημιουργία",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Όνομα",
- "Περιγραφή",
- "Ενεργή",
- "Δημιουργήθηκε στις"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "ACTIVE": "Ενεργή",
+ "CREATED_ON": "Δημιουργήθηκε στις",
+ "ACTIONS": "Ενέργειες"
+ },
"404": "Δεν βρέθηκαν κανόνες αυτοματισμού"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Πρέπει να έχετε τουλάχιστον μία ενέργεια για να αποθηκεύσετε",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Γράψτε το μήνυμά σας εδώ",
- "TEAM_DROPDOWN_PLACEHOLDER": "Επιλογή ομάδων"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Επιλογή ομάδων",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Ενεργοποίηση Κανόνα Αυτοματισμού",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Ανέβασμα...",
"LABEL_UPLOADED": "Επιτυχής Μεταφόρτωση",
"LABEL_UPLOAD_FAILED": "Αποτυχία Μεταφόρτωσης"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Απαιτείται τιμή",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Κανένα",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Δημιουργήθηκε Συνομιλία",
+ "CONVERSATION_UPDATED": "Η Συνομιλία Ενημερώθηκε",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Άνοιγμα συνομιλίας",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Κανένα",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Ιδιωτική Σημείωση",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Email",
+ "INBOX": "Εισερχόμενα",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "Αριθμός Τηλεφώνου",
+ "STATUS": "Κατάσταση",
+ "BROWSER_LANGUAGE": "Γλώσσα Περιήγησης",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "Χώρα",
+ "COMPANY_NAME": "Εταιρία",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Ομάδα",
+ "PRIORITY": "Priority",
+ "LABELS": "Ετικέτες"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/bulkActions.json b/app/javascript/dashboard/i18n/locale/el/bulkActions.json
index 2ce083dff..5bb3d1df8 100644
--- a/app/javascript/dashboard/i18n/locale/el/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/el/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} σινομιλίες επιλέχθηκαν",
- "AGENT_SELECT_LABEL": "Επιλογή πράκτορα",
- "ASSIGN_CONFIRMATION_LABEL": "Είσαστε σίγουροι ότι θέλετε να αντιστοιχίσετε %{conversationCount} %{conversationLabel} στον",
- "UNASSIGN_CONFIRMATION_LABEL": "Είσαστε σίγουροι ότι θέλετε να αφαιρέσετε την αντιστοίχιση %{conversationCount} %{conversationLabel} στον;",
- "GO_BACK_LABEL": "Πίσω",
- "ASSIGN_LABEL": "Αντιστοίχιση",
+ "CONVERSATIONS_SELECTED": "{conversationCount} σινομιλίες επιλέχθηκαν",
+ "NONE": "Κανένα",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ναι",
+ "CANCEL": "Άκυρο",
+ "SEARCH_INPUT_PLACEHOLDER": "Αναζήτηση",
"ASSIGN_AGENT_TOOLTIP": "Ανάθεση σε πράκτορα",
"ASSIGN_TEAM_TOOLTIP": "Ανάθεση ομάδας",
"ASSIGN_SUCCESFUL": "Οι σινομιλίες αντιστοιχήθηκαν επιτυχώς.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Οι σινομιλίες επιλύθηκαν επιτυχώς.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Επιλέχθηκαν μόνο οι σινομιλίες που φαίνονται στην σελίδα.",
- "AGENT_LIST_LOADING": "Φόρτωση πρακτόρων",
"UPDATE": {
"CHANGE_STATUS": "Αλλαγή κατάστασης",
- "SNOOZE_UNTIL_NEXT_REPLY": "Αναβολή έως την επόμενη απάντηση.",
+ "SNOOZE_UNTIL": "Αναβολή",
"UPDATE_SUCCESFUL": "Η κατάσταση συνομιλίας ενημερώθηκε με επιτυχία.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Δεν βρέθηκαν πρότυπα για",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Ανάθεση επιλεγμένων ετικετών",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Επιτυχής ανάθεση ετικετών.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Επιλογή ομάδας",
"NONE": "Κανένα",
- "NO_TEAMS_AVAILABLE": "Δεν έχουν προστεθεί ομάδες σε αυτόν τον λογαριασμό ακόμα.",
- "ASSIGN_SELECTED_TEAMS": "Ανάθεση επιλεγμένης ομάδας.",
- "ASSIGN_SUCCESFUL": "Επιτυχής ανάθεση σε ομάδα.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/campaign.json b/app/javascript/dashboard/i18n/locale/el/campaign.json
index d1dd5b468..f3f5aadd5 100644
--- a/app/javascript/dashboard/i18n/locale/el/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/el/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Καμπάνιες",
- "SIDEBAR_TXT": "Τα προληπτικά μηνύματα επιτρέπουν την αποστολή εξερχόμενων μηνυμάτων στις επαφές, που θα ενεργοποιούν περισσότερες συνομιλίες. Κάντε κλικ στο Προσθήκη Καμπάνιας για να δημιουργήσετε μια νέα καμπάνια. Μπορείτε επίσης να επεξεργαστείτε ή να διαγράψετε μια ήδη υπάρχουσα καμπάνια κάνοντας κλικ στο κουμπί Επεξεργασία ή Διαγραφή.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Δημιουργήστε μία ανενεργή καμπάνια",
- "ONGOING": "Δημιουργήστε μια εν εξελίξει καμπάνια"
- },
- "ADD": {
- "TITLE": "Δημιουργία Καμπάνιας",
- "DESC": "Τα προληπτικά μηνύματα επιτρέπουν την αποστολή εξερχόμενων μηνυμάτων στις επαφές, που θα ενεργοποιούν περισσότερες συνομιλίες.",
- "CANCEL_BUTTON_TEXT": "Άκυρο",
- "CREATE_BUTTON_TEXT": "Δημιουργία",
- "FORM": {
- "TITLE": {
- "LABEL": "Τίτλος",
- "PLACEHOLDER": "Παρακαλώ εισάγετε τον τίτλο της καμπάνιας",
- "ERROR": "Ο τίτλος είναι απαραίτητος"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Ενεργό",
+ "DISABLED": "Ανενεργό"
},
- "SCHEDULED_AT": {
- "LABEL": "Προγραμματισμένη ώρα",
- "PLACEHOLDER": "Παρακαλώ επιλέξτε την ώρα",
- "CONFIRM": "Επιβεβαίωση",
- "ERROR": "Απαιτείται η προγραμματισμένη ώρα"
- },
- "AUDIENCE": {
- "LABEL": "Ακροατήριο",
- "PLACEHOLDER": "Επιλέξτε τις ετικέτες του πελάτη",
- "ERROR": "Το ακροατήριο απαιτείται"
- },
- "INBOX": {
- "LABEL": "Επιλογή Εισερχομένων",
- "PLACEHOLDER": "Επιλογή Εισερχομένων",
- "ERROR": "Το κιβώτιο εισερχομένων είναι απαραίτητο"
- },
- "MESSAGE": {
- "LABEL": "Μήνυμα",
- "PLACEHOLDER": "Παρακαλώ εισάγετε το μήνυμα της καμπάνιας",
- "ERROR": "Το μήνυμα είναι απαραίτητο"
- },
- "SENT_BY": {
- "LABEL": "Αποστολή από",
- "PLACEHOLDER": "Παρακαλώ επιλέξτε το περιεχόμενο της καμπάνιας",
- "ERROR": "Ο αποστολέας είναι απαραίτητος"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Παρακαλώ εισάγετε το URL",
- "ERROR": "Παρακαλώ εισάγετε ένα έγκυρο URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Χρόνος στη σελίδα(δευτερόλεπτα)",
- "PLACEHOLDER": "Παρακαλώ εισάγετε το χρόνο",
- "ERROR": "Ο χρόνος στη σελίδα είναι απαραίτητος"
- },
- "ENABLED": "Ενεργοποίηση καμπάνιας",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Ενεργοποίηση μόνο κατά τη διάρκεια ωρών εργασίας",
- "SUBMIT": "Προσθήκη Καμπάνιας"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Αποστολή από",
+ "BOT": "Bot",
+ "FROM": "από",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Η καμπάνια δημιουργήθηκε επιτυχώς",
- "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Άκυρο",
+ "CREATE_BUTTON_TEXT": "Δημιουργία",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Τίτλος",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε τον τίτλο της καμπάνιας",
+ "ERROR": "Ο τίτλος είναι απαραίτητος"
+ },
+ "MESSAGE": {
+ "LABEL": "Μήνυμα",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε το μήνυμα της καμπάνιας",
+ "ERROR": "Το μήνυμα είναι απαραίτητο"
+ },
+ "INBOX": {
+ "LABEL": "Επιλογή Εισερχομένων",
+ "PLACEHOLDER": "Επιλογή Εισερχομένων",
+ "ERROR": "Το κιβώτιο εισερχομένων είναι απαραίτητο"
+ },
+ "SENT_BY": {
+ "LABEL": "Αποστολή από",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Ο αποστολέας είναι απαραίτητος"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε το URL",
+ "ERROR": "Παρακαλώ εισάγετε ένα έγκυρο URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Χρόνος στη σελίδα(δευτερόλεπτα)",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε το χρόνο",
+ "ERROR": "Ο χρόνος στη σελίδα είναι απαραίτητος"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Ενεργοποίηση καμπάνιας",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Ενεργοποίηση μόνο κατά τη διάρκεια ωρών εργασίας"
+ },
+ "BUTTONS": {
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Διαγραφή",
- "CONFIRM": {
- "TITLE": "Επιβεβαίωση Διαγραφής",
- "MESSAGE": "Είσαστε σίγουροι για την διαγραφή?",
- "YES": "Ναι, Διέγραψε τον/την ",
- "NO": "Όχι, Κράτησε τον/την"
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Ολοκληρώθηκε",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Άκυρο",
+ "CREATE_BUTTON_TEXT": "Δημιουργία",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Τίτλος",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε τον τίτλο της καμπάνιας",
+ "ERROR": "Ο τίτλος είναι απαραίτητος"
+ },
+ "MESSAGE": {
+ "LABEL": "Μήνυμα",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε το μήνυμα της καμπάνιας",
+ "ERROR": "Το μήνυμα είναι απαραίτητο"
+ },
+ "INBOX": {
+ "LABEL": "Επιλογή Εισερχομένων",
+ "PLACEHOLDER": "Επιλογή Εισερχομένων",
+ "ERROR": "Το κιβώτιο εισερχομένων είναι απαραίτητο"
+ },
+ "AUDIENCE": {
+ "LABEL": "Ακροατήριο",
+ "PLACEHOLDER": "Επιλέξτε τις ετικέτες του πελάτη",
+ "ERROR": "Το ακροατήριο απαιτείται"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Προγραμματισμένη ώρα",
+ "PLACEHOLDER": "Παρακαλώ επιλέξτε την ώρα",
+ "ERROR": "Απαιτείται η προγραμματισμένη ώρα"
+ },
+ "BUTTONS": {
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Ολοκληρώθηκε",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Άκυρο",
+ "CREATE_BUTTON_TEXT": "Δημιουργία",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Τίτλος",
+ "PLACEHOLDER": "Παρακαλώ εισάγετε τον τίτλο της καμπάνιας",
+ "ERROR": "Ο τίτλος είναι απαραίτητος"
+ },
+ "INBOX": {
+ "LABEL": "Επιλογή Εισερχομένων",
+ "PLACEHOLDER": "Επιλογή Εισερχομένων",
+ "ERROR": "Το κιβώτιο εισερχομένων είναι απαραίτητο"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Επεξεργασία {templateName}",
+ "LANGUAGE": "Γλώσσα",
+ "CATEGORY": "Κατηγορία",
+ "VARIABLES_LABEL": "Μεταβλητές",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Ακροατήριο",
+ "PLACEHOLDER": "Επιλέξτε τις ετικέτες του πελάτη",
+ "ERROR": "Το ακροατήριο απαιτείται"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Προγραμματισμένη ώρα",
+ "PLACEHOLDER": "Παρακαλώ επιλέξτε την ώρα",
+ "ERROR": "Απαιτείται η προγραμματισμένη ώρα"
+ },
+ "BUTTONS": {
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Είσαστε σίγουροι για την διαγραφή?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Διαγραφή",
"API": {
"SUCCESS_MESSAGE": "Η καμπάνια διαγράφηκε επιτυχώς",
- "ERROR_MESSAGE": "Δεν ήταν δυνατή η διαγραφή της καμπάνιας. Παρακαλώ προσπαθήστε ξανά αργότερα."
+ "ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα. Παρακαλώ δοκιμάστε ξανά."
}
- },
- "EDIT": {
- "TITLE": "Επεξεργασία καμπάνιας",
- "UPDATE_BUTTON_TEXT": "Ενημέρωση",
- "API": {
- "SUCCESS_MESSAGE": "Η ετικέτα ενημερώθηκε επιτυχώς",
- "ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Φόρτωση καμπάνιας...",
- "404": "Δεν υπάρχουν εκστρατείες για αυτό το κιβώτιο εισερχόμενων.",
- "TABLE_HEADER": {
- "TITLE": "Τίτλος",
- "MESSAGE": "Μήνυμα",
- "INBOX": "Εισερχόμενα",
- "STATUS": "Κατάσταση",
- "SENDER": "Αποστολέας",
- "URL": "URL",
- "SCHEDULED_AT": "Προγραμματισμένη ώρα",
- "TIME_ON_PAGE": "Χρόνος (δευτερόλεπτα)",
- "CREATED_AT": "Δημιουργήθηκε στις"
- },
- "BUTTONS": {
- "ADD": "Προσθήκη",
- "EDIT": "Επεξεργασία",
- "DELETE": "Διαγραφή"
- },
- "STATUS": {
- "ENABLED": "Ενεργό",
- "DISABLED": "Ανενεργό",
- "COMPLETED": "Ολοκληρώθηκε",
- "ACTIVE": "Ενεργή"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "Δεν υπάρχει καμία από τις εκστρατείες (no one) που δημιουργήθηκαν",
- "INBOXES_NOT_FOUND": "Παρακαλούμε δημιουργήστε ένα κιβώτιο εισερχόμενων sms και αρχίστε να προσθέτετε καμπάνιες"
- },
- "ONGOING": {
- "HEADER": "Σε εξέλιξη καμπάνιες",
- "404": "Δεν υπάρχουν εν εξελίξει καμπάνιες που δημιουργήθηκαν",
- "INBOXES_NOT_FOUND": "Παρακαλούμε δημιουργήστε ένα κιβώτιο εισερχομένων ιστοσελίδας και αρχίστε να προσθέτετε καμπάνιες"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
index 29e8e611d..ecd7f893f 100644
--- a/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Έτοιμες Απαντήσεις",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Δεν υπάρχουν δεδομένα που να ταιριάζουν με αυτό το ερώτημα.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Δεν υπάρχουν τυποποιημένες απαντήσεις σε αυτόν τον λογαριασμό.",
"TITLE": "Διαχείριση έτοιμων απαντήσεων",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "ΠΕΡΙΕΧΟΜΕΝΟ",
- "ΕΝΕΡΓΕΙΕΣ"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "ΠΕΡΙΕΧΟΜΕΝΟ",
+ "ACTIONS": "Ενέργειες"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/el/chatlist.json b/app/javascript/dashboard/i18n/locale/el/chatlist.json
index 26776f32d..2831cf6b3 100644
--- a/app/javascript/dashboard/i18n/locale/el/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/el/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Δεν υπάρχουν ενεργές συζητήσεις σε αυτήν την ομάδα."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Συζητήσεις",
"MENTION_HEADING": "Αναφορές",
"UNATTENDED_HEADING": "Χωρίς Παρακολούθηση",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Θέση"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "έχει μοιράσει ένα σύνδεσμο"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Μη διαθέσιμο περιεχόμενο",
"HIDE_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης",
"SHOW_QUOTED_TEXT": "Απόκρυψη Κειμένου Παράθεσης",
- "MESSAGE_READ": "Ανάγνωση"
+ "MESSAGE_READ": "Ανάγνωση",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/companies.json b/app/javascript/dashboard/i18n/locale/el/companies.json
new file mode 100644
index 000000000..6b664cad8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Ταξινόμηση κατά",
+ "OPTIONS": {
+ "NAME": "Όνομα",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Δημιουργήθηκε στις",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Ιδιότητες",
+ "CONTACTS": "Επαφές",
+ "HISTORY": "History",
+ "NOTES": "Σημειώσεις"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ιδιοτήτων...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Φόρτωση επαφών...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Εταιρία",
+ "CONTACT_LABEL": "Επαφές",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Άκυρο"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Όνομα",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/components.json b/app/javascript/dashboard/i18n/locale/el/components.json
new file mode 100644
index 000000000..28c48d8dc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Δεν βρέθηκαν αποτελέσματα.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Δεν βρέθηκαν αποτελέσματα.",
+ "SEARCHING": "Αναζήτηση..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Άκυρο",
+ "CONFIRM": "Επιβεβαίωση"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Μάθετε περισσότερα",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/contact.json b/app/javascript/dashboard/i18n/locale/el/contact.json
index 7ec3514ee..677cd5e4e 100644
--- a/app/javascript/dashboard/i18n/locale/el/contact.json
+++ b/app/javascript/dashboard/i18n/locale/el/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Διεύθυνση IP",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "Νέο Μήνυμα",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Δεν υπάρχουν προηγούμενες συνομιλίες που σχετίζονται με αυτήν την επαφή.",
"TITLE": "Προηγούμενες συνομιλίες"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Προσαρμοζόμενες Ιδιότητες",
"CONTACT_LABELS": "Ετικέτες Επαφών",
- "PREVIOUS_CONVERSATIONS": "Προηγούμενες συνομιλίες"
+ "PREVIOUS_CONVERSATIONS": "Προηγούμενες συνομιλίες",
+ "NO_RECORDS_FOUND": "Δεν βρέθηκαν ιδιότητες"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Επεξεργασία επαφής",
"DESC": "Επεξεργασία λεπτομερειών επαφής"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Νέα Επαφή",
- "TITLE": "Δημιουργία νέας επαφής",
- "DESC": "Προσθήκη βασικών πληροφοριών για την επαφή."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Εισαγωγή",
- "TITLE": "Εισαγωγή Επαφών",
- "DESC": "Εισαγωγή επαφών μέσω αρχείου CSV.",
- "DOWNLOAD_LABEL": "Λήψη δείγματος csv.",
- "FORM": {
- "LABEL": "Αρχείο CSV",
- "SUBMIT": "Εισαγωγή",
- "CANCEL": "Άκυρο"
- },
- "SUCCESS_MESSAGE": "Θα ειδοποιηθείτε μέσω email όταν ολοκληρωθεί η εισαγωγή.",
- "ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Επιβεβαίωση Διαγραφής",
- "MESSAGE": "Θέλετε να διαγράψετε τη σημείωση;",
- "YES": "Ναι, Διέγραψε την",
- "NO": "Όχι, Κράτησε τον/την"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Διαγραφή Επαφής",
"TITLE": "Διαγραφή Επαφής",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Επαφές",
- "FIELDS": "Πεδία επαφής",
- "SEARCH_BUTTON": "Αναζήτηση",
- "SEARCH_INPUT_PLACEHOLDER": "Αναζήτηση Επαφών",
- "FILTER_CONTACTS": "Φίλτρο",
- "FILTER_CONTACTS_SAVE": "Αποθήκευση φίλτρου",
- "FILTER_CONTACTS_DELETE": "Διαγραφή φίλτρου",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Φόρτωση επαφών...",
- "404": "Δεν υπάρχουν επαφές που να αντιστοιχούν με την αναζήτησή σας 🔍",
- "NO_CONTACTS": "Δεν υπάρχουν διαθέσιμες επαφές",
"TABLE_HEADER": {
- "NAME": "Όνομα",
- "PHONE_NUMBER": "Αριθμός Τηλεφώνου",
- "CONVERSATIONS": "Συζητήσεις",
- "LAST_ACTIVITY": "Τελευταία Δραστηριότητα",
- "CREATED_AT": "Δημιουργήθηκε στις",
- "COUNTRY": "Χώρα",
- "CITY": "Πόλη",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Εταιρία",
- "EMAIL_ADDRESS": "Διεύθυνση Email"
- },
- "VIEW_DETAILS": "Προβολή λεπτομεριών"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Επαφές",
- "LOADING": "Φόρτωση προφίλ επαφής..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Προσθήκη",
- "TITLE": "Shift + Enter για δημιουργία εργασίας"
- },
- "FOOTER": {
- "DUE_DATE": "Ημερομηνία λήξης",
- "LABEL_TITLE": "Ορισμός τύπου"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Λήψη σημειώσεων...",
- "NOT_AVAILABLE": "Δεν υπάρχουν σημειώσεις για αυτήν την επαφή",
- "HEADER": {
- "TITLE": "Σημειώσεις"
- },
- "LIST": {
- "LABEL": "προστέθηκε μια σημείωση"
- },
- "ADD": {
- "BUTTON": "Προσθήκη",
- "PLACEHOLDER": "Προσθήκη σημείωσης",
- "TITLE": "Shift + Enter για δημιουργία σημείωσης"
- },
- "CONTENT_HEADER": {
- "DELETE": "Διαγραφή σημείωσης"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Δραστηριότητες"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "σημειώσεις",
- "PILL_BUTTON_EVENTS": "συμβάντα",
- "PILL_BUTTON_CONVO": "συζητήσεις"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Προσθήκη ιδιότητας",
"BUTTON": "Προσθήκη προσαρμοσμένης ιδιότητας",
- "NOT_AVAILABLE": "Δεν υπάρχουν διαθέσιμες προσαρμοσμένες ιδιότητες για αυτήν την επαφή.",
"COPY_SUCCESSFUL": "Αντιγράφτηκε με επιτυχία στο πρόχειρο",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Αντιγραφή ιδιότητας",
"DELETE": "Διαγραφή ιδιότητας",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Σύνοψη",
- "DELETE_WARNING": "Η επαφή του %{primaryContactName}θα διαγραφεί.",
- "ATTRIBUTE_WARNING": "Τα στοιχεία επικοινωνίας του %{primaryContactName} θα αντιγραφούν στο %{parentContactName}."
+ "DELETE_WARNING": "Η επαφή του {primaryContactName}θα διαγραφεί.",
+ "ATTRIBUTE_WARNING": "Τα στοιχεία επικοινωνίας του {primaryContactName} θα αντιγραφούν στο {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Συγχώνευση επαφών",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Η επαφή συγχωνεύθηκε επιτυχώς",
"ERROR_MESSAGE": "Δεν ήταν δυνατή η συγχώνευση επαφών, προσπαθήστε ξανά!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Επαφές",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Μήνυμα",
+ "SEND_MESSAGE": "Αποστολή μηνύματος",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Επαφές"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Η διεύθυνση email είναι σε χρήση από άλλη επαφή.",
+ "PHONE_NUMBER_DUPLICATE": "Αυτός ο αριθμός τηλεφώνου χρησιμοποιείται σε άλλη επαφή.",
+ "SUCCESS_MESSAGE": "Η επαφή αποθηκεύτηκε με επιτυχία",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Εισαγωγή επαφών μέσω αρχείου CSV.",
+ "DOWNLOAD_LABEL": "Λήψη δείγματος csv.",
+ "LABEL": "Αρχείο CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Να αλλάξει",
+ "CANCEL": "Άκυρο",
+ "IMPORT": "Εισαγωγή",
+ "SUCCESS_MESSAGE": "Θα ειδοποιηθείτε μέσω email όταν ολοκληρωθεί η εισαγωγή.",
+ "ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
+ },
+ "SORT_BY": {
+ "LABEL": "Ταξινόμηση κατά",
+ "OPTIONS": {
+ "NAME": "Όνομα",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Αριθμός τηλεφώνου",
+ "COMPANY": "Εταιρία",
+ "COUNTRY": "Χώρα",
+ "CITY": "Πόλη",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Δημιουργήθηκε στις"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Θέλετε να αποθηκεύσετε αυτό το φίλτρο;",
+ "CONFIRM": "Αποθήκευση φίλτρου",
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Επιβεβαίωση Διαγραφής",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ναι, Διέγραψε το",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Όνομα",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Αριθμός τηλεφώνου",
+ "IDENTIFIER": "Κωδικός",
+ "COUNTRY": "Χώρα",
+ "CITY": "Πόλη",
+ "COMPANY": "Εταιρία",
+ "CREATED_AT": "Δημιουργήθηκε στις",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Σύνδεσμος αναφοράς",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Εφαρμογή φίλτρων",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Φιλτράρισμα επαφών",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Προβολή λεπτομεριών",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Επεξεργασία λεπτομερειών επαφής",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Η διεύθυνση email είναι σε χρήση από άλλη επαφή."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Αυτός ο αριθμός τηλεφώνου χρησιμοποιείται σε άλλη επαφή."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Εισάγετε το όνομα της εταιρείας"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Διαγραφή Επαφής",
+ "DELETE_DIALOG": {
+ "TITLE": "Επιβεβαίωση Διαγραφής",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ναι, Διέγραψε το",
+ "API": {
+ "SUCCESS_MESSAGE": "Η επαφή διαγράφηκε επιτυχώς",
+ "ERROR_MESSAGE": "Δεν ήταν δυνατή η διαγραφή επαφής. Παρακαλώ προσπαθήστε ξανά αργότερα."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Το Avatar διαγράφηκε επιτυχώς",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Ιδιότητες",
+ "HISTORY": "History",
+ "NOTES": "Σημειώσεις",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Δεν υπάρχουν προηγούμενες συνομιλίες που σχετίζονται με αυτήν την επαφή"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Ναι",
+ "NO": "Όχι",
+ "TRIGGER": {
+ "SELECT": "Επιλέξτε τιμή",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Απαιτείται έγκυρη τιμή",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Μη Έγκυρο URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Δεν βρέθηκαν ιδιότητες",
+ "API": {
+ "SUCCESS_MESSAGE": "Ο πράκτορας ενημερώθηκε επιτυχώς",
+ "DELETE_SUCCESS_MESSAGE": "Η ιδιότητα προστέθηκε με επιτυχία",
+ "UPDATE_ERROR": "Δεν είναι δυνατή η ενημέρωση της ιδιότητας. Παρακαλώ προσπαθήστε ξανά αργότερα",
+ "DELETE_ERROR": "Δεν είναι δυνατή η διαγραφή της ιδιότητας. Παρακαλώ δοκιμάστε ξανά αργότερα"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Συγχώνευση επαφής",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Κύρια επαφή",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Να διαγραφεί",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση επαφής",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Η επαφή συγχωνεύθηκε επιτυχώς",
+ "ERROR_MESSAGE": "Δεν ήταν δυνατή η συγχώνευση επαφών, προσπαθήστε ξανά!",
+ "IS_SEARCHING": "Αναζήτηση...",
+ "BUTTONS": {
+ "CANCEL": "Άκυρο",
+ "CONFIRM": "Συγχώνευση επαφής"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Προσθήκη σημείωσης",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Δεν υπάρχουν επαφές που να αντιστοιχούν με την αναζήτησή σας 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Ανάθεση Ετικετών",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Επιτυχής ανάθεση ετικετών.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Διαγραφή",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Διαγραφή Επαφής"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Προβολή",
+ "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": "Προς:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Θέμα :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Γράψτε το μήνυμά σας εδώ..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Μεταβλητές",
+ "BACK": "Πίσω",
+ "SEND_MESSAGE": "Αποστολή μηνύματος"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Πίσω",
+ "SEND_MESSAGE": "Αποστολή μηνύματος"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/contactFilters.json b/app/javascript/dashboard/i18n/locale/el/contactFilters.json
index a83cea7c0..cc2bb6234 100644
--- a/app/javascript/dashboard/i18n/locale/el/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/el/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Είναι μικρότερο από",
"days_before": "Είναι x ημέρες πριν"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Απαιτείται τιμή"
+ },
"ATTRIBUTES": {
"NAME": "Όνομα",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Δημιουργήθηκε στις",
"LAST_ACTIVITY": "Τελευταία Δραστηριότητα",
- "REFERER_LINK": "Σύνδεσμος αναφοράς"
+ "REFERER_LINK": "Σύνδεσμος αναφοράς",
+ "BLOCKED": "Blocked",
+ "LABELS": "Ετικέτες"
},
"GROUPS": {
"STANDARD_FILTERS": "Τυπικά Φίλτρα",
diff --git a/app/javascript/dashboard/i18n/locale/el/contentTemplates.json b/app/javascript/dashboard/i18n/locale/el/contentTemplates.json
new file mode 100644
index 000000000..561da40b5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Αναζήτηση Προτύπων",
+ "NO_TEMPLATES_FOUND": "Δεν βρέθηκαν πρότυπα για",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Κατηγορία",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Γλώσσα",
+ "TEMPLATE_BODY": "Σώμα Προτύπου",
+ "CATEGORY": "Κατηγορία"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Κείμενο"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Μεταβλητές",
+ "LANGUAGE": "Γλώσσα",
+ "CATEGORY": "Κατηγορία",
+ "VARIABLE_PLACEHOLDER": "Εισάγετε τιμή για {variable}",
+ "GO_BACK_LABEL": "Πίσω",
+ "SEND_MESSAGE_LABEL": "Αποστολή μηνύματος",
+ "FORM_ERROR_MESSAGE": "Παρακαλώ συμπληρώστε όλες τις μεταβλητές πριν την αποστολή",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Πίσω",
+ "SEND_MESSAGE_BUTTON": "Αποστολή μηνύματος"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/conversation.json b/app/javascript/dashboard/i18n/locale/el/conversation.json
index 9bd6b19ea..206bc68ab 100644
--- a/app/javascript/dashboard/i18n/locale/el/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/el/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " για να ξεκινήσετε",
"NO_INBOX_AGENT": "Ω όχι! Φαίνεται ότι δεν είστε μέλος κάποιου κιβωτίου εισερχμένων. Απευθυνθείτε στον διαχειριστή",
"SEARCH_MESSAGES": "Αναζήτηση μηνυμάτων στις συνομιλίες",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Φόρτωση Συζητήσεων",
"CANNOT_REPLY": "Δεν μπορείτε να απαντήσετε εξαιτίας",
"24_HOURS_WINDOW": "του περιορισμού των 24 ωρών",
+ "48_HOURS_WINDOW": "του περιορισμού των 48 ωρών",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "Αυτή η συνομιλία δεν έχει ανατεθεί σε εσάς. Θα θέλατε να αντιστοιχίσετε αυτή τη συνομιλία στον εαυτό σας;",
"ASSIGN_TO_ME": "Ανάθεση σε μένα",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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": "Κατέβασμα",
"UNKNOWN_FILE_TYPE": "Άγνωστο Αρχείο",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "Ό πράκτορας {sender} ξεκίνησε μια συνάντηση"
+ },
"UPLOADING_ATTACHMENTS": "Ανέβασμα επισυναπτόμενων...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Το μήνυμα διαγράφηκε επιτυχώς",
"FAIL_DELETE_MESSSAGE": "Δεν ήταν δυνατή η διαγραφή μηνύματος! Προσπαθήστε ξανά",
"NO_RESPONSE": "Καμία ανταπόκριση",
+ "RESPONSE": "Response",
"RATING_TITLE": "Αξιολόγηση",
"FEEDBACK_TITLE": "Ανατροφοδότηση",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Προβολή ετικετών",
- "HIDE_LABELS": "Απόκρυψη ετικετών"
+ "HIDE_LABELS": "Απόκρυψη ετικετών",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Επίλυση",
"REOPEN_ACTION": "Επαναφορά",
"OPEN_ACTION": "Ανοιχτές",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Περισσότερα",
"CLOSE": "Κλείσιμο",
"DETAILS": "Λεπτομέρειες",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Αναβλήθηκε μέχρι αύριο",
"SNOOZED_UNTIL_NEXT_WEEK": "Αναβολή έως την επόμενη εβδομάδα",
- "SNOOZED_UNTIL_NEXT_REPLY": "Αναβολή έως την επόμενη απάντηση"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Αναβολή έως την επόμενη απάντηση",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Σήμανση ως εκκρεμής",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Επόμενη εβδομάδα"
}
},
+ "MENTION": {
+ "AGENTS": "Πράκτορες",
+ "TEAMS": "Ομάδες"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Αναβολή έως",
"APPLY": "Αναβολή",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Κανένα",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "Δεν βρέθηκαν αποτελέσματα",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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_UNREAD": "Σήμανση ως μη αναγνωσμένο",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Άνοιγμα συνομιλίας",
"SNOOZE": {
"TITLE": "Αναβολή",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Εκχώρηση ετικέτας",
"AGENTS_LOADING": "Φόρτωση πρακτόρων...",
"ASSIGN_TEAM": "Ανάθεση ομάδας",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Η συνομιλία με αριθμό %{conversationId} ανατέθηκε στον \"%{agentName}\"",
+ "SUCCESFUL": "Η συνομιλία με αριθμό {conversationId} ανατέθηκε στον \"{agentName}\"",
"FAILED": "Αδυναμία αντιστοίχισης σε πράκτορα. Παρακαλώ δοκιμάστε ξανά."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Εκχώρηση ετικέτας #%{labelName} στην συνομιλία με αριθμό %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Αποτυχία στην εκχώρηση ετικέτας, παρακαλώ δοκιμάστε αργότερα."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Η συνομιλία με αριθμό %{conversationId} ανατέθηκε στην ομάδα \"%{team}\"",
+ "SUCCESFUL": "Η συνομιλία με αριθμό {conversationId} ανατέθηκε στην ομάδα \"{team}\"",
"FAILED": "Αδυναμία αντιστοίχισης ομάδας. Παρακαλώ δοκιμάστε ξανά."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Απενεργοποίηση υπογραφής",
"MSG_INPUT": "Shift + enter για νέα γραμμή. Ξεκινήστε με '/' για να επιλέξτε Τυποποιημένη Απάντηση.",
"PRIVATE_MSG_INPUT": "Shift + enter για νέα γραμμή. Το κείμενο θα μπορούν να το δουν μόνο οι υπόλοιποι πράκτορες.",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Δεν έχει ρυθμιστεί η υπογραφή μηνύματος, παρακαλώ ρυθμίστε την στις ρυθμίσεις προφίλ.",
- "CLICK_HERE": "Πατήστε εδώ για ενημέρωση"
+ "COPILOT_MSG_INPUT": "Δώστε στον copilot επιπλέον εντολές ή ρωτήστε οτιδήποτε άλλο... Πατήστε enter για να στείλετε συνέχεια",
+ "CLICK_HERE": "Πατήστε εδώ για ενημέρωση",
+ "WHATSAPP_TEMPLATES": "Πρότυπα Whatsapp"
},
"REPLYBOX": {
"REPLY": "Απάντηση",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Προβολή επεξεργαστή εμπλουτισμένου κειμένου",
"TIP_EMOJI_ICON": "Προβολή επιλογέα emoji",
"TIP_ATTACH_ICON": "Επισύναψη αρχείων",
"TIP_AUDIORECORDER_ICON": "Εγγραφή ήχου",
"TIP_AUDIORECORDER_PERMISSION": "Να επιτρέπεται η πρόσβαση στον ήχο",
"TIP_AUDIORECORDER_ERROR": "Αδυναμία ανοίγματος ήχου",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Σύρετε και αφήστε εδώ για επισύναψη",
"START_AUDIO_RECORDING": "Έναρξη ηχογράφησης",
"STOP_AUDIO_RECORDING": "Διακοπή ηχογράφησης",
- "": "",
+ "COPILOT_THINKING": "Ο Copilot σκέφτεται",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Προσθήκη bcc",
@@ -176,6 +257,13 @@
"YES": "Αποστολή",
"CANCEL": "Άκυρο"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Ιδιωτική Σημείωση: Ορατή μόνο σε σας και την ομάδα σας",
@@ -186,10 +274,15 @@
"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}",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Δεν είναι δυνατή η αποστολή του μηνύματος, παρακαλώ προσπαθήστε ξανά αργότερα",
"SENT_BY": "Αποστολή από:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Δεν ήταν δυνατή η αποστολή μηνύματος! Προσπαθήστε ξανά",
"TRY_AGAIN": "επανάληψη",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Διαγραφή",
"CANCEL": "Άκυρο"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Επαφές",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Άκυρο",
"SEND_EMAIL_SUCCESS": "Η μεταγραφή της συνομιλίας έχει αποσταλεί επιτυχώς",
"SEND_EMAIL_ERROR": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Στείλτε το αντίγραφο στον πελάτη",
"SEND_TO_AGENT": "Στείλε το αντίγραφο στον αντιστοιχισμένο πράκτορα",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Γεια σας 👋, Καλώς ήρθατε στο %{installationName}!",
- "DESCRIPTION": "Ευχαριστούμε για την εγγραφή. Θέλουμε να αξιοποιήσετε στο έπακρο το %{installationName}. Εδώ είναι μερικά πράγματα που μπορείτε να κάνετε στο %{installationName} για να έχετε μια ευχάριστη εμπειρία.",
+ "TITLE": "Γεια σας 👋, Καλώς ήρθατε στο {installationName}!",
+ "DESCRIPTION": "Ευχαριστούμε για την εγγραφή. Θέλουμε να αξιοποιήσετε στο έπακρο το {installationName}. Εδώ είναι μερικά πράγματα που μπορείτε να κάνετε στο {installationName} για να έχετε μια ευχάριστη εμπειρία.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Διαβάστε τις πρόσφατες ενημερώσεις μας",
"ALL_CONVERSATION": {
"TITLE": "Όλες οι συνομιλίες σας σε ένα μέρος",
- "DESCRIPTION": "Δείτε όλες τις συνομιλίες από τους πελάτες σας σε ένα μόνο ταμπλό. Μπορείτε να φιλτράρετε τις συνομιλίες κατά εισερχόμενο κανάλι, ετικέτα και κατάσταση."
+ "DESCRIPTION": "Δείτε όλες τις συνομιλίες από τους πελάτες σας σε ένα μόνο ταμπλό. Μπορείτε να φιλτράρετε τις συνομιλίες κατά εισερχόμενο κανάλι, ετικέτα και κατάσταση.",
+ "NEW_LINK": "Κάντε κλικ εδώ για δημιουργία εισερχόμενων"
},
"TEAM_MEMBERS": {
"TITLE": "Προσκαλέστε τα μέλη της ομάδας σας",
"DESCRIPTION": "Δεδομένου ότι ετοιμάζεστε να συνομιλήσετε με τον πελάτη σας, φέρτε τους συνάδελφους σας για να σας βοηθήσουν. Μπορείτε να προσκαλέσετε τους συνάδελφους σας προσθέτοντας τη διεύθυνση email τους στη λίστα αντιπροσώπων.",
"NEW_LINK": "Κάντε κλικ εδώ για να καλέσετε ένα μέλος της ομάδας"
},
- "INBOXES": {
- "TITLE": "Σύνδεση Εισερχομένων",
- "DESCRIPTION": "Συνδέστε διάφορα κανάλια μέσω των οποίων οι πελάτες σας θα μιλούν μαζί σας. Μπορεί να είναι μια ιστοσελίδα live-chat, το Facebook ή το Twitter σελίδα σας ή ακόμα και ο αριθμός σας WhatsApp.",
- "NEW_LINK": "Κάντε κλικ εδώ για δημιουργία εισερχόμενων"
- },
"LABELS": {
"TITLE": "Οργάνωση συνομιλιών με ετικέτες",
"DESCRIPTION": "Οι ετικέτες παρέχουν έναν ευκολότερο τρόπο για να κατηγοριοποιήσετε τη συνομιλία σας. Δημιουργήστε μερικές ετικέτες όπως το #support-quiry, #billing-question κλπ., έτσι ώστε να μπορείτε να τις χρησιμοποιήσετε σε μια συζήτηση αργότερα.",
"NEW_LINK": "Κάντε κλικ εδώ για δημιουργία ετικετών (tags)"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Εκκρεμεί",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Δημιουργία ιδιότητας",
+ "NO_RECORDS_FOUND": "Δεν βρέθηκαν ιδιότητες",
"UPDATE": {
"SUCCESS": "Ο πράκτορας ενημερώθηκε επιτυχώς",
"ERROR": "Δεν είναι δυνατή η ενημέρωση της ιδιότητας. Παρακαλώ προσπαθήστε ξανά αργότερα"
@@ -297,17 +449,18 @@
"TO": "Προς",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Θέμα"
+ "SUBJECT": "Θέμα",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Δεν βρέθηκαν αποτελέσματα",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/customRole.json b/app/javascript/dashboard/i18n/locale/el/customRole.json
new file mode 100644
index 000000000..26e80edd3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Δεν υπάρχουν δεδομένα που να ταιριάζουν με αυτό το ερώτημα.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "DESCRIPTION": "Περιγραφή",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Ενέργειες"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Απαιτείται όνομα."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Η περιγραφή απαιτείται."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Άκυρο",
+ "API": {
+ "ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Καταχώρηση",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Επεξεργασία",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Ενημέρωση",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Διαγραφή",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
+ },
+ "CONFIRM": {
+ "TITLE": "Επιβεβαίωση Διαγραφής",
+ "MESSAGE": "Είσαστε σίγουροι για την διαγραφή ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/datePicker.json b/app/javascript/dashboard/i18n/locale/el/datePicker.json
new file mode 100644
index 000000000..f5f3f7b78
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Εφαρμογή",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Τελευταίες 7 ημέρες",
+ "LAST_30_DAYS": "Τελευταίες 30 ημέρες",
+ "LAST_3_MONTHS": "Τελευταίοι 3 μήνες",
+ "LAST_6_MONTHS": "Τελευταίοι 6 μήνες",
+ "LAST_YEAR": "Τελευταίο έτος",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Προσαρμοσμένο εύρος ημερομηνιών"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/general.json b/app/javascript/dashboard/i18n/locale/el/general.json
new file mode 100644
index 000000000..ee03858ee
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Αναζήτηση",
+ "EMPTY_STATE": "Δεν βρέθηκαν αποτελέσματα"
+ },
+ "CLOSE": "Κλείσιμο",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ναι",
+ "NO": "Όχι"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/generalSettings.json b/app/javascript/dashboard/i18n/locale/el/generalSettings.json
index 53d2f7fcc..d54572642 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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 έχει ενεργοποιηθεί για τον λογαριασμό.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Τώρα μπορείτε να λαμβάνετε emails στον τομέα (domain) σας."
}
},
- "UPDATE_CHATWOOT": "Μια ενημέρωση %{latestChatwootVersion} για το Chatwoot είναι διαθέσιμη. Ενημερώστε την εφαρμογή σας.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Πάτησε enter για επιλογή",
"ENTER_TO_REMOVE": "Πάτησε enter για αφαίρεση",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Επιλέξτε ένα",
"SELECT": "Επιλογή"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Η Συνομιλία Ανατέθηκε",
"assigned_conversation_new_message": "Νέο Μήνυμα",
"participating_conversation_new_message": "Νέο Μήνυμα",
- "conversation_mention": "Αναφορά"
+ "conversation_mention": "Αναφορά",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Εκτός"
+ "OFFLINE": "Εκτός",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Ανανέωση"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Αναζήτηση ή μετάβαση σε",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Γενικά",
"REPORTS": "Αναφορές",
"CONVERSATION": "Συνομιλία",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Αλλαγή Αναδόχου",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Αλλαγή Ομάδας",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Μέχρι αύριο",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/el/helpCenter.json b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
index 9c48d4783..1e3b5de1e 100644
--- a/app/javascript/dashboard/i18n/locale/el/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/el/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Δημιουργία Πύλης"
+ },
"HEADER": {
"FILTER": "Φιλτράρισμα κατά",
"SORT": "Ταξινόμηση κατά",
@@ -41,6 +46,7 @@
"UPLOADING": "Ανέβασμα...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Αναζήτηση...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Η πύλη διαγράφηκε επιτυχώς",
"DELETE_ERROR": "Σφάλμα κατά τη διαγραφή της πύλης"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Πληροφορίες κέντρου βοήθειας",
- "route": "new_portal_information",
- "body": "Βασικές πληροφορίες σχετικά με την πύλη",
- "CREATE_BASIC_SETTING_BUTTON": "Δημιουργία βασικών ρυθμίσεων πύλης"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Πληροφορίες κέντρου βοήθειας",
+ "BODY": "Βασικές πληροφορίες σχετικά με την πύλη"
},
- {
- "title": "Προσαρμογή του κέντρου βοήθειας",
- "route": "portal_customization",
- "body": "Προσαρμογή πύλης",
- "UPDATE_PORTAL_BUTTON": "Ενημέρωση ρυθμίσεων πύλης"
+ "CUSTOMIZATION": {
+ "TITLE": "Προσαρμογή του κέντρου βοήθειας",
+ "BODY": "Προσαρμογή πύλης"
},
- {
- "title": "Έξοχα! 🎉",
- "route": "portal_finish",
- "body": "Είναι όλα έτοιμα!",
- "FINISH": "Τέλος"
+ "FINISH": {
+ "TITLE": "Έξοχα! 🎉",
+ "BODY": "Είναι όλα έτοιμα!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Πίσω",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Προσαρμοσμένο Domain",
"PLACEHOLDER": "Προσαρμοσμένος τομέας πύλης",
- "HELP_TEXT": "Προσθήκη μόνο Αν θέλετε να χρησιμοποιήσετε ένα προσαρμοσμένο τομέα για τις πύλες σας. π.χ: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Εισάγετε ένα έγκυρο URL τομέα"
},
"HOME_PAGE_LINK": {
"LABEL": "Σύνδεσμος Αρχικής Σελίδας",
"PLACEHOLDER": "Σύνδεσμος αρχικής σελίδας πύλης",
- "HELP_TEXT": "Ο σύνδεσμος που χρησιμοποιείται για την επιστροφή από την πύλη στην αρχική σελίδα. π.χ. https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Εισάγετε μια έγκυρη διεύθυνση URL της αρχικής σελίδας"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Η γλώσσα αφαιρέθηκε επιτυχώς από την πύλη",
"ERROR_MESSAGE": "Δεν είναι δυνατή η αφαίρεση γλώσσας από την πύλη. Δοκιμάστε ξανά."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Το άρθρο αρχειοθετήθηκε επιτυχώς"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Σφάλμα κατά τη διαγραφή άρθρου"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Παρακαλώ προσθέστε την επικεφαλίδα και το περιεχόμενο του άρθρου για να μπορείτε να ενημερώσετε τις ρυθμίσεις"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Δημοσιευμένο",
+ "DRAFT": "Πρόχειρο",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Διαγραφή"
+ },
+ "STATUS": {
+ "DRAFT": "Πρόχειρο",
+ "PUBLISHED": "Δημοσιευμένο",
+ "ARCHIVED": "Αρχειοθετημένο"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Δικές μου",
+ "DRAFT": "Πρόχειρο",
+ "PUBLISHED": "Δημοσιευμένο",
+ "ARCHIVED": "Αρχειοθετημένο"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Δημοσιευμένο",
+ "DRAFT": "Πρόχειρο",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Κατηγορία",
+ "DELETE": "Διαγραφή",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Διαγραφή",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Νέα κατηγορία",
+ "EDIT_CATEGORY": "Επεξεργασία κατηγορίας",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Δεν βρέθηκαν κατηγορίες",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Η κατηγορία δημιουργήθηκε με επιτυχία",
+ "ERROR_MESSAGE": "Αδυναμία δημιουργίας κατηγορίας"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Η ετικέτα ενημερώθηκε επιτυχώς",
+ "ERROR_MESSAGE": "Αδύνατη η ενημέρωση της κατηγορίας"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Η καμπάνια διαγράφηκε επιτυχώς",
+ "ERROR_MESSAGE": "Δεν είναι δυνατή η διαγραφή κατηγορίας"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Δημιουργία κατηγορίας",
+ "EDIT": "Επεξεργασία κατηγορίας",
+ "DESCRIPTION": "Η επεξεργασία μιας κατηγορίας θα ενημερώσει την κατηγορία στην πύλη που βλέπει το κοινό.",
+ "PORTAL": "Πύλη",
+ "LOCALE": "Γλώσσα"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "Όνομα κατηγορίας",
+ "ERROR": "Απαιτείται όνομα"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug κατηγορίας για urls",
+ "ERROR": "Το Slug είναι απαραίτητο",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Δώστε μια σύντομη περιγραφή της κατηγορίας.",
+ "ERROR": "Η περιγραφή απαιτείται"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Δημιουργία",
+ "EDIT": "Ενημέρωση",
+ "CANCEL": "Άκυρο"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Προεπιλογή",
+ "DRAFT": "Πρόχειρο",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Διαγραφή"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Προσθέστε μια νέα γλώσσα",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Κατάσταση",
+ "OPTIONS": {
+ "LIVE": "Δημοσιευμένο",
+ "DRAFT": "Πρόχειρο"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Η γλώσσα προστέθηκε επιτυχώς",
+ "ERROR_MESSAGE": "Δεν είναι δυνατή η προσθήκη γλώσσας. Δοκιμάστε ξανά."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Αποθηκεύεται...",
+ "SAVED": "Αποθηκεύτηκε"
+ },
+ "PREVIEW": "Προεπισκόπηση",
+ "PUBLISH": "Δημοσιευμένο",
+ "DRAFT": "Πρόχειρο",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta περιγραφή",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Μετα-τίτλος",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Σφάλμα κατά την αποθήκευση άρθρου"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Πύλες",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "άρθρα",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Όνομα πύλης"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Δημιουργία",
+ "NAME": {
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Απαιτείται όνομα"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Το Slug είναι απαραίτητο",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Λογότυπο",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Όνομα",
+ "PLACEHOLDER": "Όνομα πύλης",
+ "ERROR": "Απαιτείται όνομα"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Κείμενο κεφαλίδας πύλης"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Τίτλος σελίδας πύλης"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Σύνδεσμος αρχικής σελίδας πύλης",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Προσαρμοσμένο Domain",
+ "LABEL": "Προσαρμοσμένο Domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Προσαρμοσμένος τομέας πύλης",
+ "EDIT_BUTTON": "Επεξεργασία",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Ζωντανά",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Προσαρμοσμένο Domain",
+ "PLACEHOLDER": "Προσαρμοσμένος τομέας πύλης",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Αποστολή"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Διαγραφή πύλης",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Διαγραφή"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Διαγραφή"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Ο φάκελος δημιουργήθηκε με επιτυχία",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Η πύλη ενημερώθηκε με επιτυχία",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Ανέβασμα...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Άκυρο",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Ολοκληρώθηκε",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/inbox.json b/app/javascript/dashboard/i18n/locale/el/inbox.json
index 4ec1e9de4..e64a1429d 100644
--- a/app/javascript/dashboard/i18n/locale/el/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/el/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Εισερχόμενα",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Αναβλήθηκε μέχρι αύριο",
"SNOOZED_UNTIL_NEXT_WEEK": "Αναβολή έως την επόμενη εβδομάδα"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Πίσω"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Νέο Μήνυμα",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Νέο Μήνυμα",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Μη διαθέσιμο περιεχόμενο",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Σήμανση ως μη αναγνωσμένο",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
index 25d547a7d..516f5c6d6 100644
--- a/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Κιβώτια Εισερχομένων",
- "SIDEBAR_TXT": "Κιβώτιο Εισερχομένων
Όταν συνδέετε μια ιστοσελίδα ή μια σελίδα του Facebook με το Chatwoot αυτό καλείται ως Κιβώτιο Εισερχομένων. Μπορείτε να έχετε απεριόριστα κιβώτια σε ένα λογαριασμό.
Πατήστε στο Προσθήκη Κιβωτίου για να συνδέετε μια ιστοσελίδα ή μια σελίδα Facebook.
Στον Πίνακα Ελέγχου (Dashboard), μπορείτε να δείτε όλες τις συνομιλίες από όλα τα κιβώτια σε ένα μέρος και να απαντήσετε στις συζητήσεις από την καρτέλα `Συνομιλίες`.
Μπορείτε επίσης να δείτε τις συνομιλίες που αφορούν ένα συγκεκριμένο κιβώτιο επιλέγοντάς το από το αριστερό τμήμα του πίνακα ελέγχου (dashboard).
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Δεν υπάρχουν κιβώτια εισερχομένων σε αυτόν τον λογαριασμό."
},
- "CREATE_FLOW": [
- {
- "title": "Επιλογή Καναλιού",
- "route": "settings_inbox_new",
- "body": "Επίλεξετε το κανάλι που θέλετε να ενσωματώσετε στο Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Επιλογή Καναλιού",
+ "BODY": "Επίλεξετε το κανάλι που θέλετε να ενσωματώσετε στο Chatwoot."
},
- {
- "title": "Δημιουργία Κιβωτίου",
- "route": "settings_inboxes_page_channel",
- "body": "Πιστοποιήστε τον λογαριασμό σας και δημιουργείστε κιβώτιο Εισερχομένων."
+ "INBOX": {
+ "TITLE": "Δημιουργία Κιβωτίου",
+ "BODY": "Πιστοποιήστε τον λογαριασμό σας και δημιουργείστε κιβώτιο Εισερχομένων."
},
- {
- "title": "Προσθήκη Πρακτόρων",
- "route": "settings_inboxes_add_agents",
- "body": "Προσθέστε πράκτορες στο κιβώτιο που δημιουργήθηκε."
+ "AGENT": {
+ "TITLE": "Προσθήκη Πρακτόρων",
+ "BODY": "Προσθέστε πράκτορες στο κιβώτιο που δημιουργήθηκε."
},
- {
- "title": "Έξοχα!",
- "route": "settings_inbox_finish",
- "body": "Είσαστε έτοιμοι να ξεκινήσετε!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Είσαστε έτοιμοι να ξεκινήσετε!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Όνομα Κιβωτίου",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Επιλέξτε σελίδα από την Λίστα",
"INBOX_NAME": "Όνομα Κιβωτίου",
"ADD_NAME": "Ονοματίστε το κιβώτιο σας",
- "PICK_NAME": "Διαλέξτε όνομα για το κιβώτιο",
- "PICK_A_VALUE": "Επιλέξτε τιμή"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Για να προσθέσετε το Προφίλ Twitter ως κανάλι, πρέπει να επικυρώστε το Προφίλ σας στο Twiter κάνοντας click στο 'Είσοδος με το Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Σύνδεσμος Webhook",
- "PLACEHOLDER": "Εισάγετε τη διεύθυνση Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Παρακαλώ εισάγετε ένα έγκυρο URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domain Ιστοσελίδας",
"PLACEHOLDER": "Συμπληρώστε το domain της Ιστοσελίδας σας (π.χ: hmu.gr)"
@@ -143,7 +172,7 @@
"ERROR": "Το πεδίο είναι απαραίτητο"
},
"PHONE_NUMBER": {
- "LABEL": "Αριθμός τηλεφώνου",
+ "LABEL": "Αριθμός Τηλεφώνου",
"PLACEHOLDER": "Παρακαλώ εισάγετε έναν αριθμό τηλεφώνου από τον οποίο θα σταλεί το μήνυμα.",
"ERROR": "Παρακαλώ δώστε έναν έγκυρο αριθμό τηλεφώνου που ξεκινά με ένα σύμβολο `+` και δεν περιέχει κενά."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "Κλειδί API",
- "PLACEHOLDER": "Παρακαλώ εισάγετε το Bandwith API κλειδί σας",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Το πεδίο είναι απαραίτητο"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Παρακαλώ εισάγετε το Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Το πεδίο είναι απαραίτητο"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Ξεκινήστε να υποστηρίζετε τους πελάτες σας μέσω του WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "Διάλογος 360"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Όνομα Κιβωτίου",
"PLACEHOLDER": "Παρακαλώ εισάγετε όνομα εισερχόμενων",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Token Επαλήθευσης Webhook",
- "PLACEHOLDER": "Εισάγετε ένα Token επαλήθευσης που θέλετε να ρυθμίσετε για το facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Παρακαλώ εισάγετε μια έγκυρη τιμή."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Token Επαλήθευσης Webhook"
},
"SUBMIT_BUTTON": "Δημιουργία Καναλιού WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Δεν ήμασταν σε θέση να αποθηκεύσουμε το κανάλι WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Αριθμός Τηλεφώνου",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID Λογαριασμού",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "Κανάλι API",
"DESC": "Ενσωματώστε ένα κανάλι APΙ και ξεκινήσετε την υποστήριξη των πελατών σας.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Σύνδεσμος Webhook",
- "SUBTITLE": "Ρυθμίστε το url το οποίο θα λαμβάνει callbacks όταν κάτι συμβαίνει.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Σύνδεσμος Webhook"
},
"SUBMIT_BUTTON": "Δημιουργία API Καναλιού",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Κανάλι Email",
- "DESC": "Συνδέστε ένα κιβώτιο εισερχομένων email.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Όνομα καναλιού",
"PLACEHOLDER": "Παρακαλώ εισάγετε ένα όνομα καναλιού",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Δεν είμαστε σε θέση να αποθηκεύσουμε το Email κανάλι"
},
- "FINISH_MESSAGE": "Προώθηση των email σας στην ακόλουθη διεύθυνση email."
+ "FINISH_MESSAGE": "Προώθηση των email σας στην ακόλουθη διεύθυνση email.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Πατήστε εδώ",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Κανάλι LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Επιλογή Καναλιού",
- "DESC": "Το Chatwoot υποστηρίζει widget live-chat, σελίδα Facebook, προφίλ Twitter, Whatsapp, Email κλπ., ως κανάλια. Αν θέλετε να δημιουργήσετε ένα προσαρμοσμένο κανάλι, μπορείτε να το δημιουργήσετε χρησιμοποιώντας το κανάλι API. Επιλέξτε ένα κανάλι από τις παρακάτω επιλογές για να συνεχίσετε."
+ "DESC": "Το Chatwoot υποστηρίζει widget live-chat, σελίδα Facebook, προφίλ Twitter, Whatsapp, Email κλπ., ως κανάλια. Αν θέλετε να δημιουργήσετε ένα προσαρμοσμένο κανάλι, μπορείτε να το δημιουργήσετε χρησιμοποιώντας το κανάλι API. Επιλέξτε ένα κανάλι από τις παρακάτω επιλογές για να συνεχίσετε.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Πράκτορες",
"DESC": "Εδώ μπορείτε να προσθέσετε πράκτορες στο κιβώτιο που μόλις δημιουργήσατε. Μονο αυτοί οι επιλεγμένοι πράκτορες θα έχουν πρόσβαση στο κιβώτιο. Οι πράκτορες που δεν ανήκουν σε αυτο το κιβώτιο δεν θα έχουν την δυνατότητα να ανταποκρίνονται σε μηνήματα αυτού του κιβωτίου όταν κάνουν login στο σύστημα.
ΥΓ: Ως Διαχειριστής, αν θέλετε πρόσβαση σε όλα τα κιβώτια, θα πρέπει να προσθέσετε τον εαυτό σας σε όλα τα κιβώτια που δημιουργείτε.",
- "VALIDATION_ERROR": "Προσθέστε τουλάχιστον ένα πράκτορα στο κιβώτιο εισερχομένων",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Επιλέξτε πράκτορες για το κιβώτιο"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Πιστοποίηση ταυτότητας στο Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Κάτι πήγε στραβά, Παρακαλώ ανανεώστε την σελίδα...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Μπορείτε να συνομιλείτε με τους πελάτες σας από το νέο κανάλι. Καλή υποστήριξη",
"BUTTON_TEXT": "Μετάβαση",
"MORE_SETTINGS": "Περισσότερες ρυθμίσεις",
- "WEBSITE_SUCCESS": "Επιτυχής δημιουργία του καναλιού ιστοσελίδας. Αντιγράψτε τον κώδικα που παρουσιάζεται παρακάτω, και τοποθετήστε τον στην ιστοσελίδα σας. Την επόμενη φορά που κάποιος πελάτης χρησιμοποιήσει το 'live chat', η συνομιλία θα εμφανιστεί στο κιβώτιο εισερχομένων σας."
+ "WEBSITE_SUCCESS": "Επιτυχής δημιουργία του καναλιού ιστοσελίδας. Αντιγράψτε τον κώδικα που παρουσιάζεται παρακάτω, και τοποθετήστε τον στην ιστοσελίδα σας. Την επόμενη φορά που κάποιος πελάτης χρησιμοποιήσει το 'live chat', η συνομιλία θα εμφανιστεί στο κιβώτιο εισερχομένων σας.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Εκ νέου εξουσιοδότηση",
"VIEW": "Προβολή",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Ανενεργό"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ενεργό",
- "DISABLED": "Ανενεργό"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Ενεργοποίηση"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Φόρμα Προ-Συνομιλίας",
"BUSINESS_HOURS": "Ώρες Εργασίας",
"WIDGET_BUILDER": "Δημιουργός Widget",
- "BOT_CONFIGURATION": "Ρυθμίσεις Bot"
+ "BOT_CONFIGURATION": "Ρυθμίσεις Bot",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Ζωντανά"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Ρυθμίσεις",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Κώδικας (Script)",
"MESSENGER_SUB_HEAD": "Τοποθετήσετε αυτόν τον κώδικα μέσα στο body tag της ιστοσελίδας σας",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Πράκτορες",
"INBOX_AGENTS_SUB_TEXT": "Προσθέστε ή αφαιρέστε πράκτορες σε αυτό το κιβώτιο",
"AGENT_ASSIGNMENT": "Ανάθεση Συνομιλίας",
@@ -485,14 +778,13 @@
"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 αν η διεύθυνση ηλεκτρονικού ταχυδρομείου επαφής είναι διαθέσιμη.",
- "LOCK_TO_SINGLE_CONVERSATION": "Κλείδωμα σε μία μόνο συζήτηση",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ενεργοποίηση ή απενεργοποίηση πολλαπλών συνομιλιών για την ίδια επαφή σε αυτά τα εισερχόμενα",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ρυθμίσεις Κιβωτίου",
"INBOX_UPDATE_SUB_TEXT": "Ενημερώστε τις ρυθμίσεις του κιβωτίου σας",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ενεργοποιήστε ή απενεργοποιήστε την αυτόματη αντιστοίχιση των νέων συζητήσεων στους πράκτορες αυτού του κιβωτίου.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Χρησιμοποιήστε το διακριτικό `inbox_identifier` που εμφανίζεται εδώ για τον έλεγχο ταυτότητας των πελατών API.",
"FORWARD_EMAIL_TITLE": "Προώθηση στο email",
"FORWARD_EMAIL_SUB_TEXT": "Προώθηση των email σας στην ακόλουθη διεύθυνση email.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Επιτρέψτε τα μηνύματα μετά την επίλυση της συνομιλίας",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Επιτρέψτε στους τελικούς χρήστες να στέλνουν μηνύματα ακόμη και μετά την επίλυση της συζήτησης.",
"WHATSAPP_SECTION_SUBHEADER": "Αυτό το κλειδί API χρησιμοποιείται για την ενσωμάτωση με τα API WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "Κλειδί API",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Ενημέρωση",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Σύνδεση",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "Token Επαλήθευσης Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Κανένα",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Παρακαλώ εισάγετε μια τιμή μεγαλύτερη από 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Περιορισμός του μέγιστου αριθμού συνομιλιών από αυτά τα εισερχόμενα που μπορούν να εκχωρηθούν αυτόματα σε έναν πράκτορα"
},
+ "ASSIGNMENT": {
+ "TITLE": "Ανάθεση Συνομιλίας",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ενεργή",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Άκυρο",
+ "CONFIRM_DELETE": "Διαγραφή",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Εκ νέου εξουσιοδότηση",
"SUBTITLE": "Η σύνδεση Facebook έχει λήξει, παρακαλώ ξανασυνδεθείτε στο Facebook για να συνεχίσετε",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Γλώσσα",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Πίσω"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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 σας",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Μήνυμα μη διαθεσιμότητας για τους επισκέπτες",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Ημέρα",
+ "AVAILABILITY": "Διαθεσιμότητα",
+ "HOURS": "Hours",
"ENABLE": "Ενεργοποιήσετε τη διαθεσιμότητα για αυτήν την ημέρα",
"UNAVAILABLE": "Μη διαθέσιμος",
- "HOURS": "ώρες",
"VALIDATION_ERROR": "Ο χρόνος έναρξης πρέπει να είναι πριν το χρόνο λήξης.",
"CHOOSE": "Επιλέξτε"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Για να ενεργοποιήσετε το SMTP, παρακαλώ ρυθμίστε το IMAP.",
"UPDATE": "Ενημέρωση ρυθμίσεων IMAP",
"TOGGLE_AVAILABILITY": "Ενεργοποίηση ρυθμίσεων IMAP για αυτά τα εισερχόμενα",
- "TOGGLE_HELP": "Η ενεργοποίηση του IMAP θα βοηθήσει το χρήστη να λάβει email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "Οι ρυθμίσεις IMAP ενημερώθηκαν επιτυχώς",
"ERROR_MESSAGE": "Αδυναμία ενημέρωσης των ρυθμίσεων IMAP"
@@ -606,7 +1042,8 @@
"LABEL": "Κωδικός",
"PLACE_HOLDER": "Κωδικός"
},
- "ENABLE_SSL": "Ενεργοποίηση SSL"
+ "ENABLE_SSL": "Ενεργοποίηση SSL",
+ "AUTH_MECHANISM": "Πιστοποίηση"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Σε μία ημέρα"
},
"WIDGET_COLOR_LABEL": "Χρώμα Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Θέση Φυσαλίδας Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Τύπος Φυσαλίδας Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Τύπος:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Συνομιλήστε μαζί μας",
- "LABEL": "Τίτλος Εκκίνησης Φυσαλίδας Widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Συνομιλήστε μαζί μας"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Προεπιλογή",
- "CHAT": "Συνομιλία"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Τυπικά έχετε απάντηση σε μερικά λεπτά",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Κανάλι API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/index.js b/app/javascript/dashboard/i18n/locale/el/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/el/index.js
+++ b/app/javascript/dashboard/i18n/locale/el/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/el/integrationApps.json b/app/javascript/dashboard/i18n/locale/el/integrationApps.json
index bb88b8c37..7eb7aaae1 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Λήψη Indegrations",
- "NO_HOOK_CONFIGURED": "Δεν υπάρχουν %{integrationId} integrations ρυθμισμένες σε αυτόν το λογαριασμό.",
+ "NO_HOOK_CONFIGURED": "Δεν υπάρχουν {integrationId} integrations ρυθμισμένες σε αυτόν το λογαριασμό.",
"HEADER": "Εφαρμογές",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ενεργό",
"DISABLED": "Ανενεργό"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Λήψη Integrations",
"INBOX": "Εισερχόμενα",
+ "ACTIONS": "Ενέργειες",
"DELETE": {
"BUTTON_TEXT": "Διαγραφή"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Επιλογή Εισερχομένων"
},
"SUBMIT": "Δημιουργία",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Άκυρο"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Αποσύνδεση"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Το Dialogflow είναι μια φυσική πλατφόρμα κατανόησης γλωσσών που διευκολύνει το σχεδιασμό και την ενσωμάτωση ενός περιβάλλοντος χρήστη συνομιλίας στην εφαρμογή για το κινητό σας, web εφαρμογή, συσκευή, bot, διαδραστικό σύστημα απόκρισης φωνής, κ. τ. λ.
Το Dialogflow με το %{installationName} σάς επιτρέπει να ρυθμίσετε ένα bot ροής διαλόγου με τα εισερχόμενά σας, το οποίο επιτρέπει στο bot να χειρίζεται αρχικά τα ερωτήματα και να τα παραδίδει σε έναν πράκτορα όταν χρειάζεται. Η ροή του διαλόγου μπορεί να χρησιμοποιηθεί για να καθορίσει ροές, να μειώσει τον φόρτο εργασίας των πρακτόρων παρέχοντας συχνές ερωτήσεις κλπ.
Για να προσθέσετε το DialogFlow, πρέπει να δημιουργήσετε έναν λογαριασμό υπηρεσίας στην κονσόλα του έργου σας στη Google και να μοιραστείτε τα διαπιστευτήρια. Για περισσότερες πληροφορίες, ανατρέξτε στα έγγραφα ροής διαλόγου."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/integrations.json b/app/javascript/dashboard/i18n/locale/el/integrations.json
index 7d308f070..6f2f46697 100644
--- a/app/javascript/dashboard/i18n/locale/el/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/el/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Άκυρο",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Ενοποιήσεις",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Εγγεγραμμένα Συμβάντα",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Άκυρο",
"DESC": "Τα συμβάντα Webhook μας εφοδιάζουν με πληροφορίες πραγματικού χρόνου σχετικά με το τι συμβαίνει στο λογαριασμό σας στο Chatwoot. Παρακαλώ εισάγετε ένα έγκυρο URL στην σχετική ρύθμιση.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Σύνδεσμος Webhook",
- "PLACEHOLDER": "Παράδειγμα: https://www.hmu.gr/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Παρακαλώ εισάγετε ένα έγκυρο URL"
},
"EDIT_SUBMIT": "Ενημέρωση Webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Δεν έχουν δημιουργηθεί webhooks για αυτόν το λογαριασμό.",
"TITLE": "Διαχείριση webhooks",
- "TABLE_HEADER": [
- "ΣΥΝΔΕΣΜΟΣ Webhook",
- "ΕΝΕΡΓΕΙΕΣ"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "ΣΥΝΔΕΣΜΟΣ Webhook",
+ "ACTIONS": "Ενέργειες"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Επεξεργασία",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Επιβεβαίωση Διαγραφής",
- "MESSAGE": "Είστε βέβαιοι να διαγράψετε το webhook? (%{webhookURL})",
+ "MESSAGE": "Είστε βέβαιοι να διαγράψετε το webhook? ({webhookURL})",
"YES": "Ναι, Διέγραψε ",
"NO": "Όχι, Κράτησε τον/την"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Διαγραφή",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Χρήση Slack Integration",
- "BODY": "
Το Chatwoot θα συγχρονίσει τώρα όλες τις εισερχόμενες συνομιλίες στο κανάλι πελατών-συνομιλιών μέσα στο slack χώρο εργασίας σας.
Απάντηση σε μια συνομιλία από συνομιλίες πελατών το κανάλι slack θα δημιουργήσει μια απάντηση για στον πελάτη μέσω chatwoot.
Ξεκινήστε τις απαντήσεις με το note: για να δημιουργήσετε ιδιωτικές σημειώσεις αντί για απαντήσεις.
Αν ο χρήστης στο slack έχει προφίλ πράκτορα στο chatwoot με το ίδιο email, οι απαντήσεις θα συσχετιστούν ανάλογα.
Εφόσον δεν έχει προφίλ συνδεδεμένου πράκτορα, οι απαντήσεις θα γίνουν από το προφίλ bot.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Προσθήκη νέας εφαρμογής Dashboard",
"SIDEBAR_TXT": "Εφαρμογές Dashboard
Οι εφαρμογές Dashboard επιτρέπουν σε οργανισμούς να ενσωματώσουν μια εφαρμογή μέσα στο ταμπλό Chatwoot για να παρέχουν το πλαίσιο για τους πράκτορες υποστήριξης πελατών. Αυτό το χαρακτηριστικό σας επιτρέπει να δημιουργήσετε μια εφαρμογή ανεξάρτητα και ενσωματωμένη που μέσα στον πίνακα ελέγχου για να παρέχει πληροφορίες χρήστη, τις παραγγελίες τους, ή το ιστορικό προηγούμενων πληρωμών τους.
Όταν ενσωματώσετε την εφαρμογή σας χρησιμοποιώντας το Dashboard στο Chatwoot, η εφαρμογή σας θα πάρει το πλαίσιο της συνομιλίας και θα επικοινωνήσει ως ένα παράθυρο εκδήλωσης. Εφαρμόστε έναν ακροατή για το γεγονός του μηνύματος στη σελίδα σας για να λάβετε το πλαίσιο.
Για να προσθέσετε μια νέα εφαρμογή ταμπλό, κάντε κλικ στο κουμπί 'Προσθήκη μιας νέας εφαρμογής Dashboard'.
",
"DESCRIPTION": "Οι εφαρμογές Dashboard επιτρέπουν στους οργανισμούς να ενσωματώσουν μια εφαρμογή μέσα στον πίνακα ελέγχου για να παρέχουν το περιεχόμενο για τους πράκτορες υποστήριξης πελατών. Αυτή η λειτουργία σας επιτρέπει να δημιουργήσετε μια εφαρμογή ανεξάρτητα και ενσωματωμένη που θα παρέχει πληροφορίες χρήστη, τις παραγγελίες τους, ή το ιστορικό προηγούμενων πληρωμών τους.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Δεν έχουν δημιουργηθεί εφαρμογές Dashboard για αυτόν το λογαριασμό",
"LOADING": "Λήψη εφαρμογών dashboard ...",
- "TABLE_HEADER": [
- "Όνομα",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Ενέργειες"
+ },
"EDIT_TOOLTIP": "Επεξεργασία εφαρμογής",
"DELETE_TOOLTIP": "Διαγραφή εφαρμογής"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Ναι, Διέγραψε την",
"CONFIRM_NO": "Όχι, Κράτησε την",
"TITLE": "Επιβεβαίωση Διαγραφής",
- "MESSAGE": "Είστε βέβαιοι να διαγράψετε την εφαρμογή - %{appName};",
+ "MESSAGE": "Είστε βέβαιοι να διαγράψετε την εφαρμογή - {appName};",
"API_SUCCESS": "Η εφαρμογή dashboard διαγράφηκε επιτυχώς",
"API_ERROR": "Δεν μπορούμε να διαγράψουμε την εφαρμογή. Παρακαλώ δοκιμάστε ξανά αργότερα"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Δημιουργία",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Σύνδεσμος",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Τίτλος",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Ο τίτλος είναι απαραίτητος"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Ομάδα",
+ "PLACEHOLDER": "Επιλογή ομάδας",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Ετικέτα",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Κατάσταση",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Κατάσταση",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Ετικέτες",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Άκυρο"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Μάθετε περισσότερα",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Βοηθοί",
+ "SWITCH_ASSISTANT": "Εναλλαγή μεταξύ βοηθών",
+ "NEW_ASSISTANT": "Δημιουργία Βοηθού",
+ "EMPTY_LIST": "Δεν βρέθηκαν βοηθοί, παρακαλώ δημιουργήστε έναν για να ξεκινήσετε"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Ξεκινήστε με τον Copilot",
+ "KICK_OFF_MESSAGE": "Χρειάζεστε μια γρήγορη περίληψη, θέλετε να ελέγξετε παλιές συνομιλίες ή να συντάξετε μια καλύτερη απάντηση; Ο Copilot είναι εδώ για να επιταχύνει τα πράγματα.",
+ "SEND_MESSAGE": "Αποστολή μηνύματος...",
+ "EMPTY_MESSAGE": "Παρουσιάστηκε σφάλμα κατά τη δημιουργία της απάντησης. Προσπαθήστε ξανά.",
+ "LOADER": "Ο Captain σκέφτεται",
+ "YOU": "You",
+ "USE": "Χρησιμοποίησε αυτό",
+ "RESET": "Επαναφορά",
+ "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 κορυφαίες επαφές. Συμπεριλάβετε όνομα, email ή αριθμό τηλεφώνου (αν είναι διαθέσιμο), τελευταία φορά που εμφανίστηκαν, ετικέτες (αν υπάρχουν)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Βοηθός",
+ "MESSAGE_PLACEHOLDER": "Πληκτρολογήστε το μήνυμά σας...",
+ "HEADER": "Παιδική Χαρά",
+ "DESCRIPTION": "Χρησιμοποιήστε αυτήν την παιδική χαρά για να στείλετε μηνύματα στον βοηθό σας και να ελέγξετε αν ανταποκρίνεται με ακρίβεια, γρήγορα και με τον τόνο που περιμένετε.",
+ "CREDIT_NOTE": "Τα μηνύματα που στέλνονται εδώ θα μετρήσουν στα credits του Captain σας."
+ },
+ "PAYWALL": {
+ "TITLE": "Αναβαθμίστε για να χρησιμοποιήσετε το Captain AI",
+ "AVAILABLE_ON": "Ο Captain δεν είναι διαθέσιμος στο δωρεάν πακέτο.",
+ "UPGRADE_PROMPT": "Αναβαθμίστε το πακέτο σας για να αποκτήσετε πρόσβαση στους βοηθούς μας, τον copilot και άλλα.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Το Captain AI είναι διαθέσιμο μόνο στα Enterprise πακέτα.",
+ "UPGRADE_PROMPT": "Αναβαθμίστε το πακέτο σας για να αποκτήσετε πρόσβαση στους βοηθούς μας, τον copilot και άλλα.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Έχετε χρησιμοποιήσει πάνω από το 80% του ορίου απαντήσεών σας. Για να συνεχίσετε να χρησιμοποιείτε το Captain AI, παρακαλώ αναβαθμίστε.",
+ "DOCUMENTS": "Έχετε φτάσει στο όριο εγγράφων. Αναβαθμίστε για να συνεχίσετε να χρησιμοποιείτε το Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Άκυρο",
+ "CREATE": "Δημιουργία",
+ "EDIT": "Ενημέρωση"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "Όνομα",
+ "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": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Ρυθμίσεις",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Διαγραφή"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Διαγραφή"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Διαγραφή"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Τίτλος",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Δημιουργία",
+ "CANCEL": "Άκυρο"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Άκυρο",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Διαγραφή",
+ "BULK_SYNC_BUTTON": "Ανανέωση",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Κανένα",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Κλειδί API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Κωδικός",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Τύπος"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Αριθμός",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Υποχρεωτικό"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Διαγραφή",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Όλες"
+ },
+ "STATUS": {
+ "TITLE": "Κατάσταση",
+ "PENDING": "Εκκρεμεί",
+ "APPROVED": "Approved",
+ "ALL": "Όλες"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Επεξεργασία",
+ "DELETE_RESPONSE": "Διαγραφή"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Αποσύνδεση"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Εισερχόμενα",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
index dbdd5a431..3675781dc 100644
--- a/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/el/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Ετικέτες",
"HEADER_BTN_TXT": "Προσθήκη Ετικέτας",
"LOADING": "Λήψη ετικετών",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ετικετών...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Δεν υπάρχουν αντικείμενα να ταιριάζουν με αυτό το ερώτημα",
- "SIDEBAR_TXT": "Ετικέτες
Οι ετικέτες βοηθούν στην κατηγοριοποίηση των συνομιλιών, και στην απόδοση προτεραιότητας. Μπορείτε να προσθέσετε ετικέτες από το πλευρικό μενού..
Οι Ετικέτες είναι συνδεδεμένες με τον λογαριασμό Οι ετικέτες συνδέονται με τον λογαριασμό και μπορούν να χρησιμοποιηθούν για τη δημιουργία προσαρμοσμένων ροών εργασίας στον οργανισμό σας. Μπορείτε να αντιστοιχίσετε χρώμα σε μια ετικέτα, διευκολύνοντας τον προσδιορισμό της. Μπορείτε επίσης να εμφανίσετε την ετικέτα στην πλευρική γραμμή για να φιλτράρετε εύκολα τις συνομιλίες.
",
"LIST": {
"404": "Δεν υπάρχουν ετικέτες διαθέσιμες σε αυτόν τον λογαριασμό.",
"TITLE": "Διαχείριση Ετικετών",
"DESC": "Οι ετικέτες σάς επιτρέπουν να ομαδοποιήσετε τις συνομιλίες.",
- "TABLE_HEADER": [
- "Όνομα",
- "Περιγραφή",
- "Χρώμα"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "DESCRIPTION": "Περιγραφή",
+ "COLOR": "Χρώμα",
+ "ACTION": "Ενέργειες"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Προσθήκη Ετικέτας",
diff --git a/app/javascript/dashboard/i18n/locale/el/login.json b/app/javascript/dashboard/i18n/locale/el/login.json
index 14b74d076..8d3be04f5 100644
--- a/app/javascript/dashboard/i18n/locale/el/login.json
+++ b/app/javascript/dashboard/i18n/locale/el/login.json
@@ -3,7 +3,7 @@
"TITLE": "Είσοδος στο Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email π.χ.: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Ξεχάσατε τον κωδικό;",
"CREATE_NEW_ACCOUNT": "Δημιουργία νέου Λογαριασμού",
- "SUBMIT": "Είσοδος"
+ "SUBMIT": "Είσοδος",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/macros.json b/app/javascript/dashboard/i18n/locale/el/macros.json
index 9679aa084..c3fcd50ad 100644
--- a/app/javascript/dashboard/i18n/locale/el/macros.json
+++ b/app/javascript/dashboard/i18n/locale/el/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Μακροεντολές",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Προσθήκη νέας μακροεντολής",
"HEADER_BTN_TXT_SAVE": "Αποθήκευση μακροεντολής",
"LOADING": "Λήψη μακροεντολών",
- "SIDEBAR_TXT": "Macros
Μια μακροεντολή είναι ένα σύνολο αποθηκευμένων ενεργειών που βοηθούν τους πράκτορες εξυπηρέτησης πελατών να ολοκληρώσουν εύκολα εργασίες. Οι πράκτορες μπορούν να ορίσουν ένα σύνολο ενεργειών όπως η σήμανση μιας συνομιλίας με μια ετικέτα, η αποστολή της μεταγραφής μέσω ηλεκτρονικού ταχυδρομείου, η ενημέρωση μιας προσαρμοζόμενης ιδίότητας, κλπ. όλες αυτές οι ενέργειες μπορούν να να γίνουν με ένα απλό κλικ. Όταν οι πράκτορες εκτελούν την μακροεντολή, οι ενέργειες θα εκτελούνται διαδοχικά με τη σειρά που έχουν οριστεί. Οι μακροεντολές βελτιώνουν την παραγωγικότητα και αυξάνουν τη συνοχή των ενεργειών.
Μια μακροεντολή μπορεί να είναι χρήσιμη με 2 τρόπους.
Ως βοηθός πράκτορα: Εάν ένας πράκτορας εκτελεί ένα σύνολο ενεργειών πολλές φορές, μπορεί να το αποθηκεύσει ως μακροεντολή και να εκτελέσει όλες τις ενέργειες μαζί χρησιμοποιώντας ένα μόνο κλικ.
Ως επιλογή να ανατεθεί σε ένα μέλος της ομάδας: Κάθε πράκτορας πρέπει να εκτελεί πολλά διαφορετικά checks/actions κατά τη διάρκεια κάθε συνομιλίας. Κατά την ανάθεση σε ένα νέο μέλος της ομάδας υποστήριξης θα είναι εύκολο εάν οι προκαθορισμένες μακροεντολές είναι διαθέσιμες στο λογαριασμό. Αντί να περιγράφει λεπτομερώς κάθε βήμα, ο επικεφαλής ομάδας μπορεί να υποδυκνείει τις μακροεντολές που θα χρησιμοποιούνται σε διαφορετικά σενάρια.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Κάτι πήγε στραβά. Παρακαλώ προσπαθήστε ξανά",
"ORDER_INFO": "Μακροεντολές θα εκτελεστούν με τη σειρά που θα προσθέσετε τις ενέργειές σας. Μπορείτε να τις αναδιατάξετε σύροντάς τις από τη λαβή δίπλα σε κάθε κόμβο.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Όνομα",
- "Δημιουργήθηκε από",
- "Τελευταία ενημέρωση από",
- "Ορατότητα"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Όνομα",
+ "CREATED BY": "Δημιουργήθηκε από",
+ "LAST_UPDATED_BY": "Τελευταία ενημέρωση από",
+ "VISIBILITY": "Ορατότητα",
+ "ACTIONS": "Ενέργειες"
+ },
"404": "Δεν βρέθηκαν μακροεντολές"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Παρουσιάστηκε σφάλμα κατά τη διαγραφή της μακροεντολής. Παρακαλώ δοκιμάστε ξανά αργότερα"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Επεξεργασία μακροεντολής",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Ορατότητα Μακροεντολής",
"GLOBAL": {
"LABEL": "Δημόσια",
- "DESCRIPTION": "Αυτή η μακροεντολή είναι διαθέσιμη δημοσίως για όλους τους πράκτορες σε αυτόν τον λογαριασμό."
+ "DESCRIPTION": "Αυτή η μακροεντολή είναι διαθέσιμη δημοσίως για όλους τους πράκτορες σε αυτόν τον λογαριασμό.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Ιδιωτική",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Εκτέλεση",
"PREVIEW": "Προεπισκόπηση Μακροεντολής",
"EXECUTED_SUCCESSFULLY": "Η μακροεντολή εκτελέστηκε επιτυχώς"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Απαιτείται τιμή",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Κανένα",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/mfa.json b/app/javascript/dashboard/i18n/locale/el/mfa.json
new file mode 100644
index 000000000..c9af17f90
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Ενεργό",
+ "DISABLED": "Ανενεργό",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Αντιγραφή",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Άκυρο",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Κατέβασμα",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Κωδικός",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Άκυρο",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Άκυρο",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/onboarding.json b/app/javascript/dashboard/i18n/locale/el/onboarding.json
new file mode 100644
index 000000000..5c02b2334
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Γλώσσα",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Επιλέξτε ζώνη ώρας",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Αποθηκεύεται...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/report.json b/app/javascript/dashboard/i18n/locale/el/report.json
index c9d5a1a06..80f2c0aae 100644
--- a/app/javascript/dashboard/i18n/locale/el/report.json
+++ b/app/javascript/dashboard/i18n/locale/el/report.json
@@ -3,7 +3,7 @@
"HEADER": "Συζητήσεις",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
- "DOWNLOAD_AGENT_REPORTS": "Κατέβασμα αναφορών πράκτορα",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Χρόνος πρώτης ανταπόκρισης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι %{metricValue} (βάσει %{conversationCount} συνομιλίων)"
+ "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι {metricValue} (βάσει {conversationCount} συνομιλίων)"
},
"RESOLUTION_TIME": {
"NAME": "Χρόνος ανάλυσης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Χρόνος Ανάλυσης είναι %{metricValue} (βασίζεται στις %{conversationCount} συνομιλίες)"
+ "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι {metricValue} (βασίζεται στις {conversationCount} συνομιλίες)"
},
"RESOLUTION_COUNT": {
"NAME": "Αριθμός Αναλύσεων",
"DESC": "(Σύνολο)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Αριθμός Αναλύσεων",
+ "DESC": "(Σύνολο)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(Σύνολο)"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Τελευταίες 7 ημέρες",
+ "LAST_14_DAYS": "Τελευταίες 14 ημέρες",
"LAST_30_DAYS": "Τελευταίες 30 ημέρες",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Τελευταίοι 3 μήνες",
"LAST_6_MONTHS": "Τελευταίοι 6 μήνες",
"LAST_YEAR": "Τελευταίο έτος",
"CUSTOM_DATE_RANGE": "Προσαρμοσμένο εύρος ημερομηνιών"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Τελευταίες 7 ημέρες"
- },
- {
- "id": 1,
- "name": "Τελευταίες 30 ημέρες"
- },
- {
- "id": 2,
- "name": "Τελευταίοι 3 μήνες"
- },
- {
- "id": 3,
- "name": "Τελευταίοι 6 μήνες"
- },
- {
- "id": 4,
- "name": "Τελευταίο έτος"
- },
- {
- "id": 5,
- "name": "Προσαρμοσμένο εύρος ημερομηνιών"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Εφαρμογή",
"PLACEHOLDER": "Επιλέξτε εύρος ημερομηνιών"
@@ -130,14 +116,28 @@
"groupBy": "Μήνα"
}
],
- "BUSINESS_HOURS": "Ώρες Εργασίας"
+ "BUSINESS_HOURS": "Ώρες Εργασίας",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Δεν βρέθηκαν αποτελέσματα"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Επισκόπηση Πρακτόρων",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_AGENT_REPORTS": "Κατέβασμα αναφορών πράκτορα",
"FILTER_DROPDOWN_LABEL": "Επιλογή πράκτορα",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Αναζήτηση πράκτορων"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -155,13 +155,13 @@
"NAME": "Χρόνος πρώτης ανταπόκρισης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι %{metricValue} (βάσει %{conversationCount} συνομιλίων)"
+ "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι {metricValue} (βάσει {conversationCount} συνομιλίων)"
},
"RESOLUTION_TIME": {
"NAME": "Χρόνος ανάλυσης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Χρόνος Ανάλυσης είναι %{metricValue} (βασίζεται στις %{conversationCount} συνομιλίες)"
+ "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι {metricValue} (βασίζεται στις {conversationCount} συνομιλίες)"
},
"RESOLUTION_COUNT": {
"NAME": "Αριθμός Αναλύσεων",
@@ -201,10 +201,16 @@
},
"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": "Λήψη αναφορών ετικέτας",
"FILTER_DROPDOWN_LABEL": "Επιλογή Ετικέτας",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Αναζήτηση ετικετών"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -222,13 +228,13 @@
"NAME": "Χρόνος πρώτης ανταπόκρισης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι %{metricValue} (βάσει %{conversationCount} συνομιλίων)"
+ "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι {metricValue} (βάσει {conversationCount} συνομιλίων)"
},
"RESOLUTION_TIME": {
"NAME": "Χρόνος ανάλυσης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Χρόνος Ανάλυσης είναι %{metricValue} (βασίζεται στις %{conversationCount} συνομιλίες)"
+ "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι {metricValue} (βασίζεται στις {conversationCount} συνομιλίες)"
},
"RESOLUTION_COUNT": {
"NAME": "Αριθμός Αναλύσεων",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Επισκόπηση Εισερχομένων",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_INBOX_REPORTS": "Λήψη αναφορών εισερχομένων",
"FILTER_DROPDOWN_LABEL": "Επιλογή Εισερχομένων",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -289,13 +303,13 @@
"NAME": "Χρόνος πρώτης ανταπόκρισης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι %{metricValue} (βάσει %{conversationCount} συνομιλίων)"
+ "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι {metricValue} (βάσει {conversationCount} συνομιλίων)"
},
"RESOLUTION_TIME": {
"NAME": "Χρόνος ανάλυσης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Χρόνος Ανάλυσης είναι %{metricValue} (βασίζεται στις %{conversationCount} συνομιλίες)"
+ "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι {metricValue} (βασίζεται στις {conversationCount} συνομιλίες)"
},
"RESOLUTION_COUNT": {
"NAME": "Αριθμός Αναλύσεων",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Επισκόπηση Ομάδας",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Φόρτωση δεδομένων γραφήματος...",
"NO_ENOUGH_DATA": "Δεν έχουν ληφθεί αρκετά σημεία δεδομένων για την δημιουργία της αναφοράς, Παρακαλώ προσπαθήστε αργότερα.",
"DOWNLOAD_TEAM_REPORTS": "Λήψη αναφορών ομάδας",
"FILTER_DROPDOWN_LABEL": "Επιλογή Ομάδας",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Αναζήτηση ομάδων"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Συζητήσεις",
@@ -356,13 +379,13 @@
"NAME": "Χρόνος πρώτης ανταπόκρισης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι %{metricValue} (βάσει %{conversationCount} συνομιλίων)"
+ "TOOLTIP_TEXT": "Ο πρώτος χρόνος απόκρισης είναι {metricValue} (βάσει {conversationCount} συνομιλίων)"
},
"RESOLUTION_TIME": {
"NAME": "Χρόνος ανάλυσης",
"DESC": "(Μ.Ο.)",
"INFO_TEXT": "Συνολικός αριθμός συνομιλιών που χρησιμοποιήθηκαν για τον υπολογισμό:",
- "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι %{metricValue} (βασίζεται στις %{conversationCount} συνομιλίες)"
+ "TOOLTIP_TEXT": "Ο Χρόνος Ανάλυσης είναι {metricValue} (βασίζεται στις {conversationCount} συνομιλίες)"
},
"RESOLUTION_COUNT": {
"NAME": "Αριθμός Αναλύσεων",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Αναφορές CSAT",
- "NO_RECORDS": "Δεν υπάρχουν διαθέσιμες απαντήσεις ερευνών CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Λήψη αναφορών CSAT",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Αναζήτηση πράκτορων",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Αναζήτηση ομάδων",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Επιλέξτε Πράκτορες"
+ "LABEL": "Πράκτορας"
+ },
+ "INBOXES": {
+ "LABEL": "Εισερχόμενα"
+ },
+ "TEAMS": {
+ "LABEL": "Ομάδα"
+ },
+ "RATINGS": {
+ "LABEL": "Αξιολόγηση"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Επαφές",
- "AGENT_NAME": "Αντιστοιχισμένος πράκτορας",
+ "AGENT_NAME": "Πράκτορας",
"RATING": "Αξιολόγηση",
- "FEEDBACK_TEXT": "Σχόλιο ανατροφοδότησης"
- }
+ "FEEDBACK_TEXT": "Σχόλιο ανατροφοδότησης",
+ "CONVERSATION": "Συνομιλία",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Συνολικές απαντήσεις",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Ποσοστό ανταπόκρισης",
"TOOLTIP": "Συνολικός αριθμός απαντήσεων / Συνολικός αριθμός μηνυμάτων έρευνας CSAT * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Άκυρο",
+ "SAVING": "Αποθηκεύεται...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Συζητήσεις αντιπροσώπων",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Δεν υπάρχουν συνομιλίες από πράκτορες",
"TABLE_HEADER": {
"AGENT": "Πράκτορας",
- "OPEN": "ΑΝΟΙΓΜΑ",
+ "OPEN": "Ανοιχτές",
+ "UNATTENDED": "Χωρίς Παρακολούθηση",
+ "STATUS": "Κατάσταση"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Ομάδα",
+ "OPEN": "Ανοιχτές",
"UNATTENDED": "Χωρίς Παρακολούθηση",
"STATUS": "Κατάσταση"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Δεν βρέθηκαν αποτελέσματα",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Όνομα Πράκτορα",
+ "INBOXES": "Όνομα Κιβωτίου",
+ "LABELS": "Όνομα ετικέτας",
+ "TEAMS": "Όνομα ομάδας"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Εισερχόμενα",
+ "AGENTS": "Πράκτορας",
+ "LABELS": "Ετικέτα",
+ "TEAMS": "Ομάδα"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Συνομιλία",
+ "AGENT": "Πράκτορας"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Αριθμός Αναλύσεων",
+ "CONVERSATIONS": "Αριθμός συνομιλιών"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/search.json b/app/javascript/dashboard/i18n/locale/el/search.json
index e52cd98dd..27fb2f390 100644
--- a/app/javascript/dashboard/i18n/locale/el/search.json
+++ b/app/javascript/dashboard/i18n/locale/el/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Όλες",
+ "ALL": "All results",
"CONTACTS": "Επαφές",
"CONVERSATIONS": "Συζητήσεις",
- "MESSAGES": "Μηνύματα"
+ "MESSAGES": "Μηνύματα",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Επαφές",
"CONVERSATIONS": "Συζητήσεις",
- "MESSAGES": "Μηνύματα"
+ "MESSAGES": "Μηνύματα",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Αναζήτηση",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "από",
- "EMAIL": "email"
+ "FROM": "Από",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Θέμα",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Τελευταίες 7 ημέρες",
+ "LAST_30_DAYS": "Τελευταίες 30 ημέρες",
+ "LAST_60_DAYS": "Τελευταίες 60 ημέρες",
+ "LAST_90_DAYS": "Τελευταίες 90 ημέρες",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "και",
+ "APPLY": "Εφαρμογή",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Αποστολέας",
+ "IN": "Εισερχόμενα",
+ "AGENTS": "Πράκτορες",
+ "CONTACTS": "Επαφές",
+ "INBOXES": "Κιβώτια Εισερχομένων",
+ "NO_AGENTS": "Δεν βρέθηκαν Πράκτορες",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/settings.json b/app/javascript/dashboard/i18n/locale/el/settings.json
index f35b503c6..9079729db 100644
--- a/app/javascript/dashboard/i18n/locale/el/settings.json
+++ b/app/javascript/dashboard/i18n/locale/el/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Ο κωδικός σας άλλαξε με επιτυχία",
"AFTER_EMAIL_CHANGED": "Το προφίλ σας ενημερώθηκε επιτυχώς, παρακαλώ κάντε είσοδο (login) επειδή τα στοιχεία εισόδου σας έχουν αλλάξει",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Εικόνα Προφίλ",
"ERROR": "Παρακαλώ διορθώστε τα λάθη της φόρμας",
"REMOVE_IMAGE": "Διαγραφή",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Προεπιλογή",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Προσωπική υπογραφή μηνύματος",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Η υπογραφή αποθηκεύτηκε με επιτυχία",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Υπογραφή μηνύματος",
@@ -54,15 +81,45 @@
"NOTE": "Η ενημέρωση του κωδικού κα επαναφέρει τα logins σε όλες τις συσκευές που έχετε συνδεθεί.",
"BTN_TEXT": "Αλλαγή κωδικού πρόσβασης"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Κώδικας Πρόσβασης (Access Token)",
- "NOTE": "Χρησιμοποιείται σε περίπτωση εξωτερικής ενοποίησης της εφαρμογής με κώδικα (API)"
+ "NOTE": "Χρησιμοποιείται σε περίπτωση εξωτερικής ενοποίησης της εφαρμογής με κώδικα (API)",
+ "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": "Ειδοποιήσεις Ήχου",
- "NOTE": "Ενεργοποίηση ηχητικών ειδοποιήσεων για νέα μηνύματα και συνομιλίες.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Κανένα",
+ "MINE": "Assigned",
+ "ALL": "Όλες",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Ειδοποίηση συμβάντων:",
+ "TITLE": "Alert events for conversations",
"NONE": "Κανένα",
"ASSIGNED": "Ανατεθειμένες Συνομιλίες",
"ALL_CONVERSATIONS": "Όλες Οι Συνομιλίες"
@@ -74,7 +131,9 @@
"TITLE": "Συνθήκες προειδοποίησης:",
"CONDITION_ONE": "Αποστολή ειδοποιήσεων ήχου μόνο αν το παράθυρο του προγράμματος περιήγησης δεν είναι ενεργό",
"CONDITION_TWO": "Ειδοποίηση κάθε 30s μέχρι να διαβαστούν όλες οι αντιστοιχισμένες συνομιλίες"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Ειδοποιήσεις Email",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Να στέλνεται ειδοποίηση όταν δημιουργείται μια νέα συνομιλία",
"CONVERSATION_MENTION": "Αποστολή ειδοποιήσεων email όταν αναφέρεστε σε μια συνομιλία",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Αποστολή ειδοποίησης email όταν ένα νέο μήνυμα δημιουργείται σε συνομιλία που έχει αναληφθεί",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Οι προτιμήσεις σας για τις ειδοποιήσεις ενημερώθηκαν",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Αποστολή ειδοποίησης push όταν ένα νέο μήνυμα δημιουργείται σε συνομιλία που έχει αναληφθεί",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Έχετε ενεργοποιήσει τις ειδοποιήσεις push για αυτόν τον browser.",
- "REQUEST_PUSH": "Ενεργοποποίηση των ειδοποιήσεων push"
+ "REQUEST_PUSH": "Ενεργοποποίηση των ειδοποιήσεων push",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Εικόνα Προφίλ"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Διαθεσιμότητα",
- "STATUSES_LIST": [
- "Στην Γραμμή",
- "Απασχολημένος",
- "Εκτός"
- ],
+ "STATUS": {
+ "ONLINE": "Στην Γραμμή",
+ "BUSY": "Απασχολημένος",
+ "OFFLINE": "Εκτός"
+ },
"SET_AVAILABILITY_SUCCESS": "Η διαθεσιμότητα ορίστηκε με επιτυχία",
- "SET_AVAILABILITY_ERROR": "Αδυναμία ορισμού διαθεσιμότητας, παρακαλώ προσπαθήστε ξανά"
+ "SET_AVAILABILITY_ERROR": "Αδυναμία ορισμού διαθεσιμότητας, παρακαλώ προσπαθήστε ξανά",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "Η διεύθυνση email",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Να αλλάξει",
- "CHANGE_ACCOUNTS": "Αλλαγή Λογαριασμού",
- "CONTACT_SUPPORT": "Υποστήριξη Επαφών",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Επιλέξτε ένα λογαριασμό από την Λίστα",
- "PROFILE_SETTINGS": "Ρυθμίσεις Προφίλ",
- "KEYBOARD_SHORTCUTS": "Συντομεύσεις Πληκτρολογίου",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Κονσόλα",
- "LOGOUT": "Έξοδος (Logout)"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "ημέρες δοκιμαστικής περιόδου απομένουν.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Αναστολή Λογαριασμού",
"MESSAGE": "Ο λογαριασμός σας έχει ανασταλεί. Επικοινωνήστε με την ομάδα υποστήριξης για περισσότερες πληροφορίες."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Κατέβασμα",
"UPLOADING": "Ανέβασμα ...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Η ιστορία δεν είναι πλέον διαθέσιμη."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Η ιστορία δεν είναι πλέον διαθέσιμη.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Δείτε στον χάρτη"
},
"FORM_BUBBLE": {
"SUBMIT": "Καταχώρηση"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Επιβεβαίωση...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Τρέχουσα προβολή:",
"SWITCH": "Εναλλαγή",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Συζητήσεις",
- "INBOX": "Εισερχόμενα",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Όλες Οι Συνομιλίες",
"MENTIONED_CONVERSATIONS": "Αναφορές",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Αναφορές",
"SETTINGS": "Ρυθμίσεις",
"CONTACTS": "Επαφές",
+ "ACTIVE": "Ενεργή",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Κιβώτια Εισερχομένων",
+ "CAPTAIN_SETTINGS": "Ρυθμίσεις",
"HOME": "Αρχική",
"AGENTS": "Πράκτορες",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Νέο Κιβώτιο εισερχόμενων",
"REPORTS_CONVERSATION": "Συζητήσεις",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Καμπάνιες",
"ONGOING": "Σε Εξέλιξη",
"ONE_OFF": "Ένα/μία από",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Πράκτορες",
"REPORTS_LABEL": "Ετικέτες",
"REPORTS_INBOX": "Εισερχόμενα",
"REPORTS_TEAM": "Ομάδα",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Ορίστε τον εαυτό σας ως",
+ "SET_YOUR_AVAILABILITY": "Ορίστε τη διαθεσιμότητά σας",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Επισκόπηση",
- "FACEBOOK_REAUTHORIZE": "Η σύνδεση Facebook έχει λήξει, παρακαλώ ξανασυνδεθείτε στο Facebook για να συνεχίσετε",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "Όλα Τα Άρθρα",
- "MY_ARTICLES": "Τα Άρθρα Μου",
- "DRAFT": "Πρόχειρο",
- "ARCHIVED": "Αρχειοθετημένο",
- "CATEGORY": "Κατηγορία",
- "SETTINGS": "Ρυθμίσεις",
- "CATEGORY_EMPTY_MESSAGE": "Δεν βρέθηκαν κατηγορίες"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Κατηγορίες",
+ "LOCALES": "Γλώσσες",
+ "SETTINGS": "Ρυθμίσεις"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Αυτόματη σήμανση εκτός σύνδεσης",
- "INFO_TEXT": "Αφήστε το σύστημα να σας σηματοδοτήσει αυτόματα εκτός σύνδεσης, όταν δεν χρησιμοποιείτε την εφαρμογή ή τον πίνακα ελέγχου."
+ "INFO_TEXT": "Αφήστε το σύστημα να σας σηματοδοτήσει αυτόματα εκτός σύνδεσης, όταν δεν χρησιμοποιείτε την εφαρμογή ή τον πίνακα ελέγχου.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Ανάγνωση εγγράφων"
+ "DOCS": "Ανάγνωση εγγράφων",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Χαρακτηριστικά",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Χρεώσεις",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Τρέχον Πλάνο",
- "PLAN_NOTE": "Αυτή τη στιγμή έχετε εγγραφεί στο πλάνο **%{plan}** με **%{quantity}** άδειες"
+ "PLAN_NOTE": "Αυτή τη στιγμή έχετε εγγραφεί στο πλάνο **{plan}** με **{quantity}** άδειες",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Διαχειριστείτε τη συνδρομή σας",
"DESCRIPTION": "Δείτε τα προηγούμενα τιμολόγια σας, επεξεργαστείτε τα στοιχεία χρέωσης ή ακυρώστε τη συνδρομή σας.",
"BUTTON_TXT": "Μετάβαση στην πύλη χρέωσης"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Ανανέωση"
+ },
"CHAT_WITH_US": {
"TITLE": "Χρειάζεστε βοήθεια;",
"DESCRIPTION": "Αντιμετωπίζετε οποιαδήποτε προβλήματα στην τιμολόγηση? Είμαστε εδώ για να βοηθήσουμε.",
"BUTTON_TXT": "Συνομιλήστε μαζί μας"
},
- "NO_BILLING_USER": "Ο λογαριασμός χρέωσης έχει ρυθμιστεί. Παρακαλώ ανανεώστε τη σελίδα και προσπαθήστε ξανά."
+ "NO_BILLING_USER": "Ο λογαριασμός χρέωσης έχει ρυθμιστεί. Παρακαλώ ανανεώστε τη σελίδα και προσπαθήστε ξανά.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Σημείωση:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Άκυρο",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Πίσω",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Ο κώδικας αντιγράφτηκε με επιτυχία στο πρόχειρο",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ιδιοτήτων"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Επίλυση Συνομιλίας",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Επίλυση Συνομιλίας",
+ "CANCEL": "Άκυρο"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ναι",
+ "NO": "Όχι"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ωχ! Δεν μπορέσαμε να βρούμε κανένα λογαριασμό Chatwoot. Παρακαλούμε δημιουργήστε ένα νέο λογαριασμό για να συνεχίσετε.",
@@ -294,7 +624,8 @@
"LABEL": "Όνομα Εταιρείας",
"PLACEHOLDER": "Wayne Α. Ε"
},
- "SUBMIT": "Καταχώρηση"
+ "SUBMIT": "Καταχώρηση",
+ "CANCEL": "Άκυρο"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Πλευρική μπάρα αναφορών",
"MOVE_TO_NEXT_TAB": "Μετακίνηση στην επόμενη καρτέλα στη λίστα συνομιλιών",
"GO_TO_SETTINGS": "Μετάβαση στις ρυθμίσεις",
- "SWITCH_CONVERSATION_STATUS": "Εναλλαγή στην επόμενη κατάσταση συνομιλίας",
"SWITCH_TO_PRIVATE_NOTE": "Αλλαγή σε Ιδιωτική Σημείωση",
"SWITCH_TO_REPLY": "Εναλλαγή σε απάντηση",
"TOGGLE_SNOOZE_DROPDOWN": "Εναλλαγή αναβολής dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / °C.",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Ενεργή",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Επεξεργασία"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Άκυρο"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Κατάσταση:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Προσθήκη"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Επεξεργασία"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Άκυρο"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Περιγραφή:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Προσθήκη"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Διαγραφή",
+ "CANCEL_BUTTON_LABEL": "Άκυρο"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/signup.json b/app/javascript/dashboard/i18n/locale/el/signup.json
index c610bb125..a57dae0ab 100644
--- a/app/javascript/dashboard/i18n/locale/el/signup.json
+++ b/app/javascript/dashboard/i18n/locale/el/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Καταχώρηση",
"TESTIMONIAL_HEADER": "Το μόνο που χρειάζεται είναι ένα βήμα για να προχωρήσουμε",
"TESTIMONIAL_CONTENT": "Είστε ένα βήμα μακριά από την εμπλοκή των πελατών σας, και την εύρεση νέων.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "email εργασίας",
- "PLACEHOLDER": "συμπληρώστε το email εργασίας πχ: papadopoulos@wyane.com",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Παρακαλώ εισάγετε μια έγκυρη διεύθυνση email"
},
"PASSWORD": {
"LABEL": "Κωδικός",
"PLACEHOLDER": "Κωδικός",
"ERROR": "Ο κωδικός είναι πολύ σύντομος",
- "IS_INVALID_PASSWORD": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 1 κεφαλαίο γράμμα, 1 πεζό γράμμα, 1 αριθμό και 1 ειδικό χαρακτήρα"
+ "IS_INVALID_PASSWORD": "Ο κωδικός πρόσβασης πρέπει να περιέχει τουλάχιστον 1 κεφαλαίο γράμμα, 1 πεζό γράμμα, 1 αριθμό και 1 ειδικό χαρακτήρα",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Επιβεβαίωση κωδικού",
"PLACEHOLDER": "Επιβεβαίωση κωδικού",
- "ERROR": "Οι κωδικοί δεν συμφωνούν"
+ "ERROR": "Οι κωδικοί δεν ταιριάζουν."
},
"API": {
- "SUCCESS_MESSAGE": "Επιτυχής καταχώρηση",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Αδυναμία σύνδεσης με τον Woot Server, Παρακαλώ προσπαθήστε αργότερα"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Έχετε ήδη ένα λογαριασμό?"
+ "HAVE_AN_ACCOUNT": "Έχετε ήδη ένα λογαριασμό?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/sla.json b/app/javascript/dashboard/i18n/locale/el/sla.json
index 0b48005df..fce2281c9 100644
--- a/app/javascript/dashboard/i18n/locale/el/sla.json
+++ b/app/javascript/dashboard/i18n/locale/el/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Δεν υπάρχουν δεδομένα που να ταιριάζουν με αυτό το ερώτημα",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Όνομα",
- "Περιγραφή",
- "FRT",
- "NRT",
- "RT",
- "Ώρες Εργασίας"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Υπήρξε ένα σφάλμα, παρακαλώ προσπαθήστε ξανά"
+ },
+ "CONFIRM": {
+ "TITLE": "Επιβεβαίωση Διαγραφής",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ναι, Διέγραψε τον/την ",
+ "NO": "Όχι, Κράτησε τον/την"
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Χρόνος πρώτης ανταπόκρισης",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/el/snooze.json b/app/javascript/dashboard/i18n/locale/el/snooze.json
new file mode 100644
index 000000000..6f7d63b98
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ώρες",
+ "DAY": "ημέρα",
+ "DAYS": "days",
+ "WEEK": "ημέρα",
+ "WEEKS": "weeks",
+ "MONTH": "εβδομάδα",
+ "MONTHS": "months",
+ "YEAR": "μήνα",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "αύριο",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "επόμενη εβδομάδα",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "ημέρα",
+ "DAY": "ημέρα"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/el/teamsSettings.json b/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
index 1cfe735cd..d6bc0da1a 100644
--- a/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/el/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Δημιουργήσετε νέα ομάδα",
"HEADER": "Ομάδες",
- "SIDEBAR_TXT": "Ομάδες
Οι Ομάδες σας επιτρέπουν να οργανώσετε τους πράκτορές σας σε ομάδες με βάση τις ευθύνες τους.
Ένας χρήστης μπορεί να είναι μέλος πολλαπλών ομάδων. Μπορείτε να αναθέσετε συνομιλίες σε μια ομάδα όταν εργάζεστε με συνεργασία.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Αναζήτηση ομάδων...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Δεν έχουν δημιουργηθεί ομάδες σε αυτόν τον λογαριασμό.",
- "EDIT_TEAM": "Επεξεργασία ομάδας"
+ "EDIT_TEAM": "Επεξεργασία ομάδας",
+ "NONE": "Κανένα"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Προσθήκη πρακτόρων στην ομάδα",
- "TITLE": "Προσθήκη πρακτόρων στην ομάδα - %{teamName}",
+ "TITLE": "Προσθήκη πρακτόρων στην ομάδα - {teamName}",
"DESC": "Προσθέστε Πράκτορες στη νέα σας ομάδα. Αυτό σας επιτρέπει να συνεργάζεστε ως ομάδα σε συνομιλίες και να ενημερώνεστε για νέα συμβάντα στην συνομιλία."
},
- "WIZARD": [
- {
- "title": "Δημιουργία",
- "route": "settings_teams_new",
- "body": "Δημιουργήστε μια νέα ομάδα πρακτόρων."
- },
- {
- "title": "Προσθήκη Πρακτόρων",
- "route": "settings_teams_add_agents",
- "body": "Προσθήκη πρακτόρων στην ομάδα."
- },
- {
- "title": "Τέλος",
- "route": "settings_teams_finish",
- "body": "Είσαστε έτοιμοι να ξεκινήσετε!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Δημιουργία",
+ "BODY": "Δημιουργήστε μια νέα ομάδα πρακτόρων."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Προσθήκη Πρακτόρων",
+ "BODY": "Προσθήκη πρακτόρων στην ομάδα."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Τέλος",
+ "BODY": "Είσαστε έτοιμοι να ξεκινήσετε!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Ενημέρωση πρακτόρων στην ομάδα",
- "TITLE": "Προσθήκη πρακτόρων στην ομάδα - %{teamName}",
+ "TITLE": "Προσθήκη πρακτόρων στην ομάδα - {teamName}",
"DESC": "Προσθέστε Πράκτορες στη νέα σας ομάδα. Όλοι αυτοί οι πράκτορες θα ειδοποιηθούν όταν μια συνομιλία ανατεθεί σε αυτήν την ομάδα."
},
- "WIZARD": [
- {
- "title": "Λεπτομέρειες Ομάδας",
- "route": "settings_teams_edit",
- "body": "Αλλαγή ονόματος, περιγραφής και άλλων λεπτομερειών."
- },
- {
- "title": "Επεξεργασία Πρακτόρων",
- "route": "settings_teams_edit_members",
- "body": "Διαχείριση πρακτόρων της ομάδας σας."
- },
- {
- "title": "Τέλος",
- "route": "settings_teams_edit_finish",
- "body": "Είσαστε έτοιμοι να ξεκινήσετε!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Λεπτομέρειες Ομάδας",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Αλλαγή ονόματος, περιγραφής και άλλων λεπτομερειών."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Επεξεργασία Πρακτόρων",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Διαχείριση πρακτόρων της ομάδας σας."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Τέλος",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Είσαστε έτοιμοι να ξεκινήσετε!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Δεν ήταν δυνατή η αποθήκευση των λεπτομερειών της ομάδας. Δοκιμάστε ξανά."
},
"AGENTS": {
- "AGENT": "ΠΡΑΚΤΟΡΑΣ",
- "EMAIL": "EMAIL",
+ "AGENT": "Πράκτορας",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Προσθήκη πρακτόρων",
"ADD_AGENTS": "Προσθήκη πρακτόρων στην ομάδα σας...",
"SELECT": "επιλέξτε",
"SELECT_ALL": "επιλογή όλων των πρακτόρων",
- "SELECTED_COUNT": "%{selected} από τους %{total} πράκτορες επιλέχθηκαν."
+ "SELECTED_COUNT": "{selected} από τους {total} πράκτορες επιλέχθηκαν."
},
"ADD": {
- "TITLE": "Προσθήκη πρακτόρων στην ομάδα - %{teamName}",
+ "TITLE": "Προσθήκη πρακτόρων στην ομάδα - {teamName}",
"DESC": "Προσθέστε Πράκτορες στη νέα σας ομάδα. Αυτό σας επιτρέπει να συνεργάζεστε ως ομάδα σε συνομιλίες και να ενημερώνεστε για νέα συμβάντα στην συνομιλία.",
"SELECT": "επιλέξτε",
"SELECT_ALL": "επιλογή όλων των πρακτόρων",
- "SELECTED_COUNT": "%{selected} από τους %{total} πράκτορες επιλέχθηκαν.",
+ "SELECTED_COUNT": "{selected} από τους {total} πράκτορες επιλέχθηκαν.",
"BUTTON_TEXT": "Προσθήκη πρακτόρων",
"AGENT_VALIDATION_ERROR": "Επιλέξτε τουλάχιστον ένα πράκτορα."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Δεν ήταν δυνατή η διαγραφή της ομάδας. Δοκιμάστε ξανά."
},
"CONFIRM": {
- "TITLE": "Είστε σίγουροι ότι θέλετε να διαγράψετε την ομάδα %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Παρακαλώ πληκτρολογήστε {teamName} για επιβεβαίωση",
"MESSAGE": "Διαγράφοντας την ομάδα θα αφαιρέσετε και τις αναθέσεις συνομιλιών σε αυτήν την ομάδα.",
"YES": "Διαγραφή ",
diff --git a/app/javascript/dashboard/i18n/locale/el/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/el/whatsappTemplates.json
index b9ac424e2..48aa2fbcc 100644
--- a/app/javascript/dashboard/i18n/locale/el/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/el/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Πρότυπα Whatsapp",
- "SUBTITLE": "Επιλέξτε το πρότυπο Whatsapp που θέλετε να στείλετε",
- "TEMPLATE_SELECTED_SUBTITLE": "Επεξεργασία %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Αναζήτηση Προτύπων",
- "NO_TEMPLATES_FOUND": "Δεν βρέθηκαν πρότυπα για",
- "LABELS": {
- "LANGUAGE": "Γλώσσα",
- "TEMPLATE_BODY": "Σώμα Προτύπου",
- "CATEGORY": "Κατηγορία"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Μεταβλητές",
- "VARIABLE_PLACEHOLDER": "Εισάγετε τιμή για %{variable}",
- "GO_BACK_LABEL": "Πίσω",
- "SEND_MESSAGE_LABEL": "Αποστολή μηνύματος",
- "FORM_ERROR_MESSAGE": "Παρακαλώ συμπληρώστε όλες τις μεταβλητές πριν την αποστολή"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Πρότυπα Whatsapp",
+ "SUBTITLE": "Επιλέξτε το πρότυπο Whatsapp που θέλετε να στείλετε",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Αναζήτηση Προτύπων",
+ "NO_TEMPLATES_FOUND": "Δεν βρέθηκαν πρότυπα για",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Κατηγορία",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Γλώσσα",
+ "TEMPLATE_BODY": "Σώμα Προτύπου",
+ "CATEGORY": "Κατηγορία"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Μεταβλητές",
+ "LANGUAGE": "Γλώσσα",
+ "CATEGORY": "Κατηγορία",
+ "VARIABLE_PLACEHOLDER": "Εισάγετε τιμή για {variable}",
+ "GO_BACK_LABEL": "Πίσω",
+ "SEND_MESSAGE_LABEL": "Αποστολή μηνύματος",
+ "FORM_ERROR_MESSAGE": "Παρακαλώ συμπληρώστε όλες τις μεταβλητές πριν την αποστολή",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/el/yearInReview.json b/app/javascript/dashboard/i18n/locale/el/yearInReview.json
new file mode 100644
index 000000000..9e30a453c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/el/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Κλείσιμο",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "συζητήσεις",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Κατέβασμα",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/advancedFilters.json b/app/javascript/dashboard/i18n/locale/en/advancedFilters.json
index 170f01d7f..89143c62a 100644
--- a/app/javascript/dashboard/i18n/locale/en/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/en/advancedFilters.json
@@ -18,17 +18,29 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
+ "CONTACT_SEARCH_PLACEHOLDER": "Search contacts",
+ "CONTACT_FALLBACK": "Contact #{id}",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -39,6 +51,7 @@
"ASSIGNEE_NAME": "Assignee name",
"INBOX_NAME": "Inbox name",
"TEAM_NAME": "Team name",
+ "CONTACT": "Contact",
"CONVERSATION_IDENTIFIER": "Conversation identifier",
"CAMPAIGN_NAME": "Campaign name",
"LABELS": "Labels",
@@ -54,6 +67,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/en/agentBots.json b/app/javascript/dashboard/i18n/locale/en/agentBots.json
index fb744b4a9..c17ec60d0 100644
--- a/app/javascript/dashboard/i18n/locale/en/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/en/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/en/agentMgmt.json b/app/javascript/dashboard/i18n/locale/en/agentMgmt.json
index d01730ed8..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/en/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Add Agent",
"LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -33,7 +36,6 @@
"PLACEHOLDER": "Please select a role",
"ERROR": "Role is required"
},
-
"EMAIL": {
"LABEL": "Email Address",
"PLACEHOLDER": "Please enter an email address of the agent"
@@ -95,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -104,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/en/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/en/attributesMgmt.json
index a2f7386dc..1815e0c72 100644
--- a/app/javascript/dashboard/i18n/locale/en/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts, companies, or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,10 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
},
"LIST": {
- "TABLE_HEADER": ["Name", "Description", "Type", "Key"],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -111,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/auditLogs.json b/app/javascript/dashboard/i18n/locale/en/auditLogs.json
index 8a3fa7715..f85ad2a3e 100644
--- a/app/javascript/dashboard/i18n/locale/en/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/en/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "Activity",
- "Time",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Activity",
+ "TIME": "Time",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
- },
- "MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
- },
- "INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
- },
- "TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
- },
- "ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
+ },
+ "MACRO": {
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
+ },
+ "INBOX_MEMBER": {
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ },
+ "TEAM_MEMBER": {
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ },
+ "ACCOUNT": {
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
+ }
}
}
-}
diff --git a/app/javascript/dashboard/i18n/locale/en/automation.json b/app/javascript/dashboard/i18n/locale/en/automation.json
index 469df1c24..2c4852dc8 100644
--- a/app/javascript/dashboard/i18n/locale/en/automation.json
+++ b/app/javascript/dashboard/i18n/locale/en/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Note",
+ "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",
+ "COMPANY_NAME": "Company",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/bulkActions.json b/app/javascript/dashboard/i18n/locale/en/bulkActions.json
index 6af8316e9..0c8ea34f2 100644
--- a/app/javascript/dashboard/i18n/locale/en/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/en/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/campaign.json b/app/javascript/dashboard/i18n/locale/en/campaign.json
index bbcc463ee..78db922d1 100644
--- a/app/javascript/dashboard/i18n/locale/en/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/en/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/en/cannedMgmt.json
index 71a334d87..246d3f5b3 100644
--- a/app/javascript/dashboard/i18n/locale/en/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/cannedMgmt.json
@@ -1,15 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": ["Short code", "Content", "Actions"]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/en/chatlist.json b/app/javascript/dashboard/i18n/locale/en/chatlist.json
index 1458bf58a..45755892d 100644
--- a/app/javascript/dashboard/i18n/locale/en/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/en/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,12 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
+ },
+ "unread": {
+ "TEXT": "Unread Count: Highest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +100,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +142,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/companies.json b/app/javascript/dashboard/i18n/locale/en/companies.json
new file mode 100644
index 000000000..534205038
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contacts",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Company",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/components.json b/app/javascript/dashboard/i18n/locale/en/components.json
new file mode 100644
index 000000000..5e84ac024
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} item | Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} page | {currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/contact.json b/app/javascript/dashboard/i18n/locale/en/contact.json
index 791279899..1a10b253f 100644
--- a/app/javascript/dashboard/i18n/locale/en/contact.json
+++ b/app/javascript/dashboard/i18n/locale/en/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP Address",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
"TITLE": "Previous Conversations"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Custom Attributes",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "PREVIOUS_CONVERSATIONS": "Previous Conversations",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edit contact",
"DESC": "Edit contact details"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress. You will be notified on email when the export file is ready to download.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,385 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacts",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacts"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "Cancel",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress. You will be notified on email when the export file is ready to download.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "COMPANY": "Company",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Yes, Delete",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contact | Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Company",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Enter the company name"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Yes, Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MEDIA": "Media",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Delete",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/contactFilters.json b/app/javascript/dashboard/i18n/locale/en/contactFilters.json
index 02d5dcf89..4c62f0789 100644
--- a/app/javascript/dashboard/i18n/locale/en/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/en/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -45,7 +48,8 @@
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
"REFERER_LINK": "Referrer link",
- "BLOCKED": "Blocked"
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/en/contentTemplates.json b/app/javascript/dashboard/i18n/locale/en/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/conversation.json b/app/javascript/dashboard/i18n/locale/en/conversation.json
index 227c802d6..045b8d0d9 100644
--- a/app/javascript/dashboard/i18n/locale/en/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/en/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " to get started",
"NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
"SEARCH_MESSAGES": "Search for messages in conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. To view it, please open it on the original platform.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Give copilot additional prompts, or ask anything else... Press enter to send follow-up",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Reply",
@@ -145,16 +226,17 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
+ "IMAGE_UPLOAD_SUCCESS": "Image uploaded successfully",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot is thinking",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +258,13 @@
"YES": "Send",
"CANCEL": "Cancel"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
@@ -186,10 +275,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +305,25 @@
"DELETE": "Delete",
"CANCEL": "Cancel"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +333,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +345,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +384,49 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file",
+ "JUMP_TO_MESSAGE": "Jump to message"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +451,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +477,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/customRole.json b/app/javascript/dashboard/i18n/locale/en/customRole.json
new file mode 100644
index 000000000..f7c1709bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/datePicker.json b/app/javascript/dashboard/i18n/locale/en/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/general.json b/app/javascript/dashboard/i18n/locale/en/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/generalSettings.json b/app/javascript/dashboard/i18n/locale/en/generalSettings.json
index a252d776f..fab8020e2 100644
--- a/app/javascript/dashboard/i18n/locale/en/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/en/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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -95,7 +172,9 @@
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -103,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -153,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/en/helpCenter.json b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
index 6c4238b92..dfaec8119 100644
--- a/app/javascript/dashboard/i18n/locale/en/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/en/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Uploading...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Back",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: %{exampleURL}",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: %{exampleURL}",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,462 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Delete"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mine",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "EDIT": "Update",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "CUSTOMIZE_CONTENT": "Localize content",
+ "DELETE": "Delete"
+ }
+ },
+ "CONTENT_DIALOG": {
+ "TITLE": "Localize content",
+ "DESCRIPTION": "Set values specific to this locale. Anything left blank falls back to the default locale.",
+ "NAME": {
+ "LABEL": "Name"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale content updated successfully",
+ "ERROR_MESSAGE": "Unable to update locale content. Try again."
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Create",
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Edit",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Delete"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Remove"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Uploading...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancel",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/inbox.json b/app/javascript/dashboard/i18n/locale/en/inbox.json
index 137aac54b..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/en/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/en/inbox.json
@@ -1,7 +1,7 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
"404": "There are no active notifications in this group.",
@@ -27,6 +27,19 @@
"SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
"SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -59,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
index 8d1662f91..574cf5b9b 100644
--- a/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "There are no inboxes attached to this account."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Choose Channel",
+ "BODY": "Choose the provider you want to integrate with Chatwoot."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Create Inbox",
+ "BODY": "Authenticate your account and create an inbox."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the created inbox."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "You are all set to go!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Inbox Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Select a page from the list",
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Please enter a valid URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website Domain",
"PLACEHOLDER": "Enter your website domain (eg: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "This field is required"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
+ "LABEL": "Phone Number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "This field is required"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "This field is required"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Inbox Name",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Phone Number",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Channel Name",
"PLACEHOLDER": "Please enter a channel name",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Your email inbox has been created successfully! You can start forwarding your emails to the address below, or configure SMTP and IMAP credentials to send and receive emails directly.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Click here",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agents",
"DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authenticating you with Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Take me there",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reauthorize",
"VIEW": "View",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,111 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ },
+ "INBOUND": {
+ "LABEL": "Allow incoming calls",
+ "DESCRIPTION": "Let customers call this number. When turned off, incoming calls are declined automatically — agents aren't notified and no conversation is created. Agents can still place outgoing calls."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -477,6 +757,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agents",
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +782,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -505,22 +801,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +850,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +929,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1009,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1025,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1046,8 @@
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1121,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -709,7 +1151,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
@@ -732,8 +1174,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/index.js b/app/javascript/dashboard/i18n/locale/en/index.js
index 75cdb5836..12db16ba7 100644
--- a/app/javascript/dashboard/i18n/locale/en/index.js
+++ b/app/javascript/dashboard/i18n/locale/en/index.js
@@ -8,13 +8,19 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
@@ -27,10 +33,15 @@ import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
+import snooze from './snooze.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
-import sla from './sla.json';
-import inbox from './inbox.json';
+import contentTemplates from './contentTemplates.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
+import sessionLimit from './sessionLimit.json';
+import yearInReview from './yearInReview.json';
export default {
...advancedFilters,
@@ -43,13 +54,19 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
@@ -63,7 +80,12 @@ export default {
...settings,
...signup,
...sla,
+ ...snooze,
...teamsSettings,
...whatsappTemplates,
- ...inbox,
+ ...contentTemplates,
+ ...mfa,
+ ...onboarding,
+ ...sessionLimit,
+ ...yearInReview,
};
diff --git a/app/javascript/dashboard/i18n/locale/en/integrationApps.json b/app/javascript/dashboard/i18n/locale/en/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/integrations.json b/app/javascript/dashboard/i18n/locale/en/integrations.json
index 231892079..79f881b84 100644
--- a/app/javascript/dashboard/i18n/locale/en/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/en/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Cancel",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: %{webhookExampleURL}",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Please enter a valid URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,7 +83,10 @@
"LIST": {
"404": "There are no webhooks configured for this account.",
"TITLE": "Manage webhooks",
- "TABLE_HEADER": ["Webhook endpoint", "Actions"]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Actions"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Edit",
@@ -63,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Yes, Delete ",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -77,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "How to use the Slack Integration?",
- "BODY": "With this integration, all of your incoming conversations will be synced to the ***%{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***%{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -101,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -111,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -166,10 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": ["Name", "Endpoint"],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -199,10 +279,827 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Create",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Select team",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Labels",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Know more",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistants",
+ "SWITCH_ASSISTANT": "Switch between assistants",
+ "NEW_ASSISTANT": "Create Assistant",
+ "EMPTY_LIST": "No assistants found, please create one to get started"
+ },
+ "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",
+ "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",
+ "AVAILABLE_ON": "Captain is not available on the free plan.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to our assistants, copilot and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is only available in the Enterprise plans.",
+ "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."
+ },
+ "BANNER": {
+ "RESPONSES": "You've used over 80% of your response limit. To continue using Captain AI, please upgrade.",
+ "DOCUMENTS": "Document limit reached. Upgrade to continue using Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Cancel",
+ "CREATE": "Create",
+ "EDIT": "Update"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancel",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "All"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Pending",
+ "APPROVED": "Approved",
+ "ALL": "All"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edit",
+ "DELETE_RESPONSE": "Delete"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/en/labelsMgmt.json
index 978592c83..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/en/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/en/labelsMgmt.json
@@ -3,13 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": ["Name", "Description", "Color"]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -45,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/en/login.json b/app/javascript/dashboard/i18n/locale/en/login.json
index fb33028d6..061284247 100644
--- a/app/javascript/dashboard/i18n/locale/en/login.json
+++ b/app/javascript/dashboard/i18n/locale/en/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create a new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/macros.json b/app/javascript/dashboard/i18n/locale/en/macros.json
index 28c4660aa..e51975921 100644
--- a/app/javascript/dashboard/i18n/locale/en/macros.json
+++ b/app/javascript/dashboard/i18n/locale/en/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,7 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": ["Name", "Created by", "Last updated by", "Visibility"],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -39,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -56,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -68,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/mfa.json b/app/javascript/dashboard/i18n/locale/en/mfa.json
new file mode 100644
index 000000000..8e356aad4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and either a verification code from your authenticator app or a backup code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/onboarding.json b/app/javascript/dashboard/i18n/locale/en/onboarding.json
new file mode 100644
index 000000000..d7c960002
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/report.json b/app/javascript/dashboard/i18n/locale/en/report.json
index 56ca21773..2ffa0ef11 100644
--- a/app/javascript/dashboard/i18n/locale/en/report.json
+++ b/app/javascript/dashboard/i18n/locale/en/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,13 +23,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -45,43 +45,21 @@
},
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -138,14 +116,28 @@
"groupBy": "Year"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -163,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -209,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -230,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -276,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -297,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -343,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -364,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -410,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -438,6 +479,25 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
}
}
},
@@ -476,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -485,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -505,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/search.json b/app/javascript/dashboard/i18n/locale/en/search.json
index 107e64fd8..2fc8e7998 100644
--- a/app/javascript/dashboard/i18n/locale/en/search.json
+++ b/app/javascript/dashboard/i18n/locale/en/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/sessionLimit.json b/app/javascript/dashboard/i18n/locale/en/sessionLimit.json
new file mode 100644
index 000000000..926745c23
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/sessionLimit.json
@@ -0,0 +1,12 @@
+{
+ "SESSION_LIMIT": {
+ "TITLE": "Active session limit reached",
+ "DESCRIPTION": "You have reached your limit of active sessions. Please end a session before logging in.",
+ "END": "End",
+ "END_ALL": "End all sessions",
+ "LOG_IN": "Log in",
+ "CANCEL": "Back to login",
+ "UNKNOWN_DEVICE": "Unknown device",
+ "STARTED": "Started"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/settings.json b/app/javascript/dashboard/i18n/locale/en/settings.json
index 9a4bde2c8..d14175cb5 100644
--- a/app/javascript/dashboard/i18n/locale/en/settings.json
+++ b/app/javascript/dashboard/i18n/locale/en/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
"AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profile Image",
"ERROR": "Please fix form errors",
"REMOVE_IMAGE": "Remove",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,56 @@
"NOTE": "Updating your password would reset your logins in multiple devices.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
+ "SESSIONS_SECTION": {
+ "TITLE": "Active Sessions",
+ "NOTE": "These are the devices currently logged in to your account.",
+ "CURRENT": "Current session",
+ "REVOKE": "Revoke",
+ "REVOKE_SUCCESS": "Session revoked successfully",
+ "REVOKE_ERROR": "Unable to revoke session. Please try again.",
+ "FETCH_ERROR": "Unable to fetch sessions. Please try again.",
+ "LAST_ACTIVE": "Last active",
+ "UNKNOWN_DEVICE": "Unknown device"
+ },
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "NOTE": "This token can be used if you are building an API based integration",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "None",
+ "MINE": "Assigned",
+ "ALL": "All",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "None",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +142,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Email Notifications",
@@ -83,7 +153,27 @@
"CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
"CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Your notification preferences are updated successfully",
@@ -98,7 +188,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "REQUEST_PUSH": "Enable push notifications",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profile Image"
@@ -115,9 +208,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": ["Online", "Busy", "Offline"],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Busy",
+ "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",
@@ -143,14 +241,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "days trial remaining.",
@@ -162,6 +264,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -177,13 +285,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Submit"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifying...",
@@ -193,11 +306,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
"INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -205,6 +319,18 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxes",
+ "CAPTAIN_SETTINGS": "Settings",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
@@ -231,52 +357,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Conversations",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
"REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agents",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Settings"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Credits",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Chat with us"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancel",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Copied to clipboard",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -292,7 +635,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -309,15 +653,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Delete",
+ "CANCEL_BUTTON_LABEL": "Cancel"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/signup.json b/app/javascript/dashboard/i18n/locale/en/signup.json
index 1ad4865ff..238a1f061 100644
--- a/app/javascript/dashboard/i18n/locale/en/signup.json
+++ b/app/javascript/dashboard/i18n/locale/en/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. E.g., bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address."
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short.",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character."
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm password",
"PLACEHOLDER": "Confirm password",
- "ERROR": "Password doesnot match."
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/sla.json b/app/javascript/dashboard/i18n/locale/en/sla.json
index 228f87066..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/en/sla.json
+++ b/app/javascript/dashboard/i18n/locale/en/sla.json
@@ -1,15 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": ["Name", "Description", "FRT", "NRT", "RT", "Business Hours"]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +86,7 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
@@ -67,6 +104,14 @@
"YES": "Yes, Delete ",
"NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/en/snooze.json b/app/javascript/dashboard/i18n/locale/en/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/en/teamsSettings.json b/app/javascript/dashboard/i18n/locale/en/teamsSettings.json
index 50dcb780d..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/en/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/en/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,49 +44,46 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
-
"FINISH": {
"TITLE": "Your team is ready!",
"MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
@@ -98,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/en/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/en/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/en/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/en/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/en/yearInReview.json b/app/javascript/dashboard/i18n/locale/en/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/en/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/advancedFilters.json b/app/javascript/dashboard/i18n/locale/es/advancedFilters.json
index 42d7df470..1208bebf3 100644
--- a/app/javascript/dashboard/i18n/locale/es/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/es/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "Y",
"OR": "O"
},
+ "INPUT_PLACEHOLDER": "Introducir valor",
"OPERATOR_LABELS": {
"equal_to": "Igual a",
"not_equal_to": "No igual a",
- "contains": "Contiene",
"does_not_contain": "No contiene",
"is_present": "Está presente",
"is_not_present": "No está presente",
"is_greater_than": "Es mayor que",
"is_less_than": "Es menor que",
"days_before": "Es X días antes",
- "starts_with": "Empieza con"
+ "starts_with": "Empieza con",
+ "equalTo": "Igual a",
+ "notEqualTo": "No igual a",
+ "contains": "Contiene",
+ "doesNotContain": "No contiene",
+ "isPresent": "Está presente",
+ "isNotPresent": "No está presente",
+ "isGreaterThan": "Es mayor que",
+ "isLessThan": "Es menor que",
+ "daysBefore": "Es X días antes",
+ "startsWith": "Empieza con"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Verdadero",
@@ -54,6 +64,12 @@
"CREATED_AT": "Creado el",
"LAST_ACTIVITY": "Última actividad"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "El valor es requerido",
+ "ATTRIBUTE_KEY_REQUIRED": "Clave de atributo es requerida",
+ "FILTER_OPERATOR_REQUIRED": "El operador de filtro es requerido",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "El valor debe ser entre 1 y 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Filtros estándar",
"ADDITIONAL_FILTERS": "Filtros adicionales",
diff --git a/app/javascript/dashboard/i18n/locale/es/agentBots.json b/app/javascript/dashboard/i18n/locale/es/agentBots.json
index ba2e4c801..83dba45df 100644
--- a/app/javascript/dashboard/i18n/locale/es/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/es/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Cargando el editor...",
- "HEADER_BTN_TXT": "Añadir configuración de bot",
- "SIDEBAR_TXT": "Bots de agente
Bots de agente son como los miembros más fabulosos de tu equipo. Pueden manejar las cosas pequeñas, así que puede centrarse en las cosas que importan. Pruébelas.
Puedes administrar tus bots desde esta página o crear nuevos usando el botón 'Añadir configuración del bot'.
Abrir el manual de robots de agente en otra pestaña para una mano de ayuda.
",
- "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"
+ "DESCRIPTION": "Los bots de agentes son como los miembros más fabulosos de tu equipo. Ellos pueden manejar las cosas pequeñas, así que usted puede centrarse en las cosas que importan. Inténtalos. Puedes administrar tus bots desde esta página o crear nuevos usando el botón 'Configurar un nuevo bot'.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "GLOBAL_BOT": "Bot del sistema",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Avatar del bot eliminado correctamente",
+ "ERROR_DELETE": "Error al borrar el bot, por favor intentar más tarde"
},
"BOT_CONFIGURATION": {
"TITLE": "Seleccione un bot de agente",
@@ -32,7 +25,7 @@
"SELECT_PLACEHOLDER": "Seleccionar bot"
},
"ADD": {
- "TITLE": "Configurar nuevo bot",
+ "TITLE": "Agregar Bot",
"CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot añadido correctamente.",
@@ -40,16 +33,23 @@
}
},
"LIST": {
- "404": "No se encontraron bots, puedes crear un bot haciendo clic en el botón 'Configurar nuevo bot' ↗",
+ "404": "No sé encontró ningún bot. Puedes crear uno haciendo clic en 'crear un Bot'.",
"LOADING": "Obteniendo bots...",
- "TYPE": "Tipo de bot"
+ "TABLE_HEADER": {
+ "DETAILS": "Detalles del Bot",
+ "URL": "URL de Webhook",
+ "ACTIONS": "Acciones"
+ }
},
"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": "¿Está seguro que desea borrar {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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Token de acceso",
+ "DESCRIPTION": "Copie el código de acceso y guardarlo seguro",
+ "COPY_SUCCESSFUL": "Código de acceso copiado en el portapapeles",
+ "RESET_SUCCESS": "Código de acceso regenerado exitosamente",
+ "RESET_ERROR": "Dirección del webhook es requerida"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Avatar del Bot"
+ },
+ "NAME": {
+ "LABEL": "Nombre del bot",
+ "PLACEHOLDER": "Nombre del Bot",
+ "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": "Dirección del webhook es requerida"
+ },
+ "ERRORS": {
+ "NAME": "El nombre del bot es obligatorio",
+ "URL": "Dirección del webhook es requerida",
+ "VALID_URL": "Por favor, introduzca una URL válida comenzando con http:// o https://"
+ },
+ "CANCEL": "Cancelar",
+ "CREATE": "Crear Bot",
+ "UPDATE": "Actualizar Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure el webhook del bot para integrarse con sus servicios personalizados. El bot recibirá y procesará eventos de conversaciones y podrá responder a ellos."
+ },
"TYPES": {
- "WEBHOOK": "Webhook Bot",
- "CSML": "CSML Bot"
+ "WEBHOOK": "Webhook Bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
index 65c71df28..407dd712b 100644
--- a/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agentes",
"HEADER_BTN_TXT": "Añadir agente",
"LOADING": "Se están listando los agentes",
- "SIDEBAR_TXT": "Agentes
Un Agente es miembro de su equipo de Atención al Cliente.
Los agentes podrán ver y responder a los mensajes de sus usuarios. La lista muestra todos los agentes actualmente en su cuenta.
Haga clic en Añadir agente para añadir un nuevo agente. El agente que añada recibirá un correo electrónico con un enlace de confirmación para activar la cuenta, después de lo cual podrá acceder a Chatwoot y responder los mensajes.
El acceso a las características de Chatwoot se basa en los siguientes roles.
Agente - Los agentes con este rol solamente pueden acceder a bandejas, informes y conversaciones. Pueden asignar conversaciones a otros agentes o a sí mismos y resolver conversaciones.
Administrador - El administrador tendrá acceso a todas las características de Chatwoot habilitadas para su cuenta, incluyendo configuración y facturación, junto con todos los privilegios de los agentes normales.
",
+ "DESCRIPTION": "Un agente es miembro de su equipo de atención al cliente, quién puede ver y responder a los mensajes del usuario. La siguiente lista muestra todos los agentes en su cuenta.",
+ "LEARN_MORE": "Aprender acerca de roles de usuario",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrador",
"AGENT": "Agente"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "No hay agentes asociados a esta cuenta",
"TITLE": "Administrar agentes en tu equipo",
@@ -17,7 +19,8 @@
"STATUS": "Estado",
"ACTIONS": "Acciones",
"VERIFIED": "Verificado",
- "VERIFICATION_PENDING": "Verificación pendiente"
+ "VERIFICATION_PENDING": "Verificación pendiente",
+ "AVAILABLE_CUSTOM_ROLE": "Permisos personalizados de rol disponibles"
},
"ADD": {
"TITLE": "Añadir agente a tu equipo",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Buscar agentes...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No se encontraron resultados."
},
@@ -103,6 +108,9 @@
"AGENT": "Seleccionar agente",
"TEAM": "Seleccionar equipo"
},
+ "LIST": {
+ "NONE": "Ninguna"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No se encontraron agentes",
diff --git a/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
index 3d33afaf4..6a14ffdfb 100644
--- a/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Atributos personalizados",
"HEADER_BTN_TXT": "Añadir atributo personalizado",
"LOADING": "Obtener atributos personalizados",
- "SIDEBAR_TXT": "Atributos personalizados
Un atributo personalizado registra los datos de tus contactos/conversación — como el plan de suscripción, o cuando hayan pedido el primer artículo etc.
Para crear un atributo personalizado, simplemente haga clic en elAñadir atributo personalizado. También puede editar o eliminar un atributo personalizado existente haciendo clic en el botón Editar o Borrar.
",
+ "DESCRIPTION": "Un atributo personalizado rastrea detalles adicionales sobre tus contactos o conversaciones, como el plan de suscripción o la fecha de su primera compra. Puede agregar diferentes tipos de atributos personalizados, como textos, listas o números, para capturar la información específica que necesita.",
+ "LEARN_MORE": "Aprende más sobre los atributos personalizados",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Buscar atributos...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversación",
+ "CONTACT": "Contacto",
+ "COMPANY": "Empresa"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Texto",
+ "NUMBER": "Número",
+ "LINK": "Enlace",
+ "DATE": "Fecha",
+ "LIST": "Lista",
+ "CHECKBOX": "Casilla"
+ },
"ADD": {
"TITLE": "Añadir atributo personalizado",
"SUBMIT": "Crear",
@@ -42,14 +59,18 @@
},
"REGEX_PATTERN": {
"LABEL": "Patrón de Regex",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "PLACEHOLDER": "Por favor, introduzca el patrón de regex de atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "Por favor ingrese la pista de patrones regex. (opcional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Habilitar validación regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolución"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "No se pudo borrar el equipo. Intente nuevamente."
},
"CONFIRM": {
- "TITLE": "¿Está seguro que quiere borrar - %{attributeName}?",
+ "TITLE": "¿Está seguro que quiere borrar - {attributeName}?",
"PLACE_HOLDER": "Por favor, escriba {attributeName} para confirmar",
"MESSAGE": "Borrar, eliminará el atributo personalizado",
"YES": "Eliminar ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Atributos personalizados",
"CONVERSATION": "Conversación",
- "CONTACT": "Contacto"
+ "CONTACT": "Contacto",
+ "COMPANY": "Empresa"
},
"LIST": {
- "TABLE_HEADER": [
- "Nombre",
- "Descripción",
- "Tipo",
- "Llave"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "DESCRIPTION": "Descripción",
+ "TYPE": "Tipo",
+ "KEY": "Llave"
+ },
"BUTTONS": {
"EDIT": "Editar",
"DELETE": "Eliminar"
@@ -107,15 +129,19 @@
},
"REGEX_PATTERN": {
"LABEL": "Patrón de Regex",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "PLACEHOLDER": "Por favor, introduzca el patrón de regex de atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "Por favor ingrese la pista de patrones regex. (opcional)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Habilitar validación regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolución"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/auditLogs.json b/app/javascript/dashboard/i18n/locale/es/auditLogs.json
index 4e96ba4e0..1be0da1dd 100644
--- a/app/javascript/dashboard/i18n/locale/es/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/es/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Auditoría de registros",
"HEADER_BTN_TXT": "Añadir registros de auditoría",
"LOADING": "Obteniendo registros de auditoría",
+ "DESCRIPTION": "Los registros de auditoría mantienen un historial de actividades en su cuenta, permitiéndole rastrear y auditar su cuenta, equipo o servicios.",
+ "LEARN_MORE": "Aprende más sobre los registros de auditoria",
"SEARCH_404": "No hay elementos que coincidan con esta consulta",
"SIDEBAR_TXT": "Registros de auditoría
Registros de auditoría son pistas para eventos y acciones en un Sistema de Chatwoot
",
"LIST": {
"404": "No hay registros de auditoría disponibles en esta cuenta.",
"TITLE": "Administrar registros de auditoría",
"DESC": "Los registros de auditoría son pistas para eventos y acciones en un sistema de Chatwoot.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Dirección IP"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "Dirección IP"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Registros de auditoria cargados satisfactoriamente",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Sistema",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} creó una nueva regla de automatización (#%{id})",
- "EDIT": "%{agentName} actualizó una regla de automatización (#%{id})",
- "DELETE": "%{agentName} eliminó una regla de automatización (#%{id})"
+ "ADD": "{agentName} creó una nueva regla de automatización (#{id})",
+ "EDIT": "{agentName} actualizó una regla de automatización (#{id})",
+ "DELETE": "{agentName} eliminó una regla de automatización (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invitó a %{invitee} a la cuenta como %{role}",
+ "ADD": "{agentName} invitó a {invitee} a la cuenta como {role}",
"EDIT": {
- "SELF": "%{agentName} cambió su %{attributes} por %{values}",
- "OTHER": "%{agentName} cambió %{attributes} de %{user} a %{values}"
+ "SELF": "{agentName} cambió su {attributes} por {values}",
+ "OTHER": "{agentName} cambió {attributes} de {user} a {values}",
+ "DELETED": "{agentName} cambió {attributes} de un usuario eliminado a {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} creó una nueva bandeja de entrada (#%{id})",
- "EDIT": "%{agentName} actualizó una bandeja de entrada (#%{id})",
- "DELETE": "%{agentName} eliminó una bandeja de entrada (#%{id})"
+ "ADD": "{agentName} creó una nueva bandeja de entrada (#{id})",
+ "EDIT": "{agentName} actualizó una bandeja de entrada (#{id})",
+ "DELETE": "{agentName} eliminó una bandeja de entrada (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} creó un nuevo webhook (#%{id})",
- "EDIT": "%{agentName} actualizó un webhook (#%{id})",
- "DELETE": "%{agentName} eliminó un webhook (#%{id})"
+ "ADD": "{agentName} creó un nuevo webhook (#{id})",
+ "EDIT": "{agentName} actualizó un webhook (#{id})",
+ "DELETE": "{agentName} eliminó un webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} inició sesión",
- "SIGN_OUT": "%{agentName} cerró su sesión"
+ "SIGN_IN": "{agentName} inició sesión",
+ "SIGN_OUT": "{agentName} cerró su sesión"
},
"TEAM": {
- "ADD": "%{agentName} creó un nuevo equipo (#%{id})",
- "EDIT": "%{agentName} actualizó un equipo (#%{id})",
- "DELETE": "%{agentName} eliminó un equipo (#%{id})"
+ "ADD": "{agentName} creó un nuevo equipo (#{id})",
+ "EDIT": "{agentName} actualizó un equipo (#{id})",
+ "DELETE": "{agentName} eliminó un equipo (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} creó una nueva macro (#%{id})",
- "EDIT": "%{agentName} actualizó una macro (#%{id})",
- "DELETE": "%{agentName} eliminó una macro (#%{id})"
+ "ADD": "{agentName} creó una nueva macro (#{id})",
+ "EDIT": "{agentName} actualizó una macro (#{id})",
+ "DELETE": "{agentName} eliminó una macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} agregó %{user} a la bandeja de entrada (#%{inbox_id})",
- "REMOVE": "%{agentName} eliminó %{user} de la bandeja de entrada(#%{inbox_id})"
+ "ADD": "{agentName} agregó {user} a la bandeja de entrada (#{inbox_id})",
+ "REMOVE": "{agentName} eliminó {user} de la bandeja de entrada(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} agregó %{user} al equipo (#%{team_id})",
- "REMOVE": "%{agentName} eliminó %{user} del equipo (#%{team_id})"
+ "ADD": "{agentName} agregó {user} al equipo (#{team_id})",
+ "REMOVE": "{agentName} eliminó {user} del equipo (#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} Actualizó la configuración de la cuenta (#%{id})"
+ "EDIT": "{agentName} actualizó la configuración de la cuenta (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} ha eliminado la conversación #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/automation.json b/app/javascript/dashboard/i18n/locale/es/automation.json
index 89dd971a9..c428f489a 100644
--- a/app/javascript/dashboard/i18n/locale/es/automation.json
+++ b/app/javascript/dashboard/i18n/locale/es/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatizaciones",
- "HEADER_BTN_TXT": "Añadir regla de automatización",
+ "HEADER": "Automatización",
+ "DESCRIPTION": "La automatización puede reemplazar y agilizar los procesos existentes que requieren esfuerzo manual, como añadir etiquetas y asignar conversaciones al agente más adecuado. Esto permite al equipo concentrarse en sus fortalezas, mientras que reduce el tiempo dedicado a las tareas de rutina.",
+ "LEARN_MORE": "Aprende más sobre automatización",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Obteniendo reglas de automatización",
- "SIDEBAR_TXT": "Reglas de automatización
Automatización puede reemplazar y automatizar procesos existentes que requieren esfuerzo manual. Puedes hacer muchas cosas con la automatización, incluyendo añadir etiquetas y asignar la conversación al mejor agente. Así que el equipo se centra en lo que hacen mejor y gasta más poco tiempo en tareas manuales.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Añadir regla de automatización",
"SUBMIT": "Crear",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nombre",
- "Descripción",
- "Activo",
- "Creado el"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "ACTIVE": "Activo",
+ "CREATED_ON": "Creado el",
+ "ACTIONS": "Acciones"
+ },
"404": "No se encontraron reglas de automatización"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Necesitas tener al menos una acción para guardar",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Introduzca su mensaje aquí",
- "TEAM_DROPDOWN_PLACEHOLDER": "Seleccionar equipos"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Seleccionar equipos",
+ "EMAIL_INPUT_PLACEHOLDER": "Introducir email",
+ "URL_INPUT_PLACEHOLDER": "Introducir URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activar regla de automatización",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Subiendo...",
"LABEL_UPLOADED": "Subido correctamente",
"LABEL_UPLOAD_FAILED": "Error al subir"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Clave de atributo es requerida",
+ "FILTER_OPERATOR_REQUIRED": "El operador de filtro es requerido",
+ "VALUE_REQUIRED": "El valor es requerido",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "El valor debe ser entre 1 y 998",
+ "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"
+ },
+ "NONE_OPTION": "Ninguna",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversación creada",
+ "CONVERSATION_UPDATED": "Conversación actualizada",
+ "MESSAGE_CREATED": "Mensaje creado",
+ "CONVERSATION_RESOLVED": "Conversación Resuelta",
+ "CONVERSATION_OPENED": "Conversación abierta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Asignar al agente",
+ "ASSIGN_TEAM": "Asignar equipo",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "ADD_LABEL": "Añadir etiqueta",
+ "REMOVE_LABEL": "Eliminar etiqueta",
+ "SEND_EMAIL_TO_TEAM": "Enviar un email al equipo",
+ "SEND_EMAIL_TRANSCRIPT": "Enviar transcripción por correo",
+ "MUTE_CONVERSATION": "Silenciar Conversación",
+ "SNOOZE_CONVERSATION": "Posponer conversación",
+ "RESOLVE_CONVERSATION": "Resolver conversación",
+ "SEND_WEBHOOK_EVENT": "Enviar Evento de Webhook",
+ "SEND_ATTACHMENT": "Enviar archivo adjunto",
+ "SEND_MESSAGE": "Enviar mensaje",
+ "ADD_PRIVATE_NOTE": "Añadir una nota privada",
+ "CHANGE_PRIORITY": "Cambiar prioridad",
+ "ADD_SLA": "Añadir SLA",
+ "OPEN_CONVERSATION": "Abrir conversación",
+ "PENDING_CONVERSATION": "Marca la conversación como pendiente"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Mensaje entrante",
+ "OUTGOING": "Mensaje saliente"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ninguna",
+ "LOW": "Baja",
+ "MEDIUM": "Media",
+ "HIGH": "Alta",
+ "URGENT": "Urgente"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Tipo de mensaje",
+ "PRIVATE_NOTE": "Nota privada",
+ "MESSAGE_CONTAINS": "El mensaje contiene",
+ "EMAIL": "E-mail",
+ "INBOX": "Bandeja de entrada",
+ "CONVERSATION_LANGUAGE": "Idioma de la conversación",
+ "PHONE_NUMBER": "Número telefónico",
+ "STATUS": "Estado",
+ "BROWSER_LANGUAGE": "Idioma del navegador",
+ "MAIL_SUBJECT": "Asunto de Email",
+ "COUNTRY_NAME": "País",
+ "COMPANY_NAME": "Empresa",
+ "REFERER_LINK": "Enlace de referencia",
+ "ASSIGNEE_NAME": "Asignado a",
+ "TEAM_NAME": "Equipo",
+ "PRIORITY": "Prioridad",
+ "LABELS": "Etiquetas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/bulkActions.json b/app/javascript/dashboard/i18n/locale/es/bulkActions.json
index 00c47a16a..b8840aecf 100644
--- a/app/javascript/dashboard/i18n/locale/es/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/es/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversaciones seleccionadas",
- "AGENT_SELECT_LABEL": "Seleccionar agente",
- "ASSIGN_CONFIRMATION_LABEL": "¿Está seguro que desea asignar %{conversationCount} %{conversationLabel} a",
- "UNASSIGN_CONFIRMATION_LABEL": "¿Está seguro de desasignar %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Volver",
- "ASSIGN_LABEL": "Asignar",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversaciones seleccionadas",
+ "NONE": "Ninguna",
+ "CLEAR_SELECTION": "Limpiar",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Si",
+ "CANCEL": "Cancelar",
+ "SEARCH_INPUT_PLACEHOLDER": "Buscar",
"ASSIGN_AGENT_TOOLTIP": "Asignar un agente",
"ASSIGN_TEAM_TOOLTIP": "Asignar equipo",
"ASSIGN_SUCCESFUL": "Conversaciones asignadas con éxito.",
@@ -14,25 +15,30 @@
"RESOLVE_SUCCESFUL": "Conversaciones resueltas con éxito.",
"RESOLVE_FAILED": "Error al resolver las conversaciones, inténtelo de nuevo.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Las conversaciones visibles en esta página sólo están seleccionadas.",
- "AGENT_LIST_LOADING": "Cargando agentes",
"UPDATE": {
"CHANGE_STATUS": "Cambiar estado",
- "SNOOZE_UNTIL_NEXT_REPLY": "Posponer hasta la próxima respuesta.",
+ "SNOOZE_UNTIL": "Posponer",
"UPDATE_SUCCESFUL": "El estado de la conversación se actualizó con éxito.",
"UPDATE_FAILED": "No se han podido actualizar las conversaciones. Inténtalo de nuevo."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "No se pueden resolver las conversaciones debido a la falta de atributos requeridos",
+ "PARTIAL_SUCCESS": "Algunas conversaciones requieren atributos obligatorios antes de resolverse y se omitieron"
+ },
"LABELS": {
"ASSIGN_LABELS": "Asignar etiqueta",
- "NO_LABELS_FOUND": "No se encontraron etiquetas para",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Asignar etiquetas seleccionadas",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etiquetas asignadas correctamente.",
- "ASSIGN_FAILED": "Error al asignar etiquetas, inténtalo de nuevo."
+ "ASSIGN_FAILED": "Error al asignar etiquetas, inténtalo de nuevo.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Seleccionar equipo",
"NONE": "Ninguna",
- "NO_TEAMS_AVAILABLE": "Todavía no hay equipos añadidos a esta cuenta.",
- "ASSIGN_SELECTED_TEAMS": "Asignar equipo seleccionado.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"ASSIGN_SUCCESFUL": "Equipos asignados correctamente.",
"ASSIGN_FAILED": "Error al asignar equipo, inténtelo de nuevo."
}
diff --git a/app/javascript/dashboard/i18n/locale/es/campaign.json b/app/javascript/dashboard/i18n/locale/es/campaign.json
index 80334cd15..038d50d38 100644
--- a/app/javascript/dashboard/i18n/locale/es/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/es/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campañas",
- "SIDEBAR_TXT": "Los mensajes proactivos permiten al cliente enviar mensajes a sus contactos, lo que generaría más conversaciones. Haga clic en Añadir Campaña para crear una nueva campaña. También puede editar o borrar una campaña existente haciendo clic en el botón de Editar o Borrar.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Crear una campaña apagada",
- "ONGOING": "Crear una campaña en curso"
- },
- "ADD": {
- "TITLE": "Crear campaña",
- "DESC": "Los mensajes proactivos permiten al cliente enviar mensajes a sus contactos, lo que generaría más conversaciones.",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "CREATE_BUTTON_TEXT": "Crear",
- "FORM": {
- "TITLE": {
- "LABEL": "Título",
- "PLACEHOLDER": "Por favor escriba un título para la campaña",
- "ERROR": "El título es obligatorio"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Campañas de Live Chat",
+ "NEW_CAMPAIGN": "Crear campaña",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Activado",
+ "DISABLED": "Deshabilitado"
},
- "SCHEDULED_AT": {
- "LABEL": "Programar tiempo",
- "PLACEHOLDER": "Por favor, seleccione la hora",
- "CONFIRM": "Confirmar",
- "ERROR": "El tiempo programado es requerido"
- },
- "AUDIENCE": {
- "LABEL": "Audiencia",
- "PLACEHOLDER": "Seleccione las etiquetas personalizadas",
- "ERROR": "El público es requerido"
- },
- "INBOX": {
- "LABEL": "Seleccione una bandeja de entrada",
- "PLACEHOLDER": "Seleccione una bandeja de entrada",
- "ERROR": "Se requiere buzón de entrada"
- },
- "MESSAGE": {
- "LABEL": "Mensaje",
- "PLACEHOLDER": "Por favor escriba el mensaje para la campaña",
- "ERROR": "El mensaje es obligatorio"
- },
- "SENT_BY": {
- "LABEL": "Enviado por",
- "PLACEHOLDER": "Por favor seleccione el contenido de la campaña",
- "ERROR": "El remitente es obligatorio"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Por favor escriba el URL",
- "ERROR": "Por favor, introduzca una URL válida"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Tiempo en la página (segundos)",
- "PLACEHOLDER": "Por favor escriba la hora",
- "ERROR": "La hora en la página es obligatoria"
- },
- "ENABLED": "Habilitar campaña",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Activar sólo durante horas de trabajo",
- "SUBMIT": "Añadir campaña"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Enviado por",
+ "BOT": "Bot",
+ "FROM": "De",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "campaña creada satisfactoriamente",
- "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
+ "EMPTY_STATE": {
+ "TITLE": "No hay campañas de Live Chat disponibles",
+ "SUBTITLE": "Conéctate con tus clientes usando mensajes proactivos. Haz clic en 'Crear campaña' para empezar."
+ },
+ "CREATE": {
+ "TITLE": "Crear una campaña de Live Chat",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor escriba un título para la campaña",
+ "ERROR": "El título es obligatorio"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensaje",
+ "PLACEHOLDER": "Por favor escriba el mensaje para la campaña",
+ "ERROR": "El mensaje es obligatorio"
+ },
+ "INBOX": {
+ "LABEL": "Seleccione una bandeja de entrada",
+ "PLACEHOLDER": "Seleccione una bandeja de entrada",
+ "ERROR": "Se requiere buzón de entrada"
+ },
+ "SENT_BY": {
+ "LABEL": "Enviado por",
+ "PLACEHOLDER": "Por favor, seleccione remitente",
+ "ERROR": "El remitente es obligatorio"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Por favor escriba el URL",
+ "ERROR": "Por favor, introduzca una URL válida"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Tiempo en la página (segundos)",
+ "PLACEHOLDER": "Por favor escriba la hora",
+ "ERROR": "La hora en la página es obligatoria"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Otras preferencias",
+ "ENABLED": "Habilitar campaña",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Activar sólo durante horas de trabajo"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campaña de Live Chat creada con éxito",
+ "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Editar campaña de Live Chat",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Campaña de Live Chat actualizada correctamente",
+ "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Eliminar",
- "CONFIRM": {
- "TITLE": "Confirmar eliminación",
- "MESSAGE": "¿Está seguro de eliminar?",
- "YES": "Sí, eliminar ",
- "NO": "No, mantenerlo "
+ "SMS": {
+ "HEADER_TITLE": "Campañas de SMS",
+ "NEW_CAMPAIGN": "Crear campaña",
+ "EMPTY_STATE": {
+ "TITLE": "No hay campañas de SMS disponibles",
+ "SUBTITLE": "Inicie una campaña SMS para llegar directamente a sus clientes. Envíe ofertas o haga anuncios con facilidad. Haga clic en \"Crear campaña\" para empezar."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completado",
+ "SCHEDULED": "Programado"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Enviado desde",
+ "ON": "en"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Crear campaña de SMS",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor escriba un título para la campaña",
+ "ERROR": "El título es obligatorio"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensaje",
+ "PLACEHOLDER": "Por favor escriba el mensaje para la campaña",
+ "ERROR": "El mensaje es obligatorio"
+ },
+ "INBOX": {
+ "LABEL": "Seleccione una bandeja de entrada",
+ "PLACEHOLDER": "Seleccione una bandeja de entrada",
+ "ERROR": "Se requiere buzón de entrada"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audiencia",
+ "PLACEHOLDER": "Seleccione las etiquetas personalizadas",
+ "ERROR": "El público es requerido"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Programar tiempo",
+ "PLACEHOLDER": "Por favor, seleccione la hora",
+ "ERROR": "El tiempo programado es requerido"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campaña de SMS creada con éxito",
+ "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Crear campaña",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Lanza una campaña de WhatsApp para conectar con tus clientes directamente. Envía ofertas o has anuncios fácilmente. Haz clic en 'Crear campaña' para comenzar."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completado",
+ "SCHEDULED": "Programado"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Enviado desde",
+ "ON": "en"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Crear campaña de WhatsApp",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Crear",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor escriba un título para la campaña",
+ "ERROR": "El título es obligatorio"
+ },
+ "INBOX": {
+ "LABEL": "Seleccione una bandeja de entrada",
+ "PLACEHOLDER": "Seleccione una bandeja de entrada",
+ "ERROR": "Se requiere buzón de entrada"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Procesar {templateName}",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoría",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audiencia",
+ "PLACEHOLDER": "Seleccione las etiquetas personalizadas",
+ "ERROR": "El público es requerido"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Programar tiempo",
+ "PLACEHOLDER": "Por favor, seleccione la hora",
+ "ERROR": "El tiempo programado es requerido"
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "¿Está seguro de eliminar?",
+ "DESCRIPTION": "La acción de eliminación es permanente y no puede ser revertida.",
+ "CONFIRM": "Eliminar",
"API": {
"SUCCESS_MESSAGE": "Campaña borrada satisfactoriamente",
- "ERROR_MESSAGE": "La campaña no se pudo borrar. Intente nuevamente más tarde."
+ "ERROR_MESSAGE": "Se presentó un error. Por favor intente nuevamente."
}
- },
- "EDIT": {
- "TITLE": "Editar campaña",
- "UPDATE_BUTTON_TEXT": "Actualizar",
- "API": {
- "SUCCESS_MESSAGE": "Campaña actualizada satisfactoriamente",
- "ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Cargando campañas...",
- "404": "No hay campañas creadas en esta bandeja.",
- "TABLE_HEADER": {
- "TITLE": "Título",
- "MESSAGE": "Mensaje",
- "INBOX": "Bandeja de entrada",
- "STATUS": "Estado",
- "SENDER": "Remitente",
- "URL": "URL",
- "SCHEDULED_AT": "Programar tiempo",
- "TIME_ON_PAGE": "Tiempo (segundos)",
- "CREATED_AT": "Creado el"
- },
- "BUTTONS": {
- "ADD": "Añadir",
- "EDIT": "Editar",
- "DELETE": "Eliminar"
- },
- "STATUS": {
- "ENABLED": "Activado",
- "DISABLED": "Deshabilitado",
- "COMPLETED": "Completado",
- "ACTIVE": "Activo"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Campañas únicas",
- "404": "No hay campañas en curso creadas",
- "INBOXES_NOT_FOUND": "Por favor, crea una bandeja de entrada sms y empieza a añadir campañas"
- },
- "ONGOING": {
- "HEADER": "Campañas en curso",
- "404": "No hay campañas en curso creadas",
- "INBOXES_NOT_FOUND": "Por favor, cree una bandeja de entrada del sitio web y comience a añadir campañas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
index 3c468c334..abc23a7b9 100644
--- a/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Respuestas predefinidas",
+ "LEARN_MORE": "Más información sobre respuestas predefinidas",
+ "DESCRIPTION": "Las respuestas predefinidas son plantillas preconfiguradas que le ayudan a responder rápidamente a una conversación. Los agentes pueden escribir el carácter '/' seguido por el código corto para insertar una respuesta predefinida durante una conversación. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Añadir respuesta predefinida",
"LOADING": "Obteniendo respuestas predefinidas...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "No hay elementos que coincidan con esta consulta.",
- "SIDEBAR_TXT": "Respuestas predefinidas
Las respuestas preparadas son plantillas de respuesta escritas previamente que le ayudan a responder rápidamente a una conversación. Para insertar una respuesta predeterminada durante un chat, los agentes pueden escribir un código corto precedido por un carácter '/'.
Puedes administrar tus respuestas predeterminadas desde esta página o crear otras nuevas usando el botón \"Agregar respuesta predeterminada\".
Abre el Manual de respuestas predefinidas en otra pestaña para recibir ayuda.
Además, consulte la nueva Biblioteca de respuestas preparadas.
",
"LIST": {
"404": "No hay respuestas enlatadas disponibles en esta cuenta.",
"TITLE": "Administrar respuestas predefinidas",
"DESC": "Las respuestas predefinidas son plantillas de respuesta predefinidas que pueden ser utilizadas para enviar rápidamente respuestas a conversaciones.",
- "TABLE_HEADER": [
- "Código corto",
- "Contenido",
- "Acciones"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Código corto",
+ "CONTENT": "Contenido",
+ "ACTIONS": "Acciones"
+ }
},
"ADD": {
"TITLE": "Añadir respuesta predefinida",
diff --git a/app/javascript/dashboard/i18n/locale/es/chatlist.json b/app/javascript/dashboard/i18n/locale/es/chatlist.json
index 231b8d548..9112b89d2 100644
--- a/app/javascript/dashboard/i18n/locale/es/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/es/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "No hay conversaciones activas en este grupo."
},
+ "FAILED_TO_SEND": "Error al enviar",
"TAB_HEADING": "Conversaciones",
"MENTION_HEADING": "Menciones",
"UNATTENDED_HEADING": "Desatendido",
@@ -20,7 +21,7 @@
},
"CHAT_STATUS_FILTER_ITEMS": {
"open": {
- "TEXT": "Abrir"
+ "TEXT": "Abiertas"
},
"resolved": {
"TEXT": "Resueltas"
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Respuesta pendiente: la más corta primero"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Ubicación"
},
+ "ig_reel": {
+ "CONTENT": "Reel de Instagram"
+ },
"fallback": {
"CONTENT": "ha compartido una url"
+ },
+ "contact": {
+ "CONTENT": "Contacto compartido"
+ },
+ "embed": {
+ "CONTENT": "Contenido incrustado"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No hay contenido disponible",
"HIDE_QUOTED_TEXT": "Ocultar texto citado",
"SHOW_QUOTED_TEXT": "Mostrar texto citado",
- "MESSAGE_READ": "Leído"
+ "MESSAGE_READ": "Leído",
+ "SENDING": "Enviando",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/companies.json b/app/javascript/dashboard/i18n/locale/es/companies.json
new file mode 100644
index 000000000..0767b6cae
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Empresas",
+ "SORT_BY": {
+ "LABEL": "Ordenar por",
+ "OPTIONS": {
+ "NAME": "Nombre",
+ "DOMAIN": "Dominio",
+ "CREATED_AT": "Creado el",
+ "LAST_ACTIVITY_AT": "Última actividad",
+ "CONTACTS_COUNT": "Número de contactos"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Orden",
+ "OPTIONS": {
+ "ASCENDING": "Ascendente",
+ "DESCENDING": "Descendente"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Buscar empresas...",
+ "LOADING": "Cargando empresas...",
+ "UNNAMED": "Empresa sin nombre",
+ "CONTACTS_COUNT": "{n} contacto | {n} contactos",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atributos",
+ "CONTACTS": "Contactos",
+ "HISTORY": "Historial",
+ "NOTES": "Notas"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Buscar atributos...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Cargando contactos...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Añadir contacto",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Buscar contactos...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No se encontraron contactos.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Empresa",
+ "CONTACT_LABEL": "Contacto",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancelar"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Creado {date}",
+ "LAST_ACTIVE": "Última actividad {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nombre",
+ "DOMAIN": "Dominio"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No se encontraron empresas"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} – {endItem} de {totalItems} empresa | Mostrando {startItem} – {endItem} de {totalItems} empresas"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/components.json b/app/javascript/dashboard/i18n/locale/es/components.json
new file mode 100644
index 000000000..cebd9a390
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem}-{endItem} de {totalItems} elementos",
+ "CURRENT_PAGE_INFO": "{currentPage} de {totalPages} páginas"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Selecciona una opción...",
+ "EMPTY_SEARCH_RESULTS": "No se encontraron elementos para el término de búsqueda `{searchTerm}`",
+ "EMPTY_STATE": "No se encontraron resultados.",
+ "SEARCH_PLACEHOLDER": "Buscar...",
+ "MORE": "+{count} más"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Buscar...",
+ "EMPTY_STATE": "No se encontraron resultados.",
+ "SEARCHING": "Buscando..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Confirmar"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Buscar país",
+ "ERROR": "El número de teléfono debe estar vacío o en formato E.164",
+ "DIAL_CODE_ERROR": "Por favor, seleccione un código de marcado de la lista"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "El autor no está disponible"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Migajas"
+ },
+ "SWITCH": {
+ "TOGGLE": "Interruptor"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "etiqueta"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Más información",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutos",
+ "HOURS": "Horas",
+ "DAYS": "Días",
+ "PLACEHOLDER": "Ingresar duración"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "¡Muy pronto!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/contact.json b/app/javascript/dashboard/i18n/locale/es/contact.json
index 786b9cab4..8978dc0c8 100644
--- a/app/javascript/dashboard/i18n/locale/es/contact.json
+++ b/app/javascript/dashboard/i18n/locale/es/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Dirección IP",
"CREATED_AT_LABEL": "Creado",
"NEW_MESSAGE": "Nuevo mensaje",
+ "CALL": "Llamar",
+ "CALL_INITIATED": "Llamando al contacto…",
+ "CALL_FAILED": "No se puede iniciar la llamada. Por favor, inténtelo de nuevo.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Seleccionar un buzón de entrada"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "No hay conversaciones previas asociadas a este contacto.",
"TITLE": "Conversaciones anteriores"
@@ -39,16 +48,17 @@
},
"MERGE_CONTACT": "Combinar contacto",
"CONTACT_ACTIONS": "Acciones de contacto",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "Bloquear contacto",
+ "UNMUTE_CONTACT": "Desbloquear contacto",
+ "MUTED_SUCCESS": "Este contacto está bloqueado con éxito. No se te notificará de ninguna conversación futura.",
+ "UNMUTED_SUCCESS": "Este contacto está desbloqueado correctamente.",
"SEND_TRANSCRIPT": "Enviar Transcripción",
"EDIT_LABEL": "Editar",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Atributos personalizados",
"CONTACT_LABELS": "Etiqueta de Contacto",
- "PREVIOUS_CONVERSATIONS": "Conversaciones anteriores"
+ "PREVIOUS_CONVERSATIONS": "Conversaciones anteriores",
+ "NO_RECORDS_FOUND": "No se encontraron atributos"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Editar Contacto",
"DESC": "Editar detalles del contacto"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nuevo contacto",
- "TITLE": "Crear un contacto nuevo",
- "DESC": "Añadir información básica sobre el contacto."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importar",
- "TITLE": "Importar Contactos",
- "DESC": "Importar contactos a través de un archivo CSV.",
- "DOWNLOAD_LABEL": "Descarga un ejemplo de csv.",
- "FORM": {
- "LABEL": "Archivo CSV",
- "SUBMIT": "Importar",
- "CANCEL": "Cancelar"
- },
- "SUCCESS_MESSAGE": "Se le notificará por correo electrónico cuando se complete la importación.",
- "ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exportar",
- "TITLE": "Exportar contactos",
- "DESC": "Exportar contactos a un archivo CSV.",
- "SUCCESS_MESSAGE": "El proceso de exportar esta en proceso. Será notificado por correo cuando el archivo esté listo para descargar.",
- "ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo",
- "CONFIRM": {
- "TITLE": "Exportar contactos",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirmar eliminación",
- "MESSAGE": "¿Está seguro de eliminar esta nota?",
- "YES": "Sí, eliminar",
- "NO": "No, mantenerlo"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Eliminar contacto",
"TITLE": "Eliminar contacto",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contactos",
- "FIELDS": "Campos de contacto",
- "SEARCH_BUTTON": "Buscar",
- "SEARCH_INPUT_PLACEHOLDER": "Buscar contactos",
- "FILTER_CONTACTS": "Filtro",
- "FILTER_CONTACTS_SAVE": "Guardar filtro",
- "FILTER_CONTACTS_DELETE": "Eliminar filtro",
- "FILTER_CONTACTS_EDIT": "Editar segmento",
"LIST": {
- "LOADING_MESSAGE": "Cargando contactos...",
- "404": "No hay contactos que coincidan con tu búsqueda 🔍",
- "NO_CONTACTS": "No hay contactos disponibles",
"TABLE_HEADER": {
- "NAME": "Nombre",
- "PHONE_NUMBER": "Número telefónico",
- "CONVERSATIONS": "Conversaciones",
- "LAST_ACTIVITY": "Última actividad",
- "CREATED_AT": "Creado el",
- "COUNTRY": "País",
- "CITY": "Ciudad",
- "SOCIAL_PROFILES": "Perfiles Sociales",
- "COMPANY": "Empresa",
- "EMAIL_ADDRESS": "Dirección de correo"
- },
- "VIEW_DETAILS": "Ver detalles"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contactos",
- "LOADING": "Cargando perfil de contacto..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Añadir",
- "TITLE": "Shift + Enter para crear una tarea"
- },
- "FOOTER": {
- "DUE_DATE": "Fecha límite",
- "LABEL_TITLE": "Establecer el tipo"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Obteniendo notas...",
- "NOT_AVAILABLE": "No hay notas creadas para este contacto",
- "HEADER": {
- "TITLE": "Notas"
- },
- "LIST": {
- "LABEL": "Se agregó una nota"
- },
- "ADD": {
- "BUTTON": "Añadir",
- "PLACEHOLDER": "Añadir nota",
- "TITLE": "Shift + Enter para crear una nota"
- },
- "CONTENT_HEADER": {
- "DELETE": "Eliminar nota"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Actividades"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notas",
- "PILL_BUTTON_EVENTS": "Eventos",
- "PILL_BUTTON_CONVO": "conversaciones"
+ "SOCIAL_PROFILES": "Perfiles Sociales"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Añadir atributos",
"BUTTON": "Añadir atributo personalizado",
- "NOT_AVAILABLE": "No hay atributos personalizados disponibles para este contacto.",
"COPY_SUCCESSFUL": "Copiado al portapapeles satisfactoriamente",
+ "SHOW_MORE": "Mostrar todos los atributos",
+ "SHOW_LESS": "Mostrar menos atributos",
"ACTIONS": {
"COPY": "Copiar atributo",
"DELETE": "Eliminar atributo",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Resumen",
- "DELETE_WARNING": "El contacto de %{primaryContactName} se eliminará.",
- "ATTRIBUTE_WARNING": "Los datos de contacto de %{primaryContactName} se copiarán en %{parentContactName}."
+ "DELETE_WARNING": "El contacto de {primaryContactName} se eliminará.",
+ "ATTRIBUTE_WARNING": "Los datos de contacto de {primaryContactName} se copiarán en {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Combinar contactos",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contacto fusionado con éxito",
"ERROR_MESSAGE": "No se pudo combinar los contactos, ¡inténtalo de nuevo!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contactos",
+ "SEARCH_TITLE": "Buscar contactos",
+ "ACTIVE_TITLE": "Contactos activos",
+ "SEARCH_PLACEHOLDER": "Buscar...",
+ "MESSAGE_BUTTON": "Mensaje",
+ "SEND_MESSAGE": "Enviar mensaje",
+ "BLOCK_CONTACT": "Bloquear contacto",
+ "UNBLOCK_CONTACT": "Desbloquear contacto",
+ "BREADCRUMB": {
+ "CONTACTS": "Contactos"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Añadir contacto",
+ "EXPORT_CONTACT": "Exportar contactos",
+ "IMPORT_CONTACT": "Importar contactos",
+ "SAVE_CONTACT": "Guardar contacto",
+ "EMAIL_ADDRESS_DUPLICATE": "Ésta dirección de correo está siendo utilizada por otro contacto.",
+ "PHONE_NUMBER_DUPLICATE": "Este número de teléfono está en uso para otro contacto.",
+ "SUCCESS_MESSAGE": "Contacto guardado correctamente",
+ "ERROR_MESSAGE": "No se pudo guardar el contacto. Inténtalo de nuevo más tarde."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "Este contacto se ha bloqueado correctamente",
+ "BLOCK_ERROR_MESSAGE": "No se pudo bloquear el contacto. Inténtalo de nuevo más tarde.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Este contacto está desbloqueado correctamente",
+ "UNBLOCK_ERROR_MESSAGE": "No se pudo desbloquear el contacto. Inténtalo de nuevo más tarde.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Importar contactos",
+ "DESCRIPTION": "Importar contactos a través de un archivo CSV.",
+ "DOWNLOAD_LABEL": "Descarga un ejemplo de csv.",
+ "LABEL": "Archivo CSV:",
+ "CHOOSE_FILE": "Elegir archivo",
+ "CHANGE": "Cambiar",
+ "CANCEL": "Cancelar",
+ "IMPORT": "Importar",
+ "SUCCESS_MESSAGE": "Se le notificará por correo electrónico cuando se complete la importación.",
+ "ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Exportar contactos",
+ "DESCRIPTION": "Exporta rápidamente un archivo csv con los detalles completos de tus contactos",
+ "CONFIRM": "Exportar",
+ "SUCCESS_MESSAGE": "El proceso de exportar esta en proceso. Será notificado por correo cuando el archivo esté listo para descargar.",
+ "ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
+ },
+ "SORT_BY": {
+ "LABEL": "Ordenar por",
+ "OPTIONS": {
+ "NAME": "Nombre",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de teléfono",
+ "COMPANY": "Empresa",
+ "COUNTRY": "País",
+ "CITY": "Ciudad",
+ "LAST_ACTIVITY": "Última actividad",
+ "CREATED_AT": "Creado el"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Orden",
+ "OPTIONS": {
+ "ASCENDING": "Ascendente",
+ "DESCENDING": "Descendente"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "¿Desea guardar este filtro?",
+ "CONFIRM": "Guardar filtro",
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "Ingrese el nombre del filtro",
+ "ERROR": "Ingrese un nombre válido",
+ "SUCCESS_MESSAGE": "Filtro guardado correctamente",
+ "ERROR_MESSAGE": "No se pudo guardar el filtro. Inténtalo de nuevo más tarde."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirmar eliminación",
+ "DESCRIPTION": "¿Está seguro que desea eliminar este filtro?",
+ "CONFIRM": "Sí, eliminar",
+ "CANCEL": "No, cancelar",
+ "SUCCESS_MESSAGE": "Filtro eliminado correctamente",
+ "ERROR_MESSAGE": "No se pudo eliminar el filtro. Inténtalo de nuevo más tarde."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} - {endItem} de {totalItems} contactos"
+ },
+ "FILTER": {
+ "NAME": "Nombre",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de teléfono",
+ "IDENTIFIER": "Idenrificador",
+ "COUNTRY": "País",
+ "CITY": "Ciudad",
+ "COMPANY": "Empresa",
+ "CREATED_AT": "Creado el",
+ "LAST_ACTIVITY": "Última actividad",
+ "REFERER_LINK": "Enlace de referencia",
+ "BLOCKED": "Bloqueado",
+ "BLOCKED_TRUE": "Verdadero",
+ "BLOCKED_FALSE": "Falso",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Limpiar filtros",
+ "UPDATE_SEGMENT": "Actualizar segmento",
+ "APPLY_FILTERS": "Aplicar filtros",
+ "ADD_FILTER": "Añadir Filtro"
+ },
+ "TITLE": "Filtrar contactos",
+ "EDIT_SEGMENT": "Editar segmento",
+ "SEGMENT": {
+ "LABEL": "Nombre del segmento",
+ "INPUT_PLACEHOLDER": "Introduzca el nombre del segmento"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} filtros más",
+ "CLEAR_FILTERS": "Limpiar filtros"
+ }
+ },
+ "CARD": {
+ "OF": "de",
+ "VIEW_DETAILS": "Ver detalles",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Editar detalles del contacto",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Ingrese el nombre"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Ingrese el apellido"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Ingrese el correo electrónico",
+ "DUPLICATE": "Ésta dirección de correo está siendo utilizada por otro contacto."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Ingrese el número de teléfono",
+ "DUPLICATE": "Este número de teléfono está en uso para otro contacto."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Introduzca el nombre de la ciudad"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Seleccione el país"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Ingrese la biografía"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Escriba el nombre de la empresa"
+ }
+ },
+ "UPDATE_BUTTON": "Actualizar contacto",
+ "SUCCESS_MESSAGE": "Contacto actualizado correctamente",
+ "ERROR_MESSAGE": "No se pudo actualizar el contacto. Inténtalo de nuevo más tarde."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Editar enlaces de redes sociales",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Agregar Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Agregar Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Agregar Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Añadir TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Agregar LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Agregar Twitter/X"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Eliminar permanentemente este contacto. Esta acción es irreversible.",
+ "BUTTON": "Eliminar ahora"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Creado {date}",
+ "LAST_ACTIVITY": "Última actividad {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Eliminar permanentemente este contacto. Esta acción es irreversible",
+ "DELETE_CONTACT": "Eliminar contacto",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirmar eliminación",
+ "DESCRIPTION": "¿Está seguro que desea eliminar este contacto?",
+ "CONFIRM": "Sí, eliminar",
+ "API": {
+ "SUCCESS_MESSAGE": "Contacto eliminado correctamente",
+ "ERROR_MESSAGE": "No se pudo eliminar el contacto. Inténtalo de nuevo más tarde."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "No se pudo cargar el avatar. Inténtalo de nuevo más tarde.",
+ "SUCCESS_MESSAGE": "Avatar cargado correctamente"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar eliminado correctamente",
+ "ERROR_MESSAGE": "No se pudo eliminar el avatar. Inténtalo de nuevo más tarde."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atributos",
+ "HISTORY": "Historial",
+ "NOTES": "Notas",
+ "MERGE": "Combinar"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "No hay conversaciones previas asociadas a este contacto"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Buscar atributos",
+ "UNUSED_ATTRIBUTES": "{count} Atributo usado | {count} atributos no utilizados",
+ "EMPTY_STATE": "No hay atributos personalizados de contacto disponibles en esta cuenta. Puede crear un atributo personalizado en la configuración.",
+ "YES": "Si",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Seleccionar valor",
+ "INPUT": "Introducir valor"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Número no válido",
+ "REQUIRED": "Se requiere un valor válido",
+ "INVALID_INPUT": "Ingreso inválido",
+ "INVALID_URL": "URL inválida",
+ "INVALID_DATE": "Fecha no válida"
+ },
+ "NO_ATTRIBUTES": "No se encontraron atributos",
+ "API": {
+ "SUCCESS_MESSAGE": "Atributo actualizado correctamente",
+ "DELETE_SUCCESS_MESSAGE": "Atributo eliminado correctamente",
+ "UPDATE_ERROR": "No se puede actualizar el atributo. Por favor, inténtalo de nuevo más tarde",
+ "DELETE_ERROR": "No se puede eliminar el atributo. Por favor, inténtalo de nuevo más tarde"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Combinar contacto",
+ "DESCRIPTION": "Combine dos perfiles en uno, incluyendo todos los atributos y conversaciones. En caso de conflicto, los atributos del contacto principal tendrán prioridad.",
+ "PRIMARY": "Contacto principal",
+ "PRIMARY_HELP_LABEL": "A guardar",
+ "PRIMARY_REQUIRED_ERROR": "Por favor, seleccione un contacto con el que combinar antes de continuar",
+ "PARENT": "A combinar",
+ "PARENT_HELP_LABEL": "A eliminar",
+ "EMPTY_STATE": "No se encontraron contactos",
+ "PLACEHOLDER": "Buscar contacto primario",
+ "SEARCH_PLACEHOLDER": "Buscar un contacto",
+ "SEARCH_ERROR_MESSAGE": "No se pudo buscar contactos. Inténtalo de nuevo más tarde.",
+ "SUCCESS_MESSAGE": "Contacto fusionado con éxito",
+ "ERROR_MESSAGE": "No se pudo combinar los contactos, ¡inténtalo de nuevo!",
+ "IS_SEARCHING": "Buscando...",
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Combinar contacto"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Añadir nota",
+ "WROTE": "escribió",
+ "YOU": "Tú",
+ "SAVE": "Guardar nota",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "Expandir",
+ "COLLAPSE": "Contraer",
+ "NO_NOTES": "No hay notas, puede agregar notas desde la página de detalles de contacto.",
+ "EMPTY_STATE": "No hay notas asociadas a este contacto. Puede añadir una nota escribiendo en el recuadro superior.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No se encontraron contactos en esta cuenta",
+ "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 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No hay contactos activos por el momento 🌙"
+ },
+ "LOAD_MORE": "Cargar más"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Asignar etiquetas",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etiquetas asignadas correctamente.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Eliminar",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Eliminar contacto"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "No pudimos completar la búsqueda. Por favor, inténtalo de nuevo."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Ver",
+ "SUCCESS_MESSAGE": "¡El mensaje fue enviado con éxito!",
+ "ERROR_MESSAGE": "Se ha producido un error al crear la conversación. Por favor, inténtalo de nuevo más tarde.",
+ "NO_INBOX_ALERT": "No hay bandejas de entrada disponibles para iniciar una conversación con este contacto.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "Para:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creando contacto..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Vía:",
+ "BUTTON": "Mostrar bandejas de entrada"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Asunto :",
+ "SUBJECT_PLACEHOLDER": "Introduzca el asunto de correo electrónico aquí",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Escriba su mensaje aquí..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Seleccionar plantilla",
+ "SEARCH_PLACEHOLDER": "Buscar plantillas",
+ "EMPTY_STATE": "No se encontraron plantillas",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "Plantilla de WhatsApp: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Volver",
+ "SEND_MESSAGE": "Enviar mensaje"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Seleccionar plantilla",
+ "SEARCH_PLACEHOLDER": "Buscar plantillas",
+ "EMPTY_STATE": "No se encontraron plantillas",
+ "TEMPLATE_PARSER": {
+ "BACK": "Volver",
+ "SEND_MESSAGE": "Enviar mensaje"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Descartar",
+ "SEND": "Enviar ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/contactFilters.json b/app/javascript/dashboard/i18n/locale/es/contactFilters.json
index 47141a242..f291692bc 100644
--- a/app/javascript/dashboard/i18n/locale/es/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/es/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Es menor que",
"days_before": "Es X días antes"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "El valor es requerido"
+ },
"ATTRIBUTES": {
"NAME": "Nombre",
"EMAIL": "E-mail",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Casilla",
"CREATED_AT": "Creado el",
"LAST_ACTIVITY": "Última actividad",
- "REFERER_LINK": "Enlace de referencia"
+ "REFERER_LINK": "Enlace de referencia",
+ "BLOCKED": "Bloqueado",
+ "LABELS": "Etiquetas"
},
"GROUPS": {
"STANDARD_FILTERS": "Filtros estándar",
diff --git a/app/javascript/dashboard/i18n/locale/es/contentTemplates.json b/app/javascript/dashboard/i18n/locale/es/contentTemplates.json
new file mode 100644
index 000000000..b0dd36772
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Buscar plantillas",
+ "NO_TEMPLATES_FOUND": "No se encontraron plantillas para",
+ "NO_CONTENT": "Sin contenido",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoría",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Cuerpo de plantilla",
+ "CATEGORY": "Categoría"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Texto"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoría",
+ "VARIABLE_PLACEHOLDER": "Introduzca el valor de {variable}",
+ "GO_BACK_LABEL": "Volver",
+ "SEND_MESSAGE_LABEL": "Enviar mensaje",
+ "FORM_ERROR_MESSAGE": "Por favor, rellene todas las variables antes de enviar",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Ingrese la URL completa",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Atrás",
+ "SEND_MESSAGE_BUTTON": "Enviar mensaje"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/conversation.json b/app/javascript/dashboard/i18n/locale/es/conversation.json
index 0fd0d0543..cb0e2df70 100644
--- a/app/javascript/dashboard/i18n/locale/es/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/es/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " para empezar",
"NO_INBOX_AGENT": "¡Uh Oh! Parece que no eres parte de ninguna bandeja de entrada. Por favor, contacta con tu administrador",
"SEARCH_MESSAGES": "Buscar mensajes en conversaciones",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "para abrir el menú de comandos",
"KEYBOARD_SHORTCUTS": "para ver los atajos del teclado"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Cargando conversaciones",
"CANNOT_REPLY": "No puede responder debido a",
"24_HOURS_WINDOW": "Restricción de la ventana de mensajes de 24 horas",
+ "48_HOURS_WINDOW": "Restricción de la ventana de mensajes de 48 horas",
+ "API_HOURS_WINDOW": "Solo puedes responder a esta conversación dentro de {hours} horas",
"NOT_ASSIGNED_TO_YOU": "Esta conversación no te está asignada. ¿Quieres asignarla a ti mismo?",
"ASSIGN_TO_ME": "Asignar a mi",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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": "Esta cuenta de Instagram fue migrada a la nueva bandeja de entrada del canal Instagram. Todos los nuevos mensajes aparecerán allí. Ya no podrás enviar mensajes de esta conversación.",
"REPLYING_TO": "Esta respondiendo a:",
"REMOVE_SELECTION": "Eliminar selección",
"DOWNLOAD": "Descargar",
"UNKNOWN_FILE_TYPE": "Archivo desconocido",
- "SAVE_CONTACT": "Guardar",
+ "SAVE_CONTACT": "Guardar Contacto",
+ "NO_CONTENT": "No hay contenido que mostrar",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} ha compartido un contacto",
+ "LOCATION": "{sender} ha compartido una ubicación",
+ "FILE": "{sender} ha compartido un archivo",
+ "MEETING": "{sender} ha iniciado una reunión"
+ },
"UPLOADING_ATTACHMENTS": "Subiendo archivos adjuntos...",
"REPLIED_TO_STORY": "Respondió a su historia",
- "UNSUPPORTED_MESSAGE": "Este mensaje no es compatible.",
+ "UNSUPPORTED_MESSAGE": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Facebook/Instagram.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Este mensaje no es compatible. Puedes ver este mensaje en la aplicación de Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Mensaje eliminado correctamente",
"FAIL_DELETE_MESSSAGE": "¡No se pudo eliminar el mensaje! Inténtalo de nuevo",
"NO_RESPONSE": "No hay respuesta",
+ "RESPONSE": "Respuesta",
"RATING_TITLE": "Calificación",
"FEEDBACK_TITLE": "Comentarios",
"REPLY_MESSAGE_NOT_FOUND": "Mensaje no disponible",
"CARD": {
"SHOW_LABELS": "Mostrar etiquetas",
- "HIDE_LABELS": "Ocultar etiquetas"
+ "HIDE_LABELS": "Ocultar etiquetas",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Unirse a la llamada",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abrir",
+ "MORE_ACTIONS": "Otras acciones",
"OPEN": "Más",
"CLOSE": "Cerrar",
"DETAILS": "detalles",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Posponer hasta",
"SNOOZED_UNTIL_TOMORROW": "Pospuesto hasta mañana",
"SNOOZED_UNTIL_NEXT_WEEK": "Pospuesto hasta la próxima semana",
- "SNOOZED_UNTIL_NEXT_REPLY": "Posponer hasta la siguiente respuesta"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Posponer hasta la siguiente respuesta",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "perdido",
+ "DUE": "vencido"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Marcar como pendiente",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Próxima semana"
}
},
+ "MENTION": {
+ "AGENTS": "Agentes",
+ "TEAMS": "Equipos"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Posponer hasta",
"APPLY": "Posponer",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Ninguna",
"INPUT_PLACEHOLDER": "Seleccionar prioridad",
"NO_RESULTS": "No se encontraron resultados",
- "SUCCESSFUL": "Se ha cambiado la prioridad del id de conversación %{conversationId} a %{priority}",
+ "SUCCESSFUL": "Se ha cambiado la prioridad del id de conversación {conversationId} a {priority}",
"FAILED": "No se pudo cambiar la prioridad. Por favor, inténtelo de nuevo."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Eliminar conversación #{conversationId}",
+ "DESCRIPTION": "¿Está seguro que desea eliminar esta conversación?",
+ "CONFIRM": "Eliminar"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marcar como pendiente",
"RESOLVED": "Marcar como resuelto",
"MARK_AS_UNREAD": "Marcar como no leído",
+ "MARK_AS_READ": "Marcar como leído",
"REOPEN": "Resolver conversación",
"SNOOZE": {
"TITLE": "Posponer",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Asignar etiqueta",
"AGENTS_LOADING": "Cargando agentes...",
"ASSIGN_TEAM": "Asignar equipo",
+ "DELETE": "Eliminar conversación",
+ "OPEN_IN_NEW_TAB": "Abrir en nueva pestaña",
+ "COPY_LINK": "Copiar enlace de conversación",
+ "COPY_LINK_SUCCESS": "Enlace de conversación copiado en portapapeles",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "ID de conversación %{conversationId} asignado a \"%{agentName}\"",
+ "SUCCESFUL": "ID de conversación {conversationId} asignado a \"{agentName}\"",
"FAILED": "No se pudo asignar el agente. Por favor, inténtelo de nuevo."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Etiqueta asignada #%{labelName} al id de conversación %{conversationId}",
+ "SUCCESFUL": "Etiqueta #{labelName} asignada a la conversación con id {conversationId}",
"FAILED": "No se pudo asignar el agente. Por favor, inténtelo de nuevo."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Equipo asignado \"%{team}\" al ID de conversación %{conversationId}",
+ "SUCCESFUL": "Equipo asignado \"{team}\" al ID de conversación {conversationId}",
"FAILED": "No se pudo asignar el equipo. Por favor, inténtelo de nuevo."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Desactivar firma",
"MSG_INPUT": "Shift + enter for new line. Comience con '/' para seleccionar una respuesta predefinida.",
"PRIVATE_MSG_INPUT": "Mayús + entrar para una nueva línea. Esto será visible sólo para los agentes",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La firma del mensaje no está configurada, por favor configúrela en la configuración del perfil.",
- "CLICK_HERE": "Haga clic aquí para actualizar"
+ "COPILOT_MSG_INPUT": "Dale instrucciones adicionales a Copilot o pregúntale cualquier otra cosa... Pulsa Enter para enviar el seguimiento",
+ "CLICK_HERE": "Haga clic aquí para actualizar",
+ "WHATSAPP_TEMPLATES": "Plantillas de Whatsapp"
},
"REPLYBOX": {
"REPLY": "Responder",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Leer más",
"DISMISS_REPLY": "Descartar respuesta",
"REPLYING_TO": "Respondiendo a:",
- "TIP_FORMAT_ICON": "Mostrar editor de textos",
"TIP_EMOJI_ICON": "Mostrar selector de emoji",
"TIP_ATTACH_ICON": "Adjuntar archivos",
"TIP_AUDIORECORDER_ICON": "Grabar audio",
"TIP_AUDIORECORDER_PERMISSION": "Permitir el acceso a audio",
"TIP_AUDIORECORDER_ERROR": "No se pudo abrir el audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Arrastra y suelta aquí para adjuntar",
"START_AUDIO_RECORDING": "Iniciar grabación de audio",
"STOP_AUDIO_RECORDING": "Detener grabación de audio",
- "": "",
+ "COPILOT_THINKING": "Copilot está pensando",
"EMAIL_HEAD": {
"TO": "A",
"ADD_BCC": "Añadir bcc",
@@ -176,6 +257,13 @@
"YES": "Enviar",
"CANCEL": "Cancelar"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Nota privada: solo visible para ti y tu equipo",
@@ -186,10 +274,15 @@
"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": "Conversación eliminada con éxito",
+ "FAIL_DELETE_CONVERSATION": "¡No se pudo eliminar la conversación! Inténtalo de nuevo",
"FILE_SIZE_LIMIT": "El archivo supera el límite de archivos adjuntos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "No se puede enviar este mensaje, por favor inténtalo de nuevo más tarde",
"SENT_BY": "Enviado por:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "¡No se pudo enviar el mensaje! Inténtalo de nuevo",
"TRY_AGAIN": "reintentar",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Eliminar",
"CANCEL": "Cancelar"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contacto",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Atendido en otra pestaña",
+ "REJECT_CALL": "Rechazar",
+ "DISMISS_CALL": "Descartar",
+ "JOIN_CALL": "Unirse a la llamada",
+ "END_CALL": "Terminar llamada",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Cancelar",
"SEND_EMAIL_SUCCESS": "La transcripción ha sido enviada",
"SEND_EMAIL_ERROR": "Hubo un error, por favor inténtelo de nuevo",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Enviar la transcripción al cliente",
"SEND_TO_AGENT": "Enviar la transcripción al agente asignado",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hola 👋, ¡Bienvenido a %{installationName}!",
- "DESCRIPTION": "Gracias por registrarse. Queremos que saque el máximo provecho de %{installationName}. Aquí hay algunas cosas que puede hacer en %{installationName} para hacer que la experiencia sea agradable.",
+ "TITLE": "Hola 👋, ¡Bienvenido a {installationName}!",
+ "DESCRIPTION": "Gracias por registrarse. Queremos que saque el máximo provecho de {installationName}. Aquí hay algunas cosas que puede hacer en {installationName} para hacer que la experiencia sea agradable.",
+ "GREETING_MORNING": "👋 Buenos días, {name}. Bienvenido a {installationName}.",
+ "GREETING_AFTERNOON": "👋 Buenas tardes, {name}. Bienvenido a {installationName}.",
+ "GREETING_EVENING": "👋 Buenas noches, {name}. Bienvenido a {installationName}.",
"READ_LATEST_UPDATES": "Leer nuestras últimas actualizaciones",
"ALL_CONVERSATION": {
"TITLE": "Todas sus conversaciones en un solo lugar",
- "DESCRIPTION": "Ver todas las conversaciones de sus clientes en un solo panel de control. Puede filtrar las conversaciones por el canal entrante, etiqueta y estado."
+ "DESCRIPTION": "Ver todas las conversaciones de sus clientes en un solo panel de control. Puede filtrar las conversaciones por el canal entrante, etiqueta y estado.",
+ "NEW_LINK": "Haga clic aquí para crear una bandeja de entrada"
},
"TEAM_MEMBERS": {
"TITLE": "Invite a los miembros de su equipo",
"DESCRIPTION": "Ya que usted se está preparando para hablar con su cliente, traiga a sus compañeros para asistirle. Puedes invitar a sus compañeros de equipo añadiendo su dirección de correo electrónico a la lista de agentes.",
"NEW_LINK": "Haga clic aquí para invitar a un miembro del equipo"
},
- "INBOXES": {
- "TITLE": "Conectar bandejas de entrada",
- "DESCRIPTION": "Conecte varios canales a través de los cuales sus clientes le hablarían. Puede ser un sitio web en vivo, su página de Facebook o Twitter o incluso su número de WhatsApp.",
- "NEW_LINK": "Haga clic aquí para crear una bandeja de entrada"
- },
"LABELS": {
"TITLE": "Organice las conversaciones con etiquetas",
"DESCRIPTION": "Las etiquetas proporcionan una forma fácil de clasificar su conversación. Cree algunas etiquetas como #pregunta-soporte, #pregunta-dacturación etc., para que pueda usarlas en una conversación más tarde.",
"NEW_LINK": "Haga clic aquí para crear etiquetas"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Crea respuestas predefinidas",
+ "DESCRIPTION": "Las respuestas predefinidas son plantillas preconfiguradas que le ayudan a responder rápidamente a una conversación. Los agentes pueden escribir el carácter '/' seguido por el código corto para insertar una respuesta predefinida durante una conversación.",
+ "NEW_LINK": "Haga clic aquí para crear una respuesta predefinida"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Acciones de conversación",
"CONVERSATION_LABELS": "Etiquetas de conversación",
"CONVERSATION_INFO": "Información de la conversación",
+ "CONTACT_NOTES": "Notas de contacto",
"CONTACT_ATTRIBUTES": "Atributos de contacto",
"PREVIOUS_CONVERSATION": "Conversaciones anteriores",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Problemas lineales vinculados",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Ver todo",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pendientes",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Crear atributo",
+ "NO_RECORDS_FOUND": "No se encontraron atributos",
"UPDATE": {
"SUCCESS": "Atributo actualizado correctamente",
"ERROR": "No se puede actualizar el atributo. Por favor, inténtalo de nuevo más tarde"
@@ -297,17 +449,18 @@
"TO": "Para",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Asunto"
+ "SUBJECT": "Asunto",
+ "EXPAND": "Expandir email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participar",
"SIDEBAR_TITLE": "Participantes de la conversación",
"NO_RECORDS_FOUND": "No se encontraron resultados",
"ADD_PARTICIPANTS": "Seleccionar participantes",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} más",
- "REMANING_PARTICIPANT_TEXT": "+%{count} más",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} personas están participando.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} personas están participando.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} más",
+ "REMANING_PARTICIPANT_TEXT": "+{count} más",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} personas están participando.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} personas están participando.",
"NO_PARTICIPANTS_TEXT": "Nadie está participando!.",
"WATCH_CONVERSATION": "Abrir conversación",
"YOU_ARE_WATCHING": "Estás participando",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Contenido original",
"TRANSLATED_CONTENT": "Contenido traducido",
"NO_TRANSLATIONS_AVAILABLE": "No hay traducciones disponibles para este contenido"
+ },
+ "TYPING": {
+ "ONE": "{user} está escribiendo",
+ "TWO": "{user} y {secondUser} están escribiendo",
+ "MULTIPLE": "{user} y {count} otros están escribiendo"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Prueba estas sugerencias"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "No se pudo descargar el archivo adjunto. Por favor, inténtelo de nuevo"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/customRole.json b/app/javascript/dashboard/i18n/locale/es/customRole.json
new file mode 100644
index 000000000..bfcc698f4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Roles personalizados",
+ "LEARN_MORE": "Obtenga más información sobre los roles personalizados",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "No hay elementos que coincidan con esta consulta.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Actualiza tu plan para tener acceso a funciones avanzadas como gestión de equipos, automatizaciones, atributos personalizados y más.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Actualice a un plan pago para acceder a funciones avanzadas como registros de auditoría, capacidad de agente y más.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "DESCRIPTION": "Descripción",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Acciones"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Administrar contactos",
+ "REPORT_MANAGE": "Administrar informes",
+ "KNOWLEDGE_BASE_MANAGE": "Administrar base de conocimiento"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "Por favor, introduzca el nombre.",
+ "ERROR": "El nombre es requerido."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Por favor, introduzca una descripción.",
+ "ERROR": "Descripción requerida."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permisos",
+ "ERROR": "Permisos requeridos."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "API": {
+ "ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde"
+ }
+ },
+ "ADD": {
+ "TITLE": "Añadir rol personalizado",
+ "DESC": " Los roles personalizados le permiten crear roles con permisos específicos y niveles de acceso para adaptarse a los requerimientos de la organización.",
+ "SUBMIT": "Enviar",
+ "API": {
+ "SUCCESS_MESSAGE": "Rol personalizado añadido con éxito."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Editar",
+ "TITLE": "Editar rol personalizado",
+ "DESC": " Los roles personalizados le permiten crear roles con permisos específicos y niveles de acceso para adaptarse a los requerimientos de la organización.",
+ "SUBMIT": "Actualizar",
+ "API": {
+ "SUCCESS_MESSAGE": "Rol personalizado actualizado con éxito."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Eliminar",
+ "API": {
+ "SUCCESS_MESSAGE": "Rol personalizado eliminado con éxito.",
+ "ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirme eliminación",
+ "MESSAGE": "¿Está seguro de eliminar ",
+ "YES": "Sí, eliminar ",
+ "NO": "No, mantenerlo "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/datePicker.json b/app/javascript/dashboard/i18n/locale/es/datePicker.json
new file mode 100644
index 000000000..21e923cc4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Aplicar",
+ "CLEAR_BUTTON": "Limpiar",
+ "DATE_RANGE_INPUT": {
+ "START": "Fecha de inicio",
+ "END": "Fecha de fin"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "Rango de fecha",
+ "LAST_7_DAYS": "Últimos 7 días",
+ "LAST_30_DAYS": "Últimos 30 días",
+ "LAST_3_MONTHS": "Últimos 3 meses",
+ "LAST_6_MONTHS": "Últimos 6 meses",
+ "LAST_YEAR": "Último año",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Rango de fechas personalizado"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/general.json b/app/javascript/dashboard/i18n/locale/es/general.json
new file mode 100644
index 000000000..6aac72603
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Mostrando {firstIndex}-{lastIndex} de {totalCount} elementos",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Buscar",
+ "EMPTY_STATE": "No se encontraron resultados"
+ },
+ "CLOSE": "Cerrar",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Descartar",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Si",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/generalSettings.json b/app/javascript/dashboard/i18n/locale/es/generalSettings.json
index 4e45625dc..f53bced78 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": "Has superado el límite de agentes. Tu plan solo permite {allowedAgents} agentes.",
+ "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": "Esta cuenta se eliminará el {deletionDate} debido a inactividad. Puedes cancelar la eliminación antes de esta fecha.",
+ "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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Ahora puede recibir emails en su dominio personalizado."
}
},
- "UPDATE_CHATWOOT": "Hay una actualización %{latestChatwootVersion} para Chatwoot disponible. Por favor, actualiza tu instancia.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Pulse Enter para seleccionar",
"ENTER_TO_REMOVE": "Presione Enter para eliminar",
+ "NO_OPTIONS": "La lista está vacía",
"SELECT_ONE": "Seleccione uno",
"SELECT": "Seleccionar"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversación asignada",
"assigned_conversation_new_message": "Nuevo mensaje",
"participating_conversation_new_message": "Nuevo mensaje",
- "conversation_mention": "Mención"
+ "conversation_mention": "Mención",
+ "sla_missed_first_response": "SLA perdido",
+ "sla_missed_next_response": "SLA perdido",
+ "sla_missed_resolution": "SLA perdido"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Fuera de línea"
+ "OFFLINE": "Desconectado",
+ "RECONNECTING": "Reconectando...",
+ "RECONNECT_SUCCESS": "Reconectado"
},
"BUTTON": {
"REFRESH": "Actualizar"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Buscar o saltar a",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Informes",
"CONVERSATION": "Conversación",
+ "BULK_ACTIONS": "Acciones masivas",
"CHANGE_ASSIGNEE": "Cambiar Asignado",
"CHANGE_PRIORITY": "Cambiar prioridad",
"CHANGE_TEAM": "Cambiar equipo",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Hasta mañana",
"UNTIL_NEXT_MONTH": "Hasta el mes próximo",
"AN_HOUR_FROM_NOW": "Hasta una hora a partir de ahora",
- "CUSTOM": "Personalizar...",
+ "UNTIL_CUSTOM_TIME": "Personalizar...",
"CHANGE_APPEARANCE": "Cambiar apariencia",
"LIGHT_MODE": "Claro",
"DARK_MODE": "Oscuro",
diff --git a/app/javascript/dashboard/i18n/locale/es/helpCenter.json b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
index 1f54d7489..4b13441ee 100644
--- a/app/javascript/dashboard/i18n/locale/es/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/es/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Centro de ayuda",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Crear Portal"
+ },
"HEADER": {
"FILTER": "Filtrar por",
"SORT": "Ordenar por",
@@ -41,6 +46,7 @@
"UPLOADING": "Subiendo...",
"SUCCESS": "Imagen subida con éxito",
"ERROR": "Error al subir la imagen",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "El tamaño de la imagen debe ser menor que {size}MB",
"ERROR_FILE_FORMAT": "El formato de la imagen debe ser jpg, jpeg o png",
"ERROR_FILE_DIMENSIONS": "Las dimensiones de la imagen deben ser menores de 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Sin categoría",
- "SEARCH_RESULTS": "Buscar resultados para %{query}",
+ "SEARCH_RESULTS": "Buscar resultados para {query}",
"EMPTY_TEXT": "Buscar artículos para insertar en las respuestas.",
"SEARCH_LOADER": "Buscando...",
"INSERT_ARTICLE": "Insertar",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal eliminado correctamente",
"DELETE_ERROR": "Error al eliminar el portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Información del Centro de Ayuda",
- "route": "new_portal_information",
- "body": "Información básica sobre el portal",
- "CREATE_BASIC_SETTING_BUTTON": "Crear configuración básica del portal"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Información del Centro de Ayuda",
+ "BODY": "Información básica sobre el portal"
},
- {
- "title": "Personalización del Centro de Ayuda",
- "route": "portal_customization",
- "body": "Personalizar portal",
- "UPDATE_PORTAL_BUTTON": "Actualizar ajustes del portal"
+ "CUSTOMIZATION": {
+ "TITLE": "Personalización del Centro de Ayuda",
+ "BODY": "Personalizar portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "¡Ya estás listo!",
- "FINISH": "Finalizar"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "¡Ya estás listo!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Atrás",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Dominio personalizado",
"PLACEHOLDER": "Dominio personalizado del portal",
- "HELP_TEXT": "Añadir sólo si quieres usar un dominio personalizado para tus portales. Ejemplo: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Introduzca una URL de dominio válida"
},
"HOME_PAGE_LINK": {
"LABEL": "Enlace de página principal",
"PLACEHOLDER": "Enlace de página de inicio del portal",
- "HELP_TEXT": "El enlace usado para regresar del portal a la página de inicio. Ej: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Introduzca una URL de página de inicio válida"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Idioma eliminado del portal correctamente",
"ERROR_MESSAGE": "No se puede eliminar el idioma del portal. Vuelve a intentarlo."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -319,7 +337,7 @@
"HEADERS": {
"TITLE": "Título",
"CATEGORY": "Categoría",
- "READ_COUNT": "Views",
+ "READ_COUNT": "Vistas",
"STATUS": "Estado",
"LAST_EDITED": "Última edición"
},
@@ -348,6 +366,12 @@
"SUCCESS": "Artículo archivado con éxito"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error al eliminar el artículo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Por favor, añade el encabezado y el contenido del artículo y despues puedes actualizar la configuración"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Utilice el portal como un CMS sin cabeceras con frameworks front-end de terceros usando nuestras APIs."
}
}
+ },
+ "LOADING": "Cargando...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Borrador",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traducir",
+ "DELETE": "Eliminar"
+ },
+ "STATUS": {
+ "DRAFT": "Borrador",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Archivado"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mías",
+ "DRAFT": "Borrador",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Archivado"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Traducir",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Traducir",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Borrador",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traducir",
+ "MOVE_TO_CATEGORY": "Categoría",
+ "DELETE": "Eliminar",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Eliminar",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nueva categoría",
+ "EDIT_CATEGORY": "Editar categoría",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No se encontraron categorías",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoría creada correctamente",
+ "ERROR_MESSAGE": "No se puede crear la categoría"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoría actualizada correctamente",
+ "ERROR_MESSAGE": "No se pudo actualizar la categoría"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoría eliminada correctamente",
+ "ERROR_MESSAGE": "No se pudo borrar la categoría"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Crear categoría",
+ "EDIT": "Editar categoría",
+ "DESCRIPTION": "Editar una categoría actualizará la categoría en el portal público.",
+ "PORTAL": "Portal",
+ "LOCALE": "Idioma"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "Nombre de categoría",
+ "ERROR": "El nombre es requerido"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug de categoría para urls",
+ "ERROR": "Slug es requerido",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Dé una breve descripción sobre la categoría.",
+ "ERROR": "Descripción requerida"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Crear",
+ "EDIT": "Actualizar",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Predeterminado",
+ "DRAFT": "Borrador",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Eliminar"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Añadir un nuevo idioma",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Seleccionar idioma..."
+ },
+ "STATUS": {
+ "LABEL": "Estado",
+ "OPTIONS": {
+ "LIVE": "Publicado",
+ "DRAFT": "Borrador"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Idioma añadido correctamente",
+ "ERROR_MESSAGE": "No se puede añadir el idioma. Vuelve a intentarlo."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Guardando...",
+ "SAVED": "Guardado"
+ },
+ "PREVIEW": "Previsualizar",
+ "PUBLISH": "Publicar",
+ "DRAFT": "Borrador",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Sin categoría",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta-descripción",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Título Meta",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta etiquetas",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error al guardar el artículo"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portales",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "artículos",
+ "DOMAIN": "dominio",
+ "PORTAL_NAME": "Nombre del portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Crear",
+ "NAME": {
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "El nombre es requerido"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug es requerido",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "¡No se pudo subir la imagen! Intente nuevamente",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo eliminado correctamente",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "El tamaño de la imagen debe ser menor que {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nombre",
+ "PLACEHOLDER": "Nombre del portal",
+ "ERROR": "El nombre es requerido"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Texto de encabezado del portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Título de página del portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Enlace de página de inicio del portal",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Dominio personalizado",
+ "LABEL": "Dominio personalizado:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Dominio personalizado del portal",
+ "EDIT_BUTTON": "Editar",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "En vivo",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Dominio personalizado",
+ "PLACEHOLDER": "Dominio personalizado del portal",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Enviar"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Eliminar portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Eliminar"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Apariencia",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Eliminar"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal creado correctamente",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal actualizado correctamente",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Subiendo...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancelar",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generando...",
+ "CONFIRM_DELETE": "¿Está seguro que desea borrar {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completado",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/inbox.json b/app/javascript/dashboard/i18n/locale/es/inbox.json
index f499ab0e4..8f0937a9c 100644
--- a/app/javascript/dashboard/i18n/locale/es/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/es/inbox.json
@@ -1,40 +1,57 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Bandeja de entrada",
+ "TITLE": "Mi bandeja de entrada",
"DISPLAY_DROPDOWN": "Mostrar",
"LOADING": "Cargando notificaciones",
- "EOF": "Todas las notificaciones cargadas 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
+ "404": "No hay notificaciones activas en este grupo.",
+ "NO_NOTIFICATIONS": "Sin notificaciones",
+ "NOTE": "Notificaciones de todas las entradas suscritas",
+ "NO_MESSAGES_AVAILABLE": "¡Ups! No se pueden obtener mensajes",
"SNOOZED_UNTIL": "Posponer hasta",
"SNOOZED_UNTIL_TOMORROW": "Pospuesto hasta mañana",
"SNOOZED_UNTIL_NEXT_WEEK": "Pospuesto hasta la próxima semana"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "Posponer notificación",
+ "DELETE": "Borrar notificación",
+ "BACK": "Atrás"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "Has sido mencionado en una conversación",
+ "CONVERSATION_CREATION": "Nueva conversación creada",
+ "CONVERSATION_ASSIGNMENT": "Se te ha asignado una conversación",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nuevo mensaje en una conversación asignada",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nuevo mensaje en una conversación en la que estás participando",
+ "SLA_MISSED_FIRST_RESPONSE": "Falta la siguiente respuesta del SLA para la conversación",
+ "SLA_MISSED_NEXT_RESPONSE": "Falta la siguiente respuesta del SLA para la conversación",
+ "SLA_MISSED_RESOLUTION": "Falta la siguiente respuesta del SLA para la conversación"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mencionado",
+ "CONVERSATION_ASSIGNMENT": "Asignado a ti",
+ "CONVERSATION_CREATION": "Nueva conversación",
+ "SLA_MISSED_FIRST_RESPONSE": "Violación de SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Violación de SLA",
+ "SLA_MISSED_RESOLUTION": "Violación de SLA",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nuevo mensaje",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nuevo mensaje",
+ "SNOOZED_UNTIL": "Pospuesto por {time}",
+ "SNOOZED_ENDS": "Posponer finalizado"
+ },
+ "NO_CONTENT": "No hay contenido disponible",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "Marcar como leído",
"MARK_AS_UNREAD": "Marcar como no leído",
"SNOOZE": "Posponer",
"DELETE": "Eliminar",
"MARK_ALL_READ": "Marcar todo como leído",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "Eliminar todo",
+ "DELETE_ALL_READ": "Borrar todos los leídos"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "Ordenar",
+ "DISPLAY": "Mostrar:",
"SORT_OPTIONS": {
"NEWEST": "Más reciente",
"OLDEST": "Más antiguo",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "Todas las notificaciones marcadas como leídas",
"DELETE_ALL": "Todas las notificaciones eliminadas",
"DELETE_ALL_READ": "Todas las notificaciones leídas eliminadas"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
index 67554cdfd..1138e4abf 100644
--- a/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Entradas",
- "SIDEBAR_TXT": "Bandeja de entrada
Cuando conecta un sitio web o una página de Facebook a Chatwoot, se llama una Bandeja de entrada. Puede tener bandejas de entrada ilimitadas en su cuenta de Chatwoot.
Haga clic en Añadir bandeja de entrada para conectar un sitio web o una página de Facebook.
en el panel, puede ver todas las conversaciones de todas su bandejas de entrada en un solo lugar y responder a ellas en la pestaña `Conversaciones`.
También puede ver conversaciones específicas de una bandeja de entrada haciendo clic en el nombre de la bandeja de entrada en el menú izquierdo del panel.
",
+ "DESCRIPTION": "Un canal es el modo de comunicación que tu cliente elige para interactuar contigo. Una bandeja de entrada es donde administras interacciones para un canal específico. Puede incluir comunicaciones de diversas fuentes como correo electrónico, chat en vivo y redes sociales.",
+ "LEARN_MORE": "Aprende más sobre las entradas",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Tu bandeja de entrada está desconectada. No recibirás mensajes nuevos hasta que lo vuelvas a autorizar.",
+ "CLICK_TO_RECONNECT": "Haga clic aquí para volver a conectar.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "No hay entradas adjuntas a esta cuenta."
},
- "CREATE_FLOW": [
- {
- "title": "Elegir canal",
- "route": "settings_inbox_new",
- "body": "Elija el proveedor que desea integrar con Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Elegir canal",
+ "BODY": "Elija el proveedor que desea integrar con Chatwoot."
},
- {
- "title": "Crear bandeja de entrada",
- "route": "settings_inboxes_page_channel",
- "body": "Autenticar tu cuenta y crear una bandeja de entrada."
+ "INBOX": {
+ "TITLE": "Crear bandeja de entrada",
+ "BODY": "Autenticar tu cuenta y crear una bandeja de entrada."
},
- {
- "title": "Añadir agentes",
- "route": "settings_inboxes_add_agents",
- "body": "Añadir agentes a la bandeja de entrada creada."
+ "AGENT": {
+ "TITLE": "Añadir agentes",
+ "BODY": "Añadir agentes a la bandeja de entrada creada."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "¡Todo está listo!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "¡Todo está listo!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nombre de la bandeja de entrada",
@@ -44,7 +48,24 @@
"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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL de Webhook",
- "PLACEHOLDER": "Ingrese su URL de Webhook",
+ "PLACEHOLDER": "Por favor, introduzca su URL de Webhook",
"ERROR": "Por favor, introduzca una URL válida"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Dominio del sitio web",
"PLACEHOLDER": "Introduzca el dominio de su sitio web (por ejemplo: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "Este campo es obligatorio"
},
"PHONE_NUMBER": {
- "LABEL": "Número de teléfono",
+ "LABEL": "Número telefónico",
"PLACEHOLDER": "Por favor, introduzca el número de teléfono desde el que se enviará el mensaje.",
"ERROR": "Por favor, proporcione un número de teléfono válido que comience con un signo `+` y no contenga espacios."
},
@@ -213,9 +242,16 @@
"DESC": "Comience a apoyar a sus clientes mediante WhatsApp.",
"PROVIDERS": {
"LABEL": "Proveedor de API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "Nube de WhatsApp",
- "360_DIALOG": "360 Diálogo"
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
+ "360_DIALOG": "360dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
},
"INBOX_NAME": {
"LABEL": "Nombre de la bandeja de entrada",
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Token de verificación del Webhook"
},
"SUBMIT_BUTTON": "Crear canal de WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "No pudimos guardar el canal de WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Número telefónico",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Cuenta SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token de Auth",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "Clave API secreta",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "Canal API",
"DESC": "Integre con API channel y comienze a dar soporte a sus clientes.",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "No pudimos guardar el canal de email"
},
- "FINISH_MESSAGE": "Empieze a reenviar su emails a la siguiente dirección de email."
+ "FINISH_MESSAGE": "Empieze a reenviar su emails a la siguiente dirección de email.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Haz clic aquí",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Canal LÍNEA",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Elija un canal",
- "DESC": "Chatwoot soporta widgets de Live Chat, Facebook Messenger, perfiles de Twitter, WhatsApp, correos electrónicos, etc., como canales. Si quieres construir un canal personalizado, puedes crearlo usando el canal API. Para empezar, elige uno de los canales a continuación."
+ "DESC": "Chatwoot soporta widgets de Live Chat, Facebook Messenger, perfiles de Twitter, WhatsApp, correos electrónicos, etc., como canales. Si quieres construir un canal personalizado, puedes crearlo usando el canal API. Para empezar, elige uno de los canales a continuación.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Sitio web",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agentes",
"DESC": "Aquí puede agregar agentes para administrar su recién creada bandeja de entrada. Sólo estos agentes seleccionados tendrán acceso a su bandeja de entrada. Los agentes que no forman parte de esta bandeja de entrada no podrán ver o responder a los mensajes de esta bandeja de entrada cuando inicien sesión.
PS: Como administrador, si necesita acceso a todas las bandejas, debes añadirte como agente a todas las bandejas de entrada que crees.",
- "VALIDATION_ERROR": "Añadir al menos un agente a su nueva bandeja de entrada",
+ "VALIDATION_ERROR": "Añade al menos un agente a tu nueva bandeja de entrada",
"PICK_AGENTS": "Elegir agentes para la bandeja de entrada"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Haga clic en el botón Iniciar sesión con Microsoft para empezar. Serás redirigido a la página de inicio de sesión de correo electrónico. Una vez que aceptes los permisos solicitados, serás redirigido al paso de creación de la bandeja de entrada.",
"EMAIL_PLACEHOLDER": "Introduzca la dirección de correo",
- "HELP": "Para añadir su cuenta de Microsoft como un canal, debe autenticar su cuenta de Microsoft haciendo clic en 'Iniciar sesión con Microsoft' ",
+ "SIGN_IN": "Iniciar sesión con Microsoft",
"ERROR_MESSAGE": "Hubo un error al conectarse a Microsoft, por favor inténtalo de nuevo"
+ },
+ "GOOGLE": {
+ "TITLE": "Correo de Google",
+ "DESCRIPTION": "Haga clic en el botón Iniciar sesión con Google para empezar. Serás redirigido a la página de inicio de sesión de correo electrónico. Una vez que aceptes los permisos solicitados, serás redirigido al paso de creación de la bandeja de entrada.",
+ "SIGN_IN": "Iniciar sesión con Google",
+ "EMAIL_PLACEHOLDER": "Introduzca la dirección de correo",
+ "ERROR_MESSAGE": "Se ha producido un error al conectar a Google, por favor inténtelo nuevamente"
}
},
"DETAILS": {
"LOADING_FB": "Autenticándote con Facebook...",
+ "ERROR_FB_LOADING": "Error al cargar Facebook SDK. Deshabilite cualquier bloqueador de anuncios e inténtelo de nuevo desde un navegador diferente.",
"ERROR_FB_AUTH": "Algo salió mal, Por favor actualiza la página...",
"ERROR_FB_UNAUTHORIZED": "No estás autorizado a realizar esta acción. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Asegúrate de tener acceso a la página de Facebook con control completo. Puedes leer más sobre los roles de Facebook here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Ahora puedes colaborar con tus clientes a través de tu nuevo canal. Feliz soporte",
"BUTTON_TEXT": "Llévame allí",
"MORE_SETTINGS": "Más ajustes",
- "WEBSITE_SUCCESS": "Has terminado de crear un canal del sitio web. Copia el código que se muestra a continuación y pégalo en tu sitio web. La próxima vez que un cliente use el chat en vivo, la conversación aparecerá automáticamente en su bandeja de entrada."
+ "WEBSITE_SUCCESS": "Has terminado de crear un canal del sitio web. Copia el código que se muestra a continuación y pégalo en tu sitio web. La próxima vez que un cliente use el chat en vivo, la conversación aparecerá automáticamente en su bandeja de entrada.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reautorizar",
"VIEW": "Ver",
@@ -418,7 +592,7 @@
"SUBTITLE": "Utilice sólo el nombre del negocio configurado como nombre del remitente en el encabezado del correo electrónico."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configura el nombre de tu negocio",
+ "BUTTON_TEXT": "Configura el nombre de tu negocio",
"PLACEHOLDER": "Introduce el nombre de tu negocio",
"SAVE_BUTTON_TEXT": "Guardar"
}
@@ -432,8 +606,10 @@
"DISABLED": "Deshabilitado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Activado",
- "DISABLED": "Deshabilitado"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Habilitar"
@@ -464,7 +640,107 @@
"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",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "Encuestas de Satisfacción",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "En vivo"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Ajustes",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Script de Messenger",
"MESSENGER_SUB_HEAD": "Coloca este botón dentro de tu etiqueta cuerpo",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agentes",
"INBOX_AGENTS_SUB_TEXT": "Añadir o quitar agentes de esta bandeja de entrada",
"AGENT_ASSIGNMENT": "Asignación de conversación",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloquear a una sola conversación",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activar o desactivar múltiples conversaciones para el mismo contacto en esta bandeja de entrada",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ajustes de la Bandeja de Entrada",
"INBOX_UPDATE_SUB_TEXT": "Actualizar la configuración de tu bandeja de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activar o desactivar la asignación automática de nuevas conversaciones a los agentes añadidos a esta bandeja de entrada.",
@@ -505,6 +797,7 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Usa el token `inbox_identifier` que se muestra aquí para autenticar tus clientes API.",
"FORWARD_EMAIL_TITLE": "Reenviar al correo",
"FORWARD_EMAIL_SUB_TEXT": "Empieze a reenviar su emails a la siguiente dirección de email.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Permitir mensajes después de la conversación resuelta",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Permitir a los usuarios finales enviar mensajes incluso después de que la conversación sea resuelta.",
"WHATSAPP_SECTION_SUBHEADER": "Esta clave de API se utiliza para la integración con las APIs de WhatsApp.",
@@ -513,14 +806,38 @@
"WHATSAPP_SECTION_UPDATE_TITLE": "Actualizar Clave API",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Introduzca aquí la nueva Clave API",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Actualizar",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Conectar",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "Token de verificación del Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "Este token se utiliza para verificar la autenticidad del extremo del webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Actualizar configuración de Formulario de Chat"
},
"HELP_CENTER": {
"LABEL": "Centro de ayuda",
"PLACEHOLDER": "Seleccione Centro de Ayuda",
"SELECT_PLACEHOLDER": "Seleccione Centro de Ayuda",
+ "NONE": "Ninguna",
"REMOVE": "Eliminar Centro de Ayuda",
"SUB_TEXT": "Adjuntar un Centro de Ayuda con la bandeja de entrada"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Por favor ingrese un valor mayor a 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limite la cantidad máxima de conversaciones de esta bandeja de entrada que se pueden asignar automáticamente a un agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Asignación de conversación",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Activo",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancelar",
+ "CONFIRM_DELETE": "Eliminar",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizar",
"SUBTITLE": "Su conexión de Facebook expiró, por favor reconecte si página de Facebook para continuar con el servicio",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Idioma",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Volver"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Mensaje no disponible para visitantes",
"TOGGLE_HELP": "Al habilitar el horario de atención se mostraran las horas disponibles en el \"widget\" del chat en vivo si todos los agentes están fuera de línea. Fuera de las horas disponibles los visitantes pueden ser notificado con un mensaje y una forma PreChat.",
"DAY": {
+ "DAY": "Día",
+ "AVAILABILITY": "Disponibilidad",
+ "HOURS": "Horas",
"ENABLE": "Activar la disponibilidad para este día",
"UNAVAILABLE": "No disponible",
- "HOURS": "horas",
"VALIDATION_ERROR": "La hora de inicio debe ser antes de la hora de cierre.",
"CHOOSE": "Elegir"
},
@@ -606,7 +1042,8 @@
"LABEL": "Contraseña",
"PLACE_HOLDER": "Contraseña"
},
- "ENABLE_SSL": "Activar SSL"
+ "ENABLE_SSL": "Activar SSL",
+ "AUTH_MECHANISM": "Autenticación"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "En un día"
},
"WIDGET_COLOR_LABEL": "Color del widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posición de Bubble del Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo de Burbuja de Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatea con nosotros",
- "LABEL": "Título del lanzador Bubble de Widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatea con nosotros"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Predeterminado",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalmente responde en unos minutos",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Otros proveedores"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Otros proveedores",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Sitio web",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mail",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Canal API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/index.js b/app/javascript/dashboard/i18n/locale/es/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/es/index.js
+++ b/app/javascript/dashboard/i18n/locale/es/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/es/integrationApps.json b/app/javascript/dashboard/i18n/locale/es/integrationApps.json
index d4c77180c..6c2269aff 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Obteniendo integraciones",
- "NO_HOOK_CONFIGURED": "No hay integraciones de %{integrationId} configuradas en ésta cuenta.",
+ "NO_HOOK_CONFIGURED": "No hay integraciones de {integrationId} configuradas en ésta cuenta.",
"HEADER": "Aplicaciones",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Buscar...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Activado",
"DISABLED": "Deshabilitado"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Obteniendo hooks de integración",
"INBOX": "Bandeja de entrada",
+ "ACTIONS": "Acciones",
"DELETE": {
"BUTTON_TEXT": "Eliminar"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Seleccione una bandeja de entrada"
},
"SUBMIT": "Crear",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancelar"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Desconectar"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow es una plataforma de comprensión del lenguaje natural que facilita el diseño e integración de una interfaz de usuario conversacional en su aplicación móvil, aplicación web, dispositivo, bot, sistema interactivo de respuesta de voz, etc.
La integración de Dialogflow con %{installationName} le permite configurar un bot de Dialogflow con sus bandejas de entrada que permite al bot manejar las consultas inicialmente y entregarlas a un agente cuando sea necesario. El dialogflow se puede utilizar para calificar a los clientes potenciales, reducir la carga de trabajo de los agentes proporcionando preguntas frecuentes, etc.
Para añadir Dialogflow, necesita crear una cuenta de servicio en la consola del proyecto de Google y compartir las credenciales. Consulte la documentación de Dialogflow para obtener más información."
+ "DIALOGFLOW": "Dialogflow es una plataforma de procesamiento del lenguaje natural para construir interfaces de conversación. Integrándolo con {installationName} permite a los bots gestionar consultas primero y transferirlas a los agentes cuando sea necesario. Ayuda a calificar a los clientes potenciales y a reducir la carga de trabajo de los agentes respondiendo a las preguntas frecuentes. Para añadir Dialogflow, cree una cuenta de servicio en la consola de Google y comparta las credenciales. Consulte la documentación para obtener más detalles"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/integrations.json b/app/javascript/dashboard/i18n/locale/es/integrations.json
index abbe73c58..c04f79403 100644
--- a/app/javascript/dashboard/i18n/locale/es/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/es/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Cancelar",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integraciones",
+ "DESCRIPTION": "Chatwoot se integra con múltiples herramientas y servicios para mejorar la eficiencia de tu equipo. Explora la lista de abajo para configurar tus aplicaciones favoritas.",
+ "LEARN_MORE": "Más información acerca de integraciones",
+ "LOADING": "Obteniendo integraciones",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "El capitán no está habilitado en tu cuenta.",
+ "CLICK_HERE_TO_CONFIGURE": "Haz clic aquí para configurar",
+ "LOADING_CONSOLE": "Cargando consola del capitán...",
+ "FAILED_TO_LOAD_CONSOLE": "No se pudo cargar la consola del capitán. Por favor, actualiza e inténtalo de nuevo."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Eventos suscritos",
+ "LEARN_MORE": "Aprenda más sobre webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancelar",
"DESC": "Los eventos Webhook te proporcionan la información en tiempo real sobre lo que está sucediendo en tu cuenta de Chatwoot. Por favor, introduce una URL válida para configurar un callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "URL de Webhook",
- "PLACEHOLDER": "Ejemplo: https://example/api/webhook",
+ "PLACEHOLDER": "Ejemplo: {webhookExampleURL}",
"ERROR": "Por favor, introduzca una URL válida"
},
"EDIT_SUBMIT": "Actualizar webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "No hay webhooks configurados para esta cuenta.",
"TITLE": "Administrar webhooks",
- "TABLE_HEADER": [
- "Final de Webhook",
- "Acciones"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Final de Webhook",
+ "ACTIONS": "Acciones"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Editar",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Confirmar eliminación",
- "MESSAGE": "¿Está seguro de eliminar el webhook? (%{webhookURL})",
+ "MESSAGE": "¿Está seguro de eliminar el webhook? ({webhookURL})",
"YES": "Sí, eliminar ",
"NO": "No, mantenerlo"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Eliminar",
"DELETE_CONFIRMATION": {
"TITLE": "Eliminar la integración",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "¿Cómo utilizar la Integración Slack?",
- "BODY": "
Chatwoot ahora sincronizará todas las conversaciones entrantes en el canal de conversaciones del cliente dentro de tu lugar de trabajo slack.
Respondiendo a un tema de conversación en conversaciones de clientes canal de slack creará una respuesta al cliente a través de chatwoot.
Inicie las respuestas con nota: para crear notas privadas en lugar de respuestas.
Si el respondente de slack tiene un perfil de agente en el chatwoot bajo el mismo correo electrónico, las respuestas se asociarán en consecuencia.
Cuando el replicador no tiene un perfil de agente asociado, las respuestas se harán con el perfil del bot.
",
+ "BODY": "Con esta integración, todas tus conversaciones entrantes serán sincronizadas con el canal ***{selectedChannelName}*** en tu espacio de trabajo en Slack. Puedes administrar todas tus conversaciones con los clientes directamente en tu canal y nunca perder un mensaje.\n\nEstas son las principales características de la integración:\n\n**Responda a conversaciones desde Slack:** Para responder a una conversación en el canal Slack ***{selectedChannelName}***, simplemente escriba el mensaje y envíalo como un hilo. Esto creará una respuesta que se enviará al cliente mediante Chatwoot. ¡Es así de simple!\n\n**Crea notas privadas:** Si quieres crear una nota privada en lugar de una respuesta, comience su mensaje con ***`note:`***. Esto asegurará que tu mensaje se mantenga privado y no será visible al cliente.\n\n**Asociar un perfil de agente:** Si la persona que responde en Slack tiene un agente de perfil en Chatwoot bajo el mismo correo electrónico, las respuestas serán asociadas con ese perfil de agente automáticamente. Esto quiere decir que puedes fácilmente estar al tanto de quién dijo qué y cuándo. Por el otro lado, cuando la persona que responde no tiene un perfil de agente, las respuestas aparecerán desde el perfil de bot al cliente.",
"SELECTED": "seleccionado"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "Asistencia AI",
- "WITH_AI": " %{option} con IA ",
+ "WITH_AI": " {option} con IA ",
"OPTIONS": {
"REPLY_SUGGESTION": "Responder sugerencia",
"SUMMARIZE": "Resumir",
@@ -114,7 +161,29 @@
"EXPAND": "Expandir",
"MAKE_FRIENDLY": "Cambiar tono de mensaje a amigable",
"MAKE_FORMAL": "Usar tono formal",
- "SIMPLIFY": "Simplificar"
+ "SIMPLIFY": "Simplificar",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amigable"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Contenido de borrador",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Añadir una nueva aplicación",
"SIDEBAR_TXT": "Aplicaciones de panel
Aplicaciones de panel de control permiten a las organizaciones incrustar una aplicación dentro del panel de control de Chatwoot para proporcionar el contexto para los agentes de atención al cliente. Esta característica le permite crear una aplicación de forma independiente e incrustarla dentro del panel de control para proporcionar información de usuario, sus pedidos, o su historial de pagos anterior.
Cuando incrustas tu aplicación usando el panel de control en Chatwoot, tu aplicación obtendrá el contexto de la conversación y el contacto como un evento de ventana. Implementa un oyente para el evento del mensaje en tu página para recibir el contexto.
Para añadir una nueva aplicación de panel, haga clic en el botón 'Añadir una nueva aplicación de panel'.
",
"DESCRIPTION": "Las aplicaciones de panel permiten a las organizaciones incrustar una aplicación dentro del panel de control para proporcionar el contexto para los agentes de soporte al cliente. Esta función le permite crear una aplicación de forma independiente e incrustada para proporcionar información de usuario, sus pedidos o su historial de pagos anterior.",
+ "LEARN_MORE": "Aprende más sobre el panel de aplicaciones",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Todavía no hay aplicaciones configuradas en esta cuenta",
"LOADING": "Obteniendo aplicaciones del tablero...",
- "TABLE_HEADER": [
- "Nombre",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Acciones"
+ },
"EDIT_TOOLTIP": "Editar aplicación",
"DELETE_TOOLTIP": "Eliminar aplicación"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Sí, eliminarlo",
"CONFIRM_NO": "No, mantenerlo",
"TITLE": "Confirme eliminación",
- "MESSAGE": "¿Está seguro que desea eliminar la aplicación - %{appName}?",
+ "MESSAGE": "¿Está seguro que desea eliminar la aplicación - {appName}?",
"API_SUCCESS": "Panel de control eliminado con éxito",
"API_ERROR": "No pudimos eliminar la aplicación. Por favor, inténtalo de nuevo más tarde"
}
+ },
+ "LINEAR": {
+ "HEADER": "Lineal",
+ "ADD_OR_LINK_BUTTON": "Crear/Enlazar Problema Linear",
+ "LOADING": "Cargando problemas lineales...",
+ "LOADING_ERROR": "Hubo un error al recuperar los problemas lineales, por favor inténtalo de nuevo",
+ "CREATE": "Crear",
+ "LINK": {
+ "SEARCH": "Buscar problemas",
+ "SELECT": "Seleccionar problema",
+ "TITLE": "Enlace",
+ "EMPTY_LIST": "No se encontraron problemas lineales",
+ "LOADING": "Cargando",
+ "ERROR": "Hubo un error al recuperar los problemas lineales, por favor inténtalo de nuevo",
+ "LINK_SUCCESS": "Incidencia enlazada correctamente",
+ "LINK_ERROR": "Ocurrió un error al enlazar la incidencia. Inténtelo de nuevo",
+ "LINK_TITLE": "Conversación (#{conversationId}) con {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Crear/enlazar incidencia con Linear",
+ "DESCRIPTION": "Crear incidencias en Linear desde conversaciones, o enlazar existentes para un seguimiento fluido.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Introducir título",
+ "REQUIRED_ERROR": "El título es obligatorio"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Introducir descripción"
+ },
+ "TEAM": {
+ "LABEL": "Equipo",
+ "PLACEHOLDER": "Seleccionar equipo",
+ "SEARCH": "Buscar equipos",
+ "REQUIRED_ERROR": "El equipo es requerido"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Cesionario",
+ "PLACEHOLDER": "Seleccionar asignado",
+ "SEARCH": "Buscar asignado"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioridad",
+ "PLACEHOLDER": "Seleccionar prioridad",
+ "SEARCH": "Buscar prioridad"
+ },
+ "LABEL": {
+ "LABEL": "Etiqueta",
+ "PLACEHOLDER": "Seleecionar etiqueta",
+ "SEARCH": "Buscar etiqueta"
+ },
+ "STATUS": {
+ "LABEL": "Estado",
+ "PLACEHOLDER": "Seleccionar estado",
+ "SEARCH": "Buscar estado"
+ },
+ "PROJECT": {
+ "LABEL": "Proyecto",
+ "PLACEHOLDER": "Seleccionar proyecto",
+ "SEARCH": "Buscar proyecto"
+ }
+ },
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar",
+ "CREATE_SUCCESS": "Incidencia creada correctamente",
+ "CREATE_ERROR": "Hubo un error creando la incidencia. Inténtalo de nuevo",
+ "LOADING_TEAM_ERROR": "Hubo un error al coger los equipos. Inténtalo de nuevo",
+ "LOADING_TEAM_ENTITIES_ERROR": "Hubo un error al coger las entidades del equipo. Inténtalo de nuevo"
+ },
+ "ISSUE": {
+ "STATUS": "Estado",
+ "PRIORITY": "Prioridad",
+ "ASSIGNEE": "Cesionario",
+ "LABELS": "Etiquetas",
+ "CREATED_AT": "Creado en {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Desenlazar",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Sí, eliminar",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Capitán",
+ "HEADER_KNOW_MORE": "Más información",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asistentes",
+ "SWITCH_ASSISTANT": "Cambiar entre asistentes",
+ "NEW_ASSISTANT": "Crear asistente",
+ "EMPTY_LIST": "No se encontraron asistentes. Crea uno para comenzar"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Prueba estas sugerencias",
+ "PANEL_TITLE": "Comienza con Copilot",
+ "KICK_OFF_MESSAGE": "¿Necesitas un resumen rápido, revisar conversaciones anteriores o redactar una mejor respuesta? Copilot está aquí para agilizarlo.",
+ "SEND_MESSAGE": "Enviar mensaje...",
+ "EMPTY_MESSAGE": "Se produjo un error al generar la respuesta. Inténtalo de nuevo.",
+ "LOADER": "Captain está pensando",
+ "YOU": "Tú",
+ "USE": "Usar esto",
+ "RESET": "Restablecer",
+ "SHOW_STEPS": "Mostrar pasos",
+ "SELECT_ASSISTANT": "Seleccionar asistente",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Resume esta conversación",
+ "CONTENT": "Resume los puntos clave tratados entre el cliente y el agente de soporte, incluidas las inquietudes y preguntas del cliente, así como las soluciones o respuestas proporcionadas por el agente de soporte."
+ },
+ "SUGGEST": {
+ "LABEL": "Sugerir una respuesta",
+ "CONTENT": "Analiza la consulta del cliente y redacta una respuesta que aborde eficazmente sus dudas o preguntas. Asegúrate de que la respuesta sea clara, concisa y útil."
+ },
+ "RATE": {
+ "LABEL": "Califica esta conversación",
+ "CONTENT": "Revisa la conversación para evaluar qué tan bien satisface las necesidades del cliente. Comparte una calificación sobre 5 basada en el tono, la claridad y la eficacia."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Conversaciones de alta prioridad",
+ "CONTENT": "Dame un resumen de todas las conversaciones abiertas de alta prioridad. Incluye el ID de la conversación, el nombre del cliente (si está disponible), el contenido del último mensaje y el agente asignado. Agrupa por estado si es relevante."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Listar contactos",
+ "CONTENT": "Muéstrame la lista de los 10 contactos principales. Incluye el nombre, el correo electrónico o número de teléfono (si está disponible), la hora de la última actividad y las etiquetas (si las hay)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Tú",
+ "ASSISTANT": "Asistente",
+ "MESSAGE_PLACEHOLDER": "Escribe tu mensaje...",
+ "HEADER": "Zona de pruebas",
+ "DESCRIPTION": "Usa esta zona de pruebas para enviar mensajes a tu asistente y comprobar si responde con precisión, rapidez y con el tono que esperas.",
+ "CREDIT_NOTE": "Los mensajes enviados aquí contarán para tus créditos de Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Actualiza para usar Captain AI",
+ "AVAILABLE_ON": "Captain no está disponible en el plan gratuito.",
+ "UPGRADE_PROMPT": "Actualiza tu plan para obtener acceso a nuestros asistentes, Copilot y más.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI solo está disponible en los planes Enterprise.",
+ "UPGRADE_PROMPT": "Actualiza tu plan para obtener acceso a nuestros asistentes, Copilot y más.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ },
+ "BANNER": {
+ "RESPONSES": "Has usado más del 80 % de tu límite de respuestas. Para seguir usando Captain AI, actualiza tu plan.",
+ "DOCUMENTS": "Se alcanzó el límite de documentos. Actualiza para seguir usando Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Cancelar",
+ "CREATE": "Crear",
+ "EDIT": "Actualizar"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Descripción",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Ajustes",
+ "BASIC_SETTINGS": {
+ "TITLE": "Configuraciones básicas",
+ "DESCRIPTION": "Personaliza lo que dice el asistente al finalizar una conversación o al transferirla a una persona."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Personaliza lo que dice el asistente al finalizar una conversación o al transferirla a una persona."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eliminar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Buscar..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eliminar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Buscar..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eliminar"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Crear",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancelar",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Buscar..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eliminar",
+ "BULK_SYNC_BUTTON": "Actualizar",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Buscar..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "actualizando...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Página no encontrada",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Abrir facturación",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Ninguna",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Clave de API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Contraseña",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Requerido"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "Preguntas frecuentes",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Eliminar",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Todos"
+ },
+ "STATUS": {
+ "TITLE": "Estado",
+ "PENDING": "Pendientes",
+ "APPROVED": "Approved",
+ "ALL": "Todos"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Editar",
+ "DELETE_RESPONSE": "Eliminar"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Desconectar"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sí, eliminar",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Bandeja de entrada",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
index 50fce31e8..bcb172cb0 100644
--- a/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/es/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etiquetas",
"HEADER_BTN_TXT": "Añadir etiqueta",
"LOADING": "Obteniendo etiquetas",
+ "DESCRIPTION": "Las etiquetas le ayudan a clasificar y priorizar conversaciones y clientes potenciales. Puede asignar una etiqueta a una conversación o contacto usando el panel lateral.",
+ "LEARN_MORE": "Aprende más sobre etiquetas",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Buscar etiquetas...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "No hay elementos que coincidan con esta consulta",
- "SIDEBAR_TXT": "Etiquetas
Las etiquetas le ayudan a categorizar las conversaciones y priorizarlas. Puede asignar la etiqueta a una conversación desde el panel lateral.
Las etiquetas están vinculadas a la cuenta y pueden utilizarse para crear flujos de trabajo personalizados en su organización. Puede asignar un color personalizado a una etiqueta, hace más fácil identificarla. Podrá mostrar la etiqueta en la barra lateral para filtrar las conversaciones fácilmente.
",
"LIST": {
"404": "No hay etiquetas disponibles en esta cuenta.",
"TITLE": "Gestionar etiquetas",
"DESC": "Las etiquetas permiten agrupar las conversaciones.",
- "TABLE_HEADER": [
- "Nombre",
- "Descripción",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "DESCRIPTION": "Descripción",
+ "COLOR": "Color",
+ "ACTION": "Acciones"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Descartar",
"ADD_SELECTED_LABELS": "Asignar etiquetas seleccionadas",
"ADD_SELECTED_LABEL": "Añadir etiqueta seleccionada",
- "ADD_ALL_LABELS": "Añadir todas las etiquetas"
+ "ADD_ALL_LABELS": "Añadir todas las etiquetas",
+ "SUGGESTED_LABELS": "Etiquetas sugeridas"
},
"ADD": {
"TITLE": "Añadir etiqueta",
diff --git a/app/javascript/dashboard/i18n/locale/es/login.json b/app/javascript/dashboard/i18n/locale/es/login.json
index d2ccdf7b4..f174044e5 100644
--- a/app/javascript/dashboard/i18n/locale/es/login.json
+++ b/app/javascript/dashboard/i18n/locale/es/login.json
@@ -3,7 +3,7 @@
"TITLE": "Iniciar sesión en Chatwoot",
"EMAIL": {
"LABEL": "E-mail",
- "PLACEHOLDER": "Email por ejemplo: alguien@ejemplo.com",
+ "PLACEHOLDER": "ejemplo{'@'}nombredeempresa.com",
"ERROR": "Por favor, introduzca una dirección de correo válida"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "¿Olvidaste tu contraseña?",
"CREATE_NEW_ACCOUNT": "Crear nueva cuenta",
- "SUBMIT": "Iniciar sesión"
+ "SUBMIT": "Iniciar sesión",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/macros.json b/app/javascript/dashboard/i18n/locale/es/macros.json
index c9a74ceea..42c628897 100644
--- a/app/javascript/dashboard/i18n/locale/es/macros.json
+++ b/app/javascript/dashboard/i18n/locale/es/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "Una macro es un conjunto de acciones guardadas que ayudan a los agentes de servicio al cliente a completar fácilmente las tareas. Los agentes pueden definir un conjunto de acciones como etiquetar una conversación con una etiqueta, enviar una transcripción de correo electrónico, actualizar un atributo personalizado, etc. y pueden ejecutar estas acciones en un solo clic.",
+ "LEARN_MORE": "Más información sobre macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Añadir una nueva macro",
"HEADER_BTN_TXT_SAVE": "Guardar macro",
"LOADING": "Obteniendo macros",
- "SIDEBAR_TXT": "Macros
Una macro es un conjunto de acciones guardadas que ayudan a los agentes de servicio al cliente a completar fácilmente tareas. Los agentes pueden definir un conjunto de acciones como etiquetar una conversación con una etiqueta, enviar una transcripción de correo electrónico, actualizar un atributo personalizado, etc. y pueden ejecutar estas acciones en un solo clic. Cuando los agentes ejecutan la macro, las acciones se realizarían secuencialmente en el orden en que se definen. Las macros mejoran la productividad y aumentan la consistencia en las acciones.
Una macro puede ser útil de 2 maneras.
Como agente de asistencia: Si un agente realiza un conjunto de acciones múltiples veces, pueden guardarlo como una macro y ejecutar todas las acciones juntas usando un solo clic.
Como opción a bordo de un miembro del equipo: Cada agente tiene que realizar muchas comprobaciones/acciones diferentes durante cada conversación. Incorporar un nuevo miembro del equipo de soporte será fácil si las macros predefinidas están disponibles en la cuenta. En lugar de describir cada paso en detalle, el jefe de equipo puede señalar las macros utilizadas en diferentes escenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Algo salió mal. Por favor, inténtalo de nuevo",
"ORDER_INFO": "Las macros se ejecutarán en el orden en que añadas sus acciones. Puede reorganizarlas arrastrándolas por el manejador al lado de cada nodo.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nombre",
- "Creado por",
- "Última actualización por",
- "Visibilidad"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nombre",
+ "CREATED BY": "Creado por",
+ "LAST_UPDATED_BY": "Última actualización por",
+ "VISIBILITY": "Visibilidad",
+ "ACTIONS": "Acciones"
+ },
"404": "No se encontraron macros"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Hubo un error al eliminar la macro. Por favor, inténtalo de nuevo más tarde"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Editar macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Visibilidad de macro",
"GLOBAL": {
"LABEL": "Público",
- "DESCRIPTION": "Esta macro está disponible públicamente para todos los agentes de esta cuenta."
+ "DESCRIPTION": "Esta macro está disponible públicamente para todos los agentes de esta cuenta.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privado",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Ejecutar",
"PREVIEW": "Previsualizar macro",
"EXECUTED_SUCCESSFULLY": "Macro ejecutado correctamente"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Clave de atributo es requerida",
+ "FILTER_OPERATOR_REQUIRED": "El operador de filtro es requerido",
+ "VALUE_REQUIRED": "El valor es requerido",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "El valor debe ser entre 1 y 998",
+ "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": "Asignar equipo",
+ "ASSIGN_AGENT": "Assign an Agent",
+ "ADD_LABEL": "Añadir etiqueta",
+ "REMOVE_LABEL": "Eliminar etiqueta",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "Enviar transcripción por correo",
+ "MUTE_CONVERSATION": "Silenciar Conversación",
+ "SNOOZE_CONVERSATION": "Posponer conversación",
+ "RESOLVE_CONVERSATION": "Resolver conversación",
+ "SEND_ATTACHMENT": "Enviar archivo adjunto",
+ "SEND_MESSAGE": "Enviar mensaje",
+ "CHANGE_PRIORITY": "Cambiar prioridad",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Enviar Evento de Webhook"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Ninguna",
+ "LOW": "Baja",
+ "MEDIUM": "Media",
+ "HIGH": "Alta",
+ "URGENT": "Urgente"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/mfa.json b/app/javascript/dashboard/i18n/locale/es/mfa.json
new file mode 100644
index 000000000..0a395e2bc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Activado",
+ "DISABLED": "Deshabilitado",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Cargando...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copiar",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancelar",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Descargar",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Contraseña",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancelar",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancelar",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/onboarding.json b/app/javascript/dashboard/i18n/locale/es/onboarding.json
new file mode 100644
index 000000000..9f2ceb5f3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mail",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Sitio web",
+ "LANGUAGE": "Idioma",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Seleccione la zona horaria",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Guardando...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/report.json b/app/javascript/dashboard/i18n/locale/es/report.json
index 896951ebf..9d04c80c6 100644
--- a/app/javascript/dashboard/i18n/locale/es/report.json
+++ b/app/javascript/dashboard/i18n/locale/es/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversaciones",
"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_AGENT_REPORTS": "Descargar reportes de agente",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Error al obtener datos, por favor intente nuevamente.",
"SUMMARY_FETCHING_FAILED": "No se pudo obtener el resumen, por favor inténtalo de nuevo más tarde.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Tiempo de primera respuesta",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "Tiempo de primera respuesta es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "Tiempo de primera respuesta es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_TIME": {
"NAME": "Tiempo de resolución",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "El tiempo de resolución es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "El tiempo de resolución es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_COUNT": {
"NAME": "Número de resoluciones",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Número de resoluciones",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Recuento de traspasos",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Tiempo de espera del cliente",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "El tiempo de espera es {metricValue} (basado en {conversationCount} conversaciones)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Últimos 7 días",
+ "LAST_14_DAYS": "Últimos 14 días",
"LAST_30_DAYS": "Últimos 30 días",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Último año",
"CUSTOM_DATE_RANGE": "Rango de fechas personalizado"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Últimos 7 días"
- },
- {
- "id": 1,
- "name": "Últimos 30 días"
- },
- {
- "id": 2,
- "name": "Últimos 3 meses"
- },
- {
- "id": 3,
- "name": "Últimos 6 meses"
- },
- {
- "id": 4,
- "name": "Último año"
- },
- {
- "id": 5,
- "name": "Rango de fechas personalizado"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Aplicar",
"PLACEHOLDER": "Seleccione rango de fechas"
@@ -130,14 +116,28 @@
"groupBy": "Mes"
}
],
- "BUSINESS_HOURS": "Horarios"
+ "BUSINESS_HOURS": "Horarios",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Limpiar filtros",
+ "EMPTY_LIST": "No se encontraron resultados"
+ },
+ "PAGINATION": {
+ "RESULTS": "Mostrando {start} a {end} de {total} resultados",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Resumen de agentes",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Descargar reportes de agente",
"FILTER_DROPDOWN_LABEL": "Seleccionar agente",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Buscar agentes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -155,13 +155,13 @@
"NAME": "Tiempo de primera respuesta",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "Tiempo de primera respuesta es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "Tiempo de primera respuesta es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_TIME": {
"NAME": "Tiempo de resolución",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "El tiempo de resolución es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "El tiempo de resolución es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_COUNT": {
"NAME": "Número de resoluciones",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Seleecionar etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Buscar etiquetas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -222,13 +228,13 @@
"NAME": "Tiempo de primera respuesta",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "Tiempo de primera respuesta es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "Tiempo de primera respuesta es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_TIME": {
"NAME": "Tiempo de resolución",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "El tiempo de resolución es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "El tiempo de resolución es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_COUNT": {
"NAME": "Número de resoluciones",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Resumen de bandeja de entrada",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Descargar reportes de bandeja de entrada",
"FILTER_DROPDOWN_LABEL": "Seleccione una bandeja de entrada",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -289,13 +303,13 @@
"NAME": "Tiempo de primera respuesta",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "Tiempo de primera respuesta es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "Tiempo de primera respuesta es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_TIME": {
"NAME": "Tiempo de resolución",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "El tiempo de resolución es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "El tiempo de resolución es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_COUNT": {
"NAME": "Número de resoluciones",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Vista general del equipo",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Descargar informes del equipo",
"FILTER_DROPDOWN_LABEL": "Seleccionar equipo",
+ "FILTERS": {
+ "ADD_FILTER": "Añadir Filtro",
+ "CLEAR_ALL": "Limpiar todo",
+ "NO_FILTER": "No hay filtros disponibles",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Buscar equipos"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversaciones",
@@ -356,13 +379,13 @@
"NAME": "Tiempo de primera respuesta",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "Tiempo de primera respuesta es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "Tiempo de primera respuesta es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_TIME": {
"NAME": "Tiempo de resolución",
"DESC": "( Media )",
"INFO_TEXT": "Número total de conversaciones utilizadas en el cálculo:",
- "TOOLTIP_TEXT": "El tiempo de resolución es %{metricValue} (basado en %{conversationCount} conversaciones)"
+ "TOOLTIP_TEXT": "El tiempo de resolución es {metricValue} (basado en {conversationCount} conversaciones)"
},
"RESOLUTION_COUNT": {
"NAME": "Número de resoluciones",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Reporte de encuestas de satisfacción",
- "NO_RECORDS": "No hay respuestas de encuestas de satisfacción disponibles.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Descargar reportes CSAT",
"DOWNLOAD_FAILED": "Error al descargar los informes CSAT",
"FILTERS": {
+ "ADD_FILTER": "Añadir Filtro",
+ "CLEAR_ALL": "Limpiar todo",
+ "NO_FILTER": "No hay filtros disponibles",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Buscar agentes",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Buscar equipos",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Elegir agentes"
+ "LABEL": "Agente"
+ },
+ "INBOXES": {
+ "LABEL": "Bandeja de entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equipo"
+ },
+ "RATINGS": {
+ "LABEL": "Calificación"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contacto",
- "AGENT_NAME": "Agente asignado",
+ "AGENT_NAME": "Agente",
"RATING": "Calificación",
- "FEEDBACK_TEXT": "Realimentacion de Comentario"
- }
+ "FEEDBACK_TEXT": "Realimentacion de Comentario",
+ "CONVERSATION": "Conversación",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Respuesta",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respuestas",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Tasa de respuesta",
"TOOLTIP": "Número total de respuestas / Número total de mensajes de la encuesta de satisfacción enviados * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Guardar",
+ "CANCEL": "Cancelar",
+ "SAVING": "Guardando...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Informes de bot",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Núm. de conversaciones",
+ "TOOLTIP": "Número total de conversaciones manejadas por el bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total de respuestas",
+ "TOOLTIP": "Número total de respuestas enviadas por el bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Tiempo de resolución",
+ "TOOLTIP": "Número total de conversaciones resueltas por el bot / Número total de conversaciones manejadas por el bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Tasa de traspasos",
+ "TOOLTIP": "Número total de conversaciones transmitidas a agentes / Número total de conversaciones manejadas por el bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Tráfico de Conversación",
"NO_CONVERSATIONS": "No hay conversaciones",
- "CONVERSATION": "%{count} conversación",
- "CONVERSATIONS": "%{count} conversaciones"
+ "CONVERSATION": "{count} conversación",
+ "CONVERSATIONS": "{count} conversaciones",
+ "DOWNLOAD_REPORT": "Descargar reporte"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No hay conversaciones",
+ "CONVERSATION": "{count} conversación",
+ "CONVERSATIONS": "{count} conversaciones",
+ "DOWNLOAD_REPORT": "Descargar reporte"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversaciones por agentes",
@@ -456,7 +553,19 @@
"NO_AGENTS": "No hay conversaciones por agentes",
"TABLE_HEADER": {
"AGENT": "Agente",
- "OPEN": "ABIERTA",
+ "OPEN": "Abrir",
+ "UNATTENDED": "Desatendido",
+ "STATUS": "Estado"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Equipo",
+ "OPEN": "Abrir",
"UNATTENDED": "Desatendido",
"STATUS": "Estado"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Jueves",
"FRIDAY": "Viernes",
"SATURDAY": "Sábado"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "Informes de SLA",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Cargando datos de SLA...",
+ "DOWNLOAD_SLA_REPORTS": "Descargar reportes de SLA",
+ "DOWNLOAD_FAILED": "Error al descargar los informes de SLA",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Añadir Filtro",
+ "CLEAR_ALL": "Limpiar todo",
+ "CLEAR_FILTER": "Limpiar filtros",
+ "EMPTY_LIST": "No se encontraron resultados",
+ "NO_FILTER": "No hay filtros disponibles",
+ "SEARCH": "Buscar filtro",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "Nombre de SLA",
+ "AGENTS": "Nombre del agente",
+ "INBOXES": "Nombre de la bandeja de entrada",
+ "LABELS": "Nombre de la etiqueta",
+ "TEAMS": "Nombre del equipo"
+ },
+ "SLA": "Política de SLA",
+ "INBOXES": "Bandeja de entrada",
+ "AGENTS": "Agente",
+ "LABELS": "Etiqueta",
+ "TEAMS": "Equipo"
+ },
+ "WITH": "con",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Tasa de Aciertos",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Número de Fallos",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Número de conversaciones",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Política",
+ "CONVERSATION": "Conversación",
+ "AGENT": "Agente"
+ },
+ "VIEW_DETAILS": "Ver detalles"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Número de resoluciones",
+ "CONVERSATIONS": "Núm. de conversaciones"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/search.json b/app/javascript/dashboard/i18n/locale/es/search.json
index 7ba67702e..1c0a13a8d 100644
--- a/app/javascript/dashboard/i18n/locale/es/search.json
+++ b/app/javascript/dashboard/i18n/locale/es/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Todos",
+ "ALL": "All results",
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversaciones",
- "MESSAGES": "Mensajes"
+ "MESSAGES": "Mensajes",
+ "ARTICLES": "Artículos"
},
"SECTION": {
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversaciones",
- "MESSAGES": "Mensajes"
+ "MESSAGES": "Mensajes",
+ "ARTICLES": "Artículos"
},
- "EMPTY_STATE": "Ningún %{item} encontrado para la consulta '%{query}'",
- "EMPTY_STATE_FULL": "No se han encontrado resultados para la consulta '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ para enfocar",
+ "VIEW_MORE": "Ver más",
+ "LOAD_MORE": "Cargar más",
+ "SEARCHING_DATA": "Buscando",
+ "LOADING_DATA": "Cargando",
+ "EMPTY_STATE": "Ningún {item} encontrado para la consulta '{query}'",
+ "EMPTY_STATE_FULL": "No se han encontrado resultados para la consulta '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/para enfocar",
"INPUT_PLACEHOLDER": "Buscar mensajes, contactos o conversaciones",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Limpiar todo",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Buscar por Id de conversación, correo electrónico, número de teléfono, mensajes para mejores resultados de búsqueda.",
"BOT_LABEL": "Bot",
"READ_MORE": "Leer más",
+ "READ_LESS": "Read less",
"WROTE": "escribió:",
- "FROM": "De",
- "EMAIL": "email"
+ "FROM": "Desde",
+ "EMAIL": "E-mail",
+ "EMAIL_SUBJECT": "Asunto",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "creado {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Últimos 7 días",
+ "LAST_30_DAYS": "Últimos 30 días",
+ "LAST_60_DAYS": "Últimos 60 días",
+ "LAST_90_DAYS": "Últimos 90 días",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "y",
+ "APPLY": "Aplicar",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Limpiar filtros"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Remitente",
+ "IN": "Bandeja de entrada",
+ "AGENTS": "Agentes",
+ "CONTACTS": "Contactos",
+ "INBOXES": "Entradas",
+ "NO_AGENTS": "No se encontraron agentes",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/settings.json b/app/javascript/dashboard/i18n/locale/es/settings.json
index c32b29972..be7747902 100644
--- a/app/javascript/dashboard/i18n/locale/es/settings.json
+++ b/app/javascript/dashboard/i18n/locale/es/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Su contraseña se ha cambiado correctamente",
"AFTER_EMAIL_CHANGED": "Su perfil ha sido actualizado con éxito, por favor inicie sesión de nuevo cuando sus credenciales de inicio de sesión se hayan cambiado",
"FORM": {
+ "PICTURE": "Foto de perfil",
"AVATAR": "Imagen de perfil",
"ERROR": "Por favor, corrija los errores de formulario",
"REMOVE_IMAGE": "Eliminar",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Predeterminado",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Firma de mensaje personal",
"NOTE": "Crea una firma de mensaje única para que aparezca al final de cada mensaje que envíes desde cualquier bandeja de entrada. También puede incluir una imagen en línea, que es soportada en las bandejas de entrada de live-chat, correo electrónico y API.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Firma guardada correctamente",
"IMAGE_UPLOAD_ERROR": "¡No se pudo subir la imagen! Intente nuevamente",
"IMAGE_UPLOAD_SUCCESS": "Imagen agregada satisfactoriamente. Por favor haga clic en salvar para guardar la firma",
- "IMAGE_UPLOAD_SIZE_ERROR": "El tamaño de la imagen debe ser menor que {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "El tamaño de la imagen debe ser menor que {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Firma del mensaje",
@@ -54,15 +81,45 @@
"NOTE": "Actualizar tu contraseña restablecería tus entradas en varios dispositivos.",
"BTN_TEXT": "Cambiar contraseña"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Token de acceso",
- "NOTE": "Este token puede ser usado si estás construyendo una integración basada en API"
+ "NOTE": "Este token puede ser usado si estás construyendo una integración basada en API",
+ "COPY": "Copiar",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "¿Está seguro?",
+ "CONFIRM_HINT": "Haz clic de nuevo para confirmar",
+ "RESET_SUCCESS": "Token de acceso regenerado con éxito",
+ "RESET_ERROR": "No se puede regenerar el token de acceso. Por favor, inténtalo de nuevo"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Notificaciones con sonido",
+ "TITLE": "Alertas de audio",
"NOTE": "Active las notificaciones de sonido en el tablero para los mensajes nuevos y conversaciones.",
+ "PLAY": "Reproducir sonido",
+ "ALERT_TYPES": {
+ "NONE": "Ninguna",
+ "MINE": "Asignado",
+ "ALL": "Todos",
+ "ASSIGNED": "Conversaciones asignadas",
+ "UNASSIGNED": "Conversaciones sin asignar",
+ "NOTME": "Conversaciones abiertas asignadas a otros"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "No ha seleccionado ninguna opción, no recibirá ninguna alerta de audio.",
+ "ASSIGNED": "Recibirás alertas sobre las conversaciones que se te hayan asignado.",
+ "UNASSIGNED": "Recibirás alertas sobre cualquier conversación no asignada.",
+ "NOTME": "Recibirás alertas sobre las conversaciones asignadas a otros.",
+ "ASSIGNED+UNASSIGNED": "Recibirás alertas de tus conversaciones asignadas y de las no atendidas.",
+ "ASSIGNED+NOTME": "Recibirás alertas sobre las conversaciones que te han sido asignadas a ti y a otros, pero no sobre las no asignadas.",
+ "NOTME+UNASSIGNED": "Recibirás alertas de conversaciones desatendidas y de las asignadas a otros.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Recibirás alertas de todas las conversaciones."
+ },
"ALERT_TYPE": {
- "TITLE": "Eventos de alerta:",
+ "TITLE": "Eventos de alerta para conversaciones",
"NONE": "Ninguna",
"ASSIGNED": "Conversaciones asignadas",
"ALL_CONVERSATIONS": "Todas las conversaciones"
@@ -74,7 +131,9 @@
"TITLE": "Condiciones de alerta:",
"CONDITION_ONE": "Enviar alertas de audio sólo si la ventana del navegador no está activa",
"CONDITION_TWO": "Enviar alertas cada 30s hasta que todas las conversaciones asignadas sean leídas"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "La reproducción automática está desactivada en su navegador. Para escuchar las alertas automáticamente, habilite el permiso de sonido en la configuración de su navegador o interactúe con la página.",
+ "READ_MORE": "Leer más"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notificaciones por email",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Enviar notificaciones por correo electrónico cuando se crea una nueva conversación",
"CONVERSATION_MENTION": "Enviar notificaciones por correo electrónico cuando sea mencionado en una conversación",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envirar notificaciones por correo electrónico cuando un nuevo mensaje es creado en una conversación asignada",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificaciones por correo electrónico cuando se crea un nuevo mensaje en una conversación participante"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificaciones por correo electrónico cuando se crea un nuevo mensaje en una conversación participante",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Preferencias de notificación",
+ "TYPE_TITLE": "Tipo de notificación",
+ "EMAIL": "E-mail",
+ "PUSH": "Notificación push",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Se ha creado una nueva conversación",
+ "CONVERSATION_ASSIGNED": "Se te ha asignado una conversación",
+ "CONVERSATION_MENTION": "Has sido mencionado en una conversación",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Un nuevo mensaje se ha creado en una conversación asignada",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Un nuevo mensaje se ha creado en una conversación en la que participas",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Una conversación carece de resolución SLA"
+ },
+ "BROWSER_PERMISSION": "Activa las notificaciones push en tu navegador para que puedas recibirlas"
},
"API": {
"UPDATE_SUCCESS": "Sus preferencias de notificación se actualizaron correctamente",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Enviar notificaciones push cuando un nuevo mensaja es creadao en una conversación asignada",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificaciones push cuando se crea un nuevo mensaje en una conversación participante",
"HAS_ENABLED_PUSH": "Ha habilitado notificaciones push para este navegador.",
- "REQUEST_PUSH": "Habilitar notificaciones push"
+ "REQUEST_PUSH": "Habilitar notificaciones push",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Imagen de perfil"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Disponibilidad",
- "STATUSES_LIST": [
- "En línea",
- "Ocupado",
- "Fuera de línea"
- ],
+ "STATUS": {
+ "ONLINE": "En línea",
+ "BUSY": "Ocupado",
+ "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": "No se puede cambiar la disponibilidad al suplantar a un usuario"
},
"EMAIL": {
"LABEL": "Tu dirección de correo",
@@ -148,12 +231,16 @@
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Cambiar",
"CHANGE_ACCOUNTS": "Cambiar de cuenta",
- "CONTACT_SUPPORT": "Contactar con Soporte",
+ "SWITCH_ACCOUNT": "Cambiar de cuenta",
+ "CONTACT_SUPPORT": "Contactar a soporte",
"SELECTOR_SUBTITLE": "Seleccione una cuenta de la siguiente lista",
"PROFILE_SETTINGS": "Ajustes del perfil",
+ "YEAR_IN_REVIEW": "Resumen del año",
"KEYBOARD_SHORTCUTS": "Atajos de teclado",
"APPEARANCE": "Cambiar apariencia",
- "SUPER_ADMIN_CONSOLE": "Consola de Super Admin",
+ "SUPER_ADMIN_CONSOLE": "Consola SuperAdmin",
+ "DOCS": "Leer la documentación",
+ "CHANGELOG": "Notas de versión",
"LOGOUT": "Cerrar sesión"
},
"APP_GLOBAL": {
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Cuenta suspendida",
"MESSAGE": "Tu cuenta está suspendida. Comuníquese con el equipo de soporte para obtener más información."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Cerrar sesión"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Descargar",
"UPLOADING": "Subiendo...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Esta historia ya no está disponible."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Esta historia ya no está disponible.",
+ "INSTAGRAM_STORY_REPLY": "Respondió a su historia:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Ver en el mapa"
},
"FORM_BUBBLE": {
"SUBMIT": "Enviar"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Esta imagen ya no está disponible.",
+ "LOADING_FAILED": "Error al cargar"
}
},
"CONFIRM_EMAIL": "Verificando...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No hay elementos",
"CURRENTLY_VIEWING_ACCOUNT": "Visualizando:",
"SWITCH": "Cambiar",
+ "INBOX_VIEW": "Vista del buzón",
"CONVERSATIONS": "Conversaciones",
- "INBOX": "Bandeja de entrada",
+ "INBOX": "Mi bandeja de entrada",
"ALL_CONVERSATIONS": "Todas las conversaciones",
"MENTIONED_CONVERSATIONS": "Menciones",
"PARTICIPATING_CONVERSATIONS": "Participar",
@@ -208,6 +308,18 @@
"REPORTS": "Informes",
"SETTINGS": "Ajustes",
"CONTACTS": "Contactos",
+ "ACTIVE": "Activo",
+ "COMPANIES": "Empresas",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Capitán",
+ "CAPTAIN_ASSISTANTS": "Asistentes",
+ "CAPTAIN_DOCUMENTS": "Documentos",
+ "CAPTAIN_RESPONSES": "Preguntas frecuentes",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Entradas",
+ "CAPTAIN_SETTINGS": "Ajustes",
"HOME": "Inicio",
"AGENTS": "Agentes",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Nuevo buzón",
"REPORTS_CONVERSATION": "Conversaciones",
"CSAT": "Encuestas de Satisfacción",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campañas",
"ONGOING": "En Curso",
"ONE_OFF": "One Off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agentes",
"REPORTS_LABEL": "Etiquetas",
"REPORTS_INBOX": "Bandeja de entrada",
"REPORTS_TEAM": "Equipo",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Ponte como",
+ "SET_YOUR_AVAILABILITY": "Establecer su disponibilidad",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Roles personalizados",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Resumen",
- "FACEBOOK_REAUTHORIZE": "Su conexión de Facebook expiró, por favor reconecte si página de Facebook para continuar con el servicio",
+ "REAUTHORIZE": "Su sesión ha expirado, por favor, vuelva a conectarse para continuar recibiendo y enviando mensajes",
"HELP_CENTER": {
"TITLE": "Centro de ayuda",
- "ALL_ARTICLES": "Todos los artículos",
- "MY_ARTICLES": "Todos los artículos",
- "DRAFT": "Borrador",
- "ARCHIVED": "Archivado",
- "CATEGORY": "Categoría",
- "SETTINGS": "Ajustes",
- "CATEGORY_EMPTY_MESSAGE": "No se encontraron categorías"
+ "ARTICLES": "Artículos",
+ "CATEGORIES": "Categorías",
+ "LOCALES": "Idiomas",
+ "SETTINGS": "Ajustes"
},
+ "CHANNELS": "Canales",
"SET_AUTO_OFFLINE": {
"TEXT": "Marcar como desconectado automáticamente",
- "INFO_TEXT": "Permite que el sistema te marque automáticamente sin conexión cuando no estás usando la aplicación o el tablero."
+ "INFO_TEXT": "Permite que el sistema te marque automáticamente sin conexión cuando no estás usando la aplicación o el tablero.",
+ "INFO_SHORT": "Marcar automáticamente sin conexión cuando no está usando la aplicación."
},
- "DOCS": "Leer documentos"
+ "DOCS": "Leer documentos",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Capitán",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Características",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturación",
+ "DESCRIPTION": "Gestiona tu suscripción aquí, mejora tu plan y consigue más para tu equipo.",
"CURRENT_PLAN": {
"TITLE": "Plan actual",
- "PLAN_NOTE": "Actualmente está suscrito al plan **%{plan}** con **%{quantity}** licencias"
+ "PLAN_NOTE": "Actualmente está suscrito al plan **{plan}** con **{quantity}** licencias",
+ "SEAT_COUNT": "Número de asientos",
+ "RENEWS_ON": "Renueva el"
},
+ "VIEW_PRICING": "Ver precios",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Administre su suscripción",
"DESCRIPTION": "Vea sus facturas anteriores, edite sus datos de facturación o cancele su suscripción.",
"BUTTON_TXT": "Ir al portal de facturación"
},
+ "CAPTAIN": {
+ "TITLE": "Capitán",
+ "DESCRIPTION": "Gestione el uso y los créditos para Captain AI.",
+ "BUTTON_TXT": "Comprar más créditos",
+ "DOCUMENTS": "Documentos",
+ "RESPONSES": "Respuestas",
+ "UPGRADE": "Captain no está disponible en el plan gratuito, actualice su suscripción ahora para tener acceso a asistentes, copilot y más.",
+ "REFRESH_CREDITS": "Actualizar"
+ },
"CHAT_WITH_US": {
"TITLE": "¿Necesitas ayuda?",
"DESCRIPTION": "¿Tienes a algún problema en la facturación? Estamos aquí para ayudarte.",
"BUTTON_TXT": "Chatea con nosotros"
},
- "NO_BILLING_USER": "Tu cuenta de facturación está siendo configurada. Por favor, actualiza la página e inténtalo de nuevo."
+ "NO_BILLING_USER": "Tu cuenta de facturación está siendo configurada. Por favor, actualiza la página e inténtalo de nuevo.",
+ "TOPUP": {
+ "BUY_CREDITS": "Comprar más créditos",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Nota:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancelar",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Volver",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Código copiado al portapapeles con éxito",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Buscar atributos"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolver conversación",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolver conversación",
+ "CANCEL": "Cancelar"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Selecciona una opción"
+ },
+ "CHECKBOX": {
+ "YES": "Si",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "¡Oh oh! No hemos podido encontrar ninguna cuenta de \"Chatwoot\". Por favor, crea una nueva cuenta para continuar.",
@@ -294,7 +624,8 @@
"LABEL": "Empresa",
"PLACEHOLDER": "Empresas de Wayne"
},
- "SUBMIT": "Enviar"
+ "SUBMIT": "Enviar",
+ "CANCEL": "Cancelar"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Ir a la barra lateral de informes",
"MOVE_TO_NEXT_TAB": "Mover a la siguiente pestaña en la lista de conversaciones",
"GO_TO_SETTINGS": "Ir a Ajustes",
- "SWITCH_CONVERSATION_STATUS": "Cambiar al siguiente estado de conversación",
"SWITCH_TO_PRIVATE_NOTE": "Cambiar a nota privada",
"SWITCH_TO_REPLY": "Cambiar a respuesta",
"TOGGLE_SNOOZE_DROPDOWN": "Cambiar el menú desplegable"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Windows / ⌘",
- "ALT_OR_OPTION_KEY": "Alt \\ ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioridad",
+ "ACTIVE": "Activo",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Editar"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción:",
+ "PLACEHOLDER": "Introducir descripción"
+ },
+ "STATUS": {
+ "LABEL": "Estado:",
+ "PLACEHOLDER": "Seleccionar estado",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Añadir"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Editar"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descripción:",
+ "PLACEHOLDER": "Introducir descripción"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Añadir"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Eliminar",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/signup.json b/app/javascript/dashboard/i18n/locale/es/signup.json
index a50166b4c..b73250f09 100644
--- a/app/javascript/dashboard/i18n/locale/es/signup.json
+++ b/app/javascript/dashboard/i18n/locale/es/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Crear una cuenta",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrarse",
"TESTIMONIAL_HEADER": "Todo lo que se necesita es un paso adelante",
"TESTIMONIAL_CONTENT": "Usted está a un paso de involucrar a sus clientes, conservarlos y encontrar nuevos.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "E-mail",
- "PLACEHOLDER": "bruce@wayne.empresas",
+ "PLACEHOLDER": "Introduzca su dirección de correo electrónico de trabajo. Por ejemplo, bruce{'@'}wayne{'.'}empresas",
"ERROR": "Por favor, introduzca una dirección de correo válida"
},
"PASSWORD": {
"LABEL": "Contraseña",
"PLACEHOLDER": "Contraseña",
"ERROR": "La contraseña es demasiado corta",
- "IS_INVALID_PASSWORD": "La contraseña debe contener al menos 1 letra mayúscula, 1 letra minúscula, 1 número y 1 carácter especial"
+ "IS_INVALID_PASSWORD": "La contraseña debe contener al menos 1 letra mayúscula, 1 letra minúscula, 1 número y 1 carácter especial",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirmar contraseña",
"PLACEHOLDER": "Confirmar contraseña",
- "ERROR": "La contraseña no coincide"
+ "ERROR": "Las contraseñas no coinciden."
},
"API": {
- "SUCCESS_MESSAGE": "Registro Exitoso",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "No se pudo conectar al servidor Woot, por favor inténtalo de nuevo más tarde"
},
"SUBMIT": "Crear una cuenta",
- "HAVE_AN_ACCOUNT": "¿Ya tienes una cuenta?"
+ "HAVE_AN_ACCOUNT": "¿Ya tienes una cuenta?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Reenviar correo de verificación",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/sla.json b/app/javascript/dashboard/i18n/locale/es/sla.json
index 9b5c74c47..8321d7838 100644
--- a/app/javascript/dashboard/i18n/locale/es/sla.json
+++ b/app/javascript/dashboard/i18n/locale/es/sla.json
@@ -1,41 +1,71 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "No hay elementos que coincidan con esta consulta",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "Acuerdos de Nivel de Servicio",
+ "ADD_ACTION": "Añadir SLA",
+ "ADD_ACTION_LONG": "Crear una nueva política de SLA",
+ "DESCRIPTION": "Los Acuerdos de Nivel de Servicio (SLA) son contratos que definen expectativas claras entre su equipo y sus clientes. Establecen normas para los tiempos de respuesta y resolución, creando un marco para la responsabilidad y garantiza una experiencia coherente y de alta calidad.",
+ "LEARN_MORE": "Más información sobre SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "Obteniendo SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Actualiza para crear SLAs",
+ "AVAILABLE_ON": "La función SLA sólo está disponible en los planes Empresariales (Business) y Corporativos (Enterprise).",
+ "UPGRADE_PROMPT": "Actualiza tu plan para tener acceso a funciones avanzadas como gestión de equipos, automatizaciones, atributos personalizados y más.",
+ "UPGRADE_NOW": "Actualizar ahora",
+ "CANCEL_ANYTIME": "Puede cambiar o cancelar su plan en cualquier momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La función de SLA sólo está disponible en los planes de pago.",
+ "UPGRADE_PROMPT": "Actualice a un plan pago para acceder a funciones avanzadas como registros de auditoría, capacidad de agente y más.",
+ "ASK_ADMIN": "Por favor, comuníquese con su administrador para la actualización."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nombre",
- "Descripción",
- "FRT",
- "NRT",
- "RT",
- "Horarios"
- ]
+ "404": "No hay SLAs disponibles en esta cuenta.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Empresa P0",
+ "DESC_1": "Problemas planteados por los clientes empresariales, que requieren una atención inmediata.",
+ "TITLE_2": "Empresa P1",
+ "DESC_2": "Problemas planteados por los clientes empresariales, deben reconocerse con rapidez."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "Umbral de tiempo de primera respuesta",
+ "NRT": "Umbral de tiempo de siguiente respuesta",
+ "RT": "Umbral de tiempo de resolución",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
+ "LABEL": "Nombre de SLA",
+ "PLACEHOLDER": "Nombre de SLA",
+ "REQUIRED_ERROR": "El nombre de SLA es requerido",
"MINIMUM_LENGTH_ERROR": "La longitud mínima es de 2 caracteres",
"VALID_ERROR": "Sólo letras, números, guión y guión bajo son permitidos"
},
"DESCRIPTION": {
"LABEL": "Descripción",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "SLA para clientes premium"
},
"FIRST_RESPONSE_TIME": {
"LABEL": "Tiempo de primera respuesta",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "Próximo tiempo de respuesta",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
@@ -44,10 +74,10 @@
},
"BUSINESS_HOURS": {
"LABEL": "Horarios",
- "PLACEHOLDER": "Only during business hours"
+ "PLACEHOLDER": "Sólo durante las horas de trabajo"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "El umbral debe ser un número y mayor que cero"
},
"EDIT": "Editar",
"CREATE": "Crear",
@@ -55,19 +85,33 @@
"CANCEL": "Cancelar"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "Añadir SLA",
+ "DESC": "¡Promesas amigables para un servicio excelente!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA añadido correctamente",
"ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Eliminar SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA eliminado correctamente",
"ERROR_MESSAGE": "Hubo un error, por favor inténtelo de nuevo"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmar eliminación",
+ "MESSAGE": "¿Está seguro que desea eliminar? ",
+ "YES": "Sí, eliminar ",
+ "NO": "No, mantenerlo "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA perdidos",
+ "FRT": "Primera respuesta",
+ "NRT": "Tiempo de respuesta siguiente",
+ "RT": "Tiempo de resolución",
+ "SHOW_MORE": "{count} más",
+ "HIDE": "Esconder {count} filas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/es/snooze.json b/app/javascript/dashboard/i18n/locale/es/snooze.json
new file mode 100644
index 000000000..7c78087d0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutos",
+ "HOUR": "hour",
+ "HOURS": "horas",
+ "DAY": "día",
+ "DAYS": "días",
+ "WEEK": "semana",
+ "WEEKS": "weeks",
+ "MONTH": "mes",
+ "MONTHS": "months",
+ "YEAR": "mes",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "siguiente",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "mañana",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "próxima semana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "de",
+ "AFTER": "after",
+ "WEEK": "semana",
+ "DAY": "día"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/es/teamsSettings.json b/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
index 2125e478b..1bb17b7ea 100644
--- a/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/es/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Crear un nuevo equipo",
"HEADER": "Equipos",
- "SIDEBAR_TXT": "Equipos
Los equipos le permiten organizar sus agentes en grupos basados en sus responsabilidades.
Un agente puede ser parte de múltiples equipos. Puedes asignar conversaciones a un equipo cuando trabajas en colaboración.
",
+ "LOADING": "Obteniendo equipos",
+ "DESCRIPTION": "Los equipos te permiten organizar a los agentes en grupos basados en sus responsabilidades. Un agente puede pertenecer a varios equipos. Cuando trabajas en colaboración, puedes asignar conversaciones a equipos específicos.",
+ "LEARN_MORE": "Aprende más sobre los equipos",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Buscar equipos...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "No hay equipos creados en ésta cuenta.",
- "EDIT_TEAM": "Editar equipo"
+ "EDIT_TEAM": "Editar equipo",
+ "NONE": "Ninguna"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Añadir agentes al equipo",
- "TITLE": "Añadir agentes al equipo - %{teamName}",
+ "TITLE": "Añadir agentes al equipo - {teamName}",
"DESC": "Añada agentes a su recién creado equipo. Le permitirá colaborar como un equipo en las conversaciones, y ser notificado acerca de nuevos eventos en la misma conversación."
},
- "WIZARD": [
- {
- "title": "Crear",
- "route": "settings_teams_new",
- "body": "Crear un nuevo equipo de agentes."
- },
- {
- "title": "Añadir agentes",
- "route": "settings_teams_add_agents",
- "body": "Añadir agentes al equipo."
- },
- {
- "title": "Finalizar",
- "route": "settings_teams_finish",
- "body": "¡Todo está listo!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Crear",
+ "BODY": "Crear un nuevo equipo de agentes."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Añadir agentes",
+ "BODY": "Añadir agentes al equipo."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finalizar",
+ "BODY": "¡Todo está listo!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Actualizar los agentes en el equipo",
- "TITLE": "Añadir agentes al equipo - %{teamName}",
+ "TITLE": "Añadir agentes al equipo - {teamName}",
"DESC": "Añada agentes a su recién creado equipo. Le permitirá colaborar como un equipo en las conversaciones, y ser notificado acerca de nuevos eventos en la misma conversación."
},
- "WIZARD": [
- {
- "title": "Detalles del equipo",
- "route": "settings_teams_edit",
- "body": "Cambiar nombre, descripción y otros detalles."
- },
- {
- "title": "Editar Agentes",
- "route": "settings_teams_edit_members",
- "body": "Editar agentes en su equipo."
- },
- {
- "title": "Finalizar",
- "route": "settings_teams_edit_finish",
- "body": "¡Todo está listo!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Detalles del equipo",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Cambiar nombre, descripción y otros detalles."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Editar Agentes",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Editar agentes en su equipo."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finalizar",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "¡Todo está listo!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "No se han podido guardar los detalles del equipo. Intente nuevamente."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "Correo electrónico",
+ "AGENT": "Agente",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Añadir agentes",
"ADD_AGENTS": "Añadiendo agentes a su equipo...",
"SELECT": "seleccionar",
"SELECT_ALL": "seleccionar todos los agentes",
- "SELECTED_COUNT": "%{selected} de %{total} agentes seleccionados."
+ "SELECTED_COUNT": "{selected} de {total} agentes seleccionados."
},
"ADD": {
- "TITLE": "Añadir agentes al equipo - %{teamName}",
+ "TITLE": "Añadir agentes al equipo - {teamName}",
"DESC": "Añada agentes a su recién creado equipo. Le permitirá colaborar como un equipo en las conversaciones, y ser notificado acerca de nuevos eventos en la misma conversación.",
"SELECT": "seleccionar",
"SELECT_ALL": "seleccionar todos los agentes",
- "SELECTED_COUNT": "%{selected} de %{total} agentes seleccionados.",
+ "SELECTED_COUNT": "{selected} de {total} agentes seleccionados.",
"BUTTON_TEXT": "Añadir agentes",
"AGENT_VALIDATION_ERROR": "Seleccione al menos un agente."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "No se pudo borrar el equipo. Intente nuevamente."
},
"CONFIRM": {
- "TITLE": "¿Está seguro que quiere borrar - %{teamName}?",
+ "TITLE": "¿Está seguro que desea eliminar el equipo?",
"PLACE_HOLDER": "Por favor escriba {teamName} para confirmar",
"MESSAGE": "Al borrar el equipo se quitara la asignación del equipo en las conversaciones asignadas a éste equipo.",
"YES": "Eliminar ",
diff --git a/app/javascript/dashboard/i18n/locale/es/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/es/whatsappTemplates.json
index 6e74612ab..ee49f84da 100644
--- a/app/javascript/dashboard/i18n/locale/es/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/es/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Plantillas de Whatsapp",
- "SUBTITLE": "Seleccione la plantilla de Whatsapp que desea enviar",
- "TEMPLATE_SELECTED_SUBTITLE": "Procesar %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Buscar plantillas",
- "NO_TEMPLATES_FOUND": "No se encontraron plantillas para",
- "LABELS": {
- "LANGUAGE": "Idioma",
- "TEMPLATE_BODY": "Cuerpo de plantilla",
- "CATEGORY": "Categoría"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Introduzca el valor de %{variable}",
- "GO_BACK_LABEL": "Volver",
- "SEND_MESSAGE_LABEL": "Enviar mensaje",
- "FORM_ERROR_MESSAGE": "Por favor, rellene todas las variables antes de enviar"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Plantillas de Whatsapp",
+ "SUBTITLE": "Seleccione la plantilla de Whatsapp que desea enviar",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Buscar plantillas",
+ "NO_TEMPLATES_FOUND": "No se encontraron plantillas para",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoría",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Cuerpo de plantilla",
+ "CATEGORY": "Categoría"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoría",
+ "VARIABLE_PLACEHOLDER": "Introduzca el valor de {variable}",
+ "GO_BACK_LABEL": "Volver",
+ "SEND_MESSAGE_LABEL": "Enviar mensaje",
+ "FORM_ERROR_MESSAGE": "Por favor, rellene todas las variables antes de enviar",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/es/yearInReview.json b/app/javascript/dashboard/i18n/locale/es/yearInReview.json
new file mode 100644
index 000000000..2a60b25e1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/es/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Resumen del año",
+ "LOADING": "Cargando tu resumen del año...",
+ "ERROR": "No se pudo cargar el resumen del año",
+ "CLOSE": "Cerrar",
+ "CONVERSATIONS": {
+ "TITLE": "Has gestionado",
+ "SUBTITLE": "conversaciones",
+ "FALLBACK": "Este año no se trató de los números. Se trató de estar presente.",
+ "COMPARISON": {
+ "0_50": "Estuviste ahí, y así comienza toda buena bandeja de entrada.",
+ "50_100": "Mantuviste las respuestas fluyendo y las conversaciones vivas.",
+ "100_500": "Gestionaste un volumen considerable y mantuviste todo bajo control.",
+ "500_2000": "Hiciste que todo siguiera avanzando mientras el volumen no dejaba de crecer.",
+ "2000_10000": "Manejaste un alto tráfico en tu bandeja de entrada sin despeinarte.",
+ "10000_PLUS": "Una ciudad entera de clientes tocando a tu puerta. Y lo hiciste parecer fácil."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Tu día más ocupado fue",
+ "MESSAGE": "{count} conversaciones aquel día.",
+ "COMPARISON": {
+ "0_5": "Un calentamiento que apenas despertó la bandeja de entrada.",
+ "5_10": "Suficiente movimiento como para justificar una segunda taza de café.",
+ "10_25": "La cosa se puso intensa y la bandeja de entrada se mantuvo alerta.",
+ "25_50": "Un buen pico de actividad que apenas hizo sudar.",
+ "50_100": "Caos controlado, gestionado como un martes cualquiera.",
+ "100_500": "Caos absoluto, y aun así las respuestas siguieron saliendo.",
+ "500_PLUS": "La bandeja de entrada perdió toda la calma y no se detuvo en ningún momento."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Tu estilo de soporte es",
+ "MESSAGES": {
+ "SWIFT_HELPER": "Respondías en {time} de media. Más rápido que la mayoría de las notificaciones.",
+ "QUICK_RESPONDER": "Respondías en {time} de media. La bandeja de entrada casi no esperó.",
+ "STEADY_SUPPORT": "Respondías en {time} de media. Ritmo constante y respuestas sólidas.",
+ "THOUGHTFUL_ADVISOR": "Respondías en {time} de media. Te tomaste el tiempo para hacerlo bien."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Felicidades por sobrevivir a la bandeja de entrada del {year}.",
+ "MESSAGE": "Gracias por tu increíble dedicación al soporte de clientes durante este año. Tu trabajo ha marcado una diferencia real y estamos agradecidos de tenerte en este camino. ¡Vamos a hacer que {nextYear} sea aún mejor juntos!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Comparte tu resumen del año",
+ "PREPARING": "Preparando tu imagen...",
+ "DOWNLOAD": "Descargar",
+ "SHARE_TITLE": "Mi resumen del año {year}",
+ "SHARE_TEXT": "¡Mira mi resumen del año {year} con Chatwoot!",
+ "BRANDING": "Hecho con Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Tu resumen del año {year} ya está aquí",
+ "BUTTON": "Ver tu impacto"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Anterior",
+ "NEXT": "Siguiente",
+ "SHARE": "Compartir la conversación"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/advancedFilters.json b/app/javascript/dashboard/i18n/locale/et/advancedFilters.json
new file mode 100644
index 000000000..a991cb25b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/advancedFilters.json
@@ -0,0 +1,119 @@
+{
+ "FILTER": {
+ "TITLE": "Filter conversations",
+ "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
+ "EDIT_CUSTOM_FILTER": "Edit Folder",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
+ "ADD_NEW_FILTER": "Add filter",
+ "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBMIT_BUTTON_LABEL": "Apply filters",
+ "UPDATE_BUTTON_LABEL": "Update folder",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear filters",
+ "FOLDER_LABEL": "Folder Name",
+ "FOLDER_QUERY_LABEL": "Folder Query",
+ "EMPTY_VALUE_ERROR": "Value is required.",
+ "TOOLTIP_LABEL": "Filter conversations",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "INPUT_PLACEHOLDER": "Enter value",
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_less_than": "Is lesser than",
+ "days_before": "Is x days before",
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
+ },
+ "ATTRIBUTE_LABELS": {
+ "TRUE": "True",
+ "FALSE": "False"
+ },
+ "ATTRIBUTES": {
+ "STATUS": "Status",
+ "ASSIGNEE_NAME": "Assignee name",
+ "INBOX_NAME": "Inbox name",
+ "TEAM_NAME": "Team name",
+ "CONVERSATION_IDENTIFIER": "Conversation identifier",
+ "CAMPAIGN_NAME": "Campaign name",
+ "LABELS": "Labels",
+ "BROWSER_LANGUAGE": "Browser language",
+ "PRIORITY": "Priority",
+ "COUNTRY_NAME": "Country name",
+ "REFERER_LINK": "Referer link",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard filters",
+ "ADDITIONAL_FILTERS": "Additional filters",
+ "CUSTOM_ATTRIBUTES": "Custom attributes"
+ },
+ "CUSTOM_VIEWS": {
+ "ADD": {
+ "TITLE": "Do you want to save this filter?",
+ "LABEL": "Name this filter",
+ "PLACEHOLDER": "Name your filter to refer it later.",
+ "ERROR_MESSAGE": "Name is required.",
+ "SAVE_BUTTON": "Save filter",
+ "CANCEL_BUTTON": "Cancel",
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder created successfully.",
+ "ERROR_MESSAGE": "Error while creating folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment created successfully.",
+ "ERROR_MESSAGE": "Error while creating segment."
+ }
+ },
+ "EDIT": {
+ "EDIT_BUTTON": "Edit folder"
+ },
+ "DELETE": {
+ "DELETE_BUTTON": "Delete filter",
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete the filter ",
+ "YES": "Yes, delete",
+ "NO": "No, keep it"
+ }
+ },
+ "API_FOLDERS": {
+ "SUCCESS_MESSAGE": "Folder deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting folder."
+ },
+ "API_SEGMENTS": {
+ "SUCCESS_MESSAGE": "Segment deleted successfully.",
+ "ERROR_MESSAGE": "Error while deleting segment."
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/agentBots.json b/app/javascript/dashboard/i18n/locale/et/agentBots.json
new file mode 100644
index 000000000..c17ec60d0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/agentBots.json
@@ -0,0 +1,117 @@
+{
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
+ "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "SUBMIT": "Update",
+ "DISCONNECT": "Disconnect bot",
+ "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
+ "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
+ "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
+ "SELECT_PLACEHOLDER": "Select bot"
+ },
+ "ADD": {
+ "TITLE": "Add Bot",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot added successfully.",
+ "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ }
+ },
+ "LIST": {
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "Fetching bots...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL",
+ "ACTIONS": "Actions"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "TITLE": "Delete bot",
+ "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."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit bot",
+ "API": {
+ "SUCCESS_MESSAGE": "Bot updated successfully.",
+ "ERROR_MESSAGE": "Could not update bot. Please try again."
+ }
+ },
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/agentMgmt.json b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json
new file mode 100644
index 000000000..4b66fe864
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/agentMgmt.json
@@ -0,0 +1,127 @@
+{
+ "AGENT_MGMT": {
+ "HEADER": "Agents",
+ "HEADER_BTN_TXT": "Add Agent",
+ "LOADING": "Fetching Agent List",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
+ "AGENT_TYPES": {
+ "ADMINISTRATOR": "Administrator",
+ "AGENT": "Agent"
+ },
+ "COUNT": "{n} agent | {n} agents",
+ "LIST": {
+ "404": "There are no agents associated to this account",
+ "TITLE": "Manage agents in your team",
+ "DESC": "You can add/remove agents to/in your team.",
+ "NAME": "Name",
+ "EMAIL": "EMAIL",
+ "STATUS": "Status",
+ "ACTIONS": "Actions",
+ "VERIFIED": "Verified",
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
+ },
+ "ADD": {
+ "TITLE": "Add agent to your team",
+ "DESC": "You can add people who will be able to handle support for your inboxes.",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Agent Name",
+ "PLACEHOLDER": "Please enter a name of the agent"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "Role",
+ "PLACEHOLDER": "Please select a role",
+ "ERROR": "Role is required"
+ },
+ "EMAIL": {
+ "LABEL": "Email Address",
+ "PLACEHOLDER": "Please enter an email address of the agent"
+ },
+ "SUBMIT": "Add Agent"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent added successfully",
+ "EXIST_MESSAGE": "Agent email already in use, Please try another email address",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent deleted successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit agent",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Agent Name",
+ "PLACEHOLDER": "Please enter a name of the agent"
+ },
+ "AGENT_TYPE": {
+ "LABEL": "Role",
+ "PLACEHOLDER": "Please select a role",
+ "ERROR": "Role is required"
+ },
+ "EMAIL": {
+ "LABEL": "Email Address",
+ "PLACEHOLDER": "Please enter an email address of the agent"
+ },
+ "AGENT_AVAILABILITY": {
+ "LABEL": "Availability",
+ "PLACEHOLDER": "Please select an availability status",
+ "ERROR": "Availability is required"
+ },
+ "SUBMIT": "Edit Agent"
+ },
+ "BUTTON_TEXT": "Edit",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent updated successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "PASSWORD_RESET": {
+ "ADMIN_RESET_BUTTON": "Reset Password",
+ "ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent",
+ "SUCCESS_MESSAGE": "Agent password reset successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
+ "SEARCH": {
+ "NO_RESULTS": "No results found."
+ },
+ "MULTI_SELECTOR": {
+ "PLACEHOLDER": "None",
+ "TITLE": {
+ "AGENT": "Select agent",
+ "TEAM": "Select team"
+ },
+ "LIST": {
+ "NONE": "None"
+ },
+ "SEARCH": {
+ "NO_RESULTS": {
+ "AGENT": "No agents found",
+ "TEAM": "No teams found"
+ },
+ "PLACEHOLDER": {
+ "AGENT": "Search agents",
+ "TEAM": "Search teams",
+ "INPUT": "Search for agents"
+ }
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json
new file mode 100644
index 000000000..b050de25f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/attributesMgmt.json
@@ -0,0 +1,147 @@
+{
+ "ATTRIBUTES_MGMT": {
+ "HEADER": "Custom Attributes",
+ "HEADER_BTN_TXT": "Add Custom Attribute",
+ "LOADING": "Fetching custom attributes",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Ettevõte"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
+ "ADD": {
+ "TITLE": "Add Custom Attribute",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Display Name",
+ "PLACEHOLDER": "Enter custom attribute display name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter custom attribute description",
+ "ERROR": "Description is required"
+ },
+ "MODEL": {
+ "LABEL": "Applies to",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Model is required"
+ },
+ "TYPE": {
+ "LABEL": "Type",
+ "PLACEHOLDER": "Please select a type",
+ "ERROR": "Type is required",
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter value and press enter key",
+ "ERROR": "Must have at least one value"
+ }
+ },
+ "KEY": {
+ "LABEL": "Key",
+ "PLACEHOLDER": "Enter custom attribute key",
+ "ERROR": "Key is required",
+ "IN_VALID": "Invalid key"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
+ "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure want to delete - {attributeName}",
+ "PLACE_HOLDER": "Please type {attributeName} to confirm",
+ "MESSAGE": "Deleting will remove the custom attribute",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Attribute",
+ "UPDATE_BUTTON_TEXT": "Update",
+ "TYPE": {
+ "LIST": {
+ "LABEL": "List Values",
+ "PLACEHOLDER": "Please enter values and press enter key"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
+ "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ }
+ },
+ "TABS": {
+ "HEADER": "Custom Attributes",
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Ettevõte"
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
+ "BUTTONS": {
+ "EDIT": "Edit",
+ "DELETE": "Delete"
+ },
+ "EMPTY_RESULT": {
+ "404": "There are no custom attributes created",
+ "NOT_FOUND": "There are no custom attributes configured"
+ },
+ "REGEX_PATTERN": {
+ "LABEL": "Regex Pattern",
+ "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ },
+ "REGEX_CUE": {
+ "LABEL": "Regex Cue",
+ "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ },
+ "ENABLE_REGEX": {
+ "LABEL": "Enable regex validation"
+ }
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/auditLogs.json b/app/javascript/dashboard/i18n/locale/et/auditLogs.json
new file mode 100644
index 000000000..f85ad2a3e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/auditLogs.json
@@ -0,0 +1,77 @@
+{
+ "AUDIT_LOGS": {
+ "HEADER": "Audit Logs",
+ "HEADER_BTN_TXT": "Add Audit Logs",
+ "LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
+ "SEARCH_404": "There are no items matching this query",
+ "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "LIST": {
+ "404": "There are no Audit Logs available in this account.",
+ "TITLE": "Manage Audit Logs",
+ "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "Activity",
+ "TIME": "Time",
+ "IP_ADDRESS": "IP Address"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "DEFAULT_USER": "System",
+ "AUTOMATION_RULE": {
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
+ },
+ "ACCOUNT_USER": {
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
+ "EDIT": {
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
+ }
+ },
+ "INBOX": {
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
+ },
+ "WEBHOOK": {
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
+ },
+ "USER_ACTION": {
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
+ },
+ "TEAM": {
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
+ },
+ "MACRO": {
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
+ },
+ "INBOX_MEMBER": {
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
+ },
+ "TEAM_MEMBER": {
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
+ },
+ "ACCOUNT": {
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} deleted conversation #{id}"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/automation.json b/app/javascript/dashboard/i18n/locale/et/automation.json
new file mode 100644
index 000000000..60573dce0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/automation.json
@@ -0,0 +1,193 @@
+{
+ "AUTOMATION": {
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "Fetching automation rules",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
+ "ADD": {
+ "TITLE": "Add Automation Rule",
+ "SUBMIT": "Create",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "NAME": {
+ "LABEL": "Rule Name",
+ "PLACEHOLDER": "Enter rule name",
+ "ERROR": "Name is required"
+ },
+ "DESC": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter rule description",
+ "ERROR": "Description is required"
+ },
+ "EVENT": {
+ "LABEL": "Event",
+ "PLACEHOLDER": "Please select one",
+ "ERROR": "Event is required"
+ },
+ "CONDITIONS": {
+ "LABEL": "Conditions"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "CONDITION_BUTTON_LABEL": "Add Condition",
+ "ACTION_BUTTON_LABEL": "Add Action",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule added successfully",
+ "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
+ "404": "No automation rules found"
+ },
+ "DELETE": {
+ "TITLE": "Delete Automation Rule",
+ "SUBMIT": "Delete",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule deleted successfully",
+ "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit Automation Rule",
+ "SUBMIT": "Update",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation rule updated successfully",
+ "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ }
+ },
+ "CLONE": {
+ "TOOLTIP": "Clone",
+ "API": {
+ "SUCCESS_MESSAGE": "Automation cloned successfully",
+ "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ }
+ },
+ "FORM": {
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel",
+ "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ },
+ "CONDITION": {
+ "DELETE_MESSAGE": "You need to have atleast one condition to save",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ },
+ "ACTION": {
+ "DELETE_MESSAGE": "You need to have atleast one action to save",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
+ },
+ "TOGGLE": {
+ "ACTIVATION_TITLE": "Activate Automation Rule",
+ "DEACTIVATION_TITLE": "Deactivate Automation Rule",
+ "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
+ "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
+ "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
+ "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
+ "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "CONFIRMATION_LABEL": "Yes",
+ "CANCEL_LABEL": "No"
+ },
+ "ATTACHMENT": {
+ "UPLOAD_ERROR": "Could not upload attachment, Please try again",
+ "LABEL_IDLE": "Upload Attachment",
+ "LABEL_UPLOADING": "Uploading...",
+ "LABEL_UPLOADED": "Successfully Uploaded",
+ "LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privaatne märkus",
+ "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",
+ "COMPANY_NAME": "Ettevõte",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/bulkActions.json b/app/javascript/dashboard/i18n/locale/et/bulkActions.json
new file mode 100644
index 000000000..ed302714d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/bulkActions.json
@@ -0,0 +1,46 @@
+{
+ "BULK_ACTION": {
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Mitte ükski",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
+ "ASSIGN_AGENT_TOOLTIP": "Assign agent",
+ "ASSIGN_TEAM_TOOLTIP": "Assign team",
+ "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
+ "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
+ "UPDATE": {
+ "CHANGE_STATUS": "Change status",
+ "SNOOZE_UNTIL": "Snooze",
+ "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
+ "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
+ "LABELS": {
+ "ASSIGN_LABELS": "Assign labels",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
+ },
+ "TEAMS": {
+ "NONE": "None",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
+ "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/campaign.json b/app/javascript/dashboard/i18n/locale/et/campaign.json
new file mode 100644
index 000000000..e407de04f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/campaign.json
@@ -0,0 +1,216 @@
+{
+ "CAMPAIGN": {
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Töötlemisel",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Töötlemisel",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Campaign deleted successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json
new file mode 100644
index 000000000..246d3f5b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/cannedMgmt.json
@@ -0,0 +1,80 @@
+{
+ "CANNED_MGMT": {
+ "HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Add canned response",
+ "LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "LIST": {
+ "404": "There are no canned responses available in this account.",
+ "TITLE": "Manage canned responses",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add canned response",
+ "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a short code.",
+ "ERROR": "Short Code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit canned response",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "FORM": {
+ "SHORT_CODE": {
+ "LABEL": "Short code",
+ "PLACEHOLDER": "Please enter a shortcode.",
+ "ERROR": "Short code is required."
+ },
+ "CONTENT": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "ERROR": "Message is required."
+ },
+ "SUBMIT": "Submit"
+ },
+ "BUTTON_TEXT": "Edit",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/chatlist.json b/app/javascript/dashboard/i18n/locale/et/chatlist.json
new file mode 100644
index 000000000..1384dae2b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/chatlist.json
@@ -0,0 +1,146 @@
+{
+ "CHAT_LIST": {
+ "LOADING": "Fetching conversations",
+ "LOAD_MORE_CONVERSATIONS": "Load more conversations",
+ "EOF": "All conversations loaded 🎉",
+ "LIST": {
+ "404": "There are no active conversations in this group."
+ },
+ "FAILED_TO_SEND": "Failed to send",
+ "TAB_HEADING": "Conversations",
+ "MENTION_HEADING": "Mentions",
+ "UNATTENDED_HEADING": "Unattended",
+ "SEARCH": {
+ "INPUT": "Search for People, Chats, Saved Replies .."
+ },
+ "FILTER_ALL": "All",
+ "ASSIGNEE_TYPE_TABS": {
+ "me": "Mine",
+ "unassigned": "Unassigned",
+ "all": "All"
+ },
+ "CHAT_STATUS_FILTER_ITEMS": {
+ "open": {
+ "TEXT": "Open"
+ },
+ "resolved": {
+ "TEXT": "Resolved"
+ },
+ "pending": {
+ "TEXT": "Pending"
+ },
+ "snoozed": {
+ "TEXT": "Snoozed"
+ },
+ "all": {
+ "TEXT": "All"
+ }
+ },
+ "VIEW_FILTER": "View",
+ "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "CHAT_SORT": {
+ "STATUS": "Status",
+ "ORDER_BY": "Order by"
+ },
+ "CHAT_TIME_STAMP": {
+ "CREATED": {
+ "LATEST": "Created",
+ "OLDEST": "Created at:"
+ },
+ "LAST_ACTIVITY": {
+ "NOT_ACTIVE": "Last activity:",
+ "ACTIVE": "Last activity"
+ }
+ },
+ "SORT_ORDER_ITEMS": {
+ "last_activity_at_asc": {
+ "TEXT": "Last activity: Oldest first"
+ },
+ "last_activity_at_desc": {
+ "TEXT": "Last activity: Newest first"
+ },
+ "created_at_desc": {
+ "TEXT": "Created at: Newest first"
+ },
+ "created_at_asc": {
+ "TEXT": "Created at: Oldest first"
+ },
+ "priority_desc": {
+ "TEXT": "Priority: Highest first"
+ },
+ "priority_asc": {
+ "TEXT": "Priority: Lowest first"
+ },
+ "waiting_since_asc": {
+ "TEXT": "Pending Response: Longest first"
+ },
+ "waiting_since_desc": {
+ "TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
+ }
+ },
+ "ATTACHMENTS": {
+ "image": {
+ "CONTENT": "Picture message"
+ },
+ "audio": {
+ "CONTENT": "Audio message"
+ },
+ "video": {
+ "CONTENT": "Video message"
+ },
+ "file": {
+ "CONTENT": "File Attachment"
+ },
+ "location": {
+ "CONTENT": "Location"
+ },
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
+ "fallback": {
+ "CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
+ }
+ },
+ "CHAT_SORT_BY_FILTER": {
+ "TITLE": "Sort conversation",
+ "DROPDOWN_TITLE": "Sort by",
+ "ITEMS": {
+ "LATEST": {
+ "NAME": "Last activity at",
+ "LABEL": "Last activity"
+ },
+ "CREATED_AT": {
+ "NAME": "Created at",
+ "LABEL": "Created at"
+ },
+ "LAST_USER_MESSAGE_AT": {
+ "NAME": "Last user message at",
+ "LABEL": "Last message"
+ }
+ }
+ },
+ "RECEIVED_VIA_EMAIL": "Received via email",
+ "VIEW_TWEET_IN_TWITTER": "View tweet in Twitter",
+ "REPLY_TO_TWEET": "Reply to this tweet",
+ "LINK_TO_STORY": "Go to instagram story",
+ "SENT": "Sent successfully",
+ "READ": "Read successfully",
+ "DELIVERED": "Delivered successfully",
+ "NO_MESSAGES": "No Messages",
+ "NO_CONTENT": "No content available",
+ "HIDE_QUOTED_TEXT": "Hide Quoted Text",
+ "SHOW_QUOTED_TEXT": "Show Quoted Text",
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/companies.json b/app/javascript/dashboard/i18n/locale/et/companies.json
new file mode 100644
index 000000000..598dfd5d6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribuudid",
+ "CONTACTS": "Kontaktid",
+ "HISTORY": "Ajalugu",
+ "NOTES": "Märkmed"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Lisa kontakt",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Otsi kontakte...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "Kontaktid puuduvad.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Ettevõte",
+ "CONTACT_LABEL": "Kontakt",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Loodud {date}",
+ "LAST_ACTIVE": "Viimati aktiivne {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Domeen"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/components.json b/app/javascript/dashboard/i18n/locale/et/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/contact.json b/app/javascript/dashboard/i18n/locale/et/contact.json
new file mode 100644
index 000000000..4400ac26e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/contact.json
@@ -0,0 +1,666 @@
+{
+ "CONTACT_PANEL": {
+ "NOT_AVAILABLE": "Pole saadaval",
+ "EMAIL_ADDRESS": "E-posti aadress",
+ "PHONE_NUMBER": "Telefoninumber",
+ "IDENTIFIER": "Identifikaator",
+ "COPY_SUCCESSFUL": "Kopeerimine lõikelauale õnnestus",
+ "COMPANY": "Ettevõte",
+ "LOCATION": "Asukoht",
+ "BROWSER_LANGUAGE": "Brauseri keel",
+ "CONVERSATION_TITLE": "Vestluse üksikasjad",
+ "VIEW_PROFILE": "Vaata profiili",
+ "BROWSER": "Brauser",
+ "OS": "Operatsioonisüsteem",
+ "INITIATED_FROM": "Algatatud kohast",
+ "INITIATED_AT": "Algatatud ajal",
+ "IP_ADDRESS": "IP-aadress",
+ "CREATED_AT_LABEL": "Loodud",
+ "NEW_MESSAGE": "Uus sõnum",
+ "CALL": "Helista",
+ "CALL_INITIATED": "Helistatakse kontaktile…",
+ "CALL_FAILED": "Kõne alustamine ebaõnnestus. Palun proovi uuesti.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Vali häälpostkast"
+ },
+ "CONVERSATIONS": {
+ "NO_RECORDS_FOUND": "Selle kontaktiga seotud varasemaid vestlusi ei leitud.",
+ "TITLE": "Varasemad vestlused"
+ },
+ "LABELS": {
+ "CONTACT": {
+ "TITLE": "Kontaktimärgendid",
+ "ERROR": "Märgiste värskendamine ebaõnnestus"
+ },
+ "CONVERSATION": {
+ "TITLE": "Vestluse sildid",
+ "ADD_BUTTON": "Lisa silte"
+ },
+ "LABEL_SELECT": {
+ "TITLE": "Lisa sildid",
+ "PLACEHOLDER": "Otsi silte",
+ "NO_RESULT": "Silte ei leitud",
+ "CREATE_LABEL": "Loo uus silt"
+ }
+ },
+ "MERGE_CONTACT": "Kontaktide ühendamine",
+ "CONTACT_ACTIONS": "Kontakttegevused",
+ "MUTE_CONTACT": "Blokeeri kontakt",
+ "UNMUTE_CONTACT": "Eemalda kontakti blokeering",
+ "MUTED_SUCCESS": "See kontakt on edukalt blokeeritud. Sa ei saa teateid tulevaste vestluste kohta.",
+ "UNMUTED_SUCCESS": "See kontakt on edukalt blokeeringust vabastatud.",
+ "SEND_TRANSCRIPT": "Saada vestlusajalugu",
+ "EDIT_LABEL": "Muuda",
+ "SIDEBAR_SECTIONS": {
+ "CUSTOM_ATTRIBUTES": "Kohandatud atribuudid",
+ "CONTACT_LABELS": "Kontaktimärgendid",
+ "PREVIOUS_CONVERSATIONS": "Eelnevad vestlused",
+ "NO_RECORDS_FOUND": "Atribuute ei leitud"
+ }
+ },
+ "EDIT_CONTACT": {
+ "BUTTON_LABEL": "Muuda kontakti",
+ "TITLE": "Muuda kontakti",
+ "DESC": "Muuda kontakti andmeid"
+ },
+ "DELETE_CONTACT": {
+ "BUTTON_LABEL": "Kustuta kontakt",
+ "TITLE": "Kustuta kontakt",
+ "DESC": "Kustuta kontakti andmed",
+ "CONFIRM": {
+ "TITLE": "Kustutamise kinnitamine",
+ "MESSAGE": "Kas olete kindel, et soovite kustutada ",
+ "YES": "Jah, kustuta",
+ "NO": "Ei, säilita"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakt kustutati edukalt",
+ "ERROR_MESSAGE": "Kontaktide kustutamine ebaõnnestus. Palun proovige hiljem uuesti."
+ }
+ },
+ "CONTACT_FORM": {
+ "FORM": {
+ "SUBMIT": "Esita",
+ "CANCEL": "Tühista",
+ "AVATAR": {
+ "LABEL": "Kontakti avatar"
+ },
+ "NAME": {
+ "PLACEHOLDER": "Sisesta kontakti täielik nimi",
+ "LABEL": "Täisnimi"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Sisesta kontakti elulugu",
+ "LABEL": "Tutvustus"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Sisesta kontakti e-posti aadress",
+ "LABEL": "E-posti aadress",
+ "DUPLICATE": "See e-posti aadress on juba teise kontakti jaoks kasutusel.",
+ "ERROR": "Palun sisestage kehtiv e-posti aadress."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Sisesta kontakti telefoninumber",
+ "LABEL": "Telefoninumber",
+ "HELP": "Telefoninumber peaks olema E.164 formaadis, nt: +1415555555 [+][riigikood][suunakood][kohalik telefoninumber]. Saad valida suunakoodi rippmenüüst.",
+ "ERROR": "Telefoninumber peab olema kas tühi või E.164 formaadis",
+ "DIAL_CODE_ERROR": "Palun vali nimekirjast suunakood",
+ "DUPLICATE": "See telefoninumber on juba teise kontakti jaoks kasutusel."
+ },
+ "LOCATION": {
+ "PLACEHOLDER": "Sisesta kontakti asukoht",
+ "LABEL": "Asukoht"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Sisesta ettevõtte nimi",
+ "LABEL": "Ettevõtte nimi"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Sisesta riigi nimi",
+ "LABEL": "Riigi nimi",
+ "SELECT_PLACEHOLDER": "Vali",
+ "REMOVE": "Eemalda",
+ "SELECT_COUNTRY": "Vali riik"
+ },
+ "CITY": {
+ "PLACEHOLDER": "Sisesta linna nimi",
+ "LABEL": "Linna nimi"
+ },
+ "SOCIAL_PROFILES": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Sisesta Facebooki kasutajanimi",
+ "LABEL": "Facebook"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Sisesta Twitteri kasutajanimi",
+ "LABEL": "Twitter"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Sisesta LinkedIni kasutajanimi",
+ "LABEL": "LinkedIn"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Sisesta GitHubi kasutajanimi",
+ "LABEL": "Github"
+ }
+ }
+ },
+ "DELETE_AVATAR": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakti avatar kustutati edukalt",
+ "ERROR_MESSAGE": "Kontaktisiku avatari ei õnnestunud kustutada. Palun proovige hiljem uuesti."
+ }
+ },
+ "SUCCESS_MESSAGE": "Kontakt edukalt salvestatud",
+ "ERROR_MESSAGE": "Tekkis viga, palun proovi uuesti"
+ },
+ "NEW_CONVERSATION": {
+ "BUTTON_LABEL": "Alusta vestlust",
+ "TITLE": "Uus vestlus",
+ "DESC": "Alusta uut vestlust, saates uue sõnumi.",
+ "NO_INBOX": "Selle kontakti jaoks uut vestlust alustamiseks ei leitud postkasti.",
+ "FORM": {
+ "TO": {
+ "LABEL": "Saaja"
+ },
+ "INBOX": {
+ "LABEL": "Postkastist",
+ "PLACEHOLDER": "Vali allikapostkast",
+ "ERROR": "Vali postkast"
+ },
+ "SUBJECT": {
+ "LABEL": "Teema",
+ "PLACEHOLDER": "Teema",
+ "ERROR": "Teema ei tohi olla tühi"
+ },
+ "MESSAGE": {
+ "LABEL": "Sõnum",
+ "PLACEHOLDER": "Kirjuta siia oma sõnum",
+ "ERROR": "Sõnum ei tohi olla tühi"
+ },
+ "ATTACHMENTS": {
+ "SELECT": "Vali failid",
+ "HELP_TEXT": "Lohista failid siia või vali failid lisamiseks"
+ },
+ "SUBMIT": "Saada sõnum",
+ "CANCEL": "Tühista",
+ "SUCCESS_MESSAGE": "Sõnum saadetud!",
+ "GO_TO_CONVERSATION": "Vaata",
+ "ERROR_MESSAGE": "Saatmine ebaõnnestus! proovi uuesti"
+ }
+ },
+ "CONTACTS_PAGE": {
+ "LIST": {
+ "TABLE_HEADER": {
+ "SOCIAL_PROFILES": "Sotsiaalmeedia profiilid"
+ }
+ }
+ },
+ "CUSTOM_ATTRIBUTES": {
+ "BUTTON": "Lisa kohandatud atribuut",
+ "COPY_SUCCESSFUL": "Kopeerimine lõikelauale õnnestus",
+ "SHOW_MORE": "Näita kõiki atribuute",
+ "SHOW_LESS": "Näita vähem atribuute",
+ "ACTIONS": {
+ "COPY": "Kopeeri atribuut",
+ "DELETE": "Kustuta atribuut",
+ "EDIT": "Muuda atribuuti"
+ },
+ "ADD": {
+ "TITLE": "Loo kohandatud atribuut",
+ "DESC": "Lisa selle kontakti kohandatud teave."
+ },
+ "FORM": {
+ "CREATE": "Lisa atribuut",
+ "CANCEL": "Tühista",
+ "NAME": {
+ "LABEL": "Kohandatud atribuudi nimi",
+ "PLACEHOLDER": "Nt: Shopify ID",
+ "ERROR": "Vigane kohandatud atribuudi nimi"
+ },
+ "VALUE": {
+ "LABEL": "Atribuudi väärtus",
+ "PLACEHOLDER": "Näiteks: 11901 "
+ },
+ "ADD": {
+ "TITLE": "Loo uus atribuut ",
+ "SUCCESS": "Atribuut lisatud edukalt",
+ "ERROR": "Atribuuti ei õnnestunud lisada. Palun proovige hiljem uuesti"
+ },
+ "UPDATE": {
+ "SUCCESS": "Atribuut uuendatud edukalt",
+ "ERROR": "Atribuuti ei õnnestunud uuendada. Palun proovige hiljem uuesti"
+ },
+ "DELETE": {
+ "SUCCESS": "Atribuut kustutatud edukalt",
+ "ERROR": "Atribuuti kustutamine ebaõnnestus. Palun proovige hiljem uuesti"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "Lisa atribuute",
+ "PLACEHOLDER": "Otsi atribuute",
+ "NO_RESULT": "Atribuute ei leitud"
+ },
+ "ATTRIBUTE_TYPE": {
+ "LIST": {
+ "PLACEHOLDER": "Vali väärtus",
+ "SEARCH_INPUT_PLACEHOLDER": "Otsi väärtust",
+ "NO_RESULT": "Tulemust ei leitud"
+ }
+ }
+ },
+ "VALIDATIONS": {
+ "REQUIRED": "Nõutav on kehtiv väärtus",
+ "INVALID_URL": "Kehtetu URL",
+ "INVALID_INPUT": "Vigane sisend"
+ }
+ },
+ "MERGE_CONTACTS": {
+ "TITLE": "Kontaktide ühendamine",
+ "DESCRIPTION": "Ühenda kontaktid, et kombineerida kaks profiili üheks, kaasa arvatud kõik atribuudid ja vestlused. Konflikti korral on esmane kontakti atribuutidel eelis.",
+ "PRIMARY": {
+ "TITLE": "Põhikontakt",
+ "HELP_LABEL": "Kustutamiseks"
+ },
+ "PARENT": {
+ "TITLE": "Kontakt, mida ühendada",
+ "PLACEHOLDER": "Otsi kontakti",
+ "HELP_LABEL": "Säilitamiseks"
+ },
+ "SUMMARY": {
+ "TITLE": "Kokkuvõte",
+ "DELETE_WARNING": "Kontakt {primaryContactName} kustutatakse.",
+ "ATTRIBUTE_WARNING": "Kontaktandmed {primaryContactName} kopeeritakse kontaktile {parentContactName}."
+ },
+ "SEARCH": {
+ "ERROR_MESSAGE": "Midagi läks valesti. Palun proovi hiljem uuesti."
+ },
+ "FORM": {
+ "SUBMIT": " Ühenda kontaktid",
+ "CANCEL": "Tühista",
+ "CHILD_CONTACT": {
+ "ERROR": "Vali ühendamiseks alamkontakt"
+ },
+ "SUCCESS_MESSAGE": "Kontakt edukalt ühendatud",
+ "ERROR_MESSAGE": "Kontaktide ühendamine ebaõnnestus, proovi uuesti!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontaktid",
+ "SEARCH_TITLE": "Otsi kontakte",
+ "ACTIVE_TITLE": "Aktiivsed kontaktid",
+ "SEARCH_PLACEHOLDER": "Otsi...",
+ "MESSAGE_BUTTON": "Sõnum",
+ "SEND_MESSAGE": "Saada sõnum",
+ "BLOCK_CONTACT": "Blokeeri kontakt",
+ "UNBLOCK_CONTACT": "Loo kontakt blokeeringust vabaks",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontaktid"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Lisa kontakt",
+ "EXPORT_CONTACT": "Ekspordi kontaktid",
+ "IMPORT_CONTACT": "Impordi kontaktid",
+ "SAVE_CONTACT": "Salvesta kontakt",
+ "EMAIL_ADDRESS_DUPLICATE": "See e-posti aadress on juba kasutusel teise kontakti jaoks.",
+ "PHONE_NUMBER_DUPLICATE": "See telefoninumber on juba kasutusel teise kontakti jaoks.",
+ "SUCCESS_MESSAGE": "Kontakt salvestatud edukalt",
+ "ERROR_MESSAGE": "Kontaktide salvestamine ebaõnnestus. Palun proovige hiljem uuesti."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "See kontakt on edukalt blokeeritud",
+ "BLOCK_ERROR_MESSAGE": "Kontakti blokeerimine ebaõnnestus. Palun proovi hiljem uuesti.",
+ "UNBLOCK_SUCCESS_MESSAGE": "See kontakt on edukalt blokeeringust vabaks tehtud",
+ "UNBLOCK_ERROR_MESSAGE": "Kontakti blokeeringust vabaks tegemine ebaõnnestus. Palun proovi hiljem uuesti.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Impordi kontaktid",
+ "DESCRIPTION": "Impordi kontaktid CSV-faili kaudu.",
+ "DOWNLOAD_LABEL": "Laadi alla näidis-CSV.",
+ "LABEL": "CSV-fail:",
+ "CHOOSE_FILE": "Vali fail",
+ "CHANGE": "Muuda",
+ "CANCEL": "Tühista",
+ "IMPORT": "Impordi",
+ "SUCCESS_MESSAGE": "Saadame teile e-kirja, kui importimine on lõpetatud.",
+ "ERROR_MESSAGE": "Tekkis viga, palun proovi uuesti"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Ekspordi kontaktid",
+ "DESCRIPTION": "Ekspordi kiiresti CSV-fail, mis sisaldab põhjalikku teavet sinu kontaktide kohta",
+ "CONFIRM": "Ekspordi",
+ "SUCCESS_MESSAGE": "Ekspordiprotsess on käimas. Saadame sulle e-kirja, kui ekspordifail on allalaadimiseks valmis.",
+ "ERROR_MESSAGE": "Tekkis viga, palun proovi uuesti"
+ },
+ "SORT_BY": {
+ "LABEL": "Sorteeri",
+ "OPTIONS": {
+ "NAME": "Nimi",
+ "EMAIL": "E-post",
+ "PHONE_NUMBER": "Telefoninumber",
+ "COMPANY": "Ettevõte",
+ "COUNTRY": "Riik",
+ "CITY": "Linn",
+ "LAST_ACTIVITY": "Viimane tegevus",
+ "CREATED_AT": "Loodud kuupäeval"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Järjestamine",
+ "OPTIONS": {
+ "ASCENDING": "Kasvav",
+ "DESCENDING": "Kahanev"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Kas soovite selle filtri salvestada?",
+ "CONFIRM": "Salvesta filter",
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Sisesta filtri nimi",
+ "ERROR": "Sisesta kehtiv nimi",
+ "SUCCESS_MESSAGE": "Filter salvestati edukalt",
+ "ERROR_MESSAGE": "Filtri salvestamine ebaõnnestus. Palun proovi hiljem uuesti."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Kustutamise kinnitamine",
+ "DESCRIPTION": "Kas olete kindel, et soovite selle filtri kustutada?",
+ "CONFIRM": "Jah, kustuta",
+ "CANCEL": "Ei, tühista",
+ "SUCCESS_MESSAGE": "Filter kustutati edukalt",
+ "ERROR_MESSAGE": "Filtrit ei õnnestunud kustutada. Palun proovige hiljem uuesti."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nimi",
+ "EMAIL": "E-post",
+ "PHONE_NUMBER": "Telefoninumber",
+ "IDENTIFIER": "Identifikaator",
+ "COUNTRY": "Riik",
+ "CITY": "Linn",
+ "COMPANY": "Ettevõte",
+ "CREATED_AT": "Loodud",
+ "LAST_ACTIVITY": "Viimane tegevus",
+ "REFERER_LINK": "Viitaja link",
+ "BLOCKED": "Blokeeritud",
+ "BLOCKED_TRUE": "Tõene",
+ "BLOCKED_FALSE": "Väär",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Tühjenda filtrid",
+ "UPDATE_SEGMENT": "Uuenda segmenti",
+ "APPLY_FILTERS": "Rakenda filtrid",
+ "ADD_FILTER": "Lisa filter"
+ },
+ "TITLE": "Filtreeri kontakte",
+ "EDIT_SEGMENT": "Muuda segmenti",
+ "SEGMENT": {
+ "LABEL": "Segmendi nimi",
+ "INPUT_PLACEHOLDER": "Sisesta segmendi nimi"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} rohkem filtreid",
+ "CLEAR_FILTERS": "Tühjenda filtrid"
+ }
+ },
+ "CARD": {
+ "OF": "st",
+ "VIEW_DETAILS": "Vaata üksikasju",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Muuda kontaktandmeid",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Sisesta eesnimi"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Sisesta perekonnanimi"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Sisesta e-posti aadress",
+ "DUPLICATE": "See e-posti aadress on juba teise kontakti jaoks kasutusel."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Sisesta telefoninumber",
+ "DUPLICATE": "See telefoninumber on juba teise kontakti jaoks kasutusel."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Sisesta linna nimi"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Vali riik"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Sisesta tutvustus"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Sisesta ettevõtte nimi"
+ }
+ },
+ "UPDATE_BUTTON": "Uuenda kontakti",
+ "SUCCESS_MESSAGE": "Kontakt uuendatud edukalt",
+ "ERROR_MESSAGE": "Kontakti ei õnnestunud uuendada. Palun proovi hiljem uuesti."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Muuda sotsiaalmeedia linke",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Lisa Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Lisa GitHub"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Lisa Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Lisa Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Lisa TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Lisa LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Lisa Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "See toiming on püsiv ja pöördumatu.",
+ "BUTTON": "Kustuta kohe"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Loodud {date}",
+ "LAST_ACTIVITY": "Viimati aktiivne {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Kustuta see kontakt jäädavalt. Seda toimingut ei saa tagasi võtta",
+ "DELETE_CONTACT": "Kustuta kontakt",
+ "DELETE_DIALOG": {
+ "TITLE": "Kustutamise kinnitamine",
+ "DESCRIPTION": "Kas olete kindel, et soovite selle kontakti kustutada?",
+ "CONFIRM": "Jah, kustuta",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakt kustutati edukalt",
+ "ERROR_MESSAGE": "Kontakti ei õnnestunud kustutada. Palun proovige hiljem uuesti."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Avatari üleslaadimine ebaõnnestus. Palun proovi hiljem uuesti.",
+ "SUCCESS_MESSAGE": "Avatar üles laaditud edukalt"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar kustutatud edukalt",
+ "ERROR_MESSAGE": "Avatari kustutamine ebaõnnestus. Palun proovi hiljem uuesti."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribuudid",
+ "HISTORY": "Ajalugu",
+ "NOTES": "Märkmed",
+ "MERGE": "Ühenda"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Selle kontaktiga seotud varasemaid vestlusi ei ole"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Otsi atribuute",
+ "UNUSED_ATTRIBUTES": "{count} Kasutatud atribuut | {count} Kasutamata atribuudid",
+ "EMPTY_STATE": "Selles kontos pole ühtegi kohandatud kontakti atribuuti. Saate luua kohandatud atribuudi seadetes.",
+ "YES": "Jah",
+ "NO": "Ei",
+ "TRIGGER": {
+ "SELECT": "Vali väärtus",
+ "INPUT": "Sisesta väärtus"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Vigane number",
+ "REQUIRED": "Nõutav on kehtiv väärtus",
+ "INVALID_INPUT": "Vigane sisend",
+ "INVALID_URL": "Vigane URL",
+ "INVALID_DATE": "Vigane kuupäev"
+ },
+ "NO_ATTRIBUTES": "Atribuute ei leitud",
+ "API": {
+ "SUCCESS_MESSAGE": "Atribuut uuendati edukalt",
+ "DELETE_SUCCESS_MESSAGE": "Atribuut kustutati edukalt",
+ "UPDATE_ERROR": "Atribuuti ei õnnestunud uuendada. Palun proovi hiljem uuesti",
+ "DELETE_ERROR": "Atribuuti ei õnnestunud kustutada. Palun proovi hiljem uuesti"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Ühenda kontakt",
+ "DESCRIPTION": "Ühenda kaks profiili üheks, sealhulgas kõik atribuudid ja vestlused. Vastuolu korral eelistatakse peamise kontakti atribuute.",
+ "PRIMARY": "Peamine kontakt",
+ "PRIMARY_HELP_LABEL": "Salvestamiseks",
+ "PRIMARY_REQUIRED_ERROR": "Palun valige ühendamiseks kontakt enne jätkamist",
+ "PARENT": "Ühendamiseks",
+ "PARENT_HELP_LABEL": "Kustutamiseks",
+ "EMPTY_STATE": "Kontaktid puuduvad",
+ "PLACEHOLDER": "Otsi esmase kontakti järgi",
+ "SEARCH_PLACEHOLDER": "Otsi kontakti",
+ "SEARCH_ERROR_MESSAGE": "Kontaktide otsimine ebaõnnestus. Palun proovi hiljem uuesti.",
+ "SUCCESS_MESSAGE": "Kontakt edukalt ühendatud",
+ "ERROR_MESSAGE": "Kontaktide ühendamine ebaõnnestus, proovi uuesti!",
+ "IS_SEARCHING": "Otsitakse...",
+ "BUTTONS": {
+ "CANCEL": "Tühista",
+ "CONFIRM": "Ühenda kontakt"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Lisa märge",
+ "WROTE": "kirjutas",
+ "YOU": "Sina",
+ "SAVE": "Salvesta märge",
+ "ADD_NOTE": "Lisa kontakti märge",
+ "EXPAND": "Laienda",
+ "COLLAPSE": "Ahenda",
+ "NO_NOTES": "Märkmeid pole, saad märkmeid lisada kontaktide detailide lehel.",
+ "EMPTY_STATE": "Selle kontaktiga ei ole seotud ühtegi märget. Saad lisada märge, kirjutades ülalolevasse kasti.",
+ "CONVERSATION_EMPTY_STATE": "Märkmikke pole veel. Kasuta nuppu Lisa märge, et luua uus."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Selles kontos kontakte ei leitud",
+ "SUBTITLE": "Alusta uute kontaktide lisamist, klõpsates alloleval nupul",
+ "BUTTON_LABEL": "Lisa kontakt",
+ "SEARCH_EMPTY_STATE_TITLE": "Otsingule ei vastanud ühtegi kontakti 🔍",
+ "LIST_EMPTY_STATE_TITLE": "Selles vaates pole kontakte saadaval 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Hetkel pole ühtegi aktiivset kontakti 🌙"
+ },
+ "LOAD_MORE": "Laadi veel"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Märgendite määramine",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Märgendid määrati edukalt.",
+ "ASSIGN_LABELS_FAILED": "Märgendite määramine ebaõnnestus",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Valige sildid, mida soovite valitud kontaktidele lisada.",
+ "NO_LABELS_FOUND": "Silte pole veel saadaval.",
+ "SELECTED_COUNT": "{count} valitud",
+ "CLEAR_SELECTION": "Tühjenda valik",
+ "SELECT_ALL": "Vali kõik ({count})",
+ "DELETE_CONTACTS": "Kustuta",
+ "DELETE_SUCCESS": "Kontaktid kustutati edukalt.",
+ "DELETE_FAILED": "Kontaktide kustutamine ebaõnnestus.",
+ "DELETE_DIALOG": {
+ "TITLE": "Kustuta valitud kontaktid",
+ "SINGULAR_TITLE": "Kustuta valitud kontakt",
+ "DESCRIPTION": "See kustutab jäädavalt {count} valitud kontakti. Seda toimingut ei saa tagasi võtta.",
+ "SINGULAR_DESCRIPTION": "See kustutab jäädavalt valitud kontakti. Seda toimingut ei saa tagasi võtta.",
+ "CONFIRM_MULTIPLE": "Kustuta kontaktid",
+ "CONFIRM_SINGLE": "Kustuta kontakt"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Otsingut ei õnnestunud lõpule viia. Palun proovi uuesti."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Vaata",
+ "SUCCESS_MESSAGE": "Sõnum saadeti edukalt!",
+ "ERROR_MESSAGE": "Vestluse loomisel tekkis viga. Palun proovi hiljem uuesti.",
+ "NO_INBOX_ALERT": "Selle kontakti jaoks pole saadaval ühtegi postkasti, millega vestlust alustada.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "Saaja:",
+ "TAG_INPUT_PLACEHOLDER": "Sisesta vähemalt 2 märki, et otsida nime, e-posti või telefoninumbri järgi",
+ "CONTACT_CREATING": "Kontakt luuakse..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Kaudu:",
+ "BUTTON": "Näita postkaste"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Teema :",
+ "SUBJECT_PLACEHOLDER": "Sisestage siia oma e-kirja teema",
+ "CC_LABEL": "Koopia:",
+ "CC_PLACEHOLDER": "Sisesta vähemalt 2 märki, et otsida e-posti aadressi järgi",
+ "BCC_LABEL": "Pimekoopia:",
+ "BCC_PLACEHOLDER": "Sisesta vähemalt 2 märki, et otsida e-posti aadressi järgi",
+ "BCC_BUTTON": "Pimekoopia"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Kirjutage siia oma sõnum..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Vali mall",
+ "SEARCH_PLACEHOLDER": "Otsi malle",
+ "EMPTY_STATE": "Malle ei leitud",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Muutujad",
+ "BACK": "Tagasi",
+ "SEND_MESSAGE": "Saada sõnum"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Vali mall",
+ "SEARCH_PLACEHOLDER": "Otsi malle",
+ "EMPTY_STATE": "Malle ei leitud",
+ "TEMPLATE_PARSER": {
+ "BACK": "Mine tagasi",
+ "SEND_MESSAGE": "Saada sõnum"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Hülga",
+ "SEND": "Saada ({keyCode})"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/contactFilters.json b/app/javascript/dashboard/i18n/locale/et/contactFilters.json
new file mode 100644
index 000000000..4c62f0789
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/contactFilters.json
@@ -0,0 +1,60 @@
+{
+ "CONTACTS_FILTER": {
+ "TITLE": "Filter Contacts",
+ "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
+ "EDIT_CUSTOM_SEGMENT": "Edit Segment",
+ "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "ADD_NEW_FILTER": "Add Filter",
+ "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "FILTER_DELETE_ERROR": "You should have atleast one filter to save",
+ "SUBMIT_BUTTON_LABEL": "Submit",
+ "UPDATE_BUTTON_LABEL": "Update Segment",
+ "CANCEL_BUTTON_LABEL": "Cancel",
+ "CLEAR_BUTTON_LABEL": "Clear Filters",
+ "EMPTY_VALUE_ERROR": "Value is required",
+ "SEGMENT_LABEL": "Segment Name",
+ "SEGMENT_QUERY_LABEL": "Segment Query",
+ "TOOLTIP_LABEL": "Filter contacts",
+ "QUERY_DROPDOWN_LABELS": {
+ "AND": "AND",
+ "OR": "OR"
+ },
+ "OPERATOR_LABELS": {
+ "equal_to": "Equal to",
+ "not_equal_to": "Not equal to",
+ "contains": "Contains",
+ "does_not_contain": "Does not contain",
+ "is_present": "Is present",
+ "is_not_present": "Is not present",
+ "is_greater_than": "Is greater than",
+ "is_lesser_than": "Is lesser than",
+ "days_before": "Is x days before"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
+ "ATTRIBUTES": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "CITY": "City",
+ "COUNTRY": "Country",
+ "CUSTOM_ATTRIBUTE_LIST": "List",
+ "CUSTOM_ATTRIBUTE_TEXT": "Text",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Number",
+ "CUSTOM_ATTRIBUTE_LINK": "Link",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CREATED_AT": "Created At",
+ "LAST_ACTIVITY": "Last Activity",
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
+ },
+ "GROUPS": {
+ "STANDARD_FILTERS": "Standard Filters",
+ "ADDITIONAL_FILTERS": "Additional Filters",
+ "CUSTOM_ATTRIBUTES": "Custom Attributes"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/contentTemplates.json b/app/javascript/dashboard/i18n/locale/et/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/conversation.json b/app/javascript/dashboard/i18n/locale/et/conversation.json
new file mode 100644
index 000000000..16923b08c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/conversation.json
@@ -0,0 +1,490 @@
+{
+ "CONVERSATION": {
+ "SELECT_A_CONVERSATION": "Palun vali vestlus vasakpoolsest paneelist",
+ "CSAT_REPLY_MESSAGE": "Palun hinda vestlust",
+ "404": "Vabandame, vestlust ei leitud. Palun proovi uuesti",
+ "SWITCH_VIEW_LAYOUT": "Vaheta paigutust",
+ "DASHBOARD_APP_TAB_MESSAGES": "Sõnumid",
+ "UNVERIFIED_SESSION": "Selle kasutaja isikusamasus ei ole kinnitatud",
+ "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
+ "NO_MESSAGE_2": " et saata sõnum oma lehele!",
+ "NO_INBOX_1": "Tere! Tundub, et te pole veel ühtegi postkasti lisanud.",
+ "NO_INBOX_2": " et alustada",
+ "NO_INBOX_AGENT": "Ups! Tundub, et sa ei kuulu ühtegi postkasti. Palun võta ühendust oma administraatoriga",
+ "SEARCH_MESSAGES": "Otsi sõnumeid vestlustest",
+ "VIEW_ORIGINAL": "Vaata originaali",
+ "VIEW_TRANSLATED": "Vaata tõlgitud",
+ "EMPTY_STATE": {
+ "CMD_BAR": "käskluste menüü avamiseks",
+ "KEYBOARD_SHORTCUTS": "kiirklahvide vaatamiseks"
+ },
+ "SEARCH": {
+ "TITLE": "Otsi sõnumeid",
+ "RESULT_TITLE": "Otsingutulemused",
+ "LOADING_MESSAGE": "Andmete töötlemine...",
+ "PLACEHOLDER": "Tippige sõnumite otsimiseks suvaline tekst",
+ "NO_MATCHING_RESULTS": "Tulemusi ei leitud."
+ },
+ "UNREAD_MESSAGES": "Lugemata sõnumid",
+ "UNREAD_MESSAGE": "Lugemata sõnum",
+ "CLICK_HERE": "Klõpsake siia",
+ "LOADING_INBOXES": "Laaditakse postkaste",
+ "LOADING_CONVERSATIONS": "Laaditakse vestlusi",
+ "CANNOT_REPLY": "Te ei saa vastata, sest",
+ "24_HOURS_WINDOW": "24-tunnine sõnumi akna piirang",
+ "48_HOURS_WINDOW": "48-tunnine sõnumi akna piirang",
+ "API_HOURS_WINDOW": "Sellele vestlusele saate vastata ainult {hours} tunni jooksul",
+ "NOT_ASSIGNED_TO_YOU": "See vestlus ei ole sulle määratud. Kas soovid selle vestluse endale määrata?",
+ "ASSIGN_TO_ME": "Määra mulle",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Märgi avatud ja määra endale",
+ "BOT_HANDOFF_REOPEN_ACTION": "Märgi vestlus avatuks",
+ "BOT_HANDOFF_SUCCESS": "Vestlus on teile üle antud",
+ "BOT_HANDOFF_ERROR": "Vestluse üle võtmine ebaõnnestus. Palun proovi uuesti.",
+ "TWILIO_WHATSAPP_CAN_REPLY": "Sellele vestlusele saate vastata ainult mallisõnumi abil, sest",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "24-tunnine sõnumiakna piirang",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "See Instagram konto on üle viidud uude Instagrami kanalipostkasti. Kõik uued sõnumid kuvatakse seal. Sa ei saa enam sellest vestlusest sõnumeid saata.",
+ "REPLYING_TO": "Vastate sellele:",
+ "REMOVE_SELECTION": "Eemalda valik",
+ "DOWNLOAD": "Laadi alla",
+ "UNKNOWN_FILE_TYPE": "Tundmatu fail",
+ "SAVE_CONTACT": "Salvesta kontakt",
+ "NO_CONTENT": "Kuvatavat sisu pole",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} jagas kontakti",
+ "LOCATION": "{sender} jagas asukohta",
+ "FILE": "{sender} jagas faili",
+ "MEETING": "{sender} alustas koosolekut"
+ },
+ "UPLOADING_ATTACHMENTS": "Manuste üleslaadimine...",
+ "REPLIED_TO_STORY": "Vastas teie loole",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "See sõnum ei ole toetatud. Sa saad seda vaadata Facebook Messenger rakenduses.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "See sõnum ei ole toetatud. Sa saad seda vaadata Instagram rakenduses.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "See sõnum ei ole toetatud. Sa saad seda vaadata TikTok rakenduses.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "Sõnum kustutati edukalt",
+ "FAIL_DELETE_MESSSAGE": "Sõnumit ei õnnestunud kustutada! Proovi uuesti",
+ "NO_RESPONSE": "Vastust pole",
+ "RESPONSE": "Vastus",
+ "RATING_TITLE": "Hinnang",
+ "FEEDBACK_TITLE": "Tagasiside",
+ "REPLY_MESSAGE_NOT_FOUND": "Sõnum pole saadaval",
+ "CARD": {
+ "SHOW_LABELS": "Näita silte",
+ "HIDE_LABELS": "Peida sildid",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Sissetulev kõne",
+ "OUTGOING_CALL": "Väljaminev kõne",
+ "CALL_IN_PROGRESS": "Kõne käib",
+ "NO_ANSWER": "Vastamata",
+ "NO_ANSWER_OUTBOUND_LABEL": "Vastamata",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Vastamata kõne",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Kõne lõppenud",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Veel vastamata",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Nad vastasid",
+ "YOU_ANSWERED": "Sa vastasid",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Liitu kõnega",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
+ },
+ "HEADER": {
+ "RESOLVE_ACTION": "Lahenda",
+ "REOPEN_ACTION": "Ava uuesti",
+ "OPEN_ACTION": "Ava",
+ "MORE_ACTIONS": "Veel toiminguid",
+ "OPEN": "Rohkem",
+ "CLOSE": "Sulge",
+ "DETAILS": "üksikasjad",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "Vaigistatud kuni",
+ "SNOOZED_UNTIL_TOMORROW": "Edasilükatud homseni",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Edasilükatud järgmise nädalani",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Edasilükatud järgmise vastuseni",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "tähtaeg"
+ }
+ },
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "Märgi ootel olevaks",
+ "SNOOZE_UNTIL": "Vaigista",
+ "SNOOZE": {
+ "TITLE": "Edasi lükka kuni",
+ "NEXT_REPLY": "Järgmine vastus",
+ "TOMORROW": "Homme",
+ "NEXT_WEEK": "Järgmine nädal"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "Agentuurid",
+ "TEAMS": "Meeskonnad"
+ },
+ "CUSTOM_SNOOZE": {
+ "TITLE": "Vaigista kuni",
+ "APPLY": "Vaigista",
+ "CANCEL": "Tühista"
+ },
+ "PRIORITY": {
+ "TITLE": "Prioriteet",
+ "OPTIONS": {
+ "NONE": "Puudub",
+ "URGENT": "Kiireloomuline",
+ "HIGH": "Kõrge",
+ "MEDIUM": "Keskmine",
+ "LOW": "Madal"
+ },
+ "CHANGE_PRIORITY": {
+ "SELECT_PLACEHOLDER": "Puudub",
+ "INPUT_PLACEHOLDER": "Vali prioriteet",
+ "NO_RESULTS": "Tulemusi ei leitud",
+ "SUCCESSFUL": "Muudeti vestluse ID {conversationId} prioriteet {priority}-ks",
+ "FAILED": "Prioriteeti ei õnnestunud muuta. Palun proovi uuesti."
+ }
+ },
+ "DELETE_CONVERSATION": {
+ "TITLE": "Kustuta vestlus #{conversationId}",
+ "DESCRIPTION": "Kas oled kindel, et soovid selle vestluse kustutada?",
+ "CONFIRM": "Kustuta"
+ },
+ "CARD_CONTEXT_MENU": {
+ "PENDING": "Märgi ootel olevaks",
+ "RESOLVED": "Märgi lahendatuks",
+ "MARK_AS_UNREAD": "Märgi lugemata",
+ "MARK_AS_READ": "Märgi loetuks",
+ "REOPEN": "Ava vestlus uuesti",
+ "SNOOZE": {
+ "TITLE": "Edasilükkamine",
+ "NEXT_REPLY": "Järgmise vastuseni",
+ "TOMORROW": "Homme hommikuni",
+ "NEXT_WEEK": "Järgmise nädalani"
+ },
+ "ASSIGN_AGENT": "Määra agent",
+ "ASSIGN_LABEL": "Määra silt",
+ "AGENTS_LOADING": "Agendid laaditakse...",
+ "ASSIGN_TEAM": "Määra meeskond",
+ "DELETE": "Kustuta vestlus",
+ "OPEN_IN_NEW_TAB": "Ava uuel vahelehel",
+ "COPY_LINK": "Kopeeri vestluse link",
+ "COPY_LINK_SUCCESS": "Vestluse link kopeeritud lõikelauale",
+ "API": {
+ "AGENT_ASSIGNMENT": {
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
+ "FAILED": "Agendi määramine ebaõnnestus. Palun proovi uuesti."
+ },
+ "LABEL_ASSIGNMENT": {
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
+ "FAILED": "Sildi määramine ebaõnnestus. Palun proovi uuesti."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Märgistust ei õnnestunud eemaldada. Palun proovige uuesti."
+ },
+ "TEAM_ASSIGNMENT": {
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
+ "FAILED": "Meeskonna määramine ebaõnnestus. Palun proovi uuesti."
+ }
+ }
+ },
+ "FOOTER": {
+ "MESSAGE_SIGN_TOOLTIP": "Sõnumi allkiri",
+ "ENABLE_SIGN_TOOLTIP": "Luba allkiri",
+ "DISABLE_SIGN_TOOLTIP": "Keela allkiri",
+ "MSG_INPUT": "Shift + enter uue rea jaoks. Alusta '/'-ga, et valida eelseadistatud vastus.",
+ "PRIVATE_MSG_INPUT": "Shift + enter uue rea jaoks. Seda näevad ainult agendid",
+ "MESSAGING_RESTRICTED": "Te ei saa sellele vestlusele vastata",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Võite vastata ainult mallisõnumi abil 24-tunnise sõnumiakna piirangu tõttu",
+ "MESSAGING_RESTRICTED_API": "Võite vastata ainult mallisõnumi abil sõnumiakna piirangu tõttu",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Sõnumi allkiri ei ole seadistatud, palun seadista see profiili seadetes.",
+ "COPILOT_MSG_INPUT": "Anna copiloti täiendavaid juhiseid või küsi midagi muud... Vajuta enter, et saata järgnev sõnum",
+ "CLICK_HERE": "Värskendamiseks klõpsa siia",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
+ },
+ "REPLYBOX": {
+ "REPLY": "Vasta",
+ "PRIVATE_NOTE": "Privaatne märkus",
+ "SEND": "Saada",
+ "CREATE": "Lisa märkus",
+ "INSERT_READ_MORE": "Loe rohkem",
+ "DISMISS_REPLY": "Lõpeta vastamine",
+ "REPLYING_TO": "Vastan sõnumile:",
+ "TIP_EMOJI_ICON": "Show emoji selector",
+ "TIP_ATTACH_ICON": "Lisa failid",
+ "TIP_AUDIORECORDER_ICON": "Salvesta heli",
+ "TIP_AUDIORECORDER_PERMISSION": "Luba juurdepääs helile",
+ "TIP_AUDIORECORDER_ERROR": "Heli avamine ebaõnnestus",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "Lohista siia manusena lisamiseks",
+ "START_AUDIO_RECORDING": "Alusta heli salvestamist",
+ "STOP_AUDIO_RECORDING": "Peata heli salvestamine",
+ "COPILOT_THINKING": "Copilot mõtleb",
+ "EMAIL_HEAD": {
+ "TO": "SAJALE",
+ "ADD_BCC": "Add bcc",
+ "CC": {
+ "LABEL": "CC",
+ "PLACEHOLDER": "E-posti aadressid, eraldatud komadega",
+ "ERROR": "Palun sisestage kehtivad e-posti aadressid"
+ },
+ "BCC": {
+ "LABEL": "BCC",
+ "PLACEHOLDER": "E-kirjad, eraldatud komadega",
+ "ERROR": "Palun sisestage kehtivad e-posti aadressid"
+ }
+ },
+ "UNDEFINED_VARIABLES": {
+ "TITLE": "Määratlemata muutujad",
+ "MESSAGE": "Sinu sõnumis on {undefinedVariablesCount} määratlemata muutujat: {undefinedVariables}. Kas soovid sõnumi ikkagi saata?",
+ "CONFIRM": {
+ "YES": "Saada",
+ "CANCEL": "Tühista"
+ }
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Lisa tsitaat e-kirja vestlusest",
+ "DISABLE_TOOLTIP": "Ära lisa tsitaati e-kirja vestlusest",
+ "REMOVE_PREVIEW": "Eemalda tsitaat e-kirja vestlusest",
+ "COLLAPSE": "Eelvaate kokkupakkimine",
+ "EXPAND": "Eelvaate laiendamine"
+ }
+ },
+ "VISIBLE_TO_AGENTS": "Privaatne märkus: nähtav ainult teile ja teie meeskonnale",
+ "CHANGE_STATUS": "Vestluse olek muudetud",
+ "CHANGE_STATUS_FAILED": "Vestluse oleku muutmine ebaõnnestus",
+ "CHANGE_AGENT": "Vestluse vastutaja muudetud",
+ "CHANGE_AGENT_FAILED": "Määratud isiku muutmine ebaõnnestus",
+ "ASSIGN_LABEL_SUCCESFUL": "Silt määratud edukalt",
+ "ASSIGN_LABEL_FAILED": "Sildi määramine ebaõnnestus",
+ "CHANGE_TEAM": "Vestluse meeskond vahetatud",
+ "SUCCESS_DELETE_CONVERSATION": "Vestlus kustutati edukalt",
+ "FAIL_DELETE_CONVERSATION": "Vestlust ei õnnestunud kustutada! Proovi uuesti",
+ "FILE_SIZE_LIMIT": "Fail ületab {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB manuspiiri",
+ "FILE_TYPE_NOT_SUPPORTED": "Seda {fileName} failitüüpi selles vestluses ei toetata",
+ "MESSAGE_ERROR": "Sõnumi saatmine ebaõnnestus, palun proovi hiljem uuesti",
+ "SENT_BY": "Saadetud:",
+ "BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
+ "SEND_FAILED": "Sõnumi saatmine ebaõnnestus! Proovi uuesti",
+ "TRY_AGAIN": "proovi uuesti",
+ "ASSIGNMENT": {
+ "SELECT_AGENT": "Vali agent",
+ "REMOVE": "Eemalda",
+ "ASSIGN": "Määra"
+ },
+ "CONTEXT_MENU": {
+ "COPY": "Kopeeri",
+ "REPLY_TO": "Vasta sellele sõnumile",
+ "DELETE": "Kustuta",
+ "CREATE_A_CANNED_RESPONSE": "Lisa eelseadistatud vastustesse",
+ "TRANSLATE": "Tõlgi",
+ "COPY_PERMALINK": "Kopeeri sõnumi link",
+ "LINK_COPIED": "Sõnumi URL on lõikelauale kopeeritud",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "Kas oled kindel, et soovid selle sõnumi kustutada?",
+ "MESSAGE": "Seda toimingut ei saa tagasi võtta",
+ "DELETE": "Kustuta",
+ "CANCEL": "Tühista"
+ }
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontakt",
+ "COPILOT": "Kaassõitja"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Sissetulev kõne",
+ "OUTGOING_CALL": "Väljaminev kõne",
+ "CALL_IN_PROGRESS": "Kõne käib",
+ "NOT_ANSWERED_YET": "Veel ei ole vastatud",
+ "HANDLED_IN_ANOTHER_TAB": "Käsitletakse teises vahekaardis",
+ "REJECT_CALL": "Keeldu",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Liitu kõnega",
+ "END_CALL": "Lõpeta kõne",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
+ }
+ },
+ "EMAIL_TRANSCRIPT": {
+ "TITLE": "Saada vestluse transkriptsioon",
+ "DESC": "Saada vestluse transkriptsiooni koopia määratud e-posti aadressile",
+ "SUBMIT": "Esita",
+ "CANCEL": "Tühista",
+ "SEND_EMAIL_SUCCESS": "Vestluse transkriptsioon saadeti edukalt",
+ "SEND_EMAIL_ERROR": "Tekkis viga, palun proovi uuesti",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "E-kirja vestluse koopia ei ole teie praeguses paketis saadaval. Palun uuendage, et seda funktsiooni kasutada.",
+ "FORM": {
+ "SEND_TO_CONTACT": "Saada transkriptsioon kliendile",
+ "SEND_TO_AGENT": "Send the transcript to the assigned agent",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "Saada transkriptsioon teisele e-posti aadressile",
+ "EMAIL": {
+ "PLACEHOLDER": "Sisesta e-posti aadress",
+ "ERROR": "Palun sisesta kehtiv e-posti aadress"
+ }
+ }
+ },
+ "ONBOARDING": {
+ "TITLE": "Tere 👋, tere tulemast {installationName}!",
+ "DESCRIPTION": "Aitäh registreerumise eest. Soovime, et saaksid {installationName} kasutamisest maksimaalselt kasu. Siin on mõned asjad, mida saad {installationName} abil teha, et kogemus oleks meeldiv.",
+ "GREETING_MORNING": "👋 Tere hommikust, {name}. Tere tulemast {installationName}.",
+ "GREETING_AFTERNOON": "👋 Tere päevast, {name}. Tere tulemast {installationName}.",
+ "GREETING_EVENING": "👋 Tere õhtust, {name}. Tere tulemast {installationName}.",
+ "READ_LATEST_UPDATES": "Loe meie viimaseid uuendusi",
+ "ALL_CONVERSATION": {
+ "TITLE": "Kõik sinu vestlused ühes kohas",
+ "DESCRIPTION": "Vaata kõiki oma klientide vestlusi ühes juhtpaneelis. Saad vestlusi filtreerida saabuvate kanalite, siltide ja staatuse järgi.",
+ "NEW_LINK": "Klõpsake siin, et luua postkast"
+ },
+ "TEAM_MEMBERS": {
+ "TITLE": "Kutsu oma meeskonnaliikmed",
+ "DESCRIPTION": "Kuna valmistud kliendiga suhtlema, too oma meeskonnakaaslased appi. Saad kutsuda meeskonnaliikmeid, lisades nende e-posti aadressid agendi nimekirja.",
+ "NEW_LINK": "Klõpsa siia, et kutsuda meeskonnaliige"
+ },
+ "LABELS": {
+ "TITLE": "Korralda vestlusi siltidega",
+ "DESCRIPTION": "Sildid pakuvad lihtsamat viisi vestluste kategoriseerimiseks. Loo mõned sildid nagu #toetus-päring, #arvelduse-küsimus jne, et saaksid neid hiljem vestluses kasutada.",
+ "NEW_LINK": "Klõpsa siia, et luua silte"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Loo valmis vastused",
+ "DESCRIPTION": "Eelnevalt kirjutatud kiirvastuse mallid aitavad sul vestlusele kiiresti vastata. Agendid saavad sisestada vastuse, tippides esmalt '/' ja seejärel lühikoodi.",
+ "NEW_LINK": "Klõpsa siia, et luua kiirvastus"
+ }
+ },
+ "CONVERSATION_SIDEBAR": {
+ "ASSIGNEE_LABEL": "Määratud agent",
+ "SELF_ASSIGN": "Määra mulle",
+ "TEAM_LABEL": "Määratud meeskond",
+ "SELECT": {
+ "PLACEHOLDER": "Mitte ükski"
+ },
+ "ACCORDION": {
+ "CONTACT_DETAILS": "Kontaktandmed",
+ "CONVERSATION_ACTIONS": "Vestluse toimingud",
+ "CONVERSATION_LABELS": "Vestluse sildid",
+ "CONVERSATION_INFO": "Vestluse teave",
+ "CONTACT_NOTES": "Kontaktimärkmed",
+ "CONTACT_ATTRIBUTES": "Kontakti atribuudid",
+ "PREVIOUS_CONVERSATION": "Eelnevad vestlused",
+ "MACROS": "Makrod",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Tellimus #{id}",
+ "ERROR": "Tellimuste laadimisel tekkis viga",
+ "NO_SHOPIFY_ORDERS": "Tellimusi ei leitud",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Ootel",
+ "AUTHORIZED": "Autoriseeritud",
+ "PARTIALLY_PAID": "Osaliselt tasutud",
+ "PAID": "Makstud",
+ "PARTIALLY_REFUNDED": "Osaliselt tagastatud",
+ "REFUNDED": "Tagastatud",
+ "VOIDED": "Tühistatud"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Täidetud",
+ "PARTIALLY_FULFILLED": "Osaliselt täidetud",
+ "UNFULFILLED": "Täitamata"
+ }
+ }
+ },
+ "CONVERSATION_CUSTOM_ATTRIBUTES": {
+ "ADD_BUTTON_TEXT": "Loo atribuut",
+ "NO_RECORDS_FOUND": "Atribuute ei leitud",
+ "UPDATE": {
+ "SUCCESS": "Atribuut uuendatud edukalt",
+ "ERROR": "Atribuudi värskendamine ebaõnnestus. Palun proovi hiljem uuesti"
+ },
+ "ADD": {
+ "TITLE": "Lisa",
+ "SUCCESS": "Atribuut lisati edukalt",
+ "ERROR": "Atribuudi lisamine ebaõnnestus. Palun proovi hiljem uuesti"
+ },
+ "DELETE": {
+ "SUCCESS": "Atribuut kustutati edukalt",
+ "ERROR": "Atribuuti kustutamine ebaõnnestus. Palun proovi hiljem uuesti"
+ },
+ "ATTRIBUTE_SELECT": {
+ "TITLE": "Lisa atribuute",
+ "PLACEHOLDER": "Otsi atribuute",
+ "NO_RESULT": "Atribuute ei leitud"
+ }
+ },
+ "EMAIL_HEADER": {
+ "FROM": "Saatja",
+ "TO": "Saaja",
+ "BCC": "Pime koopia",
+ "CC": "Koopia",
+ "SUBJECT": "Teema",
+ "EXPAND": "Laienda e-kiri"
+ },
+ "CONVERSATION_PARTICIPANTS": {
+ "SIDEBAR_MENU_TITLE": "Osalejad",
+ "SIDEBAR_TITLE": "Vestluse osalejad",
+ "NO_RECORDS_FOUND": "Tulemusi ei leitud",
+ "ADD_PARTICIPANTS": "Vali osalejad",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} teised",
+ "REMANING_PARTICIPANT_TEXT": "+{count} teine",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} inimest osaleb.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} inimene osaleb.",
+ "NO_PARTICIPANTS_TEXT": "No one is participating!.",
+ "WATCH_CONVERSATION": "Liitu vestlusega",
+ "YOU_ARE_WATCHING": "Sa osaled",
+ "API": {
+ "ERROR_MESSAGE": "Ei õnnestunud uuendada, proovi uuesti!",
+ "SUCCESS_MESSAGE": "Osalejad uuendatud!"
+ }
+ },
+ "TRANSLATE_MODAL": {
+ "TITLE": "Vaata tõlgitud sisu",
+ "DESC": "You can view the translated content in each langauge.",
+ "ORIGINAL_CONTENT": "Originaalne sisu",
+ "TRANSLATED_CONTENT": "Tõlgitud sisu",
+ "NO_TRANSLATIONS_AVAILABLE": "Selle sisu jaoks tõlkeid pole saadaval"
+ },
+ "TYPING": {
+ "ONE": "{user} kirjutab",
+ "TWO": "{user} ja {secondUser} kirjutavad",
+ "MULTIPLE": "{user} ja veel {count} kirjutavad"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Proovi neid juhiseid"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Manuse allalaadimine ebaõnnestus. Palun proovi uuesti"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/csatMgmt.json b/app/javascript/dashboard/i18n/locale/et/csatMgmt.json
new file mode 100644
index 000000000..9e16dc2b3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/csatMgmt.json
@@ -0,0 +1,13 @@
+{
+ "CSAT": {
+ "TITLE": "Rate your conversation",
+ "PLACEHOLDER": "Tell us more...",
+ "RATINGS": {
+ "POOR": "😞 Poor",
+ "FAIR": "😑 Fair",
+ "AVERAGE": "😐 Average",
+ "GOOD": "😀 Good",
+ "EXCELLENT": "😍 Excellent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/customRole.json b/app/javascript/dashboard/i18n/locale/et/customRole.json
new file mode 100644
index 000000000..f7c1709bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/datePicker.json b/app/javascript/dashboard/i18n/locale/et/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/emoji.json b/app/javascript/dashboard/i18n/locale/et/emoji.json
new file mode 100644
index 000000000..d5b96f0f9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/emoji.json
@@ -0,0 +1,7 @@
+{
+ "EMOJI": {
+ "PLACEHOLDER": "Search emojis",
+ "NOT_FOUND": "No emoji match your search",
+ "REMOVE": "Remove"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/general.json b/app/javascript/dashboard/i18n/locale/et/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/generalSettings.json b/app/javascript/dashboard/i18n/locale/et/generalSettings.json
new file mode 100644
index 000000000..fab8020e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/generalSettings.json
@@ -0,0 +1,252 @@
+{
+ "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. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
+ "TITLE": "Account settings",
+ "SUBMIT": "Update settings",
+ "BACK": "Back",
+ "DISMISS": "Dismiss",
+ "UPDATE": {
+ "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": {
+ "TITLE": "General settings",
+ "NOTE": ""
+ },
+ "ACCOUNT_ID": {
+ "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",
+ "ERROR": "Please enter a valid account name"
+ },
+ "LANGUAGE": {
+ "LABEL": "Site language",
+ "PLACEHOLDER": "Your account name",
+ "ERROR": ""
+ },
+ "DOMAIN": {
+ "LABEL": "Incoming Email Domain",
+ "PLACEHOLDER": "The domain where you will receive the emails",
+ "ERROR": ""
+ },
+ "SUPPORT_EMAIL": {
+ "LABEL": "Support Email",
+ "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": "Inactivity duration for resolution",
+ "HELP": "Duration after a conversation should auto resolve if there is no activity",
+ "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"
+ },
+ "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.",
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
+ }
+ },
+ "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"
+ },
+ "FORMS": {
+ "MULTISELECT": {
+ "ENTER_TO_SELECT": "Press enter to select",
+ "ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
+ "SELECT_ONE": "Select one",
+ "SELECT": "Select"
+ }
+ },
+ "NOTIFICATIONS_PAGE": {
+ "HEADER": "Notifications",
+ "MARK_ALL_DONE": "Mark All Done",
+ "DELETE_TITLE": "deleted",
+ "UNREAD_NOTIFICATION": {
+ "TITLE": "Unread Notifications",
+ "ALL_NOTIFICATIONS": "View all notifications",
+ "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
+ "EMPTY_MESSAGE": "You have no unread notifications"
+ },
+ "LIST": {
+ "LOADING_MESSAGE": "Loading notifications...",
+ "404": "No Notifications",
+ "TABLE_HEADER": [
+ "Name",
+ "Phone Number",
+ "Conversations",
+ "Last Contacted"
+ ]
+ },
+ "TYPE_LABEL": {
+ "conversation_creation": "New conversation",
+ "conversation_assignment": "Conversation Assigned",
+ "assigned_conversation_new_message": "New Message",
+ "participating_conversation_new_message": "New Message",
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
+ }
+ },
+ "NETWORK": {
+ "NOTIFICATION": {
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
+ },
+ "BUTTON": {
+ "REFRESH": "Refresh"
+ }
+ },
+ "COMMAND_BAR": {
+ "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
+ "SECTIONS": {
+ "GENERAL": "General",
+ "REPORTS": "Reports",
+ "CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
+ "CHANGE_ASSIGNEE": "Change Assignee",
+ "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_TEAM": "Change Team",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "ADD_LABEL": "Add label to the conversation",
+ "REMOVE_LABEL": "Remove label from the conversation",
+ "SETTINGS": "Settings",
+ "AI_ASSIST": "AI Assist",
+ "APPEARANCE": "Appearance",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ },
+ "COMMANDS": {
+ "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
+ "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
+ "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
+ "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
+ "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
+ "GO_TO_LABEL_REPORTS": "Go to Label Reports",
+ "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
+ "GO_TO_TEAM_REPORTS": "Go to Team Reports",
+ "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
+ "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
+ "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
+ "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
+ "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
+ "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
+ "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
+ "GO_TO_NOTIFICATIONS": "Go to Notifications",
+ "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
+ "ASSIGN_AN_AGENT": "Assign an agent",
+ "AI_ASSIST": "AI Assist",
+ "ASSIGN_PRIORITY": "Assign priority",
+ "ASSIGN_A_TEAM": "Assign a team",
+ "MUTE_CONVERSATION": "Mute conversation",
+ "UNMUTE_CONVERSATION": "Unmute conversation",
+ "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
+ "REOPEN_CONVERSATION": "Reopen conversation",
+ "RESOLVE_CONVERSATION": "Resolve conversation",
+ "SEND_TRANSCRIPT": "Send an email transcript",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "UNTIL_NEXT_REPLY": "Until next reply",
+ "UNTIL_NEXT_WEEK": "Until next week",
+ "UNTIL_TOMORROW": "Until tomorrow",
+ "UNTIL_NEXT_MONTH": "Until next month",
+ "AN_HOUR_FROM_NOW": "Until an hour from now",
+ "UNTIL_CUSTOM_TIME": "Custom...",
+ "CHANGE_APPEARANCE": "Change Appearance",
+ "LIGHT_MODE": "Light",
+ "DARK_MODE": "Dark",
+ "SYSTEM_MODE": "System",
+ "SNOOZE_NOTIFICATION": "Snooze Notification"
+ }
+ },
+ "DASHBOARD_APPS": {
+ "LOADING_MESSAGE": "Loading Dashboard App..."
+ },
+ "COMMON": {
+ "OR": "Or",
+ "CLICK_HERE": "click here"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/helpCenter.json b/app/javascript/dashboard/i18n/locale/et/helpCenter.json
new file mode 100644
index 000000000..fd4e98413
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/helpCenter.json
@@ -0,0 +1,958 @@
+{
+ "HELP_CENTER": {
+ "TITLE": "Abi keskus",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Loo kliendile eneseabikeskuse portaale. Aita neil vastuseid kiiresti leida, ilma ootamiseta. Sujuvenda päringuid, tõsta agendi efektiivsust ja paranda kliendituge.",
+ "CREATE_PORTAL_BUTTON": "Loo portaal"
+ },
+ "HEADER": {
+ "FILTER": "Filtreeri",
+ "SORT": "Sorteeri",
+ "LOCALE": "Keel",
+ "SETTINGS_BUTTON": "Seaded",
+ "NEW_BUTTON": "Uus artikkel",
+ "DROPDOWN_OPTIONS": {
+ "PUBLISHED": "Avaldatud",
+ "DRAFT": "Mustand",
+ "ARCHIVED": "Arhiveeritud"
+ },
+ "TITLES": {
+ "ALL_ARTICLES": "Kõik artiklid",
+ "MINE": "Minu artiklid",
+ "DRAFT": "Mustandid",
+ "ARCHIVED": "Arhiveeritud artiklid"
+ },
+ "LOCALE_SELECT": {
+ "TITLE": "Vali keel",
+ "PLACEHOLDER": "Vali keel",
+ "NO_RESULT": "Keelt ei leitud",
+ "SEARCH_PLACEHOLDER": "Otsi keelevalikut"
+ }
+ },
+ "EDIT_HEADER": {
+ "ALL_ARTICLES": "Kõik artiklid",
+ "PUBLISH_BUTTON": "Avalda",
+ "MOVE_TO_ARCHIVE_BUTTON": "Liiguta arhiivi",
+ "PREVIEW": "Eelvaade",
+ "ADD_TRANSLATION": "Lisa tõlge",
+ "OPEN_SIDEBAR": "Ava külgriba",
+ "CLOSE_SIDEBAR": "Sulge külgriba",
+ "SAVING": "Salvestamine...",
+ "SAVED": "Salvestatud"
+ },
+ "ARTICLE_EDITOR": {
+ "IMAGE_UPLOAD": {
+ "TITLE": "Laadi pilt üles",
+ "UPLOADING": "Laadimine...",
+ "SUCCESS": "Pilt edukalt üles laaditud",
+ "ERROR": "Pildi üleslaadimisel tekkis viga",
+ "UN_AUTHORIZED_ERROR": "Teil pole õigust pilte üles laadida",
+ "ERROR_FILE_SIZE": "Pildi suurus peab olema väiksem kui {size}MB",
+ "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
+ "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ }
+ },
+ "ARTICLE_SETTINGS": {
+ "TITLE": "Artikli seaded",
+ "FORM": {
+ "CATEGORY": {
+ "LABEL": "Kategooria",
+ "TITLE": "Vali kategooria",
+ "PLACEHOLDER": "Vali kategooria",
+ "NO_RESULT": "Kategooriat ei leitud",
+ "SEARCH_PLACEHOLDER": "Otsi kategooriat"
+ },
+ "AUTHOR": {
+ "LABEL": "Autor",
+ "TITLE": "Vali autor",
+ "PLACEHOLDER": "Vali autor",
+ "NO_RESULT": "Autoreid ei leitud",
+ "SEARCH_PLACEHOLDER": "Otsi autorit"
+ },
+ "META_TITLE": {
+ "LABEL": "Meta pealkiri",
+ "PLACEHOLDER": "Lisa meta pealkiri"
+ },
+ "META_DESCRIPTION": {
+ "LABEL": "Meta kirjeldus",
+ "PLACEHOLDER": "Lisa oma meta kirjeldus paremate SEO tulemuste jaoks..."
+ },
+ "META_TAGS": {
+ "LABEL": "Meta sildid",
+ "PLACEHOLDER": "Lisa meta sildid, eraldatud komadega..."
+ }
+ },
+ "BUTTONS": {
+ "ARCHIVE": "Arhiveeri artikkel",
+ "DELETE": "Kustuta artikkel"
+ }
+ },
+ "ARTICLE_SEARCH_RESULT": {
+ "UNCATEGORIZED": "Kategooriata",
+ "SEARCH_RESULTS": "Otsingutulemused päringu jaoks {query}",
+ "EMPTY_TEXT": "Otsi artikleid, mida vastustesse lisada.",
+ "SEARCH_LOADER": "Otsin...",
+ "INSERT_ARTICLE": "Lisa",
+ "NO_RESULT": "Artikleid ei leitud",
+ "COPY_LINK": "Kopeeri artikli link lõikelauale",
+ "OPEN_LINK": "Ava artikkel uuel vahelehel",
+ "PREVIEW_LINK": "Eelvaade artiklist"
+ },
+ "PORTAL": {
+ "HEADER": "Portaalid",
+ "DEFAULT": "Vaikimisi",
+ "NEW_BUTTON": "Uus portaal",
+ "ACTIVE_BADGE": "aktiivne",
+ "CHOOSE_LOCALE_LABEL": "Vali keel",
+ "LOADING_MESSAGE": "Portaalid laaditakse...",
+ "ARTICLES_LABEL": "artiklid",
+ "NO_PORTALS_MESSAGE": "Saadaval pole ühtegi portaali",
+ "ADD_NEW_LOCALE": "Lisa uus keel",
+ "POPOVER": {
+ "TITLE": "Portaalid",
+ "PORTAL_SETTINGS": "Portaali seaded",
+ "SUBTITLE": "Sul on mitu portaali ja iga portaal võib kasutada erinevat keelt.",
+ "CANCEL_BUTTON_LABEL": "Tühista",
+ "CHOOSE_LOCALE_BUTTON": "Vali keel"
+ },
+ "PORTAL_SETTINGS": {
+ "LIST_ITEM": {
+ "HEADER": {
+ "COUNT_LABEL": "artiklid",
+ "ADD": "Lisa keel",
+ "VISIT": "Visit site",
+ "SETTINGS": "Seaded",
+ "DELETE": "Kustuta"
+ },
+ "PORTAL_CONFIG": {
+ "TITLE": "Portaali konfiguratsioonid",
+ "ITEMS": {
+ "NAME": "Nimi",
+ "DOMAIN": "Kohandatud domeen",
+ "SLUG": "Lühike nimi",
+ "TITLE": "Portaali pealkiri",
+ "THEME": "Teema värv",
+ "SUB_TEXT": "Portaali alapealkiri"
+ }
+ },
+ "AVAILABLE_LOCALES": {
+ "TITLE": "Saadaval olevad keeleversioonid",
+ "TABLE": {
+ "NAME": "Keele nimi",
+ "CODE": "Keelekood",
+ "ARTICLE_COUNT": "Artiklite arv",
+ "CATEGORIES": "Kategooriate arv",
+ "SWAP": "Vaheta",
+ "DELETE": "Kustuta",
+ "DEFAULT_LOCALE": "Vaikimisi"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "TITLE": "Kustuta portaal",
+ "MESSAGE": "Kas olete kindel, et soovite selle portaali kustutada",
+ "YES": "Jah, kustuta portaal",
+ "NO": "Ei, säilita portaal",
+ "API": {
+ "DELETE_SUCCESS": "Portaal kustutati edukalt",
+ "DELETE_ERROR": "Portaali kustutamisel tekkis viga"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME juhised saadetud edukalt",
+ "ERROR_MESSAGE": "Viga CNAME juhiste saatmisel"
+ }
+ }
+ },
+ "EDIT": {
+ "HEADER_TEXT": "Muuda portaali",
+ "TABS": {
+ "BASIC_SETTINGS": {
+ "TITLE": "Põhiandmed"
+ },
+ "CUSTOMIZATION_SETTINGS": {
+ "TITLE": "Portaali kohandamine"
+ },
+ "CATEGORY_SETTINGS": {
+ "TITLE": "Kategooriad"
+ },
+ "LOCALE_SETTINGS": {
+ "TITLE": "Keeled"
+ }
+ },
+ "CATEGORIES": {
+ "TITLE": "Kategooriad keeles",
+ "NEW_CATEGORY": "Uus kategooria",
+ "TABLE": {
+ "NAME": "Nimi",
+ "DESCRIPTION": "Kirjeldus",
+ "LOCALE": "Keel",
+ "ARTICLE_COUNT": "Artiklite arv",
+ "ACTION_BUTTON": {
+ "EDIT": "Muuda kategooriat",
+ "DELETE": "Kustuta kategooria"
+ },
+ "EMPTY_TEXT": "Kategooriaid ei leitud"
+ }
+ },
+ "EDIT_BASIC_INFO": {
+ "BUTTON_TEXT": "Uuenda põhiseadeid"
+ }
+ },
+ "ADD": {
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Klienditoe keskuse info",
+ "BODY": "Põhiinfo portaalist"
+ },
+ "CUSTOMIZATION": {
+ "TITLE": "Klienditoe keskuse kohandamine",
+ "BODY": "Kohanda portaali"
+ },
+ "FINISH": {
+ "TITLE": "Valmis! 🎉",
+ "BODY": "Kõik valmis!"
+ }
+ },
+ "CREATE_FLOW_PAGE": {
+ "BACK_BUTTON": "Tagasi",
+ "BASIC_SETTINGS_PAGE": {
+ "HEADER": "Loo portaal",
+ "TITLE": "Klienditoe keskuse info",
+ "CREATE_BASIC_SETTING_BUTTON": "Loo portaali põhiseaded"
+ },
+ "CUSTOMIZATION_PAGE": {
+ "HEADER": "Portaali kohandamine",
+ "TITLE": "Abikeskuse kohandamine",
+ "UPDATE_PORTAL_BUTTON": "Uuenda portaali seadeid"
+ },
+ "FINISH_PAGE": {
+ "TITLE": "Voila!🎉 You're all set up!",
+ "MESSAGE": "Nüüd näed loodud portaali kõigi portaalide lehel.",
+ "FINISH": "Mine kõigi portaalide lehele"
+ }
+ },
+ "LOGO": {
+ "LABEL": "Logo",
+ "UPLOAD_BUTTON": "Laadi logo üles",
+ "HELP_TEXT": "See logo kuvatakse portaali päises.",
+ "IMAGE_UPLOAD_SUCCESS": "Logo üleslaadimine õnnestus",
+ "IMAGE_UPLOAD_ERROR": "Logo kustutamine õnnestus",
+ "IMAGE_DELETE_ERROR": "Viga logo kustutamisel"
+ },
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Portaali nimi",
+ "HELP_TEXT": "Nimi kasutatakse avalikus portaalis sisemiselt.",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "SLUG": {
+ "LABEL": "Lühilink",
+ "PLACEHOLDER": "Portal slug for urls",
+ "ERROR": "Lühilink on nõutud"
+ },
+ "DOMAIN": {
+ "LABEL": "Kohandatud domeen",
+ "PLACEHOLDER": "Portaali kohandatud domeen",
+ "HELP_TEXT": "Lisa ainult siis, kui soovid kasutada oma portaalide jaoks kohandatud domeeni. Nt: {exampleURL}",
+ "ERROR": "Sisesta kehtiv domeeni URL"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Avalehe link",
+ "PLACEHOLDER": "Portaali avalehe link",
+ "HELP_TEXT": "Link, mida kasutatakse portaalist avalehele naasmiseks. Nt: {exampleURL}",
+ "ERROR": "Sisesta kehtiv avalehe URL"
+ },
+ "THEME_COLOR": {
+ "LABEL": "Portaali teema värv",
+ "HELP_TEXT": "See värv kuvatakse portaali teema värvina."
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Lehe pealkiri",
+ "PLACEHOLDER": "Portaali lehe pealkiri",
+ "HELP_TEXT": "Lehe pealkiri kuvatakse avalikus portaalis.",
+ "ERROR": "Lehe pealkiri on kohustuslik"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Päise tekst",
+ "PLACEHOLDER": "Portaali päise tekst",
+ "HELP_TEXT": "Portaali päise tekst kuvatakse avalikus portaalis.",
+ "ERROR": "Portaali päise tekst on nõutud"
+ },
+ "API": {
+ "SUCCESS_MESSAGE_FOR_BASIC": "Portaal loodud edukalt.",
+ "ERROR_MESSAGE_FOR_BASIC": "Portaali loomine ebaõnnestus. Proovi uuesti.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "Portaal uuendatud edukalt.",
+ "ERROR_MESSAGE_FOR_UPDATE": "Portaali uuendamine ebaõnnestus. Proovi uuesti."
+ }
+ },
+ "ADD_LOCALE": {
+ "TITLE": "Lisa uus keel",
+ "SUB_TITLE": "See lisab teie saadavalolevate tõlgete nimekirja uue keele.",
+ "PORTAL": "Portaal",
+ "LOCALE": {
+ "LABEL": "Keel",
+ "PLACEHOLDER": "Vali keel",
+ "ERROR": "Keel on kohustuslik"
+ },
+ "BUTTONS": {
+ "CREATE": "Loo keel",
+ "CANCEL": "Tühista"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Keel lisatud edukalt",
+ "ERROR_MESSAGE": "Keelt ei õnnestunud lisada. Proovi uuesti."
+ }
+ },
+ "CHANGE_DEFAULT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Vaikimisi keel on edukalt uuendatud",
+ "ERROR_MESSAGE": "Vaikimisi keele uuendamine ebaõnnestus. Proovi uuesti."
+ }
+ },
+ "DELETE_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Keel on portaalist edukalt eemaldatud",
+ "ERROR_MESSAGE": "Keelt ei õnnestunud portaalist eemaldada. Proovi uuesti."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
+ }
+ },
+ "TABLE": {
+ "LOADING_MESSAGE": "Artiklite laadimine...",
+ "404": "Otsingule ei vastanud ühtegi artiklit 🔍",
+ "NO_ARTICLES": "Saadaval pole ühtegi artiklit",
+ "HEADERS": {
+ "TITLE": "Pealkiri",
+ "CATEGORY": "Kategooria",
+ "READ_COUNT": "Vaated",
+ "STATUS": "Staatus",
+ "LAST_EDITED": "Viimati muudetud"
+ },
+ "COLUMNS": {
+ "BY": "autor",
+ "AUTHOR_NOT_AVAILABLE": "Autor pole saadaval"
+ }
+ },
+ "EDIT_ARTICLE": {
+ "LOADING": "Artikkel laaditakse...",
+ "TITLE_PLACEHOLDER": "Artikli pealkiri",
+ "CONTENT_PLACEHOLDER": "Kirjutage siia oma artikkel",
+ "API": {
+ "ERROR": "Viga artikli salvestamisel"
+ }
+ },
+ "PUBLISH_ARTICLE": {
+ "API": {
+ "ERROR": "Viga artikli avaldamisel",
+ "SUCCESS": "Artikkel avaldati edukalt"
+ }
+ },
+ "ARCHIVE_ARTICLE": {
+ "API": {
+ "ERROR": "Viga artikli arhiveerimisel",
+ "SUCCESS": "Artikkel arhiveeriti edukalt"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Viga artikli mustandi koostamisel",
+ "SUCCESS": "Artikkel on edukalt mustandina salvestatud"
+ }
+ },
+ "DELETE_ARTICLE": {
+ "MODAL": {
+ "CONFIRM": {
+ "TITLE": "Kustutamise kinnitamine",
+ "MESSAGE": "Kas olete kindel, et soovite artikli kustutada?",
+ "YES": "Jah, kustuta",
+ "NO": "Ei, säilita"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Artikkel kustutati edukalt",
+ "ERROR_MESSAGE": "Viga artikli kustutamisel"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Artiklite järjekorda ei õnnestunud muuta. Palun proovige uuesti."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Kategooriate järjekorda ei õnnestunud muuta. Palun proovige uuesti."
+ }
+ },
+ "CREATE_ARTICLE": {
+ "ERROR_MESSAGE": "Palun lisa artikli pealkiri ja sisu, alles siis saad seadeid uuendada"
+ },
+ "SIDEBAR": {
+ "SEARCH": {
+ "PLACEHOLDER": "Otsi artikleid"
+ }
+ },
+ "CATEGORY": {
+ "ADD": {
+ "TITLE": "Loo kategooria",
+ "SUB_TITLE": "Kategooriat kasutatakse avalikus portaalis artiklite kategoriseerimiseks.",
+ "PORTAL": "Portaal",
+ "LOCALE": "Keel",
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Kategooria nimi",
+ "HELP_TEXT": "Kategooria nimi ja ikoon kuvatakse avalikus portaalis artiklite kategoriseerimiseks.",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "HELP_TEXT": "app.chatwoot.com/hc/minu-portaal/et-EE/kategooriad/minu-slug",
+ "ERROR": "Lühinimi on kohustuslik"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus",
+ "PLACEHOLDER": "Anna kategooria kohta lühike kirjeldus.",
+ "ERROR": "Kirjeldus on kohustuslik"
+ },
+ "BUTTONS": {
+ "CREATE": "Loo kategooria",
+ "CANCEL": "Tühista"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria loodud edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud luua"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Muuda kategooriat",
+ "SUB_TITLE": "Kategooria muutmine värskendab kategooriat avalikus portaalis.",
+ "PORTAL": "Portaal",
+ "LOCALE": "Keel",
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Kategooria nimi",
+ "HELP_TEXT": "Kategooria nimi ja ikoon kuvatakse avalikus portaalis artiklite kategoriseerimiseks.",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "HELP_TEXT": "app.chatwoot.com/hc/minu-portaal/et-EE/kategooriad/minu-slug",
+ "ERROR": "Lühinimi on kohustuslik"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus",
+ "PLACEHOLDER": "Anna kategooria kohta lühike kirjeldus.",
+ "ERROR": "Kirjeldus on kohustuslik"
+ },
+ "BUTTONS": {
+ "CREATE": "Uuenda kategooriat",
+ "CANCEL": "Tühista"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria uuendati edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud uuendada"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria kustutati edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud kustutada"
+ }
+ }
+ },
+ "ARTICLE_SEARCH": {
+ "TITLE": "Otsi artikleid",
+ "PLACEHOLDER": "Otsi artikleid",
+ "NO_RESULT": "Artikleid ei leitud",
+ "SEARCHING": "Otsitakse...",
+ "SEARCH_BUTTON": "Otsi",
+ "INSERT_ARTICLE": "Lisa link",
+ "IFRAME_ERROR": "URL on tühi või vigane. Sisu kuvamine ei õnnestu.",
+ "OPEN_ARTICLE_SEARCH": "Lisa artikkel abikeskusest",
+ "SUCCESS_ARTICLE_INSERTED": "Artikkel lisatud edukalt",
+ "PREVIEW_LINK": "Vaata artiklit eelvaates",
+ "CANCEL": "Sulge",
+ "BACK": "Tagasi",
+ "BACK_RESULTS": "Tagasi tulemuste juurde"
+ },
+ "UPGRADE_PAGE": {
+ "TITLE": "Abi keskus",
+ "DESCRIPTION": "Loo kasutajasõbralikud iseteenindusportaalid. Aita oma kasutajatel artiklitele ligi pääseda ja saada tuge 24/7. Telli uuendus, et see funktsioon aktiveerida.",
+ "SELF_HOSTED_DESCRIPTION": "Loo kasutajasõbralikud iseteenindusportaalid. Aita oma kasutajatel artiklitele ligi pääseda ja saada tuge 24/7. Palun võta ühendust oma administraatoriga, et see funktsioon aktiveerida.",
+ "BUTTON": {
+ "LEARN_MORE": "Loe lisaks",
+ "UPGRADE": "Uuenda"
+ },
+ "FEATURES": {
+ "PORTALS": {
+ "TITLE": "Mitmed portaalid",
+ "DESCRIPTION": "Loo mitu abikeskuse portaali erinevate toodete jaoks, kasutades sama kontot."
+ },
+ "LOCALES": {
+ "TITLE": "Täielik tugi keeleseadetele",
+ "DESCRIPTION": "Lokaliseeri portaal oma keeles. Toetame kõiki keeleseadeid ja võimaldame tõlkeid iga artikli jaoks."
+ },
+ "SEO": {
+ "TITLE": "SEO-sõbralik disain",
+ "DESCRIPTION": "Kohanda oma meta-silte, et parandada nähtavust otsingumootorites meie SEO-sõbralike lehtedega."
+ },
+ "API": {
+ "TITLE": "Täielik API tugi",
+ "DESCRIPTION": "Kasuta portaali peata CMS-ina koos kolmandate osapoolte front-end raamistikuga, kasutades meie API-sid"
+ }
+ }
+ },
+ "LOADING": "Laadimine...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} vaatamine | {count} vaatamist",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Avalda",
+ "DRAFT": "Mustand",
+ "ARCHIVE": "Arhiveeri",
+ "TRANSLATE": "Tõlgi",
+ "DELETE": "Kustuta"
+ },
+ "STATUS": {
+ "DRAFT": "Mustand",
+ "PUBLISHED": "Avaldatud",
+ "ARCHIVED": "Arhiveeritud"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Kategooriata"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Kõik artiklid",
+ "MINE": "Minu omad",
+ "DRAFT": "Mustand",
+ "PUBLISHED": "Avaldatud",
+ "ARCHIVED": "Arhiveeritud"
+ },
+ "CATEGORY": {
+ "ALL": "Kõik kategooriad"
+ },
+ "LOCALE": {
+ "ALL": "Kõik keeled"
+ },
+ "NEW_ARTICLE": "Uus artikkel"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Kirjuta artikkel",
+ "SUBTITLE": "Kirjuta põhjalik artikkel, alustame!",
+ "BUTTON_LABEL": "Uus artikkel"
+ },
+ "MINE": {
+ "TITLE": "Sa pole siin veel ühtegi artiklit kirjutanud",
+ "SUBTITLE": "Kõik sinu kirjutatud artiklid kuvatakse siin kiireks ligipääsuks."
+ },
+ "DRAFT": {
+ "TITLE": "Mustandites pole artikleid",
+ "SUBTITLE": "Mustandid kuvatakse siin"
+ },
+ "PUBLISHED": {
+ "TITLE": "Avaldatud artikleid pole",
+ "SUBTITLE": "Avaldatud artiklid kuvatakse siin"
+ },
+ "ARCHIVED": {
+ "TITLE": "Arhiivis pole artikleid",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "Selles kategoorias pole artikleid",
+ "SUBTITLE": "Selles kategoorias olevad artiklid kuvatakse siin"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Tõlgi",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} valitud",
+ "CLEAR_SELECTION": "Tühjenda valik",
+ "TRANSLATE_BUTTON": "Tõlgi",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Avalda",
+ "DRAFT": "Mustand",
+ "ARCHIVE": "Arhiveeri",
+ "TRANSLATE": "Tõlgi",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Uus kategooria",
+ "EDIT_CATEGORY": "Muuda kategooriat",
+ "CATEGORIES_COUNT": "{n} kategooria | {n} kategooriat",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Kategooriad ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} artiklit) | {categoryName} ({categoryCount} artikkel)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Kategooriaid ei leitud",
+ "SUBTITLE": "Kategooriad kuvatakse siin. Kategooria lisamiseks klõpsake nuppu „Uus kategooria“."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} artikkel | {count} artiklit"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria loodud edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud luua"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria uuendatud edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud uuendada"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategooria kustutatud edukalt",
+ "ERROR_MESSAGE": "Kategooriat ei õnnestunud kustutada"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Loo kategooria",
+ "EDIT": "Muuda kategooriat",
+ "DESCRIPTION": "Kategooria muutmine uuendab kategooriat avalikus portaalis.",
+ "PORTAL": "Portaal",
+ "LOCALE": "Lokaal"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Kategooria nimi",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "SLUG": {
+ "LABEL": "Lühilink",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Lühinimi on kohustuslik",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus",
+ "PLACEHOLDER": "Anna kategooria kohta lühike kirjeldus.",
+ "ERROR": "Kirjeldus on kohustuslik"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Loo",
+ "EDIT": "Uuenda",
+ "CANCEL": "Tühista"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Ühtegi keelt pole saadaval | {n} keel | {n} keelt",
+ "NEW_LOCALE_BUTTON_TEXT": "Uus keel",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} artikkel | {count} artiklit",
+ "CATEGORIES_COUNT": "{count} kategooria | {count} kategooriat",
+ "DEFAULT": "Vaikimisi",
+ "DRAFT": "Mustand",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Määra vaikimisi",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Kustuta"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Lisa uus keel",
+ "DESCRIPTION": "Vali keel, milles see artikkel kirjutatakse. See lisatakse sinu tõlkelisti ja hiljem saad lisada veel.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Vali keel..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Avaldatud",
+ "DRAFT": "Mustand"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Keel lisatud edukalt",
+ "ERROR_MESSAGE": "Keelt ei õnnestunud lisada. Proovi uuesti."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Salvestamine...",
+ "SAVED": "Salvestatud"
+ },
+ "PREVIEW": "Eelvaade",
+ "PUBLISH": "Avalda",
+ "DRAFT": "Mustand",
+ "ARCHIVE": "Arhiiv",
+ "BACK_TO_ARTICLES": "Tagasi artiklite juurde"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Rohkem omadusi",
+ "UNCATEGORIZED": "Kategooriata",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Artikli omadused",
+ "META_DESCRIPTION": "Meta kirjeldus",
+ "META_DESCRIPTION_PLACEHOLDER": "Lisa meta kirjeldus",
+ "META_TITLE": "Meta pealkiri",
+ "META_TITLE_PLACEHOLDER": "Lisa meta pealkiri",
+ "META_TAGS": "Meta sildid",
+ "META_TAGS_PLACEHOLDER": "Lisa meta sildid"
+ },
+ "API": {
+ "ERROR": "Viga artikli salvestamisel"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Uus portaal",
+ "PORTALS": "Portaalid",
+ "CREATE_PORTAL": "Loo ja halda mitut portaali",
+ "ARTICLES": "artiklid",
+ "DOMAIN": "domeen",
+ "PORTAL_NAME": "Portaali nimi"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Loo uus portaali",
+ "DESCRIPTION": "Anna oma portaalile nimi ja loo kasutajasõbralik URL-lühinimi. Mõlemaid saab hiljem seadetes muuta.",
+ "CONFIRM_BUTTON_LABEL": "Loo",
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Vali oma portaalile nimi.",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "SLUG": {
+ "LABEL": "Lühend",
+ "PLACEHOLDER": "kasutusjuhend",
+ "ERROR": "Lühinimi on kohustuslik",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Pildi üleslaadimine ebaõnnestus! Proovi uuesti",
+ "IMAGE_UPLOAD_SUCCESS": "Pilt lisatud edukalt. Palun klõpsa muudatuste salvestamiseks",
+ "IMAGE_DELETE_SUCCESS": "Logo kustutati edukalt",
+ "IMAGE_DELETE_ERROR": "Logo kustutamine ebaõnnestus",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Pildi suurus peab olema väiksem kui {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Portaali nimi",
+ "ERROR": "Nimi on nõutud"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Päise tekst",
+ "PLACEHOLDER": "Portaali päise tekst"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Lehe pealkiri",
+ "PLACEHOLDER": "Portaali lehe pealkiri"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Avalehe link",
+ "PLACEHOLDER": "Portaali avalehe link",
+ "ERROR": "Sisestage kehtiv URL. Avalehe link peab algama 'http://' või 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Lühinimi",
+ "PLACEHOLDER": "Portaali lühinimi"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Otsevestluse vidin",
+ "PLACEHOLDER": "Vali otsevestluse vidin",
+ "HELP_TEXT": "Valige vestluse vidin, mis kuvatakse teie abikeskuses",
+ "NONE_OPTION": "Ühtegi vidinat"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brändi värv"
+ },
+ "SAVE_CHANGES": "Salvesta muudatused"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Kohandatud domeen",
+ "LABEL": "Kohandatud domeen:",
+ "DESCRIPTION": "Saate oma portaali majutada kohandatud domeenil. Näiteks, kui teie veebisait on yourdomain.com ja soovite, et teie portaal oleks saadaval aadressil docs.yourdomain.com, sisestage see lihtsalt siia.",
+ "STATUS_DESCRIPTION": "Sinu kohandatud portaal hakkab tööle kohe, kui see on kinnitatud.",
+ "PLACEHOLDER": "Portaali kohandatud domeen",
+ "EDIT_BUTTON": "Muuda",
+ "ADD_BUTTON": "Lisa kohandatud domeen",
+ "STATUS": {
+ "LIVE": "Otseülekanne",
+ "PENDING": "Ootab kinnitamist",
+ "ERROR": "Kinnitus ebaõnnestus"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Lisa kohandatud domeen",
+ "EDIT_HEADER": "Muuda kohandatud domeeni",
+ "ADD_CONFIRM_BUTTON_LABEL": "Lisa domeen",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Uuenda domeeni",
+ "LABEL": "Kohandatud domeen",
+ "PLACEHOLDER": "Portaali kohandatud domeen",
+ "ERROR": "Kohandatud domeen on nõutud",
+ "FORMAT_ERROR": "Sisestage kehtiv domeeni URL, nt docs.yourdomeen.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Logi sisse oma DNS-teenusepakkuja kontole ja lisa alamdomeeni jaoks CNAME kirje, mis osutab chatwoot.help",
+ "COPY": "CNAME edukalt kopeeritud",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Saada juhised",
+ "DESCRIPTION": "Kui soovite, et teie arendusmeeskonna keegi tegeleks selle sammuga, võite allpool sisestada e-posti aadressi ja me saadame neile vajalikud juhised.",
+ "PLACEHOLDER": "Sisestage nende e-post",
+ "ERROR": "Sisestage kehtiv e-posti aadress",
+ "SEND_BUTTON": "Saada"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Kustuta {portalName}",
+ "HEADER": "Kustuta portaal",
+ "DESCRIPTION": "Kustuta see portaal jäädavalt. Seda toimingut ei saa tagasi võtta",
+ "DIALOG": {
+ "HEADER": "Oled kindel, et soovid kustutada {portalName}?",
+ "DESCRIPTION": "See on pöördumatu toiming.",
+ "CONFIRM_BUTTON_LABEL": "Kustuta"
+ }
+ },
+ "EDIT_CONFIGURATION": "Muuda seadistust"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Eemalda"
+ },
+ "SAVE": "Salvesta muudatused"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portaal loodud edukalt",
+ "ERROR_MESSAGE": "Portaali loomine ebaõnnestus"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portaal uuendatud edukalt",
+ "ERROR_MESSAGE": "Portaali uuendamine ebaõnnestus"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Laadi üles PDF dokument, et automaatselt AI abil genereerida KKK",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Täiendav kontekst (valikuline)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Lisa täiendav kontekst või juhised KKK genereerimiseks...",
+ "UPLOADING": "Laadimine...",
+ "UPLOAD": "Laadi üles ja töötle",
+ "CANCEL": "Tühista",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "Faili suurus peab olema väiksem kui 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF dokumendid",
+ "DESCRIPTION": "Halda üleslaaditud PDF dokumente ja loo neist korduma kippuvad küsimused",
+ "UPLOAD_PDF": "Laadi PDF üles",
+ "UPLOAD_FIRST_PDF": "Laadi üles oma esimene PDF",
+ "UPLOADED_BY": "Üles laadinud",
+ "GENERATE_FAQS": "Loo korduma kippuvad küsimused",
+ "GENERATING": "Luuakse...",
+ "CONFIRM_DELETE": "Oled kindel, et soovid kustutada faili {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Laadi üles PDF dokumendid, et automaatselt AI abil genereerida KKK"
+ },
+ "STATUS": {
+ "UPLOADED": "Valmis",
+ "PROCESSING": "Töötlemisel",
+ "PROCESSED": "Valminud",
+ "FAILED": "Ebaõnnestus"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Sisu genereerimine",
+ "DESCRIPTION": "Laadi üles PDF dokumendid, et automaatselt AI abil genereerida KKK sisu",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Lohista siia oma PDF fail või klõpsa valimiseks",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Dokumendi töötlemine...",
+ "UPLOAD_SUCCESS": "Dokument töödeldud edukalt!",
+ "UPLOAD_ERROR": "Dokumendi üleslaadimine ebaõnnestus. Palun proovi uuesti.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "Faili suurus peab olema väiksem kui 512MB",
+ "GENERATED_CONTENT": "Genereeritud KKK sisu",
+ "PUBLISH_SELECTED": "Avalda valitud",
+ "PUBLISHING": "Avaldamine...",
+ "FROM_DOCUMENT": "Dokumendist",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Genereeritud sisu laadimine..."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/inbox.json b/app/javascript/dashboard/i18n/locale/et/inbox.json
new file mode 100644
index 000000000..385e9e4ce
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/inbox.json
@@ -0,0 +1,95 @@
+{
+ "INBOX": {
+ "LIST": {
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "Display",
+ "LOADING": "Fetching notifications",
+ "404": "There are no active notifications in this group.",
+ "NO_NOTIFICATIONS": "No notifications",
+ "NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
+ "SNOOZED_UNTIL": "Snoozed until",
+ "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ },
+ "ACTION_HEADER": {
+ "SNOOZE": "Snooze notification",
+ "DELETE": "Delete notification",
+ "BACK": "Back"
+ },
+ "TYPES": {
+ "CONVERSATION_MENTION": "You have been mentioned in a conversation",
+ "CONVERSATION_CREATION": "New conversation created",
+ "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
+ },
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
+ "MENU_ITEM": {
+ "MARK_AS_READ": "Mark as read",
+ "MARK_AS_UNREAD": "Mark as unread",
+ "SNOOZE": "Snooze",
+ "DELETE": "Delete",
+ "MARK_ALL_READ": "Mark all as read",
+ "DELETE_ALL": "Delete all",
+ "DELETE_ALL_READ": "Delete all read"
+ },
+ "DISPLAY_MENU": {
+ "SORT": "Sort",
+ "DISPLAY": "Display :",
+ "SORT_OPTIONS": {
+ "NEWEST": "Newest",
+ "OLDEST": "Oldest",
+ "PRIORITY": "Priority"
+ },
+ "DISPLAY_OPTIONS": {
+ "SNOOZED": "Snoozed",
+ "READ": "Read",
+ "LABELS": "Labels",
+ "CONVERSATION_ID": "Conversation ID"
+ }
+ },
+ "ALERTS": {
+ "MARK_AS_READ": "Notification marked as read",
+ "MARK_AS_UNREAD": "Notification marked as unread",
+ "SNOOZE": "Notification snoozed",
+ "DELETE": "Notification deleted",
+ "MARK_ALL_READ": "All notifications marked as read",
+ "DELETE_ALL": "All notifications deleted",
+ "DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json
new file mode 100644
index 000000000..16b86dcae
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/inboxMgmt.json
@@ -0,0 +1,1202 @@
+{
+ "INBOX_MGMT": {
+ "HEADER": "Postkastid",
+ "DESCRIPTION": "Kanal on suhtlusviis, mille teie klient valib teiega suhtlemiseks. Postkast on koht, kus haldate konkreetse kanali suhtlusi. See võib sisaldada suhtlust eri allikatest, nagu e-post, reaalajas vestlus ja sotsiaalmeedia.",
+ "LEARN_MORE": "Lisateave postkastide kohta",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Teie postkast on lahti ühendatud. Te ei saa uusi sõnumeid enne, kui volitate selle uuesti.",
+ "CLICK_TO_RECONNECT": "Taasühendamiseks klõpsake siin.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
+ "LIST": {
+ "404": "Selle kontoga pole seotud ühtegi postkasti."
+ },
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Vali kanal",
+ "BODY": "Valige teenusepakkuja, mille soovite Chatwootiga siduda."
+ },
+ "INBOX": {
+ "TITLE": "Loo postkast",
+ "BODY": "Autentige oma konto ja looge postkast."
+ },
+ "AGENT": {
+ "TITLE": "Lisa agendid",
+ "BODY": "Lisage loodud postkasti agendid."
+ },
+ "FINISH": {
+ "TITLE": "Valmis!",
+ "BODY": "Kõik on valmis!"
+ }
+ },
+ "ADD": {
+ "CHANNEL_NAME": {
+ "LABEL": "Postkasti nimi",
+ "PLACEHOLDER": "Sisesta oma postkasti nimi (nt Acme Inc)",
+ "ERROR": "Palun sisesta kehtiv postkasti nimi"
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "Veebisaidi nimi",
+ "PLACEHOLDER": "Sisesta oma veebisaidi nimi (nt Acme Inc)"
+ },
+ "FB": {
+ "HELP": "PS: Sisselogimisel pääseme ligi ainult teie lehe sõnumitele. Teie privaatseid sõnumeid Chatwoot ei pääse kunagi ligi.",
+ "CHOOSE_PAGE": "Vali leht",
+ "CHOOSE_PLACEHOLDER": "Valige nimekirjast leht",
+ "INBOX_NAME": "Postkasti nimi",
+ "ADD_NAME": "Lisa oma postkastile nimi",
+ "PICK_NAME": "Valige oma postkastile nimi",
+ "PICK_A_VALUE": "Vali väärtus",
+ "CREATE_INBOX": "Loo postkast"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Jätka Instagramiga",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Ühenda oma Instagrami profiil",
+ "HELP": "Instagrami profiili kanali lisamiseks peate autentima oma Instagrami profiili, klõpsates nupul 'Jätka Instagramiga'.",
+ "ERROR_MESSAGE": "Instagramiga ühendamisel tekkis viga, palun proovige uuesti",
+ "ERROR_AUTH": "Instagramiga ühendamisel tekkis viga, palun proovige uuesti",
+ "NEW_INBOX_SUGGESTION": "See Instagrami konto oli varem seotud teise postkastiga ja on nüüd siia üle viidud. Kõik uued sõnumid kuvatakse siin. Vana postkast ei saa selle konto jaoks enam sõnumeid saata ega vastu võtta.",
+ "DUPLICATE_INBOX_BANNER": "See Instagrami konto viidi üle uue Instagrami kanali postkasti. Sellest postkastist ei saa te enam Instagrami sõnumeid saata ega vastu võtta."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
+ },
+ "TWITTER": {
+ "HELP": "Twitteri profiili kanalina lisamiseks peate autentima oma Twitteri profiili, klõpsates 'Logi sisse Twitteriga' ",
+ "ERROR_MESSAGE": "Tekkis viga Twitteriga ühendamisel, palun proovi uuesti",
+ "TWEETS": {
+ "ENABLE": "Loo vestlused mainitud säutsudest"
+ }
+ },
+ "WEBSITE_CHANNEL": {
+ "TITLE": "Veebisaidi kanal",
+ "DESC": "Loo kanal oma veebisaidile ja alusta klientide toetamist meie veebisaidi vidina kaudu.",
+ "LOADING_MESSAGE": "Veebitoe kanali loomine",
+ "CHANNEL_AVATAR": {
+ "LABEL": "Kanali avatar"
+ },
+ "CHANNEL_WEBHOOK_URL": {
+ "LABEL": "Veebikonksu URL",
+ "PLACEHOLDER": "Palun sisestage oma webhooki URL",
+ "ERROR": "Palun sisesta kehtiv URL"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "CHANNEL_DOMAIN": {
+ "LABEL": "Veebisaidi domeen",
+ "PLACEHOLDER": "Sisestage oma veebisaidi domeen (nt acme.com)"
+ },
+ "CHANNEL_WELCOME_TITLE": {
+ "LABEL": "Tervituse pealkiri",
+ "PLACEHOLDER": "Tere!"
+ },
+ "CHANNEL_WELCOME_TAGLINE": {
+ "LABEL": "Tervituse alapealkiri",
+ "PLACEHOLDER": "Me muudame ühenduse loomise lihtsaks. Küsi meilt kõike või jaga oma tagasisidet."
+ },
+ "CHANNEL_GREETING_MESSAGE": {
+ "LABEL": "Kanali tervitussõnum",
+ "PLACEHOLDER": "Acme Inc vastab tavaliselt mõne tunni jooksul."
+ },
+ "CHANNEL_GREETING_TOGGLE": {
+ "LABEL": "Luba kanali tervitus",
+ "HELP_TEXT": "Saada tervitussõnumid automaatselt, kui kliendid alustavad vestlust ja saadavad esimese sõnumi.",
+ "ENABLED": "Lubatud",
+ "DISABLED": "Keelatud"
+ },
+ "REPLY_TIME": {
+ "TITLE": "Määra vastamise aeg",
+ "IN_A_FEW_MINUTES": "Mõne minuti pärast",
+ "IN_A_FEW_HOURS": "Mõne tunni pärast",
+ "IN_A_DAY": "Päeva jooksul",
+ "HELP_TEXT": "See vastamise aeg kuvatakse reaalajas vestluse vidinal"
+ },
+ "WIDGET_COLOR": {
+ "LABEL": "Vidina värv",
+ "PLACEHOLDER": "Uuenda vidina värvi, mida vidinas kasutatakse"
+ },
+ "SUBMIT_BUTTON": "Loo postkast",
+ "API": {
+ "ERROR_MESSAGE": "Me ei suutnud veebisaidi kanalit luua, palun proovi uuesti"
+ }
+ },
+ "TWILIO": {
+ "TITLE": "Twilio SMS/WhatsApp kanal",
+ "DESC": "Integreeri Twilio ja alusta klientide toetamist SMS-i või WhatsAppi kaudu.",
+ "ACCOUNT_SID": {
+ "LABEL": "Konto SID",
+ "PLACEHOLDER": "Palun sisestage oma Twilio konto SID",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "API_KEY": {
+ "USE_API_KEY": "Kasuta API-võtme autentimist",
+ "LABEL": "API-võtme SID",
+ "PLACEHOLDER": "Sisesta oma API-võtme SID",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API-võtme saladus",
+ "PLACEHOLDER": "Sisestage oma API võtme saladus",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "MESSAGING_SERVICE_SID": {
+ "LABEL": "Sõnumiteenuse SID",
+ "PLACEHOLDER": "Sisesta oma Twilio sõnumiteenuse SID",
+ "ERROR": "See väli on kohustuslik",
+ "USE_MESSAGING_SERVICE": "Kasuta Twilio sõnumiteenust"
+ },
+ "CHANNEL_TYPE": {
+ "LABEL": "Kanali tüüp",
+ "ERROR": "Palun valige oma kanali tüüp"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Autentimismärk",
+ "PLACEHOLDER": "Palun sisestage oma Twilio autentimismärk",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "CHANNEL_NAME": {
+ "LABEL": "Sissetuleva postkasti nimi",
+ "PLACEHOLDER": "Palun sisesta sissetuleva postkasti nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefoninumber",
+ "PLACEHOLDER": "Palun sisestage telefoninumber, millest sõnum saadetakse.",
+ "ERROR": "Palun sisestage kehtiv telefoninumber, mis algab märgiga `+` ja ei sisalda tühikuid."
+ },
+ "API_CALLBACK": {
+ "TITLE": "Tagasihelistamise URL",
+ "SUBTITLE": "Peate seadistama sõnumite tagasikutsumise URL-i Twilios sellel siin mainitud URL-iga."
+ },
+ "SUBMIT_BUTTON": "Loo Twilio kanal",
+ "API": {
+ "ERROR_MESSAGE": "Twilio volitusi ei õnnestunud kinnitada, palun proovige uuesti"
+ }
+ },
+ "SMS": {
+ "TITLE": "SMS kanal",
+ "DESC": "Alusta klientide toetamist SMS-i kaudu.",
+ "PROVIDERS": {
+ "LABEL": "API pakkuja",
+ "TWILIO": "Twilio",
+ "BANDWIDTH": "Bandwidth"
+ },
+ "API": {
+ "ERROR_MESSAGE": "SMS kanalit ei õnnestunud salvestada"
+ },
+ "BANDWIDTH": {
+ "ACCOUNT_ID": {
+ "LABEL": "Konto ID",
+ "PLACEHOLDER": "Palun sisesta oma Bandwidth konto ID",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "API_KEY": {
+ "LABEL": "API võti",
+ "PLACEHOLDER": "Palun sisestage oma Bandwidth API võti",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "API_SECRET": {
+ "LABEL": "API saladus",
+ "PLACEHOLDER": "Palun sisestage oma Bandwidth API saladus",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "APPLICATION_ID": {
+ "LABEL": "Rakenduse ID",
+ "PLACEHOLDER": "Sisesta oma Bandwidthi rakenduse ID",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "INBOX_NAME": {
+ "LABEL": "Postkasti nimi",
+ "PLACEHOLDER": "Palun sisesta postkasti nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefoninumber",
+ "PLACEHOLDER": "Palun sisesta telefoninumber, millest sõnum saadetakse.",
+ "ERROR": "Palun sisestage kehtiv telefoninumber, mis algab märgiga `+` ja ei sisalda tühikuid."
+ },
+ "SUBMIT_BUTTON": "Loo Bandwidthi kanal",
+ "API": {
+ "ERROR_MESSAGE": "Me ei suutnud Bandwidthi mandaate autentida, palun proovi uuesti"
+ },
+ "API_CALLBACK": {
+ "TITLE": "Tagasikutsumise URL",
+ "SUBTITLE": "Peate Bandwidthis seadistama sõnumite tagasikutsumise URL-i siin mainitud URL-iga."
+ }
+ }
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsAppi kanal",
+ "DESC": "Alusta klientide toetamist WhatsAppi kaudu.",
+ "PROVIDERS": {
+ "LABEL": "API pakkuja",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
+ "TWILIO": "Twilio",
+ "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Kiire seadistus Meta kaudu",
+ "TWILIO_DESC": "Ühenda Twilio andmetega",
+ "360_DIALOG": "360Dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "Vali API pakkuja",
+ "DESCRIPTION": "Vali oma WhatsAppi pakkuja. Saad ühendada otse Meta kaudu ilma seadistamiseta või kasutada Twilio kontotunnuseid."
+ },
+ "INBOX_NAME": {
+ "LABEL": "Sissetuleva postkasti nimi",
+ "PLACEHOLDER": "Palun sisesta sissetuleva postkasti nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "PHONE_NUMBER": {
+ "LABEL": "Telefoninumber",
+ "PLACEHOLDER": "Palun sisesta telefoninumber, millest sõnum saadetakse.",
+ "ERROR": "Palun sisestage kehtiv telefoninumber, mis algab märgiga „+“ ja ei sisalda tühikuid."
+ },
+ "PHONE_NUMBER_ID": {
+ "LABEL": "Telefoninumbri ID",
+ "PLACEHOLDER": "Palun sisesta Facebooki arendajate juhtpaneelilt saadud telefoninumbri ID.",
+ "ERROR": "Palun sisestage kehtiv väärtus."
+ },
+ "BUSINESS_ACCOUNT_ID": {
+ "LABEL": "Ärikonto ID",
+ "PLACEHOLDER": "Palun sisesta Facebooki arendajate juhtpaneelilt saadud ärikonto ID.",
+ "ERROR": "Palun sisesta kehtiv väärtus."
+ },
+ "WEBHOOK_VERIFY_TOKEN": {
+ "LABEL": "Webhook kinnituse token",
+ "PLACEHOLDER": "Sisestage kinnitustoken, mida soovite Facebooki webhookide jaoks seadistada.",
+ "ERROR": "Palun sisesta kehtiv väärtus."
+ },
+ "API_KEY": {
+ "LABEL": "API võti",
+ "SUBTITLE": "Seadista WhatsAppi API võti.",
+ "PLACEHOLDER": "API võti",
+ "ERROR": "Palun sisesta kehtiv väärtus."
+ },
+ "API_CALLBACK": {
+ "TITLE": "Tagasikutsumise URL",
+ "SUBTITLE": "Peate Facebooki arendajate portaalis seadistama veebikonksu URL-i ja kinnitustokeni allolevate väärtustega.",
+ "WEBHOOK_URL": "Veebikonksu URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook kinnituse token"
+ },
+ "SUBMIT_BUTTON": "Loo WhatsAppi kanal",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Sisseehitatud registreerimise eelised:",
+ "EASY_SETUP": "Käsitsi seadistamine pole vajalik",
+ "SECURE_AUTH": "Turvaline OAuth-põhine autentimine",
+ "AUTO_CONFIG": "Automaatne webhooki ja telefoninumbri seadistus"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Ühenda WhatsApp Businessiga",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
+ "API": {
+ "ERROR_MESSAGE": "WhatsAppi kanalit ei õnnestunud salvestada"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Kõnekanal",
+ "DESC": "Integreeri Twilio Voice ja alusta klientide toetamist telefonikõnede kaudu.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefoninumber",
+ "PLACEHOLDER": "Sisesta oma telefoninumber (nt +1234567890)",
+ "ERROR": "Palun sisesta kehtiv telefoninumber E.164 formaadis (nt +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Konto SID",
+ "PLACEHOLDER": "Sisesta oma Twilio Account SID",
+ "REQUIRED": "Account SID on kohustuslik"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Autentimismärgis",
+ "PLACEHOLDER": "Sisesta oma Twilio autentimismärgis",
+ "REQUIRED": "Autentimismärgis on kohustuslik"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API võtme SID",
+ "PLACEHOLDER": "Sisesta oma Twilio API võtme SID",
+ "REQUIRED": "API Key SID on kohustuslik"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API võtme saladus",
+ "PLACEHOLDER": "Sisesta oma Twilio API Key Secret",
+ "REQUIRED": "API Key Secret on kohustuslik"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Loo kõnekanal",
+ "API": {
+ "ERROR_MESSAGE": "Häälekanalit ei õnnestunud luua"
+ }
+ },
+ "API_CHANNEL": {
+ "TITLE": "API kanal",
+ "DESC": "Integreeri API kanaliga ja alusta oma klientide toetamisega.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanali nimi",
+ "PLACEHOLDER": "Palun sisestage kanali nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "Veebikonksu URL",
+ "SUBTITLE": "Seadistage URL, kuhu soovite sündmuste tagasikutsed vastu võtta.",
+ "PLACEHOLDER": "Veebikonksu URL"
+ },
+ "SUBMIT_BUTTON": "Loo API kanal",
+ "API": {
+ "ERROR_MESSAGE": "API kanalit ei õnnestunud salvestada"
+ }
+ },
+ "EMAIL_CHANNEL": {
+ "TITLE": "E-posti kanal",
+ "DESC": "Ühendage oma e-posti postkast.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanali nimi",
+ "PLACEHOLDER": "Palun sisesta kanali nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "EMAIL": {
+ "LABEL": "E-post",
+ "SUBTITLE": "Sisestage e-posti aadress, kuhu teie kliendid saadavad tugipäringuid.",
+ "PLACEHOLDER": "E-post"
+ },
+ "SUBMIT_BUTTON": "Loo e-posti kanal",
+ "API": {
+ "ERROR_MESSAGE": "E-posti kanalit ei õnnestunud salvestada"
+ },
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Click here",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
+ },
+ "LINE_CHANNEL": {
+ "TITLE": "LINE kanal",
+ "DESC": "Integreeri LINE kanaliga ja alusta oma klientide toetamisega.",
+ "CHANNEL_NAME": {
+ "LABEL": "Kanali nimi",
+ "PLACEHOLDER": "Palun sisesta kanali nimi",
+ "ERROR": "See väli on kohustuslik"
+ },
+ "LINE_CHANNEL_ID": {
+ "LABEL": "LINE kanali ID",
+ "PLACEHOLDER": "LINE kanali ID"
+ },
+ "LINE_CHANNEL_SECRET": {
+ "LABEL": "LINE kanali saladus",
+ "PLACEHOLDER": "LINE kanali saladus"
+ },
+ "LINE_CHANNEL_TOKEN": {
+ "LABEL": "LINE kanali token",
+ "PLACEHOLDER": "LINE kanali token"
+ },
+ "SUBMIT_BUTTON": "Loo LINE kanal",
+ "API": {
+ "ERROR_MESSAGE": "LINE kanalit ei õnnestunud salvestada"
+ },
+ "API_CALLBACK": {
+ "TITLE": "Tagasikutsumise URL",
+ "SUBTITLE": "Peate LINE rakenduses seadistama veebikonksu URL-i siin mainitud URL-iga."
+ }
+ },
+ "TELEGRAM_CHANNEL": {
+ "TITLE": "Telegrami kanal",
+ "DESC": "Integreeri Telegrami kanaliga ja alusta oma klientide toetamisega.",
+ "BOT_TOKEN": {
+ "LABEL": "Boti token",
+ "SUBTITLE": "Seadista boti token, mille said Telegrami BotFather'ilt.",
+ "PLACEHOLDER": "Boti token"
+ },
+ "SUBMIT_BUTTON": "Loo Telegrami kanal",
+ "API": {
+ "ERROR_MESSAGE": "Telegrami kanalit ei õnnestunud salvestada"
+ }
+ },
+ "AUTH": {
+ "TITLE": "Vali kanal",
+ "DESC": "Chatwoot toetab vestlusvidinaid, Facebook Messengeri, WhatsAppi, e-kirju jms kanalitena. Kui soovid luua kohandatud kanali, saad selle luua API kanali abil. Alustamiseks vali allolevatest kanalitest üks.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
+ },
+ "AGENTS": {
+ "TITLE": "Agendid",
+ "DESC": "Siin saate lisada agente, kes haldavad teie äsja loodud postkasti. Ainult valitud agendid pääsevad teie postkastile ligi. Agendid, kes ei kuulu sellesse postkasti, ei näe ega saa vastata selle postkasti sõnumitele, kui nad sisse logivad.
PS: Administraatorina, kui vajate ligipääsu kõigile postkastidele, peaksite lisama end agentideks kõigisse loodud postkastidesse.",
+ "VALIDATION_ERROR": "Lisage oma uude postkasti vähemalt üks agent",
+ "PICK_AGENTS": "Vali postkasti agendid"
+ },
+ "DETAILS": {
+ "TITLE": "Postkasti üksikasjad",
+ "DESC": "Valige allolevast rippmenüüst Facebooki leht, mida soovite Chatwootiga ühendada. Võite ka anda postkastile kohandatud nime parema äratundmise jaoks."
+ },
+ "FINISH": {
+ "TITLE": "Valmis!",
+ "DESC": "Olete edukalt ühendanud oma Facebooki lehe Chatwootiga. Järgmine kord, kui klient teie lehele sõnumi saadab, kuvatakse vestlus automaatselt teie postkastis.
Samuti anname teile vidina skripti, mille saate hõlpsasti oma veebisaidile lisada. Kui see on teie veebisaidil aktiivne, saavad kliendid teile otse veebisaidilt sõnumeid saata ilma väliste tööriistadeta ning vestlus kuvatakse siin, Chatwootis.
Lahe, eks? Me püüame kindlasti :)"
+ },
+ "EMAIL_PROVIDER": {
+ "TITLE": "Valige oma e-posti teenusepakkuja",
+ "DESCRIPTION": "Valige allolevast loendist e-posti pakkuja. Kui te ei leia oma e-posti pakkujat loendist, võite valida muu pakkuja valiku ja sisestada IMAP ja SMTP mandaadid."
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsofti e-post",
+ "DESCRIPTION": "Alustamiseks klõpsake nuppu Logi sisse Microsoftiga. Teid suunatakse e-posti sisselogimise lehele. Kui aktsepteerite nõutud õigused, suunatakse teid tagasi postkasti loomise sammu juurde.",
+ "EMAIL_PLACEHOLDER": "Sisestage e-posti aadress",
+ "SIGN_IN": "Logi sisse Microsoftiga",
+ "ERROR_MESSAGE": "Microsoftiga ühendamisel tekkis viga, palun proovige uuesti"
+ },
+ "GOOGLE": {
+ "TITLE": "Google'i e-post",
+ "DESCRIPTION": "Alustamiseks klõpsake nuppu 'Logi sisse Google'iga'. Teid suunatakse e-posti sisselogimislehele. Kui olete nõutud õigused kinnitanud, suunatakse teid tagasi postkasti loomise sammu juurde.",
+ "SIGN_IN": "Logi sisse Google'iga",
+ "EMAIL_PLACEHOLDER": "Sisesta e-posti aadress",
+ "ERROR_MESSAGE": "Google'iga ühendamisel tekkis viga, palun proovige uuesti"
+ }
+ },
+ "DETAILS": {
+ "LOADING_FB": "Autendime teid Facebookiga...",
+ "ERROR_FB_LOADING": "Facebooki SDK laadimisel tekkis viga. Palun keelake reklaamiblokeerijad ja proovige uuesti mõne teise brauseriga.",
+ "ERROR_FB_AUTH": "Midagi läks valesti, palun värskendage lehte...",
+ "ERROR_FB_UNAUTHORIZED": "Teil ei ole selle toimingu tegemiseks õigusi. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Veenduge, et teil oleks täieliku juhtimisõigusega juurdepääs Facebooki lehele. Facebooki rollide kohta saate rohkem lugeda siit.",
+ "CREATING_CHANNEL": "Loomas teie postkasti...",
+ "TITLE": "Seadista postkasti üksikasjad",
+ "DESC": ""
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Lisa agente",
+ "ADD_AGENTS": "Agentide lisamine teie postkasti..."
+ },
+ "FINISH": {
+ "TITLE": "Teie postkast on valmis!",
+ "MESSAGE": "Nüüd saate oma uue kanali kaudu klientidega suhelda. Edukat toetust",
+ "BUTTON_TEXT": "Viige mind sinna",
+ "MORE_SETTINGS": "Rohkem seadeid",
+ "WEBSITE_SUCCESS": "Olete edukalt loonud veebisaidi kanali. Kopeerige allolev kood ja kleepige see oma veebisaidile. Järgmine kord, kui klient kasutab reaalajas vestlust, kuvatakse vestlus automaatselt teie postkastis.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
+ },
+ "REAUTH": "Autendige uuesti",
+ "VIEW": "Vaata",
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Postkasti seaded uuendatud edukalt",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Automaatne määramine uuendatud edukalt",
+ "ERROR_MESSAGE": "Me ei saanud postkasti seadeid uuendada. Palun proovi hiljem uuesti."
+ },
+ "EMAIL_COLLECT_BOX": {
+ "ENABLED": "Lubatud",
+ "DISABLED": "Keelatud"
+ },
+ "ENABLE_CSAT": {
+ "ENABLED": "Lubatud",
+ "DISABLED": "Keelatud"
+ },
+ "SENDER_NAME_SECTION": {
+ "TITLE": "Saatja nimi",
+ "SUB_TEXT": "Valige nimi, mida teie klient näeb, kui ta saab teie agentidelt e-kirju.",
+ "FOR_EG": "Näiteks:",
+ "FRIENDLY": {
+ "TITLE": "Sõbralik",
+ "FROM": "alates",
+ "SUBTITLE": "Lisa saatja nimele vastuse saatnud agendi nimi, et see oleks sõbralik."
+ },
+ "PROFESSIONAL": {
+ "TITLE": "Ametlik",
+ "SUBTITLE": "Kasuta e-posti päises saatja nimeks ainult seadistatud ettevõtte nime."
+ },
+ "BUSINESS_NAME": {
+ "BUTTON_TEXT": "Configure your business name",
+ "PLACEHOLDER": "Sisestage oma ettevõtte nimi",
+ "SAVE_BUTTON_TEXT": "Salvesta"
+ }
+ },
+ "ALLOW_MESSAGES_AFTER_RESOLVED": {
+ "ENABLED": "Lubatud",
+ "DISABLED": "Keelatud"
+ },
+ "ENABLE_CONTINUITY_VIA_EMAIL": {
+ "ENABLED": "Lubatud",
+ "DISABLED": "Keelatud"
+ },
+ "LOCK_TO_SINGLE_CONVERSATION": {
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
+ },
+ "ENABLE_HMAC": {
+ "LABEL": "Luba"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Kustuta",
+ "AVATAR_DELETE_BUTTON_TEXT": "Kustuta avatar",
+ "CONFIRM": {
+ "TITLE": "Kustutamise kinnitamine",
+ "MESSAGE": "Kas olete kindel, et soovite kustutada ",
+ "PLACE_HOLDER": "Palun kirjuta kinnitamiseks {inboxName}",
+ "YES": "Jah, kustuta ",
+ "NO": "Ei, säilita "
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Postkast kustutatud edukalt",
+ "ERROR_MESSAGE": "Postkasti ei õnnestunud kustutada. Palun proovige hiljem uuesti.",
+ "AVATAR_SUCCESS_MESSAGE": "Postkasti avatar kustutati edukalt",
+ "AVATAR_ERROR_MESSAGE": "Postkasti avatari ei õnnestunud kustutada. Palun proovi hiljem uuesti."
+ }
+ },
+ "TABS": {
+ "SETTINGS": "Seaded",
+ "COLLABORATORS": "Koostööpartnerid",
+ "CONFIGURATION": "Konfiguratsioon",
+ "CAMPAIGN": "Kampaaniad",
+ "PRE_CHAT_FORM": "Eelvestluse vorm",
+ "BUSINESS_HOURS": "Tööaeg",
+ "WIDGET_BUILDER": "Vidina koostaja",
+ "BOT_CONFIGURATION": "Boti seadistamine",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Hääl",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
+ },
+ "SETTINGS": "Seaded",
+ "FEATURES": {
+ "LABEL": "Funktsioonid",
+ "DISPLAY_FILE_PICKER": "Kuva vidinal failivalija",
+ "DISPLAY_EMOJI_PICKER": "Kuva vidinal emotikonide valija",
+ "ALLOW_END_CONVERSATION": "Luba kasutajatel vestlust vidina kaudu lõpetada",
+ "USE_INBOX_AVATAR_FOR_BOT": "Kasuta boti jaoks postkasti nime ja avatari"
+ },
+ "SETTINGS_POPUP": {
+ "MESSENGER_HEADING": "Sõnumside skript",
+ "MESSENGER_SUB_HEAD": "Paigutage see nupp oma body-sildi sisse",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "Agendid",
+ "INBOX_AGENTS_SUB_TEXT": "Lisa või eemalda agente sellest postkastist",
+ "AGENT_ASSIGNMENT": "Vestluse määramine",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "Uuenda vestluse määramise seadeid",
+ "UPDATE": "Uuenda",
+ "ENABLE_EMAIL_COLLECT_BOX": "Luba e-posti kogumise kast",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Luba või keela e-posti kogumise kast uue vestluse puhul",
+ "AUTO_ASSIGNMENT": "Luba automaatne määramine",
+ "SENDER_NAME_SECTION": "Luba agendi nimi e-kirjas",
+ "SENDER_NAME_SECTION_TEXT": "Luba/keela agendi nime kuvamine e-kirjas, kui keelatud, kuvatakse ettevõtte nimi",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "Luba vestluse jätkumine e-posti teel",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Vestlused jätkuvad e-posti teel, kui kontakti e-posti aadress on olemas.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
+ "INBOX_UPDATE_TITLE": "Postkasti seaded",
+ "INBOX_UPDATE_SUB_TEXT": "Uuenda oma postkasti seadeid",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "Luba või keela uute vestluste automaatne määramine sellele postkastile lisatud agentidele.",
+ "HMAC_VERIFICATION": "Kasutaja identiteedi valideerimine",
+ "HMAC_DESCRIPTION": "Selle võtmega saad genereerida salajase märgi, mida saab kasutada kasutajate identiteedi kinnitamiseks.",
+ "HMAC_LINK_TO_DOCS": "Siit saad rohkem lugeda.",
+ "HMAC_MANDATORY_VERIFICATION": "Nõua kasutaja identiteedi kinnitust",
+ "HMAC_MANDATORY_DESCRIPTION": "Kui lubatud, lükatakse tagasi päringud, mida ei saa kinnitada.",
+ "INBOX_IDENTIFIER": "Postkasti identifikaator",
+ "INBOX_IDENTIFIER_SUB_TEXT": "Kasuta siin näidatud `inbox_identifier` märgendit oma API klientide autentimiseks.",
+ "FORWARD_EMAIL_TITLE": "Edasta e-postile",
+ "FORWARD_EMAIL_SUB_TEXT": "Alusta oma e-kirjade edastamist järgmisele e-posti aadressile.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "Luba sõnumid pärast vestluse lahendamist",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Luba lõppkasutajatel saata sõnumeid ka pärast vestluse lahendamist.",
+ "WHATSAPP_SECTION_SUBHEADER": "Seda API võtit kasutatakse WhatsApp API-dega integreerimiseks.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Sisestage uus API võti, mida kasutatakse WhatsAppi API-dega integreerimiseks.",
+ "WHATSAPP_SECTION_TITLE": "API võti",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Uuenda API-võtit",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Sisesta siia uus API-võti",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "Uuenda",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhooki kinnitustoken",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "Seda märki kasutatakse veebikonksu lõpp-punkti autentsuse kontrollimiseks.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Uuenda vestluse-eelse vormi seadeid"
+ },
+ "HELP_CENTER": {
+ "LABEL": "Abi keskus",
+ "PLACEHOLDER": "Vali abi keskus",
+ "SELECT_PLACEHOLDER": "Vali abi keskus",
+ "NONE": "None",
+ "REMOVE": "Eemalda abi keskus",
+ "SUB_TEXT": "Ühenda abikeskus postkastiga"
+ },
+ "AUTO_ASSIGNMENT": {
+ "MAX_ASSIGNMENT_LIMIT": "Automaatse määramise piirang",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Palun sisesta väärtus, mis on suurem kui 0",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Piira selle postkasti vestluste maksimaalset arvu, mida saab automaatselt agendile määrata"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
+ "FACEBOOK_REAUTHORIZE": {
+ "TITLE": "Taaskinnita autoriseerimine",
+ "SUBTITLE": "Sinu Facebooki ühendus on aegunud, palun ühenda oma Facebooki leht uuesti, et jätkata teenuseid",
+ "MESSAGE_SUCCESS": "Ühendus uuesti loodud edukalt",
+ "MESSAGE_ERROR": "Tekkis viga, palun proovi uuesti"
+ },
+ "PRE_CHAT_FORM": {
+ "DESCRIPTION": "Eelvestluse vormid võimaldavad sul koguda kasutajaandmeid enne vestluse alustamist.",
+ "SET_FIELDS": "Vestluseelse vormi väljad",
+ "SET_FIELDS_HEADER": {
+ "FIELDS": "Väljad",
+ "LABEL": "Silt",
+ "PLACE_HOLDER": "Kohatäitja",
+ "KEY": "Võti",
+ "TYPE": "Tüüp",
+ "REQUIRED": "Nõutav"
+ },
+ "ENABLE": {
+ "LABEL": "Luba eelvestluse vorm",
+ "OPTIONS": {
+ "ENABLED": "Jah",
+ "DISABLED": "Ei"
+ }
+ },
+ "PRE_CHAT_MESSAGE": {
+ "LABEL": "Vestluseelsõnum",
+ "PLACEHOLDER": "See sõnum kuvatakse kasutajatele koos vormiga"
+ },
+ "REQUIRE_EMAIL": {
+ "LABEL": "Külastajad peavad enne vestluse alustamist esitama oma nime ja e-posti aadressi"
+ }
+ },
+ "CSAT": {
+ "TITLE": "Luba CSAT",
+ "SUBTITLE": "Käivitage vestluste lõpus automaatselt CSAT-küsitlused, et mõista, kuidas kliendid oma toe kogemust tajuvad. Jälgige rahulolu trende ja leidke aja jooksul parenduskohti.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Kuvamisviis"
+ },
+ "MESSAGE": {
+ "LABEL": "Sõnum",
+ "PLACEHOLDER": "Palun sisestage sõnum, mida vormiga kasutajatele kuvada"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Küsitluse reegel",
+ "DESCRIPTION_PREFIX": "Saada küsitlus, kui vestlus",
+ "DESCRIPTION_SUFFIX": "mõnda silti",
+ "OPERATOR": {
+ "CONTAINS": "sisaldab",
+ "DOES_NOT_CONTAINS": "ei sisalda"
+ },
+ "SELECT_PLACEHOLDER": "vali sildid"
+ },
+ "NOTE": "Märkus: CSAT-küsitlused saadetakse iga vestluse kohta vaid korra",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT-i seaded on edukalt uuendatud",
+ "ERROR_MESSAGE": "CSAT-i seadeid ei õnnestunud uuendada. Palun proovi hiljem uuesti."
+ }
+ },
+ "BUSINESS_HOURS": {
+ "TITLE": "Määra oma kättesaadavus",
+ "SUBTITLE": "Määra oma kättesaadavus reaalajas vestluse vidinal",
+ "WEEKLY_TITLE": "Määra oma nädalased tööajad",
+ "TIMEZONE_LABEL": "Vali ajavöönd",
+ "UPDATE": "Uuenda tööaja seadeid",
+ "TOGGLE_AVAILABILITY": "Luba selle postkasti tööaja kättesaadavus",
+ "UNAVAILABLE_MESSAGE_LABEL": "Külastajatele saadetav teade, kui pole saadaval",
+ "TOGGLE_HELP": "Tööaja kättesaadavuse lubamine kuvab reaalajas vestluse vidinas saadaval olevad ajad isegi siis, kui kõik agendid on võrguühenduseta. Väljaspool saadaolevaid aegu saab külastajaid hoiatada sõnumi ja vestluseelse vormiga.",
+ "DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
+ "ENABLE": "Luba selle päeva kättesaadavus",
+ "UNAVAILABLE": "Pole saadaval",
+ "VALIDATION_ERROR": "Algusaeg peab olema enne sulgemisaega.",
+ "CHOOSE": "Vali"
+ },
+ "ALL_DAY": "Kogu päeva"
+ },
+ "IMAP": {
+ "TITLE": "IMAP",
+ "SUBTITLE": "Seadista oma IMAP andmed",
+ "NOTE_TEXT": "SMTP lubamiseks seadistage palun IMAP.",
+ "UPDATE": "Uuenda IMAP seadeid",
+ "TOGGLE_AVAILABILITY": "Luba IMAP konfiguratsioon selle sissetuleva postkasti jaoks",
+ "TOGGLE_HELP": "IMAP-i lubamine aitab kasutajal e-kirju vastu võtta",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "IMAP seaded uuendati edukalt",
+ "ERROR_MESSAGE": "IMAP seadete uuendamine ebaõnnestus"
+ },
+ "ADDRESS": {
+ "LABEL": "Aadress",
+ "PLACE_HOLDER": "Aadress (nt imap.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "Port",
+ "PLACE_HOLDER": "Port"
+ },
+ "LOGIN": {
+ "LABEL": "Sisselogimine",
+ "PLACE_HOLDER": "Sisselogimine"
+ },
+ "PASSWORD": {
+ "LABEL": "Parool",
+ "PLACE_HOLDER": "Parool"
+ },
+ "ENABLE_SSL": "Luba SSL",
+ "AUTH_MECHANISM": "Autentimine"
+ },
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "SUBTITLE": "Luba oma MICROSOFT konto uuesti"
+ },
+ "SMTP": {
+ "TITLE": "SMTP",
+ "SUBTITLE": "Seadista oma SMTP andmed",
+ "UPDATE": "Uuenda SMTP seadeid",
+ "TOGGLE_AVAILABILITY": "Luba SMTP konfiguratsioon selle sissetuleva postkasti jaoks",
+ "TOGGLE_HELP": "SMTP lubamine aitab kasutajal e-kirju saata",
+ "EDIT": {
+ "SUCCESS_MESSAGE": "SMTP seaded uuendati edukalt",
+ "ERROR_MESSAGE": "SMTP seadete uuendamine ebaõnnestus"
+ },
+ "ADDRESS": {
+ "LABEL": "Aadress",
+ "PLACE_HOLDER": "Aadress (nt smtp.gmail.com)"
+ },
+ "PORT": {
+ "LABEL": "Port",
+ "PLACE_HOLDER": "Port"
+ },
+ "LOGIN": {
+ "LABEL": "Logi sisse",
+ "PLACE_HOLDER": "Logi sisse"
+ },
+ "PASSWORD": {
+ "LABEL": "Parool",
+ "PLACE_HOLDER": "Parool"
+ },
+ "DOMAIN": {
+ "LABEL": "Domeen",
+ "PLACE_HOLDER": "Domeen"
+ },
+ "ENCRYPTION": "Krüpteerimine",
+ "SSL_TLS": "SSL/TLS",
+ "START_TLS": "STARTTLS",
+ "OPEN_SSL_VERIFY_MODE": "OpenSSL kinnitamise režiim",
+ "AUTH_MECHANISM": "Autentimine"
+ },
+ "NOTE": "Märkus: ",
+ "WIDGET_BUILDER": {
+ "WIDGET_OPTIONS": {
+ "AVATAR": {
+ "LABEL": "Veebisaidi avatar",
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Avatar kustutati edukalt",
+ "ERROR_MESSAGE": "Tekkis viga, palun proovi uuesti"
+ }
+ }
+ },
+ "WEBSITE_NAME": {
+ "LABEL": "Veebisaidi nimi",
+ "PLACE_HOLDER": "Sisesta oma veebisaidi nimi (nt Acme Inc)",
+ "ERROR": "Palun sisesta kehtiv veebisaidi nimi"
+ },
+ "WELCOME_HEADING": {
+ "LABEL": "Tervituse pealkiri",
+ "PLACE_HOLDER": "Tere!"
+ },
+ "WELCOME_TAGLINE": {
+ "LABEL": "Tervituse alapealkiri",
+ "PLACE_HOLDER": "Me muudame ühenduse loomise lihtsaks. Küsi meilt mida iganes või jaga oma tagasisidet."
+ },
+ "REPLY_TIME": {
+ "LABEL": "Vastuse aeg",
+ "IN_A_FEW_MINUTES": "Mõne minuti pärast",
+ "IN_A_FEW_HOURS": "Mõne tunni pärast",
+ "IN_A_DAY": "Päeva jooksul"
+ },
+ "WIDGET_COLOR_LABEL": "Vidina värv",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
+ "WIDGET_BUBBLE_LAUNCHER_TITLE": {
+ "DEFAULT": "Räägi meiega",
+ "LABEL": "Launcher Title",
+ "PLACE_HOLDER": "Räägi meiega"
+ },
+ "UPDATE": {
+ "BUTTON_TEXT": "Uuenda vidina seadeid",
+ "API": {
+ "SUCCESS_MESSAGE": "Vidina seaded uuendati edukalt",
+ "ERROR_MESSAGE": "Vidina sätteid ei õnnestunud uuendada"
+ }
+ },
+ "WIDGET_VIEW_OPTION": {
+ "PREVIEW": "Eelvaade",
+ "SCRIPT": "Skript"
+ },
+ "WIDGET_BUBBLE_POSITION": {
+ "LEFT": "Vasak",
+ "RIGHT": "Parem"
+ },
+ "WIDGET_BUBBLE_TYPE": {
+ "STANDARD": "Standardne",
+ "EXPANDED_BUBBLE": "Laiendatud mull"
+ }
+ },
+ "WIDGET_SCREEN": {
+ "DEFAULT": "Vaikimisi",
+ "CHAT": "Chat mode"
+ },
+ "REPLY_TIME": {
+ "IN_A_FEW_MINUTES": "Tavaliselt vastab mõne minutiga",
+ "IN_A_FEW_HOURS": "Tavaliselt vastab mõne tunniga",
+ "IN_A_DAY": "Tavaliselt vastab ühe päevaga"
+ },
+ "FOOTER": {
+ "START_CONVERSATION_BUTTON_TEXT": "Alusta vestlust",
+ "CHAT_INPUT_PLACEHOLDER": "Kirjuta oma sõnum"
+ },
+ "BODY": {
+ "TEAM_AVAILABILITY": {
+ "ONLINE": "Oleme võrgus",
+ "OFFLINE": "Hetkel eemal"
+ },
+ "USER_MESSAGE": "Tere",
+ "AGENT_MESSAGE": "Tere"
+ },
+ "BRANDING_TEXT": "Toetab Chatwoot’i",
+ "SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
+ },
+ "EMAIL_PROVIDERS": {
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Veebisait",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-post",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API kanal",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Hääl"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/index.js b/app/javascript/dashboard/i18n/locale/et/index.js
new file mode 100644
index 000000000..31486a247
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/index.js
@@ -0,0 +1,89 @@
+import advancedFilters from './advancedFilters.json';
+import agentBots from './agentBots.json';
+import agentMgmt from './agentMgmt.json';
+import attributesMgmt from './attributesMgmt.json';
+import auditLogs from './auditLogs.json';
+import automation from './automation.json';
+import bulkActions from './bulkActions.json';
+import campaign from './campaign.json';
+import cannedMgmt from './cannedMgmt.json';
+import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
+import contact from './contact.json';
+import contactFilters from './contactFilters.json';
+import conversation from './conversation.json';
+import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
+import emoji from './emoji.json';
+import general from './general.json';
+import generalSettings from './generalSettings.json';
+import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
+import inboxMgmt from './inboxMgmt.json';
+import integrationApps from './integrationApps.json';
+import integrations from './integrations.json';
+import labelsMgmt from './labelsMgmt.json';
+import login from './login.json';
+import macros from './macros.json';
+import report from './report.json';
+import resetPassword from './resetPassword.json';
+import search from './search.json';
+import setNewPassword from './setNewPassword.json';
+import settings from './settings.json';
+import signup from './signup.json';
+import sla from './sla.json';
+import snooze from './snooze.json';
+import teamsSettings from './teamsSettings.json';
+import whatsappTemplates from './whatsappTemplates.json';
+import contentTemplates from './contentTemplates.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
+import yearInReview from './yearInReview.json';
+
+export default {
+ ...advancedFilters,
+ ...agentBots,
+ ...agentMgmt,
+ ...attributesMgmt,
+ ...auditLogs,
+ ...automation,
+ ...bulkActions,
+ ...campaign,
+ ...cannedMgmt,
+ ...chatlist,
+ ...companies,
+ ...components,
+ ...contact,
+ ...contactFilters,
+ ...conversation,
+ ...csatMgmt,
+ ...customRole,
+ ...datePicker,
+ ...emoji,
+ ...general,
+ ...generalSettings,
+ ...helpCenter,
+ ...inbox,
+ ...inboxMgmt,
+ ...integrationApps,
+ ...integrations,
+ ...labelsMgmt,
+ ...login,
+ ...macros,
+ ...report,
+ ...resetPassword,
+ ...search,
+ ...setNewPassword,
+ ...settings,
+ ...signup,
+ ...sla,
+ ...snooze,
+ ...teamsSettings,
+ ...whatsappTemplates,
+ ...contentTemplates,
+ ...mfa,
+ ...onboarding,
+ ...yearInReview,
+};
diff --git a/app/javascript/dashboard/i18n/locale/et/integrationApps.json b/app/javascript/dashboard/i18n/locale/et/integrationApps.json
new file mode 100644
index 000000000..a922473c6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/integrationApps.json
@@ -0,0 +1,67 @@
+{
+ "INTEGRATION_APPS": {
+ "FETCHING": "Fetching Integrations",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
+ "HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
+ },
+ "CONFIGURE": "Configure",
+ "ADD_BUTTON": "Add a new hook",
+ "DELETE": {
+ "TITLE": {
+ "INBOX": "Confirm deletion",
+ "ACCOUNT": "Disconnect"
+ },
+ "MESSAGE": {
+ "INBOX": "Are you sure to delete?",
+ "ACCOUNT": "Are you sure to disconnect?"
+ },
+ "CONFIRM_BUTTON_TEXT": {
+ "INBOX": "Yes, Delete",
+ "ACCOUNT": "Yes, Disconnect"
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "SUCCESS_MESSAGE": "Hook deleted successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "LIST": {
+ "FETCHING": "Fetching integration hooks",
+ "INBOX": "Inbox",
+ "ACTIONS": "Actions",
+ "DELETE": {
+ "BUTTON_TEXT": "Delete"
+ }
+ },
+ "ADD": {
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox"
+ },
+ "SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Integration hook added successfully",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "Connect"
+ },
+ "DISCONNECT": {
+ "BUTTON_TEXT": "Disconnect"
+ },
+ "SIDEBAR_DESCRIPTION": {
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/integrations.json b/app/javascript/dashboard/i18n/locale/et/integrations.json
new file mode 100644
index 000000000..a65ce7301
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/integrations.json
@@ -0,0 +1,1104 @@
+{
+ "INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Kustuta Shopify integratsioon",
+ "MESSAGE": "Kas oled kindel, et soovid Shopify integratsiooni kustutada?"
+ },
+ "STORE_URL": {
+ "TITLE": "Ühenda Shopify pood",
+ "LABEL": "Poekeskkonna URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Sisesta oma Shopify poe myshopify.com URL",
+ "CANCEL": "Tühista",
+ "SUBMIT": "Ühenda pood"
+ },
+ "ERROR": "Shopifyga ühendamisel tekkis viga. Palun proovi uuesti või võta ühendust klienditoega, kui probleem püsib."
+ },
+ "HEADER": "Integratsioonid",
+ "DESCRIPTION": "Chatwoot integreerub mitmete tööriistade ja teenustega, et parandada teie meeskonna efektiivsust. Uuri allolevat nimekirja, et seadistada oma lemmikrakendused.",
+ "LEARN_MORE": "Lisateave integratsioonide kohta",
+ "LOADING": "Laaditakse integratsioone",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain ei ole teie kontol aktiveeritud.",
+ "CLICK_HERE_TO_CONFIGURE": "Klõpsake siin seadistamiseks",
+ "LOADING_CONSOLE": "Laaditakse Captain Console’i...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain Console’i laadimine ebaõnnestus. Palun värskenda lehte ja proovi uuesti."
+ },
+ "WEBHOOK": {
+ "SUBSCRIBED_EVENTS": "Tellitud sündmused",
+ "LEARN_MORE": "Lisateave veebikonksude kohta",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
+ "FORM": {
+ "CANCEL": "Tühista",
+ "DESC": "Webhooki sündmused annavad teile reaalajas teavet selle kohta, mis teie Chatwoot kontol toimub. Palun sisestage kehtiv URL, et seadistada tagasikutsumine.",
+ "SUBSCRIPTIONS": {
+ "LABEL": "Sündmused",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Vestlus loodud",
+ "CONVERSATION_STATUS_CHANGED": "Vestluse olek muudetud",
+ "CONVERSATION_UPDATED": "Vestlus uuendatud",
+ "MESSAGE_CREATED": "Sõnum loodud",
+ "MESSAGE_UPDATED": "Sõnum uuendatud",
+ "WEBWIDGET_TRIGGERED": "Kasutaja avas reaalajas vestluse vidina",
+ "CONTACT_CREATED": "Kontakt loodud",
+ "CONTACT_UPDATED": "Kontakt uuendatud",
+ "CONVERSATION_TYPING_ON": "Vestluses kirjutamise alustamine",
+ "CONVERSATION_TYPING_OFF": "Vestluses kirjutamise lõpetamine",
+ "INBOX_UPDATED": "Inbox updated"
+ }
+ },
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
+ "END_POINT": {
+ "LABEL": "Webhooki URL",
+ "PLACEHOLDER": "Näide: {webhookExampleURL}",
+ "ERROR": "Palun sisesta kehtiv URL"
+ },
+ "EDIT_SUBMIT": "Uuenda webhooki",
+ "ADD_SUBMIT": "Loo webhook"
+ },
+ "TITLE": "Veebikonks",
+ "CONFIGURE": "Seadista",
+ "HEADER": "Webhooki sätted",
+ "HEADER_BTN_TXT": "Lisa uus webhook",
+ "LOADING": "Laaditakse seotud webhooke",
+ "SEARCH_404": "Ühtegi selle päringuga sobivat elementi ei leitud",
+ "SIDEBAR_TXT": "Webhookid
Webhookid on HTTP tagasikutsed, mida saab määratleda iga konto jaoks. Neid käivitavad sündmused, nagu sõnumi loomine Chatwootis. Selle konto jaoks saab luua rohkem kui ühe webhooki.
Uue webhooki loomiseks klõpsake nuppu Lisa uus webhook. Olemasoleva webhooki saate kustutada, klõpsates nuppu Kustuta.
",
+ "LIST": {
+ "404": "Selle konto jaoks pole ühtegi webhooki seadistatud.",
+ "TITLE": "Halda webhooke",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Veebikonksu lõpp-punkt",
+ "ACTIONS": "Tegevused"
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Muuda",
+ "TITLE": "Muuda webhooki",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhooki seadistus uuendatud edukalt",
+ "ERROR_MESSAGE": "Ei õnnestunud ühenduda Woot serveriga, palun proovi hiljem uuesti"
+ }
+ },
+ "ADD": {
+ "CANCEL": "Tühista",
+ "TITLE": "Lisa uus webhook",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhooki seadistus lisatud edukalt",
+ "ERROR_MESSAGE": "Ei õnnestunud ühenduda Woot serveriga, palun proovi hiljem uuesti"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Kustuta",
+ "API": {
+ "SUCCESS_MESSAGE": "Webhook edukalt kustutatud",
+ "ERROR_MESSAGE": "Ei õnnestunud ühenduda Woot serveriga, palun proovi hiljem uuesti"
+ },
+ "CONFIRM": {
+ "TITLE": "Kustutamise kinnitamine",
+ "MESSAGE": "Kas oled kindel, et soovid veebikonksu kustutada? ({webhookURL})",
+ "YES": "Jah, kustuta ",
+ "NO": "Ei, säilita see"
+ }
+ }
+ },
+ "SLACK": {
+ "HEADER": "Slack",
+ "DELETE": "Kustuta",
+ "DELETE_CONFIRMATION": {
+ "TITLE": "Kustuta integratsioon",
+ "MESSAGE": "Kas oled kindel, et soovid integratsiooni kustutada? Seda tehes kaotad ligipääsu vestlustele oma Slack töölaual."
+ },
+ "HELP_TEXT": {
+ "TITLE": "Kuidas kasutada Slack integratsiooni?",
+ "BODY": "Selle integratsiooni abil sünkroonitakse kõik teie saabuvad vestlused Slacki tööruumi kanali ***{selectedChannelName}*** alla. Saate hallata kõiki kliendivestlusi otse selles kanalis ega jää kunagi sõnumist ilma.\n\nPeamised integratsiooni funktsioonid on järgmised:\n\n**Vastake vestlustele otse Slackis:** Vestlusele vastamiseks kanalis ***{selectedChannelName}*** tippige lihtsalt oma sõnum ja saatke see lõimena. See saadab vastuse kliendile Chatwooti kaudu. Nii lihtne see ongi!\n\n**Looge privaatmärkmeid:** Kui soovite vastuste asemel luua privaatseid märkmeid, alustage oma sõnumit ***`note:`***-ga. See tagab, et teie sõnum jääb privaatseks ega ole kliendi jaoks nähtav.\n\n**Seostage agendi profiil:** Kui Slackis vastanud isikul on Chatwootis sama e-posti aadressiga agendi profiil, seostatakse vastused automaatselt selle profiiliga. Nii saate hõlpsasti jälgida, kes mida ja millal ütles. Kui vastajal puudub seotud agendi profiil, kuvatakse vastused kliendile boti profiililt.",
+ "SELECTED": "valitud"
+ },
+ "SELECT_CHANNEL": {
+ "OPTION_LABEL": "Vali kanal",
+ "UPDATE": "Uuenda",
+ "BUTTON_TEXT": "Ühenda kanal",
+ "DESCRIPTION": "Sinu Slack töölaua ühendus on nüüd Chatwootiga loodud. Kuid integratsioon on hetkel inaktiivne. Integratsiooni aktiveerimiseks ja kanali ühendamiseks Chatwootiga palun klõpsa alloleval nupul.\n\n**Märkus:** Kui üritad ühendada privaatset kanalit, lisa Chatwoot rakendus Slacki kanalile enne selle sammu jätkamist.",
+ "ATTENTION_REQUIRED": "Nõuab tähelepanu",
+ "EXPIRED": "Sinu Slack integratsioon on aegunud. Et jätkata sõnumite vastuvõtmist Slackis, palun kustuta integratsioon ja ühenda oma töölaua uuesti."
+ },
+ "UPDATE_ERROR": "Integratsiooni uuendamisel tekkis viga, palun proovi uuesti",
+ "UPDATE_SUCCESS": "Kanal on edukalt ühendatud",
+ "FAILED_TO_FETCH_CHANNELS": "Slackist kanalite toomisel tekkis viga, palun proovi uuesti"
+ },
+ "DYTE": {
+ "CLICK_HERE_TO_JOIN": "Klõpsa siia, et liituda",
+ "LEAVE_THE_ROOM": "Lahku toast",
+ "START_VIDEO_CALL_HELP_TEXT": "Alusta uut videokõnet kliendiga",
+ "JOIN_ERROR": "Kõnega liitumisel tekkis viga, palun proovi uuesti",
+ "CREATE_ERROR": "Koosoleku lingi loomisel tekkis viga, palun proovi uuesti"
+ },
+ "OPEN_AI": {
+ "AI_ASSIST": "Tehisintellekti abi",
+ "WITH_AI": " {option} tehisintellektiga ",
+ "OPTIONS": {
+ "REPLY_SUGGESTION": "Vastuse soovitus",
+ "SUMMARIZE": "Kokkuvõtte tegemine",
+ "REPHRASE": "Kirjutise parandamine",
+ "FIX_SPELLING_GRAMMAR": "Paranda õigekiri ja grammatika",
+ "SHORTEN": "Lühenda",
+ "EXPAND": "Pikenda",
+ "MAKE_FRIENDLY": "Muuda sõnumi toon sõbralikuks",
+ "MAKE_FORMAL": "Kasuta ametlikku tooni",
+ "SIMPLIFY": "Lihtsusta",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
+ },
+ "ASSISTANCE_MODAL": {
+ "DRAFT_TITLE": "Mustandi sisu",
+ "GENERATED_TITLE": "Genereeritud sisu",
+ "AI_WRITING": "Tehisintellekt kirjutab",
+ "BUTTONS": {
+ "APPLY": "Kasuta seda soovitust",
+ "CANCEL": "Tühista"
+ }
+ },
+ "CTA_MODAL": {
+ "TITLE": "Integreeru OpenAI-ga",
+ "DESC": "Too oma juhtpaneelile täiustatud tehisintellekti funktsioonid OpenAI GPT mudelite abil. Alustamiseks sisesta oma OpenAI konto API võti.",
+ "KEY_PLACEHOLDER": "Sisesta oma OpenAI API võti",
+ "BUTTONS": {
+ "NEED_HELP": "Vajad abi?",
+ "DISMISS": "Sulge",
+ "FINISH": "Lõpeta seadistamine"
+ },
+ "DISMISS_MESSAGE": "Saad OpenAI integratsiooni seadistada hiljem, millal iganes soovid.",
+ "SUCCESS_MESSAGE": "OpenAI integratsiooni seadistamine õnnestus"
+ },
+ "TITLE": "Paranda tehisintellektiga",
+ "SUMMARY_TITLE": "Kokkuvõte tehisintellektiga",
+ "REPLY_TITLE": "Vastuse soovitus tehisintellektiga",
+ "SUBTITLE": "Parem vastus genereeritakse tehisintellekti abil, lähtudes teie praegusest mustandist.",
+ "TONE": {
+ "TITLE": "Toon",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionaalne",
+ "FRIENDLY": "Sõbralik"
+ }
+ },
+ "BUTTONS": {
+ "GENERATE": "Genereeri",
+ "GENERATING": "Genereeritakse...",
+ "CANCEL": "Tühista"
+ },
+ "GENERATE_ERROR": "Sisu töötlemisel tekkis viga, palun kontrolli oma OpenAI API võtit ja proovi uuesti"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Kustuta",
+ "API": {
+ "SUCCESS_MESSAGE": "Integratsioon edukalt kustutatud"
+ }
+ },
+ "CONNECT": {
+ "BUTTON_TEXT": "Ühenda"
+ },
+ "DASHBOARD_APPS": {
+ "TITLE": "Töölaudade rakendused",
+ "HEADER_BTN_TXT": "Lisa uus töölauda rakendus",
+ "SIDEBAR_TXT": "Töölauda rakendused
Töölauda rakendused võimaldavad organisatsioonidel manustada rakenduse Chatwoot töölauda, et pakkuda klienditoe agentidele konteksti. See funktsioon võimaldab teil luua rakenduse iseseisvalt ja manustada selle töölauda, et kuvada kasutajaandmeid, nende tellimusi või varasemaid makseajalugu.
Kui manustate oma rakenduse Chatwoot töölauda, saab teie rakendus vestluse ja kontakti konteksti aknasündmusena. Rakendusel tuleb lehel rakendada sõnumisündmuse kuulaja, et konteksti vastu võtta.
Uue töölauda rakenduse lisamiseks klõpsake nuppu 'Lisa uus töölauda rakendus'.
",
+ "DESCRIPTION": "Töölauda rakendused võimaldavad organisatsioonidel manustada rakenduse töölauda, et pakkuda klienditoe agentidele konteksti. See funktsioon võimaldab teil luua rakenduse iseseisvalt ja manustada selle, et kuvada kasutajaandmeid, nende tellimusi või varasemaid makseajalugu.",
+ "LEARN_MORE": "Lisateave Dashboardi rakenduste kohta",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
+ "LIST": {
+ "404": "Sellel kontol pole veel ühtegi töölauda rakendust seadistatud",
+ "LOADING": "Laaditakse töölauda rakendusi...",
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "ENDPOINT": "Lõpp-punkt",
+ "ACTIONS": "Actions"
+ },
+ "EDIT_TOOLTIP": "Muuda rakendust",
+ "DELETE_TOOLTIP": "Kustuta rakendus"
+ },
+ "FORM": {
+ "TITLE_LABEL": "Nimi",
+ "TITLE_PLACEHOLDER": "Sisesta oma töölauda rakenduse nimi",
+ "TITLE_ERROR": "Töölauda rakenduse nimi on kohustuslik",
+ "URL_LABEL": "Lõpp-punkt",
+ "URL_PLACEHOLDER": "Sisesta lõpp-punkti URL, kus su rakendus asub",
+ "URL_ERROR": "Kehtiv URL on kohustuslik"
+ },
+ "CREATE": {
+ "HEADER": "Lisa uus töölauda rakendus",
+ "FORM_SUBMIT": "Esita",
+ "FORM_CANCEL": "Tühista",
+ "API_SUCCESS": "Töölauda rakendus seadistatud edukalt",
+ "API_ERROR": "Rakendust ei õnnestunud luua. Palun proovi hiljem uuesti"
+ },
+ "UPDATE": {
+ "HEADER": "Muuda töölauda rakendust",
+ "FORM_SUBMIT": "Uuenda",
+ "FORM_CANCEL": "Tühista",
+ "API_SUCCESS": "Töölauda rakendus uuendatud edukalt",
+ "API_ERROR": "Rakendust ei õnnestunud uuendada. Palun proovi hiljem uuesti"
+ },
+ "DELETE": {
+ "CONFIRM_YES": "Jah, kustuta see",
+ "CONFIRM_NO": "Ei, säilita see",
+ "TITLE": "Kustutamise kinnitamine",
+ "MESSAGE": "Kas oled kindel, et soovid rakenduse {appName} kustutada?",
+ "API_SUCCESS": "Töölauda rakendus kustutatud edukalt",
+ "API_ERROR": "Rakendust ei õnnestunud kustutada. Palun proovi hiljem uuesti"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Loo/Ühenda Linear probleem",
+ "LOADING": "Laaditakse Linear probleeme...",
+ "LOADING_ERROR": "Linear probleemide toomisel tekkis viga, palun proovi uuesti",
+ "CREATE": "Loo",
+ "LINK": {
+ "SEARCH": "Otsi probleeme",
+ "SELECT": "Vali probleem",
+ "TITLE": "Ühenda",
+ "EMPTY_LIST": "Linear probleeme ei leitud",
+ "LOADING": "Laadimine",
+ "ERROR": "Linear probleemide toomisel tekkis viga, palun proovi uuesti",
+ "LINK_SUCCESS": "Probleem edukalt ühendatud",
+ "LINK_ERROR": "Probleemi ühendamisel tekkis viga, palun proovi uuesti",
+ "LINK_TITLE": "Vestlus (#{conversationId}) kasutajaga {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Loo/ühenda Linear probleem",
+ "DESCRIPTION": "Loo Linear probleeme vestlustest või ühenda olemasolevad sujuvaks jälgimiseks.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pealkiri",
+ "PLACEHOLDER": "Sisesta pealkiri",
+ "REQUIRED_ERROR": "Pealkiri on kohustuslik"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus",
+ "PLACEHOLDER": "Sisesta kirjeldus"
+ },
+ "TEAM": {
+ "LABEL": "Meeskond",
+ "PLACEHOLDER": "Vali meeskond",
+ "SEARCH": "Otsi meeskonda",
+ "REQUIRED_ERROR": "Meeskond on kohustuslik"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Vastutaja",
+ "PLACEHOLDER": "Vali vastutaja",
+ "SEARCH": "Otsi vastutajat"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioriteet",
+ "PLACEHOLDER": "Vali prioriteet",
+ "SEARCH": "Otsi prioriteeti"
+ },
+ "LABEL": {
+ "LABEL": "Silt",
+ "PLACEHOLDER": "Vali silt",
+ "SEARCH": "Otsi silti"
+ },
+ "STATUS": {
+ "LABEL": "Staatus",
+ "PLACEHOLDER": "Vali olek",
+ "SEARCH": "Otsi olekut"
+ },
+ "PROJECT": {
+ "LABEL": "Projekt",
+ "PLACEHOLDER": "Vali projekt",
+ "SEARCH": "Otsi projekti"
+ }
+ },
+ "CREATE": "Loo",
+ "CANCEL": "Tühista",
+ "CREATE_SUCCESS": "Probleem edukalt loodud",
+ "CREATE_ERROR": "Probleemi loomisel tekkis viga, palun proovi uuesti",
+ "LOADING_TEAM_ERROR": "Meeskondade toomisel tekkis viga, palun proovi uuesti",
+ "LOADING_TEAM_ENTITIES_ERROR": "Meeskonna üksuste toomisel tekkis viga, palun proovi uuesti"
+ },
+ "ISSUE": {
+ "STATUS": "Staatus",
+ "PRIORITY": "Prioriteet",
+ "ASSIGNEE": "Vastutaja",
+ "LABELS": "Sildid",
+ "CREATED_AT": "Loodud {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Ühenda lahti",
+ "SUCCESS": "Probleem edukalt lahti ühendatud",
+ "ERROR": "Probleemi lahtiühendamisel tekkis viga, palun proovi uuesti"
+ },
+ "NO_LINKED_ISSUES": "Seotud probleeme ei leitud",
+ "DELETE": {
+ "TITLE": "Kas olete kindel, et soovite integratsiooni kustutada?",
+ "MESSAGE": "Kas olete kindel, et soovite integratsiooni kustutada?",
+ "CONFIRM": "Jah, kustuta",
+ "CANCEL": "Tühista"
+ },
+ "CTA": {
+ "TITLE": "Ühenda Lineariga",
+ "AGENT_DESCRIPTION": "Linear töökeskkond pole ühendatud. Palu administraatoril töökeskkond ühendada, et seda integratsiooni kasutada.",
+ "DESCRIPTION": "Linear töökeskkond pole ühendatud. Ühenda oma töökeskkond selle integratsiooni kasutamiseks, vajutades allolevat nuppu.",
+ "BUTTON_TEXT": "Ühenda Linear workspace"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Kas oled kindel, et soovid Notioni integratsiooni kustutada?",
+ "MESSAGE": "Integratsiooni kustutamine eemaldab juurdepääsu sinu Notioni workspace'ile ja peatab kõik seotud funktsioonid.",
+ "CONFIRM": "Jah, kustuta",
+ "CANCEL": "Tühista"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Kapten",
+ "HEADER_KNOW_MORE": "Lisateave",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Abilised",
+ "SWITCH_ASSISTANT": "Vaheta assistentide vahel",
+ "NEW_ASSISTANT": "Loo assistent",
+ "EMPTY_LIST": "Assistentide leidmine ebaõnnestus, alustamiseks loo palun üks."
+ },
+ "COPILOT": {
+ "TITLE": "Kaaslane",
+ "TRY_THESE_PROMPTS": "Proovi neid soovitusi",
+ "PANEL_TITLE": "Alusta Copilotiga",
+ "KICK_OFF_MESSAGE": "Vajad kiiret kokkuvõtet, soovid vaadata varasemaid vestlusi või koostada paremat vastust? Copilot aitab sul asju kiiremini teha.",
+ "SEND_MESSAGE": "Saada sõnum...",
+ "EMPTY_MESSAGE": "Vastus ei õnnestunud genereerida. Palun proovi uuesti.",
+ "LOADER": "Captain mõtleb",
+ "YOU": "Sina",
+ "USE": "Kasuta seda",
+ "RESET": "Lähtesta",
+ "SHOW_STEPS": "Näita samme",
+ "SELECT_ASSISTANT": "Vali assistent",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Kokkuvõte vestlusest",
+ "CONTENT": "Võta kokku kliendi ja klienditoe vahel arutatud peamised punktid, sealhulgas kliendi mured, küsimused ning klienditoe pakutud lahendused või vastused."
+ },
+ "SUGGEST": {
+ "LABEL": "Paku vastust",
+ "CONTENT": "Analüüsi kliendi päringut ja koostage vastus, mis lahendab tema mured või küsimused. Veendu, et vastus oleks selge, lühike ja abistav."
+ },
+ "RATE": {
+ "LABEL": "Hinda vestlust",
+ "CONTENT": "Vaata vestlust üle, et hinnata, kui hästi see vastab kliendi vajadustele. Anna hinnang viiepallisüsteemis, arvestades tooni, selgust ja tulemuslikkust."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Kõrge prioriteediga vestlused",
+ "CONTENT": "Koosta kokkuvõte kõigist kõrge prioriteediga avatud vestlustest. Lisa vestluse ID, kliendi nimi (kui on), viimase sõnumi sisu ja määratud agent. Vajadusel grupeerida staatuse järgi."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Kuva kontaktid",
+ "CONTENT": "Näita mulle 10 parima kontakti nimekirja. Lisa nimi, e-post või telefoninumber (kui on), viimane nähtud aeg, sildid (kui on)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sina",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Sisesta oma sõnum...",
+ "HEADER": "Mänguväljak",
+ "DESCRIPTION": "Kasuta seda mänguväljakut, et saata assistendile sõnumeid ja kontrollida, kas ta vastab täpselt, kiiresti ja soovitud tooniga.",
+ "CREDIT_NOTE": "Siin saadetud sõnumid arvestatakse Captaini krediitide hulka."
+ },
+ "PAYWALL": {
+ "TITLE": "Uuenda, et kasutada Captain AI-d",
+ "AVAILABLE_ON": "Captain ei ole tasuta plaanis saadaval.",
+ "UPGRADE_PROMPT": "Uuendage oma plaani, et saada ligipääs meie assistentidele, copiloti ja muule.",
+ "UPGRADE_NOW": "Uuenda kohe",
+ "CANCEL_ANYTIME": "Saate oma plaani igal ajal muuta või tühistada"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI on saadaval ainult ettevõtte plaanides.",
+ "UPGRADE_PROMPT": "Uuendage oma plaani, et saada ligipääs meie assistentidele, copiloti ja muule.",
+ "ASK_ADMIN": "Palun pöörduge uuenduse saamiseks oma administraatori poole."
+ },
+ "BANNER": {
+ "RESPONSES": "Olete kasutanud üle 80% oma vastuste piirist. Captain AI kasutamise jätkamiseks palun uuendage.",
+ "DOCUMENTS": "Dokumendi limiit on täis. Captain AI kasutamise jätkamiseks uuendage."
+ },
+ "FORM": {
+ "CANCEL": "Tühista",
+ "CREATE": "Loo",
+ "EDIT": "Uuenda"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Abilised",
+ "NO_ASSISTANTS_AVAILABLE": "Sinu kontol pole ühtegi assistenti saadaval.",
+ "ADD_NEW": "Loo uus abiline",
+ "DELETE": {
+ "TITLE": "Kas oled kindel, et soovid abilise kustutada?",
+ "DESCRIPTION": "See toiming on pöördumatu. Abilise kustutamine eemaldab selle kõigist ühendatud postkastidest ja kustutab jäädavalt kogu loodud teadmistebaasi.",
+ "CONFIRM": "Jah, kustuta",
+ "SUCCESS_MESSAGE": "Abiline on edukalt kustutatud",
+ "ERROR_MESSAGE": "Abilise kustutamisel tekkis viga, palun proovi uuesti."
+ },
+ "FORM_DESCRIPTION": "Täida allolevad andmed, et nimetada oma abiline, kirjeldada selle eesmärki ja määrata toode, mida ta toetab.",
+ "CREATE": {
+ "TITLE": "Loo abiline",
+ "SUCCESS_MESSAGE": "Abiline on edukalt loodud",
+ "ERROR_MESSAGE": "Abilise loomisel tekkis viga, palun proovi uuesti."
+ },
+ "FORM": {
+ "UPDATE": "Uuenda",
+ "SECTIONS": {
+ "BASIC_INFO": "Põhiandmed",
+ "SYSTEM_MESSAGES": "Süsteemisõnumid",
+ "INSTRUCTIONS": "Juhised",
+ "FEATURES": "Funktsioonid",
+ "TOOLS": "Tööriistad "
+ },
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Sisesta assistendi nimi",
+ "ERROR": "Nimi on kohustuslik"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Vastuse loovus",
+ "DESCRIPTION": "Reguleeri, kui loomingulised või piiratud peaksid assistendi vastused olema. Madalam väärtus annab täpsemaid ja ennustatavamaid vastuseid, kõrgem väärtus võimaldab loomingulisemaid ja mitmekesisemaid tulemusi."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus",
+ "PLACEHOLDER": "Sisesta assistendi kirjeldus",
+ "ERROR": "Kirjeldus on kohustuslik"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Toote nimi",
+ "PLACEHOLDER": "Sisesta toote nimi",
+ "ERROR": "Tootenimi on kohustuslik"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Tervitussõnum",
+ "PLACEHOLDER": "Sisesta tervitussõnum"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Üleandmise sõnum",
+ "PLACEHOLDER": "Sisesta üleandmise sõnum"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Lahenduse sõnum",
+ "PLACEHOLDER": "Sisesta lahenduse sõnum"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Juhised",
+ "PLACEHOLDER": "Sisesta assistendile juhised"
+ },
+ "FEATURES": {
+ "TITLE": "Funktsioonid",
+ "ALLOW_CONVERSATION_FAQS": "Loo KKK-d lahendatud vestlustest",
+ "ALLOW_MEMORIES": "Salvesta kliendisuhtlustest olulised detailid mälestustena.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Uuenda abilist",
+ "SUCCESS_MESSAGE": "Abiline on edukalt uuendatud",
+ "ERROR_MESSAGE": "Abilise uuendamisel tekkis viga, palun proovi uuesti.",
+ "NOT_FOUND": "Assistenti ei leitud. Palun proovi uuesti."
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "Põhiseaded",
+ "DESCRIPTION": "Kohanda, mida assistent ütleb vestluse lõpetamisel või inimesele suunamisel."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "Süsteemiseaded",
+ "DESCRIPTION": "Kohanda, mida assistent ütleb vestluse lõpetamisel või inimesele suunamisel."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "Lõbusad valikud",
+ "DESCRIPTION": "Lisa assistendile rohkem kontrolli. (Visuaalsem, nagu lugu: Päringu piirang → stsenaariumid → väljund) Suunab kasutajat neid tegelikult kasutama.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Piirangud",
+ "DESCRIPTION": "Hoiab fookust—assistent vastab ainult soovitud küsimustele, kõik muu on välistatud."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Vastamisjuhised",
+ "DESCRIPTION": "Assistentide vastuste stiil ja ülesehitus—selge ja sõbralik? Lühike ja konkreetne? Põhjalik ja ametlik?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Muuda abilist",
+ "DELETE_ASSISTANT": "Kustuta abiline",
+ "VIEW_CONNECTED_INBOXES": "Vaata ühendatud postkaste"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Assistente pole saadaval",
+ "SUBTITLE": "Looge assistent, kes pakub teie kasutajatele kiireid ja täpseid vastuseid. See saab õppida teie abimaterjalidest ja varasematest vestlustest.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Assistent",
+ "NOTE": "Captain Assistent suhtleb otse klientidega, õpib teie abidokumentidest ja varasematest vestlustest ning pakub koheseid ja täpseid vastuseid. See käsitleb esialgseid päringuid, pakkudes kiireid lahendusi enne vajadusel agendile suunamist."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Piirangud",
+ "DESCRIPTION": "Hoiab fookust – assistent vastab ainult soovitud küsimustele, mitte kõrvalistele ega keelatud teemadele.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Kustuta"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Näidispiirangud",
+ "ADD": "Lisa kõik",
+ "ADD_SINGLE": "Lisa see",
+ "SAVE": "Lisa ja salvesta (↵)",
+ "PLACEHOLDER": "Sisesta veel üks piirang..."
+ },
+ "NEW": {
+ "TITLE": "Lisa piirang",
+ "CREATE": "Loo",
+ "CANCEL": "Tühista",
+ "PLACEHOLDER": "Sisesta veel üks piirang...",
+ "TEST_ALL": "Testi kõiki"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Otsi..."
+ },
+ "EMPTY_MESSAGE": "Piiranguid ei leitud. Alustamiseks loo või lisa näiteid.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Piirangud lisatud edukalt",
+ "ERROR": "Piirangute lisamisel tekkis viga, proovi uuesti."
+ },
+ "UPDATE": {
+ "SUCCESS": "Reeglid on edukalt uuendatud",
+ "ERROR": "Reeglite uuendamisel tekkis viga, palun proovi uuesti."
+ },
+ "DELETE": {
+ "SUCCESS": "Reeglid on edukalt kustutatud",
+ "ERROR": "Reeglite kustutamisel tekkis viga, palun proovi uuesti."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Vastamise juhised",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancel",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Dokumendid",
+ "ADD_NEW": "Loo uus dokument",
+ "SELECTED": "{count} valitud",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Jah, kustuta kõik",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Ebaõnnestus"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Seotud KKK-d",
+ "DESCRIPTION": "Need KKK-d on loodud otse dokumendist."
+ },
+ "FORM_DESCRIPTION": "Sisesta dokumendi URL, et lisada see teadmiste allikana ja vali abiline, kellega see seostada.",
+ "CREATE": {
+ "TITLE": "Lisa dokument",
+ "SUCCESS_MESSAGE": "Dokument on edukalt loodud",
+ "ERROR_MESSAGE": "Dokumendi loomisel tekkis viga, palun proovi uuesti."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Sisesta dokumendi URL",
+ "ERROR": "Palun sisesta dokumendi jaoks kehtiv URL"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Kas oled kindel, et soovid dokumendi kustutada?",
+ "DESCRIPTION": "See toiming on pöördumatu. Dokumendi kustutamine kustutab jäädavalt kogu loodud teadmistebaasi.",
+ "CONFIRM": "Jah, kustuta",
+ "SUCCESS_MESSAGE": "Dokument on edukalt kustutatud",
+ "ERROR_MESSAGE": "Dokumendi kustutamisel tekkis viga, palun proovi uuesti."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Vaata seotud vastuseid",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Kustuta dokument"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Dokumente pole saadaval",
+ "SUBTITLE": "Dokumente kasutab teie assistent KKK-de genereerimiseks. Saate dokumente importida, et pakkuda assistendile konteksti.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Document",
+ "NOTE": "Dokument Captainis on abimehe teadmiste allikas. Ühendades oma abikeskuse või juhendid, saab Captain sisu analüüsida ja pakkuda täpseid vastuseid kliendipäringutele."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "KKK-d",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Loo uus KKK",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Vestlus #{id}"
+ },
+ "SELECTED": "{count} valitud",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Kinnita",
+ "BULK_DELETE_BUTTON": "Kustuta",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "KKK-d kinnitati edukalt",
+ "ERROR_MESSAGE": "KKK-de kinnitamisel tekkis viga, palun proovige uuesti."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Kustutada KKK-d?",
+ "DESCRIPTION": "Kas olete kindel, et soovite valitud KKK-d kustutada? Seda toimingut ei saa tagasi võtta.",
+ "CONFIRM": "Jah, kustuta kõik",
+ "SUCCESS_MESSAGE": "KKK-d kustutati edukalt",
+ "ERROR_MESSAGE": "KKK-de kustutamisel tekkis viga, palun proovige uuesti."
+ },
+ "DELETE": {
+ "TITLE": "Kas olete kindel, et soovite KKK kustutada?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Jah, kustuta",
+ "SUCCESS_MESSAGE": "KKK kustutati edukalt",
+ "ERROR_MESSAGE": "KKK kustutamisel tekkis viga, palun proovige uuesti."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistent: {selected}",
+ "STATUS": "Staatus: {selected}",
+ "ALL_ASSISTANTS": "Kõik"
+ },
+ "STATUS": {
+ "TITLE": "Staatus",
+ "PENDING": "Ootel",
+ "APPROVED": "Kinnitatud",
+ "ALL": "Kõik"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Lisage küsimus ja sellele vastav vastus teadmistebaasi ning valige assistent, kellega see peaks olema seotud.",
+ "CREATE": {
+ "TITLE": "Lisa KKK",
+ "SUCCESS_MESSAGE": "Vastus lisati edukalt.",
+ "ERROR_MESSAGE": "Vastuse lisamisel tekkis viga. Palun proovige uuesti."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Küsimus",
+ "PLACEHOLDER": "Sisestage küsimus siia",
+ "ERROR": "Palun esitage kehtiv küsimus."
+ },
+ "ANSWER": {
+ "LABEL": "Vastus",
+ "PLACEHOLDER": "Sisestage vastus siia",
+ "ERROR": "Palun esitage kehtiv vastus."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Uuenda KKK-d",
+ "SUCCESS_MESSAGE": "KKK uuendati edukalt",
+ "ERROR_MESSAGE": "KKK uuendamisel tekkis viga, palun proovige uuesti",
+ "APPROVE_SUCCESS_MESSAGE": "KKK märgiti kinnitatuks"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edit",
+ "DELETE_RESPONSE": "Delete"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "KKK-sid ei leitud",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "KKK-d aitavad teie assistendil pakkuda klientide küsimustele kiireid ja täpseid vastuseid. Neid saab automaatselt teie sisu põhjal genereerida või käsitsi lisada.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain KKK",
+ "NOTE": "Captain KKK tuvastab levinud kliendiküsimused—nii need, mis puuduvad teadmistebaasist kui ka korduma kippuvad—ja loob asjakohased KKK-d toe parandamiseks. Saad iga ettepaneku üle vaadata ja otsustada, kas see kinnitada või tagasi lükata."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Ühendatud postkastid",
+ "ADD_NEW": "Ühenda uus postkast",
+ "OPTIONS": {
+ "DISCONNECT": "Ühenda lahti"
+ },
+ "DELETE": {
+ "TITLE": "Kas olete kindel, et soovite postkasti lahti ühendada?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Jah, kustuta",
+ "SUCCESS_MESSAGE": "Postkast ühendati edukalt lahti.",
+ "ERROR_MESSAGE": "Postkasti lahtiühendamisel tekkis viga, palun proovige uuesti."
+ },
+ "FORM_DESCRIPTION": "Valige postkast, millega assistenti ühendada.",
+ "CREATE": {
+ "TITLE": "Ühenda postkast",
+ "SUCCESS_MESSAGE": "Postkast ühendati edukalt.",
+ "ERROR_MESSAGE": "Postkasti ühendamisel tekkis viga. Palun proovige uuesti."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Postkast",
+ "PLACEHOLDER": "Valige postkast, kuhu assistent paigutada.",
+ "ERROR": "Postkasti valik on kohustuslik."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Ühendatud postkaste pole",
+ "SUBTITLE": "Postkasti ühendamine võimaldab assistendil käsitleda klientide esialgseid küsimusi enne nende teie juurde suunamist."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json
new file mode 100644
index 000000000..96e272e46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/labelsMgmt.json
@@ -0,0 +1,89 @@
+{
+ "LABEL_MGMT": {
+ "HEADER": "Labels",
+ "HEADER_BTN_TXT": "Add label",
+ "LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
+ "SEARCH_404": "There are no items matching this query",
+ "LIST": {
+ "404": "There are no labels available in this account.",
+ "TITLE": "Manage labels",
+ "DESC": "Labels let you group the conversations together.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Label Name",
+ "PLACEHOLDER": "Label name",
+ "REQUIRED_ERROR": "Label name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Label Description"
+ },
+ "COLOR": {
+ "LABEL": "Color"
+ },
+ "SHOW_ON_SIDEBAR": {
+ "LABEL": "Show label on sidebar"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "SUGGESTIONS": {
+ "TOOLTIP": {
+ "SINGLE_SUGGESTION": "Add label to conversation",
+ "MULTIPLE_SUGGESTION": "Select this label",
+ "DESELECT": "Deselect label",
+ "DISMISS": "Dismiss suggestion"
+ },
+ "POWERED_BY": "Chatwoot AI",
+ "DISMISS": "Dismiss",
+ "ADD_SELECTED_LABELS": "Add selected labels",
+ "ADD_SELECTED_LABEL": "Add selected label",
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
+ },
+ "ADD": {
+ "TITLE": "Add label",
+ "DESC": "Labels let you group the conversations together.",
+ "API": {
+ "SUCCESS_MESSAGE": "Label added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit label",
+ "API": {
+ "SUCCESS_MESSAGE": "Label updated successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Label deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/login.json b/app/javascript/dashboard/i18n/locale/et/login.json
new file mode 100644
index 000000000..061284247
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/login.json
@@ -0,0 +1,41 @@
+{
+ "LOGIN": {
+ "TITLE": "Login to Chatwoot",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "example{'@'}companyname.com",
+ "ERROR": "Please enter a valid email address"
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Login successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
+ "UNAUTH": "Username or password is incorrect. Please try again."
+ },
+ "OAUTH": {
+ "GOOGLE_LOGIN": "Login with Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
+ "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ },
+ "FORGOT_PASSWORD": "Forgot your password?",
+ "CREATE_NEW_ACCOUNT": "Create a new account",
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/macros.json b/app/javascript/dashboard/i18n/locale/et/macros.json
new file mode 100644
index 000000000..e51975921
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/macros.json
@@ -0,0 +1,121 @@
+{
+ "MACROS": {
+ "HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "Add a new macro",
+ "HEADER_BTN_TXT_SAVE": "Save macro",
+ "LOADING": "Fetching macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "Something went wrong. Please try again",
+ "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "ADD": {
+ "FORM": {
+ "NAME": {
+ "LABEL": "Macro name",
+ "PLACEHOLDER": "Enter a name for your macro",
+ "ERROR": "Name is required for creating a macro"
+ },
+ "ACTIONS": {
+ "LABEL": "Actions"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro added successfully",
+ "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ }
+ },
+ "LIST": {
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
+ "404": "No macros found"
+ },
+ "DELETE": {
+ "TOOLTIP": "Delete macro",
+ "CONFIRM": {
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, Delete",
+ "NO": "No"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Macro deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ }
+ },
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
+ "EDIT": {
+ "TOOLTIP": "Edit macro",
+ "API": {
+ "SUCCESS_MESSAGE": "Macro updated successfully",
+ "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ }
+ },
+ "EDITOR": {
+ "START_FLOW": "Start Flow",
+ "END_FLOW": "End Flow",
+ "LOADING": "Fetching macro",
+ "ADD_BTN_TOOLTIP": "Add new action",
+ "DELETE_BTN_TOOLTIP": "Delete Action",
+ "VISIBILITY": {
+ "LABEL": "Macro Visibility",
+ "GLOBAL": {
+ "LABEL": "Public",
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
+ },
+ "PERSONAL": {
+ "LABEL": "Private",
+ "DESCRIPTION": "This macro will be private to you and not be available to others."
+ }
+ }
+ },
+ "EXECUTE": {
+ "BUTTON_TOOLTIP": "Execute",
+ "PREVIEW": "Preview Macro",
+ "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/mfa.json b/app/javascript/dashboard/i18n/locale/et/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/onboarding.json b/app/javascript/dashboard/i18n/locale/et/onboarding.json
new file mode 100644
index 000000000..d604cd3b1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Vali ajavöönd",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Jätka",
+ "SAVING": "Salvestamine...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/report.json b/app/javascript/dashboard/i18n/locale/et/report.json
new file mode 100644
index 000000000..ceedfa5be
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/report.json
@@ -0,0 +1,650 @@
+{
+ "REPORT": {
+ "HEADER": "Vestlused",
+ "LOADING_CHART": "Laaditakse diagrammi andmeid...",
+ "NO_ENOUGH_DATA": "Me pole saanud piisavalt andmepunkte aruande genereerimiseks, palun proovige hiljem uuesti.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Laadi alla vestluste aruanded",
+ "DATA_FETCHING_FAILED": "Andmete toomine ebaõnnestus, palun proovi hiljem uuesti.",
+ "SUMMARY_FETCHING_FAILED": "Kokkuvõtte toomine ebaõnnestus, palun proovi hiljem uuesti.",
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Vestlused",
+ "DESC": "(Kokku)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Vastuvõetud sõnumid",
+ "DESC": "(Kokku)"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Saadetud sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "Esimene vastuse aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutamiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Esimene vastuse aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Lahendamise aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutamiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Lahendamise aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kokku )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kokku )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Üleandmiste arv",
+ "DESC": "( Kokku )"
+ },
+ "REPLY_TIME": {
+ "NAME": "Kliendi ooteaeg",
+ "TOOLTIP_TEXT": "Ooteaeg on {metricValue} (põhineb {conversationCount} vastusel)",
+ "DESC": ""
+ }
+ },
+ "DATE_RANGE_OPTIONS": {
+ "LAST_7_DAYS": "Viimased 7 päeva",
+ "LAST_14_DAYS": "Viimased 14 päeva",
+ "LAST_30_DAYS": "Viimased 30 päeva",
+ "THIS_MONTH": "Käesolev kuu",
+ "LAST_MONTH": "Eelmine kuu",
+ "LAST_3_MONTHS": "Viimased 3 kuud",
+ "LAST_6_MONTHS": "Viimased 6 kuud",
+ "LAST_YEAR": "Eelmine aasta",
+ "CUSTOM_DATE_RANGE": "Kohandatud kuupäevavahemik"
+ },
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Rakenda",
+ "PLACEHOLDER": "Vali kuupäevavahemik"
+ },
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "Grupeeri",
+ "DURATION_FILTER_LABEL": "Kestus",
+ "GROUPING_OPTIONS": {
+ "DAY": "Päev",
+ "WEEK": "Nädal",
+ "MONTH": "Kuu",
+ "YEAR": "Aasta"
+ },
+ "GROUP_BY_DAY_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Päev"
+ }
+ ],
+ "GROUP_BY_WEEK_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Päev"
+ },
+ {
+ "id": 2,
+ "groupBy": "Nädal"
+ }
+ ],
+ "GROUP_BY_MONTH_OPTIONS": [
+ {
+ "id": 1,
+ "groupBy": "Päev"
+ },
+ {
+ "id": 2,
+ "groupBy": "Nädal"
+ },
+ {
+ "id": 3,
+ "groupBy": "Kuu"
+ }
+ ],
+ "GROUP_BY_YEAR_OPTIONS": [
+ {
+ "id": 2,
+ "groupBy": "Nädal"
+ },
+ {
+ "id": 3,
+ "groupBy": "Kuu"
+ },
+ {
+ "id": 4,
+ "groupBy": "Aasta"
+ }
+ ],
+ "BUSINESS_HOURS": "Tööaeg",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Tühjenda filter",
+ "EMPTY_LIST": "Tulemusi ei leitud"
+ },
+ "PAGINATION": {
+ "RESULTS": "Kuvatakse {start} kuni {end} {total} tulemusest",
+ "PER_PAGE_TEMPLATE": "{size} / lehekülg"
+ }
+ },
+ "AGENT_REPORTS": {
+ "HEADER": "Agentide ülevaade",
+ "DESCRIPTION": "Jälgi agentide sooritust lihtsalt oluliste mõõdikutega nagu vestlused, vastamisajad, lahendamisajad ja lahendatud juhtumid. Klõpsa agendi nimele, et rohkem teada saada.",
+ "LOADING_CHART": "Diagrammi andmete laadimine...",
+ "NO_ENOUGH_DATA": "Meil pole piisavalt andmepunkte aruande genereerimiseks, palun proovige hiljem uuesti.",
+ "DOWNLOAD_AGENT_REPORTS": "Laadi alla agendi aruanded",
+ "FILTER_DROPDOWN_LABEL": "Vali agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Otsi agente"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Vestlused",
+ "DESC": "( Kogus )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Sissetulevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Väljaminevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "Esimene vastuse aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutuste tegemiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Esimese vastuse aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Lahendamise aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutuste tegemiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Lahendamise aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kokku )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Viimased 7 päeva"
+ },
+ {
+ "id": 1,
+ "name": "Viimased 30 päeva"
+ },
+ {
+ "id": 2,
+ "name": "Viimased 3 kuud"
+ },
+ {
+ "id": 3,
+ "name": "Viimased 6 kuud"
+ },
+ {
+ "id": 4,
+ "name": "Eelmine aasta"
+ },
+ {
+ "id": 5,
+ "name": "Kohandatud kuupäevavahemik"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Rakenda",
+ "PLACEHOLDER": "Vali kuupäevavahemik"
+ }
+ },
+ "LABEL_REPORTS": {
+ "HEADER": "Siltide ülevaade",
+ "DESCRIPTION": "Jälgi sildi tulemuslikkust peamiste mõõdikute abil, sealhulgas vestlused, vastamisajad, lahendamise ajad ja lahendatud juhtumid. Täpsemate teadmiste saamiseks klõpsa sildi nimele.",
+ "LOADING_CHART": "Diagrammi andmete laadimine...",
+ "NO_ENOUGH_DATA": "Meil ei ole piisavalt andmepunkte aruande genereerimiseks, palun proovige hiljem uuesti.",
+ "DOWNLOAD_LABEL_REPORTS": "Laadi alla sildiaruanded",
+ "FILTER_DROPDOWN_LABEL": "Vali silt",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Otsi silte"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Vestlused",
+ "DESC": "(Kokku)"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Sissetulevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Väljaminevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "Esimene vastuse aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutuste tegemiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Esimese vastuse aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Lahendamise aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutuste tegemiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Lahendamise aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kogus )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Viimased 7 päeva"
+ },
+ {
+ "id": 1,
+ "name": "Viimased 30 päeva"
+ },
+ {
+ "id": 2,
+ "name": "Viimased 3 kuud"
+ },
+ {
+ "id": 3,
+ "name": "Viimased 6 kuud"
+ },
+ {
+ "id": 4,
+ "name": "Eelmine aasta"
+ },
+ {
+ "id": 5,
+ "name": "Kohandatud kuupäevavahemik"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Rakenda",
+ "PLACEHOLDER": "Vali kuupäevavahemik"
+ }
+ },
+ "INBOX_REPORTS": {
+ "HEADER": "Postkasti ülevaade",
+ "DESCRIPTION": "Vaata kiiresti oma postkasti tulemuslikkust võtmemõõdikute abil nagu vestlused, reageerimisajad, lahendamisajad ja lahendatud juhtumid – kõik ühes kohas. Klõpsa postkasti nimele, et näha rohkem üksikasju.",
+ "LOADING_CHART": "Diagrammi andmete laadimine...",
+ "NO_ENOUGH_DATA": "Meil pole piisavalt andmepunkte aruande genereerimiseks, palun proovige hiljem uuesti.",
+ "DOWNLOAD_INBOX_REPORTS": "Laadi alla postkasti aruanded",
+ "FILTER_DROPDOWN_LABEL": "Vali postkast",
+ "ALL_INBOXES": "Kõik postkastid",
+ "SEARCH_INBOX": "Otsi postkastist",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Otsi postkaste"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Vestlused",
+ "DESC": "( Kokku )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Sissetulevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Väljaminevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "Esimene vastuse aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutamiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Esimene vastuse aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Lahendamise aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutamiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Lahendamise aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kogus )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Viimased 7 päeva"
+ },
+ {
+ "id": 1,
+ "name": "Viimased 30 päeva"
+ },
+ {
+ "id": 2,
+ "name": "Viimased 3 kuud"
+ },
+ {
+ "id": 3,
+ "name": "Viimased 6 kuud"
+ },
+ {
+ "id": 4,
+ "name": "Eelmine aasta"
+ },
+ {
+ "id": 5,
+ "name": "Kohandatud kuupäevavahemik"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Rakenda",
+ "PLACEHOLDER": "Vali kuupäevavahemik"
+ }
+ },
+ "TEAM_REPORTS": {
+ "HEADER": "Meeskonna ülevaade",
+ "DESCRIPTION": "Saate ülevaate oma meeskonna tulemuslikkusest oluliste mõõdikutega, sealhulgas vestlused, reageerimisajad, lahendamise ajad ja lahendatud juhtumid. Lisateabe saamiseks klõpsake meeskonna nime.",
+ "LOADING_CHART": "Diagrammi andmete laadimine...",
+ "NO_ENOUGH_DATA": "Meil ei ole piisavalt andmepunkte aruande koostamiseks, palun proovige hiljem uuesti.",
+ "DOWNLOAD_TEAM_REPORTS": "Laadi alla meeskonna aruanded",
+ "FILTER_DROPDOWN_LABEL": "Vali meeskond",
+ "FILTERS": {
+ "ADD_FILTER": "Lisa filter",
+ "CLEAR_ALL": "Tühjenda kõik",
+ "NO_FILTER": "Filtreid pole saadaval",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Otsi meeskondi"
+ }
+ },
+ "METRICS": {
+ "CONVERSATIONS": {
+ "NAME": "Vestlused",
+ "DESC": "( Kogus )"
+ },
+ "INCOMING_MESSAGES": {
+ "NAME": "Sissetulevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "OUTGOING_MESSAGES": {
+ "NAME": "Väljaminevad sõnumid",
+ "DESC": "( Kogus )"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "NAME": "Esimene vastuse aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Arvutamiseks kasutatud vestluste koguarv:",
+ "TOOLTIP_TEXT": "Esimene vastuse aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_TIME": {
+ "NAME": "Lahendamise aeg",
+ "DESC": "( Keskmine )",
+ "INFO_TEXT": "Kokku vestluste arv arvutamiseks:",
+ "TOOLTIP_TEXT": "Lahendamise aeg on {metricValue} (põhineb {conversationCount} vestlusel)"
+ },
+ "RESOLUTION_COUNT": {
+ "NAME": "Lahenduste arv",
+ "DESC": "( Kogus )"
+ }
+ },
+ "DATE_RANGE": [
+ {
+ "id": 0,
+ "name": "Viimased 7 päeva"
+ },
+ {
+ "id": 1,
+ "name": "Viimased 30 päeva"
+ },
+ {
+ "id": 2,
+ "name": "Viimased 3 kuud"
+ },
+ {
+ "id": 3,
+ "name": "Viimased 6 kuud"
+ },
+ {
+ "id": 4,
+ "name": "Eelmine aasta"
+ },
+ {
+ "id": 5,
+ "name": "Kohandatud kuupäevavahemik"
+ }
+ ],
+ "CUSTOM_DATE_RANGE": {
+ "CONFIRM": "Rakenda",
+ "PLACEHOLDER": "Vali kuupäevavahemik"
+ }
+ },
+ "CSAT_REPORTS": {
+ "HEADER": "CSAT aruanded",
+ "NO_RECORDS": "Vastuseid pole veel",
+ "NO_RECORDS_DESCRIPTION": "Kliendirahulolu küsitluse vastused kuvatakse siin, kui kliendid hakkavad tagasisidet andma.",
+ "DOWNLOAD": "Laadi alla CSAT aruanded",
+ "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "FILTERS": {
+ "ADD_FILTER": "Lisa filter",
+ "CLEAR_ALL": "Tühjenda kõik",
+ "NO_FILTER": "Filtreid pole saadaval",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Otsi agente",
+ "INBOXES": "Otsi postkaste",
+ "TEAMS": "Otsi meeskondi",
+ "RATINGS": "Otsi hinnanguid"
+ },
+ "AGENTS": {
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Sissetulek"
+ },
+ "TEAMS": {
+ "LABEL": "Meeskond"
+ },
+ "RATINGS": {
+ "LABEL": "Hinnang"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "CONTACT_NAME": "Kontakt",
+ "AGENT_NAME": "Agent",
+ "RATING": "Hinnang",
+ "FEEDBACK_TEXT": "Tagasiside kommentaar",
+ "CONVERSATION": "Vestlus",
+ "CUSTOMER": "Klient",
+ "RESPONSE": "Vastus",
+ "HANDLED_BY": "Käsitlenud"
+ },
+ "UNKNOWN_CUSTOMER": "Tundmatu klient"
+ },
+ "NO_AGENT": "Määramata agent",
+ "NO_FEEDBACK": "Tagasisidet ei ole antud",
+ "METRIC": {
+ "TOTAL_RESPONSES": {
+ "LABEL": "Vastuste koguarv",
+ "TOOLTIP": "Kogutud vastuste koguarv"
+ },
+ "SATISFACTION_SCORE": {
+ "LABEL": "Rahulolu skoor",
+ "TOOLTIP": "Positiivsete vastuste koguarv / Vastuste koguarv * 100"
+ },
+ "RESPONSE_RATE": {
+ "LABEL": "Vastuste määr",
+ "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Hinnangute jaotus"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Ülevaate märkmed",
+ "PLACEHOLDER": "Lisa selle hinnangu kohta ülevaate märkmeid...",
+ "SAVE": "Salvesta",
+ "CANCEL": "Tühista",
+ "SAVING": "Salvestamine...",
+ "SAVED": "Märkmed salvestatud edukalt",
+ "SAVE_ERROR": "Märkmete salvestamine ebaõnnestus",
+ "UPDATED_BY": "Uuendas {name} {time}",
+ "UPDATED_BY_LABEL": "Uuendas",
+ "PAYWALL": {
+ "TITLE": "Uuenda, et lisada ülevaate märkmeid",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Lisa igale CSAT vastusele sisekontekst arvustuste märkmetega. Kogu teavet tegeliku olukorra kohta, avasta mustreid kiiremini ja tee paremaid otsuseid oma tagasiside põhjal.",
+ "UPGRADE_NOW": "Uuenda kohe",
+ "CANCEL_ANYTIME": "Saad oma plaani igal ajal muuta või tühistada"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Vestluste arv",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Vastuste koguarv",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Lahendamise määr",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Üleandmise määr",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
+ }
+ }
+ },
+ "OVERVIEW_REPORTS": {
+ "HEADER": "Ülevaade",
+ "LIVE": "Otseülekanne",
+ "ACCOUNT_CONVERSATIONS": {
+ "HEADER": "Avatud vestlused",
+ "LOADING_MESSAGE": "Vestluse mõõdikute laadimine...",
+ "OPEN": "Avatud",
+ "UNATTENDED": "Jäetud tähelepanuta",
+ "UNASSIGNED": "Määramata",
+ "PENDING": "Ootel"
+ },
+ "CONVERSATION_HEATMAP": {
+ "HEADER": "Vestluste liiklus",
+ "NO_CONVERSATIONS": "Vestlusi pole",
+ "CONVERSATION": "{count} vestlus",
+ "CONVERSATIONS": "{count} vestlust",
+ "DOWNLOAD_REPORT": "Laadi aruanne alla"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Lahendused",
+ "NO_CONVERSATIONS": "Vestlusi pole",
+ "CONVERSATION": "{count} vestlus",
+ "CONVERSATIONS": "{count} vestlust",
+ "DOWNLOAD_REPORT": "Laadi aruanne alla"
+ },
+ "AGENT_CONVERSATIONS": {
+ "HEADER": "Agentide vestlused",
+ "LOADING_MESSAGE": "Agendi mõõdikute laadimine...",
+ "NO_AGENTS": "Agentide vestlusi pole",
+ "TABLE_HEADER": {
+ "AGENT": "Agent",
+ "OPEN": "Ava",
+ "UNATTENDED": "Jäetud tähelepanuta",
+ "STATUS": "Staatus"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "Kõik meeskonnad",
+ "HEADER": "Vestlused meeskondade kaupa",
+ "LOADING_MESSAGE": "Meeskonna mõõdikute laadimine...",
+ "NO_TEAMS": "Andmeid pole saadaval",
+ "TABLE_HEADER": {
+ "TEAM": "Meeskond",
+ "OPEN": "Avatud",
+ "UNATTENDED": "Jäetud tähelepanuta",
+ "STATUS": "Staatus"
+ }
+ },
+ "AGENT_STATUS": {
+ "HEADER": "Agendi olek",
+ "ONLINE": "Veebis",
+ "BUSY": "Hõivatud",
+ "OFFLINE": "Võrgust väljas"
+ }
+ },
+ "DAYS_OF_WEEK": {
+ "SUNDAY": "Pühapäev",
+ "MONDAY": "Monday",
+ "TUESDAY": "Teisipäev",
+ "WEDNESDAY": "Wednesday",
+ "THURSDAY": "Neljapäev",
+ "FRIDAY": "Reede",
+ "SATURDAY": "Laupäev"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA aruanded",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Laaditakse SLA andmeid...",
+ "DOWNLOAD_SLA_REPORTS": "Laadi alla SLA aruanded",
+ "DOWNLOAD_FAILED": "SLA aruannete allalaadimine ebaõnnestus",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Lisa filter",
+ "CLEAR_ALL": "Tühjenda kõik",
+ "CLEAR_FILTER": "Tühjenda filter",
+ "EMPTY_LIST": "Tulemusi ei leitud",
+ "NO_FILTER": "Filtreid pole saadaval",
+ "SEARCH": "Otsi filtrit",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA nimi",
+ "AGENTS": "Agendi nimi",
+ "INBOXES": "Postkasti nimi",
+ "LABELS": "Sildi nimi",
+ "TEAMS": "Meeskonna nimi"
+ },
+ "SLA": "SLA poliitika",
+ "INBOXES": "Postkast",
+ "AGENTS": "Agent",
+ "LABELS": "Silt",
+ "TEAMS": "Meeskond"
+ },
+ "WITH": "koos",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Täitumismäär",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Mittejärgimiste arv",
+ "TOOLTIP": "Kokku SLA mittejärgimised kindlal perioodil"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Vestluste arv",
+ "TOOLTIP": "Vestluste koguarv, millel on SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Poliitika",
+ "CONVERSATION": "Vestlus",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "Vaata üksikasju"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "Postkast",
+ "AGENT": "Agent",
+ "TEAM": "Meeskond",
+ "LABEL": "Silt",
+ "AVG_RESOLUTION_TIME": "Keskmine lahendusaeg",
+ "AVG_FIRST_RESPONSE_TIME": "Keskmine esimene vastuse aeg",
+ "AVG_REPLY_TIME": "Keskmine kliendi ooteaeg",
+ "RESOLUTION_COUNT": "Lahenduste arv",
+ "CONVERSATIONS": "Vestluste arv"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/resetPassword.json b/app/javascript/dashboard/i18n/locale/et/resetPassword.json
new file mode 100644
index 000000000..955696b0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/resetPassword.json
@@ -0,0 +1,17 @@
+{
+ "RESET_PASSWORD": {
+ "TITLE": "Reset password",
+ "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
+ "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "EMAIL": {
+ "LABEL": "Email",
+ "PLACEHOLDER": "Please enter your email.",
+ "ERROR": "Please enter a valid email."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Password reset link has been sent to your email.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/search.json b/app/javascript/dashboard/i18n/locale/et/search.json
new file mode 100644
index 000000000..2fc8e7998
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/search.json
@@ -0,0 +1,68 @@
+{
+ "SEARCH": {
+ "TABS": {
+ "ALL": "All results",
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "SECTION": {
+ "CONTACTS": "Contacts",
+ "CONVERSATIONS": "Conversations",
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
+ },
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
+ "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
+ "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "BOT_LABEL": "Bot",
+ "READ_MORE": "Read more",
+ "READ_LESS": "Read less",
+ "WROTE": "wrote:",
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/setNewPassword.json b/app/javascript/dashboard/i18n/locale/et/setNewPassword.json
new file mode 100644
index 000000000..4908dad02
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/setNewPassword.json
@@ -0,0 +1,23 @@
+{
+ "SET_NEW_PASSWORD": {
+ "TITLE": "Set new password",
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short."
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm Password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Successfully changed the password.",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "CAPTCHA": {
+ "ERROR": "Verification expired. Please solve captcha again."
+ },
+ "SUBMIT": "Submit"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/settings.json b/app/javascript/dashboard/i18n/locale/et/settings.json
new file mode 100644
index 000000000..a4ba6ac6e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/settings.json
@@ -0,0 +1,923 @@
+{
+ "PROFILE_SETTINGS": {
+ "LINK": "Profiili seaded",
+ "TITLE": "Profiili seaded",
+ "BTN_TEXT": "Uuenda profiili",
+ "DELETE_AVATAR": "Kustuta avatar",
+ "AVATAR_DELETE_SUCCESS": "Avatar on edukalt kustutatud",
+ "AVATAR_DELETE_FAILED": "Avatari kustutamisel tekkis viga, palun proovi uuesti",
+ "UPDATE_SUCCESS": "Teie profiil on edukalt uuendatud",
+ "PASSWORD_UPDATE_SUCCESS": "Teie parool on edukalt muudetud",
+ "AFTER_EMAIL_CHANGED": "Teie profiil on edukalt uuendatud, palun logige uuesti sisse, kuna teie sisselogimisandmed on muutunud",
+ "FORM": {
+ "PICTURE": "Profiilipilt",
+ "AVATAR": "Profiilipilt",
+ "ERROR": "Palun parandage vormi vead",
+ "REMOVE_IMAGE": "Eemalda",
+ "UPLOAD_IMAGE": "Laadi pilt üles",
+ "UPDATE_IMAGE": "Uuenda pilti",
+ "PROFILE_SECTION": {
+ "TITLE": "Profiil",
+ "NOTE": "Sinu e-posti aadress on sinu identiteet ja seda kasutatakse sisselogimiseks."
+ },
+ "SEND_MESSAGE": {
+ "TITLE": "Kiirklahv sõnumite saatmiseks",
+ "NOTE": "Saad valida otsetee (Enter või Cmd/Ctrl+Enter) vastavalt oma kirjutamise eelistusele.",
+ "UPDATE_SUCCESS": "Sinu seaded on edukalt uuendatud",
+ "CARD": {
+ "ENTER_KEY": {
+ "HEADING": "Sisesta (↵)",
+ "CONTENT": "Saada sõnum Enter-klahviga, mitte saatmisnuppu vajutades."
+ },
+ "CMD_ENTER_KEY": {
+ "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
+ "CONTENT": "Sõnumite saatmine Cmd/Ctrl + Enter klahviga, mitte saatmisnuppu vajutades."
+ }
+ }
+ },
+ "INTERFACE_SECTION": {
+ "TITLE": "Liides",
+ "NOTE": "Kohanda Chatwoot juhtpaneeli välimust ja kasutuskogemust.",
+ "FONT_SIZE": {
+ "TITLE": "Fondi suurus",
+ "NOTE": "Reguleeri teksti suurust kogu armatuurlaual vastavalt oma eelistustele.",
+ "UPDATE_SUCCESS": "Sinu fondi seaded on edukalt uuendatud",
+ "UPDATE_ERROR": "Fondiseadete uuendamisel tekkis viga, palun proovi uuesti",
+ "OPTIONS": {
+ "SMALLER": "Väiksem",
+ "SMALL": "Väike",
+ "DEFAULT": "Vaikimisi",
+ "LARGE": "Suur",
+ "LARGER": "Suurem",
+ "EXTRA_LARGE": "Ekstra suur"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Eelistatud keel",
+ "NOTE": "Vali keel, mida soovid kasutada.",
+ "UPDATE_SUCCESS": "Sinu keelesätted on edukalt uuendatud",
+ "UPDATE_ERROR": "Keele seadete uuendamisel tekkis viga, palun proovi uuesti",
+ "USE_ACCOUNT_DEFAULT": "Kasuta konto vaikekeelt"
+ }
+ },
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "Isiklik sõnumi allkiri",
+ "NOTE": "Loo unikaalne sõnumi allkiri, mis kuvatakse iga sinu saadetud sõnumi lõpus igast postkastist. Võid lisada ka rida pildina, mida toetavad live chat, e-post ja API postkastid.",
+ "BTN_TEXT": "Salvesta sõnumi allkiri",
+ "API_ERROR": "Allkirja salvestamine ebaõnnestus! Proovi uuesti",
+ "API_SUCCESS": "Allkiri salvestati edukalt",
+ "IMAGE_UPLOAD_ERROR": "Pildi üleslaadimine ebaõnnestus! Proovi uuesti",
+ "IMAGE_UPLOAD_SUCCESS": "Pilt lisatud edukalt. Palun klõpsa salvestamiseks nuppu Salvesta",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Pildi suurus peab olema väiksem kui {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "Sõnumi allkiri",
+ "ERROR": "Sõnumi allkiri ei tohi olla tühi",
+ "PLACEHOLDER": "Sisesta siia oma isiklik sõnumi allkiri."
+ },
+ "PASSWORD_SECTION": {
+ "TITLE": "Parool",
+ "NOTE": "Parooli uuendamine logib sind välja kõigis seadmetes.",
+ "BTN_TEXT": "Muuda parooli"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Turvalisus",
+ "NOTE": "Halda oma konto täiendavaid turvafunktsioone.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Juurdepääsu token",
+ "NOTE": "Seda tokenit saab kasutada API-põhise integratsiooni loomisel.",
+ "COPY": "Kopeeri",
+ "RESET": "Lähtesta",
+ "CONFIRM_RESET": "Oled kindel?",
+ "CONFIRM_HINT": "Kinnita uuesti klõpsates",
+ "RESET_SUCCESS": "Access token regenerated successfully",
+ "RESET_ERROR": "Juurdepääsu tokeni uuendamine ebaõnnestus. Palun proovi uuesti"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "Helihoiatused",
+ "NOTE": "Luba armatuurlaual helihoiatused uute sõnumite ja vestluste puhul.",
+ "PLAY": "Esita heli",
+ "ALERT_TYPES": {
+ "NONE": "Puudub",
+ "MINE": "Määratud",
+ "ALL": "Kõik",
+ "ASSIGNED": "Minule määratud vestlused",
+ "UNASSIGNED": "Määramata vestlused",
+ "NOTME": "Avatud vestlused, mis on määratud teistele"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Sa ei ole valinud ühtegi valikut, sa ei saa helihoiatusi.",
+ "ASSIGNED": "Sa saad hoiatusi sulle määratud vestluste kohta.",
+ "UNASSIGNED": "Sa saad hoiatusi kõigi määramata vestluste kohta.",
+ "NOTME": "Sa saad hoiatusi teistele määratud vestluste kohta.",
+ "ASSIGNED+UNASSIGNED": "Sa saad hoiatusi nii sulle määratud kui ka hooldamata vestluste kohta.",
+ "ASSIGNED+NOTME": "Sa saad hoiatusi sulle ja teistele määratud vestluste kohta, kuid mitte määramata vestluste kohta.",
+ "NOTME+UNASSIGNED": "Sa saad hoiatusi hooldamata vestluste ja teistele määratud vestluste kohta.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Sa saad hoiatusi kõigi vestluste kohta."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Hoiatuste sündmused vestluste jaoks",
+ "NONE": "Puudub",
+ "ASSIGNED": "Määratud vestlused",
+ "ALL_CONVERSATIONS": "Kõik vestlused"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "Hoiatusheli:"
+ },
+ "CONDITIONS": {
+ "TITLE": "Hoiatusseisundid:",
+ "CONDITION_ONE": "Helimärguanded ainult siis, kui brauseri aken pole aktiivne",
+ "CONDITION_TWO": "Saada teavitusi iga 30 sekundi järel, kuni kõik määratud vestlused on loetud"
+ },
+ "SOUND_PERMISSION_ERROR": "Automaatsel mängimisel on sinu brauseris keelatud. Et kuulda teavitusi automaatselt, luba heliõigused brauseri seadetes või suhtle lehega.",
+ "READ_MORE": "Loe rohkem"
+ },
+ "EMAIL_NOTIFICATIONS_SECTION": {
+ "TITLE": "E-posti teavitused",
+ "NOTE": "Muuda siin oma e-posti teavituste eelistusi",
+ "CONVERSATION_ASSIGNMENT": "Saada e-posti teavitus, kui mulle määratakse vestlus",
+ "CONVERSATION_CREATION": "Saada e-posti teavitus, kui luuakse uus vestlus",
+ "CONVERSATION_MENTION": "Saada e-kirjaga teavitus, kui sind vestluses mainitakse",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Saada e-kirjaga teavitus, kui määratud vestlusesse lisatakse uus sõnum",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Saada e-posti teavitus, kui osalevas vestluses luuakse uus sõnum",
+ "SLA_MISSED_FIRST_RESPONSE": "Saada e-kiri, kui vestlusel jääb esimese vastuse SLA täitmata",
+ "SLA_MISSED_NEXT_RESPONSE": "Saada e-kiri, kui vestlusel jääb järgmise vastuse SLA täitmata",
+ "SLA_MISSED_RESOLUTION": "Saada e-kiri, kui vestlusel jääb lahenduse SLA täitmata"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Teavituste eelistused",
+ "TYPE_TITLE": "Teavituse tüüp",
+ "EMAIL": "E-post",
+ "PUSH": "Push-teavitus",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Luuakse uus vestlus",
+ "CONVERSATION_ASSIGNED": "Vestlus määratakse sulle",
+ "CONVERSATION_MENTION": "Sind mainitakse vestluses",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Määratud vestluses luuakse uus sõnum",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Osalevas vestluses luuakse uus sõnum",
+ "SLA_MISSED_FIRST_RESPONSE": "Vestlus ei vasta esimesele SLA vastusele",
+ "SLA_MISSED_NEXT_RESPONSE": "Vestlus ei vasta järgmisele SLA vastusele",
+ "SLA_MISSED_RESOLUTION": "Vestlus ei vasta lahenduse SLA nõuetele"
+ },
+ "BROWSER_PERMISSION": "Luba brauseri tõuketeavitused, et neid vastu võtta"
+ },
+ "API": {
+ "UPDATE_SUCCESS": "Teavituste eelistused on edukalt uuendatud",
+ "UPDATE_ERROR": "Eelistuste uuendamisel tekkis viga, palun proovige uuesti"
+ },
+ "PUSH_NOTIFICATIONS_SECTION": {
+ "TITLE": "Push-teavitused",
+ "NOTE": "Muuda siin oma tõukemärguannete eelistusi",
+ "CONVERSATION_ASSIGNMENT": "Saada tõukemärguanne, kui vestlus määratakse mulle",
+ "CONVERSATION_CREATION": "Saada tõukemärguanne, kui luuakse uus vestlus",
+ "CONVERSATION_MENTION": "Saada tõuketeavitusi, kui sind vestluses mainitakse",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Saada tõukemärguanne, kui määratud vestlusesse lisatakse uus sõnum",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Saada push-teavitus, kui osalevas vestluses luuakse uus sõnum",
+ "HAS_ENABLED_PUSH": "Tõukemärguanded on selles brauseris lubatud.",
+ "REQUEST_PUSH": "Luba tõukemärguanded",
+ "SLA_MISSED_FIRST_RESPONSE": "Saada push-teavitus, kui vestlusel jääb esimese vastuse SLA täitmata",
+ "SLA_MISSED_NEXT_RESPONSE": "Saada push-teavitus, kui vestlusel jääb järgmise vastuse SLA täitmata",
+ "SLA_MISSED_RESOLUTION": "Saada push-teavitus, kui vestlusel jääb lahenduse SLA täitmata"
+ },
+ "PROFILE_IMAGE": {
+ "LABEL": "Profiilipilt"
+ },
+ "NAME": {
+ "LABEL": "Teie täisnimi",
+ "ERROR": "Palun sisestage kehtiv täisnimi",
+ "PLACEHOLDER": "Palun sisestage oma täisnimi"
+ },
+ "DISPLAY_NAME": {
+ "LABEL": "Kuvamise nimi",
+ "ERROR": "Palun sisestage kehtiv kuvamise nimi",
+ "PLACEHOLDER": "Palun sisestage kuvamise nimi, see kuvatakse vestlustes"
+ },
+ "AVAILABILITY": {
+ "LABEL": "Saadavus",
+ "STATUS": {
+ "ONLINE": "Veebis",
+ "BUSY": "Hõivatud",
+ "OFFLINE": "Võrguühenduseta"
+ },
+ "SET_AVAILABILITY_SUCCESS": "Oleku määramine õnnestus",
+ "SET_AVAILABILITY_ERROR": "Oleku määramine ebaõnnestus, palun proovi uuesti",
+ "IMPERSONATING_ERROR": "Sa ei saa muuta saadavust, kui esindad teist kasutajat"
+ },
+ "EMAIL": {
+ "LABEL": "Teie e-posti aadress",
+ "ERROR": "Palun sisestage kehtiv e-posti aadress",
+ "PLACEHOLDER": "Palun sisestage oma e-posti aadress, see kuvatakse vestlustes"
+ },
+ "CURRENT_PASSWORD": {
+ "LABEL": "Praegune parool",
+ "ERROR": "Palun sisestage praegune parool",
+ "PLACEHOLDER": "Palun sisestage praegune parool"
+ },
+ "PASSWORD": {
+ "LABEL": "Uus parool",
+ "ERROR": "Palun sisestage vähemalt 6 tähemärgiga parool",
+ "PLACEHOLDER": "Palun sisestage uus parool"
+ },
+ "PASSWORD_CONFIRMATION": {
+ "LABEL": "Kinnita uus parool",
+ "ERROR": "Kinnitatud parool peab vastama paroolile",
+ "PLACEHOLDER": "Palun sisesta oma uus parool uuesti"
+ }
+ }
+ },
+ "SIDEBAR_ITEMS": {
+ "CHANGE_AVAILABILITY_STATUS": "Muuda",
+ "CHANGE_ACCOUNTS": "Vaheta kontot",
+ "SWITCH_ACCOUNT": "Vaheta kontot",
+ "CONTACT_SUPPORT": "Võta ühendust toega",
+ "SELECTOR_SUBTITLE": "Valige allolevast loendist konto",
+ "PROFILE_SETTINGS": "Profiili seaded",
+ "YEAR_IN_REVIEW": "Aasta ülevaade",
+ "KEYBOARD_SHORTCUTS": "Klaviatuuri otseteed",
+ "APPEARANCE": "Muuda välimust",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmini konsool",
+ "DOCS": "Loe dokumentatsiooni",
+ "CHANGELOG": "Muudatuste logi",
+ "LOGOUT": "Logi välja"
+ },
+ "APP_GLOBAL": {
+ "TRIAL_MESSAGE": "päeva tasuta prooviperiood jäänud.",
+ "TRAIL_BUTTON": "Osta kohe",
+ "DELETED_USER": "Kustutatud kasutaja",
+ "EMAIL_VERIFICATION_PENDING": "Tundub, et sa pole oma e-posti aadressi veel kinnitanud. Palun kontrolli oma postkasti kinnituskirja.",
+ "RESEND_VERIFICATION_MAIL": "Saada kinnituskiri uuesti",
+ "EMAIL_VERIFICATION_SENT": "Kinnituskiri on saadetud. Palun kontrolli oma postkasti.",
+ "ACCOUNT_SUSPENDED": {
+ "TITLE": "Konto peatatud",
+ "MESSAGE": "Teie konto on peatatud. Lisateabe saamiseks võtke ühendust tugimeeskonnaga."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "Kontot ei leitud",
+ "MESSAGE_CLOUD": "Te ei kuulu hetkel ühegi konto alla. Kui arvate, et see on viga, võtke palun ühendust meie tugimeeskonnaga.",
+ "MESSAGE_SELF_HOSTED": "Te ei kuulu hetkel ühegi konto alla. Palun võtke ühendust oma administraatoriga.",
+ "LOGOUT": "Logi välja"
+ }
+ },
+ "COMPONENTS": {
+ "CODE": {
+ "BUTTON_TEXT": "Kopeeri",
+ "CODEPEN": "Ava CodePenis",
+ "COPY_SUCCESSFUL": "Kopeeritud lõikelauale"
+ },
+ "SHOW_MORE_BLOCK": {
+ "SHOW_MORE": "Näita rohkem",
+ "SHOW_LESS": "Näita vähem"
+ },
+ "FILE_BUBBLE": {
+ "DOWNLOAD": "Laadi alla",
+ "UPLOADING": "Laadimine...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "See lugu pole enam saadaval.",
+ "INSTAGRAM_STORY_REPLY": "Vastas su loole:"
+ },
+ "LOCATION_BUBBLE": {
+ "SEE_ON_MAP": "Vaata kaardil"
+ },
+ "FORM_BUBBLE": {
+ "SUBMIT": "Esita"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "See pilt ei ole enam saadaval.",
+ "LOADING_FAILED": "Laadimine ebaõnnestus"
+ }
+ },
+ "CONFIRM_EMAIL": "Kontrollimine...",
+ "SETTINGS": {
+ "INBOXES": {
+ "NEW_INBOX": "Lisa postkast"
+ }
+ },
+ "SIDEBAR": {
+ "NO_ITEMS": "Ühtegi eset pole",
+ "CURRENTLY_VIEWING_ACCOUNT": "Praegu vaadatakse:",
+ "SWITCH": "Vaheta",
+ "INBOX_VIEW": "Postkasti vaade",
+ "CONVERSATIONS": "Vestlused",
+ "INBOX": "Minu postkast",
+ "ALL_CONVERSATIONS": "Kõik vestlused",
+ "MENTIONED_CONVERSATIONS": "Mainimised",
+ "PARTICIPATING_CONVERSATIONS": "Osalevad",
+ "UNATTENDED_CONVERSATIONS": "Jäetud tähelepanuta",
+ "REPORTS": "Aruanded",
+ "SETTINGS": "Seaded",
+ "CONTACTS": "Kontaktid",
+ "ACTIVE": "Aktiivne",
+ "COMPANIES": "Ettevõtted",
+ "ALL_COMPANIES": "Kõik ettevõtted",
+ "CAPTAIN": "Kapten",
+ "CAPTAIN_ASSISTANTS": "Abilised",
+ "CAPTAIN_DOCUMENTS": "Dokumendid",
+ "CAPTAIN_RESPONSES": "KKK",
+ "CAPTAIN_TOOLS": "Tööriistad",
+ "CAPTAIN_SCENARIOS": "Stsenaariumid",
+ "CAPTAIN_PLAYGROUND": "Mänguväljak",
+ "CAPTAIN_INBOXES": "Postkastid",
+ "CAPTAIN_SETTINGS": "Seaded",
+ "HOME": "Avaleht",
+ "AGENTS": "Agendid",
+ "AGENT_BOTS": "Botid",
+ "AUDIT_LOGS": "Auditilogid",
+ "INBOXES": "Postkastid",
+ "NOTIFICATIONS": "Teavitused",
+ "CANNED_RESPONSES": "Eelmääratud vastused",
+ "INTEGRATIONS": "Integratsioonid",
+ "PROFILE_SETTINGS": "Profiili seaded",
+ "ACCOUNT_SETTINGS": "Konto seaded",
+ "APPLICATIONS": "Rakendused",
+ "LABELS": "Sildid",
+ "CUSTOM_ATTRIBUTES": "Kohandatud atribuudid",
+ "AUTOMATION": "Automatiseerimine",
+ "MACROS": "Makrod",
+ "TEAMS": "Meeskonnad",
+ "BILLING": "Arveldamine",
+ "CUSTOM_VIEWS_FOLDER": "Kaustad",
+ "CUSTOM_VIEWS_SEGMENTS": "Segmendid",
+ "ALL_CONTACTS": "Kõik kontaktid",
+ "TAGGED_WITH": "Sildistatud",
+ "NEW_LABEL": "Uus silt",
+ "NEW_TEAM": "Uus meeskond",
+ "NEW_INBOX": "Uus postkast",
+ "REPORTS_CONVERSATION": "Vestlused",
+ "CSAT": "CSAT",
+ "LIVE_CHAT": "Otsevestlus",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "Kampaaniad",
+ "ONGOING": "Jätkub",
+ "ONE_OFF": "Ühekordne",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
+ "REPORTS_AGENT": "Agendid",
+ "REPORTS_LABEL": "Sildid",
+ "REPORTS_INBOX": "Sissetulek",
+ "REPORTS_TEAM": "Meeskond",
+ "AGENT_ASSIGNMENT": "Esindaja määramine",
+ "SET_AVAILABILITY_TITLE": "Määra end kui",
+ "SET_YOUR_AVAILABILITY": "Määra oma saadavus",
+ "SLA": "SLA",
+ "CUSTOM_ROLES": "Kohandatud rollid",
+ "BETA": "Beeta",
+ "REPORTS_OVERVIEW": "Ülevaade",
+ "REAUTHORIZE": "Sinu postkasti ühendus on aegunud, palun ühenda uuesti\n et jätkata sõnumite vastuvõtmist ja saatmist",
+ "HELP_CENTER": {
+ "TITLE": "Abi keskus",
+ "ARTICLES": "Artiklid",
+ "CATEGORIES": "Kategooriad",
+ "LOCALES": "Keeled",
+ "SETTINGS": "Seaded"
+ },
+ "CHANNELS": "Kanalid",
+ "SET_AUTO_OFFLINE": {
+ "TEXT": "Märgi automaatselt võrguühenduseta",
+ "INFO_TEXT": "Lase süsteemil automaatselt sind võrguühenduseta märkida, kui sa rakendust või juhtpaneeli ei kasuta.",
+ "INFO_SHORT": "Märgi automaatselt võrguühenduseta, kui sa rakendust ei kasuta."
+ },
+ "DOCS": "Loe dokumentatsiooni",
+ "SECURITY": "Turvalisus",
+ "CAPTAIN_AI": "Kapten",
+ "CONVERSATION_WORKFLOW": "Vestluse töövoog"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Seadista oma AI mudelid ja funktsioonid Captainile. Captain kasutab krediidipõhist arveldamist, iga Captaini tegevuse eest valitud mudeli alusel võetakse krediite.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain ei ole sinu kontol lubatud. Palun uuenda oma plaani, et pääseda Captaini funktsioonidele ligi.",
+ "MODEL_CONFIG": {
+ "TITLE": "Mudeli seadistus",
+ "DESCRIPTION": "Vali AI mudelid erinevate funktsioonide jaoks.",
+ "SELECT_MODEL": "Vali mudel",
+ "CREDITS_PER_MESSAGE": "{credits} krediiti/sõnum",
+ "COMING_SOON": "Varsti saadaval",
+ "EDITOR": {
+ "TITLE": "Redaktori funktsioonid",
+ "DESCRIPTION": "Toetab nutikat kirjutamist, grammatikaparandusi, tooni kohandusi ja sisu täiustamist sõnumiredaktoris."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistent",
+ "DESCRIPTION": "Haldab automatiseeritud vastuseid, vestluste kokkuvõtteid ja nutikaid vastuseettepanekuid kliendisuhtluses."
+ },
+ "COPILOT": {
+ "TITLE": "Kaaspiloot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funktsioonid",
+ "DESCRIPTION": "Luba või keela AI-põhised funktsioonid.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Heli transkriptsioon",
+ "DESCRIPTION": "Muutke automaatselt hääl- ja kõnesalvestused otsitavateks tekstikirjeldusteks."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Abi keskuse otsingu indekseerimine",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Sildi soovitus",
+ "DESCRIPTION": "Paku automaatselt vestluste sisu analüüsi ja konteksti põhjal asjakohaseid silte ja märgendeid.",
+ "MODEL_TITLE": "Sildi soovituse mudel",
+ "MODEL_DESCRIPTION": "Vali AI mudel vestluste analüüsimiseks ja sobivate siltide soovitamiseks"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
+ },
+ "BILLING_SETTINGS": {
+ "TITLE": "Arveldamine",
+ "DESCRIPTION": "Halda siin oma tellimust, uuenda plaani ja saa meeskonnale rohkem.",
+ "CURRENT_PLAN": {
+ "TITLE": "Praegune plaan",
+ "PLAN_NOTE": "Oled hetkel tellinud **{plan}** plaani **{quantity}** litsentsiga",
+ "SEAT_COUNT": "Istmete arv",
+ "RENEWS_ON": "Uueneb kuupäeval"
+ },
+ "VIEW_PRICING": "Vaata hindu",
+ "MANAGE_SUBSCRIPTION": {
+ "TITLE": "Halda oma tellimust",
+ "DESCRIPTION": "Vaata oma varasemaid arveid, muuda arveldusandmeid või tühista tellimus.",
+ "BUTTON_TXT": "Mine arveldusportaali"
+ },
+ "CAPTAIN": {
+ "TITLE": "Kapten",
+ "DESCRIPTION": "Halda Captain AI kasutust ja krediite.",
+ "BUTTON_TXT": "Osta rohkem krediite",
+ "DOCUMENTS": "Dokumendid",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain ei ole tasuta plaanis saadaval, uuenda kohe, et saada ligipääs assistentidele, copilotile ja muule.",
+ "REFRESH_CREDITS": "Värskenda"
+ },
+ "CHAT_WITH_US": {
+ "TITLE": "Vajad abi?",
+ "DESCRIPTION": "Kas sul on arveldamisega probleeme? Me aitame sind.",
+ "BUTTON_TXT": "Vestle meiega"
+ },
+ "NO_BILLING_USER": "Sinu arvelduskonto seadistatakse. Palun värskenda lehte ja proovi uuesti.",
+ "TOPUP": {
+ "BUY_CREDITS": "Osta rohkem krediite",
+ "MODAL_TITLE": "Osta AI krediite",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "KREDIIDID",
+ "ONE_TIME": "ühekordne",
+ "POPULAR": "Kõige populaarsem",
+ "NOTE_TITLE": "Märkus:",
+ "NOTE_DESCRIPTION": "Krediidid lisatakse kohe ja aeguvad 6 kuu pärast. Krediitide kasutamiseks on vajalik aktiivne tellimus. Ostetud krediidid tarbitakse pärast teie kuupõhise plaani krediite.",
+ "CANCEL": "Tühista",
+ "PURCHASE": "Osta krediite",
+ "LOADING": "Valikute laadimine...",
+ "FETCH_ERROR": "Krediidivalikute laadimine ebaõnnestus. Palun proovi uuesti.",
+ "PURCHASE_ERROR": "Ostu töötlemine ebaõnnestus. Palun proovi uuesti.",
+ "PURCHASE_SUCCESS": "Kontole lisati edukalt {credits} krediiti",
+ "CONFIRM": {
+ "TITLE": "Kinnita ost",
+ "DESCRIPTION": "Oled ostmas {credits} krediiti hinnaga {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Sinu salvestatud kaardilt võetakse summa kohe pärast kinnitamist.",
+ "GO_BACK": "Tagasi",
+ "CONFIRM_PURCHASE": "Kinnita ost"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Turvalisus",
+ "DESCRIPTION": "Halda oma konto turvaseadeid.",
+ "LINK_TEXT": "Loe SAML SSO kohta lisaks",
+ "SAML_DISABLED_MESSAGE": "SAML SSO on hetkel keelatud. Palun võtke ühendust oma administraatoriga, et see funktsioon lubada.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL – seadista see URL oma IdP-s SAML vastuste sihtkohaks"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Allkirjastamise sertifikaat PEM formaadis",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Sõrmejälg",
+ "TOOLTIP": "Sertifikaadi SHA-1 sõrmejälg – kasuta seda sertifikaadi kontrollimiseks oma IdP seadetes"
+ },
+ "COPY_SUCCESS": "Kopeeritud lõikelauale",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP üksuse ID",
+ "HELP": "Selle rakenduse unikaalne identifikaator teenusepakkujana (automaatselt genereeritud).",
+ "TOOLTIP": "Chatwoot unikaalne identifikaator teenusepakkujana – seadista see oma IdP seadetes"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Uuenda SAML seadeid",
+ "API": {
+ "SUCCESS": "SAML seaded uuendati edukalt",
+ "ERROR": "SAML seadete uuendamine ebaõnnestus",
+ "ERROR_LOADING": "SAML seadete laadimine ebaõnnestus",
+ "DISABLED": "SAML seaded on edukalt keelatud"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID ja sertifikaat on kohustuslikud väljad",
+ "SSO_URL_ERROR": "Palun sisesta kehtiv SSO URL",
+ "CERTIFICATE_ERROR": "Sertifikaat on kohustuslik",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Uuenda Enterprise plaanile, et kasutada SAML ühtset sisselogimist ja muid täiustatud turvafunktsioone.",
+ "ASK_ADMIN": "Palun pöördu uuendamiseks oma administraatori poole."
+ },
+ "PAYWALL": {
+ "TITLE": "Uuenda, et lubada SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Uuenda oma plaani, et saada ligipääs SAML ühe sisselogimisele ja teistele täiustatud funktsioonidele.",
+ "UPGRADE_NOW": "Uuenda kohe",
+ "CANCEL_ANYTIME": "Saad oma plaani igal ajal muuta või tühistada"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML atribuudi seadistamine",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Teenusepakkuja info",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Vestluse töövood",
+ "DESCRIPTION": "Seadista reeglid ja vajalikud väljad vestluse lahendamiseks."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Lahendamisel nõutavad atribuudid",
+ "DESCRIPTION": "Vestlust lahendades palutakse agendil täita need atribuudid, kui need pole veel täidetud.",
+ "NO_ATTRIBUTES": "Atribuute pole veel lisatud",
+ "ADD": {
+ "TITLE": "Lisa atribuute",
+ "SEARCH_PLACEHOLDER": "Otsi atribuute"
+ },
+ "SAVE": {
+ "SUCCESS": "Nõutavad atribuudid uuendatud",
+ "ERROR": "Nõutavate atribuutide uuendamine ebaõnnestus, palun proovi uuesti"
+ },
+ "MODAL": {
+ "TITLE": "Lahenda vestlus",
+ "DESCRIPTION": "Palun täida enne selle vestluse lahendamist järgmised kohandatud atribuudid",
+ "ACTIONS": {
+ "RESOLVE": "Lahenda vestlus",
+ "CANCEL": "Tühista"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Kirjuta märkus...",
+ "NUMBER": "Sisesta number",
+ "LINK": "Lisa link",
+ "DATE": "Vali kuupäev",
+ "LIST": "Vali valik"
+ },
+ "CHECKBOX": {
+ "YES": "Jah",
+ "NO": "Ei"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Uuenda, et kasutada nõutavaid atribuute",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Uuenda oma plaani, et paluda agentidel täita nõutavad atribuudid enne vestluse lahendamist.",
+ "UPGRADE_NOW": "Uuenda kohe",
+ "CANCEL_ANYTIME": "Saad oma plaani igal ajal muuta või tühistada"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Nõutavate vestluse atribuutide funktsioon on saadaval tasulistes plaanides.",
+ "UPGRADE_PROMPT": "Uuenda tasulisele plaanile, et nõuda atribuutide täitmist enne vestluse lõpetamist.",
+ "ASK_ADMIN": "Palun pöördu uuenduse saamiseks oma administraatori poole."
+ }
+ }
+ },
+ "CREATE_ACCOUNT": {
+ "NO_ACCOUNT_WARNING": "Oih! Ühtegi Chatwoot kontot ei leitud. Jätkamiseks loo uus konto.",
+ "NEW_ACCOUNT": "Uus konto",
+ "SELECTOR_SUBTITLE": "Loo uus konto",
+ "API": {
+ "SUCCESS_MESSAGE": "Konto on edukalt loodud",
+ "EXIST_MESSAGE": "Konto juba eksisteerib",
+ "ERROR_MESSAGE": "Ei õnnestunud Chatwoot serveriga ühendust luua, palun proovi hiljem uuesti"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Ettevõtte nimi",
+ "PLACEHOLDER": "Wayne Enterprises"
+ },
+ "SUBMIT": "Esita",
+ "CANCEL": "Tühista"
+ }
+ },
+ "KEYBOARD_SHORTCUTS": {
+ "TOGGLE_MODAL": "Vaata kõiki otseteid",
+ "TITLE": {
+ "OPEN_CONVERSATION": "Ava vestlus",
+ "RESOLVE_AND_NEXT": "Lahenda ja liigu järgmisele",
+ "NAVIGATE_DROPDOWN": "Liigu rippmenüü üksuste vahel",
+ "RESOLVE_CONVERSATION": "Lahenda vestlus",
+ "GO_TO_CONVERSATION_DASHBOARD": "Mine vestluste juhtpaneelile",
+ "ADD_ATTACHMENT": "Lisa manus",
+ "GO_TO_CONTACTS_DASHBOARD": "Mine kontaktide juhtpaneelile",
+ "TOGGLE_SIDEBAR": "Vaheta külgriba",
+ "GO_TO_REPORTS_SIDEBAR": "Mine aruannete külgribale",
+ "MOVE_TO_NEXT_TAB": "Liigu järgmisele vahelehele vestluste nimekirjas",
+ "GO_TO_SETTINGS": "Mine seadistustesse",
+ "SWITCH_TO_PRIVATE_NOTE": "Vaheta privaatse märkuse peale",
+ "SWITCH_TO_REPLY": "Vaheta vastuse peale",
+ "TOGGLE_SNOOZE_DROPDOWN": "Vaheta unerežiimi rippmenüüd"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Esindaja määramine",
+ "DESCRIPTION": "Määra poliitikad, et tõhusalt hallata töökoormust ja suunata vestlusi vastavalt postkastide ja esindajate vajadustele. Loe siit lisaks"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Määramise poliitika",
+ "DESCRIPTION": "Halda, kuidas vestlused postkastides määratakse.",
+ "FEATURES": [
+ "Määra vestlused ühtlaselt või saadavuse alusel",
+ "Lisa õiglane jaotusreeglid, et vältida ühegi esindaja ülekoormamist",
+ "Lisa poliitikasse postkastid – üks poliitika postkasti kohta"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Esindaja töökoormuse poliitika",
+ "DESCRIPTION": "Halda esindajate töökoormust.",
+ "FEATURES": [
+ "Määra maksimaalne vestluste arv postkasti kohta",
+ "Loo erandid siltide ja aja alusel",
+ "Lisa poliitikasse esindajad – üks poliitika esindaja kohta"
+ ]
+ }
+ },
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Määramise poliitika",
+ "CREATE_POLICY": "Uus poliitika"
+ },
+ "CARD": {
+ "ORDER": "Järjekord",
+ "PRIORITY": "Prioriteet",
+ "ACTIVE": "Aktiivne",
+ "INACTIVE": "Mitteaktiivne",
+ "POPOVER": "Lisatud postkastid",
+ "EDIT": "Muuda"
+ },
+ "NO_RECORDS_FOUND": "Määramisreegleid ei leitud"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Loo määramisreegel"
+ },
+ "CREATE_BUTTON": "Loo reegel",
+ "API": {
+ "SUCCESS_MESSAGE": "Määramisreegel loodud edukalt",
+ "ERROR_MESSAGE": "Määramisreegli loomine ebaõnnestus",
+ "INBOX_LINKED": "Sissetulek on poliitikaga seotud"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Muuda määramisreeglit"
+ },
+ "EDIT_BUTTON": "Uuenda reeglit",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Lisa postkast",
+ "DESCRIPTION": "{inboxName} postkast on juba seotud teise reegliga. Kas oled kindel, et soovid selle siduda selle reegliga? See eemaldatakse teisest reeglist.",
+ "CONFIRM_BUTTON_LABEL": "Jätka",
+ "CANCEL_BUTTON_LABEL": "Tühista"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Seosta sissetulek poliitikaga",
+ "DESCRIPTION": "Kas soovid selle sissetuleku siduda määramisreegliga?",
+ "LINK_BUTTON": "Seosta sissetulek",
+ "CANCEL_BUTTON": "Jäta vahele"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Määramisreegel uuendati edukalt",
+ "ERROR_MESSAGE": "Määramisreegli uuendamine ebaõnnestus"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Postkast lisati reeglile edukalt",
+ "ERROR_MESSAGE": "Postkasti lisamine reeglile ebaõnnestus"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Postkast eemaldati reeglist edukalt",
+ "ERROR_MESSAGE": "Postkasti eemaldamine reeglist ebaõnnestus"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Reegli nimi:",
+ "PLACEHOLDER": "Sisesta reegli nimi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus:",
+ "PLACEHOLDER": "Sisesta kirjeldus"
+ },
+ "STATUS": {
+ "LABEL": "Staatus:",
+ "PLACEHOLDER": "Vali staatus",
+ "ACTIVE": "Reegel on aktiivne",
+ "INACTIVE": "Reegel on mitteaktiivne"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Määramise järjekord",
+ "ROUND_ROBIN": {
+ "LABEL": "Ringjaotus",
+ "DESCRIPTION": "Määra vestlused võrdselt agendile."
+ },
+ "BALANCED": {
+ "LABEL": "Tasakaalustatud",
+ "DESCRIPTION": "Määra vestlused saadaval oleva mahutavuse põhjal.",
+ "PREMIUM_MESSAGE": "Uuenda, et kasutada tasakaalustatud määramist ja agendi võimekuse haldust.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Määramise prioriteet",
+ "EARLIEST_CREATED": {
+ "LABEL": "Kõige varasemalt loodud",
+ "DESCRIPTION": "Kõige varem loodud vestlus määratakse esimesena."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Kõige kauem oodanud",
+ "DESCRIPTION": "Kõige kauem oodanud vestlus määratakse esimesena."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Õiglase jaotuse reegel",
+ "DESCRIPTION": "Määra maksimaalne vestluste arv, mis võib ajaühikus agendile määrata, et vältida ühe agendi ülekoormamist. See kohustuslik väli on vaikimisi 100 vestlust tunnis.",
+ "INPUT_MAX": "Määra maksimaalne",
+ "DURATION": "Vestlused agendi kohta iga"
+ },
+ "INBOXES": {
+ "LABEL": "Lisatud postkastid",
+ "DESCRIPTION": "Lisa postkastid, millele see reegel kehtib.",
+ "ADD_BUTTON": "Lisa postkast",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Otsi ja vali postkastid lisamiseks",
+ "ADD_BUTTON": "Lisa"
+ },
+ "EMPTY_STATE": "Sellesse reeglisse pole postkaste lisatud, alusta postkastiga",
+ "API": {
+ "SUCCESS_MESSAGE": "Postkast lisati reeglile edukalt",
+ "ERROR_MESSAGE": "Postkasti lisamine reeglile ebaõnnestus"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Määramisreegel kustutati edukalt",
+ "ERROR_MESSAGE": "Määramisreegli kustutamine ebaõnnestus"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agendi mahutavus",
+ "CREATE_POLICY": "Uus reegel"
+ },
+ "CARD": {
+ "POPOVER": "Lisatud agendid",
+ "EDIT": "Muuda"
+ },
+ "NO_RECORDS_FOUND": "Agendi mahutavuse reegleid ei leitud"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Loo agendi mahutavuse reegel"
+ },
+ "CREATE_BUTTON": "Loo reegel",
+ "API": {
+ "SUCCESS_MESSAGE": "Agendi mahutavuse reegel loodud edukalt",
+ "ERROR_MESSAGE": "Agendi mahutavuse reegli loomine ebaõnnestus"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Muuda agendi mahutavuse reeglit"
+ },
+ "EDIT_BUTTON": "Uuenda reeglit",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Lisa agent",
+ "DESCRIPTION": "{agentName} on juba seotud teise reegliga. Kas oled kindel, et soovid selle siduda selle reegliga? See eemaldatakse teisest reeglist.",
+ "CONFIRM_BUTTON_LABEL": "Jätka",
+ "CANCEL_BUTTON_LABEL": "Tühista"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agendi mahutavuse reegel uuendati edukalt",
+ "ERROR_MESSAGE": "Agendi mahutavuse reegli uuendamine ebaõnnestus"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent lisati reeglile edukalt",
+ "ERROR_MESSAGE": "Agendi lisamine reeglile ebaõnnestus"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent eemaldati reeglist edukalt",
+ "ERROR_MESSAGE": "Agendi eemaldamine poliitikast ebaõnnestus"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Sissetuleku limiit lisatud edukalt",
+ "ERROR_MESSAGE": "Sissetuleku limiidi lisamine ebaõnnestus"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Sissetuleku limiit uuendatud edukalt",
+ "ERROR_MESSAGE": "Sissetuleku limiidi uuendamine ebaõnnestus"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Sissetuleku limiit kustutatud edukalt",
+ "ERROR_MESSAGE": "Sissetuleku limiidi kustutamine ebaõnnestus"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Poliitika nimi:",
+ "PLACEHOLDER": "Sisesta poliitika nimi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kirjeldus:",
+ "PLACEHOLDER": "Sisesta kirjeldus"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Sissetulevate sõnumite mahu piirangud",
+ "ADD_BUTTON": "Lisa postkast",
+ "FIELD": {
+ "SELECT_INBOX": "Vali postkast",
+ "MAX_CONVERSATIONS": "Maksimaalne vestluste arv",
+ "SET_LIMIT": "Sea piirang"
+ },
+ "EMPTY_STATE": "Piirangut pole seatud"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Väljaarvamise reeglid",
+ "DESCRIPTION": "Vestlused, mis vastavad järgmistele tingimustele, ei arvata agendi mahusse",
+ "TAGS": {
+ "LABEL": "Jäta välja vestlused, millel on kindlad sildid",
+ "ADD_TAG": "lisa silt",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Otsi ja vali lisatavad sildid"
+ },
+ "EMPTY_STATE": "Sellesse poliitikasse pole silte lisatud."
+ },
+ "DURATION": {
+ "LABEL": "Jäta välja vestlused, mis on vanemad kui määratud kestus",
+ "PLACEHOLDER": "Sea aeg"
+ }
+ },
+ "USERS": {
+ "LABEL": "Määratud agendid",
+ "DESCRIPTION": "Lisa agendid, kellele see poliitika kehtib.",
+ "ADD_BUTTON": "Lisa agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Otsi ja vali lisatavad agendid",
+ "ADD_BUTTON": "Lisa"
+ },
+ "EMPTY_STATE": "Agente pole lisatud",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent lisati poliitikasse edukalt",
+ "ERROR_MESSAGE": "Agendi lisamine poliitikasse ebaõnnestus"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agendi mahutavuse reegel kustutati edukalt",
+ "ERROR_MESSAGE": "Agendi mahutavuse reegli kustutamine ebaõnnestus"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Kustuta reegel",
+ "DESCRIPTION": "Kas oled kindel, et soovid selle reegli kustutada? Seda toimingut ei saa tagasi võtta.",
+ "CONFIRM_BUTTON_LABEL": "Kustuta",
+ "CANCEL_BUTTON_LABEL": "Tühista"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/signup.json b/app/javascript/dashboard/i18n/locale/et/signup.json
new file mode 100644
index 000000000..2814dc5cc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/signup.json
@@ -0,0 +1,57 @@
+{
+ "REGISTER": {
+ "TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
+ "TITLE": "Register",
+ "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
+ "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
+ "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "OAUTH": {
+ "GOOGLE_SIGNUP": "Sign up with Google"
+ },
+ "COMPANY_NAME": {
+ "LABEL": "Company name",
+ "PLACEHOLDER": "Enter your company name. E.g., Wayne Enterprises",
+ "ERROR": "Company name is too short."
+ },
+ "FULL_NAME": {
+ "LABEL": "Full name",
+ "PLACEHOLDER": "Enter your full name. E.g., Bruce Wayne",
+ "ERROR": "Full name is too short."
+ },
+ "EMAIL": {
+ "LABEL": "Work email",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "Please enter a valid work email address."
+ },
+ "PASSWORD": {
+ "LABEL": "Password",
+ "PLACEHOLDER": "Password",
+ "ERROR": "Password is too short.",
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
+ },
+ "CONFIRM_PASSWORD": {
+ "LABEL": "Confirm password",
+ "PLACEHOLDER": "Confirm password",
+ "ERROR": "Passwords do not match."
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Registration Successful",
+ "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ },
+ "SUBMIT": "Create account",
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Saada kinnituskiri uuesti",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/sla.json b/app/javascript/dashboard/i18n/locale/et/sla.json
new file mode 100644
index 000000000..9ab41fb82
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/sla.json
@@ -0,0 +1,117 @@
+{
+ "SLA": {
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "Fetching SLAs",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no SLAs available in this account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "SLA Name",
+ "PLACEHOLDER": "SLA Name",
+ "REQUIRED_ERROR": "SLA name is required",
+ "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
+ "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "SLA for premium customers"
+ },
+ "FIRST_RESPONSE_TIME": {
+ "LABEL": "First Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "NEXT_RESPONSE_TIME": {
+ "LABEL": "Next Response Time",
+ "PLACEHOLDER": "5"
+ },
+ "RESOLUTION_TIME": {
+ "LABEL": "Resolution Time",
+ "PLACEHOLDER": "60"
+ },
+ "BUSINESS_HOURS": {
+ "LABEL": "Business Hours",
+ "PLACEHOLDER": "Only during business hours"
+ },
+ "THRESHOLD_TIME": {
+ "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ },
+ "EDIT": "Edit",
+ "CREATE": "Create",
+ "DELETE": "Delete",
+ "CANCEL": "Cancel"
+ },
+ "ADD": {
+ "TITLE": "Add SLA",
+ "DESC": "Friendly promises for great service!",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA added successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete SLA",
+ "API": {
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
+ }
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/snooze.json b/app/javascript/dashboard/i18n/locale/et/snooze.json
new file mode 100644
index 000000000..2d9a876aa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "year",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/teamsSettings.json b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json
new file mode 100644
index 000000000..f3ce7f167
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/teamsSettings.json
@@ -0,0 +1,124 @@
+{
+ "TEAMS_SETTINGS": {
+ "NEW_TEAM": "Create new team",
+ "HEADER": "Teams",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
+ "LIST": {
+ "404": "There are no teams created on this account.",
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
+ },
+ "CREATE_FLOW": {
+ "CREATE": {
+ "TITLE": "Create a new team",
+ "DESC": "Add a title and description to your new team."
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Add agents to team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
+ },
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "EDIT_FLOW": {
+ "CREATE": {
+ "TITLE": "Edit your team details",
+ "DESC": "Edit title and description to your team.",
+ "BUTTON_TEXT": "Update team"
+ },
+ "AGENTS": {
+ "BUTTON_TEXT": "Update agents in team",
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
+ },
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
+ },
+ "TEAM_FORM": {
+ "ERROR_MESSAGE": "Couldn't save the team details. Try again."
+ },
+ "AGENTS": {
+ "AGENT": "Agent",
+ "EMAIL": "Email",
+ "BUTTON_TEXT": "Add agents",
+ "ADD_AGENTS": "Adding Agents to your Team...",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
+ },
+ "ADD": {
+ "TITLE": "Add agents to team - {teamName}",
+ "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
+ "SELECT": "select",
+ "SELECT_ALL": "select all agents",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
+ "BUTTON_TEXT": "Add agents",
+ "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ },
+ "FINISH": {
+ "TITLE": "Your team is ready!",
+ "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
+ "BUTTON_TEXT": "Finish"
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Team deleted successfully.",
+ "ERROR_MESSAGE": "Couldn't delete the team. Try again."
+ },
+ "CONFIRM": {
+ "TITLE": "Are you sure you want to delete the team?",
+ "PLACE_HOLDER": "Please type {teamName} to confirm",
+ "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
+ "YES": "Delete ",
+ "NO": "Cancel"
+ }
+ },
+ "SETTINGS": "Settings",
+ "FORM": {
+ "UPDATE": "Update team",
+ "CREATE": "Create team",
+ "NAME": {
+ "LABEL": "Team name",
+ "PLACEHOLDER": "Example: Sales, Customer Support"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Team Description",
+ "PLACEHOLDER": "Short description about this team."
+ },
+ "AUTO_ASSIGN": {
+ "LABEL": "Allow auto assign for this team."
+ },
+ "SUBMIT_CREATE": "Create team"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/webhooks.json b/app/javascript/dashboard/i18n/locale/et/webhooks.json
new file mode 100644
index 000000000..347c96893
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/webhooks.json
@@ -0,0 +1,5 @@
+{
+ "WEBHOOKS_SETTINGS": {
+ "HEADER": "Webhook Settings"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json
new file mode 100644
index 000000000..cf28312dc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/whatsappTemplates.json
@@ -0,0 +1,47 @@
+{
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/et/yearInReview.json b/app/javascript/dashboard/i18n/locale/et/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/et/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json
index 44d10cb48..c46bbac70 100644
--- a/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fa/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
- "TITLE": "فیلتر گفتگوها",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
+ "TITLE": "فیلتر گفتگو ها",
+ "SUBTITLE": "فیلترهای خود را در زیر اضافه کنید و روی «اعمال فیلترها» بزنید تا از شلوغی لیست بکاهید.",
"EDIT_CUSTOM_FILTER": "ویرایش فولدر",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
+ "CUSTOM_VIEWS_SUBTITLE": "فیلترها را اضافه یا حذف کنید و پوشه خود را به روز کنید.",
"ADD_NEW_FILTER": "افزودن فیلتر",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "FILTER_DELETE_ERROR": "اوه، به نظر می رسد ما نمی توانیم چیزی را ذخیره کنیم! لطفاً حداقل یک فیلتر برای ذخیره آن اضافه کنید.",
"SUBMIT_BUTTON_LABEL": "اعمال فیلترها",
"UPDATE_BUTTON_LABEL": "بروز رسانی فولدر",
"CANCEL_BUTTON_LABEL": "انصراف",
"CLEAR_BUTTON_LABEL": "پاک کردن فیلترها",
"FOLDER_LABEL": "نام فولدر",
- "FOLDER_QUERY_LABEL": "Folder Query",
+ "FOLDER_QUERY_LABEL": "کوئری پوشه",
"EMPTY_VALUE_ERROR": "مقدار الزامی است.",
- "TOOLTIP_LABEL": "فیلتر گفتگوها",
+ "TOOLTIP_LABEL": "فیلتر گفتگو ها",
"QUERY_DROPDOWN_LABELS": {
"AND": "و",
"OR": "یا"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "مساوی با",
"not_equal_to": "مساوی نیست با",
- "contains": "شامل",
"does_not_contain": "شامل نمیشود",
"is_present": "در حال حاضر وجود دارد",
"is_not_present": "در حال حاضر وجود ندارد",
"is_greater_than": "بزرگتر از",
"is_less_than": "کوچکتر از",
"days_before": "x روز قبل است",
- "starts_with": "شروع میشود با"
+ "starts_with": "شروع میشود با",
+ "equalTo": "مساوی با",
+ "notEqualTo": "مساوی نیست با",
+ "contains": "شامل",
+ "doesNotContain": "شامل نمیشود",
+ "isPresent": "در حال حاضر وجود دارد",
+ "isNotPresent": "در حال حاضر وجود ندارد",
+ "isGreaterThan": "بزرگتر از",
+ "isLessThan": "کوچکتر از",
+ "daysBefore": "x روز قبل است",
+ "startsWith": "شروع میشود با"
},
"ATTRIBUTE_LABELS": {
"TRUE": "درست",
@@ -39,7 +49,7 @@
"ASSIGNEE_NAME": "نام مسئول",
"INBOX_NAME": "نام صندوق ورودی",
"TEAM_NAME": "نام تیم",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
+ "CONVERSATION_IDENTIFIER": "شناسه گفتگو",
"CAMPAIGN_NAME": "نام کمپین",
"LABELS": "برچسبها",
"BROWSER_LANGUAGE": "مرور زبان",
@@ -54,6 +64,12 @@
"CREATED_AT": "ایجاد شده در",
"LAST_ACTIVITY": "آخرین فعالیت"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "مقدار الزامی است",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "فیلترهای استاندارد",
"ADDITIONAL_FILTERS": "فیلترهای اضافی",
@@ -61,9 +77,9 @@
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "آیا میخواهید این فیلتر را ذخیره کنید؟",
+ "TITLE": "آیا میخواهید این فیلتر را ذخیره کنید ؟",
"LABEL": "نام این فیلتر",
- "PLACEHOLDER": "Name your filter to refer it later.",
+ "PLACEHOLDER": "برای فیلتر خود یک نام انتخاب کنید تا بعدا بتوانید آن را پیدا کنید.",
"ERROR_MESSAGE": "نام الزامی است.",
"SAVE_BUTTON": "ذخیره فیلتر",
"CANCEL_BUTTON": "انصراف",
diff --git a/app/javascript/dashboard/i18n/locale/fa/agentBots.json b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
index 0ef9de594..f187d0cbd 100644
--- a/app/javascript/dashboard/i18n/locale/fa/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fa/agentBots.json
@@ -2,27 +2,20 @@
"AGENT_BOTS": {
"HEADER": "رباتها",
"LOADING_EDITOR": "در حال بارگیری ویرایشگر...",
- "HEADER_BTN_TXT": "افرودن پیکربندی ربات",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "نام ربات",
- "PLACEHOLDER": "برای ربات خود نامی انتخاب کنید.",
- "ERROR": "نام ربات الزامی است."
- },
- "DESCRIPTION": {
- "LABEL": "توضیحات ربات",
- "PLACEHOLDER": "این ربات چه کاری انجام میدهد؟"
- },
- "BOT_CONFIG": {
- "ERROR": "لطفا پیکربندی ربات CSML خود را در بالا وارد کنید.",
- "API_ERROR": "پیکربندی CSML شما نامعتبر است، لطفا آن را اصلاح کنید و دوباره امتحان کنید."
- },
- "SUBMIT": "اعتبارسنجی و ذخیره کنید"
+ "DESCRIPTION": "رباتهای عامل مانند شگفتانگیزترین اعضای تیم شما هستند. آنها میتوانند کارهای کوچک را انجام دهند، بنابراین شما میتوانید روی چیزهای مهم تمرکز کنید. آنها را امتحان کنید. میتوانید رباتهای خود را از این صفحه مدیریت کنید یا با استفاده از دکمه «افزودن ربات»، رباتهای جدیدی ایجاد کنید.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "GLOBAL_BOT": "ربات سیستمی",
+ "GLOBAL_BOT_BADGE": "سیستم",
+ "AVATAR": {
+ "SUCCESS_DELETE": "آواتار ربات با موفقیت حذف شد",
+ "ERROR_DELETE": "خطا هنگام حذف آواتار ربات، لطفا مجدد امتحان کنید"
},
"BOT_CONFIGURATION": {
"TITLE": "انتخاب یک ربات عامل",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "DESC": "یک ربات به صندوق ورودی خود اختصاص دهید. رباتها می توانند مکالمات اولیه را انجام دهند و در صورت لزوم آنها را به یک اپراتور منتقل کنند.",
"SUBMIT": "اعمال شود",
"DISCONNECT": "قطع ربات",
"SUCCESS_MESSAGE": "ربات عامل با موفقیت بهروز شد.",
@@ -32,7 +25,7 @@
"SELECT_PLACEHOLDER": "انتخاب ربات"
},
"ADD": {
- "TITLE": "پیکربندی ربات جدید",
+ "TITLE": "افزودن ربات",
"CANCEL_BUTTON_TEXT": "انصراف",
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت اضافه شد.",
@@ -40,16 +33,23 @@
}
},
"LIST": {
- "404": "هیچ روباتی یافت نشد، میتوانید با کلیک کردن روی دکمه «پیکربندی ربات جدید» یک ربات ایجاد کنید ↗",
+ "404": "هیچ رباتی یافت نشد. شما میتوانید با کلیک روی دکمه «افزودن ربات» یک ربات ایجاد کنید.",
"LOADING": "در حال گرفتن رباتها...",
- "TYPE": "نوع ربات"
+ "TABLE_HEADER": {
+ "DETAILS": "جزئیات ربات",
+ "URL": "آدرس URL وب هوک",
+ "ACTIONS": "عملیات"
+ }
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"TITLE": "حذف ربات",
- "SUBMIT": "حذف",
- "CANCEL_BUTTON_TEXT": "انصراف",
- "DESCRIPTION": "آیا مطمئن هستید که میخواهید این ربات را حذف کنید؟ این عمل برگشتناپذیر است.",
+ "CONFIRM": {
+ "TITLE": "تاییدیه حذف",
+ "MESSAGE": "آیا مطمئنید که میخواهید {name} را حذف کنید؟",
+ "YES": "بله، حذف شود",
+ "NO": "نه، بماند"
+ },
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت حذف شد.",
"ERROR_MESSAGE": "ربات حذف نشد، لطفا دوباره امتحان کنید."
@@ -57,17 +57,61 @@
},
"EDIT": {
"BUTTON_TEXT": "ویرایش",
- "LOADING": "در حال گرفتن رباتها...",
"TITLE": "ویرایش ربات",
- "CANCEL_BUTTON_TEXT": "انصراف",
"API": {
"SUCCESS_MESSAGE": "ربات با موفقیت بهروز شد.",
"ERROR_MESSAGE": "ربات بروز رسانی نشد، لطفا دوباره امتحان کنید."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "توکن دسترسی",
+ "DESCRIPTION": "توکن دسترسی را کپی کرده و در جای امن ذخیره کنید",
+ "COPY_SUCCESSFUL": "توکن دسترسی در کلیپبورد کپی شد",
+ "RESET_SUCCESS": "توکن دسترسی با موفقیت بازسازی شد",
+ "RESET_ERROR": "خطا در بازسازی توکن دسترسی. لطفا مجدد امتحان کنید"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "آواتار ربات"
+ },
+ "NAME": {
+ "LABEL": "نام ربات",
+ "PLACEHOLDER": "نام ربات را وارد کنید",
+ "REQUIRED": "نام ربات الزامی است"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "این ربات چه کاری انجام میدهد؟"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "آدرس URL وب هوک",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "URL وبهوک الزامی است"
+ },
+ "ERRORS": {
+ "NAME": "نام ربات الزامی است",
+ "URL": "URL وبهوک الزامی است",
+ "VALID_URL": "لطفا یک URL معتبر که با http:// یا https:// شروع میشود وارد کنید"
+ },
+ "CANCEL": "انصراف",
+ "CREATE": "ایجاد ربات",
+ "UPDATE": "بهروزرسانی ربات"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "یک ربات وبهوک برای ادغام با سرویسهای سفارشیتان پیکربندی کنید. این ربات رویدادها را از مکالمات دریافت کرده و پردازش میکند و میتواند به آنها پاسخ دهد."
+ },
"TYPES": {
- "WEBHOOK": "وبهوک ربات",
- "CSML": "ربات CSML"
+ "WEBHOOK": "وبهوک ربات"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
index 0e6123c7a..4648078ec 100644
--- a/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "ایجنت ها",
"HEADER_BTN_TXT": "اضافه کردن ایجنت",
"LOADING": "دریافت لیست ایجنت ها",
- "SIDEBAR_TXT": "ایجنت ها
\n یک ایجنت یکی از اعضای تیم پشتیبانی است.
ایجنت ها میتوانند پیامهای کاربران را ببینند و به آنها پاسخ بدهند. این لیست حاوی تمام اپراتورهایی است که در حساب شما تعریف شده اند.
با زدن روی دکمه اضافه کردن اپراتور میتوانید یک اپراتور جدید معرفی کنید. به ایمیل اپراتوری که معرفی میکنید یک دعوتنامه ارسال میشود که بعد از پذیرفتن آن ایجنت میتواند به پیامهای کاربران پاسخ بدهد.
بسته به سطح دسترسی تعیین شده یک اپراتور میتواند به بخشهای مشخصی از اکانت دسترسی پیدا کند
اپراتور - اپراتورهایی که این نقش را داشته باشند تنها میتوانند به صندوقهای ورودی، گزارشات و گفتگوها دسترسی داشته باشند. آنها میتوانند یک مکالمه را به اپراتور دیگر یا خودشان تخصیص دهند و یا یک مکالمه را حل شده اعلام کنند.
مدیر - مدیران میتوانند علاوه بر تمام بخشهایی که یک اپراتور دسترسی دارد، به تمام بخشهایی که در حساب کاربری شما وجود دارد دسترسی داشته باشند.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "مدیرکل",
"AGENT": "ایجنت"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "در حال حاضر هیچ ایجنتی برای این حساب معرفی نشده است",
"TITLE": "مدیریت ایجنت ها",
@@ -17,7 +19,8 @@
"STATUS": "وضعیت",
"ACTIONS": "عملیات",
"VERIFIED": "تایید شده",
- "VERIFICATION_PENDING": "در انتظار تایید"
+ "VERIFICATION_PENDING": "در انتظار تایید",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "اضافه کردن ایجنت به تیم",
@@ -75,9 +78,9 @@
"PLACEHOLDER": "لطفا ایمیل اپراتور را وارد کنید"
},
"AGENT_AVAILABILITY": {
- "LABEL": "در دسترس",
- "PLACEHOLDER": "لطفا یک وضعیت در دسترس بودن را انتخاب کنید",
- "ERROR": "در دسترس بودن الزامی است"
+ "LABEL": "دسترسی",
+ "PLACEHOLDER": "لطفا یک وضعیت دسترسی را انتخاب کنید",
+ "ERROR": "دسترسی الزامی است"
},
"SUBMIT": "تغییر ایجنت"
},
@@ -94,15 +97,20 @@
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
}
},
+ "SEARCH_PLACEHOLDER": "جستجوی اپراتور...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "نتیجهای یافت نشد."
},
"MULTI_SELECTOR": {
"PLACEHOLDER": "هیچکدام",
"TITLE": {
- "AGENT": "انتخاب ایجنت",
+ "AGENT": "انتخاب اپراتور",
"TEAM": "انتخاب تیم"
},
+ "LIST": {
+ "NONE": "هیچکدام"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "اپراتوری یافت نشد",
@@ -111,7 +119,7 @@
"PLACEHOLDER": {
"AGENT": "جستجوی اپراتور",
"TEAM": "جستجوی تیم",
- "INPUT": "جستجوی اپراتور"
+ "INPUT": "جستجوی اپراتورها"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
index 8346ae40e..151016a24 100644
--- a/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "ویژگیهای سفارشی",
"HEADER_BTN_TXT": "اضافه کردن ویژگی سفارشی",
"LOADING": "واکشی ویژگیهای سفارشی",
- "SIDEBAR_TXT": "ویژگیهای سفارشی
یک ویژگی سفارشی اطلاعات مربوط به مخاطبین یا گفتگو شما را ردیابی میکند — مانند طرحهای اشتراکی یا زمانی که اولین مورد را سفارش دادهاند و غیره.
برای ایجاد ویژگیهای سفارشی، فقط روی افزودن ویژگی سفارشی. کلیک کنید. همچنین میتوانید با کلیک روی دکمه ویرایش یا حذف، یک ویژگی سفارشی موجود را ویرایش یا حذف کنید.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "جستجو ویژگی ها...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "گفتگو",
+ "CONTACT": "مخاطب",
+ "COMPANY": "شرکت"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "متن",
+ "NUMBER": "شماره",
+ "LINK": "پیوند",
+ "DATE": "Date",
+ "LIST": "فهرست",
+ "CHECKBOX": "چک باکس"
+ },
"ADD": {
"TITLE": "اضافه کردن ویژگی سفارشی",
"SUBMIT": "ايجاد كردن",
@@ -41,15 +58,19 @@
"IN_VALID": "کلید نامعتبر"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "الگوی رجکس",
+ "PLACEHOLDER": "لطفا الگوی رجکس ویژگی سفارشی را وارد کنید. (اختباری)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "لطفا توضیحات مربوط به الگوری رجکس را وارد کنید. (اختیاری)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "فعال سازی بررسی رجکس"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "ویژگی سفارشی حذف نشد. دوباره امتحان کنید."
},
"CONFIRM": {
- "TITLE": "آیا مطمئن هستید که می خواهید حذف کنید - %{attributeName}",
+ "TITLE": "آیا مطمئن هستید که می خواهید حذف کنید - {attributeName}",
"PLACE_HOLDER": "برای تایید لطفا {attributeName} را تایپ کنید",
"MESSAGE": "با حذف ویژگی، ویژگی سفارشی به طور کامل حذف میشود",
"YES": "حذف ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "ویژگیهای سفارشی",
"CONVERSATION": "گفتگو",
- "CONTACT": "مخاطب"
+ "CONTACT": "مخاطب",
+ "COMPANY": "شرکت"
},
"LIST": {
- "TABLE_HEADER": [
- "نام",
- "توضیحات",
- "نوع",
- "کلید"
- ],
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "DESCRIPTION": "توضیحات",
+ "TYPE": "نوع",
+ "KEY": "کلید"
+ },
"BUTTONS": {
"EDIT": "ویرایش",
"DELETE": "حذف"
@@ -106,16 +128,20 @@
"NOT_FOUND": "هیچ ویژگی سفارشی پیکربندی نشده است"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "الگوی رجکس",
+ "PLACEHOLDER": "لطفا الگوی رجکس ویژگی سفارشی را وارد کنید. (اختباری)"
},
"REGEX_CUE": {
"LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "PLACEHOLDER": "لطفا توضیحات مربوط به الگوری رجکس را وارد کنید. (اختیاری)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "فعال سازی بررسی رجکس"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/auditLogs.json b/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
index 1a4612607..0b3f78a44 100644
--- a/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fa/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "گزارش های حسابرسی",
"HEADER_BTN_TXT": "اضافه کردن گزارش های حسابرسی",
"LOADING": "واکشی گزارش های حسابرسی",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "هیچ آیتمی با این مشخصات یافت نشد",
"SIDEBAR_TXT": "گزارشهای حسابرسی
گزارشهای حسابرسی مسیرهایی برای رویدادها و اقدامات در یک سیستم Chatwoot هستند.
",
"LIST": {
"404": "هیچ گزارش حسابرسی در این حساب موجود نیست.",
"TITLE": "مدیریت گزارش های حسابرسی",
"DESC": "گزارش های حسابرسی مسیرهایی برای رویدادها و اقدامات در یک سیستم چت ووت هستند.",
- "TABLE_HEADER": [
- "کاربر",
- "اقدام",
- "آدرس آیپی"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "کاربر",
+ "TIME": "اقدام",
+ "IP_ADDRESS": "آدرس آیپی"
+ }
},
"API": {
"SUCCESS_MESSAGE": "گزارش های حسابرسی با موفقیت بازیابی شد",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "سیستم",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} از {invitee} دعوت کرد به عنوان {role} به سیستم اضافه شود",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} مقدار {attributes} را به {values} تغییر داد",
+ "OTHER": "{agentName} مقدار {attributes} مربوط به {user} را به {values} تغییر داد",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} وارد شد",
+ "SIGN_OUT": "{agentName} خارج شد"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 a06342c6d..7d4f2b663 100644
--- a/app/javascript/dashboard/i18n/locale/fa/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "اتوماسیون ها",
- "HEADER_BTN_TXT": "افزودن قانون خودکارسازی",
+ "HEADER": "خودکارسازی",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "واکشی قوانین اتوماسیون",
- "SIDEBAR_TXT": "قوانین خودکارسازی
اتوماسیون میتواند جایگزین و خودکار فرآیندهای موجودی باشد که نیاز به تلاش دستی دارند. شما می توانید بسیاری از کارها را با اتوماسیون انجام دهید، از جمله افزودن برچسب ها و اختصاص مکالمه به بهترین نماینده. بنابراین تیم روی کارهایی که به بهترین شکل انجام میدهند تمرکز میکنند و زمان کمی را برای کارهای دستی صرف میکنند.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "افزودن قانون خودکارسازی",
"SUBMIT": "ايجاد كردن",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "نام",
- "توضیحات",
- "فعال",
- "ایجاد شده در"
- ],
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "ACTIVE": "فعال",
+ "CREATED_ON": "ایجاد شده در",
+ "ACTIONS": "عملیات"
+ },
"404": "هیچ قانون اتوماسیون یافت نشد"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "برای ذخیره باید حداقل یک اکشن داشته باشید",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "پیام خود را اینجا وارد کنید",
- "TEAM_DROPDOWN_PLACEHOLDER": "انتخاب تیمها"
+ "TEAM_DROPDOWN_PLACEHOLDER": "انتخاب تیمها",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "فعال کردن قانون اتوماسیون",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "در حال بارگذاری...",
"LABEL_UPLOADED": "با موفقیت آپلود شد",
"LABEL_UPLOAD_FAILED": "بارگذاری انجام نشد"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "مقدار الزامی است",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "هیچکدام",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "گفتگو ایجاد شد",
+ "CONVERSATION_UPDATED": "گفتگو به روز شد",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "تغییر اولویت",
+ "ADD_SLA": "اضافه کردن SLA",
+ "OPEN_CONVERSATION": "باز کردن گفتگو",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "هیچکدام",
+ "LOW": "پایین",
+ "MEDIUM": "متوسط",
+ "HIGH": "بالا",
+ "URGENT": "فوری"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "یادداشت خصوصی",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "ایمیل",
+ "INBOX": "صندوق ورودی",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "شماره تلفن",
+ "STATUS": "وضعیت",
+ "BROWSER_LANGUAGE": "مرور زبان",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "کشور",
+ "COMPANY_NAME": "شرکت",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "مسئول",
+ "TEAM_NAME": "تیم",
+ "PRIORITY": "اولویت",
+ "LABELS": "برچسبها"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
index 42b887e3c..deaf2245d 100644
--- a/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fa/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} گفتگو انتخاب شده است",
- "AGENT_SELECT_LABEL": "انتخاب ایجنت",
- "ASSIGN_CONFIRMATION_LABEL": "آیا مطمئن هستید که به %{conversationCount} %{conversationLabel} اختصاص میدهید",
- "UNASSIGN_CONFIRMATION_LABEL": "آیا مطمئنید که %{conversationCount} %{conversationLabel} را میخواهید اختصاص را لغو کنید؟",
- "GO_BACK_LABEL": "بازگشت",
- "ASSIGN_LABEL": "اختصاص دادن",
+ "CONVERSATIONS_SELECTED": "{conversationCount} گفتگو انتخاب شده است",
+ "NONE": "هیچکدام",
+ "CLEAR_SELECTION": "پاک کردن",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "بله",
- "ASSIGN_AGENT_TOOLTIP": "ایجنت را تعیین کنید",
+ "CANCEL": "انصراف",
+ "SEARCH_INPUT_PLACEHOLDER": "جستجو",
+ "ASSIGN_AGENT_TOOLTIP": "اپراتور را تعیین کنید",
"ASSIGN_TEAM_TOOLTIP": "تیم را تعیین کنید",
"ASSIGN_SUCCESFUL": "گفتگو با موفقیت اختصاص داده شده.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "ASSIGN_FAILED": "گفتگو اختصاص داده نشد، لطفا دوباره امتحان کنید.",
"RESOLVE_SUCCESFUL": "گفتگو با موفقیت حل شد.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "RESOLVE_FAILED": "گفتگو حل نشد، لطفا دوباره امتحان کنید.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "گفتگوهای قابل مشاهده در این صفحه فقط انتخاب میشوند.",
- "AGENT_LIST_LOADING": "بارگذاری ایجنت ها",
"UPDATE": {
"CHANGE_STATUS": "تغییر وضعیت",
- "SNOOZE_UNTIL_NEXT_REPLY": "تا پاسخ بعدی به تعویق بیافتد.",
+ "SNOOZE_UNTIL": "به تعویق انداختن",
"UPDATE_SUCCESFUL": "وضعیت گفتگو با موفقیت به روز شد.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "UPDATE_FAILED": "گفتگوها به روز نشدند، لطفا دوباره امتحان کنید."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "هیچ برچسبی یافت نشد برای",
+ "ASSIGN_LABELS": "برچسب اختصاص دهید",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "اختصاص برچسبهای انتخاب شده",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "برچسبها با موفقیت اختصاص یافتند.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "اختصاص برچسب به صورت موفق انجام نشد، لطفا دوباره امتحان کنید.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "انتخاب تیم",
"NONE": "هیچکدام",
- "NO_TEAMS_AVAILABLE": "هنوز هیچ تیمی به این حساب کاربری اضافه نشده است.",
- "ASSIGN_SELECTED_TEAMS": "اختصاص تیم انتخاب شده.",
- "ASSIGN_SUCCESFUL": "تیمها با موفقیت اختصاص یافتند.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
+ "ASSIGN_FAILED": "اختصاص تیم با موفقیت انجام نشد، لطفا دوباره امتحان کنید."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/campaign.json b/app/javascript/dashboard/i18n/locale/fa/campaign.json
index f50d0d6cb..f4a2fab90 100644
--- a/app/javascript/dashboard/i18n/locale/fa/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/fa/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "کمپین ها",
- "SIDEBAR_TXT": "پیام های فعال به مشتری اجازه می دهد تا پیام های خروجی را برای مخاطبین خود ارسال کند که باعث ایجاد مکالمات بیشتر می شود. برای ایجاد یک کمپین جدید ، روی افزودن کمپین کلیک کنید. همچنین می توانید با کلیک روی دکمه ویرایش یا حذف ، کمپین موجود را ویرایش یا حذف کنید.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "ایجاد کمپین یکبار مصرف",
- "ONGOING": "یک کمپین مداوم ایجاد کنید"
- },
- "ADD": {
- "TITLE": "یک کمپین ایجاد کنید",
- "DESC": "پیام های فعال به مشتری اجازه می دهد تا پیام های خروجی را برای مخاطبین خود ارسال کند که باعث ایجاد مکالمات بیشتر می شود.",
- "CANCEL_BUTTON_TEXT": "انصراف",
- "CREATE_BUTTON_TEXT": "ايجاد كردن",
- "FORM": {
- "TITLE": {
- "LABEL": "عنوان",
- "PLACEHOLDER": "لطفا عنوان کمپین را وارد کنید",
- "ERROR": "عنوان الزامی است"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "فعال شد",
+ "DISABLED": "غیرفعال شد"
},
- "SCHEDULED_AT": {
- "LABEL": "زمان برنامه ریزی شده",
- "PLACEHOLDER": "لطفاً زمان را انتخاب کنید",
- "CONFIRM": "تایید",
- "ERROR": "زمان برنامه ریزی شده الزامی است"
- },
- "AUDIENCE": {
- "LABEL": "شنودگان",
- "PLACEHOLDER": "برچسب های مشتری را انتخاب کنید",
- "ERROR": "شنودگان ضروری است"
- },
- "INBOX": {
- "LABEL": "انتخاب صندوق ورودی",
- "PLACEHOLDER": "انتخاب صندوق ورودی",
- "ERROR": "صندوق ورودی مورد نیاز است"
- },
- "MESSAGE": {
- "LABEL": "پیام",
- "PLACEHOLDER": "لطفاً پیام کمپین را وارد کنید",
- "ERROR": "پیام الزامی است"
- },
- "SENT_BY": {
- "LABEL": "ارسال شده توسط",
- "PLACEHOLDER": "لطفاً محتوای کمپین را انتخاب کنید",
- "ERROR": "ارسال کننده الزامی است"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "لطفاً URL را وارد کنید",
- "ERROR": "لطفا آدرس URL صحیحی وارد کنید"
- },
- "TIME_ON_PAGE": {
- "LABEL": "زمان در صفحه (ثانیه ها)",
- "PLACEHOLDER": "لطفاً زمان را وارد کنید",
- "ERROR": "زمان حضور در صفحه لازم است"
- },
- "ENABLED": "فعال کردن کمپین",
- "TRIGGER_ONLY_BUSINESS_HOURS": "تنها در طول ساعات کاری",
- "SUBMIT": "افزودن کمپین"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "ارسال شده توسط",
+ "BOT": "ربات",
+ "FROM": "از",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "کمپین با موفقیت ایجاد شد",
- "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "انصراف",
+ "CREATE_BUTTON_TEXT": "ايجاد كردن",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "عنوان",
+ "PLACEHOLDER": "لطفا عنوان کمپین را وارد کنید",
+ "ERROR": "عنوان الزامی است"
+ },
+ "MESSAGE": {
+ "LABEL": "پیام",
+ "PLACEHOLDER": "لطفاً پیام کمپین را وارد کنید",
+ "ERROR": "پیام الزامی است"
+ },
+ "INBOX": {
+ "LABEL": "انتخاب صندوق ورودی",
+ "PLACEHOLDER": "انتخاب صندوق ورودی",
+ "ERROR": "صندوق ورودی مورد نیاز است"
+ },
+ "SENT_BY": {
+ "LABEL": "ارسال شده توسط",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "ارسال کننده الزامی است"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "لطفاً URL را وارد کنید",
+ "ERROR": "لطفا آدرس URL صحیحی وارد کنید"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "زمان در صفحه (ثانیه ها)",
+ "PLACEHOLDER": "لطفاً زمان را وارد کنید",
+ "ERROR": "زمان حضور در صفحه لازم است"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "فعال کردن کمپین",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "تنها در طول ساعات کاری"
+ },
+ "BUTTONS": {
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "حذف",
- "CONFIRM": {
- "TITLE": "تاییدیه حذف",
- "MESSAGE": "مطمئن هستید که حذف شود?",
- "YES": "بله، حذف شود ",
- "NO": "نه، بماند "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "تکمیل شد",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "انصراف",
+ "CREATE_BUTTON_TEXT": "ايجاد كردن",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "عنوان",
+ "PLACEHOLDER": "لطفا عنوان کمپین را وارد کنید",
+ "ERROR": "عنوان الزامی است"
+ },
+ "MESSAGE": {
+ "LABEL": "پیام",
+ "PLACEHOLDER": "لطفاً پیام کمپین را وارد کنید",
+ "ERROR": "پیام الزامی است"
+ },
+ "INBOX": {
+ "LABEL": "انتخاب صندوق ورودی",
+ "PLACEHOLDER": "انتخاب صندوق ورودی",
+ "ERROR": "صندوق ورودی مورد نیاز است"
+ },
+ "AUDIENCE": {
+ "LABEL": "شنودگان",
+ "PLACEHOLDER": "برچسب های مشتری را انتخاب کنید",
+ "ERROR": "شنودگان ضروری است"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "زمان برنامه ریزی شده",
+ "PLACEHOLDER": "لطفاً زمان را انتخاب کنید",
+ "ERROR": "زمان برنامه ریزی شده الزامی است"
+ },
+ "BUTTONS": {
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "تکمیل شد",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "انصراف",
+ "CREATE_BUTTON_TEXT": "ايجاد كردن",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "عنوان",
+ "PLACEHOLDER": "لطفا عنوان کمپین را وارد کنید",
+ "ERROR": "عنوان الزامی است"
+ },
+ "INBOX": {
+ "LABEL": "انتخاب صندوق ورودی",
+ "PLACEHOLDER": "انتخاب صندوق ورودی",
+ "ERROR": "صندوق ورودی مورد نیاز است"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "فرآیند {templateName}",
+ "LANGUAGE": "زبان",
+ "CATEGORY": "دستهبندی",
+ "VARIABLES_LABEL": "متغیرها",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "شنودگان",
+ "PLACEHOLDER": "برچسب های مشتری را انتخاب کنید",
+ "ERROR": "شنودگان ضروری است"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "زمان برنامه ریزی شده",
+ "PLACEHOLDER": "لطفاً زمان را انتخاب کنید",
+ "ERROR": "زمان برنامه ریزی شده الزامی است"
+ },
+ "BUTTONS": {
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "مطمئن هستید که حذف شود?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "حذف",
"API": {
"SUCCESS_MESSAGE": "کمپین با موفقیت حذف شد",
- "ERROR_MESSAGE": "کمپین حذف نشد. لطفا بعداً دوباره امتحان کنید."
+ "ERROR_MESSAGE": "یک خطای وجود دارد. لطفا دوباره تلاش کنید."
}
- },
- "EDIT": {
- "TITLE": "ویرایش کمپین",
- "UPDATE_BUTTON_TEXT": "اعمال شود",
- "API": {
- "SUCCESS_MESSAGE": "کمپین با موفقیت به روز شد",
- "ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "در حال بارگیری کمپین ها...",
- "404": "هیچ کمپینی برای این صندوق ورودی ایجاد نشده است.",
- "TABLE_HEADER": {
- "TITLE": "عنوان",
- "MESSAGE": "پیام",
- "INBOX": "صندوق ورودی",
- "STATUS": "وضعیت",
- "SENDER": "فرستنده",
- "URL": "URL",
- "SCHEDULED_AT": "زمان برنامه ریزی شده",
- "TIME_ON_PAGE": "زمان (ثانیه)",
- "CREATED_AT": "ایجاد شده در"
- },
- "BUTTONS": {
- "ADD": "افزودن",
- "EDIT": "ویرایش",
- "DELETE": "حذف"
- },
- "STATUS": {
- "ENABLED": "فعال",
- "DISABLED": "غیرفعال",
- "COMPLETED": "تکمیل شد",
- "ACTIVE": "فعال"
- },
- "SENDER": {
- "BOT": "ربات"
- }
- },
- "ONE_OFF": {
- "HEADER": "کمپین های یکبار مصرف",
- "404": "هیچ کمپینی یکبار مصرفی ایجاد نشده است",
- "INBOXES_NOT_FOUND": "لطفاً صندوق ورودی پیامک ایجاد کنید و کمپین ها را اضافه کنید"
- },
- "ONGOING": {
- "HEADER": "کمپین های مداوم",
- "404": "هیچ کمپینی ایجاد نشده است",
- "INBOXES_NOT_FOUND": "لطفا صندوق ورودی وب سایت ایجاد کنید و کمپین ها را اضافه کنید"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
index 3a689a72e..9622033e1 100644
--- a/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "پاسخهای آماده",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "اضافه کردن پاسخ آماده",
+ "LOADING": "دریافت پاسخهای آماده...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "هیچ گزینهای با این شرایط پیدا نشد.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "هیچ پاسخ آمادهای برای این حساب تعریف نشده است",
"TITLE": "مدیریت پاسخهای آماده",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "محتوا",
- "عملیات"
- ]
+ "DESC": "پاسخهای آماده قالبهای متنی پیش آمادهای هستند که برای پاسخگویی سریع به یک گفتگو میتوانند مفید واقع شوند.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "کد کوتاه",
+ "CONTENT": "محتوا",
+ "ACTIONS": "عملیات"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "اضافه کردن پاسخ آماده",
+ "DESC": "پاسخهای آماده قالبهای متنی پیش آمادهای هستند که برای پاسخگویی سریع به یک گفتگو میتوانند مفید واقع شوند.",
"CANCEL_BUTTON_TEXT": "انصراف",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "کد کوتاه",
+ "PLACEHOLDER": "لطفا یک کد کوتاه وارد کنید.",
+ "ERROR": "وجود کد کوتاه ضروری است."
},
"CONTENT": {
"LABEL": "پیام",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "لطفاً پیامی را که میخواهید به عنوان الگو استفاده کنید، ذخیره کنید تا بعداً از آن استفاده کنید.",
+ "ERROR": "پیام الزامی است."
},
"SUBMIT": "ثبت"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "پاسخ آماده با موفقیت ثبت شد.",
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "ویرایش پاسخ آماده",
"CANCEL_BUTTON_TEXT": "انصراف",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "کد کوتاه",
+ "PLACEHOLDER": "لطفا یک کد کوتاه وارد کنید.",
+ "ERROR": "وجود کد کوتاه ضروری است."
},
"CONTENT": {
"LABEL": "پیام",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "PLACEHOLDER": "لطفاً پیامی را که میخواهید به عنوان الگو استفاده کنید، ذخیره کنید تا بعداً از آن استفاده کنید.",
"ERROR": "پیام الزامی است."
},
"SUBMIT": "ثبت"
},
"BUTTON_TEXT": "ویرایش",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "پاسخ آماده با موفقیت ویرایش شد.",
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
}
},
"DELETE": {
"BUTTON_TEXT": "حذف",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "پاسخ آماده با موفقیت حذف شد.",
"ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
},
"CONFIRM": {
"TITLE": "تاییدیه حذف",
"MESSAGE": "مطمئن هستید حذف شود؟ ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "بله، حذف شود ",
+ "NO": "خیر، نگهدار "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/chatlist.json b/app/javascript/dashboard/i18n/locale/fa/chatlist.json
index a8efc1609..b590b604c 100644
--- a/app/javascript/dashboard/i18n/locale/fa/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fa/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "هیچ گفتگوی فعالی در این گروه نیست."
},
+ "FAILED_TO_SEND": "ارسال با خطا مواجه شد",
"TAB_HEADING": "گفتگوها",
"MENTION_HEADING": "اشاره",
"UNATTENDED_HEADING": "بی سرپرست",
@@ -53,28 +54,31 @@
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "آخرین فعالیت: قدیمی ترین اول"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "آخرین فعالیت: جدید ترین اول"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "زمان ایجاد: جدیدترین اول"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "زمان ایجاد: قدیمی ترین اول"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "اولویت: بالاترین اول"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "اولویت: پایین ترین اول"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "در انتظار پاسخ: بیشترین اول"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "در انتظار پاسخ: کمترین اول"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "مکان"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "یک آدرس URL به اشتراک گذاشته شده"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "هیچ محتوایی موجود نیست",
"HIDE_QUOTED_TEXT": "مخفی کردن متن نقل قول شده",
"SHOW_QUOTED_TEXT": "نمایش متن نقل قول",
- "MESSAGE_READ": "خوانده شده"
+ "MESSAGE_READ": "خوانده شده",
+ "SENDING": "در حال ارسال",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/companies.json b/app/javascript/dashboard/i18n/locale/fa/companies.json
new file mode 100644
index 000000000..91b7f1fad
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "شرکت ها",
+ "SORT_BY": {
+ "LABEL": "مرتبسازی براساس",
+ "OPTIONS": {
+ "NAME": "نام",
+ "DOMAIN": "دامنه",
+ "CREATED_AT": "ایجاد شده در",
+ "LAST_ACTIVITY_AT": "آخرین فعالیت",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "ترتیب",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "جستجوی شرکت ها...",
+ "LOADING": "در حال بارگزاری شرکت ها...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} تماس | {n} تماس ها",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "ویژگی ها",
+ "CONTACTS": "مخاطبین",
+ "HISTORY": "History",
+ "NOTES": "یادداشتها"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "جستجو ویژگی ها...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "در حال بارگذاری مخاطبین...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "جستجوی مخاطبین...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "هیچ مخاطبی پیدا نشد.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "شرکت",
+ "CONTACT_LABEL": "مخاطب",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "انصراف"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "نام",
+ "DOMAIN": "دامنه"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/components.json b/app/javascript/dashboard/i18n/locale/fa/components.json
new file mode 100644
index 000000000..2681c35a3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "نتیجهای یافت نشد.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} بیشتر"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "نتیجهای یافت نشد.",
+ "SEARCHING": "در حال جستجو..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "انصراف",
+ "CONFIRM": "تایید"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "جستجوی کشور",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "لطفاً یک کد شماره گیری را از لیست انتخاب کنید"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "نویسنده در دسترس نیست"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "بیشتر بدانید",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/contact.json b/app/javascript/dashboard/i18n/locale/fa/contact.json
index 71b675464..57e6c5488 100644
--- a/app/javascript/dashboard/i18n/locale/fa/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fa/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "آدرس آیپی",
"CREATED_AT_LABEL": "ایجاد شده",
"NEW_MESSAGE": "پیام جدید",
+ "CALL": "تماس",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "این اولین گفتگوی این کاربر است.",
"TITLE": "گفتگوهای قبلی"
@@ -39,16 +48,17 @@
},
"MERGE_CONTACT": "ادغام مخاطبین",
"CONTACT_ACTIONS": "اقدامات مخاطب",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "مسدود کردن مخاطب",
+ "UNMUTE_CONTACT": "رفع مسدود کردن مخاطب",
+ "MUTED_SUCCESS": "مخاطب با موفقیت مسدود شد. گفتگوهای بعدی به شما اطلاع داده نخواهد شد.",
+ "UNMUTED_SUCCESS": "مخاطب با موفقیت رفع نسداد شد.",
"SEND_TRANSCRIPT": "ارسال رونوشت",
"EDIT_LABEL": "ویرایش",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "ویژگیهای سفارشی",
"CONTACT_LABELS": "تماس با برچسب ها",
- "PREVIOUS_CONVERSATIONS": "گفتگوهای قبلی"
+ "PREVIOUS_CONVERSATIONS": "گفتگوهای قبلی",
+ "NO_RECORDS_FOUND": "هیچ ویژگی یافت نشد"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "ویرایش مخاطب",
"DESC": "ویرایش اطلاعات مخاطب"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "مخاطب جدید",
- "TITLE": "ایجاد مخاطب جدید",
- "DESC": "اطلاعات اولیه درباره مخاطب را اضافه کنید."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "تزریق کردن",
- "TITLE": "تزریق مخاطبین",
- "DESC": "مخاطبین را از طریق یک فایل CSV وارد کنید.",
- "DOWNLOAD_LABEL": "نمونه csv را بارگیری کنید.",
- "FORM": {
- "LABEL": "پرونده CSV",
- "SUBMIT": "تزریق کردن",
- "CANCEL": "انصراف"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "خروجی گرفتن",
- "TITLE": "خروجی گرفتن مخاطب ها",
- "DESC": "خروجی گرفتن مخاطب ها از طریق CSV",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید",
- "CONFIRM": {
- "TITLE": "خروجی گرفتن مخاطب ها",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "تاییدیه حذف",
- "MESSAGE": "آیا مطمئن هستید که می خواهید این یادداشت را حذف کنید؟",
- "YES": "بله، حذف شود ",
- "NO": "خیر، بماند"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "حذف مخاطب",
"TITLE": "حذف مخاطب",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "مخاطبین",
- "FIELDS": "برچسب های تماس",
- "SEARCH_BUTTON": "جستجو",
- "SEARCH_INPUT_PLACEHOLDER": "جستجوی مخاطبین",
- "FILTER_CONTACTS": "فیلتر",
- "FILTER_CONTACTS_SAVE": "ذخیره فیلتر",
- "FILTER_CONTACTS_DELETE": "حذف فیلتر",
- "FILTER_CONTACTS_EDIT": "ویرایش بخش",
"LIST": {
- "LOADING_MESSAGE": "در حال بارگذاری مخاطبین...",
- "404": "هیچ مخاطبی با جستجوی شما مطابقت ندارد 🔍",
- "NO_CONTACTS": "هیچ مخاطبی در دسترس نیست",
"TABLE_HEADER": {
- "NAME": "نام",
- "PHONE_NUMBER": "شماره تلفن",
- "CONVERSATIONS": "گفتگوها",
- "LAST_ACTIVITY": "آخرین فعالیت",
- "CREATED_AT": "ایجاد شده در",
- "COUNTRY": "کشور",
- "CITY": "شهر",
- "SOCIAL_PROFILES": "پروفایلهای شبکههای اجتماعی",
- "COMPANY": "شرکت",
- "EMAIL_ADDRESS": "ایمیل"
- },
- "VIEW_DETAILS": "مشاهده جزئیات"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "مخاطبین",
- "LOADING": "بارگیری مشخصات مخاطب ..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "افزودن",
- "TITLE": "برای ایجاد کار Shift + Enter را فشار دهید"
- },
- "FOOTER": {
- "DUE_DATE": "تاریخ سررسید",
- "LABEL_TITLE": "تنظیم نوع"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "درحال گرفتن یادداشت ها ... ",
- "NOT_AVAILABLE": "هیچ یادداشت برای این تماس ایجاد نشده است",
- "HEADER": {
- "TITLE": "یادداشتها"
- },
- "LIST": {
- "LABEL": "یک یادداشت اضافه شد"
- },
- "ADD": {
- "BUTTON": "افزودن",
- "PLACEHOLDER": "افزودن یادداشت",
- "TITLE": "برای ایجاد یادداشت Shift + Enter را فشار دهید"
- },
- "CONTENT_HEADER": {
- "DELETE": "حذف یادداشت"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "فعالیتها"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "یادداشتها",
- "PILL_BUTTON_EVENTS": "رویدادها",
- "PILL_BUTTON_CONVO": "گفتگوها"
+ "SOCIAL_PROFILES": "پروفایلهای شبکههای اجتماعی"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "افزودن ویژگیها",
"BUTTON": "افزودن ویژگی سفارشی",
- "NOT_AVAILABLE": "هیچ ویژگی سفارشی برای این مخاطب موجود نیست.",
"COPY_SUCCESSFUL": "با موفقیت در کلیپبورد کپی شد",
+ "SHOW_MORE": "نمایش همه ویژگی ها",
+ "SHOW_LESS": "نمایش ویژگی های کمتر",
"ACTIONS": {
"COPY": "کپی ویژگی",
"DELETE": "حذف ویژگی",
@@ -346,7 +254,7 @@
"VALIDATIONS": {
"REQUIRED": "مقدار معتبر مورد نیاز است",
"INVALID_URL": "URL نامعتبر",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_INPUT": "ورودی نامعتبر"
}
},
"MERGE_CONTACTS": {
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "خلاصه",
- "DELETE_WARNING": "اطلاعات مخاطب %{primaryContactName} حذف خواهد شد.",
- "ATTRIBUTE_WARNING": "اطلاعات مخاطب %{primaryContactName} کپی شود به %{parentContactName}."
+ "DELETE_WARNING": "اطلاعات مخاطب {primaryContactName} حذف خواهد شد.",
+ "ATTRIBUTE_WARNING": "اطلاعات مخاطب {primaryContactName} کپی شود به {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " ادغام مخاطبین",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "مخاطب با موفقیت ادغام شد",
"ERROR_MESSAGE": "نمی توان مخاطبین را ادغام کرد، دوباره امتحان کنید!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "مخاطبین",
+ "SEARCH_TITLE": "جستجوی مخاطبین",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "جستجو...",
+ "MESSAGE_BUTTON": "پیام",
+ "SEND_MESSAGE": "ارسال پیام",
+ "BLOCK_CONTACT": "مسدود کردن مخاطب",
+ "UNBLOCK_CONTACT": "رفع انسداد مخاطب",
+ "BREADCRUMB": {
+ "CONTACTS": "مخاطبین"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "این آدرس ایمیل برای مخاطب دیگری در حال استفاده است.",
+ "PHONE_NUMBER_DUPLICATE": "این شماره تلفن برای مخاطب دیگری در حال استفاده است.",
+ "SUCCESS_MESSAGE": "مخاطب با موفقیت ذخیره شد",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "مخاطب با موفقیت رفع نسداد شد",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "مخاطبین را از طریق یک فایل CSV وارد کنید.",
+ "DOWNLOAD_LABEL": "نمونه csv را بارگیری کنید.",
+ "LABEL": "پرونده CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "تغییر",
+ "CANCEL": "انصراف",
+ "IMPORT": "تزریق کردن",
+ "SUCCESS_MESSAGE": "پس از تکمیل ورود اطلاعات از طریق ایمیل به شما اطلاع داده خواهد شد.",
+ "ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "خروجی گرفتن",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
+ },
+ "SORT_BY": {
+ "LABEL": "مرتبسازی براساس",
+ "OPTIONS": {
+ "NAME": "نام",
+ "EMAIL": "ایمیل",
+ "PHONE_NUMBER": "شماره تلفن",
+ "COMPANY": "شرکت",
+ "COUNTRY": "کشور",
+ "CITY": "شهر",
+ "LAST_ACTIVITY": "آخرین فعالیت",
+ "CREATED_AT": "ایجاد شده در"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "آیا میخواهید این فیلتر را ذخیره کنید ؟",
+ "CONFIRM": "ذخیره فیلتر",
+ "LABEL": "نام",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "تاییدیه حذف",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "بله، حذف شود",
+ "CANCEL": "نه، انصراف",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "نام",
+ "EMAIL": "ایمیل",
+ "PHONE_NUMBER": "شماره تلفن",
+ "IDENTIFIER": "شناسه",
+ "COUNTRY": "کشور",
+ "CITY": "شهر",
+ "COMPANY": "شرکت",
+ "CREATED_AT": "ایجاد شده در",
+ "LAST_ACTIVITY": "آخرین فعالیت",
+ "REFERER_LINK": "پیوند ارجاعدهنده",
+ "BLOCKED": "مسدود شده",
+ "BLOCKED_TRUE": "درست",
+ "BLOCKED_FALSE": "نادرست",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "پاک کردن فیلترها",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "اعمال فیلترها",
+ "ADD_FILTER": "افزودن فیلتر"
+ },
+ "TITLE": "فیلتر مخاطبین",
+ "EDIT_SEGMENT": "ویرایش بخش",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "پاک کردن فیلترها"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "مشاهده جزئیات",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "ویرایش اطلاعات مخاطب",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "این آدرس ایمیل برای مخاطب دیگری در حال استفاده است."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "این شماره تلفن برای مخاطب دیگری در حال استفاده است."
+ },
+ "CITY": {
+ "PLACEHOLDER": "نام شهر را وارد کنید"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "نام شرکت را وارد کنید"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "حذف مخاطب",
+ "DELETE_DIALOG": {
+ "TITLE": "تاییدیه حذف",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "بله، حذف شود",
+ "API": {
+ "SUCCESS_MESSAGE": "مخاطب با موفقیت حذف شد",
+ "ERROR_MESSAGE": "مخاطب حذف نشد. لطفاً بعداً دوباره امتحان کنید."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "آواتار با موفقیت حذف شد",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "ویژگی ها",
+ "HISTORY": "History",
+ "NOTES": "یادداشتها",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "این اولین گفتگوی این کاربر است"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "بله",
+ "NO": "خیر",
+ "TRIGGER": {
+ "SELECT": "مقدار را انتخاب کنید",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "مقدار معتبر مورد نیاز است",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "URL نامعتبر",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "هیچ ویژگی یافت نشد",
+ "API": {
+ "SUCCESS_MESSAGE": "ویژگی با موفقیت به روز شد",
+ "DELETE_SUCCESS_MESSAGE": "ویژگی با موفقیت حذف شد",
+ "UPDATE_ERROR": "امکان به روزرسانی ویژگی وجود ندارد. لطفاً بعداً دوباره امتحان کنید",
+ "DELETE_ERROR": "امکان حذف ویژگی وجود ندارد. لطفاً بعداً دوباره امتحان کنید"
+ }
+ },
+ "MERGE": {
+ "TITLE": "ادغام مخاطبین",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "مخاطب اصلی",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "حذف شود",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "جستجو برای یک مخاطب",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "مخاطب با موفقیت ادغام شد",
+ "ERROR_MESSAGE": "نمی توان مخاطبین را ادغام کرد، دوباره امتحان کنید!",
+ "IS_SEARCHING": "در حال جستجو...",
+ "BUTTONS": {
+ "CANCEL": "انصراف",
+ "CONFIRM": "ادغام مخاطبین"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "افزودن یادداشت",
+ "WROTE": "نوشت",
+ "YOU": "شما",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "هیچ مخاطبی با جستجوی شما مطابقت ندارد 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "اختصاص برچسبها",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "برچسبها با موفقیت اختصاص یافتند.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "حذف",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "حذف مخاطب"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "نمایش",
+ "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": "به:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "موضوع :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "پیام خود را اینجا بنویسید..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "متغیرها",
+ "BACK": "بازگشت",
+ "SEND_MESSAGE": "ارسال پیام"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "بازگشت",
+ "SEND_MESSAGE": "ارسال پیام"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/contactFilters.json b/app/javascript/dashboard/i18n/locale/fa/contactFilters.json
index dc3b27dbe..0587542e7 100644
--- a/app/javascript/dashboard/i18n/locale/fa/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fa/contactFilters.json
@@ -2,18 +2,18 @@
"CONTACTS_FILTER": {
"TITLE": "فیلتر مخاطبین",
"SUBTITLE": "فیلترهای زیر را اضافه کنید و برای اعمال فیلتر کردن مخاطبین، برروی «ثبت» ضربه بزنید.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "EDIT_CUSTOM_SEGMENT": "ویرایش بخش",
+ "CUSTOM_VIEWS_SUBTITLE": "فیلترها را اضافه یا حذف کنید و بخش خود را به روز کنید.",
"ADD_NEW_FILTER": "افزودن فیلتر",
"CLEAR_ALL_FILTERS": "پاک کردن همه فیلترها",
"FILTER_DELETE_ERROR": "شما باید حداقل یک فیلتر برای ذخیره داشته باشید",
"SUBMIT_BUTTON_LABEL": "ثبت",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "ویرایش بخش",
"CANCEL_BUTTON_LABEL": "انصراف",
"CLEAR_BUTTON_LABEL": "پاک کردن فیلترها",
"EMPTY_VALUE_ERROR": "مقدار الزامی است",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
+ "SEGMENT_LABEL": "اسم بخش",
+ "SEGMENT_QUERY_LABEL": "کوئری بخش",
"TOOLTIP_LABEL": "فیلتر مخاطبین",
"QUERY_DROPDOWN_LABELS": {
"AND": "و",
@@ -30,6 +30,9 @@
"is_lesser_than": "کوچکتر از",
"days_before": "x روز قبل است"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "مقدار الزامی است"
+ },
"ATTRIBUTES": {
"NAME": "نام",
"EMAIL": "ایمیل",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "چک باکس",
"CREATED_AT": "ایجاد شده در",
"LAST_ACTIVITY": "آخرین فعالیت",
- "REFERER_LINK": "پیوند ارجاعدهنده"
+ "REFERER_LINK": "پیوند ارجاعدهنده",
+ "BLOCKED": "مسدود شده",
+ "LABELS": "برچسبها"
},
"GROUPS": {
"STANDARD_FILTERS": "فیلترهای استاندارد",
diff --git a/app/javascript/dashboard/i18n/locale/fa/contentTemplates.json b/app/javascript/dashboard/i18n/locale/fa/contentTemplates.json
new file mode 100644
index 000000000..83b6e1814
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "جستجوی الگوها",
+ "NO_TEMPLATES_FOUND": "هیچ قالبی برای",
+ "NO_CONTENT": "فاقد محتوا",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "دستهبندی",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "زبان",
+ "TEMPLATE_BODY": "بدنه الگو",
+ "CATEGORY": "دستهبندی"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "متن"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "متغیرها",
+ "LANGUAGE": "زبان",
+ "CATEGORY": "دستهبندی",
+ "VARIABLE_PLACEHOLDER": "مقدار {variable} را وارد کنید",
+ "GO_BACK_LABEL": "بازگشت",
+ "SEND_MESSAGE_LABEL": "ارسال پیام",
+ "FORM_ERROR_MESSAGE": "لطفا قبل از ارسال همه متغیرها را پر کنید",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "بازگشت",
+ "SEND_MESSAGE_BUTTON": "ارسال پیام"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/conversation.json b/app/javascript/dashboard/i18n/locale/fa/conversation.json
index c645f1da3..b965cf4dd 100644
--- a/app/javascript/dashboard/i18n/locale/fa/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fa/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " برای شروع",
"NO_INBOX_AGENT": "اوه اوه! به نظر میرسد شما عضو هیچ صندوق ورودی نیستید. لطفا با مدیر خود تماس بگیرید",
"SEARCH_MESSAGES": "پیامها را در گفتگوها جستجو کنید",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "برای باز کردن منوی فرمان",
"KEYBOARD_SHORTCUTS": "برای مشاهده میانبرهای صفحه کلید"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "در حال بارگیری گفتگوها",
"CANNOT_REPLY": "شما نمیتوانید پاسخ بدهید به دلیل",
"24_HOURS_WINDOW": "محدودیت ۲۴ ساعته پنجره پیام",
+ "48_HOURS_WINDOW": "48 hour message window restriction",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
"NOT_ASSIGNED_TO_YOU": "این گفتگو به شما اختصاص داده نشده است. آیا می خواهید این گفتگو را به خودتان اختصاص دهید؟",
"ASSIGN_TO_ME": "اختصاص به من",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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": "دانلود",
"UNKNOWN_FILE_TYPE": "فایل ناشناخته",
- "SAVE_CONTACT": "ذخیره",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} جلسه ای را آغاز کرده است"
+ },
"UPLOADING_ATTACHMENTS": "در حال بارگذاری پیوستها...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "REPLIED_TO_STORY": "به استوری شما پاسخ داده",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "این پیام پشتیبانی نمی شود. می توانید این پیام را در برنامه فیس بوک مسنجر مشاهده کنید.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "این پیام پشتیبانی نمی شود. می توانید این پیام را در برنامه اینستاگرام مشاهده کنید.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "پیام با موفقیت حذف شد",
"FAIL_DELETE_MESSSAGE": "پیام حذف نشد! دوباره امتحان کنید",
"NO_RESPONSE": "بدون پاسخ",
+ "RESPONSE": "Response",
"RATING_TITLE": "رتبه",
"FEEDBACK_TITLE": "بازخورد",
"REPLY_MESSAGE_NOT_FOUND": "پیام در دسترس نیست",
"CARD": {
"SHOW_LABELS": "مشاهده کردن برچسبها",
- "HIDE_LABELS": "پنهان کردن برچسبها"
+ "HIDE_LABELS": "پنهان کردن برچسبها",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "نمایش کمتر"
},
"HEADER": {
"RESOLVE_ACTION": "حل شد",
"REOPEN_ACTION": "دوباره باز کنید",
"OPEN_ACTION": "باز",
+ "MORE_ACTIONS": "More actions",
"OPEN": "بیشتر",
"CLOSE": "بستن",
"DETAILS": "جزئیات",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "به تعویق افتاده تا",
"SNOOZED_UNTIL_TOMORROW": "تا فردا به تعویق افتاد",
"SNOOZED_UNTIL_NEXT_WEEK": "تا هفته آینده به تعویق افتاد",
- "SNOOZED_UNTIL_NEXT_REPLY": "تا پاسخ بعدی به تعویق افتاد"
+ "SNOOZED_UNTIL_NEXT_REPLY": "تا پاسخ بعدی به تعویق افتاد",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "از دست رفته",
+ "DUE": "نقض"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "علامت گذاری به عنوان در انتظار",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "هفته بعد"
}
},
+ "MENTION": {
+ "AGENTS": "ایجنت ها",
+ "TEAMS": "تیمها"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "به تعویق انداختن تا",
"APPLY": "به تعویق انداختن",
@@ -85,7 +147,7 @@
"TITLE": "اولویت",
"OPTIONS": {
"NONE": "هیچکدام",
- "URGENT": "Urgent",
+ "URGENT": "فوری",
"HIGH": "بالا",
"MEDIUM": "متوسط",
"LOW": "پایین"
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "هیچکدام",
"INPUT_PLACEHOLDER": "انتخاب اولویت",
"NO_RESULTS": "نتیجهای یافت نشد",
- "SUCCESSFUL": "تغییر اولویت گفتگوی با شناسه %{conversationId} به %{priority}",
+ "SUCCESSFUL": "تغییر اولویت گفتگوی با شناسه {conversationId} به {priority}",
"FAILED": "تغییر اولویت گفتگو با موفقیت انجام نشد. لطفا دوباره تلاش نمایید."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "حذف"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "علامت گذاری به عنوان در انتظار",
"RESOLVED": "علامت زدن به عنوان حل شده",
"MARK_AS_UNREAD": "علامت گذاری به عنوان خوانده نشده",
+ "MARK_AS_READ": "ثبت به عنوان خوانده شده",
"REOPEN": "مکالمه را دوباره باز کنید",
"SNOOZE": {
"TITLE": "به تعویق انداختن",
@@ -109,21 +177,29 @@
"TOMORROW": "تا فردا",
"NEXT_WEEK": "تا هفته بعد"
},
- "ASSIGN_AGENT": "ایجنت را تعیین کنید",
+ "ASSIGN_AGENT": "اپراتور را تعیین کنید",
"ASSIGN_LABEL": "برچسب اختصاص دهید",
- "AGENTS_LOADING": "بارگذاری ایجنت ها...",
+ "AGENTS_LOADING": "بارگذاری اپراتور ها...",
"ASSIGN_TEAM": "تیم را تعیین کنید",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "شناسه مکالمه %{conversationId} به \"%{agentName}\" اختصاص داده شد",
- "FAILED": "ایجنت تعیین نشد. لطفا دوباره تلاش کنید."
+ "SUCCESFUL": "شناسه مکالمه {conversationId} به \"{agentName}\" اختصاص داده شد",
+ "FAILED": "اپراتور تعیین نشد. لطفا دوباره تلاش کنید."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "برچسب #%{labelName} را به شناسه مکالمه %{conversationId} اختصاص داد",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "برچسب اختصاص داده نشد. لطفا دوباره تلاش کنید."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "تیم \"%{team}\" را به شناسه مکالمه %{conversationId} اختصاص داد",
+ "SUCCESFUL": "تیم \"{team}\" را به شناسه مکالمه {conversationId} اختصاص داد",
"FAILED": "تیم تعیین نشد. لطفا دوباره تلاش کنید."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "غیرفعال کردن امضا",
"MSG_INPUT": "برای رفتن به سرخط shift+enter و برای استفاده از پیام های ذخیره شده / را بزنید.",
"PRIVATE_MSG_INPUT": "برای رفتن به سرخط shift+enter را بزنید. این پیام فقط به ایجنت ها نمایش داده میشود",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "امضای پیام پیکربندی نشده است، لطفاً آن را در تنظیمات نمایه پیکربندی کنید.",
- "CLICK_HERE": "برای به روز رسانی اینجا را کلیک کنید"
+ "COPILOT_MSG_INPUT": "دستورهای اضافی به Copilot بدهید، یا هر سوال دیگری بپرسید... برای ارسال پاسخ بعدی اینتر بزنید",
+ "CLICK_HERE": "برای به روز رسانی اینجا را کلیک کنید",
+ "WHATSAPP_TEMPLATES": "قالب های واتساپ"
},
"REPLYBOX": {
"REPLY": "پاسخ",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "ادامه مطلب",
"DISMISS_REPLY": "رد پاسخ",
"REPLYING_TO": "در حال پاسخ دهی به:",
- "TIP_FORMAT_ICON": "نمایش ویرایشگر متنی پیشرفته",
"TIP_EMOJI_ICON": "انتخاب ایموجی",
"TIP_ATTACH_ICON": "ضمیمه فایل",
"TIP_AUDIORECORDER_ICON": "ضبط صدا",
"TIP_AUDIORECORDER_PERMISSION": "اجازه دسترسی به صدا",
"TIP_AUDIORECORDER_ERROR": "صدا را نمیتوان باز کند",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "برای ضمیمه کردن درگ و درآپ کنید",
"START_AUDIO_RECORDING": "در حال شروع ضبط صدا",
"STOP_AUDIO_RECORDING": "در حال توقف ضبط صدا",
- "": "",
+ "COPILOT_THINKING": "Copilot در حال فکر کردن است",
"EMAIL_HEAD": {
"TO": "به",
"ADD_BCC": "افزودن رونوشت",
@@ -176,6 +257,13 @@
"YES": "ارسال",
"CANCEL": "انصراف"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "یادداشت خصوصی: فقط برای شما و تیم شما قابل مشاهده است",
@@ -186,10 +274,15 @@
"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} مگابایت بیشتر است",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "ارسال این پیام امکان پذیر نیست ، لطفاً بعداً دوباره امتحان کنید",
"SENT_BY": "ارسال شده توسط:",
"BOT": "ربات",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "پیام ارسال نشد! دوباره امتحان کنید",
"TRY_AGAIN": "دوباره امتحان کنید",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "حذف",
"CANCEL": "انصراف"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "مخاطب",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "نادیده بگیر",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "انصراف",
"SEND_EMAIL_SUCCESS": "متن گفتگو با موفقیت ارسال شد",
"SEND_EMAIL_ERROR": "خطایی پیش آمد. لطفا دوباره امتحان کنید",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "متن گفتگو را برای مشتری ارسال کنید",
"SEND_TO_AGENT": "متن گفتگو را به ایجنت اختصاص یافته ارسال کنید",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "سلام 👋، خوش آمدی به %{installationName}!",
- "DESCRIPTION": "از این که ثبت نام کرده اید سپاسگذاریم. ما ماخواهیم بهترین تجربه را از %{installationName} داشته باشید. در اینجا چند کار وجود دارد که می توانید در %{installationName} انجام دهید تا تجربه بهتری داشته باشید.",
+ "TITLE": "سلام 👋، خوش آمدی به {installationName}!",
+ "DESCRIPTION": "از این که ثبت نام کرده اید سپاسگذاریم. ما ماخواهیم بهترین تجربه را از {installationName} داشته باشید. در اینجا چند کار وجود دارد که می توانید در {installationName} انجام دهید تا تجربه بهتری داشته باشید.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "آخرین به روزرسانی های ما را بخوانید",
"ALL_CONVERSATION": {
"TITLE": "همه مکالمات شما در یک مکان",
- "DESCRIPTION": "همه مکالمات مشتریان خود را در یک داشبورد واحد مشاهده کنید. می توانید مکالمات را بر اساس کانال ، برچسب و وضعیت ورودی فیلتر کنید."
+ "DESCRIPTION": "همه مکالمات مشتریان خود را در یک داشبورد واحد مشاهده کنید. می توانید مکالمات را بر اساس کانال ، برچسب و وضعیت ورودی فیلتر کنید.",
+ "NEW_LINK": "برای ایجاد صندوق ورودی اینجا را کلیک کنید"
},
"TEAM_MEMBERS": {
"TITLE": "اعضای تیم خود را دعوت کنید",
- "DESCRIPTION": "از آنجا که در حال آماده شدن برای صحبت با مشتری هستید ، می توانید از هم تیمی های خود نیز کمک بگیرید. با افزودن آدرس ایمیل آنها به لیست ایجنت ها، می توانید از هم تیمی های خود دعوت کنید.",
+ "DESCRIPTION": "از آنجا که در حال آماده شدن برای گفتگو با مشتری هستید ، می توانید از هم تیمی های خود نیز کمک بگیرید. با افزودن آدرس ایمیل آنها به لیست اپراتور ها، می توانید از هم تیمی های خود دعوت کنید.",
"NEW_LINK": "برای دعوت از یکی از اعضای تیم اینجا را کلیک کنید"
},
- "INBOXES": {
- "TITLE": "صندوق ورودی را وصل کنید",
- "DESCRIPTION": "شما می توانید کانال های مختلفی را برای ارتباط با مشتری ایجاد نمایید، شما میتوانید از طریق چت داخل سایت یا فیس بوک یا توییتر و حتی واتس آپ استفاده نمایید.",
- "NEW_LINK": "برای ایجاد صندوق ورودی اینجا را کلیک کنید"
- },
"LABELS": {
"TITLE": "سازماندهی مکالمات با برچسب ها",
"DESCRIPTION": "برچسب ها روش ساده تری برای دسته بندی مکالمه شما فراهم می کنند. برخی از برچسب ها مانند #پشتیبانی-درخواست ، #صورتحساب و غیره را ایجاد کنید تا بعداً بتوانید از آنها در مکالمه استفاده کنید.",
"NEW_LINK": "برای ایجاد برچسب ها اینجا را کلیک کنید"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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",
+ "SHARED_FILES": "پیوستها"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "دریافت پرونده",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "پروندهها",
+ "VIEW_ALL": "مشاهده همه",
+ "SHOW_LESS": "نمایش کمتر",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "در انتظار",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "ایجاد ویژگی",
+ "NO_RECORDS_FOUND": "هیچ ویژگی یافت نشد",
"UPDATE": {
"SUCCESS": "ویژگی با موفقیت به روز شد",
"ERROR": "امکان به روزرسانی ویژگی وجود ندارد. لطفاً بعداً دوباره امتحان کنید"
@@ -297,17 +449,18 @@
"TO": "به",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "موضوع"
+ "SUBJECT": "موضوع",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "شرکت کنندگان",
"SIDEBAR_TITLE": "شرکت کنندگان در گفتگو",
"NO_RECORDS_FOUND": "نتیجهای یافت نشد",
"ADD_PARTICIPANTS": "شرکت کنندگان را انتخاب کنید",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} نفر دیگر",
- "REMANING_PARTICIPANT_TEXT": "+%{count} دیگر",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} نفر شرکت می کنند.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} نفر شرکت می کند.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} نفر دیگر",
+ "REMANING_PARTICIPANT_TEXT": "+{count} دیگر",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} نفر شرکت می کنند.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} نفر شرکت می کند.",
"NO_PARTICIPANTS_TEXT": "هیچ کس شرکت نمی کند!.",
"WATCH_CONVERSATION": "به گفتگو بپیوندید",
"YOU_ARE_WATCHING": "شما شرکت می کنید",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "محتوای اصلی",
"TRANSLATED_CONTENT": "مطالب ترجمه شده",
"NO_TRANSLATIONS_AVAILABLE": "هیچ ترجمهای برای این مطلب موجود نیست"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/csatMgmt.json b/app/javascript/dashboard/i18n/locale/fa/csatMgmt.json
index 265f01995..f5071bc9d 100644
--- a/app/javascript/dashboard/i18n/locale/fa/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/csatMgmt.json
@@ -3,11 +3,11 @@
"TITLE": "به مکالمه خود امتیاز دهید",
"PLACEHOLDER": "توضیحات بیشتر بدهید...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 خیلی بد",
+ "FAIR": "😑 بد",
+ "AVERAGE": "😐 معمولی",
+ "GOOD": "😀 خوب",
+ "EXCELLENT": "😍 عالی"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/customRole.json b/app/javascript/dashboard/i18n/locale/fa/customRole.json
new file mode 100644
index 000000000..6937109a3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "هیچ گزینهای با این شرایط پیدا نشد.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "برای دسترسی به ویژگیهای پیشرفته مانند مدیریت تیم، اتوماسیون، ویژگیهای سفارشی و موارد دیگر، طرح خود را ارتقا دهید.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "برای دسترسی به ویژگیهای پیشرفته مانند گزارشهای حسابرسی، ظرفیت اپراتور و غیره، به یک طرح پولی ارتقا دهید.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "DESCRIPTION": "توضیحات",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "عملیات"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "نام",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "نام الزامی است."
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "توضیحات الزامی است."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "انصراف",
+ "API": {
+ "ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "ثبت",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "ویرایش",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "اعمال شود",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "حذف",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
+ },
+ "CONFIRM": {
+ "TITLE": "تاییدیه حذف",
+ "MESSAGE": "مطمئن هستید که حذف شود ",
+ "YES": "بله، حذف شود ",
+ "NO": "خیر، نگهدار "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/datePicker.json b/app/javascript/dashboard/i18n/locale/fa/datePicker.json
new file mode 100644
index 000000000..300d47097
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "درخواست دادن",
+ "CLEAR_BUTTON": "پاک کردن",
+ "DATE_RANGE_INPUT": {
+ "START": "تاریخ شروع",
+ "END": "تاریخ پایان"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "محدوده زمانی",
+ "LAST_7_DAYS": "در ۷ روز گذشته",
+ "LAST_30_DAYS": "در ۳۰ روز گذشته",
+ "LAST_3_MONTHS": "۳ ماه گذشته",
+ "LAST_6_MONTHS": "۶ ماه گذشته",
+ "LAST_YEAR": "پارسال",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "محدوده تاریخ سفارشی"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/emoji.json b/app/javascript/dashboard/i18n/locale/fa/emoji.json
index 4e6cb0926..ec186a2e0 100644
--- a/app/javascript/dashboard/i18n/locale/fa/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/fa/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "جستجوی ایموجی",
- "NOT_FOUND": "هیچ ایموجی با جستجوی شما مطابقت ندارد",
+ "PLACEHOLDER": "جستجوی اموجی",
+ "NOT_FOUND": "هیچ اموجی با جستجوی شما مطابقت ندارد",
"REMOVE": "حذف"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/general.json b/app/javascript/dashboard/i18n/locale/fa/general.json
new file mode 100644
index 000000000..1c14ffdbd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "نمایش {firstIndex} تا {lastIndex} از {totalCount} مورد",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "جستجو",
+ "EMPTY_STATE": "نتیجهای یافت نشد"
+ },
+ "CLOSE": "بستن",
+ "BETA": "آزمایشی",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "بله",
+ "NO": "خیر"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/generalSettings.json b/app/javascript/dashboard/i18n/locale/fa/generalSettings.json
index d155baaa6..27e6ffee5 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. Your plan only allows {allowedAgents} 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,26 +92,49 @@
"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": "تداوم مکالمه با ایمیل برای حساب شما فعال است.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "اکنون میتوانید ایمیلها را در دامنه سفارشی خود دریافت کنید."
}
},
- "UPDATE_CHATWOOT": "به روزرسانی%{latestChatwootVersion} برای Chatwoot در دسترس است. لطفا نمونه خود را به روز کنید.",
+ "UPDATE_CHATWOOT": "به روزرسانی{latestChatwootVersion} برای Chatwoot در دسترس است. لطفا نمونه خود را به روز کنید.",
"LEARN_MORE": "بیشتر بدانید",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information 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"
+ "PAYMENT_PENDING": "پرداخت شما در حال پردازش است. لطفاً اطلاعات پرداخت خود را برای ادامه استفاده از Chatwoot به روز کنید",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
+ "LIMITS_UPGRADE": "حساب شما از محدودیت های استفاده فراتر رفته است، لطفاً برای ادامه استفاده از Chatwoot برنامه خود را ارتقا دهید",
+ "OPEN_BILLING": "باز کردن صورتحساب"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "برای انتخاب Enter را فشار دهید",
"ENTER_TO_REMOVE": "برای حذف دکمه enter را فشار دهید",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "یکی را انتخاب کن",
"SELECT": "انتخاب کنید"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "مکالمه اختصاص داده شد",
"assigned_conversation_new_message": "پیام جدید",
"participating_conversation_new_message": "پیام جدید",
- "conversation_mention": "اشاره"
+ "conversation_mention": "اشاره",
+ "sla_missed_first_response": "SLA های از دست رفته",
+ "sla_missed_next_response": "SLA های از دست رفته",
+ "sla_missed_resolution": "SLA های از دست رفته"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "آفلاین"
+ "OFFLINE": "آفلاین",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "تازه کردن"
@@ -100,31 +182,33 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "جستجو یا پرش به",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "عمومی",
"REPORTS": "گزارشات",
"CONVERSATION": "گفتگو",
- "CHANGE_ASSIGNEE": "نماینده را تغییر دهید",
- "CHANGE_PRIORITY": "Change Priority",
+ "BULK_ACTIONS": "Bulk Actions",
+ "CHANGE_ASSIGNEE": "اپراتور را تغییر دهید",
+ "CHANGE_PRIORITY": "تغییر اولویت",
"CHANGE_TEAM": "تیم را تغییر دهید",
"SNOOZE_CONVERSATION": "به تعویق انداختن مکالمه",
"ADD_LABEL": "برچسب را به مکالمه اضافه کنید",
"REMOVE_LABEL": "برچسب را از مکالمه حذف کنید",
"SETTINGS": "تنظیمات",
- "AI_ASSIST": "AI Assist",
+ "AI_ASSIST": "دستیار هوش مصنوعی",
"APPEARANCE": "ظاهری",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "SNOOZE_NOTIFICATION": "به تعویق انداختن آگاهسازی"
},
"COMMANDS": {
"GO_TO_CONVERSATION_DASHBOARD": "به داشبورد مکالمه بروید",
"GO_TO_CONTACTS_DASHBOARD": "به داشبورد مخاطبین بروید",
"GO_TO_REPORTS_OVERVIEW": "به نمای کلی گزارش ها بروید",
"GO_TO_CONVERSATION_REPORTS": "به گزارش های گفتگو بروید",
- "GO_TO_AGENT_REPORTS": "به گزارش های ایجنت بروید",
+ "GO_TO_AGENT_REPORTS": "به گزارش های اپراتور بروید",
"GO_TO_LABEL_REPORTS": "به گزارش برچسب بروید",
"GO_TO_INBOX_REPORTS": "به گزارش صندوق ورودی بروید",
"GO_TO_TEAM_REPORTS": "به گزارش تیم بروید",
- "GO_TO_SETTINGS_AGENTS": "به تنظیمات ایجنت بروید",
+ "GO_TO_SETTINGS_AGENTS": "به تنظیمات اپراتور بروید",
"GO_TO_SETTINGS_TEAMS": "به تنظیمات تیم بروید",
"GO_TO_SETTINGS_INBOXES": "به تنظیمات صندوق ورودی بروید",
"GO_TO_SETTINGS_LABELS": "به تنظیمات برچسب بروید",
@@ -134,8 +218,8 @@
"GO_TO_SETTINGS_PROFILE": "به تنظیمات پروفایل بروید",
"GO_TO_NOTIFICATIONS": "به اعلان ها بروید",
"ADD_LABELS_TO_CONVERSATION": "برچسب را به مکالمه اضافه کنید",
- "ASSIGN_AN_AGENT": "یک ایجنت تعیین کنید",
- "AI_ASSIST": "AI Assist",
+ "ASSIGN_AN_AGENT": "یک اپراتور تعیین کنید",
+ "AI_ASSIST": "دستیار هوش مصنوعی",
"ASSIGN_PRIORITY": "انتساب اولویت",
"ASSIGN_A_TEAM": "یک تیم را تعیین کنید",
"MUTE_CONVERSATION": "صدای گفتگو را قطع کن",
@@ -150,12 +234,12 @@
"UNTIL_TOMORROW": "تا فردا",
"UNTIL_NEXT_MONTH": "تا ماه آینده",
"AN_HOUR_FROM_NOW": "از حالا تا یک ساعت دیگر",
- "CUSTOM": "سفارشی...",
+ "UNTIL_CUSTOM_TIME": "سفارشی...",
"CHANGE_APPEARANCE": "تغییر ظاهر",
"LIGHT_MODE": "روشن",
"DARK_MODE": "تیره",
"SYSTEM_MODE": "سیستم",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "SNOOZE_NOTIFICATION": "به تعویق انداختن آگاهسازی"
}
},
"DASHBOARD_APPS": {
diff --git a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
index c5f5b1e37..e2ce47b87 100644
--- a/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fa/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "مرکز راهنما",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "ایجاد پورتال"
+ },
"HEADER": {
"FILTER": "فیلتر براساس",
"SORT": "مرتبسازی براساس",
@@ -18,10 +23,10 @@
"ARCHIVED": "مقالات آرشیو شده"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "انتخاب زبان",
+ "PLACEHOLDER": "انتخاب زبان",
+ "NO_RESULT": "هیچ زبانی یافت نشد",
+ "SEARCH_PLACEHOLDER": "جستجوی زبان"
}
},
"EDIT_HEADER": {
@@ -41,6 +46,7 @@
"UPLOADING": "در حال آپلود...",
"SUCCESS": "تصویر با موفقیت آپلود شد",
"ERROR": "خطا هنگام آپلود تصویر",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "اندازه تصویر باید کمتر از {size} مگابایت باشد",
"ERROR_FILE_FORMAT": "فرمت تصویر باید jpg، jpeg یا png باشد",
"ERROR_FILE_DIMENSIONS": "ابعاد تصویر باید کمتر از 2000*2000 باشد"
@@ -82,15 +88,15 @@
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
+ "UNCATEGORIZED": "دسته بندی نشده",
+ "SEARCH_RESULTS": "جستجو بر اساس {query}",
+ "EMPTY_TEXT": "جستجو در مقالات برای درج در پاسخ.",
"SEARCH_LOADER": "در حال جستجو...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "INSERT_ARTICLE": "درج",
+ "NO_RESULT": "هیچ مقاله ای یافت نشد",
+ "COPY_LINK": "کپی آدرس مقاله در کلیپ برد",
+ "OPEN_LINK": "باز کردن مقاله در صفحه جدید",
+ "PREVIEW_LINK": "پیش نمایش مقاله"
},
"PORTAL": {
"HEADER": "پورتال ها",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "پورتال با موفقیت حذف شد",
"DELETE_ERROR": "خطا هنگام حذف پورتال"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "اطلاعات مرکز راهنما",
- "route": "new_portal_information",
- "body": "اطلاعات اولیه در مورد پورتال",
- "CREATE_BASIC_SETTING_BUTTON": "ایجاد تنظیمات اولیه پورتال"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "اطلاعات مرکز راهنما",
+ "BODY": "اطلاعات اولیه در مورد پورتال"
},
- {
- "title": "سفارشی سازی مرکز راهنما",
- "route": "portal_customization",
- "body": "سفارشی کردن پورتال",
- "UPDATE_PORTAL_BUTTON": "بهروزرسانی تنظیمات پورتال"
+ "CUSTOMIZATION": {
+ "TITLE": "سفارشی سازی مرکز راهنما",
+ "BODY": "سفارشی کردن پورتال"
},
- {
- "title": "هوراا ! 🎉",
- "route": "portal_finish",
- "body": "شما آمادهاید!",
- "FINISH": "پایان"
+ "FINISH": {
+ "TITLE": "هوراا ! 🎉",
+ "BODY": "شما آمادهاید!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "بازگشت",
"BASIC_SETTINGS_PAGE": {
@@ -231,9 +237,9 @@
"LABEL": "آرم",
"UPLOAD_BUTTON": "بارگذاری آرم",
"HELP_TEXT": "این لوگو در هدر پورتال نمایش داده می شود.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "IMAGE_UPLOAD_SUCCESS": "تصویر با موفقیت آپلود شد",
+ "IMAGE_UPLOAD_ERROR": "تصویر با موفقیت حذف شد",
+ "IMAGE_DELETE_ERROR": "خطا هنگام حذف تصویر"
},
"NAME": {
"LABEL": "نام",
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "دامنه سفارشی",
"PLACEHOLDER": "دامنه سفارشی پورتال",
- "HELP_TEXT": "فقط اگر میخواهید از یک دامنه سفارشی برای پورتالهای خود استفاده کنید، اضافه کنید. به عنوان مثال: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "یک نشانی دامنه معتبر وارد کنید"
},
"HOME_PAGE_LINK": {
"LABEL": "پیوند صفحه اصلی",
"PLACEHOLDER": "پیوند صفحه اصلی پورتال",
- "HELP_TEXT": "پیوند مورد استفاده برای بازگشت از پورتال به صفحه اصلی. به عنوان مثال: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "یک نشانی صفحه اصلی معتبر وارد کنید"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "زبان محلی با موفقیت از پورتال حذف شد",
"ERROR_MESSAGE": "حذف زبان محلی از پورتال ممکن نیست. دوباره امتحان کنید."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -325,7 +343,7 @@
},
"COLUMNS": {
"BY": "توسط",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "AUTHOR_NOT_AVAILABLE": "نویسنده در دسترس نیست"
}
},
"EDIT_ARTICLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "مقاله با موفقیت بایگانی شد"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "خطا هنگام حذف مقاله"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "لطفا عنوان و محتوای مقاله را اضافه کنید و فقط شما میتوانید تنظیمات را بهروز کنید"
},
@@ -379,7 +413,7 @@
"NAME": {
"LABEL": "نام",
"PLACEHOLDER": "نام دستهبندی",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "از نام و نماد دسته بندی در پرتال عمومی برای دسته بندی مقالات استفاده می شود.",
"ERROR": "نام الزامی است"
},
"SLUG": {
@@ -410,7 +444,7 @@
"NAME": {
"LABEL": "نام",
"PLACEHOLDER": "نام دستهبندی",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "از نام و نماد دسته بندی در پرتال عمومی برای دسته بندی مقالات استفاده می شود.",
"ERROR": "نام الزامی است"
},
"SLUG": {
@@ -441,46 +475,484 @@
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
+ "TITLE": "جستجو مقالات",
+ "PLACEHOLDER": "جستجو مقالات",
+ "NO_RESULT": "هیچ مقاله ای یافت نشد",
"SEARCHING": "در حال جستجو...",
"SEARCH_BUTTON": "جستجو",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "درج آدرس",
+ "IFRAME_ERROR": "آدرس URL خالی یا نامعتبر است. امکان نمایش محتوا وجود ندارد.",
+ "OPEN_ARTICLE_SEARCH": "درج مقاله از مرکز راهنما",
+ "SUCCESS_ARTICLE_INSERTED": "مقاله با موفقیت درج شد",
+ "PREVIEW_LINK": "پیش نمایش مقاله",
"CANCEL": "بستن",
"BACK": "بازگشت",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "بازگشت به نتایج"
},
"UPGRADE_PAGE": {
"TITLE": "مرکز راهنما",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "DESCRIPTION": "پورتال های سلف سرویس کاربر پسند ایجاد کنید. به کاربران خود کمک کنید تا به مقالات دسترسی پیدا کنند و پشتیبانی دریافت کنند.",
+ "SELF_HOSTED_DESCRIPTION": "پورتال های سلف سرویس کاربر پسند ایجاد کنید. به کاربران خود کمک کنید تا به مقالات دسترسی پیدا کنند و پشتیبانی دریافت کنند. لطفا با ادمین برای فعال سازی این قابلیت تماس بگیرید.",
"BUTTON": {
"LEARN_MORE": "بیشتر بدانید",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "ارتقا"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "چندین پرتال",
+ "DESCRIPTION": "با استفاده از یک حساب، چندین پورتال مرکز راهنمایی برای محصولات مختلف ایجاد کنید."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "پشتیبانی کامل از چند زبانه",
+ "DESCRIPTION": "پورتال را به زبان خود بومی سازی کنید. ما از همه زبانها پشتیبانی میکنیم و اجازه ترجمه برای هر مقاله را میدهیم."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "طراحی مناسب SEO",
+ "DESCRIPTION": "متا تگ های خود را سفارشی کنید تا بهتر در موتورهای جستجو دیده شوید."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "پشتیبانی کامل از API",
+ "DESCRIPTION": "از پرتال به عنوان یک CMS می توانید استفاده کنید که از طریق Front آدرس های API را فراخوانی می کنید."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "انتشار",
+ "DRAFT": "پیشنویس",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "ترجمه",
+ "DELETE": "حذف"
+ },
+ "STATUS": {
+ "DRAFT": "پیشنویس",
+ "PUBLISHED": "منتشر شد",
+ "ARCHIVED": "بایگانی شد"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "من",
+ "DRAFT": "پیشنویس",
+ "PUBLISHED": "منتشر شد",
+ "ARCHIVED": "بایگانی شد"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "ترجمه",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "ترجمه",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "انتشار",
+ "DRAFT": "پیشنویس",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "ترجمه",
+ "MOVE_TO_CATEGORY": "دستهبندی",
+ "DELETE": "حذف",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "حذف",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "دستهبندی جدید",
+ "EDIT_CATEGORY": "ویرایش دستهبندی",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "هیچ دستهبندیای یافت نشد",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "دستهبندی با موفقیت ایجاد شد",
+ "ERROR_MESSAGE": "امکان ایجاد دستهبندی وجود ندارد"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "دستهبندی با موفقیت بهروز شد",
+ "ERROR_MESSAGE": "دستهبندی بهروزرسانی نمیشود"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "دستهبندی با موفقیت حذف شد",
+ "ERROR_MESSAGE": "حذف دستهبندی ممکن نیست"
+ }
+ },
+ "HEADER": {
+ "CREATE": "ایجاد دستهبندی",
+ "EDIT": "ویرایش دستهبندی",
+ "DESCRIPTION": "ویرایش یک دستهبندی، اون را در پورتال عمومی بهروز میکند.",
+ "PORTAL": "پورتال",
+ "LOCALE": "محلی"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "نام",
+ "PLACEHOLDER": "نام دستهبندی",
+ "ERROR": "نام الزامی است"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug دسته برای آدرس ها",
+ "ERROR": "Slug مورد نیاز است",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "یک توضیح کوتاه در مورد دسته ارائه دهید.",
+ "ERROR": "توضیحات الزامی است"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "ايجاد كردن",
+ "EDIT": "اعمال شود",
+ "CANCEL": "انصراف"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "پیشفرض",
+ "DRAFT": "پیشنویس",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "حذف"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "یک محل جدید اضافه کنید",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "انتخاب زبان..."
+ },
+ "STATUS": {
+ "LABEL": "وضعیت",
+ "OPTIONS": {
+ "LIVE": "منتشر شد",
+ "DRAFT": "پیشنویس"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "زبان محلی با موفقیت اضافه شد",
+ "ERROR_MESSAGE": "امکان افزودن زبان محلی وجود ندارد. دوباره امتحان کنید."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "در حال ذخیره...",
+ "SAVED": "ذخیره شد"
+ },
+ "PREVIEW": "پیشنمایش",
+ "PUBLISH": "انتشار",
+ "DRAFT": "پیشنویس",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "دسته بندی نشده",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "توضیحات متا",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "عنوان متا",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "برچسبهای متا",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "خطا در هنگام ذخیره مقاله"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "پورتال ها",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "مقالات",
+ "DOMAIN": "دامنه",
+ "PORTAL_NAME": "نام پورتال"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "ايجاد كردن",
+ "NAME": {
+ "LABEL": "نام",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "نام الزامی است"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug مورد نیاز است",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "آرم",
+ "IMAGE_UPLOAD_ERROR": "تصویر ارسال نشد! دوباره امتحان کنید",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "تصویر با موفقیت حذف شد",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "اندازه تصویر باید کمتر از {size} مگابایت باشد"
+ },
+ "NAME": {
+ "LABEL": "نام",
+ "PLACEHOLDER": "نام پورتال",
+ "ERROR": "نام الزامی است"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "متن سرصفحه پورتال"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "عنوان صفحه پورتال"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "پیوند صفحه اصلی پورتال",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "دامنه سفارشی",
+ "LABEL": "دامنه سفارشی:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "دامنه سفارشی پورتال",
+ "EDIT_BUTTON": "ویرایش",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "زنده",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "دامنه سفارشی",
+ "PLACEHOLDER": "دامنه سفارشی پورتال",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "ارسال"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "حذف پورتال",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "حذف"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "ظاهری",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "حذف"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "پورتال با موفقیت ایجاد شد",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "پورتال با موفقیت بهروز شد",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "در حال آپلود...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "انصراف",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "در حال تولید...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "تکمیل شد",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/inbox.json b/app/javascript/dashboard/i18n/locale/fa/inbox.json
index 8b772cc0b..bbd453668 100644
--- a/app/javascript/dashboard/i18n/locale/fa/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/fa/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "صندوق ورودی",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "همه اعلان ها بارگیری شدند 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "نمایش",
+ "LOADING": "در حال بارگیری اعلان ها",
+ "404": "هیچ اعلان فعالی در این گروه نیست.",
+ "NO_NOTIFICATIONS": "اعلانی وجود ندارد",
"NOTE": "آگاهسازیها از همه صندوقهای ورودی مشترک",
+ "NO_MESSAGES_AVAILABLE": "اوه! قادر به دریافت پیام ها نیستم",
"SNOOZED_UNTIL": "به تعویق افتاده تا",
"SNOOZED_UNTIL_TOMORROW": "تا فردا به تعویق افتاد",
"SNOOZED_UNTIL_NEXT_WEEK": "تا هفته آینده به تعویق افتاد"
},
"ACTION_HEADER": {
"SNOOZE": "به تعویق انداختن آگاهسازی",
- "DELETE": "حذف آگاهسازی"
+ "DELETE": "حذف آگاهسازی",
+ "BACK": "بازگشت"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "به نام شما در یک گفتگو اشاره شده است",
+ "CONVERSATION_CREATION": "گفتگو ایجاد شد",
+ "CONVERSATION_ASSIGNMENT": "یک گفتگو به شما اختصاص داده شده",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "پیام جدید در یک گفتگوی اختصاص داده شده",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "پیام جدید در گفتگویی که در آن شرکت داشته اید",
+ "SLA_MISSED_FIRST_RESPONSE": "سیاست SLA مربوط به اولین پاسخ در گفتگوی نقض شده",
+ "SLA_MISSED_NEXT_RESPONSE": "سیاست SLA مربوط به پاسخ بعدی در گفتگوی نقض شده",
+ "SLA_MISSED_RESOLUTION": "سیاست SLA مربوط به زمان حل موضوع در گفتگوی نقض شده"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "پیام جدید",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "پیام جدید",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "هیچ محتوایی موجود نیست",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "ثبت به عنوان خوانده شده",
"MARK_AS_UNREAD": "علامت گذاری به عنوان خوانده نشده",
"SNOOZE": "به تعویق انداختن",
"DELETE": "حذف",
"MARK_ALL_READ": "همه را به عنوان خوانده شده علامت بزن",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "حذف همه",
+ "DELETE_ALL_READ": "حذف همه خوانده شده"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "ترتیب",
+ "DISPLAY": "نمایش :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "جدیدترین",
+ "OLDEST": "قدیمی ترین",
"PRIORITY": "اولویت"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "به تعویق افتاد",
"READ": "خوانده شده",
"LABELS": "برچسبها",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "شناسه گفتگو"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "ثبت اعلان به عنوان خوانده شده",
+ "MARK_AS_UNREAD": "ثبت اعلان به عنوان خوانده نشده",
+ "SNOOZE": "اعلان به تعویق افتاده",
+ "DELETE": "اعلان حدف شده",
+ "MARK_ALL_READ": "ثبت همه اعلان ها به عنوان خوانده شده",
+ "DELETE_ALL": "حذف همه اعلان ها",
+ "DELETE_ALL_READ": "حذف همه اعلان های خوانده شده"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "احراز هویت مجدد لازم است",
+ "DESCRIPTION": "اتصال واتساپ شما منقضی شده است. لطفا برای ادامهی دریافت و ارسال پیامها، مجدد متصل شوید.",
+ "BUTTON_TEXT": "اتصال مجدد واتساپ",
+ "LOADING_FACEBOOK": "درحال بارگزاری SDK فیسبوک...",
+ "SUCCESS": "واتساپ با موفقیت متصل شد",
+ "ERROR": "اتصال مجدد به واتساپ با شکست مواجه شد. لطفا مجدد امتحان کنید.",
+ "WHATSAPP_APP_ID_MISSING": "شناسه اپلیکیشن واتساپ پیکربندی نشده است. لطفا با مدیر خود تماس بگیرید.",
+ "WHATSAPP_CONFIG_ID_MISSING": "شناسه پیکربندی واتساپ تنظیم نشده است. لطفا با مدیر خود تماس بگیرید.",
+ "CONFIGURATION_ERROR": "خطای پیکربندی هنگام احراز هویت مجدد رخ داد.",
+ "FACEBOOK_LOAD_ERROR": "بارگزاری SDK فیسبوک با شکست مواجه شد. لطفا مجدد امتحان کنید.",
+ "TROUBLESHOOTING": {
+ "TITLE": "عیبیابی",
+ "POPUP_BLOCKED": "مطمئن شوید نمایش پاپ-آپها برای این سایت مجاز است",
+ "COOKIES": "کوکیهای شخص ثالث باید فعال باشند",
+ "ADMIN_ACCESS": "شما به دسترسی ادمین حساب کاربری واتساپ بیزینس نیاز دارد"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
index ddc3a1c38..479e8a4b8 100644
--- a/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "صندوقهای ورودی",
- "SIDEBAR_TXT": "صندوق ورودی
\n وقتی چت ووت به یک وب سایت یا یک صفحه فیس بوک متصل شود به آن صندوق ورودی میگوید. شما در حساب چت ووت خود میتوانید بینهایت صندوق ورودی داشته باشید.
روی دکمه اضافه کردن صندوق ورودی کلیک کنید تا به یک وب سایت یا یک صفحه فیس بوک وصل شوید.
در داشبورد، میتوانید گفتگوهای همه صندوقهای ورودی را یکجا ببینید و در تب «گفتگوها» به آنها پاسخ بدهید.
همچنین میتوانید با کلیک کردن روی اسم صندوق ورودی از قسمت سمت چپ، فقط گفتگوهای همان صندوق را ببینید.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "برای این حساب هیچ صندوق ورودی معرفی نشده است."
},
- "CREATE_FLOW": [
- {
- "title": "کانال ورودی را انتخاب کنید",
- "route": "settings_inbox_new",
- "body": "جایی که قرار است امکان گفتگوی آنلاین در آنجا فراهم شود را انتخاب کنید"
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "کانال ورودی را انتخاب کنید",
+ "BODY": "جایی که قرار است امکان گفتگوی آنلاین در آنجا فراهم شود را انتخاب کنید"
},
- {
- "title": "ساخت صندوق ورودی",
- "route": "settings_inboxes_page_channel",
- "body": "به حساب کاربری وارد شوید و صندوق ورودی بسازید."
+ "INBOX": {
+ "TITLE": "ساخت صندوق ورودی",
+ "BODY": "به حساب کاربری وارد شوید و صندوق ورودی بسازید."
},
- {
- "title": "معرفی ایجنت",
- "route": "settings_inboxes_add_agents",
- "body": "ایجنت ها را به صندوق ورودی ساخته شده تخصیص میدهد."
+ "AGENT": {
+ "TITLE": "معرفی ایجنت",
+ "BODY": "ایجنت ها را به صندوق ورودی ساخته شده تخصیص میدهد."
},
- {
- "title": "ماشالله!",
- "route": "settings_inbox_finish",
- "body": "دیگه میتونی بترکونی"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "دیگه میتونی بترکونی"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "عنوان صندوق ورودی",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "از لیست صفحه مورد نظر را انتخاب کنید",
"INBOX_NAME": "عنوان صندوق ورودی",
"ADD_NAME": "یک اسم به صندوق ورودی خود اضافه کنید",
- "PICK_NAME": "یک اسم برای صندوق ورودی خود انتخاب کنید",
- "PICK_A_VALUE": "یک مقدار انتخاب کنید"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "برای اضافه کردن امکان گفتگو از صفحه پروفایل توییترتان، لازم است با زدن دکمه `ورود با توییتر` پروفایل توییتر خود را شناسایی کنید' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "آدرس URL وب هوک",
- "PLACEHOLDER": "نشانی وب Webhook خود را وارد کنید",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "لطفا آدرس URL صحیحی وارد کنید"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "دامنه سایت",
"PLACEHOLDER": "دامنه سایت خود را وارد کنید (به عنوان مثال: acme.com)"
@@ -112,14 +141,14 @@
"ERROR": "پر کردن این فیلد ضروری است"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "استفاده از API Key Authentication",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "لطفا API Key SID را وارد کنید",
"ERROR": "پر کردن این فیلد ضروری است"
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "PLACEHOLDER": "لطفا API Key Secret را وارد کنید",
"ERROR": "پر کردن این فیلد ضروری است"
},
"MESSAGING_SERVICE_SID": {
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API key",
- "PLACEHOLDER": "لطفاً کلید Bandwith API خود را وارد کنید",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "پر کردن این فیلد ضروری است"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "لطفا Bandwith API Secret خود را وارد کنید",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "پر کردن این فیلد ضروری است"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "شروع به پشتیبانی از مشتریان از طریق واتس اپ.",
"PROVIDERS": {
"LABEL": "ارائه دهنده API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "واتساپ ابری",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "عنوان صندوق ورودی",
"PLACEHOLDER": "لطفاً نام صندوق ورودی را وارد کنید",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "رمز تأیید وب هوک",
- "PLACEHOLDER": "یک رمز تأیید را وارد کنید که می خواهید برای وب هوک های فیس بوک پیکربندی کنید.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "لطفا یک مقدار معتبر وارد کنید."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "توکن تایید Webhook"
},
"SUBMIT_BUTTON": "ایجاد کانال واتساپ",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "ما نتوانستیم کانال WhatsApp را ذخیره کنیم"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "شماره تلفن",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "شناسه SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth توکن",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "کانال API",
"DESC": "با کانال API ادغام شده و از مشتریان خود پشتیبانی کنید.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "آدرس URL وب هوک",
- "SUBTITLE": "آدرس کال بک خود را جهت دریافت اطلاعات رویداد های وارد کنید.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "آدرس URL وب هوک"
},
"SUBMIT_BUTTON": "ایجاد کانال API",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "کانال ایمیل",
- "DESC": "صندوق ورودی ایمیل خود را ادغام کنید.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "عنوان کانال",
"PLACEHOLDER": "لطفا اسم یک کانال را وارد کنید",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "کانال ایمیل ذخیره نشد"
},
- "FINISH_MESSAGE": "ایمیل های خود را به این آدرس ها فوروارد کنید."
+ "FINISH_MESSAGE": "ایمیل های خود را به این آدرس ها فوروارد کنید.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "اینجا کلیک کنید",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "کانال لاین",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "کانالی را انتخاب کنید",
- "DESC": "Chatwoot از ویجت های چت زنده، فیس بوک مسنجر، پروفایل های توییتر، واتساپ، ایمیل ها و غیره به عنوان کانال پشتیبانی می کند. اگر می خواهید یک کانال سفارشی بسازید، می توانید آن را با استفاده از کانال API ایجاد کنید. برای شروع، یکی از کانال های زیر را انتخاب کنید."
+ "DESC": "Chatwoot از ویجت های چت زنده، فیس بوک مسنجر، پروفایل های توییتر، واتساپ، ایمیل ها و غیره به عنوان کانال پشتیبانی می کند. اگر می خواهید یک کانال سفارشی بسازید، می توانید آن را با استفاده از کانال API ایجاد کنید. برای شروع، یکی از کانال های زیر را انتخاب کنید.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "وب سایت",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "فیسبوک",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "ایمیل",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "ایجنت ها",
"DESC": "در اینجا میتوانید ایجنت ها را به صندوق ورودی خود اختصاص دهید. توجه داشته باشید که فقط ایجنت هایی که در اینجا معرفی شده باشند میتوانند به پیامهای این صندوق پاسخ بدهند. دیگر ایجنت ها نخواهند توانست پیامهای این صندوق را ببینید یا به آنها پاسخی بدهند.
پانویس:به عنوان مدیر اگر میخواهید به همه صندوقهای ورودی دسترسی داشته باشید میبایست خود را به عنوان ایجنت به همه صندوقها اضافه کنید.",
- "VALIDATION_ERROR": "حداقل یک ایجنت به اینباکس جدید اضافه کنید",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "انتخاب ایجنت ها برای این صندوق ورودی"
},
"DETAILS": {
@@ -364,15 +527,23 @@
"TITLE": "ایمیل مایکروسافت",
"DESCRIPTION": "برای شروع روی دکمه Sign in with Microsoft کلیک کنید. شما به صفحه ورود به ایمیل هدایت خواهید شد. هنگامی که مجوزهای درخواستی را پذیرفتید، به مرحله ایجاد صندوق ورودی هدایت می شوید.",
"EMAIL_PLACEHOLDER": "آدرس ایمیل را وارد کنید",
- "HELP": "برای افزودن حساب مایکروسافت خود به عنوان کانال، باید با کلیک بر روی \"ورود به سیستم با مایکروسافت\" اکانت مایکروسافت خود را احراز هویت کنید.",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "هنگام اتصال به مایکروسافت خطایی روی داد، لطفاً دوباره امتحان کنید"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "آدرس ایمیل را وارد کنید",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "در حال احراز هویت با فیس بوک...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "اشکالی پیش آمد.. لطفا دوباره سعی کنید...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "ERROR_FB_UNAUTHORIZED": "شما اجازه انجام این کار را ندارید. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "لطفا مطمئن شوید که با کنترل کامل به صفحه فیس بوک دسترسی دارید. اینجا میتوانید درباره نقشهای فیسبوک بیشتر بخوانید راهنما.",
"CREATING_CHANNEL": "در حال ساخت صندوق ورودی...",
"TITLE": "تنظیمات صفحه ورودی",
"DESC": ""
@@ -386,7 +557,10 @@
"MESSAGE": "حالا از طریق این کانال جدید میتوانید با مشتریان صحبت کنید. به امید موفقیت",
"BUTTON_TEXT": "نشانم بده",
"MORE_SETTINGS": "تنظیمات بیشتر",
- "WEBSITE_SUCCESS": "ساختن کانال وب سایت با موفقیت انجام شد. قطعه کد زیر را کپی کرده و در سایت خود قرار دهید. در صورتیکه مشتری از ویجت پشتیبانی آنلاین استفاده کند گفتگوی شما در این صندوق ورودی ظاهر میشود."
+ "WEBSITE_SUCCESS": "ساختن کانال وب سایت با موفقیت انجام شد. قطعه کد زیر را کپی کرده و در سایت خود قرار دهید. در صورتیکه مشتری از ویجت پشتیبانی آنلاین استفاده کند گفتگوی شما در این صندوق ورودی ظاهر میشود.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "احراز هویت مجدد",
"VIEW": "نمایش",
@@ -406,19 +580,19 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "نام ارسال کننده",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
+ "FOR_EG": "به عنوان مثال:",
"FRIENDLY": {
"TITLE": "دوستانه",
"FROM": "از",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "نام اپراتوری که پاسخ را ارسال کرده است را به نام فرستنده اضافه کنید تا پیام دوستانه تر شود."
},
"PROFESSIONAL": {
"TITLE": "حرفه ای",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "SUBTITLE": "فقط از نام تجاری پیکربندی شده به عنوان نام فرستنده در هدر ایمیل استفاده کنید."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "نام کسب و کار خود را وارد کنید",
"PLACEHOLDER": "نام کسب و کار خود را وارد کنید",
"SAVE_BUTTON_TEXT": "ذخیره"
}
@@ -432,8 +606,10 @@
"DISABLED": "غیرفعال"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "فعال شد",
- "DISABLED": "غیرفعال شد"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "فعال"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "فرم پیش چت",
"BUSINESS_HOURS": "ساعت کاری",
"WIDGET_BUILDER": "سازنده ابزارک",
- "BOT_CONFIGURATION": "پیکربندی ربات"
+ "BOT_CONFIGURATION": "پیکربندی ربات",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "رضایت مشتری",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "زنده"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "تنظیمات",
"FEATURES": {
@@ -477,22 +753,38 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "اسکریپت ویجت",
"MESSENGER_SUB_HEAD": "این دکمه را در تگ body قرار دهید",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "ایجنت ها",
"INBOX_AGENTS_SUB_TEXT": "اضافه کردن یا حذف کردن دسترسی ایجنت به صندوق ورودی",
- "AGENT_ASSIGNMENT": "واگذاری مکالمه",
- "AGENT_ASSIGNMENT_SUB_TEXT": "تنظیمات واگذاری مکالمه را به روز کنید",
+ "AGENT_ASSIGNMENT": "اختصاص گفتگو",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "بروز رسانی تنظیمات اختصاص گفتگو",
"UPDATE": "اعمال شود",
"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/Disable showing Agent's name in email, if disabled it will show business name",
+ "SENDER_NAME_SECTION_TEXT": "فعال/غیرفعال کردن نمایش نام اپراتور در ایمیل، اگر غیرفعال باشد نام کسب و کار نشان داده می شود",
"ENABLE_CONTINUITY_VIA_EMAIL": "ادامه مکالمه را از طریق ایمیل فعال کنید",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "اگر آدرس ایمیل تماس در دسترس باشد، مکالمات از طریق ایمیل ادامه خواهد یافت.",
- "LOCK_TO_SINGLE_CONVERSATION": "قفل کردن مکالمه تکی",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "چند مکالمه را برای یک مخاطب در این صندوق ورودی فعال یا غیرفعال کنید",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "تنظیمات صندوق ورودی",
"INBOX_UPDATE_SUB_TEXT": "تغییر پارامترهای صندوق ورودی",
"AUTO_ASSIGNMENT_SUB_TEXT": "فعال کردن یا غیرفعال کردن واگذاری خودکار گفتگوها به ایجنت های عضو این صندوق ورودی.",
@@ -505,29 +797,101 @@
"INBOX_IDENTIFIER_SUB_TEXT": "از رمز `inbox_identifier` که در اینجا نشان داده شده است برای احراز هویت کلاینت های API خود استفاده کنید.",
"FORWARD_EMAIL_TITLE": "ارسال به ایمیل",
"FORWARD_EMAIL_SUB_TEXT": "ایمیل های خود را به این آدرس ها فوروارد کنید.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "اجازه دادن به پیام ها پس از حل شدن مکالمه",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "به کاربران اجازه دهید حتی پس از حل شدن مکالمه پیام ارسال کنند.",
"WHATSAPP_SECTION_SUBHEADER": "این کلید API برای ادغام با API های WhatsApp استفاده می شود.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "کلید به روز شده را وارد کنید تا از آن برای ادغام با واتساپ API استفاده شود.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API key",
"WHATSAPP_SECTION_UPDATE_TITLE": "کلید API را به روز کنید",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "کلید API جدید را در اینجا وارد کنید",
"WHATSAPP_SECTION_UPDATE_BUTTON": "اعمال شود",
- "WHATSAPP_WEBHOOK_TITLE": "رمز تأیید وب هوک",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "اتصال",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "شناسه اپلیکیشن واتساپ پیکربندی نشده است. لطفا با مدیر خود تماس بگیرید.",
+ "WHATSAPP_CONFIG_ID_MISSING": "شناسه پیکربندی واتساپ تنظیم نشده است. لطفا با مدیر خود تماس بگیرید.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "توکن تایید Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "این توکن برای تأیید صحت نقطه پایانی webhook استفاده می شود.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "بهروزرسانی تنظیمات فرم قبل از گفتگو"
},
"HELP_CENTER": {
"LABEL": "مرکز راهنما",
"PLACEHOLDER": "مرکز راهنما را انتخاب کنید",
"SELECT_PLACEHOLDER": "مرکز راهنما را انتخاب کنید",
+ "NONE": "هیچکدام",
"REMOVE": "مرکز راهنما را حذف کنید",
"SUB_TEXT": "یک مرکز راهنما را با صندوق ورودی پیوست کنید"
},
"AUTO_ASSIGNMENT": {
"MAX_ASSIGNMENT_LIMIT": "محدودیت تخصیص خودکار",
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "لطفا مقداری بزرگتر از عدد 0 وارد کنید",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "حداکثر تعداد مکالماتی را که می توان به طور خودکار به یک نماینده اختصاص داد، از این صندوق ورودی محدود کنید"
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "حداکثر تعداد مکالماتی را که می توان به طور خودکار به یک اپراتور اختصاص داد، از این صندوق ورودی محدود کنید"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "اختصاص گفتگو",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "فعال",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "انصراف",
+ "CONFIRM_DELETE": "حذف",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
},
"FACEBOOK_REAUTHORIZE": {
"TITLE": "احراز هویت مجدد",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "زبان",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "بازگشت"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT settings updated successfully",
+ "ERROR_MESSAGE": "We couldn't update CSAT settings. Please try again later."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "در دسترس بودن خود را تنظیم کنید",
"SUBTITLE": "زمان در دسترس بودن خود را بر روی چت زنده مشخص کنید",
@@ -569,11 +1003,13 @@
"UPDATE": "تنظیمات ساعات کاری را به روز کنید",
"TOGGLE_AVAILABILITY": "دسترس بودن کسب و کار را برای این صندوق فعال کردن",
"UNAVAILABLE_MESSAGE_LABEL": "پیامی برای بازدیدکنندگان در دسترس نیست",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TOGGLE_HELP": "فعال کردن در دسترس بودن کسب کار ، ساعات موجود در ویجت چت زنده را نشان می دهد حتی اگر همه اپراتور ها آفلاین باشند. خارج از ساعات موجود می توان با پیام و فرم قبل از چت ، به کاربران هشدار داد.",
"DAY": {
+ "DAY": "روز",
+ "AVAILABILITY": "در دسترس",
+ "HOURS": "Hours",
"ENABLE": "در دسترس بودن را برای این روز فعال کنید",
"UNAVAILABLE": "غیر قابل دسترسی",
- "HOURS": "ساعت",
"VALIDATION_ERROR": "زمان شروع باید قبل از زمان بسته شدن باشد.",
"CHOOSE": "انتخاب کنید"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "برای فعال کردن SMTP، لطفا IMAP را پیکربندی کنید.",
"UPDATE": "بهروزرسانی تنظیمات IMAP",
"TOGGLE_AVAILABILITY": "پیکربندی IMAP را برای این صندوق ورودی فعال کنید",
- "TOGGLE_HELP": "در حال فعال کردن IMAP به کاربر در دریافت ایمیل کمک میکند",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "تنظیمات IMAP با موفقیت بهروزرسانی شد",
"ERROR_MESSAGE": "بهروزرسانی تنظیمات IMAP ممکن نیست"
@@ -606,7 +1042,8 @@
"LABEL": "رمز عبور",
"PLACE_HOLDER": "رمز عبور"
},
- "ENABLE_SSL": "فعال کردن SSL"
+ "ENABLE_SSL": "فعال کردن SSL",
+ "AUTH_MECHANISM": "احراز هویت"
},
"MICROSOFT": {
"TITLE": "مایکروسافت",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "در یک روز"
},
"WIDGET_COLOR_LABEL": "رنگ ویجت",
- "WIDGET_BUBBLE_POSITION_LABEL": "موقعیت حباب ابزارک",
- "WIDGET_BUBBLE_TYPE_LABEL": "نوع حباب ابزارک",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "نوع:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "با ما گفتگو کنید",
- "LABEL": "عنوان ویجت Bubble",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "با ما گفتگو کنید"
},
"UPDATE": {
@@ -709,12 +1147,12 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "پیشفرض",
- "CHAT": "گفتگو"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "معمولاً در عرض چند دقیقه پاسخ دهی انجام می شود",
- "IN_A_FEW_HOURS": "معمولاً در عرض چند ساعت پاسخ می دهند",
- "IN_A_DAY": "به طور معمول در یک روز پاسخ دهی انجام می شود"
+ "IN_A_FEW_MINUTES": "معمولاً در عرض چند دقیقه پاسخ میدهیم",
+ "IN_A_FEW_HOURS": "معمولاً در عرض چند ساعت پاسخ میدهیم",
+ "IN_A_DAY": "معمولاً در عرض یک روز پاسخ میدهیم"
},
"FOOTER": {
"START_CONVERSATION_BUTTON_TEXT": "گفتگو را شروع کنید",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "مایکروسافت",
- "OTHER_PROVIDERS": "سایر ارائه دهندگان"
+ "MICROSOFT": {
+ "TITLE": "مایکروسافت",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "سایر ارائه دهندگان",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "وب سایت",
+ "TWITTER_PROFILE": "توییتر",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "ایمیل",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "کانال API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/index.js b/app/javascript/dashboard/i18n/locale/fa/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/fa/index.js
+++ b/app/javascript/dashboard/i18n/locale/fa/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
index 91f6f285d..a0243b4d3 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "واکشی ادغام ها",
- "NO_HOOK_CONFIGURED": "هیچ %{integrationId} ادغامی در این اکانت انجام نشده است.",
+ "NO_HOOK_CONFIGURED": "هیچ {integrationId} ادغامی در این اکانت انجام نشده است.",
"HEADER": "برنامه های کاربردی",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "فعال",
"DISABLED": "غیرفعال"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "واکشی ادغام های هوک",
"INBOX": "صندوق ورودی",
+ "ACTIONS": "عملیات",
"DELETE": {
"BUTTON_TEXT": "حذف"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "انتخاب صندوق ورودی"
},
"SUBMIT": "ايجاد كردن",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "انصراف"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "قعط کردن"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow یک بستر درک زبان طبیعی است که طراحی و ادغام رابط کاربری مکالمه را در برنامه تلفن همراه ، برنامه وب ، دستگاه ، ربات ، سیستم پاسخ صوتی تعاملی و غیره آسان می کند.
ادغام Dialogflow با %{installationName} به شما امکان می دهد ربات Dialogflow را با صندوق ورودی خود پیکربندی کنید که به ربات اجازه می دهد ابتدا درخواست ها را مدیریت کرده و در صورت نیاز به یک ایجنت تحویل دهد. از Dialogflow می توان برای تعیین امتیازات ، کاهش حجم کار ایجنت ها با ارائه سوالات متداول و غیره استفاده کرد.
برای افزودن Dialogflow ، باید یک حساب سرویس در کنسول پروژه Google خود ایجاد کرده و اعتبارنامه ها را به اشتراک بگذارید. لطفاً برای اطلاعات بیشتر به اسناد Dialogflow مراجعه کنید."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/integrations.json b/app/javascript/dashboard/i18n/locale/fa/integrations.json
index 14254c4bb..d81daa580 100644
--- a/app/javascript/dashboard/i18n/locale/fa/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fa/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "انصراف",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "برنامههای تلفیق شده",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "رویدادهای مشترک شده",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "انصراف",
"DESC": "رویدادهای وب هوک اطلاعات لحظهای حساب چت ووت شما را منتقل میکنند. لطفا آدرس URL صحیحی وارد کنید.",
@@ -16,12 +55,19 @@
"MESSAGE_UPDATED": "پیام به روز شد",
"WEBWIDGET_TRIGGERED": "ابزارک گفتگو زنده توسط کاربر باز شده است",
"CONTACT_CREATED": "مخاطب ایجاد شد",
- "CONTACT_UPDATED": "مخاطب بهروزرسانی شد"
+ "CONTACT_UPDATED": "مخاطب بهروزرسانی شد",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "آدرس URL وب هوک",
- "PLACEHOLDER": "به عنوان مثال: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "لطفا آدرس URL صحیحی وارد کنید"
},
"EDIT_SUBMIT": "بهروزرسانی وبهوک",
@@ -37,10 +83,10 @@
"LIST": {
"404": "هیچ وب هوکی برای این حساب ساخته نشده است",
"TITLE": "مدیریت وب هوکها",
- "TABLE_HEADER": [
- "آدرس مقصد وب هوک",
- "رویدادها"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "آدرس مقصد وب هوک",
+ "ACTIONS": "عملیات"
+ }
},
"EDIT": {
"BUTTON_TEXT": "ویرایش",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "تاییدیه حذف",
- "MESSAGE": "آیا برای حذف وبهوک مطمئن هستید؟ \n(%{webhookURL})",
+ "MESSAGE": "آیا برای حذف وبهوک مطمئن هستید؟ \n({webhookURL})",
"YES": "بله، حذف شود",
"NO": "خیر، بماند"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "حذف",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,13 +127,13 @@
},
"HELP_TEXT": {
"TITLE": "استفاده از اسلک",
- "BODY": "
ما اکنون تمام مکالمات ورودی را در کانال گفتگوهای مشتری داخل محل کار شما همگام سازی می کنیم.
پاسخ به یک رشته مکالمه در کانال مکالمه مشتری- مکالمات i> از طریق برنامه پاسخی به مشتری ایجاد می کند. p>
پاسخ ها را با شروع کنید توجه: برای ایجاد یادداشت های خصوصی به جای پاسخ ها.
اگر پاسخ دهنده در slack نمایه نماینده ای در برنامه تحت همان ایمیل داشته باشد ، پاسخ ها به همین ترتیب مرتبط می شوند. p>
وقتی ارسال کننده نمایه نماینده مرتبطی ندارد ، پاسخها از نمایه ربات انجام می شود.
",
- "SELECTED": "selected"
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "انتخاب شد"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "یک کانال انتخاب کنید",
"UPDATE": "اعمال شود",
- "BUTTON_TEXT": "Connect channel",
+ "BUTTON_TEXT": "اتصال کانال",
"DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
"ATTENTION_REQUIRED": "Attention required",
"EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
@@ -103,10 +150,10 @@
"CREATE_ERROR": "در ایجاد پیوند جلسه خطایی روی داد، لطفاً دوباره امتحان کنید"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "دستیار هوش مصنوعی",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
+ "REPLY_SUGGESTION": "پیشنهاد پاسخ",
"SUMMARIZE": "Summarize",
"REPHRASE": "Improve Writing",
"FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "حرفهای",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "دوستانه"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -144,13 +213,13 @@
"TONE": {
"TITLE": "Tone",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "حرفهای",
+ "FRIENDLY": "دوستانه"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "تولید",
+ "GENERATING": "در حال تولید...",
"CANCEL": "انصراف"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "اضافه کردن یک برنامه پیشخوان جدید",
"SIDEBAR_TXT": "برنامههای داشبورد
برنامههای داشبورد به سازمانها اجازه میدهند تا برنامهای را در داشبورد Chatwoot جاسازی کنند تا زمینه را برای عوامل پشتیبانی مشتری فراهم کنند. این ویژگی به شما این امکان را می دهد که به طور مستقل یک برنامه ایجاد کنید و آن را در داشبورد جاسازی کنید تا اطلاعات کاربر، سفارشات یا سابقه پرداخت قبلی آنها را ارائه کنید.
وقتی برنامه خود را با استفاده از داشبورد در Chatwoot جاسازی می کنید، برنامه شما این کار را انجام می دهد. زمینه گفتگو و تماس را به عنوان یک رویداد پنجره دریافت کنید. یک شنونده برای رویداد پیام در صفحه خود اجرا کنید تا زمینه را دریافت کنید.
برای افزودن یک برنامه داشبورد جدید، روی دکمه \"افزودن یک برنامه داشبورد جدید\" کلیک کنید.
",
"DESCRIPTION": "برنامههای داشبورد به سازمانها اجازه میدهند تا برنامهای را در داشبورد جاسازی کنند تا زمینه را برای عوامل پشتیبانی مشتری فراهم کنند. این ویژگی به شما این امکان را می دهد که به طور مستقل یک برنامه کاربردی ایجاد کنید و آن را برای ارائه اطلاعات کاربر، سفارشات یا سابقه پرداخت قبلی آنها درج کنید.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "هنوز هیچ برنامه داشبوردی روی این حساب پیکربندی نشده است",
"LOADING": "در حال واکشی برنامه های داشبورد...",
- "TABLE_HEADER": [
- "نام",
- "نقطه پایانی"
- ],
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "ENDPOINT": "نقطه پایانی",
+ "ACTIONS": "عملیات"
+ },
"EDIT_TOOLTIP": "ویرایش برنامه",
"DELETE_TOOLTIP": "حذف برنامه"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "بله، حذف شود",
"CONFIRM_NO": "خیر، بماند",
"TITLE": "تاییدیه حذف",
- "MESSAGE": "آیا مطمئن هستید که برنامه %{appName} حذف شود؟",
+ "MESSAGE": "آیا مطمئن هستید که برنامه {appName} حذف شود؟",
"API_SUCCESS": "برنامه پیشخوان با موفقیت حذف شد",
"API_ERROR": "ما نتوانستیم برنامه را حذف کنیم. لطفا بعدا دوباره امتحان کنید"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "ايجاد كردن",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "پیوند",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "عنوان",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "عنوان الزامی است"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "تیم",
+ "PLACEHOLDER": "انتخاب تیم",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "مسئول",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "اولویت",
+ "PLACEHOLDER": "انتخاب اولویت",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "برچسب",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "وضعیت",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "وضعیت",
+ "PRIORITY": "اولویت",
+ "ASSIGNEE": "مسئول",
+ "LABELS": "برچسبها",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "بله، حذف شود",
+ "CANCEL": "انصراف"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "اطلاعات بیشتر",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "دستیارها",
+ "SWITCH_ASSISTANT": "جابهجایی بین دستیارها",
+ "NEW_ASSISTANT": "ایجاد دستیار",
+ "EMPTY_LIST": "هیچ دستیار یافت نشد، لطفاً یکی ایجاد کنید تا شروع کنید"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "شروع به کار با Copilot",
+ "KICK_OFF_MESSAGE": "نیاز به خلاصه سریع، چک کردن مکالمات گذشته یا نوشتن پاسخ بهتر دارید؟ Copilot اینجا است تا سرعت کار را افزایش دهد.",
+ "SEND_MESSAGE": "ارسال پیام...",
+ "EMPTY_MESSAGE": "خطا در تولید پاسخ رخ داد. لطفاً دوباره تلاش کنید.",
+ "LOADER": "Captain در حال فکر کردن است",
+ "YOU": "شما",
+ "USE": "استفاده از این",
+ "RESET": "تنظیم مجدد",
+ "SHOW_STEPS": "نمایش مراحل",
+ "SELECT_ASSISTANT": "انتخاب دستیار",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "خلاصه این مکالمه",
+ "CONTENT": "نکات کلیدی مطرح شده بین مشتری و نماینده پشتیبانی شامل نگرانیها، سوالات و راهحلها یا پاسخهای ارائه شده را خلاصه کن"
+ },
+ "SUGGEST": {
+ "LABEL": "پیشنهاد پاسخ",
+ "CONTENT": "درخواست مشتری را تحلیل کن و پاسخی بنویس که به طور مؤثر نگرانیها یا سوالاتش را برطرف کند. مطمئن شو پاسخ واضح، مختصر و مفید باشد."
+ },
+ "RATE": {
+ "LABEL": "امتیاز دادن به این مکالمه",
+ "CONTENT": "مکالمه را بررسی کن تا ببینی چقدر نیازهای مشتری را پاسخ داده است. امتیازی از ۵ بر اساس لحن، وضوح و اثربخشی بده."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "مکالمات با اولویت بالا",
+ "CONTENT": "خلاصهای از همه مکالمات با اولویت بالا که باز هستند بدهید. شامل شناسه مکالمه، نام مشتری (در صورت موجود بودن)، محتوای پیام آخر و نماینده اختصاص داده شده. در صورت لزوم بر اساس وضعیت گروهبندی کنید."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "فهرست مخاطبین",
+ "CONTENT": "فهرست ۱۰ مخاطب برتر را نشان بده. شامل نام، ایمیل یا شماره تلفن (در صورت موجود بودن)، زمان آخرین حضور، برچسبها (در صورت وجود)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "شما",
+ "ASSISTANT": "دستیار",
+ "MESSAGE_PLACEHOLDER": "پیام خود را وارد کنید...",
+ "HEADER": "زمین بازی",
+ "DESCRIPTION": "از این زمین بازی استفاده کنید تا پیامهایی به دستیار خود بفرستید و بررسی کنید که پاسخها دقیق، سریع و با لحن مورد انتظار شما باشند.",
+ "CREDIT_NOTE": "پیامهای ارسال شده اینجا، از اعتبارهای Captain شما کسر خواهد شد."
+ },
+ "PAYWALL": {
+ "TITLE": "برای استفاده از Captain AI ارتقا دهید",
+ "AVAILABLE_ON": "Captain در پلن رایگان در دسترس نیست.",
+ "UPGRADE_PROMPT": "پلن خود را ارتقا دهید تا به دستیارها، Copilot و امکانات بیشتر دسترسی پیدا کنید.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI فقط در طرحهای Enterprise در دسترس است.",
+ "UPGRADE_PROMPT": "پلن خود را ارتقا دهید تا به دستیارها، Copilot و امکانات بیشتر دسترسی پیدا کنید.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ },
+ "BANNER": {
+ "RESPONSES": "بیش از ۸۰٪ از حد پاسخهای خود را استفاده کردهاید. برای ادامه استفاده از Captain AI لطفاً ارتقا دهید.",
+ "DOCUMENTS": "حد سندها به پایان رسید. برای ادامه استفاده از Captain AI پلن خود را ارتقا دهید."
+ },
+ "FORM": {
+ "CANCEL": "انصراف",
+ "CREATE": "ايجاد كردن",
+ "EDIT": "اعمال شود"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "نام",
+ "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": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "تنظیمات",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "عنوان",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "ايجاد كردن",
+ "CANCEL": "انصراف"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "انصراف",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "حذف",
+ "BULK_SYNC_BUTTON": "تازه کردن",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "در حال بهروزرسانی...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "صفحه یافت نشد",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "باز کردن صورتحساب",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "هیچکدام",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "رمز عبور",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "نوع"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "شماره",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "ضروری"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "حذف",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "همه"
+ },
+ "STATUS": {
+ "TITLE": "وضعیت",
+ "PENDING": "در انتظار",
+ "APPROVED": "Approved",
+ "ALL": "همه"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "ویرایش",
+ "DELETE_RESPONSE": "حذف"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "قعط کردن"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "بله، حذف شود",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "صندوق ورودی",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
index 2230e35bc..f03f21bcb 100644
--- a/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fa/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "برچسبها",
"HEADER_BTN_TXT": "افزودن برچسب",
"LOADING": "درحال گرفتن برچسبها",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "جستجو برچسبها...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "هیچ آیتمی با این مشخصات یافت نشد",
- "SIDEBAR_TXT": "\n برچسب ها\n
برچسب ها به شما در دسته بندی مکالمات و اولویت بندی آنها کمک می کند. می توانید برچسب را به یک مکالمه از نوار کناری اختصاص دهید.\n
\n
\n برچسب ها به حساب گره خورده اند و می توانند برای ایجاد گردش کار سفارشی در سازمان شما استفاده شوند. می توانید رنگ سفارشی را به برچسب اختصاص دهید ، شناسایی برچسب آسان تر می شود. شما می توانید برچسب را در نوار کناری نمایش دهید تا مکالمه ها به راحتی فیلتر شود.\n
",
"LIST": {
"404": "هیچ برچسبی در این حسابکاربری وجود ندارد.",
"TITLE": "مدیریت برچسبها",
"DESC": "برچسبها به شما اجازه میدهند، گفتگوها را با هم گروهبندی کنید.",
- "TABLE_HEADER": [
- "نام",
- "توضیحات",
- "رنگ"
- ]
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "DESCRIPTION": "توضیحات",
+ "COLOR": "رنگ",
+ "ACTION": "عملیات"
+ }
},
"FORM": {
"NAME": {
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "اضافه کردن برچسب به گفتگو",
+ "MULTIPLE_SUGGESTION": "انتخاب این برچسب",
+ "DESELECT": "برچسب را از حالت انتخاب خارج کن",
+ "DISMISS": "بستن پیشنهاد ها"
},
"POWERED_BY": "Chatwoot AI",
"DISMISS": "نادیده بگیر",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_SELECTED_LABELS": "اضافه کردن برچسبهای انتخاب شده",
+ "ADD_SELECTED_LABEL": "اضافه کردن برچسب انتخاب شده",
+ "ADD_ALL_LABELS": "اضافه کردن همه برچسب ها",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "افزودن برچسب",
diff --git a/app/javascript/dashboard/i18n/locale/fa/login.json b/app/javascript/dashboard/i18n/locale/fa/login.json
index 70c05892c..3ad23c7cd 100644
--- a/app/javascript/dashboard/i18n/locale/fa/login.json
+++ b/app/javascript/dashboard/i18n/locale/fa/login.json
@@ -3,7 +3,7 @@
"TITLE": "ورود به چت ووت",
"EMAIL": {
"LABEL": "ایمیل",
- "PLACEHOLDER": "ایمیل به عنوان مثال: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "لطفا ایمیل خود را به شکل صحیح وارد کنید"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "رمز عبورتان را فراموش کردید؟",
"CREATE_NEW_ACCOUNT": "حساب جدید بسازید",
- "SUBMIT": "ورود"
+ "SUBMIT": "ورود",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/macros.json b/app/javascript/dashboard/i18n/locale/fa/macros.json
index ff97a08ae..8611bac30 100644
--- a/app/javascript/dashboard/i18n/locale/fa/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fa/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "ماکروها",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "افزودن ماکرو جدید",
"HEADER_BTN_TXT_SAVE": "ذخیره ماکرو",
"LOADING": "در حال گرفتن ماکروها",
- "SIDEBAR_TXT": "ماکروها
یک ماکرو مجموعه ای از اقدامات ذخیره شده است که به نمایندگی های خدمات مشتری کمک می کند تا وظایف را به راحتی انجام دهند. نمایندگان می توانند مجموعه ای از اقدامات مانند برچسب گذاری یک مکالمه با برچسب، ارسال متن ایمیل، به روز رسانی یک ویژگی سفارشی و غیره را تعریف کنند و می توانند این اقدامات را با یک کلیک اجرا کنند. هنگامی که عامل ها ماکرو را اجرا می کنند، اقدامات به ترتیب به ترتیبی که تعریف شده اند انجام می شوند. ماکروها بهره وری را بهبود می بخشند و ثبات در اقدامات را افزایش می دهند.
یک ماکرو از دو جهت می تواند مفید باشد.
بهعنوان کمک عامل: اگر یک عامل مجموعهای از اقدامات را چندین بار انجام دهد، میتواند آن را بهعنوان یک ماکرو ذخیره کند و همه اقدامات را با هم با یک کلیک انجام دهد. p>
بهعنوان گزینهای برای حضور در یک عضو تیم: هر نماینده باید در طول هر مکالمه، بررسیها/عملکردهای مختلفی را انجام دهد. در صورتی که ماکروهای از پیش تعریف شده در حساب موجود باشد، ورود به یک عضو تیم پشتیبانی جدید آسان خواهد بود. به جای توصیف هر مرحله با جزئیات، مدیر/سرپرست تیم میتواند به ماکروهای مورد استفاده در سناریوهای مختلف اشاره کند.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "مشکلی پیش آمد. لطفا دوباره تلاش کنید",
"ORDER_INFO": "ماکروها به ترتیبی که اقدامات خود را اضافه می کنید اجرا می شوند. می توانید با کشیدن آنها توسط دسته کنار هر گره آنها را دوباره مرتب کنید.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "نام",
- "ايجاد شده توسط",
- "آخرین بهروزرسانی توسط",
- "دید"
- ],
+ "TABLE_HEADER": {
+ "NAME": "نام",
+ "CREATED BY": "ايجاد شده توسط",
+ "LAST_UPDATED_BY": "آخرین بهروزرسانی توسط",
+ "VISIBILITY": "دید",
+ "ACTIONS": "عملیات"
+ },
"404": "هیچ ماکروی یافت نشد"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "هنگام حذف ماکرو خطایی رخ داد. لطفا بعدا دوباره امتحان کنید"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "ویرایش ماکرو",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "دید ماکرو",
"GLOBAL": {
"LABEL": "عمومی",
- "DESCRIPTION": "این ماکرو به صورت عمومی برای همه نمایندگان این حساب در دسترس است."
+ "DESCRIPTION": "این ماکرو به صورت عمومی برای همه نمایندگان این حساب در دسترس است.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "خصوصی",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "اجرا کردن",
"PREVIEW": "پیشنمایش ماکرو",
"EXECUTED_SUCCESSFULLY": "ماکرو با موفقیت اجرا شد"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "مقدار الزامی است",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "هیچکدام",
+ "LOW": "پایین",
+ "MEDIUM": "متوسط",
+ "HIGH": "بالا",
+ "URGENT": "فوری"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/mfa.json b/app/javascript/dashboard/i18n/locale/fa/mfa.json
new file mode 100644
index 000000000..cdb33555b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "فعال شد",
+ "DISABLED": "غیرفعال شد",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "0",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "کپی",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "انصراف",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "دانلود",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "رمز عبور",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "انصراف",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "انصراف",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/onboarding.json b/app/javascript/dashboard/i18n/locale/fa/onboarding.json
new file mode 100644
index 000000000..0d82fc988
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "ایمیل",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "وب سایت",
+ "LANGUAGE": "زبان",
+ "TIMEZONE": "منطقه زمانی",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "منطقه زمانی را انتخاب کنید",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "در حال ذخیره...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/report.json b/app/javascript/dashboard/i18n/locale/fa/report.json
index b171704d1..7dcb86b77 100644
--- a/app/javascript/dashboard/i18n/locale/fa/report.json
+++ b/app/javascript/dashboard/i18n/locale/fa/report.json
@@ -3,9 +3,9 @@
"HEADER": "گفتگوها",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
- "DOWNLOAD_AGENT_REPORTS": "دانلود گزارش ایجنت",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "خطا در دریافت اطلاعات، لطفا بعدا دوباره تلاش کنید.",
+ "SUMMARY_FETCHING_FAILED": "خطا در دریافت خلاصه، لطفا بعدا دوباره تلاش کنید.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -23,57 +23,43 @@
"NAME": "اولین زمان پاسخگویی",
"DESC": "( میانگین )",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان پاسخ اول %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان پاسخ اول {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_TIME": {
"NAME": "زمان تا حل شدن مساله",
"DESC": "( میانگین )",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان اتمام گفتگو %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان اتمام گفتگو {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_COUNT": {
"NAME": "تعداد مسائل حل شده",
"DESC": "( جمع کل )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "تعداد مسائل حل شده",
+ "DESC": "( جمع کل )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "تعداد پاسخ های رباتی",
+ "DESC": "( جمع کل )"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "زمان انتظار مشتری",
+ "TOOLTIP_TEXT": "زمان انتظار {metricValue} (بر اساس {conversationCount} پاسخ)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "در ۷ روز گذشته",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "در ۳۰ روز گذشته",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "۳ ماه گذشته",
"LAST_6_MONTHS": "۶ ماه گذشته",
"LAST_YEAR": "پارسال",
"CUSTOM_DATE_RANGE": "محدوده تاریخ سفارشی"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "در ۷ روز گذشته"
- },
- {
- "id": 1,
- "name": "در ۳۰ روز گذشته"
- },
- {
- "id": 0,
- "name": "۳ ماه گذشته"
- },
- {
- "id": 0,
- "name": "۶ ماه گذشته"
- },
- {
- "id": 0,
- "name": "پارسال"
- },
- {
- "id": 0,
- "name": "محدوده تاریخ سفارشی"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "درخواست دادن",
"PLACEHOLDER": "محدوده تاریخ را انتخاب کنید"
@@ -130,14 +116,28 @@
"groupBy": "ماه"
}
],
- "BUSINESS_HOURS": "ساعت کاری"
+ "BUSINESS_HOURS": "ساعت کاری",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "پاک کردن فیلتر",
+ "EMPTY_LIST": "نتیجهای یافت نشد"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "نمای کلی ایجنت ها",
+ "HEADER": "نمای کلی اپراتور ها",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_AGENT_REPORTS": "دانلود گزارش ایجنت",
"FILTER_DROPDOWN_LABEL": "انتخاب ایجنت",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "جستجوی اپراتور"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -155,13 +155,13 @@
"NAME": "اولین زمان پاسخگویی",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان پاسخ اول %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان پاسخ اول {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_TIME": {
"NAME": "زمان تا حل شدن مساله",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان اتمام گفتگو %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان اتمام گفتگو {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_COUNT": {
"NAME": "تعداد مسائل حل شده",
@@ -201,10 +201,16 @@
},
"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": "دانلود گزارش برچسب ها",
"FILTER_DROPDOWN_LABEL": "برچسب را انتخاب کنید",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "جستجو برچسبها"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -222,13 +228,13 @@
"NAME": "اولین زمان پاسخگویی",
"DESC": "( میانگین )",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان پاسخ اول %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان پاسخ اول {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_TIME": {
"NAME": "زمان تا حل شدن مساله",
"DESC": "( میانگین )",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان اتمام گفتگو %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان اتمام گفتگو {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_COUNT": {
"NAME": "تعداد مسائل حل شده",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "نمای کلی صندوق ورودی",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_INBOX_REPORTS": "دانلود گزارش های صندوق ورودی",
"FILTER_DROPDOWN_LABEL": "انتخاب صندوق ورودی",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -289,13 +303,13 @@
"NAME": "اولین زمان پاسخگویی",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان پاسخ اول %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان پاسخ اول {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_TIME": {
"NAME": "زمان تا حل شدن مساله",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان اتمام گفتگو %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان اتمام گفتگو {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_COUNT": {
"NAME": "تعداد مسائل حل شده",
@@ -308,7 +322,7 @@
"name": "در ۷ روز گذشته"
},
{
- "id": 0,
+ "id": "۱",
"name": "در ۳۰ روز گذشته"
},
{
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "نمای کلی تیم",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "در حال دریافت اطلاعات...",
"NO_ENOUGH_DATA": "متاسفانه اطلاعات کافی دریافت نشد، لطفا بعدا دوباره امتحان کنید",
"DOWNLOAD_TEAM_REPORTS": "دانلود گزارشات تیم",
"FILTER_DROPDOWN_LABEL": "تیم را انتخاب کنید",
+ "FILTERS": {
+ "ADD_FILTER": "افزودن فیلتر",
+ "CLEAR_ALL": "حذف همه",
+ "NO_FILTER": "هیچ فیلتری موجود نیست",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "جستجوی تیم"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "گفتگوها",
@@ -356,13 +379,13 @@
"NAME": "اولین زمان پاسخگویی",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان پاسخ اول %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان پاسخ اول {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_TIME": {
"NAME": "زمان تا حل شدن مساله",
"DESC": "« میانگین »",
"INFO_TEXT": "تعداد کل مکالمات مورد استفاده برای محاسبه:",
- "TOOLTIP_TEXT": "زمان اتمام گفتگو %{metricValue} (بر اساس %{conversationCount} گفتگو)"
+ "TOOLTIP_TEXT": "زمان اتمام گفتگو {metricValue} (بر اساس {conversationCount} گفتگو)"
},
"RESOLUTION_COUNT": {
"NAME": "تعداد مسائل حل شده",
@@ -375,7 +398,7 @@
"name": "در ۷ روز گذشته"
},
{
- "id": 0,
+ "id": "۱",
"name": "در ۳۰ روز گذشته"
},
{
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "گزارشات رضایت مشتری",
- "NO_RECORDS": "هیچ پاسخ برای نظرسنجی رضایت مشتری در دسترس نیست.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "دانلود گزارش CSAT",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "DOWNLOAD_FAILED": "خطا در دانلود گزارش های CSAT",
"FILTERS": {
+ "ADD_FILTER": "افزودن فیلتر",
+ "CLEAR_ALL": "حذف همه",
+ "NO_FILTER": "هیچ فیلتری موجود نیست",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "جستجوی اپراتور",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "جستجوی تیم",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "ایجنت را انتخاب کنید"
+ "LABEL": "ایجنت"
+ },
+ "INBOXES": {
+ "LABEL": "صندوق ورودی"
+ },
+ "TEAMS": {
+ "LABEL": "تیم"
+ },
+ "RATINGS": {
+ "LABEL": "رتبه"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "مخاطب",
- "AGENT_NAME": "ایجنت تعیین شده",
+ "AGENT_NAME": "ایجنت",
"RATING": "رتبه",
- "FEEDBACK_TEXT": "نظر ثبت شده"
- }
+ "FEEDBACK_TEXT": "نظر ثبت شده",
+ "CONVERSATION": "گفتگو",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "مجموع پاسخ ها",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "نرخ پاسخ",
"TOOLTIP": "تعداد کل پاسخ ها / تعداد کل پیام های نظرسنجی رضایت مشتری ارسال شده از 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "ذخیره",
+ "CANCEL": "انصراف",
+ "SAVING": "در حال ذخیره...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "گزارشهای ربات",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "تعداد گفتگوها",
+ "TOOLTIP": "تعداد کل گفتگوهای رسیدگی شده توسط ربات"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "مجموع پاسخ ها",
+ "TOOLTIP": "تعداد کل پاسخ های ارسال شده توسط ربات"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "نرخ حل شدن مساله",
+ "TOOLTIP": "تعداد کل گفتگوهای حل شده توسط ربات / تعداد کل گفتگو های رسیدگی شده توسط ربات * ۱۰۰"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "نرخ پاسخ ربات",
+ "TOOLTIP": "تعداد کل گفتگوهایی که به اپراتور ها اختصاص داده شده / تعداد کل گفتگوهایی که توسط ربات رسیدگی شده * ۱۰۰"
}
}
},
@@ -447,13 +536,21 @@
"CONVERSATION_HEATMAP": {
"HEADER": "ترافیک گفتگو",
"NO_CONVERSATIONS": "بدون هیچ گفتگویی",
- "CONVERSATION": "%{count} گفتگو",
- "CONVERSATIONS": "%{count} گفتگو"
+ "CONVERSATION": "{count} گفتگو",
+ "CONVERSATIONS": "{count} گفتگو",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "بدون هیچ گفتگویی",
+ "CONVERSATION": "{count} گفتگو",
+ "CONVERSATIONS": "{count} گفتگو",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "گفتگوهای ایجنت ها",
- "LOADING_MESSAGE": "در حال بارگیری معیارهای ایجنت...",
- "NO_AGENTS": "هیچ مکالمه ای توسط ایجنت ها وجود ندارد",
+ "HEADER": "گفتگوهای اپراتور ها",
+ "LOADING_MESSAGE": "در حال بارگیری معیارهای اپراتور...",
+ "NO_AGENTS": "هیچ مکالمه ای توسط اپراتور ها وجود ندارد",
"TABLE_HEADER": {
"AGENT": "ایجنت",
"OPEN": "باز",
@@ -461,8 +558,20 @@
"STATUS": "وضعیت"
}
},
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "تیم",
+ "OPEN": "باز",
+ "UNATTENDED": "بی سرپرست",
+ "STATUS": "وضعیت"
+ }
+ },
"AGENT_STATUS": {
- "HEADER": "وضعیت ایجنت",
+ "HEADER": "وضعیت اپراتور",
"ONLINE": "آنلاین",
"BUSY": "مشغول",
"OFFLINE": "آفلاین"
@@ -476,5 +585,66 @@
"THURSDAY": "پنجشنبه",
"FRIDAY": "جمعه",
"SATURDAY": "شنبه"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "گزارشهای SLA",
+ "NO_RECORDS": "گفتگویی که SLA در آن اعمال شده باشد در دسترس نیست.",
+ "LOADING": "در حال دریافت اطلاعات SLA...",
+ "DOWNLOAD_SLA_REPORTS": "دانلود گزارش SLA",
+ "DOWNLOAD_FAILED": "خطا در دانلود گزارش های SLA",
+ "DROPDOWN": {
+ "ADD_FIlTER": "افزودن فیلتر",
+ "CLEAR_ALL": "حذف همه",
+ "CLEAR_FILTER": "پاک کردن فیلتر",
+ "EMPTY_LIST": "نتیجهای یافت نشد",
+ "NO_FILTER": "هیچ فیلتری موجود نیست",
+ "SEARCH": "فیلتر جستجو",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "نام SLA",
+ "AGENTS": "اسم ایجنت",
+ "INBOXES": "نام صندوق ورودی",
+ "LABELS": "نام برچسب",
+ "TEAMS": "نام تیم"
+ },
+ "SLA": "سیاست SLA",
+ "INBOXES": "صندوق ورودی",
+ "AGENTS": "ایجنت",
+ "LABELS": "برچسب",
+ "TEAMS": "تیم"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "نرخ برخورد",
+ "TOOLTIP": "درصد SLA های ایجاد شده که با موفقیت رعایت شده"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "تعداد از دست رفته",
+ "TOOLTIP": "تعداد SLA های نقض شده در یک بازه زمانی"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "تعداد گفتگوها",
+ "TOOLTIP": "تعداد گفتگوهای مطابق با SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "سیاست",
+ "CONVERSATION": "گفتگو",
+ "AGENT": "ایجنت"
+ },
+ "VIEW_DETAILS": "مشاهده جزئیات"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "تعداد مسائل حل شده",
+ "CONVERSATIONS": "تعداد گفتگوها"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/resetPassword.json b/app/javascript/dashboard/i18n/locale/fa/resetPassword.json
index c2af536c9..703ff1d97 100644
--- a/app/javascript/dashboard/i18n/locale/fa/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/fa/resetPassword.json
@@ -1,8 +1,8 @@
{
"RESET_PASSWORD": {
"TITLE": "تغییر رمز عبور",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "آدرس ایمیلی را که برای ورود به Chatwoot استفاده میکنید وارد کنید تا دستورالعملهای بازیابی رمز عبور را دریافت کنید.",
+ "GO_BACK_TO_LOGIN": "اگر می خواهید به صفحه ورود به سیستم بازگردید،",
"EMAIL": {
"LABEL": "ایمیل",
"PLACEHOLDER": "لطفا ایمیل خود را وارد کنید.",
@@ -10,7 +10,7 @@
},
"API": {
"SUCCESS_MESSAGE": "لینک ریست کردن رمز عبور به ایمیلتان ارسال شد.",
- "ERROR_MESSAGE": "متاسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید"
+ "ERROR_MESSAGE": "متأسفانه ارتباط با سرور برقرار نشد، مجددا امتحان کنید."
},
"SUBMIT": "ثبت"
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/search.json b/app/javascript/dashboard/i18n/locale/fa/search.json
index 278115f5e..a06efcd1c 100644
--- a/app/javascript/dashboard/i18n/locale/fa/search.json
+++ b/app/javascript/dashboard/i18n/locale/fa/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "همه",
+ "ALL": "All results",
"CONTACTS": "مخاطبین",
"CONVERSATIONS": "گفتگوها",
- "MESSAGES": "پیامها"
+ "MESSAGES": "پیامها",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "مخاطبین",
"CONVERSATIONS": "گفتگوها",
- "MESSAGES": "پیامها"
+ "MESSAGES": "پیامها",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "هیچ %{item} برای درخواست '%{query}' یافت نشد",
- "EMPTY_STATE_FULL": "هیچ نتیجه ای برای پرس و جو «%{query}» یافت نشد",
- "PLACEHOLDER_KEYBINDING": "/ برای تمرکز",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "در حال جستجو",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "هیچ {item} برای درخواست '{query}' یافت نشد",
+ "EMPTY_STATE_FULL": "هیچ نتیجه ای برای پرس و جو «{query}» یافت نشد",
+ "PLACEHOLDER_KEYBINDING": "/برای تمرکز",
"INPUT_PLACEHOLDER": "جستجوی پیامها، مخاطبین یا گفتگوها",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "حذف همه",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "جستجو بر اساس شناسه گفتگو، ایمیل، شماره تلفن، پیامها برای نتایج جستجوی بهتر.",
"BOT_LABEL": "ربات",
"READ_MORE": "ادامه مطلب",
+ "READ_LESS": "Read less",
"WROTE": "نوشت:",
"FROM": "از",
- "EMAIL": "ایمیل"
+ "EMAIL": "ایمیل",
+ "EMAIL_SUBJECT": "موضوع",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "در ۷ روز گذشته",
+ "LAST_30_DAYS": "در ۳۰ روز گذشته",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "و",
+ "APPLY": "درخواست دادن",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "پاک کردن فیلتر"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "فرستنده",
+ "IN": "صندوق ورودی",
+ "AGENTS": "ایجنت ها",
+ "CONTACTS": "مخاطبین",
+ "INBOXES": "صندوقهای ورودی",
+ "NO_AGENTS": "اپراتوری یافت نشد",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/setNewPassword.json b/app/javascript/dashboard/i18n/locale/fa/setNewPassword.json
index 860b03759..376952c97 100644
--- a/app/javascript/dashboard/i18n/locale/fa/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/fa/setNewPassword.json
@@ -1,13 +1,13 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set new password",
+ "TITLE": "رمز جدید",
"PASSWORD": {
"LABEL": "رمز عبور",
"PLACEHOLDER": "رمز عبور",
"ERROR": "رمز عبور خیلی کوتاه است."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
+ "LABEL": "تکرار رمز عبور",
"PLACEHOLDER": "لطفا رمز عبور را مجددا وارد کنید",
"ERROR": "تکرار رمز عبور میبایست با رمز عبور یکسان باشد."
},
diff --git a/app/javascript/dashboard/i18n/locale/fa/settings.json b/app/javascript/dashboard/i18n/locale/fa/settings.json
index f8790b224..49ec42840 100644
--- a/app/javascript/dashboard/i18n/locale/fa/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "رمز عبورتان عوض شد",
"AFTER_EMAIL_CHANGED": "پروفایلتان با موفقیت تغییر یافت، اطلاعات ورود به سیستم تغییر کرده لذا لطفا مجددا به سیستم وارد شوید",
"FORM": {
+ "PICTURE": "عکس نمایه",
"AVATAR": "عکس پروفایل",
"ERROR": "لطفا ایرادات ذکر شده را برطرف کنید",
"REMOVE_IMAGE": "حذف",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "پیشفرض",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "امضای پیام شخصی",
"NOTE": "یک امضای منحصر به فرد ایجاد کنید تا در انتهای تمام پیام هایی که از هر صندوق ورودی ارسال می کنید نمایش داده شود. همچنین میتوانید یک تصویر درون خطی اضافه کنید که در چت، ایمیل و صندوقهای ورودی API پشتیبانی میشود.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "امضا با موفقیت ذخیره شد",
"IMAGE_UPLOAD_ERROR": "تصویر ارسال نشد! دوباره امتحان کنید",
"IMAGE_UPLOAD_SUCCESS": "تصویر با موفقیت اضافه شد. لطفا بر روی ذخیره کلیک کنید تا امضا ذخیره شود",
- "IMAGE_UPLOAD_SIZE_ERROR": "اندازه تصویر باید کمتر از {size} مگابایت باشد"
+ "IMAGE_UPLOAD_SIZE_ERROR": "اندازه تصویر باید کمتر از {size} مگابایت باشد",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "امضای پیام",
@@ -54,15 +81,45 @@
"NOTE": "تغییر دادن رمز عبور باعث میشود مجبور شوید دوباره به سیستم وارد شوید",
"BTN_TEXT": "تغییر رمز عبور"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "توکن دسترسی",
- "NOTE": "از این توکن برای دسترسی از طریق API استفاده میشود"
+ "NOTE": "از این توکن برای دسترسی از طریق API استفاده میشود",
+ "COPY": "کپی",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "توکن دسترسی با موفقیت بازسازی شد",
+ "RESET_ERROR": "خطا در بازسازی توکن دسترسی. لطفا مجدد امتحان کنید"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "اعلان های صوتی",
- "NOTE": "اعلان های صوتی را در داشبورد برای پیام ها و مکالمات جدید فعال کنید.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "هیچکدام",
+ "MINE": "اختصاص داده",
+ "ALL": "همه",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "رویدادهای هشدار:",
+ "TITLE": "Alert events for conversations",
"NONE": "هیچکدام",
"ASSIGNED": "مکالمات اختصاص داده شده",
"ALL_CONVERSATIONS": "همه گفتگوها"
@@ -74,7 +131,9 @@
"TITLE": "شرطهای هشدار:",
"CONDITION_ONE": "فقط در صورتی که پنجره مرورگر فعال نباشد، هشدارهای صوتی را ارسال کنید",
"CONDITION_TWO": "هر 30 ثانیه یک بار هشدار ارسال کنید تا زمانی که تمام مکالمات اختصاص داده شده خوانده شود"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "ادامه مطلب"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "اعلامیه به ایمیل",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "هر وقت گفتگوی جدیدی شروع شد برای من ایمیل بفرست",
"CONVERSATION_MENTION": "هنگامی که از شما در گفتگو نام برده میشود، از طریق ایمیل آگاهسازی ارسال کن",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "با ایجاد پیام جدید در مکالمه اختصاصی ، اعلان های ایمیل را ارسال کنید",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "هنگامی که یک پیام جدید در یک مکالمه شرکت کننده ایجاد می شود، اعلان های ایمیل ارسال کنید"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "هنگامی که یک پیام جدید در یک مکالمه شرکت کننده ایجاد می شود، اعلان های ایمیل ارسال کنید",
+ "SLA_MISSED_FIRST_RESPONSE": "هر وقت گفتگویی سیاست SLA مربوط به اولین زمان پاسخ را نقض کرد ایمیل ارسال کن",
+ "SLA_MISSED_NEXT_RESPONSE": "هر وقت گفتگویی سیاست SLA مربوط به زمان پاسخ بعدی را نقض کرد ایمیل ارسال کن",
+ "SLA_MISSED_RESOLUTION": "هر وقت گفتگویی سیاست SLA مربوط به زمان حل موضوع را نقض کرد ایمیل ارسال کن"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "تنظیمات آگاهسازی",
+ "TYPE_TITLE": "نوع آگاهسازی",
+ "EMAIL": "ایمیل",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "تغییرات تنظیمات اعلامیهها با موفقیت ثبت شد",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "وقتی پیام جدیدی در مکالمه اختصاص داده شده ایجاد می شود ، پوش نوتیفیکیشن را ارسال کنید",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "هنگامی که یک پیام جدید در یک مکالمه شرکت کننده ایجاد می شود، اعلان فشار ارسال کنید",
"HAS_ENABLED_PUSH": "در این مرورگر پوش نوتیفیکیشن را فعال کردهاید",
- "REQUEST_PUSH": "فعال کردن پوش نوتیفیکیشن"
+ "REQUEST_PUSH": "فعال کردن پوش نوتیفیکیشن",
+ "SLA_MISSED_FIRST_RESPONSE": "هر وقت گفتگویی سیاست SLA مربوط به اولین زمان پاسخ را نقض کرد پوش ارسال کن",
+ "SLA_MISSED_NEXT_RESPONSE": "هر وقت گفتگویی سیاست SLA مربوط به زمان پاسخ بعدی را نقض کرد پوش ارسال کن",
+ "SLA_MISSED_RESOLUTION": "هر وقت گفتگویی سیاست SLA مربوط به زمان حل موضوع را نقض کرد پوش ارسال کن"
},
"PROFILE_IMAGE": {
"LABEL": "عکس پروفایل"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "در دسترس",
- "STATUSES_LIST": [
- "آنلاین",
- "مشغول",
- "آفلاین"
- ],
+ "STATUS": {
+ "ONLINE": "آنلاین",
+ "BUSY": "مشغول",
+ "OFFLINE": "آفلاین"
+ },
"SET_AVAILABILITY_SUCCESS": "در دسترس بودن با موفقیت تنظیم شد",
- "SET_AVAILABILITY_ERROR": "در دسترس بودن تنظیم نشد، لطفا دوباره امتحان کنید"
+ "SET_AVAILABILITY_ERROR": "در دسترس بودن تنظیم نشد، لطفا دوباره امتحان کنید",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "ایمیل شما",
@@ -147,25 +230,35 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "تغییر",
- "CHANGE_ACCOUNTS": "سوییچ به یک حساب دیگر",
- "CONTACT_SUPPORT": "با پشتیبانی تماس بگیرید",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "از لیست یکی از حسابها را انتخاب کنید",
- "PROFILE_SETTINGS": "تنظیمات پروفایل",
- "KEYBOARD_SHORTCUTS": "میانبرهای صفحهکلید",
- "APPEARANCE": "تغییر ظاهر",
- "SUPER_ADMIN_CONSOLE": "کنسول سوپر مدیر",
- "LOGOUT": "خروج از حسابکاربری"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "روز تا اتمام دوره آزمایشی باقی است.",
"TRAIL_BUTTON": "الان بخرید",
"DELETED_USER": "کاربر حذف شده",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "EMAIL_VERIFICATION_PENDING": "ظاهرا هنوز ایمیل خود را تایید نکرده اید. لطفا ایمیل خود را برای تایید بررسی کنید.",
+ "RESEND_VERIFICATION_MAIL": "ارسال مجدد ایمیل تایید",
+ "EMAIL_VERIFICATION_SENT": "ایمیل تایید ارسال شد. لطفا ایمیل خود را بررسی کنید.",
"ACCOUNT_SUSPENDED": {
"TITLE": "حسابکاربری معلق شده است",
"MESSAGE": "حسابکاربری شما به حالت تعلیق درآمده. لطفا برای اطلاعات بیشتر با تیم پشتیبانی تماس بگیرید."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "دانلود",
"UPLOADING": "در حال آپلود...",
- "INSTAGRAM_STORY_UNAVAILABLE": "این داستان دیگر در دسترس نیست."
+ "INSTAGRAM_STORY_UNAVAILABLE": "این داستان دیگر در دسترس نیست.",
+ "INSTAGRAM_STORY_REPLY": "به استوری شما پاسخ داده:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "مشاهده بر روی نقشه"
},
"FORM_BUBBLE": {
"SUBMIT": "ثبت"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "در حال تایید...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "در حال مشاهده:",
"SWITCH": "تعویض",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "گفتگوها",
- "INBOX": "صندوق ورودی",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "همه گفتگوها",
"MENTIONED_CONVERSATIONS": "اشاره",
"PARTICIPATING_CONVERSATIONS": "شرکت کننده",
@@ -208,6 +308,18 @@
"REPORTS": "گزارشات",
"SETTINGS": "تنظیمات",
"CONTACTS": "مخاطبین",
+ "ACTIVE": "فعال",
+ "COMPANIES": "شرکت ها",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "صندوقهای ورودی",
+ "CAPTAIN_SETTINGS": "تنظیمات",
"HOME": "صفحه اصلی",
"AGENTS": "ایجنت ها",
"AGENT_BOTS": "رباتها",
@@ -234,51 +346,269 @@
"NEW_INBOX": "صندوق ورودی جدید",
"REPORTS_CONVERSATION": "گفتگوها",
"CSAT": "رضایت مشتری",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "کمپین ها",
"ONGOING": "درحال انجام",
"ONE_OFF": "یکبار مصرف",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "ربات",
"REPORTS_AGENT": "ایجنت ها",
"REPORTS_LABEL": "برچسبها",
"REPORTS_INBOX": "صندوق ورودی",
"REPORTS_TEAM": "تیم",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "خود را به عنوان",
+ "SET_YOUR_AVAILABILITY": "در دسترس بودن خود را تنظیم کنید",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "آزمایشی",
"REPORTS_OVERVIEW": "بررسی اجمالی",
- "FACEBOOK_REAUTHORIZE": "اتصال فیس بوک شما منقضی شده است ، لطفاً برای ادامه خدمات دوباره صفحه فیس بوک خود را متصل کنید",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "مرکز راهنما",
- "ALL_ARTICLES": "همه مقالات",
- "MY_ARTICLES": "مقالات من",
- "DRAFT": "پیشنویس",
- "ARCHIVED": "بایگانی شد",
- "CATEGORY": "دستهبندی",
- "SETTINGS": "تنظیمات",
- "CATEGORY_EMPTY_MESSAGE": "هیچ دستهبندیای یافت نشد"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "دستهبندیها",
+ "LOCALES": "زبانهای محلی",
+ "SETTINGS": "تنظیمات"
},
+ "CHANNELS": "کانالها",
"SET_AUTO_OFFLINE": {
"TEXT": "علامت گذاری خودکار به صورت آفلاین",
- "INFO_TEXT": "هنگامی که از برنامه یا پیشخوان استفاده نمیکنید، به سیستم اجازه دهید به طور خودکار شما را به صورت آفلاین علامت گذاری کند."
+ "INFO_TEXT": "هنگامی که از برنامه یا پیشخوان استفاده نمیکنید، به سیستم اجازه دهید به طور خودکار شما را به صورت آفلاین علامت گذاری کند.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "اسناد را بخوانید"
+ "DOCS": "اسناد را بخوانید",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "امکانات",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "صورتحساب",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "طرح فعلی",
- "PLAN_NOTE": "شما در حال حاضر مشترک طرح **%{plan}** با مجوز **%{quantity}** هستید"
+ "PLAN_NOTE": "شما در حال حاضر مشترک طرح **{plan}** با مجوز **{quantity}** هستید",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "اشتراک خود را مدیریت کنید",
"DESCRIPTION": "فاکتورهای قبلی خود را مشاهده کنید، جزئیات صورتحساب خود را ویرایش کنید یا اشتراک خود را لغو کنید.",
"BUTTON_TXT": "برو به پورتال صورتحساب"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "تازه کردن"
+ },
"CHAT_WITH_US": {
"TITLE": "به کمک احتياج داری؟",
"DESCRIPTION": "آیا در صورتحساب با مشکلی مواجه هستید؟ ما اینجاییم تا کمک کنیم.",
"BUTTON_TXT": "با ما گفتگو کنید"
},
- "NO_BILLING_USER": "صورتحساب حساب شما در حال پیکربندی است. لطفا صفحه را مجددا بارگزاری کرده و دوباره تلاش کنید."
+ "NO_BILLING_USER": "صورتحساب حساب شما در حال پیکربندی است. لطفا صفحه را مجددا بارگزاری کرده و دوباره تلاش کنید.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "یادداشت:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "انصراف",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "بازگشت",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "کد به حافظه کپی شد",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "جستجو ویژگی ها"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "گفتگو حل شده",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "گفتگو حل شده",
+ "CANCEL": "انصراف"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "بله",
+ "NO": "خیر"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "اوه اوه! ما هیچ حسابی روی Chatwoot پاز شما پیدا نکردیم. لطفاً برای ادامه یک حساب جدید ایجاد کنید.",
@@ -294,7 +624,8 @@
"LABEL": "نام شرکت",
"PLACEHOLDER": "شرکت ایران ناسیونال"
},
- "SUBMIT": "ثبت"
+ "SUBMIT": "ثبت",
+ "CANCEL": "انصراف"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "به نوار کناری گزارش ها بروید",
"MOVE_TO_NEXT_TAB": "به برگه بعدی در فهرست مکالمه بروید",
"GO_TO_SETTINGS": "برو به تنظیمات",
- "SWITCH_CONVERSATION_STATUS": "به وضعیت مکالمه بعدی بروید",
"SWITCH_TO_PRIVATE_NOTE": "رفتن به یادداشت خصوصی",
"SWITCH_TO_REPLY": "رفتن به پاسخ",
"TOGGLE_SNOOZE_DROPDOWN": "تغییر حالت بازکردن تعویق"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "اولویت",
+ "ACTIVE": "فعال",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "ویرایش"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "انصراف"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "وضعیت:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "افزودن"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "ویرایش"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "انصراف"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "توضیحات:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "افزودن"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "حذف",
+ "CANCEL_BUTTON_LABEL": "انصراف"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/signup.json b/app/javascript/dashboard/i18n/locale/fa/signup.json
index fef19a0cb..e0b3dcf41 100644
--- a/app/javascript/dashboard/i18n/locale/fa/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fa/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "ایجاد حساب کاربری",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "ثبت نام",
"TESTIMONIAL_HEADER": "تنها چیزی که لازم است یک قدم برای حرکت به جلو است",
"TESTIMONIAL_CONTENT": "شما یک قدم تا جذب مشتریان خود، حفظ آنها و یافتن مشتریان جدید فاصله دارید.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "ایمیل کاری",
- "PLACEHOLDER": "ایمیل کاری خود را وارد کنید به عنوان مثال: jafari@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "لطفا یک آدرس ایمیل کاری معتبر وارد کنید"
},
"PASSWORD": {
"LABEL": "رمز عبور",
"PLACEHOLDER": "رمز عبور",
"ERROR": "رمز عبور خیلی کوتاه است",
- "IS_INVALID_PASSWORD": "رمز عبور باید شامل حداقل ۱ حرف بزرگ، ۱ حرف کوچک، ۱ عدد و ۱ کاراکتر خاص باشد"
+ "IS_INVALID_PASSWORD": "رمز عبور باید شامل حداقل ۱ حرف بزرگ، ۱ حرف کوچک، ۱ عدد و ۱ کاراکتر خاص باشد",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "تکرار رمز عبور",
"PLACEHOLDER": "تکرار رمز عبور",
- "ERROR": "رمز عبور و تکرار رمز عبور یکسان نیستند"
+ "ERROR": "تکرار رمز عبور میبایست با رمز عبور یکسان باشد."
},
"API": {
- "SUCCESS_MESSAGE": "ثبت نام با موفقیت انجام شد",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "ارتباط با سرور برقرار نشد، لطفا بعدا امتحان کنید"
},
"SUBMIT": "ایجاد حساب کاربری",
- "HAVE_AN_ACCOUNT": "از قبل حسابکاربری دارید؟"
+ "HAVE_AN_ACCOUNT": "از قبل حسابکاربری دارید؟",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "ارسال مجدد ایمیل تایید",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/sla.json b/app/javascript/dashboard/i18n/locale/fa/sla.json
index 3c11516ce..e283f3402 100644
--- a/app/javascript/dashboard/i18n/locale/fa/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fa/sla.json
@@ -1,53 +1,83 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "هیچ گزینهای با این شرایط پیدا نشد",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "اضافه کردن SLA",
+ "ADD_ACTION_LONG": "ایجاد سیاست SLA جدید",
+ "DESCRIPTION": "قراردادهای سطح خدمات (SLA) قراردادهایی هستند که انتظارات واضحی را بین تیم شما و مشتریان تعریف می کنند. آنها استانداردهایی را برای زمان پاسخگویی و حل موضوعات تعریف می کنند، در قالب چارچوبی مه برای پاسخگویی ایجاد می کنند تجربه ای پایدار و با کیفیت را به مشتری ارائه می کنند.",
+ "LEARN_MORE": "اطلاعات بیشتری درباره SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "در حال گرفتن SLAها",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "برای ایجاد SLA بروز رسانی کنید",
+ "AVAILABLE_ON": "قابلیت SLA فقط در نسخه Business و Enterprise وجود دارد.",
+ "UPGRADE_PROMPT": "برای دسترسی به ویژگیهای پیشرفته مانند مدیریت تیم، اتوماسیون، ویژگیهای سفارشی و موارد دیگر، طرح خود را ارتقا دهید.",
+ "UPGRADE_NOW": "حالا ارتقا دهید",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "قابلیت SLA فقط در نسخه Business و Enterprise وجود دارد.",
+ "UPGRADE_PROMPT": "برای دسترسی به ویژگیهای پیشرفته مانند گزارشهای حسابرسی، ظرفیت اپراتور و غیره، به یک طرح پولی ارتقا دهید.",
+ "ASK_ADMIN": "لطفاً برای ارتقا با ادمین خود تماس بگیرید."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "نام",
- "توضیحات",
- "FRT",
- "NRT",
- "RT",
- "ساعت کاری"
- ]
+ "404": "هیچ SLA در این حسابکاربری وجود ندارد.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "مسائلی که توسط مشتریان سازمانی مطرح می شود و نیاز به توجه فوری دارد.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "مسائلی که توسط مشتریان سازمانی مطرح می شود، باید به سرعت مورد تایید قرار گیرد."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "آستانه زمان اولین پاسخ",
+ "NRT": "آستانه زمان پاسخ بعدی",
+ "RT": "آستانه زمان حل موضوع",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
+ "LABEL": "نام SLA",
+ "PLACEHOLDER": "نام SLA",
+ "REQUIRED_ERROR": "نام SLA الزامی است",
"MINIMUM_LENGTH_ERROR": "باید بیشتر از 2 کاراکتر باشد",
"VALID_ERROR": "فقط حروف ، اعداد ، خط تیره و زیر خط مجاز است"
},
"DESCRIPTION": {
"LABEL": "توضیحات",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "SLA برای مشتریان پولی"
},
"FIRST_RESPONSE_TIME": {
"LABEL": "اولین زمان پاسخگویی",
- "PLACEHOLDER": "۵"
+ "PLACEHOLDER": "0"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
- "PLACEHOLDER": "۵"
+ "LABEL": "زمان پاسخگویی بعدی",
+ "PLACEHOLDER": "0"
},
"RESOLUTION_TIME": {
"LABEL": "زمان تا حل شدن مساله",
- "PLACEHOLDER": "60"
+ "PLACEHOLDER": "۶۰"
},
"BUSINESS_HOURS": {
"LABEL": "ساعت کاری",
- "PLACEHOLDER": "Only during business hours"
+ "PLACEHOLDER": "تنها در طول ساعات کاری"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "آستانه باید یک عدد و بزرگتر از صفر باشد"
},
"EDIT": "ویرایش",
"CREATE": "ايجاد كردن",
@@ -55,19 +85,33 @@
"CANCEL": "انصراف"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "اضافه کردن SLA",
+ "DESC": "وعده های دوستانه برای خدمات عالی!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA با موفقیت اضافه شد",
"ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "حذف SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA با موفقیت حذف شد",
"ERROR_MESSAGE": "خطایی پیش آمد. لطفا دوباره امتحان کنید"
+ },
+ "CONFIRM": {
+ "TITLE": "تاییدیه حذف",
+ "MESSAGE": "آیا مطمئن هستید که می خواهید حذف کنید ",
+ "YES": "بله، حذف شود ",
+ "NO": "خیر، نگهدار "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA های از دست رفته",
+ "FRT": "زمان تا اولین پاسخ",
+ "NRT": "زمان پاسخگویی بعدی",
+ "RT": "زمان تا حل شدن مساله",
+ "SHOW_MORE": "{count} بیشتر",
+ "HIDE": "مخفی کردم {count} مورد"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/snooze.json b/app/javascript/dashboard/i18n/locale/fa/snooze.json
new file mode 100644
index 000000000..fda794853
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "ساعت",
+ "DAY": "روز",
+ "DAYS": "days",
+ "WEEK": "روز",
+ "WEEKS": "weeks",
+ "MONTH": "هفته",
+ "MONTHS": "months",
+ "YEAR": "ماه",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "فردا",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "هفته بعد",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "روز",
+ "DAY": "روز"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
index 81131a359..b1bb021ea 100644
--- a/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fa/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "ایجاد تیم جدید",
"HEADER": "تیمها",
- "SIDEBAR_TXT": "تیمها
تیمها به شما امکان میدهند ایجنت های خود را بر اساس مسئولیتهایشان در گروههایی سازماندهی کنید.
یک ایجنت می تواند بخشی از چندین تیم باشد. وقتی به صورت مشترک کار می کنید، می توانید مکالمات را به یک تیم اختصاص دهید.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "جستجوی تیم...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "هیچ تیمی در این حساب ایجاد نشده است.",
- "EDIT_TEAM": "ویرایش تیم"
+ "EDIT_TEAM": "ویرایش تیم",
+ "NONE": "هیچکدام"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "افزودن ایجنت به تیم",
- "TITLE": "افزودن اپراتور به تیم - %{teamName}",
+ "TITLE": "افزودن اپراتور به تیم - {teamName}",
"DESC": "ایجنت ها را به تیم تازه ایجاد شده خود اضافه کنید. این به شما امکان می دهد به عنوان یک تیم در گفتگوها همکاری کنید ، در رویدادهای جدید در همان مکالمه مطلع شوید."
},
- "WIZARD": [
- {
- "title": "ايجاد كردن",
- "route": "settings_teams_new",
- "body": "یک تیم جدید از ایجنت ها ایجاد نمایید."
- },
- {
- "title": "معرفی اپراتور",
- "route": "settings_teams_add_agents",
- "body": "ایجنت ها را به تیم اضافه کنید."
- },
- {
- "title": "پایان",
- "route": "settings_teams_finish",
- "body": "دیگه میتونی بترکونی"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "ايجاد كردن",
+ "BODY": "یک تیم جدید از ایجنت ها ایجاد نمایید."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "معرفی ایجنت",
+ "BODY": "ایجنت ها را به تیم اضافه کنید."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "پایان",
+ "BODY": "دیگه میتونی بترکونی"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,26 +44,24 @@
},
"AGENTS": {
"BUTTON_TEXT": "ایجنت ها را در تیم به روز کنید",
- "TITLE": "افزودن اپراتور به تیم - %{teamName}",
+ "TITLE": "افزودن اپراتور به تیم - {teamName}",
"DESC": "ایجنت ها را به تیم تازه ایجاد شده خود اضافه کنید. وقتی مکالمه ای به این تیم اختصاص داده شود ، به همه ایجنت ها اضافه شده اطلاع داده می شود."
},
- "WIZARD": [
- {
- "title": "جزئیات تیم",
- "route": "settings_teams_edit",
- "body": "نام ، توضیحات و سایر جزئیات را تغییر دهید."
- },
- {
- "title": "تغییر ایجنت ها",
- "route": "settings_teams_edit_members",
- "body": "ایجنت ها تیم خود را ویرایش کنید."
- },
- {
- "title": "پایان",
- "route": "settings_teams_edit_finish",
- "body": "دیگه میتونی بترکونی"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "جزئیات تیم",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "نام ، توضیحات و سایر جزئیات را تغییر دهید."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "تغییر ایجنت ها",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "ایجنت ها تیم خود را ویرایش کنید."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "پایان",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "دیگه میتونی بترکونی"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "جزئیات تیم ذخیره نشد. دوباره امتحان کنید."
@@ -74,16 +73,16 @@
"ADD_AGENTS": "افزودن ایجنت ها به تیم شما...",
"SELECT": "انتخاب کنید",
"SELECT_ALL": "انتخاب تمام ایجنت ها",
- "SELECTED_COUNT": "%{selected} تا از %{total} ایجنت انتخاب شد."
+ "SELECTED_COUNT": "{selected} تا از {total} ایجنت انتخاب شد."
},
"ADD": {
- "TITLE": "افزودن اپراتور به تیم - %{teamName}",
+ "TITLE": "افزودن اپراتور به تیم - {teamName}",
"DESC": "ایجنت ها را به تیم تازه ایجاد شده خود اضافه کنید. این به شما امکان می دهد به عنوان یک تیم در گفتگوها همکاری کنید ، در رویدادهای جدید در همان مکالمه مطلع شوید.",
"SELECT": "انتخاب کنید",
"SELECT_ALL": "انتخاب تمام ایجنت ها",
- "SELECTED_COUNT": "%{selected} تا از %{total} ایجنت انتخاب شد.",
+ "SELECTED_COUNT": "{selected} تا از {total} ایجنت انتخاب شد.",
"BUTTON_TEXT": "اضافه کردن اپراتور",
- "AGENT_VALIDATION_ERROR": "حداقل یک ایجنت را انتخاب کنید."
+ "AGENT_VALIDATION_ERROR": "حداقل یک اپراتور را انتخاب کنید."
},
"FINISH": {
"TITLE": "تیم شما آماده است!",
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "تیم حذف نشد. دوباره امتحان کنید."
},
"CONFIRM": {
- "TITLE": "آیا مطمئن هستید که می خواهید حذف کنید - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "برای تایید لطفا {teamName} را تایپ کنید",
"MESSAGE": "با حذف تیم ، وظایف تیم از مکالمات اختصاص داده شده به این تیم حذف می شود.",
"YES": "حذف ",
diff --git a/app/javascript/dashboard/i18n/locale/fa/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/fa/whatsappTemplates.json
index 0f1b1a5e7..d8b2f0281 100644
--- a/app/javascript/dashboard/i18n/locale/fa/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/fa/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "قالب های واتساپ",
- "SUBTITLE": "قالب واتساپ مورد نظر برای ارسال را انتخاب کنید",
- "TEMPLATE_SELECTED_SUBTITLE": "فرآیند %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "جستجوی الگوها",
- "NO_TEMPLATES_FOUND": "هیچ قالبی برای",
- "LABELS": {
- "LANGUAGE": "زبان",
- "TEMPLATE_BODY": "بدنه الگو",
- "CATEGORY": "دستهبندی"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "متغیرها",
- "VARIABLE_PLACEHOLDER": "مقدار %{variable} را وارد کنید",
- "GO_BACK_LABEL": "بازگشت",
- "SEND_MESSAGE_LABEL": "ارسال پیام",
- "FORM_ERROR_MESSAGE": "لطفا قبل از ارسال همه متغیرها را پر کنید"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "قالب های واتساپ",
+ "SUBTITLE": "قالب واتساپ مورد نظر برای ارسال را انتخاب کنید",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "جستجوی الگوها",
+ "NO_TEMPLATES_FOUND": "هیچ قالبی برای",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "دستهبندی",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "زبان",
+ "TEMPLATE_BODY": "بدنه الگو",
+ "CATEGORY": "دستهبندی"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "متغیرها",
+ "LANGUAGE": "زبان",
+ "CATEGORY": "دستهبندی",
+ "VARIABLE_PLACEHOLDER": "مقدار {variable} را وارد کنید",
+ "GO_BACK_LABEL": "بازگشت",
+ "SEND_MESSAGE_LABEL": "ارسال پیام",
+ "FORM_ERROR_MESSAGE": "لطفا قبل از ارسال همه متغیرها را پر کنید",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/fa/yearInReview.json b/app/javascript/dashboard/i18n/locale/fa/yearInReview.json
new file mode 100644
index 000000000..532a36725
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fa/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "بستن",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "گفتگوها",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "دانلود",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "اشتراک گذاری گفتگو"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json
index 31d6c696e..f8d4e2f29 100644
--- a/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fi/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/fi/agentBots.json b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
index af614da2a..d2787550f 100644
--- a/app/javascript/dashboard/i18n/locale/fi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fi/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Toiminnot"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
index 81cf67bbf..1111f6684 100644
--- a/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Edustajat",
"HEADER_BTN_TXT": "Lisää edustaja",
"LOADING": "Haetaan Edustajalistaa",
- "SIDEBAR_TXT": "Edustajat
An Edustaja on jäsenenä asiakastukitiimissäsi.
Edustajat voivat katsella ja vastata viesteihin asiakkailtasi. Luettelo näyttää kaikki edustajat, jotka ovat tällä hetkellä tililläsi.
Klikkaa Lisää edustaja lisätäksesi uuden edustajan. Edustaja, jonka lisäät, saa sähköpostiviestin, jossa on vahvistuslinkki tilin aktivointiin, jonka jälkeen he voivat käyttää Chatwoot -sovellusta ja vastata viesteihin.
Pääsy Chatwoot'n ominaisuuksiin perustuu seuraaviin rooleihin.
Edustaja - Tällä roolilla toimivat edustajat voivat käyttää vain saapuneita, raportteja ja keskusteluja. He voivat määrittää keskusteluja muille edustajille tai itse ratkaista keskusteluja.
Ylläpitäjä - Ylläpitäjällä on pääsy kaikkiin Chatwoot ominaisuuksiin, jotka ovat käytössä tililläsi, mukaan lukien asetukset sekä kaikki normaalien asiamiesten oikeudet.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Ylläpitäjä",
"AGENT": "Edustajat"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tälle tilille ei ole liitetty edustajia",
"TITLE": "Hallitse edustajia tiimissäsi",
@@ -17,7 +19,8 @@
"STATUS": "Tila",
"ACTIONS": "Toiminnot",
"VERIFIED": "Vahvistettu",
- "VERIFICATION_PENDING": "Vahvistus odottaa"
+ "VERIFICATION_PENDING": "Vahvistus odottaa",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Lisää edustaja tiimiisi",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Edustajia ei löytynyt",
diff --git a/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
index 7b7927cf9..ffe1d6246 100644
--- a/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Mukautetut attribuutit",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Etsi määritteitä...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Yritys"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Luo",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Poista ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Mukautetut attribuutit",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Yritys"
},
"LIST": {
- "TABLE_HEADER": [
- "Nimi",
- "Kuvaus",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "DESCRIPTION": "Kuvaus",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Muokkaa",
"DELETE": "Poista"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/auditLogs.json b/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
index 2d03ea352..67a9ae2e8 100644
--- a/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fi/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP-osoite"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP-osoite"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 a60377e9b..308ce35c8 100644
--- a/app/javascript/dashboard/i18n/locale/fi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Luo",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nimi",
- "Kuvaus",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Toiminnot"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Lähetetään...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Sisäinen merkintä",
+ "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",
+ "COMPANY_NAME": "Yritys",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Tunnisteet"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
index 7bb45133f..6ff1b217a 100644
--- a/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fi/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Mene takaisin",
- "ASSIGN_LABEL": "Delegoi",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Peruuta",
+ "SEARCH_INPUT_PLACEHOLDER": "Etsi",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/campaign.json b/app/javascript/dashboard/i18n/locale/fi/campaign.json
index cb2f5f8d5..45679751a 100644
--- a/app/javascript/dashboard/i18n/locale/fi/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/fi/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Peruuta",
- "CREATE_BUTTON_TEXT": "Luo",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Käytössä",
+ "DISABLED": "Pois käytöstä"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Viesti",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Lähettäjä",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Anna kelvollinen URL-osoite"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Lähettäjä",
+ "BOT": "Botti",
+ "FROM": "lähettäjä",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Peruuta",
+ "CREATE_BUTTON_TEXT": "Luo",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Viesti",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Lähettäjä",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Anna kelvollinen URL-osoite"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Poista",
- "CONFIRM": {
- "TITLE": "Vahvista poistaminen",
- "MESSAGE": "Oletko varma että haluat poistaa?",
- "YES": "Kyllä, poista ",
- "NO": "Ei, säilytä "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Peruuta",
+ "CREATE_BUTTON_TEXT": "Luo",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Viesti",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Peruuta",
+ "CREATE_BUTTON_TEXT": "Luo",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Muuttujat",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Oletko varma että haluat poistaa?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Poista",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Päivitä",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Viesti",
- "INBOX": "Inbox",
- "STATUS": "Tila",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Muokkaa",
- "DELETE": "Poista"
- },
- "STATUS": {
- "ENABLED": "Käytössä",
- "DISABLED": "Pois käytöstä",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Botti"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
index 9bc26933a..1a5e74828 100644
--- a/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Tallennetut vastaukset",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Tällä tilillä ei ole tallennettuja vastauksia.",
"TITLE": "Hallitse tallennettuja vastauksia",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Sisältö",
- "Toiminnot"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Sisältö",
+ "ACTIONS": "Toiminnot"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/fi/chatlist.json b/app/javascript/dashboard/i18n/locale/fi/chatlist.json
index db03034d0..3ba1e9bf0 100644
--- a/app/javascript/dashboard/i18n/locale/fi/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fi/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Tässä ryhmässä ei ole aktiivisia keskusteluja."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Keskustelut",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Sijainti"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "on jakanut URL-osoitteen"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/companies.json b/app/javascript/dashboard/i18n/locale/fi/companies.json
new file mode 100644
index 000000000..dbdf39f8b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nimi",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Yhteystiedot",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Etsi määritteitä...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Ladataan yhteystietoja...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Yritys",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Peruuta"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nimi",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/components.json b/app/javascript/dashboard/i18n/locale/fi/components.json
new file mode 100644
index 000000000..ef02db5c6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Tuloksia ei löytynyt.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Tuloksia ei löytynyt.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Peruuta",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/contact.json b/app/javascript/dashboard/i18n/locale/fi/contact.json
index 842c97dd6..ac8d32016 100644
--- a/app/javascript/dashboard/i18n/locale/fi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fi/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP-osoite",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "Uusi viesti",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Tähän yhteystietoon ei liity aikaisempia keskusteluja.",
"TITLE": "Edelliset keskustelut"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Mukautetut attribuutit",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Edelliset keskustelut"
+ "PREVIOUS_CONVERSATIONS": "Edelliset keskustelut",
+ "NO_RECORDS_FOUND": "Määritteitä ei löytynyt"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Muokkaa yhteystietoa",
"DESC": "Muokkaa yhteystietoja"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Uusi kontakti",
- "TITLE": "Luo uusi kontakti",
- "DESC": "Lisää kontaktin yhteystiedot."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Peruuta"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Vahvista poistaminen",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "Ei, säilytä"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Poista Yhteystieto",
"TITLE": "Poista yhteystieto",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Yhteystiedot",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Etsi",
- "SEARCH_INPUT_PLACEHOLDER": "Etsi yhteystietoja",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Poista suodatin",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Ladataan yhteystietoja...",
- "404": "Ei hakua vastaavia yhteystietoja 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Nimi",
- "PHONE_NUMBER": "Puhelinnumero",
- "CONVERSATIONS": "Keskustelut",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Yritys",
- "EMAIL_ADDRESS": "Sähköpostiosoite"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Yhteystiedot",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "keskustelut"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Lisää määritteitä",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Kopioitu leikepöydälle onnistuneesti",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Yhteenveto",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Yhdistä yhteystiedot",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Yhteystiedot",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Viesti",
+ "SEND_MESSAGE": "Lähetä viesti",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Yhteystiedot"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Tämä sähköpostiosoite on käytössä toiselle yhteyshenkilölle.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Kontakti tallennettu onnistuneesti",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Vaihda",
+ "CANCEL": "Peruuta",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nimi",
+ "EMAIL": "Sähköposti",
+ "PHONE_NUMBER": "Puhelinnumero",
+ "COMPANY": "Yritys",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Vahvista poistaminen",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Kyllä, poista",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nimi",
+ "EMAIL": "Sähköposti",
+ "PHONE_NUMBER": "Puhelinnumero",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Yritys",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Muokkaa yhteystietoja",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Tämä sähköpostiosoite on käytössä toiselle yhteyshenkilölle."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Anna yrityksen nimi"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Poista yhteystieto",
+ "DELETE_DIALOG": {
+ "TITLE": "Vahvista poistaminen",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Kyllä, poista",
+ "API": {
+ "SUCCESS_MESSAGE": "Yhteystiedon poistaminen onnistui",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Tähän yhteystietoon ei liity aikaisempia keskusteluja"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Valitse arvo",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Kelvollinen arvo vaaditaan",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Virheellinen URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Määritteitä ei löytynyt",
+ "API": {
+ "SUCCESS_MESSAGE": "Tunniste päivitetty onnistuneesti",
+ "DELETE_SUCCESS_MESSAGE": "Attribuutin poisto onnistui",
+ "UPDATE_ERROR": "Attribuuttia ei voida päivittää. Yritä myöhemmin uudelleen",
+ "DELETE_ERROR": "Attribuuttia ei voida poistaa. Yritä uudelleen myöhemmin"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Yhdistä yhteystieto",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Ensisijainen kontakti",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Poistetaan",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Etsi yhteystietoa",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Peruuta",
+ "CONFIRM": "Yhdistä yhteystieto"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "Sinä",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Ei hakua vastaavia yhteystietoja 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Poista",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Poista yhteystieto"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Näytä",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Muuttujat",
+ "BACK": "Mene takaisin",
+ "SEND_MESSAGE": "Lähetä viesti"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Mene takaisin",
+ "SEND_MESSAGE": "Lähetä viesti"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/contactFilters.json b/app/javascript/dashboard/i18n/locale/fi/contactFilters.json
index 64228b69b..1455520ce 100644
--- a/app/javascript/dashboard/i18n/locale/fi/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fi/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Nimi",
"EMAIL": "Sähköposti",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Tunnisteet"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/fi/contentTemplates.json b/app/javascript/dashboard/i18n/locale/fi/contentTemplates.json
new file mode 100644
index 000000000..56aba3a69
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Etsi Pohjia",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Muuttujat",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Mene Takaisin",
+ "SEND_MESSAGE_LABEL": "Lähetä Viesti",
+ "FORM_ERROR_MESSAGE": "Täytä kaikki muuttujat ennen lähettämistä",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Takaisin",
+ "SEND_MESSAGE_BUTTON": "Lähetä Viesti"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/conversation.json b/app/javascript/dashboard/i18n/locale/fi/conversation.json
index 648321301..8dcc36570 100644
--- a/app/javascript/dashboard/i18n/locale/fi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fi/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " päästäksesi alkuun",
"NO_INBOX_AGENT": "Voi ei! Näyttää siltä, että et kuulu mihinkään saapuneet-kansioon. Ota yhteyttä työnantajaasi",
"SEARCH_MESSAGES": "Etsi viestejä keskusteluissa",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Ladataan keskusteluita",
"CANNOT_REPLY": "Et voi vastata, sillä",
"24_HOURS_WINDOW": "24h vastausikkuna",
+ "48_HOURS_WINDOW": "48h 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Ladataan liitteitä...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Arvio",
"FEEDBACK_TITLE": "Palaute",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Ratkaise",
"REOPEN_ACTION": "Uudelleenavaa",
"OPEN_ACTION": "Avaa",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Näytä",
"CLOSE": "Sulje",
"DETAILS": "tiedot",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Edustajat",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Avaa keskustelu uudelleen",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Vaihto + enter siirtyäksesi uudelle riville. Aloita '/' valitaksesi tallennettu vastaus.",
"PRIVATE_MSG_INPUT": "Vaihto + enter siirtyäksesi uudelle riville. Tämä näkyy vain edustajille",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Anna copilottiin lisäkehotteita tai kysy mitä tahansa... Paina Enter lähettääksesi jatkokysymyksen",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "WhatsApp-pohjat"
},
"REPLYBOX": {
"REPLY": "Vastaa",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot ajattelee",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "Lähetä",
"CANCEL": "Peruuta"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Yksityinen huomautus: Näkyy vain sinulle ja tiimillesi",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Lähettäjä:",
"BOT": "Botti",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Viestiä ei voitu lähettää! Yritä uudelleen",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Poista",
"CANCEL": "Peruuta"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Peruuta",
"SEND_EMAIL_SUCCESS": "Chat-keskustelu on lähetetty onnistuneesti",
"SEND_EMAIL_ERROR": "Tapahtui virhe, yritä uudelleen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Lähetä keskustelu asiakkaalle",
"SEND_TO_AGENT": "Lähetä keskustelu edustajalle",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Odottava",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "Määritteitä ei löytynyt",
"UPDATE": {
"SUCCESS": "Tunniste päivitetty onnistuneesti",
"ERROR": "Attribuuttia ei voida päivittää. Yritä myöhemmin uudelleen"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/customRole.json b/app/javascript/dashboard/i18n/locale/fi/customRole.json
new file mode 100644
index 000000000..d2ecf49d2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "DESCRIPTION": "Kuvaus",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Toiminnot"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Peruuta",
+ "API": {
+ "ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Lähetä",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Muokkaa",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Päivitä",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Poista",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Oletko varma että haluat poistaa ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/datePicker.json b/app/javascript/dashboard/i18n/locale/fi/datePicker.json
new file mode 100644
index 000000000..8abe975c9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Viimeiset 7 päivää",
+ "LAST_30_DAYS": "Viimeiset 30 päivää",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/general.json b/app/javascript/dashboard/i18n/locale/fi/general.json
new file mode 100644
index 000000000..a3e8dc63c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Etsi",
+ "EMPTY_STATE": "Tuloksia ei löytynyt"
+ },
+ "CLOSE": "Sulje",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/generalSettings.json b/app/javascript/dashboard/i18n/locale/fi/generalSettings.json
index 33073a4f4..c10475348 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Voit nyt vastaanottaa sähköposteja mukautetulla verkkotunnuksellasi."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Paina enter valitaksesi",
"ENTER_TO_REMOVE": "Paina enter poistaaksesi",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Valitse yksi",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Poissa"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Raportit",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
index f3e8e9246..3da9cffb1 100644
--- a/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fi/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Lähetetään...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Noniin! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Takaisin",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Lisää vain Jos haluat käyttää mukautettua verkkotunnusta portaaleille. Esim: %{exampleURL}",
+ "HELP_TEXT": "Lisää vain Jos haluat käyttää mukautettua verkkotunnusta portaaleille. Esim: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "Linkki jota käytetään palatakseen portaalista kotisivulle. Esim: %{exampleURL}",
+ "HELP_TEXT": "Linkki jota käytetään palatakseen portaalista kotisivulle. Esim: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Poista"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Minun",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Poista",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Poista",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Luo",
+ "EDIT": "Päivitä",
+ "CANCEL": "Peruuta"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Poista"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Tila",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Luo",
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nimi",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Muokkaa",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Lähetä"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Poista"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Poista"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Lähetetään...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Peruuta",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/inbox.json b/app/javascript/dashboard/i18n/locale/fi/inbox.json
index f01ed9b84..468b2382b 100644
--- a/app/javascript/dashboard/i18n/locale/fi/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/fi/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "Kaikki ilmoitukset ladattu 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Takaisin"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Uusi viesti",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Uusi viesti",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
index 1b4a4c349..acd660eb0 100644
--- a/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Saapuneet-kansiot",
- "SIDEBAR_TXT": "Postilaatikko
Kun yhdistät sivuston tai facebook-sivun Chatwotiin, sitä kutsutaan postilaatikoksi. Sinulla voi olla rajoittamaton määrä postilaatikoita Chatwoot tililläsi.
Klikkaa Lisää postilaatikko yhdistääksesi verkkosivuston tai Facebook-sivun.
Kojelaudalla näet kaikki keskustelut kaikista saapuneet-kansiostasi yhdessä paikassa ja vastaat niihin `Keskustelut`-välilehdessä.
Voit myös nähdä postilaatikkoon liittyviä keskusteluja klikkaamalla postilaatikon nimeä kojelaudan vasemmassa paneelissa.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Tähän tiliin ei ole liitetty saapuneet-kansiota."
},
- "CREATE_FLOW": [
- {
- "title": "Valitse kanava",
- "route": "settings_inbox_new",
- "body": "Valitse keskusteluväylä, jonka haluat integroida Chatwotin kanssa."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Valitse kanava",
+ "BODY": "Valitse keskusteluväylä, jonka haluat integroida Chatwotin kanssa."
},
- {
- "title": "Luo saapet-kansio",
- "route": "settings_inboxes_page_channel",
- "body": "Todenna tilisi ja luo saapuneet-kansio."
+ "INBOX": {
+ "TITLE": "Luo saapet-kansio",
+ "BODY": "Todenna tilisi ja luo saapuneet-kansio."
},
- {
- "title": "Lisää edustaja",
- "route": "settings_inboxes_add_agents",
- "body": "Lisää edustajia luotuun saapuneet-kansioon."
+ "AGENT": {
+ "TITLE": "Lisää edustaja",
+ "BODY": "Lisää edustajia luotuun saapuneet-kansioon."
},
- {
- "title": "Noniin!",
- "route": "settings_inbox_finish",
- "body": "Kaikki valmiina!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Kaikki valmiina!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Kansion nimi",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Valitse sivu listasta",
"INBOX_NAME": "Kansion nimi",
"ADD_NAME": "Lisää kansiolle nimi",
- "PICK_NAME": "Valitse kansion nimi",
- "PICK_A_VALUE": "Valitse arvo"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Lisätäksesi twitter-profiilin kanavaksesi, sinun tulee autentikoida twitter-tilisi klikkaamalla \"Kirjaudu sisään Twitterillä\" ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhookin URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Anna kelvollinen URL-osoite"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Sivuston verkkotunnus",
"PLACEHOLDER": "Anna sivuston verkkotunnus (esim. acme.fi)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Tämä kenttä on pakollinen"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Tämä kenttä on pakollinen"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Kansion nimi",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Puhelinnumero",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Tilin SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API-rajapinta",
"DESC": "Integroi API-rajapintaan ja aloita tukemaan asiakkaitasi.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhookin URL",
- "SUBTITLE": "Määritä URL-osoite, johon haluat vastaanottaa callbackin tapahtumista.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook-URL"
},
"SUBMIT_BUTTON": "Luo API-kanava",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Sähköpostikanava",
- "DESC": "Integroi sähköpostisi saapuneet-kansioon.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Kanavan nimi",
"PLACEHOLDER": "Ole hyvä ja anna kanavan nimi",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Emme pystyneet tallentamaan sähköpostikanavaa"
},
- "FINISH_MESSAGE": "Aloita välittämällä sähköpostit seuraavaan osoitteeseen."
+ "FINISH_MESSAGE": "Aloita välittämällä sähköpostit seuraavaan osoitteeseen.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klikkaa tästä",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot tukee live-chat-widgetejä, Facebook Messenger, WhatsApp, sähköpostit jne. kanavina. Jos haluat rakentaa mukautetun kanavan, voit luoda sen API-kanavalla. Päästäksesi alkuun, valitse jokin kanava alta."
+ "DESC": "Chatwoot tukee live-chat-widgetejä, Facebook Messenger, WhatsApp, sähköpostit jne. kanavina. Jos haluat rakentaa mukautetun kanavan, voit luoda sen API-kanavalla. Päästäksesi alkuun, valitse jokin kanava alta.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Sähköposti",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Edustajat",
"DESC": "Täällä voit lisätä edustajia hallitsemaan juuri luotua saapuneet-kansiota. Vain näillä valituilla edustajilla on pääsy tähän saapuneet-kansioon. Edustajat, jotka eivät kuulu tähän saapuneet-kansioon, eivät pysty näkemään tai vastaamaan viesteihin tässä saapuneet-kansiossa, kun he kirjautuvat.
PS: Jos tarvitset ylläpitäjänä pääsyn kaikkiin saapuneisiin, sinun pitäisi lisätä itsesi edustajaksi kaikkiin laatikoihin, jotka luot.",
- "VALIDATION_ERROR": "Lisää vähintään yksi edustaja postilaatikolle",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Valitse edustajat postilaatikolle"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Varmennetaan sinua Facebookissa...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Jokin meni pieleen, päivitä sivu...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Vie minut sinne",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "Olet onnistuneesti lisännyt sivuston chat-widgetin. Kopioi alla näkyvä koodi ja liitä se verkkosivuillesi. Seuraavalla kerralla kun asiakas käyttää live-keskustelua, keskustelu ilmestyy automaattisesti saapuneet-kansioon."
+ "WEBSITE_SUCCESS": "Olet onnistuneesti lisännyt sivuston chat-widgetin. Kopioi alla näkyvä koodi ja liitä se verkkosivuillesi. Seuraavalla kerralla kun asiakas käyttää live-keskustelua, keskustelu ilmestyy automaattisesti saapuneet-kansioon.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Uudelleenvaltuuta",
"VIEW": "Näytä",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Pois käytöstä"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Käytössä",
- "DISABLED": "Pois käytöstä"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Asetukset",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger-skripti",
"MESSENGER_SUB_HEAD": "Aseta tämä painike body-tagiisi",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Edustajat",
"INBOX_AGENTS_SUB_TEXT": "Lisää tai poista edustajia tästä saapuneet-kansiosta",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Postilaatikon tiedot",
"INBOX_UPDATE_SUB_TEXT": "Päivitä postilaatikon asetukset",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ota käyttöön tai poista käytöstä automaattinen keskusteluiden delegointi edustajille.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Aloita välittämällä sähköpostit seuraavaan osoitteeseen.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Päivitä",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Yhdistä",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Peruuta",
+ "CONFIRM_DELETE": "Poista",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Uudelleenvaltuuta",
"SUBTITLE": "Facebook-yhteytesi on vanhentunut, ole hyvä ja yhdistä uudelleen Facebook-sivusi jatkaaksesi palveluita",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Mene takaisin"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Saatavuus",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Salasana",
"PLACE_HOLDER": "Salasana"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Päivän kuluessa"
},
"WIDGET_COLOR_LABEL": "Widgetin väri",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Keskustele kanssamme",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Keskustele kanssamme"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Vastaa tyypillisesti muutamassa minuutissa",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Sähköposti",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API-rajapinta",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/index.js b/app/javascript/dashboard/i18n/locale/fi/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/fi/index.js
+++ b/app/javascript/dashboard/i18n/locale/fi/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
index ac9f76d68..4b6d6d2b0 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Käytössä",
"DISABLED": "Pois käytöstä"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Toiminnot",
"DELETE": {
"BUTTON_TEXT": "Poista"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Luo",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Peruuta"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/integrations.json b/app/javascript/dashboard/i18n/locale/fi/integrations.json
index b600fcaf8..b990f68e1 100644
--- a/app/javascript/dashboard/i18n/locale/fi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fi/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Peruuta",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integraatiot",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Peruuta",
"DESC": "Webhook-tapahtumat antavat sinulle reaaliaikaista tietoa siitä, mitä Chatwot-tililläsi tapahtuu. Syötä kelvollinen URL-osoite, jotta voit määrittää callbackin.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhookin URL",
- "PLACEHOLDER": "Esimerkki: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Anna kelvollinen URL-osoite"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Tälle tilille ei ole määritetty webhookeja.",
"TITLE": "Hallitse webhookeja",
- "TABLE_HEADER": [
- "Webhookin päätepiste",
- "Toiminnot"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhookin päätepiste",
+ "ACTIONS": "Toiminnot"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Muokkaa",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Vahvista poistaminen",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Kyllä, poista ",
"NO": "Ei, säilytä"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Poista",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Nimi",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Toiminnot"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Luo",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Tiimi",
+ "PLACEHOLDER": "Valitse tiimi",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Tila",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Tila",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Tunnisteet",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Peruuta"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Lisätietoja",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistentit",
+ "SWITCH_ASSISTANT": "Vaihda assistenttien välillä",
+ "NEW_ASSISTANT": "Luo assistentti",
+ "EMPTY_LIST": "Assistentteja ei löytynyt, luo yksi aloittaaksesi"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Aloita Copilotin kanssa",
+ "KICK_OFF_MESSAGE": "Tarvitsetko nopean yhteenvedon, haluatko tarkastella aiempia keskusteluja tai laatia paremman vastauksen? Copilot nopeuttaa asioita.",
+ "SEND_MESSAGE": "Lähetä viesti...",
+ "EMPTY_MESSAGE": "Vastetta ei voitu luoda, yritä uudelleen.",
+ "LOADER": "Captain ajattelee",
+ "YOU": "Sinä",
+ "USE": "Käytä tätä",
+ "RESET": "Nollaa",
+ "SHOW_STEPS": "Näytä vaiheet",
+ "SELECT_ASSISTANT": "Valitse assistentti",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Yhteenveto tästä keskustelusta",
+ "CONTENT": "Tee yhteenveto asiakkaan ja tukihenkilön välillä käydyn keskustelun keskeisistä kohdista, mukaan lukien asiakkaan huolet, kysymykset sekä tukihenkilön tarjoamat ratkaisut tai vastaukset."
+ },
+ "SUGGEST": {
+ "LABEL": "Ehdota vastausta",
+ "CONTENT": "Analysoi asiakkaan kysely ja laadi vastaus, joka käsittelee heidän huolensa tai kysymyksensä tehokkaasti. Varmista, että vastaus on selkeä, ytimekäs ja tarjoaa hyödyllistä tietoa."
+ },
+ "RATE": {
+ "LABEL": "Arvioi tämä keskustelu",
+ "CONTENT": "Arvioi keskustelu sen perusteella, kuinka hyvin se täyttää asiakkaan tarpeet. Anna arvio 1–5 sävyn, selkeyden ja tehokkuuden perusteella."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Korkean prioriteetin keskustelut",
+ "CONTENT": "Anna yhteenveto kaikista korkean prioriteetin avoimista keskusteluista. Sisällytä keskustelun tunnus, asiakkaan nimi (jos saatavilla), viimeisen viestin sisältö ja nimetty agentti. Ryhmittele tilan mukaan, jos se on oleellista."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Näytä kontaktit",
+ "CONTENT": "Näytä minulle 10 parhaan kontaktin lista. Sisällytä nimi, sähköposti tai puhelinnumero (jos saatavilla), viimeinen nähty aika ja tagit (jos sellaisia on)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Sinä",
+ "ASSISTANT": "Assistentti",
+ "MESSAGE_PLACEHOLDER": "Kirjoita viestisi...",
+ "HEADER": "Leikkikenttä",
+ "DESCRIPTION": "Käytä tätä leikkikenttää lähettääksesi viestejä assistentillesi ja tarkistaaksesi, vastaako se täsmällisesti, nopeasti ja odotetulla sävyllä.",
+ "CREDIT_NOTE": "Täällä lähetetyt viestit lasketaan Captain-krediitteihisi."
+ },
+ "PAYWALL": {
+ "TITLE": "Päivitä käyttääksesi Captain AI:ta",
+ "AVAILABLE_ON": "Captain ei ole saatavilla ilmaisessa suunnitelmassa.",
+ "UPGRADE_PROMPT": "Päivitä tilauksesi saadaksesi pääsyn assistentteihimme, Copilotiin ja muihin ominaisuuksiin.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI on saatavilla vain Enterprise-suunnitelmissa.",
+ "UPGRADE_PROMPT": "Päivitä tilauksesi saadaksesi pääsyn assistentteihimme, Copilotiin ja muihin ominaisuuksiin.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Olet käyttänyt yli 80 % vastausrajastasi. Jatkaaksesi Captain AI:n käyttöä, päivitä tilauksesi.",
+ "DOCUMENTS": "Dokumenttiraja saavutettu. Päivitä jatkaaksesi Captain AI:n käyttöä."
+ },
+ "FORM": {
+ "CANCEL": "Peruuta",
+ "CREATE": "Luo",
+ "EDIT": "Päivitä"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Kuvaus",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Asetukset",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Poista"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Poista"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Poista"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Luo",
+ "CANCEL": "Peruuta"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Peruuta",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Poista",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "päivitetään...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Salasana",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Poista",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Kaikki"
+ },
+ "STATUS": {
+ "TITLE": "Tila",
+ "PENDING": "Odottava",
+ "APPROVED": "Approved",
+ "ALL": "Kaikki"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Muokkaa",
+ "DELETE_RESPONSE": "Poista"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
index 1e17cdfc3..d4324a87f 100644
--- a/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fi/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Tunnisteet",
"HEADER_BTN_TXT": "Lisää tunniste",
"LOADING": "Haetaan tunnisteita",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy",
- "SIDEBAR_TXT": "Tunnisteet
Tunnisteet auttavat sinua luokittelemaan keskustelut ja priorisoimaan ne. Voit määrittää tunnisteen keskusteluun sivupaneelista.
Tunnisteet ovat sidottuja tiliin ja niitä voidaan käyttää luomaan mukautettuja työnkulkuja organisaatiollesi. Voit määrittää oman värin tunnisteeseen, mikä helpottaa tunnisteen tunnistamista. Voit näyttää otsikon sivupalkissa, jotta voit suodattaa keskustelut helposti.
",
"LIST": {
"404": "Tällä tilillä ei ole tunnisteita.",
"TITLE": "Hallitse tunnisteita",
"DESC": "Tunnisteiden avulla voit ryhmitellä keskustelut yhteen.",
- "TABLE_HEADER": [
- "Nimi",
- "Kuvaus",
- "Väri"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "DESCRIPTION": "Kuvaus",
+ "COLOR": "Väri",
+ "ACTION": "Toiminnot"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Lisää tunniste",
diff --git a/app/javascript/dashboard/i18n/locale/fi/login.json b/app/javascript/dashboard/i18n/locale/fi/login.json
index 9bd376f64..6c6a79d0b 100644
--- a/app/javascript/dashboard/i18n/locale/fi/login.json
+++ b/app/javascript/dashboard/i18n/locale/fi/login.json
@@ -3,7 +3,7 @@
"TITLE": "Kirjaudu sisään Chatwootiin",
"EMAIL": {
"LABEL": "Sähköposti",
- "PLACEHOLDER": "Sähköposti, esim: someone@example.fi",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Ole hyvä ja syötä validi sähköposti"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Salasana unohtunut?",
"CREATE_NEW_ACCOUNT": "Luo uusi tili",
- "SUBMIT": "Kirjaudu"
+ "SUBMIT": "Kirjaudu",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/macros.json b/app/javascript/dashboard/i18n/locale/fi/macros.json
index e1aaf05c7..2b9c81366 100644
--- a/app/javascript/dashboard/i18n/locale/fi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fi/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nimi",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nimi",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Toiminnot"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/mfa.json b/app/javascript/dashboard/i18n/locale/fi/mfa.json
new file mode 100644
index 000000000..49dede653
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Käytössä",
+ "DISABLED": "Pois käytöstä",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopioi",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Peruuta",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Lataa",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Salasana",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Peruuta",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Peruuta",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/onboarding.json b/app/javascript/dashboard/i18n/locale/fi/onboarding.json
new file mode 100644
index 000000000..af744d505
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Sähköposti",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/report.json b/app/javascript/dashboard/i18n/locale/fi/report.json
index a5bdbd38c..107589f21 100644
--- a/app/javascript/dashboard/i18n/locale/fi/report.json
+++ b/app/javascript/dashboard/i18n/locale/fi/report.json
@@ -3,7 +3,7 @@
"HEADER": "Keskustelut",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
- "DOWNLOAD_AGENT_REPORTS": "Lataa edustajaraportit",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Selviytymisen kesto",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Selvitysmäärä",
"DESC": "(yhteensä)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Selvitysmäärä",
+ "DESC": "(yhteensä)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(yhteensä)"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Viimeiset 7 päivää",
+ "LAST_14_DAYS": "Viimeiset 14 päivää",
"LAST_30_DAYS": "Viimeiset 30 päivää",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Viimeiset 7 päivää"
- },
- {
- "id": 1,
- "name": "Viimeiset 30 päivää"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tuloksia ei löytynyt"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_AGENT_REPORTS": "Lataa edustajaraportit",
"FILTER_DROPDOWN_LABEL": "Valitse edustaja",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Selviytymisen kesto",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Selvitysmäärä",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Selviytymisen kesto",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Selvitysmäärä",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Selviytymisen kesto",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Selvitysmäärä",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Ladataan kaaviotietoja...",
"NO_ENOUGH_DATA": "Emme ole saaneet tarpeeksi dataa raportin luomiseen, yritä myöhemmin uudelleen.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Keskustelut",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Selviytymisen kesto",
"DESC": "(keskiarvo)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Selvitysmäärä",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Edustajat"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Arvio"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Osoitettu edustajalle",
+ "AGENT_NAME": "Edustajat",
"RATING": "Arvio",
- "FEEDBACK_TEXT": "Palautteen kommentti"
- }
+ "FEEDBACK_TEXT": "Palautteen kommentti",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Peruuta",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Edustajat",
- "OPEN": "OPEN",
+ "OPEN": "Avaa",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Tila"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Tiimi",
+ "OPEN": "Avaa",
"UNATTENDED": "Unattended",
"STATUS": "Tila"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tuloksia ei löytynyt",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Tunnisteen nimi",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Edustajat",
+ "LABELS": "Label",
+ "TEAMS": "Tiimi"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Edustajat"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Selvitysmäärä",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/search.json b/app/javascript/dashboard/i18n/locale/fi/search.json
index 8e8487378..e9bd6b9c5 100644
--- a/app/javascript/dashboard/i18n/locale/fi/search.json
+++ b/app/javascript/dashboard/i18n/locale/fi/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Kaikki",
+ "ALL": "All results",
"CONTACTS": "Yhteystiedot",
"CONVERSATIONS": "Keskustelut",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Yhteystiedot",
"CONVERSATIONS": "Keskustelut",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Botti",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "lähettäjä",
- "EMAIL": "sähköposti"
+ "FROM": "From",
+ "EMAIL": "Sähköposti",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Viimeiset 7 päivää",
+ "LAST_30_DAYS": "Viimeiset 30 päivää",
+ "LAST_60_DAYS": "Viimeiset 60 päivää",
+ "LAST_90_DAYS": "Viimeiset 90 päivää",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Edustajat",
+ "CONTACTS": "Yhteystiedot",
+ "INBOXES": "Saapuneet-kansiot",
+ "NO_AGENTS": "Edustajia ei löytynyt",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/settings.json b/app/javascript/dashboard/i18n/locale/fi/settings.json
index c176a1257..5c70b7459 100644
--- a/app/javascript/dashboard/i18n/locale/fi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Salasanasi on vaihdettu onnistuneesti",
"AFTER_EMAIL_CHANGED": "Profiilisi on päivitetty onnistuneesti, ole hyvä ja kirjaudu uudelleen kun kirjautumistunnuksesi muuttuvat",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profiilikuva",
"ERROR": "Korjaa lomakkeen virheet",
"REMOVE_IMAGE": "Poista",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,45 @@
"NOTE": "Salasanan vaihtaminen kirjaa sinut ulos muilta laitteilta.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "Tätä tunnusta voidaan käyttää, jos olet rakentamassa API-pohjaista integraatiota"
+ "NOTE": "Tätä tunnusta voidaan käyttää, jos olet rakentamassa API-pohjaista integraatiota",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "None",
+ "MINE": "Assigned",
+ "ALL": "Kaikki",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "None",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Sähköposti-ilmoitukset",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Lähetä sähköposti-ilmoitus, kun keskustelu on määritetty minulle",
"CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Lähetä sähköposti-ilmoitus, kun uusi viesti saapuu minulle osoitettuun keskusteluun",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Sähköposti",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Ilmoitusasetuksesi päivitetään onnistuneesti",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Lähetä push-ilmoitus, kun uusi viesti saapuu minulle osoitettuun keskusteluun",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Tämän selaimen push-ilmoitukset on otettu käyttöön.",
- "REQUEST_PUSH": "Ota push-ilmoitukset käyttöön"
+ "REQUEST_PUSH": "Ota push-ilmoitukset käyttöön",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profiilikuva"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Saatavuus",
- "STATUSES_LIST": [
- "Paikalla",
- "Kiireinen",
- "Poissa"
- ],
+ "STATUS": {
+ "ONLINE": "Paikalla",
+ "BUSY": "Varattu",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Vaihda",
- "CHANGE_ACCOUNTS": "Vaihda tili",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Valitse tili tästä luettelosta",
- "PROFILE_SETTINGS": "Profiilin asetukset",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Kirjaudu ulos"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "päivää jäljellä.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Lataa",
"UPLOADING": "Lähetetään...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Lähetä"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Vahvistetaan...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Keskustelut",
- "INBOX": "Inbox",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Raportit",
"SETTINGS": "Asetukset",
"CONTACTS": "Yhteystiedot",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Saapuneet-kansiot",
+ "CAPTAIN_SETTINGS": "Asetukset",
"HOME": "Koti",
"AGENTS": "Edustajat",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Keskustelut",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Botti",
"REPORTS_AGENT": "Edustajat",
"REPORTS_LABEL": "Tunnisteet",
"REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Facebook-yhteytesi on vanhentunut, ole hyvä ja yhdistä uudelleen Facebook-sivusi jatkaaksesi palveluita",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Asetukset",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Asetukset"
},
+ "CHANNELS": "Kanavat",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Ominaisuudet",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Keskustele kanssamme"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Peruuta",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Mene Takaisin",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Koodi kopioitu leikepöydälle onnistuneesti",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Etsi määritteitä"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Selvitä keskustelu",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Selvitä keskustelu",
+ "CANCEL": "Peruuta"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Yrityksen nimi",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Lähetä"
+ "SUBMIT": "Lähetä",
+ "CANCEL": "Peruuta"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Muokkaa"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Peruuta"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Tila:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Muokkaa"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Peruuta"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Kuvaus:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Poista",
+ "CANCEL_BUTTON_LABEL": "Peruuta"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/signup.json b/app/javascript/dashboard/i18n/locale/fi/signup.json
index efd64c37f..b307e6e19 100644
--- a/app/javascript/dashboard/i18n/locale/fi/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fi/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Rekisteröidy",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Työsähköposti",
- "PLACEHOLDER": "Anna työsähköpostiosoiteeesi, esim: ismo@hassisenkone.fi",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Syötä voimassa oleva työsähköpostiosoite."
},
"PASSWORD": {
"LABEL": "Salasana",
"PLACEHOLDER": "Salasana",
"ERROR": "Salasana on liian lyhyt",
- "IS_INVALID_PASSWORD": "Salasanan tulee sisältää vähintään 1 iso kirjain, 1 pieni kirjain, 1 numero ja 1 erikoismerkki."
+ "IS_INVALID_PASSWORD": "Salasanan tulee sisältää vähintään 1 iso kirjain, 1 pieni kirjain, 1 numero ja 1 erikoismerkki.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Vahvista salasana",
"PLACEHOLDER": "Vahvista salasana",
- "ERROR": "Salasanat eivät täsmää"
+ "ERROR": "Salasanat eivät täsmää."
},
"API": {
- "SUCCESS_MESSAGE": "Rekisteröinti onnistui",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Yhteyden muodostaminen Woot-palvelimelle ei onnistunut, yritä myöhemmin uudelleen"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Onko sinulla jo tili?"
+ "HAVE_AN_ACCOUNT": "Onko sinulla jo tili?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/sla.json b/app/javascript/dashboard/i18n/locale/fi/sla.json
index d51922e89..ed59a2b82 100644
--- a/app/javascript/dashboard/i18n/locale/fi/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fi/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Tätä hakua vastaavia kohteita ei löydy",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nimi",
- "Kuvaus",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Tapahtui virhe, yritä uudelleen"
+ },
+ "CONFIRM": {
+ "TITLE": "Vahvista poistaminen",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Kyllä, poista ",
+ "NO": "Ei, säilytä "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Ensimmäinen vasteaika",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/snooze.json b/app/javascript/dashboard/i18n/locale/fi/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
index 8fcaec01b..aec3a5833 100644
--- a/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fi/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Luo",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Lisää edustaja",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Kaikki valmiina!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Luo",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Lisää edustaja",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "Kaikki valmiina!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Kaikki valmiina!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Kaikki valmiina!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Edustajat",
"EMAIL": "Sähköposti",
"BUTTON_TEXT": "Lisää edustaja",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Lisää edustaja",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Poista ",
diff --git a/app/javascript/dashboard/i18n/locale/fi/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/fi/whatsappTemplates.json
index f4e2e3c13..f84ba29ec 100644
--- a/app/javascript/dashboard/i18n/locale/fi/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/fi/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "WhatsApp-pohjat",
- "SUBTITLE": "Valitse WhatsApp-pohja, jonka haluat lähettää",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Etsi Pohjia",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Muuttujat",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Mene Takaisin",
- "SEND_MESSAGE_LABEL": "Lähetä Viesti",
- "FORM_ERROR_MESSAGE": "Täytä kaikki muuttujat ennen lähettämistä"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "WhatsApp-pohjat",
+ "SUBTITLE": "Valitse WhatsApp-pohja, jonka haluat lähettää",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Etsi Pohjia",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Muuttujat",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Mene Takaisin",
+ "SEND_MESSAGE_LABEL": "Lähetä Viesti",
+ "FORM_ERROR_MESSAGE": "Täytä kaikki muuttujat ennen lähettämistä",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/fi/yearInReview.json b/app/javascript/dashboard/i18n/locale/fi/yearInReview.json
new file mode 100644
index 000000000..c0611424c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fi/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Sulje",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "keskustelut",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Lataa",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json
index 09a7e27d7..55455689b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fr/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "ET",
"OR": "OU"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Égal à",
"not_equal_to": "Pas égal à",
- "contains": "Contient",
"does_not_contain": "Ne contient pas",
"is_present": "Est présent",
"is_not_present": "N'est pas présent",
"is_greater_than": "Est plus grand que",
"is_less_than": "Est inférieur à",
"days_before": "Est x jours avant",
- "starts_with": "Commence par"
+ "starts_with": "Commence par",
+ "equalTo": "Égal à",
+ "notEqualTo": "Pas égal à",
+ "contains": "Contient",
+ "doesNotContain": "Ne contient pas",
+ "isPresent": "Est présent",
+ "isNotPresent": "N'est pas présent",
+ "isGreaterThan": "Est plus grand que",
+ "isLessThan": "Est inférieur à",
+ "daysBefore": "Est x jours avant",
+ "startsWith": "Commence par"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Vrai",
@@ -54,6 +64,12 @@
"CREATED_AT": "Créé le",
"LAST_ACTIVITY": "Dernière activité"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "La valeur est requise",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Filtres standards",
"ADDITIONAL_FILTERS": "Filtres supplémentaires",
diff --git a/app/javascript/dashboard/i18n/locale/fr/agentBots.json b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
index c955e27a7..28a6179a6 100644
--- a/app/javascript/dashboard/i18n/locale/fr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/fr/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Chargement de l'éditeur...",
- "HEADER_BTN_TXT": "Ajouter une configuration de bot",
- "SIDEBAR_TXT": "Agent Bots
Les Agents Bots sont comme les membres les plus efficaces de votre équipe. Ils s'occupent des petites choses, ce qui vous permet de vous concentrer sur ce qui est important. Essayez-les.
Vous pouvez gérer vos bots à partir de cette page ou en créer de nouveaux à l'aide du bouton \"Ajouter une configuration de bot\".
Ouvrez le Guide de référence pour les agents Bots dans un autre onglet pour obtenir un coup de main.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Jeton d'accès",
+ "DESCRIPTION": "Copiez le jeton d'accès et enregistrez-le en toute sécurité",
+ "COPY_SUCCESSFUL": "Jeton d'accès copié dans le presse-papier",
+ "RESET_SUCCESS": "Jeton d'accès régénéré avec succès",
+ "RESET_ERROR": "Impossible de régénérer le jeton d'accès. Veuillez réessayer"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
index f1bb049b6..d3bb0a880 100644
--- a/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Ajouter un agent",
"LOADING": "Récupération de la liste des agents",
- "SIDEBAR_TXT": "Agents
Un agent est un membre de votre équipe d'assistance clientèle.
Les agents pourront voir et répondre aux messages de vos utilisateurs. La liste montre tous les agents actuellement dans votre compte.
Cliquez sur Ajouter un agent pour ajouter un nouvel agent. L'agent que vous ajoutez recevra un courriel avec un lien de confirmation pour activer son compte, après quoi il pourra accéder à Chatwoot et répondre aux messages.
L'accès aux fonctionnalités de Chatwoot est basé sur les rôles suivants.
Agent - Les agents ayant ce rôle ne peuvent accéder qu'aux boîtes de réception, aux rapports et aux conversations. Ils peuvent assigner des conversations à d'autres agents ou eux-mêmes et résoudre des conversations.
Administrateur - Administrateur aura accès à toutes les fonctionnalités de Chatwoot activées pour votre compte, y compris les paramètres, ainsi que tous les privilèges d'un agent normal.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrateur",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Il n'y a aucun agent associé à ce compte",
"TITLE": "Gérer les agents de votre équipe",
@@ -17,7 +19,8 @@
"STATUS": "État",
"ACTIONS": "Actions",
"VERIFIED": "Vérifié",
- "VERIFICATION_PENDING": "En attente de vérification"
+ "VERIFICATION_PENDING": "En attente de vérification",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Ajouter un agent à votre équipe",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard"
}
},
+ "SEARCH_PLACEHOLDER": "Chercher des agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Aucun résultat trouvé."
},
@@ -103,6 +108,9 @@
"AGENT": "Sélectionner un agent",
"TEAM": "Sélectionner une équipe"
},
+ "LIST": {
+ "NONE": "Aucun"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Aucun agent trouvé",
diff --git a/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
index 22bb1a62a..9777005aa 100644
--- a/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Attributs personnalisés",
"HEADER_BTN_TXT": "Ajouter un attribut personnalisé",
"LOADING": "Récupération des attributs personnalisés",
- "SIDEBAR_TXT": "Attributs personnalisés
Un attribut personnalisé suit les faits concernant vos contacts/conversation — comme le plan d'abonnement, ou quand ils ont commandé le premier objet, etc.
Pour créer un attribut personnalisé, cliquez simplement sur leAjouter un attribut personnalisé. Vous pouvez également modifier ou supprimer un attribut personnalisé existant en cliquant sur le bouton Modifier ou Supprimer.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Rechercher des attributs...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Société"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Texte",
+ "NUMBER": "Nombre",
+ "LINK": "Lien",
+ "DATE": "Date",
+ "LIST": "Liste",
+ "CHECKBOX": "Case à cocher"
+ },
"ADD": {
"TITLE": "Ajouter un attribut personnalisé",
"SUBMIT": "Créer",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Activer la validation Regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Impossible de supprimer l'attribut personnalisé. Veuillez réessayer."
},
"CONFIRM": {
- "TITLE": "Voulez-vous vraiment supprimer - %{attributeName}",
+ "TITLE": "Voulez-vous vraiment supprimer - {attributeName}",
"PLACE_HOLDER": "Veuillez taper {attributeName} pour confirmer",
"MESSAGE": "La suppression supprimera l'attribut personnalisé",
"YES": "Supprimer ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Attributs personnalisés",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Société"
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Description",
- "Type",
- "Clé"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Clé"
+ },
"BUTTONS": {
"EDIT": "Modifier",
"DELETE": "Supprimer"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Activer la validation Regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/auditLogs.json b/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
index 9cff6f204..8a4cd8c93 100644
--- a/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/fr/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Journaux d'audit",
"HEADER_BTN_TXT": "Ajouter des journaux d'audit",
"LOADING": "Récupération des journaux d'audit",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête",
"SIDEBAR_TXT": "
Les journaux d'audit Les journaux d'audit contiennent des événements et des actions associés un système Chatwoot.
",
"LIST": {
"404": "Il n'y a aucun journal d'audit disponible dans ce compte.",
"TITLE": "Gérer les journaux d’audit",
"DESC": "Les journaux d'audit sont des traces pour les événements et les actions dans un système Chatwoot.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Adresse IP"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "Adresse IP"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Les journaux d'audit ont bien été récupérés",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Système",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} a créé une nouvelle règle d'automatisation (#%{id})",
- "EDIT": "%{agentName} a mis à jour une règle d’automatisation (#%{id})",
- "DELETE": "%{agentName} a supprimé une règle d'automatisation (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} a invité %{invitee} à rejoindre le compte en tant que %{role}",
+ "ADD": "{agentName} a invité {invitee} à rejoindre le compte en tant que {role}",
"EDIT": {
- "SELF": "%{agentName} a changé sa %{attributes} en %{values}",
- "OTHER": "%{agentName} a changé %{attributes} de %{user} en %{values}"
+ "SELF": "{agentName} a changé sa {attributes} en {values}",
+ "OTHER": "{agentName} a changé {attributes} de {user} en {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} a créé une nouvelle boîte de réception (#%{id})",
- "EDIT": "%{agentName} a mis à jour une boîte de réception (#%{id})",
- "DELETE": "%{agentName} a supprimé une boîte de réception (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} a créé un nouveau webhook (#%{id})",
- "EDIT": "%{agentName} a mis à jour un webhook (#%{id})",
- "DELETE": "%{agentName} a supprimé un webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} s'est connecté",
- "SIGN_OUT": "%{agentName} s'est déconnecté"
+ "SIGN_IN": "{agentName} s'est connecté",
+ "SIGN_OUT": "{agentName} s'est déconnecté"
},
"TEAM": {
- "ADD": "%{agentName} a créé une nouvelle équipe (#%{id})",
- "EDIT": "%{agentName} a mis à jour une équipe (#%{id})",
- "DELETE": "%{agentName} a supprimé une équipe (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} a créé une nouvelle macro (#%{id})",
- "EDIT": "%{agentName} a mis à jour une macro (#%{id})",
- "DELETE": "%{agentName} a supprimé une macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} a ajouté %{user} à la boîte de réception (#%{inbox_id})",
- "REMOVE": "%{agentName} a retiré %{user} de la boîte de réception (#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} a ajouté %{user} à la boîte de réception (#%{team_id})",
- "REMOVE": "%{agentName} a retiré %{user} de la boîte de réception (#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} a mis à jour la configuration du compte (#%{id})"
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} a supprimé la conversation #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/automation.json b/app/javascript/dashboard/i18n/locale/fr/automation.json
index ae59ed392..fe3cdb99f 100644
--- a/app/javascript/dashboard/i18n/locale/fr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
"HEADER": "Automatisations",
- "HEADER_BTN_TXT": "Ajouter une règle d'automatisation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Récupération des règles d'automatisation",
- "SIDEBAR_TXT": "Règles d'automatisation
L'automatisation peut remplacer et automatiser les processus existants qui nécessitent des efforts manuels. Vous pouvez faire beaucoup de choses avec l'automatisation, y compris ajouter des étiquettes et assigner des conversations au meilleur agent. Ainsi, l'équipe se concentre sur ce qu'elle fait de mieux et passe plus peu de temps sur les tâches manuelles.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Ajouter une règle d'automatisation",
"SUBMIT": "Créer",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Description",
- "Actif",
- "Créé le"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "ACTIVE": "Actif",
+ "CREATED_ON": "Créé le",
+ "ACTIONS": "Actions"
+ },
"404": "Aucune règle d'automatisation trouvée"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Vous devez avoir au moins une action pour enregistrer",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Saisissez votre message ici",
- "TEAM_DROPDOWN_PLACEHOLDER": "Sélectionner une équipe"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Sélectionner une équipe",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activer la règle d'automatisation",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Téléversement...",
"LABEL_UPLOADED": "Téléchargé avec succès",
"LABEL_UPLOAD_FAILED": "Échec de l'envoi"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "La valeur est requise",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Aucun",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation créée",
+ "CONVERSATION_UPDATED": "Conversation mise à jour",
+ "MESSAGE_CREATED": "Message créé",
+ "CONVERSATION_RESOLVED": "Conversation terminée",
+ "CONVERSATION_OPENED": "Conversation ouverte"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assigner à un agent",
+ "ASSIGN_TEAM": "Assigner une équipe",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Supprimer l’équipe assignée",
+ "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",
+ "ADD_PRIVATE_NOTE": "Ajouter une note privée",
+ "CHANGE_PRIORITY": "Modifier la priorité",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Ouvrir la conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Boite de réception",
+ "OUTGOING": "Message envoyé"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Aucun",
+ "LOW": "Faible",
+ "MEDIUM": "Moyenne",
+ "HIGH": "Élevé",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Type de message",
+ "PRIVATE_NOTE": "Note privée",
+ "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",
+ "COMPANY_NAME": "Société",
+ "REFERER_LINK": "Lien de référence",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Équipes",
+ "PRIORITY": "Priorité",
+ "LABELS": "Étiquettes"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
index 485b02c0e..3d875a01b 100644
--- a/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/fr/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations sélectionnées",
- "AGENT_SELECT_LABEL": "Sélectionner un agent",
- "ASSIGN_CONFIRMATION_LABEL": "Êtes-vous sûr de vouloir assigner %{conversationCount} %{conversationLabel} à",
- "UNASSIGN_CONFIRMATION_LABEL": "Êtes-vous sûr de vouloir retirer l'affectation de %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Retour",
- "ASSIGN_LABEL": "Assigner",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations sélectionnées",
+ "NONE": "Aucun",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Oui",
+ "CANCEL": "Annuler",
+ "SEARCH_INPUT_PLACEHOLDER": "Rechercher",
"ASSIGN_AGENT_TOOLTIP": "Assigner un agent",
"ASSIGN_TEAM_TOOLTIP": "Assigner une équipe",
"ASSIGN_SUCCESFUL": "Conversations assignées avec succès.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations résolues avec succès.",
"RESOLVE_FAILED": "Impossible de résoudre les conversations, veuillez réessayer.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Sont uniquement sélectionnées les conversations visibles sur cette page.",
- "AGENT_LIST_LOADING": "Chargement des agents",
"UPDATE": {
"CHANGE_STATUS": "Changer le statut",
- "SNOOZE_UNTIL_NEXT_REPLY": "Reporté jusqu'à la prochaine réponse.",
+ "SNOOZE_UNTIL": "Reporter",
"UPDATE_SUCCESFUL": "Le statut de la conversation a été mis à jour avec succès.",
"UPDATE_FAILED": "Impossible de mettre à jour les conversations, veuillez réessayer."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assigner une étiquette",
- "NO_LABELS_FOUND": "Aucune étiquette trouvée pour",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assigner les étiquettes sélectionnées",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Étiquettes attribuées avec succès.",
- "ASSIGN_FAILED": "Impossible d'attribuer les étiquettes, veuillez réessayer."
+ "ASSIGN_FAILED": "Impossible d'attribuer les étiquettes, veuillez réessayer.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Sélectionner une équipe",
"NONE": "Aucun",
- "NO_TEAMS_AVAILABLE": "Aucune équipe n'a encore été ajoutée à ce compte.",
- "ASSIGN_SELECTED_TEAMS": "Assigner à l'équipe sélectionnée.",
- "ASSIGN_SUCCESFUL": "Equipes assignées avec succès.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Impossible d'assigner l'équipe, veuillez réessayer."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/campaign.json b/app/javascript/dashboard/i18n/locale/fr/campaign.json
index 61c3d9ea5..92756bff7 100644
--- a/app/javascript/dashboard/i18n/locale/fr/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/fr/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campagnes",
- "SIDEBAR_TXT": "Les messages proactifs permettent au client d'envoyer des messages sortants à ses contacts, qui déclenchent plus de conversations. Cliquer sur Ajouter une campagne pour créer une nouvelle campagne. Vous pouvez également modifier ou supprimer une campagne existante en cliquant sur le bouton Éditer ou Supprimer.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Créer une campagne hors ligne",
- "ONGOING": "Créer une campagne en cours"
- },
- "ADD": {
- "TITLE": "Créer une campagne",
- "DESC": "Les messages proactifs permettent au client d'envoyer des messages sortants à ses contacts, ce qui déclencherait plus de conversations.",
- "CANCEL_BUTTON_TEXT": "Annuler",
- "CREATE_BUTTON_TEXT": "Créer",
- "FORM": {
- "TITLE": {
- "LABEL": "Titre",
- "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
- "ERROR": "Le titre est requis"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Activé",
+ "DISABLED": "Désactivé"
},
- "SCHEDULED_AT": {
- "LABEL": "Heure programmée",
- "PLACEHOLDER": "Veuillez sélectionner l'heure",
- "CONFIRM": "Confirmer",
- "ERROR": "L'heure programmée est requise"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Sélectionnez les étiquettes des clients",
- "ERROR": "L'auditoire est requis"
- },
- "INBOX": {
- "LABEL": "Sélectionner la boîte de réception",
- "PLACEHOLDER": "Sélectionner la boîte de réception",
- "ERROR": "La boîte de réception est requise"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
- "ERROR": "Le message est obligatoire"
- },
- "SENT_BY": {
- "LABEL": "Envoyé par",
- "PLACEHOLDER": "Veuillez sélectionner le contenu de la campagne",
- "ERROR": "L'expéditeur est requis"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Veuillez saisir l'URL",
- "ERROR": "Veuillez entrer une URL valide"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Temps sur la page (secondes)",
- "PLACEHOLDER": "Veuillez indiquer le temps",
- "ERROR": "Le temps sur la page est requis"
- },
- "ENABLED": "Activer la campagne",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Déclencher uniquement pendant les heures d'ouverture",
- "SUBMIT": "Ajouter une campagne"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Envoyé par",
+ "BOT": "Bot",
+ "FROM": "de",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Compte créé avec succès",
- "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Annuler",
+ "CREATE_BUTTON_TEXT": "Créer",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titre",
+ "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
+ "ERROR": "Le titre est requis"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
+ "ERROR": "Le message est obligatoire"
+ },
+ "INBOX": {
+ "LABEL": "Sélectionner la boîte de réception",
+ "PLACEHOLDER": "Sélectionner la boîte de réception",
+ "ERROR": "La boîte de réception est requise"
+ },
+ "SENT_BY": {
+ "LABEL": "Envoyé par",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "L'expéditeur est requis"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Veuillez saisir l'URL",
+ "ERROR": "Veuillez entrer une URL valide"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Temps sur la page (secondes)",
+ "PLACEHOLDER": "Veuillez indiquer le temps",
+ "ERROR": "Le temps sur la page est requis"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Activer la campagne",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Déclencher uniquement pendant les heures d'ouverture"
+ },
+ "BUTTONS": {
+ "CREATE": "Créer",
+ "CANCEL": "Annuler"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Supprimer",
- "CONFIRM": {
- "TITLE": "Confirmer la suppression",
- "MESSAGE": "Êtes-vous sûr de vouloir supprimer?",
- "YES": "Oui, supprimer ",
- "NO": "Non, Conserver "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Terminé",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Annuler",
+ "CREATE_BUTTON_TEXT": "Créer",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titre",
+ "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
+ "ERROR": "Le titre est requis"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
+ "ERROR": "Le message est obligatoire"
+ },
+ "INBOX": {
+ "LABEL": "Sélectionner la boîte de réception",
+ "PLACEHOLDER": "Sélectionner la boîte de réception",
+ "ERROR": "La boîte de réception est requise"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Sélectionnez les étiquettes des clients",
+ "ERROR": "L'auditoire est requis"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Heure prévue",
+ "PLACEHOLDER": "Veuillez sélectionner l'heure",
+ "ERROR": "L'heure programmée est requise"
+ },
+ "BUTTONS": {
+ "CREATE": "Créer",
+ "CANCEL": "Annuler"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "Campagnes WhatsApp",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "Aucune campagne WhatsApp n’est disponible",
+ "SUBTITLE": "Lancez une campagne WhatsApp pour toucher directement vos clients. Envoyez des offres ou faites des annonces en toute simplicité. Cliquez sur “Créer une campagne” pour commencer."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Terminé",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Créer une campagne WhatsApp",
+ "CANCEL_BUTTON_TEXT": "Annuler",
+ "CREATE_BUTTON_TEXT": "Créer",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titre",
+ "PLACEHOLDER": "Veuillez entrer le titre de la campagne",
+ "ERROR": "Le titre est requis"
+ },
+ "INBOX": {
+ "LABEL": "Sélectionner la boîte de réception",
+ "PLACEHOLDER": "Sélectionner la boîte de réception",
+ "ERROR": "La boîte de réception est requise"
+ },
+ "TEMPLATE": {
+ "LABEL": "Modèle WhatsApp",
+ "PLACEHOLDER": "Sélectionner un modèle",
+ "INFO": "Sélectionnez un modèle pour cette campagne.",
+ "ERROR": "Un modèle est requis",
+ "PREVIEW_TITLE": "Traiter {templateName}",
+ "LANGUAGE": "Langue",
+ "CATEGORY": "Catégorie",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Entrez une valeur pour {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Sélectionnez les étiquettes des clients",
+ "ERROR": "L'auditoire est requis"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Heure prévue",
+ "PLACEHOLDER": "Veuillez sélectionner l'heure",
+ "ERROR": "L'heure programmée est requise"
+ },
+ "BUTTONS": {
+ "CREATE": "Créer",
+ "CANCEL": "Annuler"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campagne WhatsApp créée avec succès",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Êtes-vous sûr de vouloir supprimer?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Supprimer",
"API": {
"SUCCESS_MESSAGE": "La campagne a bien été supprimée",
- "ERROR_MESSAGE": "Impossible de supprimer la campagne. Veuillez réessayer plus tard."
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer."
}
- },
- "EDIT": {
- "TITLE": "Modifier la campagne",
- "UPDATE_BUTTON_TEXT": "Mettre à jour",
- "API": {
- "SUCCESS_MESSAGE": "Campagne mise à jour avec succès",
- "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Chargement des campagnes...",
- "404": "Il n'y a aucune campagne pour cette boîte de réception.",
- "TABLE_HEADER": {
- "TITLE": "Titre",
- "MESSAGE": "Message",
- "INBOX": "Boîte de réception",
- "STATUS": "État",
- "SENDER": "Expéditeur",
- "URL": "URL",
- "SCHEDULED_AT": "Heure prévue",
- "TIME_ON_PAGE": "Temps(secondes)",
- "CREATED_AT": "Créé le"
- },
- "BUTTONS": {
- "ADD": "Ajouter",
- "EDIT": "Modifier",
- "DELETE": "Supprimer"
- },
- "STATUS": {
- "ENABLED": "Activé",
- "DISABLED": "Désactivé",
- "COMPLETED": "Terminé",
- "ACTIVE": "Actif"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Campagnes ponctuelles",
- "404": "Il n'y a pas de campagnes isolées créées",
- "INBOXES_NOT_FOUND": "Veuillez créer une boîte de réception SMS et commencez à ajouter des campagnes"
- },
- "ONGOING": {
- "HEADER": "Campagnes en cours",
- "404": "Il n'y a pas de campagnes en cours créées",
- "INBOXES_NOT_FOUND": "Veuillez créer une boîte de réception de site Web et commencez à ajouter des campagnes"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
index 703be1fc8..e5524e845 100644
--- a/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Réponses standardisées",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Ajouter une réponse prédéfinie",
"LOADING": "Récupération des réponses prédéfinies...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête.",
- "SIDEBAR_TXT": "Réponses prédéfinies
Les réponses prédéfinies sont des modèles de réponse pré-écrits qui vous aident à répondre rapidement à une conversation. Pour insérer une réponse prédéfinie pendant un chat, les agents peuvent taper un code court précédé du caractère '/'.
Vous pouvez gérer vos réponses standard à partir de cette page ou en créer de nouvelles à l'aide du bouton \"Ajouter une réponse standard\".
Ouvrez le Manuel des réponses standard dans un autre onglet pour obtenir un coup de main.
Vérifiez également la toute nouvelle Bibliothèque des réponses standard.
",
"LIST": {
"404": "Il n'y a aucune réponse standardisée disponible dans ce compte.",
"TITLE": "Gérer les réponses standardisées",
"DESC": "Les réponses prédéfinies sont des modèles de réponse prédéfinis qui peuvent être utilisés pour envoyer rapidement des réponses aux conversations.",
- "TABLE_HEADER": [
- "Code court",
- "Contenu",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Code court",
+ "CONTENT": "Contenu",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Ajouter une réponse prédéfinie",
diff --git a/app/javascript/dashboard/i18n/locale/fr/chatlist.json b/app/javascript/dashboard/i18n/locale/fr/chatlist.json
index 642c03b71..54c508fcf 100644
--- a/app/javascript/dashboard/i18n/locale/fr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/fr/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Il n'y a aucune conversation active dans ce groupe."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Sans suivi",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Réponse en attente : La plus courte en premier"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Localisation"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "a partagé une URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Aucun contenu disponible",
"HIDE_QUOTED_TEXT": "Masquer le texte cité",
"SHOW_QUOTED_TEXT": "Afficher le texte cité",
- "MESSAGE_READ": "Lu"
+ "MESSAGE_READ": "Lu",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/companies.json b/app/javascript/dashboard/i18n/locale/fr/companies.json
new file mode 100644
index 000000000..e5a8472b4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Trier par",
+ "OPTIONS": {
+ "NAME": "Nom",
+ "DOMAIN": "Domaine",
+ "CREATED_AT": "Créé le",
+ "LAST_ACTIVITY_AT": "Dernière activité",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Décroissant"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributs",
+ "CONTACTS": "Contacts",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Rechercher des attributs...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Chargement des contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Société",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Annuler"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nom",
+ "DOMAIN": "Domaine"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/components.json b/app/javascript/dashboard/i18n/locale/fr/components.json
new file mode 100644
index 000000000..68028416e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Aucun résultat trouvé.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Aucun résultat trouvé.",
+ "SEARCHING": "Recherche en cours..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Annuler",
+ "CONFIRM": "Confirmer"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Veuillez sélectionner un code d'appel dans la liste"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "L'auteur n'est pas disponible"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "En savoir plus",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Heures",
+ "DAYS": "Jours",
+ "PLACEHOLDER": "Entrez la durée"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Bientôt disponible !"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/contact.json b/app/javascript/dashboard/i18n/locale/fr/contact.json
index 1f042f9b5..cefa7d0af 100644
--- a/app/javascript/dashboard/i18n/locale/fr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/fr/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Adresse IP",
"CREATED_AT_LABEL": "Créé",
"NEW_MESSAGE": "Nouveau message",
+ "CALL": "Appel",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choisir une boîte de réception vocale"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Il n'y a aucune conversation précédente associée à ce contact.",
"TITLE": "Conversations précédentes"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Attributs personnalisés",
"CONTACT_LABELS": "Libellés des contacts",
- "PREVIOUS_CONVERSATIONS": "Conversations précédentes"
+ "PREVIOUS_CONVERSATIONS": "Conversations précédentes",
+ "NO_RECORDS_FOUND": "Aucun attribut trouvé"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Modifier le contact",
"DESC": "Modifier les informations de contact"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nouveau contact",
- "TITLE": "Créer un nouveau contact",
- "DESC": "Ajouter des informations de base à propos du contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importer",
- "TITLE": "Importer des contacts",
- "DESC": "Importer des contacts via un fichier CSV.",
- "DOWNLOAD_LABEL": "Télécharger un exemple de CSV.",
- "FORM": {
- "LABEL": "Fichier CSV",
- "SUBMIT": "Importer",
- "CANCEL": "Annuler"
- },
- "SUCCESS_MESSAGE": "Vous serez notifié par e-mail lorsque l'importation sera terminée.",
- "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exporter",
- "TITLE": "Exporter les contacts",
- "DESC": "Exporter les contacts vers un fichier CSV.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer",
- "CONFIRM": {
- "TITLE": "Exporter les contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirmer la suppression",
- "MESSAGE": "Êtes-vous sûr de vouloir supprimer cette note ?",
- "YES": "Oui, supprimer",
- "NO": "Non, conservez-le"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Supprimer le contact",
"TITLE": "Supprimer le contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Champs du contact",
- "SEARCH_BUTTON": "Rechercher",
- "SEARCH_INPUT_PLACEHOLDER": "Rechercher des contacts",
- "FILTER_CONTACTS": "Filtrer",
- "FILTER_CONTACTS_SAVE": "Enregistrer le filtre",
- "FILTER_CONTACTS_DELETE": "Supprimer le filtre",
- "FILTER_CONTACTS_EDIT": "Modifier le segment",
"LIST": {
- "LOADING_MESSAGE": "Chargement des contacts...",
- "404": "Aucun contact ne correspond à votre recherche 🔍",
- "NO_CONTACTS": "Il n'y a aucun contact disponible",
"TABLE_HEADER": {
- "NAME": "Nom",
- "PHONE_NUMBER": "Numéro de téléphone",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Dernière activité",
- "CREATED_AT": "Créé le",
- "COUNTRY": "Pays",
- "CITY": "Ville",
- "SOCIAL_PROFILES": "Comptes réseaux sociaux",
- "COMPANY": "Société",
- "EMAIL_ADDRESS": "Adresse de courriel"
- },
- "VIEW_DETAILS": "Voir les détails"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Chargement du profil du contact..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Ajouter",
- "TITLE": "Shift + Entrée pour créer une tâche"
- },
- "FOOTER": {
- "DUE_DATE": "Date d'échéance",
- "LABEL_TITLE": "Définir le type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Récupération des notes...",
- "NOT_AVAILABLE": "Il n'y a aucune note créée pour ce contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "a ajouté une note"
- },
- "ADD": {
- "BUTTON": "Ajouter",
- "PLACEHOLDER": "Ajouter une note",
- "TITLE": "Shift + Entrée pour créer une note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Supprimer la note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activités"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "Notes",
- "PILL_BUTTON_EVENTS": "Evénements",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Comptes réseaux sociaux"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Ajouter des attributs",
"BUTTON": "Ajouter un attribut personnalisé",
- "NOT_AVAILABLE": "Il n'y a aucun attribut personnalisé disponible pour ce contact.",
"COPY_SUCCESSFUL": "Copié dans le presse-papiers avec succès",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copier l'attribut",
"DELETE": "Supprimer l'attribut",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Résumé",
- "DELETE_WARNING": "Le contact de %{primaryContactName} sera supprimé.",
- "ATTRIBUTE_WARNING": "Les coordonnées de %{primaryContactName} seront copiées vers %{parentContactName}."
+ "DELETE_WARNING": "Le contact de {primaryContactName} sera supprimé.",
+ "ATTRIBUTE_WARNING": "Les coordonnées de {primaryContactName} seront copiées vers {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Fusionner les contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact fusionné avec succès",
"ERROR_MESSAGE": "Impossible de fusionner les contacts, essayez à nouveau !"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacts",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Contacts actifs",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Envoyer un message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacts"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Cette adresse de courriel est déjà utilisée pour un autre contact.",
+ "PHONE_NUMBER_DUPLICATE": "Ce numéro de téléphone est utilisé par un autre contact.",
+ "SUCCESS_MESSAGE": "Contact enregistré avec succès",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importer des contacts via un fichier CSV.",
+ "DOWNLOAD_LABEL": "Télécharger un exemple de CSV.",
+ "LABEL": "Fichier CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Modifier",
+ "CANCEL": "Annuler",
+ "IMPORT": "Importer",
+ "SUCCESS_MESSAGE": "Vous serez notifié par e-mail lorsque l'importation sera terminée.",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Exporter",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
+ },
+ "SORT_BY": {
+ "LABEL": "Trier par",
+ "OPTIONS": {
+ "NAME": "Nom",
+ "EMAIL": "Courriel",
+ "PHONE_NUMBER": "Numéro de téléphone",
+ "COMPANY": "Société",
+ "COUNTRY": "Pays",
+ "CITY": "Ville",
+ "LAST_ACTIVITY": "Dernière activité",
+ "CREATED_AT": "Créé le"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Voulez-vous enregistrer ce filtre ?",
+ "CONFIRM": "Enregistrer le filtre",
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirmer la suppression",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Oui, supprimer",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nom",
+ "EMAIL": "Courriel",
+ "PHONE_NUMBER": "Numéro de téléphone",
+ "IDENTIFIER": "Identifiant",
+ "COUNTRY": "Pays",
+ "CITY": "Ville",
+ "COMPANY": "Société",
+ "CREATED_AT": "Créé le",
+ "LAST_ACTIVITY": "Dernière activité",
+ "REFERER_LINK": "Lien de référence",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Vrai",
+ "BLOCKED_FALSE": "Faux",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Effacer les filtres",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Appliquer les filtres",
+ "ADD_FILTER": "Ajouter un filtre"
+ },
+ "TITLE": "Filtrer les contacts",
+ "EDIT_SEGMENT": "Modifier le segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Effacer les filtres"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Voir les détails",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Modifier les informations de contact",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Cette adresse de courriel est déjà utilisée pour un autre contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Ce numéro de téléphone est utilisé par un autre contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Entrez le nom de la ville"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Entrez le nom de la société"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Cette action est permanente et irréversible.",
+ "BUTTON": "Supprimer maintenant"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Supprimer le contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirmer la suppression",
+ "DESCRIPTION": "Êtes-vous sûr de vouloir supprimer ce contact ?",
+ "CONFIRM": "Oui, supprimer",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact supprimé avec succès",
+ "ERROR_MESSAGE": "Impossible de supprimer le contact. Veuillez réessayer plus tard."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar supprimé avec succès",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributs",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Il n'y a aucune conversation précédente associée à ce contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Oui",
+ "NO": "Non",
+ "TRIGGER": {
+ "SELECT": "Sélectionner une valeur",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Une valeur valide est requise",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "URL invalide",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Aucun attribut trouvé",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribut mis à jour avec succès",
+ "DELETE_SUCCESS_MESSAGE": "Attribut supprimé avec succès",
+ "UPDATE_ERROR": "Impossible de mettre à jour l'attribut. Veuillez réessayer plus tard",
+ "DELETE_ERROR": "Impossible de supprimer l'attribut. Veuillez réessayer plus tard"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Fusionner le contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Contact principal",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "A supprimer",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Rechercher un contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact fusionné avec succès",
+ "ERROR_MESSAGE": "Impossible de fusionner les contacts, essayez à nouveau !",
+ "IS_SEARCHING": "Recherche en cours...",
+ "BUTTONS": {
+ "CANCEL": "Annuler",
+ "CONFIRM": "Fusionner le contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Ajouter une note",
+ "WROTE": "wrote",
+ "YOU": "Vous",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Aucun contact ne correspond à votre recherche 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Aucun contact n'est actif pour le moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assigner des étiquettes",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Étiquettes attribuées avec succès.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Supprimer",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Supprimer le contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Voir",
+ "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": "À:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Objet :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Cci:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Cci"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Ecrivez votre message ici..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Retour",
+ "SEND_MESSAGE": "Envoyer un message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Retour",
+ "SEND_MESSAGE": "Envoyer un message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/contactFilters.json b/app/javascript/dashboard/i18n/locale/fr/contactFilters.json
index fc8060bc9..414ea9414 100644
--- a/app/javascript/dashboard/i18n/locale/fr/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/fr/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Est inférieur à",
"days_before": "Est x jours avant"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "La valeur est requise"
+ },
"ATTRIBUTES": {
"NAME": "Nom",
"EMAIL": "Courriel",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Case à cocher",
"CREATED_AT": "Créé le",
"LAST_ACTIVITY": "Dernière activité",
- "REFERER_LINK": "Lien de référence"
+ "REFERER_LINK": "Lien de référence",
+ "BLOCKED": "Blocked",
+ "LABELS": "Étiquettes"
},
"GROUPS": {
"STANDARD_FILTERS": "Filtres standards",
diff --git a/app/javascript/dashboard/i18n/locale/fr/contentTemplates.json b/app/javascript/dashboard/i18n/locale/fr/contentTemplates.json
new file mode 100644
index 000000000..a5ca74d7c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Modèles Twilio",
+ "SUBTITLE": "Sélectionnez le modèle Twilio que vous souhaitez envoyer",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configurer le modèle : {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Rechercher des modèles",
+ "NO_TEMPLATES_FOUND": "Aucun modèle trouvé pour",
+ "NO_CONTENT": "No content",
+ "HEADER": "En-tête",
+ "BODY": "Corps",
+ "FOOTER": "Pied de page",
+ "BUTTONS": "Boutons",
+ "CATEGORY": "Catégorie",
+ "MEDIA_CONTENT": "Contenu média",
+ "MEDIA_CONTENT_FALLBACK": "contenu multimédia",
+ "NO_TEMPLATES_AVAILABLE": "Aucun modèle Twilio disponible. Cliquez sur Actualiser pour synchroniser les modèles de Twilio.",
+ "REFRESH_BUTTON": "Rafraîchir les modèles",
+ "REFRESH_SUCCESS": "Mise à jour des modèles. La mise à jour peut prendre quelques minutes.",
+ "REFRESH_ERROR": "Échec de la mise à jour des modèles. Veuillez réessayer.",
+ "LABELS": {
+ "LANGUAGE": "Langue",
+ "TEMPLATE_BODY": "Corps du modèle",
+ "CATEGORY": "Catégorie"
+ },
+ "TYPES": {
+ "MEDIA": "Média",
+ "QUICK_REPLY": "Réponse rapide",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Texte"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Langue",
+ "CATEGORY": "Catégorie",
+ "VARIABLE_PLACEHOLDER": "Entrez la valeur de {variable}",
+ "GO_BACK_LABEL": "Retour",
+ "SEND_MESSAGE_LABEL": "Envoyer un message",
+ "FORM_ERROR_MESSAGE": "Veuillez remplir toutes les variables avant d'envoyer",
+ "MEDIA_HEADER_LABEL": "En-tête {type}",
+ "MEDIA_URL_LABEL": "Saisissez l'URL complète du média",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Précédent",
+ "SEND_MESSAGE_BUTTON": "Envoyer un message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/conversation.json b/app/javascript/dashboard/i18n/locale/fr/conversation.json
index bc17789f4..8a5df6eb5 100644
--- a/app/javascript/dashboard/i18n/locale/fr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/fr/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " pour commencer",
"NO_INBOX_AGENT": "Oh Oh ! Il semble que vous ne faites parti d'aucune boîte de réception. Veuillez contacter votre administrateur",
"SEARCH_MESSAGES": "Rechercher des messages dans les conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "pour ouvrir le menu de commande",
"KEYBOARD_SHORTCUTS": "pour afficher les raccourcis clavier"
@@ -30,41 +32,97 @@
"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",
+ "48_HOURS_WINDOW": "Restriction de fenêtre de message de 48 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",
+ "BOT_HANDOFF_MESSAGE": "Vous répondez à une conversation actuellement gérée par un assistant ou un bot.",
+ "BOT_HANDOFF_ACTION": "Ouvrir et m’attribuer",
+ "BOT_HANDOFF_REOPEN_ACTION": "Marquer la conversation comme ouverte",
+ "BOT_HANDOFF_SUCCESS": "La conversation vous a été attribuée",
+ "BOT_HANDOFF_ERROR": "Impossible de reprendre la conversation. Veuillez réessayer.",
"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",
"UNKNOWN_FILE_TYPE": "Fichier inconnu",
- "SAVE_CONTACT": "Enregistrer",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} a démarré une réunion"
+ },
"UPLOADING_ATTACHMENTS": "Envoi des pièces jointes...",
"REPLIED_TO_STORY": "A répondu à votre histoire",
- "UNSUPPORTED_MESSAGE": "Ce message n'est pas pris en charge.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ce message n'est pas pris en charge. Vous pouvez voir ce message sur l'application Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ce message n'est pas pris en charge. Vous pouvez voir ce message sur l'application Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Le message a bien été supprimé",
"FAIL_DELETE_MESSSAGE": "Impossible de supprimer le message ! Veuillez réessayez",
"NO_RESPONSE": "Pas de réponse",
+ "RESPONSE": "Response",
"RATING_TITLE": "Note",
"FEEDBACK_TITLE": "Commentaires",
"REPLY_MESSAGE_NOT_FOUND": "Message indisponible",
"CARD": {
"SHOW_LABELS": "Afficher les étiquettes",
- "HIDE_LABELS": "Masquer les étiquettes"
+ "HIDE_LABELS": "Masquer les étiquettes",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Appel entrant",
+ "OUTGOING_CALL": "Appel sortant",
+ "CALL_IN_PROGRESS": "Appel en cours",
+ "NO_ANSWER": "Pas de réponse",
+ "NO_ANSWER_OUTBOUND_LABEL": "Pas de réponse",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Appel manqué",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Appel terminé",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Pas encore répondu",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Il a répondu",
+ "YOU_ANSWERED": "Vous avez répondu",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Résoudre",
"REOPEN_ACTION": "Ré-ouvrir",
"OPEN_ACTION": "Ouvert",
+ "MORE_ACTIONS": "Plus d'actions",
"OPEN": "Plus",
"CLOSE": "Fermer",
"DETAILS": "détails",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Reporter jusqu'à",
"SNOOZED_UNTIL_TOMORROW": "Reporté jusqu'à demain",
"SNOOZED_UNTIL_NEXT_WEEK": "Reporté jusqu'à la semaine prochaine",
- "SNOOZED_UNTIL_NEXT_REPLY": "Reporté jusqu'à la prochaine réponse"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Reporté jusqu'à la prochaine réponse",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "manqué",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Marquer comme en attente",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Semaine prochaine"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Équipes"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Reporter jusqu'à",
"APPLY": "Reporter",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Aucun",
"INPUT_PLACEHOLDER": "Sélectionner la priorité",
"NO_RESULTS": "Aucun résultat trouvé",
- "SUCCESSFUL": "La priorité de la conversation id %{conversationId} a été changée en %{priority}",
+ "SUCCESSFUL": "La priorité de la conversation id {conversationId} a été changée en {priority}",
"FAILED": "Impossible de modifier la priorité. Veuillez réessayer."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Supprimer la conversation #{conversationId}",
+ "DESCRIPTION": "Êtes-vous sûr de vouloir supprimer cette conversation ?",
+ "CONFIRM": "Supprimer"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marquer comme en attente",
"RESOLVED": "Marquer comme résolu",
"MARK_AS_UNREAD": "Marquer comme non lu",
+ "MARK_AS_READ": "Marquer comme lu",
"REOPEN": "Reprendre la conversation",
"SNOOZE": {
"TITLE": "Reporter",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assigner une étiquette",
"AGENTS_LOADING": "Chargement des agents...",
"ASSIGN_TEAM": "Assigner une équipe",
+ "DELETE": "Supprimer la conversation",
+ "OPEN_IN_NEW_TAB": "Ouvrir dans un nouvel onglet",
+ "COPY_LINK": "Copier le lien de la conversation",
+ "COPY_LINK_SUCCESS": "Le lien de conversation a été copié dans le presse-papiers",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assignée à \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assignée à \"{agentName}\"",
"FAILED": "Impossible d'assigner l'agent. Veuillez réessayer."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Étiquette assignée #%{labelName} à l'id de la conversation %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Impossible d'assigner l'étiquette. Veuillez réessayer."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Équipe assignée «%{team}» à la conversation id %{conversationId}",
+ "SUCCESFUL": "Équipe assignée «{team}» à la conversation id {conversationId}",
"FAILED": "Impossible d'assigner l'équipe. Veuillez réessayer."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Désactiver la signature",
"MSG_INPUT": "Maj + entrée pour une nouvelle ligne. Commencez par '/' pour sélectionner une réponse standardisée.",
"PRIVATE_MSG_INPUT": "Maj + entrée pour une nouvelle ligne. Cela ne sera visible que par les agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La signature du message n'est pas configurée, veuillez le configurer dans les paramètres du profil.",
- "CLICK_HERE": "Cliquez ici pour mettre à jour"
+ "COPILOT_MSG_INPUT": "Donnez à Copilot des consignes supplémentaires ou posez toute autre question... Appuyez sur Entrée pour envoyer un message de suivi",
+ "CLICK_HERE": "Cliquez ici pour mettre à jour",
+ "WHATSAPP_TEMPLATES": "Modèles WhatsApp"
},
"REPLYBOX": {
"REPLY": "Répondre",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "En savoir plus",
"DISMISS_REPLY": "Annuler la réponse",
"REPLYING_TO": "Répondre à:",
- "TIP_FORMAT_ICON": "Afficher l'éditeur de texte enrichi",
"TIP_EMOJI_ICON": "Montrer le sélecteur d'émoji",
"TIP_ATTACH_ICON": "Joindre des fichiers",
"TIP_AUDIORECORDER_ICON": "Enregistrer l'audio",
"TIP_AUDIORECORDER_PERMISSION": "Autoriser l'accès à l'audio",
"TIP_AUDIORECORDER_ERROR": "Impossible d'ouvrir l'audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Glissez et déposez ici pour lier",
"START_AUDIO_RECORDING": "Démarrer l'enregistrement audio",
"STOP_AUDIO_RECORDING": "Arrêter l'enregistrement audio",
- "": "",
+ "COPILOT_THINKING": "Copilot réfléchit",
"EMAIL_HEAD": {
"TO": "À",
"ADD_BCC": "Ajouter cci",
@@ -176,6 +257,13 @@
"YES": "Envoyer",
"CANCEL": "Annuler"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Note privée : uniquement visible par vous et votre équipe",
@@ -186,10 +274,15 @@
"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 supprimée avec succès",
+ "FAIL_DELETE_CONVERSATION": "Impossible de supprimer la conversation ! Veuillez réessayer",
"FILE_SIZE_LIMIT": "Le fichier dépasse la limite de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} pour les pièces jointes",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Impossible d'envoyer ce message, veuillez réessayer plus tard",
"SENT_BY": "Envoyé par:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Impossible d'envoyer le message ! Réessayez",
"TRY_AGAIN": "Réessayer",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Supprimer",
"CANCEL": "Annuler"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Appel entrant",
+ "OUTGOING_CALL": "Appel sortant",
+ "CALL_IN_PROGRESS": "Appel en cours",
+ "NOT_ANSWERED_YET": "Pas encore répondu",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Rejeter",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Annuler",
"SEND_EMAIL_SUCCESS": "La transcription du chat a été envoyée avec succès",
"SEND_EMAIL_ERROR": "Une erreur est survenue, veuillez réessayer",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Envoyer la transcription au client",
"SEND_TO_AGENT": "Envoyer la transcription à l'agent assigné",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Salut 👋, Bienvenue sur %{installationName}!",
- "DESCRIPTION": "Merci pour votre inscription. Nous souhaitons que vous tiriez le meilleur parti de %{installationName}. Voici quelques actions que vous pouvez effectuer dans %{installationName} pour rendre votre expérience agréable.",
+ "TITLE": "Salut 👋, Bienvenue sur {installationName}!",
+ "DESCRIPTION": "Merci pour votre inscription. Nous souhaitons que vous tiriez le meilleur parti de {installationName}. Voici quelques actions que vous pouvez effectuer dans {installationName} pour rendre votre expérience agréable.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Consultez nos dernières mises à jour",
"ALL_CONVERSATION": {
"TITLE": "Toutes vos conversations en un seul lieu",
- "DESCRIPTION": "Visualisez toutes les conversations de vos clients dans un seul tableau de bord. Vous pouvez filtrer les conversations par le canal entrant, l'étiquette et le statut."
+ "DESCRIPTION": "Visualisez toutes les conversations de vos clients dans un seul tableau de bord. Vous pouvez filtrer les conversations par le canal entrant, l'étiquette et le statut.",
+ "NEW_LINK": "Cliquez ici pour créer une boîte de réception"
},
"TEAM_MEMBERS": {
"TITLE": "Invitez les membres de votre équipe",
"DESCRIPTION": "Puisque vous vous apprêtez à parler à votre client, amenez vos coéquipiers pour vous aider. Vous pouvez inviter vos coéquipiers en ajoutant leurs adresses e-mail à la liste des agents.",
"NEW_LINK": "Cliquez ici pour inviter un membre de l'équipe"
},
- "INBOXES": {
- "TITLE": "Connecter les boîtes de réception",
- "DESCRIPTION": "Connectez différents canaux à travers lesquels vos clients vous parleraient. Il peut s'agir d'un chat de site internet, de votre page Facebook ou Twitter ou même de votre numéro WhatsApp.",
- "NEW_LINK": "Cliquez ici pour créer une boîte de réception"
- },
"LABELS": {
"TITLE": "Organiser les conversations avec des labels",
"DESCRIPTION": "Les labels fournissent un moyen plus facile de catégoriser votre conversation. Créez des étiquettes comme #demande-support, #question-facturation etc., afin que vous puissiez les utiliser dans une conversation plus tard.",
"NEW_LINK": "Cliquez ici pour créer des tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Problèmes Linear liés",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Média",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Tout afficher",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "En attente",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Créer un attribut",
+ "NO_RECORDS_FOUND": "Aucun attribut trouvé",
"UPDATE": {
"SUCCESS": "Attribut mis à jour avec succès",
"ERROR": "Impossible de mettre à jour l'attribut. Veuillez réessayer plus tard"
@@ -297,17 +449,18 @@
"TO": "À",
"BCC": "Cci",
"CC": "Cc",
- "SUBJECT": "Objet"
+ "SUBJECT": "Objet",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participe",
"SIDEBAR_TITLE": "Participants à une conversation",
"NO_RECORDS_FOUND": "Aucun résultat trouvé",
"ADD_PARTICIPANTS": "Sélectionner des participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} autres utilisateurs",
- "REMANING_PARTICIPANT_TEXT": "+%{count} autre",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} personnes participent.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} personne participe.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} autres utilisateurs",
+ "REMANING_PARTICIPANT_TEXT": "+{count} autre",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} personnes participent.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} personne participe.",
"NO_PARTICIPANTS_TEXT": "Personne ne participe !.",
"WATCH_CONVERSATION": "Rejoindre une conversation",
"YOU_ARE_WATCHING": "Vous participez",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Contenu original",
"TRANSLATED_CONTENT": "Contenu traduit",
"NO_TRANSLATIONS_AVAILABLE": "Aucune traduction n'est disponible pour ce contenu"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/customRole.json b/app/javascript/dashboard/i18n/locale/fr/customRole.json
new file mode 100644
index 000000000..d8220b1f7
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Il n'y a aucun élément correspondant à cette requête.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Le nom est requis."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "La description est requise."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Annuler",
+ "API": {
+ "ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Envoyer",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Modifier",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Mettre à jour",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Supprimer",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmer la suppression",
+ "MESSAGE": "Êtes-vous sûr de vouloir supprimer ",
+ "YES": "Oui, supprimer ",
+ "NO": "Non, Conserver "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/datePicker.json b/app/javascript/dashboard/i18n/locale/fr/datePicker.json
new file mode 100644
index 000000000..8fd56423a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Appliquer",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "7 derniers jours",
+ "LAST_30_DAYS": "30 derniers jours",
+ "LAST_3_MONTHS": "3 derniers mois",
+ "LAST_6_MONTHS": "6 derniers mois",
+ "LAST_YEAR": "Année dernière",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Plage de date personnalisée"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/general.json b/app/javascript/dashboard/i18n/locale/fr/general.json
new file mode 100644
index 000000000..492ed2b51
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Rechercher",
+ "EMPTY_STATE": "Aucun résultat trouvé"
+ },
+ "CLOSE": "Fermer",
+ "BETA": "Bêta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Oui",
+ "NO": "Non"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/generalSettings.json b/app/javascript/dashboard/i18n/locale/fr/generalSettings.json
index a6591278d..63ac2ea73 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": "You have exceeded the agent limit. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Vous pouvez maintenant recevoir des courriels dans votre domaine personnalisé."
}
},
- "UPDATE_CHATWOOT": "Une mise à jour %{latestChatwootVersion} de Chatwoot est disponible. Veuillez mettre à jour votre instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Appuyer sur Entrée pour sélectionner",
"ENTER_TO_REMOVE": "Appuyer sur Entrée pour supprimer",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Sélectionnez un",
"SELECT": "Sélectionner"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation assignée",
"assigned_conversation_new_message": "Nouveau message",
"participating_conversation_new_message": "Nouveau message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Hors-ligne"
+ "OFFLINE": "Hors ligne",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Actualiser"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Rechercher ou aller à",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Général",
"REPORTS": "Rapports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Changer de responsable",
"CHANGE_PRIORITY": "Modifier la priorité",
"CHANGE_TEAM": "Changer d’équipe",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Jusqu'à demain",
"UNTIL_NEXT_MONTH": "Jusqu'au mois prochain",
"AN_HOUR_FROM_NOW": "D'ici une heure",
- "CUSTOM": "Personnalisé...",
+ "UNTIL_CUSTOM_TIME": "Personnalisé...",
"CHANGE_APPEARANCE": "Changer l'apparence",
"LIGHT_MODE": "Clair",
"DARK_MODE": "Sombre",
diff --git a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
index 3be07446f..80eac8126 100644
--- a/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/fr/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Centre d'aide",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Créer un portail"
+ },
"HEADER": {
"FILTER": "Filtrer par",
"SORT": "Trier par",
@@ -41,6 +46,7 @@
"UPLOADING": "Téléversement...",
"SUCCESS": "Image téléchargée avec succès",
"ERROR": "Erreur lors du téléchargement de l'image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "La taille de l'image doit être inférieure à {size}Mo",
"ERROR_FILE_FORMAT": "Le format d'image doit être jpg, jpeg ou png",
"ERROR_FILE_DIMENSIONS": "Les dimensions de l'image doivent être inférieures à 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Non catégorisé",
- "SEARCH_RESULTS": "Résultats de la recherche pour %{query}",
+ "SEARCH_RESULTS": "Résultats de la recherche pour {query}",
"EMPTY_TEXT": "Rechercher des articles à insérer dans les réponses.",
"SEARCH_LOADER": "Recherche en cours...",
"INSERT_ARTICLE": "Insérer",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Le portail a été supprimé",
"DELETE_ERROR": "Erreur durant la suppression du portail"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informations sur le centre d'aide",
- "route": "new_portal_information",
- "body": "Informations de base sur le portail",
- "CREATE_BASIC_SETTING_BUTTON": "Créer des paramètres de base du portail"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informations sur le centre d'aide",
+ "BODY": "Informations de base sur le portail"
},
- {
- "title": "Personnalisation du centre d'aide",
- "route": "portal_customization",
- "body": "Personnalisez le portail",
- "UPDATE_PORTAL_BUTTON": "Mettre à jour les paramètres du portail"
+ "CUSTOMIZATION": {
+ "TITLE": "Personnalisation du centre d'aide",
+ "BODY": "Personnalisez le portail"
},
- {
- "title": "Et voilà !",
- "route": "portal_finish",
- "body": "Tout est prêt !",
- "FINISH": "Terminer"
+ "FINISH": {
+ "TITLE": "Et voilà !",
+ "BODY": "Tout est prêt !"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Précédent",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Domaine personnalisé",
"PLACEHOLDER": "Portail de domaine personnalisé",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Entrez une URL de domaine valide"
},
"HOME_PAGE_LINK": {
"LABEL": "Lien vers la page d'accueil",
"PLACEHOLDER": "Lien vers la page d'accueil du portail",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Entrez une URL valide de la page d'accueil"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "La langue a été supprimée du portail avec succès",
"ERROR_MESSAGE": "Impossible de supprimer la langue du portail. Réessayez."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "L'article a été archivé"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Erreur lors de la suppression de l’article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Veuillez ajouter le titre et le contenu de l'article puis vous seul pouvez mettre à jour les paramètres"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Utilisez le portail comme un CMS sans tête avec des frameworks front-end tiers en utilisant nos API."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publier",
+ "DRAFT": "Brouillon",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traduire",
+ "DELETE": "Supprimer"
+ },
+ "STATUS": {
+ "DRAFT": "Brouillon",
+ "PUBLISHED": "Publié",
+ "ARCHIVED": "Archivé"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Les miens",
+ "DRAFT": "Brouillon",
+ "PUBLISHED": "Publié",
+ "ARCHIVED": "Archivé"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Traduire",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Traduire",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publier",
+ "DRAFT": "Brouillon",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traduire",
+ "MOVE_TO_CATEGORY": "Catégorie",
+ "DELETE": "Supprimer",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Supprimer",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nouvelle catégorie",
+ "EDIT_CATEGORY": "Modifier la catégorie",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Aucune catégorie trouvée",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Catégorie créée avec succès",
+ "ERROR_MESSAGE": "Impossible de créer une catégorie"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Catégorie mise à jour correctement",
+ "ERROR_MESSAGE": "Impossible de mettre à jour cette catégorie"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Catégorie supprimée avec succès",
+ "ERROR_MESSAGE": "Impossible de supprimer la catégorie"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Créer une catégorie",
+ "EDIT": "Modifier la catégorie",
+ "DESCRIPTION": "Modifier une catégorie mettra à jour la catégorie dans le portail public visité.",
+ "PORTAL": "Portail",
+ "LOCALE": "Langue"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Nom de la catégorie",
+ "ERROR": "Le nom est requis"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug de catégorie pour les URL",
+ "ERROR": "Le Slug est requis",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Donner une courte description de la catégorie.",
+ "ERROR": "La description est requise"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Créer",
+ "EDIT": "Mettre à jour",
+ "CANCEL": "Annuler"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Par défaut",
+ "DRAFT": "Brouillon",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Supprimer"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Ajouter une nouvelle langue",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Choisir un paramètre régional..."
+ },
+ "STATUS": {
+ "LABEL": "État",
+ "OPTIONS": {
+ "LIVE": "Publié",
+ "DRAFT": "Brouillon"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Langue ajoutée avec succès",
+ "ERROR_MESSAGE": "Impossible d'ajouter la langue. Veuillez réessayer."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Enregistrement en cours...",
+ "SAVED": "Enregistré"
+ },
+ "PREVIEW": "Aperçu",
+ "PUBLISH": "Publier",
+ "DRAFT": "Brouillon",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Non catégorisé",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Méta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Méta titre",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Balises méta",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Erreur lors de la sauvegarde de l'article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portails",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domaine",
+ "PORTAL_NAME": "Nom du portail"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Créer",
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Le nom est requis"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Le Slug est requis",
+ "FORMAT_ERROR": "Veuillez saisir un identifiant valide, par exemple : guide-utilisateur"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Impossible de télécharger l'image! Réessayez",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo effacé",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "La taille de l'image doit être inférieure à {size}Mo"
+ },
+ "NAME": {
+ "LABEL": "Nom",
+ "PLACEHOLDER": "Nom du portail",
+ "ERROR": "Le nom est requis"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Texte de l'en-tête du portail"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Titre de la page portail"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Lien vers la page d'accueil du portail",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domaine personnalisé",
+ "LABEL": "Domaine personnalisé:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portail de domaine personnalisé",
+ "EDIT_BUTTON": "Modifier",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "En direct",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Domaine personnalisé",
+ "PLACEHOLDER": "Portail de domaine personnalisé",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Envoyer"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Supprimer le portail",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Supprimer"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Apparence",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Supprimer"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Le portail a été créé avec succès",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Le portail a été mis à jour",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Téléversement...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Annuler",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Génération en cours...",
+ "CONFIRM_DELETE": "Êtes-vous sûr de vouloir supprimer {filename} ?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Terminé",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/inbox.json b/app/javascript/dashboard/i18n/locale/fr/inbox.json
index 7e5c71009..9fead5e43 100644
--- a/app/javascript/dashboard/i18n/locale/fr/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/fr/inbox.json
@@ -1,39 +1,56 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Boîte de réception",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Chargement des notifications",
- "EOF": "Toutes les notifications ont été chargées 🎉",
"404": "Il n'y a aucune notification active dans ce groupe.",
- "NO_NOTIFICATIONS": "No notifications",
+ "NO_NOTIFICATIONS": "Aucune notification",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Reporter jusqu'à",
"SNOOZED_UNTIL_TOMORROW": "Reporté jusqu'à demain",
"SNOOZED_UNTIL_NEXT_WEEK": "Reporté jusqu'à la semaine prochaine"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Supprimer la notification",
+ "BACK": "Précédent"
},
"TYPES": {
"CONVERSATION_MENTION": "Vous avez été cité dans une conversation",
"CONVERSATION_CREATION": "Nouvelle conversation créée",
"CONVERSATION_ASSIGNMENT": "Une conversation vous a été attribuée",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nouveau message dans une conversation attribuée",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nouveau message dans une conversation à laquelle vous participez"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nouveau message dans une conversation à laquelle vous participez",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nouveau message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nouveau message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Aucun contenu disponible",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "Marquer comme lu",
"MARK_AS_UNREAD": "Marquer comme non lu",
"SNOOZE": "Reporter",
"DELETE": "Supprimer",
"MARK_ALL_READ": "Tout marquer comme lu",
- "DELETE_ALL": "Delete all",
+ "DELETE_ALL": "Tout supprimer",
"DELETE_ALL_READ": "Delete all read"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
+ "SORT": "Trier",
"DISPLAY": "Display :",
"SORT_OPTIONS": {
"NEWEST": "Newest",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "Toutes les notifications sont marquées comme lues",
"DELETE_ALL": "Toutes les notifications sont supprimées",
"DELETE_ALL_READ": "Toutes les notifications lues ont été supprimées"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
index 5859f8cbc..f90a67fa8 100644
--- a/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Boîtes de réception",
- "SIDEBAR_TXT": "Boîte de réception
Lorsque vous connectez un site Web ou une page Facebook à Chatwoot, elle est appelée une Boîte de réception. Vous pouvez avoir des boîtes de réception illimitées dans votre compte Chatwoot.
Cliquez sur Ajouter Boîte de réception pour connecter un site Web ou une page Facebook.
Dans le tableau de bord, vous pouvez voir toutes les conversations de toutes vos boîtes de réception en un seul endroit et y répondre dans l'onglet `Conversations`.
Vous pouvez également voir les conversations spécifiques à une boîte de réception en cliquant sur le nom de la boîte de réception sur le volet gauche du tableau de bord.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Il n'y a aucune boîte de réception associée à ce compte."
},
- "CREATE_FLOW": [
- {
- "title": "Choisir un canal",
- "route": "settings_inbox_new",
- "body": "Choisissez le fournisseur que vous souhaitez intégrer avec Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Choisir un canal",
+ "BODY": "Choisissez le fournisseur que vous souhaitez intégrer avec Chatwoot."
},
- {
- "title": "Créer une boîte de réception",
- "route": "settings_inboxes_page_channel",
- "body": "Authentifiez votre compte et créez une boîte de réception."
+ "INBOX": {
+ "TITLE": "Créer une boîte de réception",
+ "BODY": "Authentifiez votre compte et créez une boîte de réception."
},
- {
- "title": "Ajouter des agents",
- "route": "settings_inboxes_add_agents",
- "body": "Ajouter des agents à la boîte de réception créée."
+ "AGENT": {
+ "TITLE": "Ajouter des agents",
+ "BODY": "Ajouter des agents à la boîte de réception créée."
},
- {
- "title": "Voilà !",
- "route": "settings_inbox_finish",
- "body": "Vous êtes paré !"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Vous êtes paré !"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nom de la boîte de réception",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Sélectionnez une page dans la liste",
"INBOX_NAME": "Nom de la boîte de réception",
"ADD_NAME": "Ajouter un nom pour votre boîte de réception",
- "PICK_NAME": "Choisissez un nom pour votre boîte de réception",
- "PICK_A_VALUE": "Choisir une valeur"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Pour ajouter votre profil Twitter en tant que canal, vous devez lier votre profil Twitter en cliquant sur 'Se connecter avec Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL du Webhook",
- "PLACEHOLDER": "Entrez votre URL Webhook",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Veuillez entrer une URL valide"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domaine du site Web",
"PLACEHOLDER": "Entrez le domaine de votre site Web (ex : acme.com)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "Clé de l'API",
- "PLACEHOLDER": "Veuillez entrer votre clé API Bandwith",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Ce champ est requis"
},
"API_SECRET": {
"LABEL": "Secret API",
- "PLACEHOLDER": "Veuillez entrer votre secret API Bandwith",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Ce champ est requis"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Commencez à soutenir vos clients via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "Cloud WhatsApp",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "Fenêtre de dialogue 360"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Nom de la boîte de réception",
"PLACEHOLDER": "Veuillez entrer un nom de boîte de réception",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Jeton de vérification du Webhook",
- "PLACEHOLDER": "Entrez un jeton de vérification que vous voulez configurer pour les webhooks de Facebook.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Veuillez saisir une adresse de courriel valide."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Jeton de vérification du Webhook"
},
"SUBMIT_BUTTON": "Créer le canal WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Nous n'avons pas pu enregistrer le canal WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Numéro de téléphone",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID du compte",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Jeton d'authentification",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "SID de la clé API",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "Secret de la clé API",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "Canal API",
"DESC": "Intégrez le canal API et commencez à aider vos clients.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "URL du Webhook",
- "SUBTITLE": "Configurez l'URL où vous souhaitez recevoir des callbacks sur les événements.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "URL du Webhook"
},
"SUBMIT_BUTTON": "Créer un canal API",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Canal Courriel",
- "DESC": "Intégrez votre boîte de réception de courriel.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Nom du canal",
"PLACEHOLDER": "Veuillez entrer un nom de canal",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Nous n'avons pas pu enregistrer le canal courriel"
},
- "FINISH_MESSAGE": "Commencez à transférer vos courriels à l'adresse suivante."
+ "FINISH_MESSAGE": "Commencez à transférer vos courriels à l'adresse suivante.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Cliquez ici",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Canal LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choisir un canal",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Site internet",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "Appel WhatsApp",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Courriel",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agents",
"DESC": "Ici vous pouvez ajouter des agents pour gérer votre boîte de réception nouvellement créée. Seuls ces agents sélectionnés auront accès à votre boîte de réception. Les agents qui ne font pas partie de cette boîte de réception ne seront pas en mesure de voir ou de répondre aux messages de cette boîte de réception lorsqu'ils se connectent.
PS : En tant qu'administrateur, si vous avez besoin d'accéder à toutes les boîtes de réception, vous devriez vous ajouter en tant qu'agent à toutes les boîtes de réception que vous créez.",
- "VALIDATION_ERROR": "Ajouter au moins un agent à votre nouvelle boîte de réception",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Sélectionner les agents de la boîte de réception"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Cliquez sur le bouton Connexion avec Microsoft pour commencer. Vous allez rediriger vers la page de connexion par courriel. Une fois que vous avez accepté les autorisations demandées, vous serez redirigé vers l'étape de création de la boîte de réception.",
"EMAIL_PLACEHOLDER": "Entrez votre adresse e-mail",
- "HELP": "Pour ajouter votre compte Microsoft en tant que canal, vous devez authentifier votre compte Microsoft en cliquant sur 'Connexion avec Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "Une erreur s'est produite lors de la connexion à Microsoft, veuillez réessayer"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Entrez votre adresse e-mail",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authentification avec Facebook ...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Une erreur s'est produite, veuillez rafraîchir la page ...",
"ERROR_FB_UNAUTHORIZED": "Vous n'êtes pas autorisé à effectuer cette action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Veuillez vous assurer que vous avez un contrôle total sur la page Facebook. Vous pouvez en savoir plus sur les rôles Facebook ici.",
@@ -386,7 +557,10 @@
"MESSAGE": "Vous pouvez maintenant vous impliquer auprès de vos clients par le biais de votre nouveau canal. Bonne assistance",
"BUTTON_TEXT": "Emmenez-moi là",
"MORE_SETTINGS": "Plus de paramètres",
- "WEBSITE_SUCCESS": "Vous avez terminé avec succès la création d'un canal Web. Copiez le code affiché ci-dessous et collez-le sur votre site web. La prochaine fois qu'un client utilisera le chat en direct, la conversation apparaîtra automatiquement dans votre boîte de réception."
+ "WEBSITE_SUCCESS": "Vous avez terminé avec succès la création d'un canal Web. Copiez le code affiché ci-dessous et collez-le sur votre site web. La prochaine fois qu'un client utilisera le chat en direct, la conversation apparaîtra automatiquement dans votre boîte de réception.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Réautoriser",
"VIEW": "Voir",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Nom de l'expéditeur",
- "SUB_TEXT": "Sélectionnez le nom présenté à votre client quand il reçoit des emails de vos agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "Par exemple:",
"FRIENDLY": {
"TITLE": "Amical",
@@ -418,7 +592,7 @@
"SUBTITLE": "Utilisez uniquement le nom d'entreprise configuré comme nom d'expéditeur dans l'en-tête du courriel."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configurez votre nom d'entreprise",
+ "BUTTON_TEXT": "Configurez votre nom d'entreprise",
"PLACEHOLDER": "Entrez le nom de votre entreprise",
"SAVE_BUTTON_TEXT": "Enregistrer"
}
@@ -432,8 +606,10 @@
"DISABLED": "Désactivé"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Activé",
- "DISABLED": "Désactivé"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Activer"
@@ -464,7 +640,107 @@
"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",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "En direct"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Paramètres",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Script du Widget Web",
"MESSENGER_SUB_HEAD": "Placez ce code avant la fermeture de votre balise body",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agents",
"INBOX_AGENTS_SUB_TEXT": "Ajouter ou supprimer des agents de cette boîte de réception",
"AGENT_ASSIGNMENT": "Konversationsauftrag",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Verrouiller à une seule conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Activer ou désactiver plusieurs conversations pour le même contact dans cette boîte de réception",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Paramètres de boîtes de réception",
"INBOX_UPDATE_SUB_TEXT": "Mettre à jour les paramètres de votre boîte de réception",
"AUTO_ASSIGNMENT_SUB_TEXT": "Activer ou désactiver l'affectation automatique de nouvelles conversations aux agents ajoutés à cette boîte de réception.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Utilisez le jeton `inbox_identifier` affiché ici pour authentifier vos clients API.",
"FORWARD_EMAIL_TITLE": "Transférer par e-mail",
"FORWARD_EMAIL_SUB_TEXT": "Commencez à transférer vos courriels à l'adresse suivante.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Autoriser les messages après résolution de la conversation",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Autoriser les utilisateurs à envoyer des messages même après la résolution de la conversation.",
"WHATSAPP_SECTION_SUBHEADER": "Cette clé API est utilisée pour l'intégration avec les API WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Entrez la clé mise à jour à utiliser pour l'intégration avec les API WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "Clé de l'API",
"WHATSAPP_SECTION_UPDATE_TITLE": "Mettre à jour la clé API",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Entrez la nouvelle clé API ici",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Mettre à jour",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connecter",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "Jeton de vérification du Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "Ce jeton est utilisé pour vérifier l'authenticité du point de terminaison du webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Mettre à jour les paramètres du formulaire de pré-chat"
},
"HELP_CENTER": {
"LABEL": "Centre d'aide",
"PLACEHOLDER": "Sélectionnez le centre d'aide",
"SELECT_PLACEHOLDER": "Sélectionnez le centre d'aide",
+ "NONE": "Aucun",
"REMOVE": "Supprimer le centre d'aide",
"SUB_TEXT": "Attachez un centre d'aide avec la boîte de réception"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Veuillez entrer une valeur supérieure à 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limiter le nombre maximum de conversations de cette boîte de réception qui peuvent être assignées automatiquement à un agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Konversationsauftrag",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actif",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuler",
+ "CONFIRM_DELETE": "Supprimer",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Réautoriser",
"SUBTITLE": "Votre connexion Facebook a expiré, veuillez reconnecter votre page Facebook pour continuer les services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Langue",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Retour"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Message d'indisponibilité pour les visiteurs",
"TOGGLE_HELP": "Activer la disponibilité professionnelle montrera les heures disponibles sur le widget chat en direct même si tous les agents sont hors ligne. En dehors des heures disponibles, les visiteurs peuvent être avertis avec un message et un formulaire de préconversation.",
"DAY": {
+ "DAY": "Jour",
+ "AVAILABILITY": "Disponibilité",
+ "HOURS": "Heures",
"ENABLE": "Activer la disponibilité pour ce jour",
"UNAVAILABLE": "Non disponible",
- "HOURS": "heures",
"VALIDATION_ERROR": "L'heure de début doit être avant l'heure de fermeture.",
"CHOOSE": "Sélectionner"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Pour activer le SMTP, veuillez configurer IMAP.",
"UPDATE": "Modifier les paramètres IMAP",
"TOGGLE_AVAILABILITY": "Activer la configuration IMAP pour cette boîte de réception",
- "TOGGLE_HELP": "Activer IMAP aidera l'utilisateur à recevoir des emails",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "Paramètres IMAP mis à jour avec succès",
"ERROR_MESSAGE": "Impossible de mettre à jour les paramètres IMAP"
@@ -606,7 +1042,8 @@
"LABEL": "Mot de passe",
"PLACE_HOLDER": "Mot de passe"
},
- "ENABLE_SSL": "Activer SSL"
+ "ENABLE_SSL": "Activer SSL",
+ "AUTH_MECHANISM": "Identification"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "En une journée"
},
"WIDGET_COLOR_LABEL": "Couleur du Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Position de la bulle du widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Type de bulle de widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Discutez avec nous",
- "LABEL": "Titre du Widget Bubble Launcher",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Discutez avec nous"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Par défaut",
- "CHAT": "Discussion"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Répond généralement en quelques minutes",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Autres fournisseurs"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Autres fournisseurs",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Site internet",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Courriel",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Canal API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/index.js b/app/javascript/dashboard/i18n/locale/fr/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/fr/index.js
+++ b/app/javascript/dashboard/i18n/locale/fr/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
index 60bbb5ac8..ed8a4eb36 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Récupération des intégrations",
- "NO_HOOK_CONFIGURED": "Aucune intégration %{integrationId} n'est configurée dans ce compte.",
+ "NO_HOOK_CONFIGURED": "Aucune intégration {integrationId} n'est configurée dans ce compte.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Activé",
"DISABLED": "Désactivé"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Récupération des webhooks de l'intégration",
"INBOX": "Boîte de réception",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Supprimer"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Sélectionner la boîte de réception"
},
"SUBMIT": "Créer",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Annuler"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Déconnecter"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow est une plateforme de compréhension du langage naturel qui facilite la conception et l'intégration d'une interface utilisateur dans votre application mobile, application web, périphérique, bot, système de réponse vocale interactive, et ainsi de suite.
L'intégration de Dialogflow avec %{installationName} vous permet de configurer un bot Dialogflow avec vos boîtes de réception qui permet au bot de gérer les requêtes initialement et de les remettre à un agent si nécessaire. Le Dialogflow peut être utilisé pour qualifier les plombs, réduire la charge de travail des agents en fournissant des questions fréquentes, etc.
Pour ajouter Dialogflow, vous devez créer un compte de service dans votre console de projet Google et partager les identifiants. Reportez-vous à la documentation Dialogflow pour plus d'informations."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/integrations.json b/app/javascript/dashboard/i18n/locale/fr/integrations.json
index 4cd66a317..557365f36 100644
--- a/app/javascript/dashboard/i18n/locale/fr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/fr/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Annuler",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Intégrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Événements suivis",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuler",
"DESC": "Les événements Webhook vous fournissent des informations en temps réel sur ce qui se passe dans votre compte Chatwoot. Veuillez entrer une URL valide pour configurer un callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "URL du Webhook",
- "PLACEHOLDER": "Exemple : https://exemple/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Veuillez entrer une URL valide"
},
"EDIT_SUBMIT": "Mettre à jour le webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Il n'y a aucun Webhook configuré pour ce compte.",
"TITLE": "Gérer les webhooks",
- "TABLE_HEADER": [
- "Point de terminaison du Webhook",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Point de terminaison du Webhook",
+ "ACTIONS": "Actions"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Modifier",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Confirmer la suppression",
- "MESSAGE": "Êtes-vous sûr de vouloir supprimer le webhoook ? (%{webhookURL})",
+ "MESSAGE": "Êtes-vous sûr de vouloir supprimer le webhoook ? ({webhookURL})",
"YES": "Oui, supprimer ",
"NO": "Non, conservez-le"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Supprimer",
"DELETE_CONFIRMATION": {
"TITLE": "Supprimer l'intégration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Utilisation de l'intégration Slack",
- "BODY": "
Chatwoot va maintenant synchroniser toutes les conversations entrantes dans le canal customer-conversations à l'intérieur de Workspace Sack.
Répondre à un fil de conversation dans le canal Slack customer-conversations créera une réponse au client via chatwoot.
Commencez les réponses avec note : pour créer des notes privées au lieu de réponses.
Si le répondant sur Slack a un profil d'agent dans le chat avec la même adresse email, les réponses seront associées en conséquence.
Lorsque le répondant n'a pas de profil d'agent associé, les réponses seront faites avec le profil du bot.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "sélectionné"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "Assistance IA",
- "WITH_AI": " %{option} avec IA ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Suggestion de réponse",
"SUMMARIZE": "Résumer",
@@ -114,7 +161,29 @@
"EXPAND": "Développer",
"MAKE_FRIENDLY": "Modifier la tonalité du message en mode convivial",
"MAKE_FORMAL": "Utiliser une tonalité formelle",
- "SIMPLIFY": "Simplifier"
+ "SIMPLIFY": "Simplifier",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionnel",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amical"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Contenu du brouillon",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Ajouter une nouvelle application de tableau de bord",
"SIDEBAR_TXT": "Les applications du tableau de bord
Les applications du tableau de bord permettent aux organisations d'intégrer une application dans le tableau de bord Chatwoot pour fournir le contexte aux agents d'assistance client. Cette fonctionnalité vous permet de créer une application indépendamment et d'intégrer cela dans le tableau de bord pour fournir les informations de l'utilisateur, leurs commandes, ou leur historique de paiement précédent.
Lorsque vous intégrez votre application en utilisant le tableau de bord dans Chatwoot, votre application obtiendra le contexte de la conversation et le contact comme un événement de fenêtre. Implémentez un listener pour l'événement message sur votre page pour recevoir le contexte.
Pour ajouter une nouvelle application de tableau de bord, cliquez sur le bouton 'Ajouter une nouvelle application de tableau de bord'.
",
"DESCRIPTION": "Les applications du tableau de bord permettent aux organisations d'intégrer une application dans le tableau de bord pour fournir le contexte des agents d'assistance client. Cette fonctionnalité vous permet de créer une application de manière indépendante et d'intégrer les informations de l'utilisateur, leurs commandes ou leur historique de paiement précédent.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Il n'y a pas encore d'applications de tableau de bord configurées sur ce compte",
"LOADING": "Récupération des applications du tableau de bord ...",
- "TABLE_HEADER": [
- "Nom",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "ENDPOINT": "Terminaison",
+ "ACTIONS": "Actions"
+ },
"EDIT_TOOLTIP": "Editer l'application",
"DELETE_TOOLTIP": "Supprimer l'application"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Oui, supprimez-le",
"CONFIRM_NO": "Non, conservez-le",
"TITLE": "Confirmer la suppression",
- "MESSAGE": "Êtes-vous sûr de vouloir supprimer l'application - %{appName}?",
+ "MESSAGE": "Êtes-vous sûr de vouloir supprimer l'application - {appName}?",
"API_SUCCESS": "Application du tableau de bord supprimée avec succès",
"API_ERROR": "Nous n'avons pas pu supprimer l'application. Veuillez réessayer plus tard"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Créer",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Lien",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titre",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Le titre est requis"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Équipes",
+ "PLACEHOLDER": "Sélectionner une équipe",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priorité",
+ "PLACEHOLDER": "Sélectionner la priorité",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Étiquettes",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "État",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Créer",
+ "CANCEL": "Annuler",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "État",
+ "PRIORITY": "Priorité",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Étiquettes",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Oui, supprimer",
+ "CANCEL": "Annuler"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "En savoir plus",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistants IA",
+ "SWITCH_ASSISTANT": "Changer d’assistant",
+ "NEW_ASSISTANT": "Créer un assistant",
+ "EMPTY_LIST": "Aucun assistant trouvé, veuillez en créer un pour commencer"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Commencez avec Copilot",
+ "KICK_OFF_MESSAGE": "Besoin d’un résumé rapide, de consulter les conversations passées ou de rédiger une meilleure réponse ? Copilot est là pour accélérer les choses.",
+ "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 réfléchit",
+ "YOU": "Vous",
+ "USE": "Utiliser ceci",
+ "RESET": "Réinitialiser",
+ "SHOW_STEPS": "Afficher les étapes",
+ "SELECT_ASSISTANT": "Sélectionner un 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": "Conversations à haute priorité",
+ "CONTENT": "Fournissez-moi un résumé de toutes les conversations ouvertes à haute priorité. Incluez l’ID de la conversation, le nom du client (si disponible), le contenu du dernier message et l’agent assigné. Regroupez par statut si pertinent."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Lister les contacts",
+ "CONTENT": "Montrez-moi la liste des 10 contacts principaux. Incluez nom, email ou numéro de téléphone (si disponible), dernière connexion, étiquettes (le cas échéant)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vous",
+ "ASSISTANT": "Assistant IA",
+ "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": "Passez à la version supérieure pour utiliser Captain AI",
+ "AVAILABLE_ON": "Captain n’est pas disponible avec le plan gratuit.",
+ "UPGRADE_PROMPT": "Passez à un plan supérieur pour accéder à nos assistants, Copilot et plus encore.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI est uniquement disponible dans les plans Entreprise.",
+ "UPGRADE_PROMPT": "Passez à un plan supérieur pour accéder à nos assistants, Copilot et plus encore.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Vous avez utilisé plus de 80 % de votre quota de réponses. Pour continuer à utiliser Captain AI, veuillez passer à la version supérieure.",
+ "DOCUMENTS": "Limite de documents atteinte. Passez à la version supérieure pour continuer à utiliser Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Annuler",
+ "CREATE": "Créer",
+ "EDIT": "Mettre à jour"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Entrez la description de l'assistant",
+ "ERROR": "La description est requise"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Impossible de trouver l'assistant. Veuillez réessayer."
+ },
+ "SETTINGS": {
+ "HEADER": "Paramètres",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Supprimer"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Créer",
+ "CANCEL": "Annuler",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Supprimer"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Créer",
+ "CANCEL": "Annuler",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Supprimer"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titre",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Créer",
+ "CANCEL": "Annuler"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Annuler",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Supprimer",
+ "BULK_SYNC_BUTTON": "Actualiser",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page introuvable",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Outils",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Ouvrir la facturation",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Aucun",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Clé de l'API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Mot de passe",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nombre",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obligatoire"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Supprimer",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Tous"
+ },
+ "STATUS": {
+ "TITLE": "État",
+ "PENDING": "En attente",
+ "APPROVED": "Approved",
+ "ALL": "Tous"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Modifier",
+ "DELETE_RESPONSE": "Supprimer"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Déconnecter"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Oui, supprimer",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Boîte de réception",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
index 2b894d68f..bdaf46270 100644
--- a/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/fr/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Étiquettes",
"HEADER_BTN_TXT": "Ajouter une étiquette",
"LOADING": "Récupération des étiquettes",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Rechercher des étiquettes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Il n'y a aucun élément correspondant à cette requête",
- "SIDEBAR_TXT": "Étiquettes
Les étiquettes vous aident à catégoriser les conversations et à les prioriser. Vous pouvez assigner une étiquette à une conversation depuis le panneau latéral.
Les étiquettes sont liées au compte et peuvent être utilisées pour créer des processus personnalisés dans votre entreprise. Vous pouvez assigner une couleur personnalisée à une étiquette, cela rend plus facile l'identification de l'étiquette. Vous serez en mesure d'afficher l'étiquette dans la barre latérale pour filtrer les conversations facilement.
",
"LIST": {
"404": "Il n'y a aucune étiquette disponible dans ce compte.",
"TITLE": "Gérer les étiquettes",
"DESC": "Les étiquettes vous permettent de grouper les conversations ensemble.",
- "TABLE_HEADER": [
- "Nom",
- "Description",
- "Couleur"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "DESCRIPTION": "Description",
+ "COLOR": "Couleur",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Rejeter",
"ADD_SELECTED_LABELS": "Ajouter les libellés sélectionnés",
"ADD_SELECTED_LABEL": "Ajouter le libellé sélectionné",
- "ADD_ALL_LABELS": "Ajouter tous les libellés"
+ "ADD_ALL_LABELS": "Ajouter tous les libellés",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Ajouter une étiquette",
diff --git a/app/javascript/dashboard/i18n/locale/fr/login.json b/app/javascript/dashboard/i18n/locale/fr/login.json
index 12f19f933..a1aa8425e 100644
--- a/app/javascript/dashboard/i18n/locale/fr/login.json
+++ b/app/javascript/dashboard/i18n/locale/fr/login.json
@@ -3,7 +3,7 @@
"TITLE": "Se connecter à Chatwoot",
"EMAIL": {
"LABEL": "Courriel",
- "PLACEHOLDER": "exemple@nomentreprise.fr",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Veuillez saisir une adresse de courriel valide"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Mot de passe oublié ?",
"CREATE_NEW_ACCOUNT": "Créer un nouveau compte",
- "SUBMIT": "Se connecter"
+ "SUBMIT": "Se connecter",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/macros.json b/app/javascript/dashboard/i18n/locale/fr/macros.json
index f7de20e78..d82036803 100644
--- a/app/javascript/dashboard/i18n/locale/fr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/fr/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Ajouter une macro",
"HEADER_BTN_TXT_SAVE": "Enregistrer une macro",
"LOADING": "Récupération des macros",
- "SIDEBAR_TXT": "Macros
Une macro est un ensemble d'actions enregistrées qui aident les agents du service client à compléter facilement des tâches. Les agents peuvent définir un ensemble d'actions comme le marquage d'une conversation avec une étiquette, l'envoi d'une transcription d'e-mail, la mise à jour d'un attribut personnalisé, etc. et ils peuvent exécuter ces actions en un seul clic. Lorsque les agents exécutent la macro, les actions sont exécutées séquentiellement dans l'ordre dans lequel elles sont définies. Les macros améliorent la productivité et augmentent la cohérence des actions.
Une macro peut être utile de 2 manières.
En tant qu'assistant d'agent : Si un agent effectue un ensemble d'actions plusieurs fois, ils peuvent l'enregistrer comme une macro et exécuter toutes les actions ensemble en un seul clic.
En tant qu'option pour embarquer dans un membre de l'équipe: Chaque agent doit effectuer plusieurs vérifications/actions différentes lors de chaque conversation. L'intégration d'un nouveau membre de l'équipe d'assistance sera facile si des macros prédéfinies sont disponibles sur le compte. Au lieu de décrire chaque étape en détail, le manager/responsable de l'équipe peut pointer vers les macros utilisées dans différents scénarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Une erreur s'est produite. Veuillez réessayer",
"ORDER_INFO": "Les macros s'exécuteront dans l'ordre où vous ajoutez vos actions. Vous pouvez les réorganiser en les glissant par la poignée à côté de chaque nœud.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nom",
- "Créé par",
- "Dernière mise à jour par",
- "Visibilité"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nom",
+ "CREATED BY": "Créé par",
+ "LAST_UPDATED_BY": "Dernière mise à jour par",
+ "VISIBILITY": "Visibilité",
+ "ACTIONS": "Actions"
+ },
"404": "Aucune macro trouvée"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Une erreur est survenue lors de la suppression de la macro. Veuillez réessayer plus tard"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Modifier la macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Visibilité des macros",
"GLOBAL": {
"LABEL": "Publique",
- "DESCRIPTION": "Cette macro est visible pour tous les agents de ce compte."
+ "DESCRIPTION": "Cette macro est visible pour tous les agents de ce compte.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privé",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Exécuter",
"PREVIEW": "Aperçu de la macro",
"EXECUTED_SUCCESSFULLY": "Macro exécutée"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "La valeur est requise",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Aucun",
+ "LOW": "Faible",
+ "MEDIUM": "Moyenne",
+ "HIGH": "Élevé",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/mfa.json b/app/javascript/dashboard/i18n/locale/fr/mfa.json
new file mode 100644
index 000000000..92a30043d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Activé",
+ "DISABLED": "Désactivé",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copier",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Annuler",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Télécharger",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Mot de passe",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Annuler",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Annuler",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/onboarding.json b/app/javascript/dashboard/i18n/locale/fr/onboarding.json
new file mode 100644
index 000000000..3aa5f93e9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Bonjour {name} !",
+ "SUBTITLE": "Veuillez vérifier les informations suivantes",
+ "YOUR_DETAILS": "Vos informations",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Courriel",
+ "YOUR_ROLE": "Votre rôle",
+ "WEBSITE": "Site internet",
+ "LANGUAGE": "Langue",
+ "TIMEZONE": "Fuseau horaire",
+ "COMPANY_SIZE": "Taille de l'entreprise",
+ "INDUSTRY": "Secteur d'activité",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Sélectionnez votre rôle",
+ "ENTER_WEBSITE": "www.exemple.fr",
+ "SELECT_LANGUAGE": "Sélectionner la langue",
+ "SELECT_TIMEZONE": "Sélectionnez le fuseau horaire",
+ "SELECT_COMPANY_SIZE": "Sélectionnez la taille de l'entreprise",
+ "SELECT_INDUSTRY": "Sélectionnez un secteur d'activité",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Enregistrement en cours...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Les informations ont été enregistrées avec succès",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/report.json b/app/javascript/dashboard/i18n/locale/fr/report.json
index 232bbc906..8d610113d 100644
--- a/app/javascript/dashboard/i18n/locale/fr/report.json
+++ b/app/javascript/dashboard/i18n/locale/fr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"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_AGENT_REPORTS": "Télécharger les rapports de l'agent",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Impossible de récupérer les données, veuillez réessayer ultérieurement.",
"SUMMARY_FETCHING_FAILED": "Impossible de récupérer le résumé, veuillez réessayer plus tard.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Délai de première réponse",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de première réponse est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de première réponse est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de résolution",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de résolution est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de résolution est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Nombre de résolutions",
"DESC": "(Total)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Nombre de résolutions",
+ "DESC": "(Total)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(Total)"
+ },
"REPLY_TIME": {
"NAME": "Temps d'attente du client",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "7 derniers jours",
+ "LAST_14_DAYS": "14 derniers jours",
"LAST_30_DAYS": "30 derniers jours",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "3 derniers mois",
"LAST_6_MONTHS": "6 derniers mois",
"LAST_YEAR": "Année dernière",
"CUSTOM_DATE_RANGE": "Plage de date personnalisée"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "7 derniers jours"
- },
- {
- "id": 1,
- "name": "30 derniers jours"
- },
- {
- "id": 2,
- "name": "3 derniers mois"
- },
- {
- "id": 3,
- "name": "6 derniers mois"
- },
- {
- "id": 4,
- "name": "Année dernière"
- },
- {
- "id": 5,
- "name": "Plage de date personnalisée"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Appliquer",
"PLACEHOLDER": "Sélectionnez la plage de dates"
@@ -130,14 +116,28 @@
"groupBy": "Mois"
}
],
- "BUSINESS_HOURS": "Heures de bureau"
+ "BUSINESS_HOURS": "Heures de bureau",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Aucun résultat trouvé"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Présentation des agents",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Télécharger les rapports de l'agent",
"FILTER_DROPDOWN_LABEL": "Sélectionner un agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Chercher des agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -155,13 +155,13 @@
"NAME": "Délai de première réponse",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de première réponse est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de première réponse est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de résolution",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de résolution est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de résolution est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Nombre de résolutions",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Sélectionnez l'étiquette",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Rechercher des étiquettes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -222,13 +228,13 @@
"NAME": "Délai de première réponse",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de première réponse est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de première réponse est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de résolution",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de résolution est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de résolution est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Nombre de résolutions",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Présentation de la boîte de réception",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Télécharger les rapports de la boîte de réception",
"FILTER_DROPDOWN_LABEL": "Sélectionner la boîte de réception",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "Délai de première réponse",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de première réponse est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de première réponse est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de résolution",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de résolution est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de résolution est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Nombre de résolutions",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Présentation de l'équipe",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Télécharger les rapports d'équipe",
"FILTER_DROPDOWN_LABEL": "Choisis une équipe",
+ "FILTERS": {
+ "ADD_FILTER": "Ajouter un filtre",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Chercher des équipes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "Délai de première réponse",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de première réponse est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de première réponse est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Temps de résolution",
"DESC": "(Moy.)",
"INFO_TEXT": "Nombre total de conversations utilisées pour le calcul :",
- "TOOLTIP_TEXT": "Le temps de résolution est %{metricValue} (basé sur %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Le temps de résolution est {metricValue} (basé sur {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Nombre de résolutions",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Rapports CSAT",
- "NO_RECORDS": "Il n'y a aucune réponse à l'enquête CSAT disponible.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Télécharger les rapports CSAT",
"DOWNLOAD_FAILED": "Le téléchargement des rapports CSAT a échoué",
"FILTERS": {
+ "ADD_FILTER": "Ajouter un filtre",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Chercher des agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Chercher des équipes",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choisissez des agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Boîte de réception"
+ },
+ "TEAMS": {
+ "LABEL": "Équipes"
+ },
+ "RATINGS": {
+ "LABEL": "Note"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Agent assigné",
+ "AGENT_NAME": "Agent",
"RATING": "Note",
- "FEEDBACK_TEXT": "Commentaire sur la rétroaction"
- }
+ "FEEDBACK_TEXT": "Commentaire sur la rétroaction",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Réponses totales",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Taux de réponse",
"TOOLTIP": "Nombre total de réponses / Nombre total de messages de l'enquête CSAT envoyés * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Enregistrer",
+ "CANCEL": "Annuler",
+ "SAVING": "Enregistrement en cours...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Trafic des conversations",
"NO_CONVERSATIONS": "Aucune conversation",
- "CONVERSATION": "Conversation %{count}",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "Conversation {count}",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Aucune conversation",
+ "CONVERSATION": "Conversation {count}",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations par des agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Il n'y a aucune conversation par des agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OUVERT",
+ "OPEN": "Ouvert",
+ "UNATTENDED": "Sans surveillance",
+ "STATUS": "État"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Équipes",
+ "OPEN": "Ouvert",
"UNATTENDED": "Sans surveillance",
"STATUS": "État"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Jeudi",
"FRIDAY": "Vendredi",
"SATURDAY": "Samedi"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Ajouter un filtre",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Aucun résultat trouvé",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Nom de l'agent",
+ "INBOXES": "Nom de la boîte de réception",
+ "LABELS": "Nom de l'étiquette",
+ "TEAMS": "Nom de l'équipe"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Boîte de réception",
+ "AGENTS": "Agent",
+ "LABELS": "Étiquettes",
+ "TEAMS": "Équipes"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Nombre de résolutions",
+ "CONVERSATIONS": "Nbre de conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/search.json b/app/javascript/dashboard/i18n/locale/fr/search.json
index b814f3bf0..381be001e 100644
--- a/app/javascript/dashboard/i18n/locale/fr/search.json
+++ b/app/javascript/dashboard/i18n/locale/fr/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Tous",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "Aucun %{item} trouvé pour la requête '%{query}'",
- "EMPTY_STATE_FULL": "Aucun résultat pour la requête '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ pour cibler",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Recherche en cours",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Aucun {item} trouvé pour la requête '{query}'",
+ "EMPTY_STATE_FULL": "Aucun résultat pour la requête '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/pour cibler",
"INPUT_PLACEHOLDER": "Tapez 3 caractères ou plus pour lancer la recherche",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Recherche par identifiant de conversation, e-mail, numéro de téléphone, messages pour de meilleurs résultats de recherche. ",
"BOT_LABEL": "Bot",
"READ_MORE": "En savoir plus",
+ "READ_LESS": "Read less",
"WROTE": "a écrit :",
- "FROM": "de",
- "EMAIL": "courriel"
+ "FROM": "De",
+ "EMAIL": "Courriel",
+ "EMAIL_SUBJECT": "Objet",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "7 derniers jours",
+ "LAST_30_DAYS": "30 derniers jours",
+ "LAST_60_DAYS": "60 derniers jours",
+ "LAST_90_DAYS": "90 derniers jours",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "et",
+ "APPLY": "Appliquer",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Expéditeur",
+ "IN": "Boîte de réception",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Boîtes de réception",
+ "NO_AGENTS": "Aucun agent trouvé",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/settings.json b/app/javascript/dashboard/i18n/locale/fr/settings.json
index 9baf82516..5629b0351 100644
--- a/app/javascript/dashboard/i18n/locale/fr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Votre mot de passe a été modifié avec succès",
"AFTER_EMAIL_CHANGED": "Votre profil a été mis à jour avec succès, veuillez vous reconnecter car vos identifiants de connexion ont été modifiés",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Image de profil",
"ERROR": "Veuillez corriger les erreurs du formulaire",
"REMOVE_IMAGE": "Supprimer",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Par défaut",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Signature du message personnel",
"NOTE": "Créez une signature de message unique qui apparaîtra à la fin de chaque message que vous envoyez à partir de n'importe quelle boîte de réception. Vous pouvez également inclure une image en ligne, qui est prise en charge dans les boîtes de réception en direct, les e-mails et les API.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature enregistrée avec succès",
"IMAGE_UPLOAD_ERROR": "Impossible de télécharger l'image! Réessayez",
"IMAGE_UPLOAD_SUCCESS": "L'image a été ajoutée avec succès. Veuillez cliquer sur Enregistrer pour enregistrer la signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "La taille de l'image doit être inférieure à {size}Mo"
+ "IMAGE_UPLOAD_SIZE_ERROR": "La taille de l'image doit être inférieure à {size}Mo",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Signature du message",
@@ -54,15 +81,45 @@
"NOTE": "Mettre à jour votre mot de passe réinitialisera vos connexions sur plusieurs appareils.",
"BTN_TEXT": "Modifier le mot de passe"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Jeton d'accès",
- "NOTE": "Ce jeton peut être utilisé si vous construisez une intégration basée sur l'API"
+ "NOTE": "Ce jeton peut être utilisé si vous construisez une intégration basée sur l'API",
+ "COPY": "Copier",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Are you sure?",
+ "CONFIRM_HINT": "Click again to confirm",
+ "RESET_SUCCESS": "Jeton d'accès régénéré avec succès",
+ "RESET_ERROR": "Impossible de régénérer le jeton d'accès. Veuillez réessayer"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Notifications audio",
- "NOTE": "Activer les notifications audio dans le tableau de bord pour les nouveaux messages et conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Aucun",
+ "MINE": "Assigned",
+ "ALL": "Tous",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Événements d'alerte :",
+ "TITLE": "Alert events for conversations",
"NONE": "Aucun",
"ASSIGNED": "Conversations assignées",
"ALL_CONVERSATIONS": "Toutes les conversations"
@@ -74,7 +131,9 @@
"TITLE": "Condition d'alerte :",
"CONDITION_ONE": "Envoyer des alertes audio seulement si la fenêtre du navigateur n'est pas active",
"CONDITION_TWO": "Envoyer des alertes toutes les 30s jusqu'à ce que toutes les conversations assignées soient lues"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "En savoir plus"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notifications par courriel",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Envoyer des notifications par courriel quand une nouvelle conversation est créée",
"CONVERSATION_MENTION": "Envoyer des notifications par courriel lorsque vous êtes mentionné dans une conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications par courriel lorsqu'un nouveau message est créé dans une conversation assignée",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications par courriel lorsqu'un nouveau message est créé dans une conversation assignée"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications par courriel lorsqu'un nouveau message est créé dans une conversation assignée",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Courriel",
+ "PUSH": "Notifications push",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Vos préférences de notifications ont été mises à jour avec succès",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications push lorsqu'un nouveau message est créé dans une conversation assignée",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Envoyer des notifications par courriel lorsqu'un nouveau message est créé dans une conversation assignée",
"HAS_ENABLED_PUSH": "Vous avez activé les notifications pour ce navigateur.",
- "REQUEST_PUSH": "Activer les notifications push"
+ "REQUEST_PUSH": "Activer les notifications push",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Image de profil"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Disponibilité",
- "STATUSES_LIST": [
- "En ligne",
- "Occupé(e)",
- "Hors-ligne"
- ],
+ "STATUS": {
+ "ONLINE": "En ligne",
+ "BUSY": "Occupé",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Modifier",
- "CHANGE_ACCOUNTS": "Changer de compte",
- "CONTACT_SUPPORT": "Contacter le support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Sélectionnez un compte dans la liste suivante",
- "PROFILE_SETTINGS": "Paramètres de profil",
- "KEYBOARD_SHORTCUTS": "Raccourcis clavier",
- "APPEARANCE": "Changer l'apparence",
- "SUPER_ADMIN_CONSOLE": "Super console d'administration",
- "LOGOUT": "Se déconnecter"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "jours d'essai restants.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Compte Suspendu",
"MESSAGE": "Votre compte est suspendu. Veuillez contacter le support pour plus d'informations."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Télécharger",
"UPLOADING": "Téléversement...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Cette Story n'est plus disponible."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Cette Story n'est plus disponible.",
+ "INSTAGRAM_STORY_REPLY": "A répondu à votre histoire:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Afficher sur la carte"
},
"FORM_BUBBLE": {
"SUBMIT": "Envoyer"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Vérification...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "En cours de visualisation:",
"SWITCH": "Commuter",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Conversations",
- "INBOX": "Boîte de réception",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Toutes les conversations",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Conversations assignées",
@@ -208,6 +308,18 @@
"REPORTS": "Rapports",
"SETTINGS": "Paramètres",
"CONTACTS": "Contacts",
+ "ACTIVE": "Actif",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Outils",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Terrain de jeu",
+ "CAPTAIN_INBOXES": "Boîtes de réception",
+ "CAPTAIN_SETTINGS": "Paramètres",
"HOME": "Accueil",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Nouvelle boîte de réception",
"REPORTS_CONVERSATION": "Conversations",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campagnes",
"ONGOING": "En cours",
"ONE_OFF": "Isolées",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agents",
"REPORTS_LABEL": "Étiquettes",
"REPORTS_INBOX": "Boîte de réception",
"REPORTS_TEAM": "Équipes",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Se définir comme",
+ "SET_YOUR_AVAILABILITY": "Définissez votre disponibilité",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Bêta",
"REPORTS_OVERVIEW": "Vue d'ensemble",
- "FACEBOOK_REAUTHORIZE": "Votre connexion Facebook a expiré, veuillez reconnecter votre page Facebook pour continuer les services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Centre d'aide",
- "ALL_ARTICLES": "Tous les articles",
- "MY_ARTICLES": "Mes articles",
- "DRAFT": "Brouillon",
- "ARCHIVED": "Archivé",
- "CATEGORY": "Catégorie",
- "SETTINGS": "Paramètres",
- "CATEGORY_EMPTY_MESSAGE": "Aucune catégorie trouvée"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Catégories",
+ "LOCALES": "Langues",
+ "SETTINGS": "Paramètres"
},
+ "CHANNELS": "Canaux",
"SET_AUTO_OFFLINE": {
"TEXT": "Passer hors-ligne automatiquement",
- "INFO_TEXT": "Laissez le système vous passer automatiquement hors ligne lorsque vous n'utilisez pas l'application ou le tableau de bord."
+ "INFO_TEXT": "Laissez le système vous passer automatiquement hors ligne lorsque vous n'utilisez pas l'application ou le tableau de bord.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Lire la documentation"
+ "DOCS": "Lire la documentation",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fonctionnalités",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Facturation",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Abonnement actuel",
- "PLAN_NOTE": "Vous êtes actuellement abonné à l'offre **%{plan}** avec **%{quantity}** licences"
+ "PLAN_NOTE": "Vous êtes actuellement abonné à l'offre **{plan}** avec **{quantity}** licences",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Gérer votre abonnement",
"DESCRIPTION": "Visualisez vos factures précédentes, modifiez vos coordonnées de facturation ou annulez votre abonnement.",
"BUTTON_TXT": "Accéder au portail de facturation"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Actualiser"
+ },
"CHAT_WITH_US": {
"TITLE": "Besoin d'aide ?",
"DESCRIPTION": "Vous avez des problèmes de facturation? Nous sommes là pour vous aider.",
"BUTTON_TXT": "Discutez avec nous"
},
- "NO_BILLING_USER": "Votre compte de facturation est en cours de configuration. Veuillez actualiser la page et réessayer."
+ "NO_BILLING_USER": "Votre compte de facturation est en cours de configuration. Veuillez actualiser la page et réessayer.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Annuler",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Retour",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code copié dans le presse-papier avec succès",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Rechercher des attributs"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Reprendre la conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Reprendre la conversation",
+ "CANCEL": "Annuler"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Oui",
+ "NO": "Non"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oh oh ! Nous n'avons pas trouvé de compte Chatwoot. Veuillez créer un nouveau compte pour continuer.",
@@ -294,7 +624,8 @@
"LABEL": "Nom de la société",
"PLACEHOLDER": "Entreprises Wayne"
},
- "SUBMIT": "Envoyer"
+ "SUBMIT": "Envoyer",
+ "CANCEL": "Annuler"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Aller à la barre latérale des rapports",
"MOVE_TO_NEXT_TAB": "Passer à l'onglet suivant dans la liste des conversations",
"GO_TO_SETTINGS": "Accéder aux paramètres",
- "SWITCH_CONVERSATION_STATUS": "Passer au statut suivant de la conversation",
"SWITCH_TO_PRIVATE_NOTE": "Basculer vers une note privée",
"SWITCH_TO_REPLY": "Basculer vers la réponse",
"TOGGLE_SNOOZE_DROPDOWN": "Activer/désactiver la liste déroulante de répétition"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priorité",
+ "ACTIVE": "Actif",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Modifier"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuler"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "État:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Ajouter"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Modifier"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuler"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Ajouter"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Supprimer",
+ "CANCEL_BUTTON_LABEL": "Annuler"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/signup.json b/app/javascript/dashboard/i18n/locale/fr/signup.json
index 8304dc5e3..3ec6e7254 100644
--- a/app/javascript/dashboard/i18n/locale/fr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/fr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Créer un compte",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Inscription",
"TESTIMONIAL_HEADER": "Il suffit d'une étape pour avancer",
"TESTIMONIAL_CONTENT": "Vous n'êtes plus qu'à un pas d'engager vos clients, de les fidéliser et d'en trouver de nouveaux.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "E-mail professionnel",
- "PLACEHOLDER": "Entrez votre adresse e-mail professionnelle. Ex. : bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Veuillez entrer une adresse e-mail professionnelle valide"
},
"PASSWORD": {
"LABEL": "Mot de passe",
"PLACEHOLDER": "Mot de passe",
"ERROR": "Le mot de passe est trop court",
- "IS_INVALID_PASSWORD": "Le mot de passe doit contenir au moins 1 lettre majuscule, 1 lettre minuscule, 1 chiffre et 1 caractère spécial"
+ "IS_INVALID_PASSWORD": "Le mot de passe doit contenir au moins 1 lettre majuscule, 1 lettre minuscule, 1 chiffre et 1 caractère spécial",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirmer le mot de passe",
"PLACEHOLDER": "Confirmer le mot de passe",
- "ERROR": "Les mots de passe ne correspondent pas"
+ "ERROR": "Les mots de passe ne correspondent pas."
},
"API": {
- "SUCCESS_MESSAGE": "Inscription réussie",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Impossible de se connecter au serveur Woot, veuillez réessayer plus tard"
},
"SUBMIT": "Créer un compte",
- "HAVE_AN_ACCOUNT": "Vous avez déjà un compte ?"
+ "HAVE_AN_ACCOUNT": "Vous avez déjà un compte ?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/sla.json b/app/javascript/dashboard/i18n/locale/fr/sla.json
index bf9e31063..388265561 100644
--- a/app/javascript/dashboard/i18n/locale/fr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/fr/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Il n'y a aucun élément correspondant à cette requête",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nom",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Heures de bureau"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Une erreur est survenue, veuillez réessayer"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmer la suppression",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Oui, supprimer ",
+ "NO": "Non, Conserver "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Délai de la première réponse",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/snooze.json b/app/javascript/dashboard/i18n/locale/fr/snooze.json
new file mode 100644
index 000000000..39ea74496
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "heures",
+ "DAY": "jour",
+ "DAYS": "jours",
+ "WEEK": "jour",
+ "WEEKS": "weeks",
+ "MONTH": "semaine",
+ "MONTHS": "months",
+ "YEAR": "mois",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "suivant",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "demain",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "semaine prochaine",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "jour",
+ "DAY": "jour"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
index 3b2fde171..89e547718 100644
--- a/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/fr/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Créer une nouvelle équipe",
"HEADER": "Équipes",
- "SIDEBAR_TXT": "Équipes
Les équipes vous permettent d'organiser vos agents en groupes en fonction de leurs responsabilités.
Un utilisateur peut faire partie de plusieurs équipes. Vous pouvez assigner des conversations à une équipe lorsque vous travaillez en collaboration.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Chercher des équipes...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Il n'y a aucune équipe créée sur ce compte.",
- "EDIT_TEAM": "Modifier l'équipe"
+ "EDIT_TEAM": "Modifier l'équipe",
+ "NONE": "Aucun"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Ajouter un agent à votre équipe",
- "TITLE": "Ajouter des agents à l'équipe - %{teamName}",
+ "TITLE": "Ajouter des agents à l'équipe - {teamName}",
"DESC": "Ajouter des agents à votre équipe nouvellement créée. Cela vous permet de collaborer en équipe sur les conversations, d'être informé des nouveaux événements dans la même conversation."
},
- "WIZARD": [
- {
- "title": "Créer",
- "route": "settings_teams_new",
- "body": "Créer une nouvelle équipe d'agents."
- },
- {
- "title": "Ajouter des agents",
- "route": "settings_teams_add_agents",
- "body": "Ajouter des agents à l'équipe."
- },
- {
- "title": "Terminer",
- "route": "settings_teams_finish",
- "body": "Vous êtes paré !"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Créer",
+ "BODY": "Créer une nouvelle équipe d'agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Ajouter des agents",
+ "BODY": "Ajouter des agents à l'équipe."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Terminer",
+ "BODY": "Vous êtes paré !"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Mettre à jour les agents dans l'équipe",
- "TITLE": "Ajouter des agents à l'équipe - %{teamName}",
+ "TITLE": "Ajouter des agents à l'équipe - {teamName}",
"DESC": "Ajouter des agents à votre équipe nouvellement créée. Tous les agents ajoutés seront notifiés lorsqu'une conversation est assignée à cette équipe."
},
- "WIZARD": [
- {
- "title": "Détails de l'équipe",
- "route": "settings_teams_edit",
- "body": "Changer le nom, la description et d'autres détails."
- },
- {
- "title": "Modifier les agents",
- "route": "settings_teams_edit_members",
- "body": "Modifier les agents dans votre équipe."
- },
- {
- "title": "Terminer",
- "route": "settings_teams_edit_finish",
- "body": "Vous êtes paré !"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Détails de l'équipe",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Changer le nom, la description et d'autres détails."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Modifier les agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Modifier les agents dans votre équipe."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Terminer",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Vous êtes paré !"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Impossible d'enregistrer les détails de l'équipe. Veuillez réessayer."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "COURRIEL",
+ "AGENT": "Agent",
+ "EMAIL": "Courriel",
"BUTTON_TEXT": "Ajouter des agents",
"ADD_AGENTS": "Ajout d'agents à votre équipe...",
"SELECT": "sélectionner",
"SELECT_ALL": "sélectionner tous les agents",
- "SELECTED_COUNT": "%{selected} agents sur %{total} sélectionnés."
+ "SELECTED_COUNT": "{selected} agents sur {total} sélectionnés."
},
"ADD": {
- "TITLE": "Ajouter des agents à l'équipe - %{teamName}",
+ "TITLE": "Ajouter des agents à l'équipe - {teamName}",
"DESC": "Ajouter des agents à votre équipe nouvellement créée. Cela vous permet de collaborer en équipe sur les conversations, d'être informé des nouveaux événements dans la même conversation.",
"SELECT": "sélectionner",
"SELECT_ALL": "sélectionner tous les agents",
- "SELECTED_COUNT": "%{selected} agents sur %{total} sélectionnés.",
+ "SELECTED_COUNT": "{selected} agents sur {total} sélectionnés.",
"BUTTON_TEXT": "Ajouter des agents",
"AGENT_VALIDATION_ERROR": "Sélectionnez au moins un agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Impossible de supprimer l'équipe. Veuillez réessayer."
},
"CONFIRM": {
- "TITLE": "Voulez-vous vraiment supprimer - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Veuillez entrer {teamName} pour confirmer",
"MESSAGE": "La suppression de l'équipe supprimera les affectations liées aux conversations de cette équipe.",
"YES": "Supprimer ",
diff --git a/app/javascript/dashboard/i18n/locale/fr/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/fr/whatsappTemplates.json
index 415372102..c9d3babc0 100644
--- a/app/javascript/dashboard/i18n/locale/fr/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/fr/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Modèles WhatsApp",
- "SUBTITLE": "Sélectionnez le modèle whatsapp que vous souhaitez envoyer",
- "TEMPLATE_SELECTED_SUBTITLE": "Traiter %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Rechercher des modèles",
- "NO_TEMPLATES_FOUND": "Aucun modèle trouvé pour",
- "LABELS": {
- "LANGUAGE": "Langue",
- "TEMPLATE_BODY": "Corps du modèle",
- "CATEGORY": "Catégorie"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Entrez la valeur de %{variable}",
- "GO_BACK_LABEL": "Retour",
- "SEND_MESSAGE_LABEL": "Envoyer un message",
- "FORM_ERROR_MESSAGE": "Veuillez remplir toutes les variables avant d'envoyer"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Modèles WhatsApp",
+ "SUBTITLE": "Sélectionnez le modèle whatsapp que vous souhaitez envoyer",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Rechercher des modèles",
+ "NO_TEMPLATES_FOUND": "Aucun modèle trouvé pour",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Catégorie",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Langue",
+ "TEMPLATE_BODY": "Corps du modèle",
+ "CATEGORY": "Catégorie"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Langue",
+ "CATEGORY": "Catégorie",
+ "VARIABLE_PLACEHOLDER": "Entrez la valeur de {variable}",
+ "GO_BACK_LABEL": "Retour",
+ "SEND_MESSAGE_LABEL": "Envoyer un message",
+ "FORM_ERROR_MESSAGE": "Veuillez remplir toutes les variables avant d'envoyer",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/fr/yearInReview.json b/app/javascript/dashboard/i18n/locale/fr/yearInReview.json
new file mode 100644
index 000000000..a29276d6c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/fr/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Fermer",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Télécharger",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Suivant",
+ "SHARE": "Partager la conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/advancedFilters.json b/app/javascript/dashboard/i18n/locale/he/advancedFilters.json
index 6a70d6fcb..8574134f9 100644
--- a/app/javascript/dashboard/i18n/locale/he/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/he/advancedFilters.json
@@ -1,101 +1,117 @@
{
"FILTER": {
- "TITLE": "סינון שיחות",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
- "SUBMIT_BUTTON_LABEL": "שמור סננים",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "TITLE": "סנן שיחות",
+ "SUBTITLE": "הוסף את המסננים שלך למטה ולחץ על 'החל מסננים' כדי לחתוך דרך עומס הצ'אט.",
+ "EDIT_CUSTOM_FILTER": "ערוך תיקיה",
+ "CUSTOM_VIEWS_SUBTITLE": "הוסף או הסר מסננים ועדכן את התיקיה שלך.",
+ "ADD_NEW_FILTER": "הוסף מסנן",
+ "FILTER_DELETE_ERROR": "אופס, נראה שלא ניתן לשמור שום דבר! אנא הוסף לפחות מסנן אחד כדי לשמור.",
+ "SUBMIT_BUTTON_LABEL": "החל מסננים",
+ "UPDATE_BUTTON_LABEL": "עדכן תיקיה",
"CANCEL_BUTTON_LABEL": "ביטול",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "חובה ערך.",
- "TOOLTIP_LABEL": "סינון שיחות",
+ "CLEAR_BUTTON_LABEL": "נקה מסננים",
+ "FOLDER_LABEL": "שם התיקיה",
+ "FOLDER_QUERY_LABEL": "שאילתת תיקיה",
+ "EMPTY_VALUE_ERROR": "ערך נדרש.",
+ "TOOLTIP_LABEL": "סנן שיחות",
"QUERY_DROPDOWN_LABELS": {
- "AND": "ו/גם",
+ "AND": "ו",
"OR": "או"
},
+ "INPUT_PLACEHOLDER": "הכנס ערך",
"OPERATOR_LABELS": {
"equal_to": "שווה ל",
"not_equal_to": "לא שווה ל",
- "contains": "מכיל",
"does_not_contain": "לא מכיל",
"is_present": "נוכח",
"is_not_present": "לא נוכח",
"is_greater_than": "גדול מ",
"is_less_than": "קטן מ",
- "days_before": "זה x ימים לפני",
- "starts_with": "מתחיל עם"
+ "days_before": "הוא x ימים לפני",
+ "starts_with": "מתחיל עם",
+ "equalTo": "שווה ל",
+ "notEqualTo": "לא שווה ל",
+ "contains": "מכיל",
+ "doesNotContain": "לא מכיל",
+ "isPresent": "נוכח",
+ "isNotPresent": "לא נוכח",
+ "isGreaterThan": "גדול מ",
+ "isLessThan": "קטן מ",
+ "daysBefore": "הוא x ימים לפני",
+ "startsWith": "מתחיל עם"
},
"ATTRIBUTE_LABELS": {
"TRUE": "נכון",
"FALSE": "לא נכון"
},
"ATTRIBUTES": {
- "STATUS": "מצב",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "שם קבוצה",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "STATUS": "סטטוס",
+ "ASSIGNEE_NAME": "שם מוקצה",
+ "INBOX_NAME": "שם תיבת דואר נכנס",
+ "TEAM_NAME": "שם צוות",
+ "CONVERSATION_IDENTIFIER": "מזהה שיחה",
+ "CAMPAIGN_NAME": "שם קמפיין",
"LABELS": "תוויות",
- "BROWSER_LANGUAGE": "Browser language",
- "PRIORITY": "Priority",
- "COUNTRY_NAME": "Country name",
+ "BROWSER_LANGUAGE": "שפת דפדפן",
+ "PRIORITY": "עדיפות",
+ "COUNTRY_NAME": "שם מדינה",
"REFERER_LINK": "קישור מפנה",
"CUSTOM_ATTRIBUTE_LIST": "רשימה",
"CUSTOM_ATTRIBUTE_TEXT": "טקסט",
"CUSTOM_ATTRIBUTE_NUMBER": "מספר",
"CUSTOM_ATTRIBUTE_LINK": "קישור",
"CUSTOM_ATTRIBUTE_CHECKBOX": "תיבת סימון",
- "CREATED_AT": "נוצר בזמן",
- "LAST_ACTIVITY": "Last activity"
+ "CREATED_AT": "נוצר ב",
+ "LAST_ACTIVITY": "פעילות אחרונה"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "ערך נדרש",
+ "ATTRIBUTE_KEY_REQUIRED": "מפתח מאפיין נדרש",
+ "FILTER_OPERATOR_REQUIRED": "אופרטור מסנן נדרש",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "הערך חייב להיות בין 1 ל-998"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "מסננים סטנדרטיים",
+ "ADDITIONAL_FILTERS": "מסננים נוספים",
+ "CUSTOM_ATTRIBUTES": "מאפיינים מותאמים אישית"
},
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "האם אתה רוצה לשמור את המסנן הזה?",
"LABEL": "תן שם למסנן הזה",
- "PLACEHOLDER": "Name your filter to refer it later.",
- "ERROR_MESSAGE": "שם שדה חובה.",
+ "PLACEHOLDER": "תן שם למסנן שלך כדי להתייחס אליו מאוחר יותר.",
+ "ERROR_MESSAGE": "שם נדרש.",
"SAVE_BUTTON": "שמור מסנן",
"CANCEL_BUTTON": "ביטול",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "התיקיה נשמרה בהצלחה.",
- "ERROR_MESSAGE": "שגיאה או תקלה בהקמת התיקיה."
+ "SUCCESS_MESSAGE": "תיקיה נוצרה בהצלחה.",
+ "ERROR_MESSAGE": "שגיאה ביצירת תיקיה."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "הסגמנט נשמר בהצלחה.",
- "ERROR_MESSAGE": "תקלה או שגיאה בהקמת הסגמנט."
+ "SUCCESS_MESSAGE": "סגמנט נוצר בהצלחה.",
+ "ERROR_MESSAGE": "שגיאה ביצירת סגמנט."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "ערוך תיקיה"
},
"DELETE": {
"DELETE_BUTTON": "מחק מסנן",
"MODAL": {
"CONFIRM": {
"TITLE": "אשר מחיקה",
- "MESSAGE": "האם אתה בטוח למחוק הסנן הזה ",
- "YES": "Yes, delete",
- "NO": "לא, שמור את זה"
+ "MESSAGE": "האם אתה בטוח למחוק את המסנן ",
+ "YES": "כן, מחק",
+ "NO": "לא, שמור אותו"
}
},
"API_FOLDERS": {
"SUCCESS_MESSAGE": "תיקיה נמחקה בהצלחה.",
- "ERROR_MESSAGE": "שגיאה או תקלה במחיקת תיקיה."
+ "ERROR_MESSAGE": "שגיאה במחיקת תיקיה."
},
"API_SEGMENTS": {
"SUCCESS_MESSAGE": "סגמנט נמחק בהצלחה.",
- "ERROR_MESSAGE": "שגיאה במחיקת הערך."
+ "ERROR_MESSAGE": "שגיאה במחיקת סגמנט."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/agentBots.json b/app/javascript/dashboard/i18n/locale/he/agentBots.json
index 7fbfce0ef..021dfb70b 100644
--- a/app/javascript/dashboard/i18n/locale/he/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/he/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "בוטים",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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": "אמת ושמור"
+ "LOADING_EDITOR": "טוען עורך...",
+ "DESCRIPTION": "בוטים של סוכנים הם כמו החברים הכי נפלאים בצוות שלכם. הם יכולים להתמודד עם הדברים הקטנים, כך שאתם יכולים להתמקד בדברים החשובים. נסו אותם. אתם יכולים לנהל את הבוטים שלכם מדף זה או ליצור חדשים באמצעות כפתור 'הוסף בוט'.",
+ "LEARN_MORE": "למד על בוטי סוכנים",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "GLOBAL_BOT": "בוט מערכת",
+ "GLOBAL_BOT_BADGE": "מערכת",
+ "AVATAR": {
+ "SUCCESS_DELETE": "אווטר הבוט נמחק בהצלחה",
+ "ERROR_DELETE": "שגיאה במחיקת אווטר הבוט, אנא נסה שוב"
},
"BOT_CONFIGURATION": {
- "TITLE": "בחר סוכן בוט",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "בחר בוט סוכן",
+ "DESC": "הקצה בוט סוכן לתיבת הדואר הנכנס שלך. הם יכולים לטפל בשיחות ראשוניות ולהעביר אותן לסוכן חי כאשר נדרש.",
"SUBMIT": "עדכן",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "סוכן הבוט עודכן בהצלחה.",
- "DISCONNECTED_SUCCESS_MESSAGE": "סוכן הבוט נותק בהצלחה.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "נתק בוט",
+ "SUCCESS_MESSAGE": "בוט הסוכן עודכן בהצלחה.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "בוט הסוכן נותק בהצלחה.",
+ "ERROR_MESSAGE": "לא ניתן לעדכן את בוט הסוכן. אנא נסה שוב.",
+ "DISCONNECTED_ERROR_MESSAGE": "לא ניתן לנתק את בוט הסוכן. אנא נסה שוב.",
+ "SELECT_PLACEHOLDER": "בחר בוט"
},
"ADD": {
- "TITLE": "הגדר בוט חדש",
+ "TITLE": "הוסף בוט",
"CANCEL_BUTTON_TEXT": "ביטול",
"API": {
"SUCCESS_MESSAGE": "הבוט התווסף בהצלחה.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "ERROR_MESSAGE": "לא ניתן להוסיף בוט. אנא נסה שוב מאוחר יותר."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "לא נמצאו בוטים. אתה יכול ליצור בוט על ידי לחיצה על כפתור 'הוסף בוט'.",
+ "LOADING": "טוען בוטים...",
+ "TABLE_HEADER": {
+ "DETAILS": "פרטי בוט",
+ "URL": "כתובת URL של ווב הוק",
+ "ACTIONS": "פעולות"
+ }
},
"DELETE": {
"BUTTON_TEXT": "מחק",
- "TITLE": "Delete bot",
- "SUBMIT": "מחק",
- "CANCEL_BUTTON_TEXT": "ביטול",
- "DESCRIPTION": "האם אתה בטוח שברצונך למחוק בוט זה? פעולה זו לא ניתנת לשחזור.",
+ "TITLE": "מחק בוט",
+ "CONFIRM": {
+ "TITLE": "אשר מחיקה",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק את {name}?",
+ "YES": "כן, מחק",
+ "NO": "לא, השאר"
+ },
"API": {
"SUCCESS_MESSAGE": "הבוט נמחק בהצלחה.",
- "ERROR_MESSAGE": "Could not delete bot. Please try again."
+ "ERROR_MESSAGE": "לא ניתן למחוק בוט. אנא נסה שוב."
}
},
"EDIT": {
"BUTTON_TEXT": "ערוך",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "ביטול",
+ "TITLE": "ערוך בוט",
"API": {
"SUCCESS_MESSAGE": "הבוט עודכן בהצלחה.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "ERROR_MESSAGE": "לא ניתן לעדכן בוט. אנא נסה שוב."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "אסימון גישה",
+ "DESCRIPTION": "העתק את אסימון הגישה ושמור אותו בבטחה",
+ "COPY_SUCCESSFUL": "אסימון הגישה הועתק ללוח",
+ "RESET_SUCCESS": "אסימון הגישה חודש בהצלחה",
+ "RESET_ERROR": "לא ניתן לחדש את אסימון הגישה. אנא נסה שוב"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "אווטר בוט"
+ },
+ "NAME": {
+ "LABEL": "שם בוט",
+ "PLACEHOLDER": "הכנס שם בוט",
+ "REQUIRED": "שם בוט נדרש"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "מה הבוט הזה עושה?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "כתובת URL של ווב הוק",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "כתובת URL של ווב הוק נדרשת"
+ },
+ "ERRORS": {
+ "NAME": "שם בוט נדרש",
+ "URL": "כתובת URL של ווב הוק נדרשת",
+ "VALID_URL": "אנא הכנס כתובת URL תקינה המתחילה ב-http:// או https://"
+ },
+ "CANCEL": "ביטול",
+ "CREATE": "צור בוט",
+ "UPDATE": "עדכן בוט"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "הגדר בוט ווב הוק כדי לשלב עם השירותים המותאמים אישית שלך. הבוט יקבל ויעבד אירועים משיחות ויכול להגיב עליהם."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "בוט ווב הוק"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
index 52ab71ea5..777acd1fc 100644
--- a/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/agentMgmt.json
@@ -3,25 +3,28 @@
"HEADER": "סוכנים",
"HEADER_BTN_TXT": "הוסף סוכן",
"LOADING": "טוען רשימת סוכנים",
- "SIDEBAR_TXT": " נציג
נציג חבר בצוות תמיכת הלקוחות שלך.
נציגים יוכלו לצפות ולהשיב להודעות מהמשתמשים שלך. הרשימה מציגה את כל הסוכנים הנמצאים כעת בחשבונך.
לחץ על הוסף נציג כדי להוסיף נציג חדש. הנציג שאתה מוסיף יקבל דוא\"ל עם קישור אישור להפעלת חשבונו, ולאחר מכן יוכל לגשת ל- Chatwoot ולהגיב להודעות.
הגישה לתכונות של Chatwoot מבוססת על תפקידים הבאים.
נציג - סוכנים בעלי התפקיד הזה יכולים לגשת לתיבות דואר נכנס, לדוחות ולשיחות בלבד. הם יכולים להקצות שיחות לסוכנים אחרים או לעצמם ולפתור שיחות.
מנהל - למנהל תהיה גישה לכל תכונות Chatwoot המופעלות בחשבון שלך, כולל הגדרות, יחד עם כל הרשאות נציגים רגילות.
",
+ "DESCRIPTION": "סוכן הוא חבר בצוות התמיכה שלך שיכול לראות ולהגיב להודעות משתמשים. הרשימה למטה מציגה את כל הסוכנים בחשבון שלך.",
+ "LEARN_MORE": "למד על תפקידי משתמשים",
"AGENT_TYPES": {
- "ADMINISTRATOR": "אדמין",
+ "ADMINISTRATOR": "מנהל",
"AGENT": "סוכן"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "אין סוכנים המקושרים לחשבון זה",
"TITLE": "נהל סוכנים בצוות שלך",
"DESC": "אתה יכול להוסיף/להסיר סוכנים לצוות שלך.",
"NAME": "שם",
- "EMAIL": "מייל",
+ "EMAIL": "דוא״ל",
"STATUS": "מצב",
"ACTIONS": "פעולות",
- "VERIFIED": "אומת",
- "VERIFICATION_PENDING": "מחכה לאימות"
+ "VERIFIED": "מאומת",
+ "VERIFICATION_PENDING": "ממתין לאימות",
+ "AVAILABLE_CUSTOM_ROLE": "הרשאות תפקיד מותאמות אישית זמינות"
},
"ADD": {
"TITLE": "הוסף סוכן לצוות שלך",
- "DESC": "אתה יכול להוסיף אנשים אשר יוכלו לטפל בתמיכה בתיבות שלך.",
+ "DESC": "אתה יכול להוסיף אנשים שיוכלו לטפל בתמיכה בתיבות הדואר הנכנס שלך.",
"CANCEL_BUTTON_TEXT": "ביטול",
"FORM": {
"NAME": {
@@ -31,25 +34,25 @@
"AGENT_TYPE": {
"LABEL": "תפקיד",
"PLACEHOLDER": "אנא בחר תפקיד",
- "ERROR": "תפקיד שדה חובה"
+ "ERROR": "תפקיד נדרש"
},
"EMAIL": {
- "LABEL": "כתובת מייל",
- "PLACEHOLDER": "אנא הכנס כתובת מייל של הסוכן"
+ "LABEL": "כתובת דוא״ל",
+ "PLACEHOLDER": "אנא הכנס כתובת דוא״ל של הסוכן"
},
"SUBMIT": "הוסף סוכן"
},
"API": {
"SUCCESS_MESSAGE": "סוכן הוסף בהצלחה",
- "EXIST_MESSAGE": "המייל בשימוש, אנא נסה כתובת מייל אחרת",
- "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ "EXIST_MESSAGE": "כתובת הדוא״ל כבר בשימוש, אנא נסה כתובת אחרת",
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת ווט, נסה שוב מאוחר יותר"
}
},
"DELETE": {
"BUTTON_TEXT": "מחק",
"API": {
"SUCCESS_MESSAGE": "סוכן נמחק בהצלחה",
- "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת ווט, נסה שוב מאוחר יותר"
},
"CONFIRM": {
"TITLE": "אשר מחיקה",
@@ -68,16 +71,16 @@
"AGENT_TYPE": {
"LABEL": "תפקיד",
"PLACEHOLDER": "אנא בחר תפקיד",
- "ERROR": "תפקיד שדה חובה"
+ "ERROR": "תפקיד נדרש"
},
"EMAIL": {
- "LABEL": "כתובת מייל",
- "PLACEHOLDER": "אנא הכנס כתובת מייל של הסוכן"
+ "LABEL": "כתובת דוא״ל",
+ "PLACEHOLDER": "אנא הכנס כתובת דוא״ל של הסוכן"
},
"AGENT_AVAILABILITY": {
"LABEL": "זמינות",
- "PLACEHOLDER": "אנא בחר סטטוס זמינות",
- "ERROR": "נדרשת זמינות"
+ "PLACEHOLDER": "אנא בחר מצב זמינות",
+ "ERROR": "זמינות נדרשת"
},
"SUBMIT": "ערוך סוכן"
},
@@ -85,33 +88,38 @@
"CANCEL_BUTTON_TEXT": "ביטול",
"API": {
"SUCCESS_MESSAGE": "סוכן עודכן בהצלחה",
- "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת ווט, נסה שוב מאוחר יותר"
},
"PASSWORD_RESET": {
- "ADMIN_RESET_BUTTON": "אפס ססמה",
- "ADMIN_SUCCESS_MESSAGE": "מייל עם הוראות איפוס ססמא נשלח לסוכן",
- "SUCCESS_MESSAGE": "ססמת הסוכן אופסה בהצלחה",
- "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ "ADMIN_RESET_BUTTON": "איפוס סיסמה",
+ "ADMIN_SUCCESS_MESSAGE": "דוא״ל עם הוראות איפוס סיסמה נשלח לסוכן",
+ "SUCCESS_MESSAGE": "סיסמת הסוכן אופסה בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת ווט, נסה שוב מאוחר יותר"
}
},
+ "SEARCH_PLACEHOLDER": "חפש סוכנים...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "לא נמצאו תוצאות."
},
"MULTI_SELECTOR": {
"PLACEHOLDER": "אין",
"TITLE": {
- "AGENT": "בחר נציג",
- "TEAM": "בחר קבוצה"
+ "AGENT": "בחר סוכן",
+ "TEAM": "בחר צוות"
+ },
+ "LIST": {
+ "NONE": "אין"
},
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "לא נמצא סוכן",
- "TEAM": "לא נמצאו קבוצות"
+ "AGENT": "לא נמצאו סוכנים",
+ "TEAM": "לא נמצאו צוותים"
},
"PLACEHOLDER": {
- "AGENT": "חפש נציגים",
- "TEAM": "חפש קבוצות",
- "INPUT": "Search for agents"
+ "AGENT": "חפש סוכנים",
+ "TEAM": "חפש צוותים",
+ "INPUT": "חפש סוכנים"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
index cda523dfb..fb9abd8d9 100644
--- a/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/attributesMgmt.json
@@ -1,9 +1,26 @@
{
"ATTRIBUTES_MGMT": {
- "HEADER": "מאפיינים בהתאמה אישית",
+ "HEADER": "מאפיינים מותאמים אישית",
"HEADER_BTN_TXT": "הוסף מאפיין מותאם אישית",
- "LOADING": "שולף מאפיינים מותאמים אישית",
- "SIDEBAR_TXT": "שדות מותאמים
שדות מותאמים הינן פרמטרים נוספים שאתה יכול לשמור אודות איש הקשר או השיחה שלך — לדוגמא החבילה שבה נמצא הלקוח, או מתי הם עשו רכישה לאחרונה.
כדי ליצור שדה מותאם חדש, יש ללחוץ על הוסף שדה. ניתן גם לערוך או לחוק שדות על ידי לחיצה על כפתור העריכה או המחיקה בהתאמה
",
+ "LOADING": "טוען מאפיינים מותאמים אישית",
+ "DESCRIPTION": "מאפיין מותאם אישית עוקב אחר פרטים נוספים על אנשי הקשר או השיחות שלך—כגון תוכנית המנוי או תאריך הרכישה הראשונה שלהם. אתה יכול להוסיף סוגים שונים של מאפיינים מותאמים אישית, כגון טקסט, רשימות או מספרים, כדי ללכוד את המידע הספציפי שאתה צריך.",
+ "LEARN_MORE": "למד עוד על מאפיינים מותאמים אישית",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "חפש מאפיין...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "שיחה",
+ "CONTACT": "איש קשר",
+ "COMPANY": "חברה"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "טקסט",
+ "NUMBER": "מספר",
+ "LINK": "קישור",
+ "DATE": "תאריך",
+ "LIST": "רשימה",
+ "CHECKBOX": "תיבת סימון"
+ },
"ADD": {
"TITLE": "הוסף מאפיין מותאם אישית",
"SUBMIT": "צור",
@@ -11,111 +28,120 @@
"FORM": {
"NAME": {
"LABEL": "שם תצוגה",
- "PLACEHOLDER": "הכנס שם לשדה המותאם",
- "ERROR": "שם שדה חובה"
+ "PLACEHOLDER": "הכנס שם תצוגה למאפיין מותאם אישית",
+ "ERROR": "שם נדרש"
},
"DESC": {
"LABEL": "תיאור",
- "PLACEHOLDER": "הכנס תיאור לשדה המותאם",
- "ERROR": "נדרש תיאור"
+ "PLACEHOLDER": "הכנס תיאור למאפיין מותאם אישית",
+ "ERROR": "תיאור נדרש"
},
"MODEL": {
"LABEL": "חל על",
- "PLACEHOLDER": "בבקשה תבחר אחד",
- "ERROR": "דגם שדה חובה"
+ "PLACEHOLDER": "אנא בחר אחד",
+ "ERROR": "דגם נדרש"
},
"TYPE": {
"LABEL": "סוג",
"PLACEHOLDER": "אנא בחר סוג",
- "ERROR": "סוג הינו שדה חובה",
+ "ERROR": "סוג נדרש",
"LIST": {
- "LABEL": "רשימת ערכים",
- "PLACEHOLDER": "נא הכנס ערך תקין ולחץ על Enter",
- "ERROR": "חובה להזין לפחות ערך אחד"
+ "LABEL": "ערכי רשימה",
+ "PLACEHOLDER": "אנא הכנס ערך ולחץ על מקש Enter",
+ "ERROR": "חייב להיות לפחות ערך אחד"
}
},
"KEY": {
"LABEL": "מפתח",
- "PLACEHOLDER": "הכנס מפתח ייחודי לשדה המותאם",
- "ERROR": "מפתח הוא שדה חובה",
- "IN_VALID": "מפתח אינו חוקי"
+ "PLACEHOLDER": "הכנס מפתח למאפיין מותאם אישית",
+ "ERROR": "מפתח נדרש",
+ "IN_VALID": "מפתח לא תקין"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "תבנית Regex",
+ "PLACEHOLDER": "אנא הכנס תבנית regex למאפיין מותאם אישית. (אופציונלי)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "רמז Regex",
+ "PLACEHOLDER": "אנא הכנס רמז לתבנית regex. (אופציונלי)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "אפשר אימות regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
- "SUCCESS_MESSAGE": "שדה מותאם התווסף בהצלחה!",
- "ERROR_MESSAGE": "לא ניתן היה ליצור שדה מותאם, אנא נסה שוב מאוחר יותר."
+ "SUCCESS_MESSAGE": "מאפיין מותאם אישית נוסף בהצלחה!",
+ "ERROR_MESSAGE": "לא ניתן ליצור מאפיין מותאם אישית. אנא נסה שוב מאוחר יותר."
}
},
"DELETE": {
"BUTTON_TEXT": "מחק",
"API": {
- "SUCCESS_MESSAGE": "שדה מותאם נמחק בהצלחה.",
- "ERROR_MESSAGE": "לא ניתן למחוק את המאפיין המותאם אישית. נסה שנית."
+ "SUCCESS_MESSAGE": "מאפיין מותאם אישית נמחק בהצלחה.",
+ "ERROR_MESSAGE": "לא ניתן למחוק את המאפיין המותאם אישית. נסה שוב."
},
"CONFIRM": {
- "TITLE": "האם אתה בטוח רוצה למחוק - %{attributeName}",
+ "TITLE": "האם אתה בטוח שברצונך למחוק - {attributeName}",
"PLACE_HOLDER": "אנא הקלד {attributeName} כדי לאשר",
- "MESSAGE": "המחיקה תסיר את השדה המותאם",
+ "MESSAGE": "המחיקה תסיר את המאפיין המותאם אישית",
"YES": "מחק ",
"NO": "ביטול"
}
},
"EDIT": {
- "TITLE": "ערוך שדה מותאם",
+ "TITLE": "ערוך מאפיין מותאם אישית",
"UPDATE_BUTTON_TEXT": "עדכן",
"TYPE": {
"LIST": {
- "LABEL": "רשימת ערכים",
- "PLACEHOLDER": "אנא הכנס ערכים ולחץ Enter"
+ "LABEL": "ערכי רשימה",
+ "PLACEHOLDER": "אנא הכנס ערכים ולחץ על מקש Enter"
}
},
"API": {
- "SUCCESS_MESSAGE": "שדה מותאם עודכן בהצלחה",
- "ERROR_MESSAGE": "אירעה שגיאה בעדכון השדה המותאם, אנא נסה שנית"
+ "SUCCESS_MESSAGE": "מאפיין מותאם אישית עודכן בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה בעדכון המאפיין המותאם אישית, אנא נסה שוב"
}
},
"TABS": {
- "HEADER": "מאפיינים בהתאמה אישית",
+ "HEADER": "מאפיינים מותאמים אישית",
"CONVERSATION": "שיחה",
- "CONTACT": "איש קשר"
+ "CONTACT": "איש קשר",
+ "COMPANY": "חברה"
},
"LIST": {
- "TABLE_HEADER": [
- "שם",
- "תיאור",
- "סוג",
- "מפתח"
- ],
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "DESCRIPTION": "תיאור",
+ "TYPE": "סוג",
+ "KEY": "מפתח"
+ },
"BUTTONS": {
"EDIT": "ערוך",
"DELETE": "מחק"
},
"EMPTY_RESULT": {
- "404": "לא קיימים שדות מותאמים",
- "NOT_FOUND": "לא קיימים שדות מותאמים"
+ "404": "אין מאפיינים מותאמים אישית שנוצרו",
+ "NOT_FOUND": "אין מאפיינים מותאמים אישית מוגדרים"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "תבנית Regex",
+ "PLACEHOLDER": "אנא הכנס תבנית regex למאפיין מותאם אישית. (אופציונלי)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "רמז Regex",
+ "PLACEHOLDER": "אנא הכנס רמז לתבנית regex. (אופציונלי)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "אפשר אימות regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/auditLogs.json b/app/javascript/dashboard/i18n/locale/he/auditLogs.json
index 5e9fa608b..7f0b6b181 100644
--- a/app/javascript/dashboard/i18n/locale/he/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/he/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
+ "HEADER": "יומני ביקורת",
+ "HEADER_BTN_TXT": "הוסף יומני ביקורת",
+ "LOADING": "מאחזר יומני ביקורת",
+ "DESCRIPTION": "יומני ביקורת מתחזקים רישום של פעילויות בחשבונך, ומאפשרים לך לעקוב ולבקר את חשבונך, הצוות או השירותים שלך.",
+ "LEARN_MORE": "למד עוד על יומני ביקורת",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "כתובת IP"
- ]
+ "404": "אין יומני ביקורת זמינים בחשבון זה.",
+ "TITLE": "נהל יומני ביקורת",
+ "DESC": "יומני ביקורת הם תיעוד לאירועים ופעולות במערכת Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "משתמש",
+ "TIME": "פעולה",
+ "IP_ADDRESS": "כתובת IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "SUCCESS_MESSAGE": "יומני ביקורת אוחזרו בהצלחה",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "מערכת",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} יצר כלל אוטומציה חדש (#{id})",
+ "EDIT": "{agentName} עדכן כלל אוטומציה (#{id})",
+ "DELETE": "{agentName} מחק כלל אוטומציה (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} הזמין את {invitee} לחשבון בתור {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} שינה את {attributes} שלו/שלה ל- {values}",
+ "OTHER": "{agentName} שינה את {attributes} של {user} ל- {values}",
+ "DELETED": "{agentName} שינה את {attributes} של משתמש שנמחק ל- {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} יצר תיבת דואר נכנס חדשה (#{id})",
+ "EDIT": "{agentName} עדכן תיבת דואר נכנס (#{id})",
+ "DELETE": "{agentName} מחק תיבת דואר נכנס (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} יצר Webhook חדש (#{id})",
+ "EDIT": "{agentName} עדכן Webhook (#{id})",
+ "DELETE": "{agentName} מחק Webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} נכנס/ה",
+ "SIGN_OUT": "{agentName} יצא/ה"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} יצר צוות חדש (#{id})",
+ "EDIT": "{agentName} עדכן צוות (#{id})",
+ "DELETE": "{agentName} מחק צוות (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} יצר מאקרו חדש (#{id})",
+ "EDIT": "{agentName} עדכן מאקרו (#{id})",
+ "DELETE": "{agentName} מחק מאקרו (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} הוסיף/ה את {user} לתיבת הדואר הנכנס(#{inbox_id})",
+ "REMOVE": "{agentName} הסיר/ה את {user} מתיבת הדואר הנכנס(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} הוסיף/ה את {user} לצוות(#{team_id})",
+ "REMOVE": "{agentName} הסיר/ה את {user} מהצוות(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "EDIT": "{agentName} עדכן/ה את הגדרות החשבון (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} מחק/ה שיחה #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/automation.json b/app/javascript/dashboard/i18n/locale/he/automation.json
index 036255990..f83f08ed1 100644
--- a/app/javascript/dashboard/i18n/locale/he/automation.json
+++ b/app/javascript/dashboard/i18n/locale/he/automation.json
@@ -1,27 +1,31 @@
{
"AUTOMATION": {
- "HEADER": "אוטומציות",
- "HEADER_BTN_TXT": "הוספת אוטומציה",
- "LOADING": "חיבור אוטומציות",
- "SIDEBAR_TXT": "אוטומציות
האוטומציות יכולות להחליף פעולות שאתם עושים בדרך כלל בצורה ידנית. ניתן לעשות שלל דברים עם אוטומציה לדוגמא הוספת תויית ושיוך שיחה לסוכן בהתאם לחוקים מוגדרים מראש. זה יאפשר לצוות שלכם להתמקד בדברים החשובים באמת ולתת למערכת לעשות פעולות אוטומיות.
",
+ "HEADER": "אוטומציה",
+ "DESCRIPTION": "אוטומציה יכולה להחליף ולזרז תהליכים קיימים שדורשים מאמץ ידני, כגון הוספת תוויות והקצאת שיחות לסוכן המתאים ביותר. זה מאפשר לצוות להתמקד בחוזקות שלו תוך כדי הפחתת הזמן המושקע במשימות שגרתיות.",
+ "LEARN_MORE": "למד עוד על אוטומציה",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "טוען כללי אוטומציה",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
- "TITLE": "הוספת אוטומציה",
+ "TITLE": "הוסף כלל אוטומציה",
"SUBMIT": "צור",
"CANCEL_BUTTON_TEXT": "ביטול",
"FORM": {
"NAME": {
- "LABEL": "שם",
- "PLACEHOLDER": "הכנס שם לאוטומציה",
- "ERROR": "שם שדה חובה"
+ "LABEL": "שם כלל",
+ "PLACEHOLDER": "הכנס שם כלל",
+ "ERROR": "שם נדרש"
},
"DESC": {
"LABEL": "תיאור",
- "PLACEHOLDER": "הכנס תיאור",
- "ERROR": "נדרש תיאור"
+ "PLACEHOLDER": "הכנס תיאור כלל",
+ "ERROR": "תיאור נדרש"
},
"EVENT": {
"LABEL": "אירוע",
- "PLACEHOLDER": "בבקשה תבחר אחד",
+ "PLACEHOLDER": "אנא בחר אחד",
"ERROR": "אירוע נדרש"
},
"CONDITIONS": {
@@ -34,48 +38,48 @@
"CONDITION_BUTTON_LABEL": "הוסף תנאי",
"ACTION_BUTTON_LABEL": "הוסף פעולה",
"API": {
- "SUCCESS_MESSAGE": "אוטומציה התווספה בהצלחה",
- "ERROR_MESSAGE": "הוספת אוטומציה נכשלה, נסה שנית מאוחר יותר"
+ "SUCCESS_MESSAGE": "כלל אוטומציה נוסף בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן ליצור כלל אוטומציה, אנא נסה שוב מאוחר יותר"
}
},
"LIST": {
- "TABLE_HEADER": [
- "שם",
- "תיאור",
- "פעיל",
- "נוצר ב"
- ],
- "404": "לא נמצאו אוטומציות"
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "ACTIVE": "פעיל",
+ "CREATED_ON": "נוצר ב",
+ "ACTIONS": "פעולות"
+ },
+ "404": "לא נמצאו כללי אוטומציה"
},
"DELETE": {
- "TITLE": "מחק אוטומציה",
+ "TITLE": "מחק כלל אוטומציה",
"SUBMIT": "מחק",
"CANCEL_BUTTON_TEXT": "ביטול",
"CONFIRM": {
"TITLE": "אשר מחיקה",
- "MESSAGE": "האם אתה בטוח שברצונך למחוק ",
+ "MESSAGE": "האם אתה בטוח למחוק ",
"YES": "כן, מחק ",
"NO": "לא, השאר "
},
"API": {
- "SUCCESS_MESSAGE": "אוטומציה נמחקה בהצלחה",
- "ERROR_MESSAGE": "מחיקת האוטומציה נכשלה, נסה שנית מאוחר יותר"
+ "SUCCESS_MESSAGE": "כלל אוטומציה נמחק בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן למחוק כלל אוטומציה, אנא נסה שוב מאוחר יותר"
}
},
"EDIT": {
- "TITLE": "ערוך אוטומציה",
+ "TITLE": "ערוך כלל אוטומציה",
"SUBMIT": "עדכן",
"CANCEL_BUTTON_TEXT": "ביטול",
"API": {
- "SUCCESS_MESSAGE": "אוטומציה התעדכנה בהצלחה",
- "ERROR_MESSAGE": "עדכון אוטומציה נכשל, נסה שנית מאוחר יותר"
+ "SUCCESS_MESSAGE": "כלל אוטומציה עודכן בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לעדכן כלל אוטומציה, אנא נסה שוב מאוחר יותר"
}
},
"CLONE": {
"TOOLTIP": "שכפל",
"API": {
"SUCCESS_MESSAGE": "אוטומציה שוכפלה בהצלחה",
- "ERROR_MESSAGE": "שכפול אוטומציה נכשל, נסה שנית מאוחר יותר"
+ "ERROR_MESSAGE": "לא ניתן לשכפל כלל אוטומציה, אנא נסה שוב מאוחר יותר"
}
},
"FORM": {
@@ -83,36 +87,107 @@
"CREATE": "צור",
"DELETE": "מחק",
"CANCEL": "ביטול",
- "RESET_MESSAGE": "שינוי סוג אירוע יאפס את התנאים והפעולות שהוגדרו"
+ "RESET_MESSAGE": "שינוי סוג אירוע יאפס את התנאים והפעולות שהוספת למטה"
},
"CONDITION": {
- "DELETE_MESSAGE": "נדרש לפחות תנאי אחד",
- "CONTACT_CUSTOM_ATTR_LABEL": "שדה מותאם של איש קשר",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "שדה מותאם של שיחה"
+ "DELETE_MESSAGE": "אתה צריך לפחות תנאי אחד כדי לשמור",
+ "CONTACT_CUSTOM_ATTR_LABEL": "מאפיינים מותאמים אישית של איש קשר",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "מאפיינים מותאמים אישית של שיחה"
},
"ACTION": {
- "DELETE_MESSAGE": "נדרשת פעולה אחת לפחות",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "הכנס כאן את ההודעה",
- "TEAM_DROPDOWN_PLACEHOLDER": "בחר קבוצות"
+ "DELETE_MESSAGE": "אתה צריך לפחות פעולה אחת כדי לשמור",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "הכנס את ההודעה שלך כאן",
+ "TEAM_DROPDOWN_PLACEHOLDER": "בחר צוותים",
+ "EMAIL_INPUT_PLACEHOLDER": "הכנס דוא\"ל",
+ "URL_INPUT_PLACEHOLDER": "הכנס URL"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "הפעל אוטומציה",
- "DEACTIVATION_TITLE": "השהה אוטומציה",
- "ACTIVATION_DESCRIPTION": "פעולה זו תפעיל את האוטומציה '{automationName}'. האם אתה בטוח שברצונך להמשיך?",
- "DEACTIVATION_DESCRIPTION": "פעולה זו תשהה את האוטומציה '{automationName}'. האם אתה בטוח שברצונך להמשיך?",
- "ACTIVATION_SUCCESFUL": "אוטומציה הופעלה בהצלחה",
- "DEACTIVATION_SUCCESFUL": "אוטומציה הושהתה בהצלחה",
- "ACTIVATION_ERROR": "הפעלת אוטומציה נכשלה, נסה שנית מאוחר יותר",
- "DEACTIVATION_ERROR": "השהיית אוטומציה נכשלה, נסה שנית מאוחר יותר",
+ "ACTIVATION_TITLE": "הפעל כלל אוטומציה",
+ "DEACTIVATION_TITLE": "השהה כלל אוטומציה",
+ "ACTIVATION_DESCRIPTION": "פעולה זו תפעיל את כלל האוטומציה '{automationName}'. האם אתה בטוח שברצונך להמשיך?",
+ "DEACTIVATION_DESCRIPTION": "פעולה זו תשהה את כלל האוטומציה '{automationName}'. האם אתה בטוח שברצונך להמשיך?",
+ "ACTIVATION_SUCCESFUL": "כלל האוטומציה הופעל בהצלחה",
+ "DEACTIVATION_SUCCESFUL": "כלל האוטומציה הושהה בהצלחה",
+ "ACTIVATION_ERROR": "לא ניתן להפעיל אוטומציה, אנא נסה שוב מאוחר יותר",
+ "DEACTIVATION_ERROR": "לא ניתן להשהות אוטומציה, אנא נסה שוב מאוחר יותר",
"CONFIRMATION_LABEL": "כן",
"CANCEL_LABEL": "לא"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "העלאת קובץ נכשלה, נסה שנית",
- "LABEL_IDLE": "העלה קובץ",
+ "UPLOAD_ERROR": "לא ניתן להעלות קובץ מצורף, אנא נסה שוב",
+ "LABEL_IDLE": "העלה קובץ מצורף",
"LABEL_UPLOADING": "מעלה...",
- "LABEL_UPLOADED": "קובץ הועלה בהצלחה",
+ "LABEL_UPLOADED": "הועלה בהצלחה",
"LABEL_UPLOAD_FAILED": "העלאה נכשלה"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "מפתח מאפיין נדרש",
+ "FILTER_OPERATOR_REQUIRED": "אופרטור מסנן נדרש",
+ "VALUE_REQUIRED": "ערך נדרש",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "הערך חייב להיות בין 1 ל-998",
+ "ACTION_PARAMETERS_REQUIRED": "פרמטרי פעולה נדרשים",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "נדרש לפחות תנאי אחד",
+ "ATLEAST_ONE_ACTION_REQUIRED": "נדרשת לפחות פעולה אחת"
+ },
+ "NONE_OPTION": "אין",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "שיחה נוצרה",
+ "CONVERSATION_UPDATED": "שיחה עודכנה",
+ "MESSAGE_CREATED": "הודעה נוצרה",
+ "CONVERSATION_RESOLVED": "שיחה נפתרה",
+ "CONVERSATION_OPENED": "שיחה נפתחה"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "הקצה לסוכן",
+ "ASSIGN_TEAM": "הקצה צוות",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_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": "שלח הודעה",
+ "ADD_PRIVATE_NOTE": "הוסף הערה פרטית",
+ "CHANGE_PRIORITY": "שנה עדיפות",
+ "ADD_SLA": "הוסף SLA",
+ "OPEN_CONVERSATION": "פתח שיחה",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "הודעה נכנסת",
+ "OUTGOING": "הודעה יוצאת"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "אין",
+ "LOW": "נמוכה",
+ "MEDIUM": "בינונית",
+ "HIGH": "גבוהה",
+ "URGENT": "דחופה"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "סוג הודעה",
+ "PRIVATE_NOTE": "הערה פרטית",
+ "MESSAGE_CONTAINS": "ההודעה מכילה",
+ "EMAIL": "דוא\"ל",
+ "INBOX": "תיבת דואר נכנס",
+ "CONVERSATION_LANGUAGE": "שפת שיחה",
+ "PHONE_NUMBER": "מספר טלפון",
+ "STATUS": "סטטוס",
+ "BROWSER_LANGUAGE": "שפת דפדפן",
+ "MAIL_SUBJECT": "נושא דוא\"ל",
+ "COUNTRY_NAME": "מדינה",
+ "COMPANY_NAME": "חברה",
+ "REFERER_LINK": "קישור מפנה",
+ "ASSIGNEE_NAME": "מוקצה",
+ "TEAM_NAME": "צוות",
+ "PRIORITY": "עדיפות",
+ "LABELS": "תוויות"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/bulkActions.json b/app/javascript/dashboard/i18n/locale/he/bulkActions.json
index d8c7c12e4..b0d6e3f46 100644
--- a/app/javascript/dashboard/i18n/locale/he/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/he/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} שיחות נבחרו",
- "AGENT_SELECT_LABEL": "בחר נציג",
- "ASSIGN_CONFIRMATION_LABEL": "האם אתה בטוח שברצונך לשייך %{conversationCount} %{conversationLabel} ל-",
- "UNASSIGN_CONFIRMATION_LABEL": "האם אתה בטוח שברצונך לבטל שיוך %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "חזור",
- "ASSIGN_LABEL": "שייך",
+ "CONVERSATIONS_SELECTED": "{conversationCount} שיחות נבחרו",
+ "NONE": "כלום",
+ "CLEAR_SELECTION": "נקה",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "כן",
+ "CANCEL": "ביטול",
+ "SEARCH_INPUT_PLACEHOLDER": "חפש",
"ASSIGN_AGENT_TOOLTIP": "שייך סוכן",
"ASSIGN_TEAM_TOOLTIP": "שייך צוות",
"ASSIGN_SUCCESFUL": "שיוך בוצע בהצלחה.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "ASSIGN_FAILED": "ההקצאה של השיחות נכשלה. אנא נסה שוב.",
"RESOLVE_SUCCESFUL": "שיחה טופלה בהצלחה.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
+ "RESOLVE_FAILED": "הסגירה של השיחות נכשלה. אנא נסה שוב.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "השיחות הנבחרות הן המוצגות בדף זה בלבד.",
- "AGENT_LIST_LOADING": "טוען סוכנים",
"UPDATE": {
"CHANGE_STATUS": "שנה סטאטוס",
- "SNOOZE_UNTIL_NEXT_REPLY": "נדנד עד התגובה הבאה.",
+ "SNOOZE_UNTIL": "נודניק",
"UPDATE_SUCCESFUL": "סטאטוס השיחה שונה בהצלחה.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "UPDATE_FAILED": "העדכון של השיחות נכשל. אנא נסה שוב."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "לא נצאו תוויות עבור",
+ "ASSIGN_LABELS": "הקצה תוויות",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "שייך תוויות נבחרות",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "תוויות שוייכו בהצלחה.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "ההקצאה של התוויות נכשלה. אנא נסה שוב.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "בחר קבוצה",
"NONE": "כלום",
- "NO_TEAMS_AVAILABLE": "לא קיימות קבוצות להוספה.",
- "ASSIGN_SELECTED_TEAMS": "שייך קבוצה.",
- "ASSIGN_SUCCESFUL": "שיוך קבוצה בוצע בהצלחה.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "הצוותים הוקצו בהצלחה.",
+ "ASSIGN_FAILED": "ההקצאה של הצוות נכשלה. אנא נסה שוב."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/campaign.json b/app/javascript/dashboard/i18n/locale/he/campaign.json
index fefb974c4..11c1d639f 100644
--- a/app/javascript/dashboard/i18n/locale/he/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/he/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "קמפיין",
- "SIDEBAR_TXT": "הודעות פרואקטיביות מאפשרות ללקוח לשלוח הודעות יוצאות לאנשי הקשר שלו, מה שיפעיל יותר שיחות. לחץ על הוסף מסע פרסום כדי ליצור מסע פרסום חדש. ניתן גם לערוך או למחוק מסע פרסום קיים על ידי לחיצה על הלחצן ערוך או מחק.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "צור קמפיין חד פעמי",
- "ONGOING": "צור קמפיין מתמשך"
- },
- "ADD": {
- "TITLE": "צור קמפיין",
- "DESC": "הודעות יזומות מאפשרות ללקוח לשלוח הודעות לאנשי הקשר שלהם דבר אשר יגרום לשיחות נוספות.",
- "CANCEL_BUTTON_TEXT": "ביטול",
- "CREATE_BUTTON_TEXT": "צור",
- "FORM": {
- "TITLE": {
- "LABEL": "כותרת",
- "PLACEHOLDER": "אנא הכנס כותרת לקמפיין",
- "ERROR": "כותרת שדה חובה"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "קמפיינים של צ'אט חי",
+ "NEW_CAMPAIGN": "צור קמפיין",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "מופעל",
+ "DISABLED": "כבוי"
},
- "SCHEDULED_AT": {
- "LABEL": "זמן מתוכנן",
- "PLACEHOLDER": "אנא בחר את הזמן",
- "CONFIRM": "אמת",
- "ERROR": "נדרש זמן מתוכנן"
- },
- "AUDIENCE": {
- "LABEL": "קהל",
- "PLACEHOLDER": "בחר את תוויות הלקוחות",
- "ERROR": "נדרש קהל"
- },
- "INBOX": {
- "LABEL": "בחר תיבת דואר",
- "PLACEHOLDER": "בחר תיבת דואר",
- "ERROR": "נדרשת תיבת דואר נכנס"
- },
- "MESSAGE": {
- "LABEL": "הודעה",
- "PLACEHOLDER": "אנא הכנס הודעה לקמפיין",
- "ERROR": "הודעה שדה חובה"
- },
- "SENT_BY": {
- "LABEL": "נשלח על ידי",
- "PLACEHOLDER": "אנא בחר תוכן לקמפיין",
- "ERROR": "שולח שדה חובה"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "אנא הכנס כתובת URL",
- "ERROR": "אנא הכנס כתובת URL חוקית"
- },
- "TIME_ON_PAGE": {
- "LABEL": "זמן על הדף (שניות)",
- "PLACEHOLDER": "אנא הכנס זמן",
- "ERROR": "זמן על הדף שדה חובה"
- },
- "ENABLED": "הפעל קמפיין",
- "TRIGGER_ONLY_BUSINESS_HOURS": "הפעל רק בשעות העבודה",
- "SUBMIT": "הוסף קמפיין"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "נשלח על ידי",
+ "BOT": "בוט",
+ "FROM": "מ",
+ "URL": "כתובת URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "קמפיין נוצר בהצלחה",
- "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
+ "EMPTY_STATE": {
+ "TITLE": "אין קמפיינים של צ'אט חי זמינים",
+ "SUBTITLE": "צור קשר עם הלקוחות שלך באמצעות הודעות יזומות. לחץ על 'צור קמפיין' כדי להתחיל."
+ },
+ "CREATE": {
+ "TITLE": "צור קמפיין צ'אט חי",
+ "CANCEL_BUTTON_TEXT": "ביטול",
+ "CREATE_BUTTON_TEXT": "צור",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "כותרת",
+ "PLACEHOLDER": "אנא הכנס כותרת לקמפיין",
+ "ERROR": "כותרת שדה חובה"
+ },
+ "MESSAGE": {
+ "LABEL": "הודעה",
+ "PLACEHOLDER": "אנא הכנס הודעה לקמפיין",
+ "ERROR": "הודעה שדה חובה"
+ },
+ "INBOX": {
+ "LABEL": "בחר תיבת דואר",
+ "PLACEHOLDER": "בחר תיבת דואר",
+ "ERROR": "נדרשת תיבת דואר נכנס"
+ },
+ "SENT_BY": {
+ "LABEL": "נשלח על ידי",
+ "PLACEHOLDER": "אנא בחר שולח",
+ "ERROR": "שולח שדה חובה"
+ },
+ "END_POINT": {
+ "LABEL": "כתובת URL",
+ "PLACEHOLDER": "אנא הכנס כתובת URL",
+ "ERROR": "אנא הכנס כתובת URL חוקית"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "זמן על הדף (שניות)",
+ "PLACEHOLDER": "אנא הכנס זמן",
+ "ERROR": "זמן על הדף שדה חובה"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "העדפות אחרות",
+ "ENABLED": "הפעל קמפיין",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "הפעל רק בשעות העבודה"
+ },
+ "BUTTONS": {
+ "CREATE": "צור",
+ "CANCEL": "ביטול"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "קמפיין צ'אט חי נוצר בהצלחה",
+ "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "ערוך קמפיין צ'אט חי",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "קמפיין צ'אט חי עודכן בהצלחה",
+ "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "מחק",
- "CONFIRM": {
- "TITLE": "אשר מחיקה",
- "MESSAGE": "האם אתה בטוח שברצונך למחוק?",
- "YES": "כן, מחק ",
- "NO": "לא, השאר "
+ "SMS": {
+ "HEADER_TITLE": "קמפיינים של SMS",
+ "NEW_CAMPAIGN": "צור קמפיין",
+ "EMPTY_STATE": {
+ "TITLE": "אין קמפיינים של SMS זמינים",
+ "SUBTITLE": "השק קמפיין SMS כדי להגיע ללקוחות שלך ישירות. שלח הצעות או פרסם הודעות בקלות. לחץ על 'צור קמפיין' כדי להתחיל."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "מעבד",
+ "COMPLETED": "הושלם",
+ "SCHEDULED": "מתוזמן"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "נשלח מ-",
+ "ON": "ב-"
+ }
+ },
+ "CREATE": {
+ "TITLE": "צור קמפיין SMS",
+ "CANCEL_BUTTON_TEXT": "ביטול",
+ "CREATE_BUTTON_TEXT": "צור",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "כותרת",
+ "PLACEHOLDER": "אנא הכנס כותרת לקמפיין",
+ "ERROR": "כותרת שדה חובה"
+ },
+ "MESSAGE": {
+ "LABEL": "הודעה",
+ "PLACEHOLDER": "אנא הכנס הודעה לקמפיין",
+ "ERROR": "הודעה שדה חובה"
+ },
+ "INBOX": {
+ "LABEL": "בחר תיבת דואר",
+ "PLACEHOLDER": "בחר תיבת דואר",
+ "ERROR": "נדרשת תיבת דואר נכנס"
+ },
+ "AUDIENCE": {
+ "LABEL": "קהל",
+ "PLACEHOLDER": "בחר את תוויות הלקוחות",
+ "ERROR": "נדרש קהל"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "זמן מתוכנן",
+ "PLACEHOLDER": "אנא בחר את הזמן",
+ "ERROR": "נדרש זמן מתוכנן"
+ },
+ "BUTTONS": {
+ "CREATE": "צור",
+ "CANCEL": "ביטול"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "קמפיין SMS נוצר בהצלחה",
+ "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "קמפיינים של WhatsApp",
+ "NEW_CAMPAIGN": "צור קמפיין",
+ "EMPTY_STATE": {
+ "TITLE": "אין קמפיינים של WhatsApp זמינים",
+ "SUBTITLE": "השק קמפיין WhatsApp כדי להגיע ללקוחות שלך ישירות. שלח הצעות או פרסם הודעות בקלות. לחץ על 'צור קמפיין' כדי להתחיל."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "מעבד",
+ "COMPLETED": "הושלם",
+ "SCHEDULED": "מתוזמן"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "נשלח מ-",
+ "ON": "ב-"
+ }
+ },
+ "CREATE": {
+ "TITLE": "צור קמפיין WhatsApp",
+ "CANCEL_BUTTON_TEXT": "ביטול",
+ "CREATE_BUTTON_TEXT": "צור",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "כותרת",
+ "PLACEHOLDER": "אנא הכנס כותרת לקמפיין",
+ "ERROR": "כותרת שדה חובה"
+ },
+ "INBOX": {
+ "LABEL": "בחר תיבת דואר",
+ "PLACEHOLDER": "בחר תיבת דואר",
+ "ERROR": "נדרשת תיבת דואר נכנס"
+ },
+ "TEMPLATE": {
+ "LABEL": "תבנית WhatsApp",
+ "PLACEHOLDER": "בחר תבנית",
+ "INFO": "בחר תבנית לשימוש בקמפיין זה.",
+ "ERROR": "תבנית נדרשת",
+ "PREVIEW_TITLE": "עיבוד {templateName}",
+ "LANGUAGE": "שפה",
+ "CATEGORY": "קטגוריה",
+ "VARIABLES_LABEL": "משתנים",
+ "VARIABLE_PLACEHOLDER": "הזן ערך עבור {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "קהל",
+ "PLACEHOLDER": "בחר את תוויות הלקוחות",
+ "ERROR": "נדרש קהל"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "זמן מתוכנן",
+ "PLACEHOLDER": "אנא בחר את הזמן",
+ "ERROR": "נדרש זמן מתוכנן"
+ },
+ "BUTTONS": {
+ "CREATE": "צור",
+ "CANCEL": "ביטול"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "קמפיין WhatsApp נוצר בהצלחה",
+ "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק?",
+ "DESCRIPTION": "פעולת המחיקה היא קבועה ולא ניתנת לביטול.",
+ "CONFIRM": "מחק",
"API": {
"SUCCESS_MESSAGE": "מסע הפרסום נמחק בהצלחה",
- "ERROR_MESSAGE": "לא ניתן למחוק את מסע הפרסום. בבקשה נסה שוב מאוחר יותר."
+ "ERROR_MESSAGE": "היתה שגיאה. בקשה נסה שוב."
}
- },
- "EDIT": {
- "TITLE": "ערוך קמפיין",
- "UPDATE_BUTTON_TEXT": "עדכן",
- "API": {
- "SUCCESS_MESSAGE": "קמפיין עודכן בהצלחה",
- "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "טוען קמפיינים...",
- "404": "אין קמפיינים שנוצרו עבור תיבה זו.",
- "TABLE_HEADER": {
- "TITLE": "כותרת",
- "MESSAGE": "הודעה",
- "INBOX": "תיבת הדואר הנכנס",
- "STATUS": "מצב",
- "SENDER": "שולח",
- "URL": "URL",
- "SCHEDULED_AT": "זמן מתוכנן",
- "TIME_ON_PAGE": "זמן(שניות)",
- "CREATED_AT": "נוצר בזמן"
- },
- "BUTTONS": {
- "ADD": "הוסף",
- "EDIT": "ערוך",
- "DELETE": "מחק"
- },
- "STATUS": {
- "ENABLED": "מופעל",
- "DISABLED": "כבוי",
- "COMPLETED": "הושלם",
- "ACTIVE": "פעיל"
- },
- "SENDER": {
- "BOT": "בוט"
- }
- },
- "ONE_OFF": {
- "HEADER": "קמפיינים חד פעמיים",
- "404": "לא נוצרו מסעות פרסום חד פעמיים",
- "INBOXES_NOT_FOUND": "נא ליצור תיבת SMS ולהתחיל להוסיף קמפיינים"
- },
- "ONGOING": {
- "HEADER": "קמפיינים מתמשכים",
- "404": "לא נוצרו קמפיינים מתמשכים",
- "INBOXES_NOT_FOUND": "אנא צור תיבת דואר נכנס באתר והתחל להוסיף קמפיינים"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
index 2a6c5d9f3..990f3c7af 100644
--- a/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "תגובות מוכנות",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "LEARN_MORE": "למד עוד על תגובות שמורות",
+ "DESCRIPTION": "תגובות מוכנות הן תבניות תשובה כתובות מראש שמסייעות לך להגיב במהירות לשיחה. סוכנים יכולים להקליד את התו '/' ואחריו קוד מקוצר כדי להכניס תגובה מוכנה במהלך השיחה. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "הוסף תגובה שמורה",
+ "LOADING": "מאחזר תגובות שמורות...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "אין תגובות מוכנות זמינות בחשבון זה.",
"TITLE": "נהל תגובות מוכנות",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "תוכן",
- "פעולות"
- ]
+ "DESC": "תגובות שמורות הן תבניות תגובה מוגדרות מראש שניתן להשתמש בהן כדי לשלוח תגובות מהירות לשיחות.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "קוד מקוצר",
+ "CONTENT": "תוכן",
+ "ACTIONS": "פעולות"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "הוסף תגובה שמורה",
+ "DESC": "תגובות שמורות הן תבניות תגובה מוגדרות מראש שניתן להשתמש בהן כדי לשלוח תגובות מהירות לשיחות.",
"CANCEL_BUTTON_TEXT": "ביטול",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "קוד מקוצר",
+ "PLACEHOLDER": "אנא הזן קוד מקוצר.",
+ "ERROR": "קוד מקוצר נדרש."
},
"CONTENT": {
"LABEL": "הודעה",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "אנא כתוב את ההודעה שברצונך לשמור כתבנית לשימוש מאוחר יותר.",
+ "ERROR": "הודעה נדרשת."
},
"SUBMIT": "שלח"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "תגובה שמורה נוספה בהצלחה.",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "ערוך תגובה שמורה",
"CANCEL_BUTTON_TEXT": "ביטול",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "קוד מקוצר",
+ "PLACEHOLDER": "אנא הזן קוד מקוצר.",
+ "ERROR": "קוד מקוצר נדרש."
},
"CONTENT": {
"LABEL": "הודעה",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
+ "PLACEHOLDER": "אנא כתוב את ההודעה שברצונך לשמור כתבנית לשימוש מאוחר יותר.",
"ERROR": "הודעה שדה חובה."
},
"SUBMIT": "שלח"
},
"BUTTON_TEXT": "ערוך",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "התגובה השמורה עודכנה בהצלחה.",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
}
},
"DELETE": {
"BUTTON_TEXT": "מחק",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "התגובה השמורה נמחקה בהצלחה.",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
"CONFIRM": {
"TITLE": "אשר מחיקה",
"MESSAGE": "האם אתה בטוח שברצונך למחוק ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "כן, מחק ",
+ "NO": "לא, השאר "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/chatlist.json b/app/javascript/dashboard/i18n/locale/he/chatlist.json
index e7bea4341..7eb97523e 100644
--- a/app/javascript/dashboard/i18n/locale/he/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/he/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "אין שיחות פעילות בקבוצה הזו."
},
+ "FAILED_TO_SEND": "שליחה נכשלה",
"TAB_HEADING": "שיחות",
"MENTION_HEADING": "תיוגים",
"UNATTENDED_HEADING": "לא מתוכנן",
@@ -36,10 +37,10 @@
}
},
"VIEW_FILTER": "צפה",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "מיין שיחות",
"CHAT_SORT": {
"STATUS": "מצב",
- "ORDER_BY": "Order by"
+ "ORDER_BY": "סדר לפי"
},
"CHAT_TIME_STAMP": {
"CREATED": {
@@ -47,34 +48,37 @@
"OLDEST": "נוצר בזמן:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "פעילות אחרונה:",
+ "ACTIVE": "פעילות אחרונה"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "פעילות אחרונה: הישן ביותר תחילה"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "פעילות אחרונה: החדש ביותר תחילה"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "נוצר ב: החדש ביותר תחילה"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "נוצר ב: הישן ביותר תחילה"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "עדיפות: הגבוהה ביותר תחילה"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "עדיפות: הנמוכה ביותר תחילה"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "ממתין לתגובה: הארוך ביותר תחילה"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "ממתין לתגובה: הקצר ביותר תחילה"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,25 +97,34 @@
"location": {
"CONTENT": "מיקום"
},
+ "ig_reel": {
+ "CONTENT": "סרטון אינסטגרם (Reel)"
+ },
"fallback": {
"CONTENT": "שיתף קישור"
+ },
+ "contact": {
+ "CONTENT": "איש קשר משותף"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
+ "TITLE": "מיין שיחה",
"DROPDOWN_TITLE": "מיין לפי",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
- "LABEL": "Last activity"
+ "NAME": "זמן פעילות אחרונה",
+ "LABEL": "פעילות אחרונה"
},
"CREATED_AT": {
"NAME": "נוצר בזמן",
"LABEL": "נוצר בזמן"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "זמן הודעת משתמש אחרונה",
+ "LABEL": "הודעה אחרונה"
}
}
},
@@ -126,6 +139,8 @@
"NO_CONTENT": "אין תוכן זמין",
"HIDE_QUOTED_TEXT": "הסתר טקסט מצוטט",
"SHOW_QUOTED_TEXT": "הצג טקסט מצוטט",
- "MESSAGE_READ": "נקרא"
+ "MESSAGE_READ": "נקרא",
+ "SENDING": "שולח",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/companies.json b/app/javascript/dashboard/i18n/locale/he/companies.json
new file mode 100644
index 000000000..902286c76
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "מיין לפי",
+ "OPTIONS": {
+ "NAME": "שם",
+ "DOMAIN": "דומיין",
+ "CREATED_AT": "נוצר בזמן",
+ "LAST_ACTIVITY_AT": "פעילות אחרונה",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "סדר",
+ "OPTIONS": {
+ "ASCENDING": "עולה",
+ "DESCENDING": "יורד"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "מאפיינים",
+ "CONTACTS": "איש קשר",
+ "HISTORY": "היסטוריה",
+ "NOTES": "הערות"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "חפש מאפיין...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "טוען אנשי קשר...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "הוסף איש קשר",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "חפש אנשי קשר...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "לא נמצאו אנשי קשר.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "חברה",
+ "CONTACT_LABEL": "איש קשר",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "ביטול"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "נוצר ב-{date}",
+ "LAST_ACTIVE": "פעיל אחרון {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "שם",
+ "DOMAIN": "דומיין"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/components.json b/app/javascript/dashboard/i18n/locale/he/components.json
new file mode 100644
index 000000000..636caa1b0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "מציג פריטים {startItem} עד {endItem} מתוך {totalItems}",
+ "CURRENT_PAGE_INFO": "{currentPage} מתוך {totalPages} עמודים"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "בחר אפשרות...",
+ "EMPTY_SEARCH_RESULTS": "לא נמצאו פריטים עבור מונח החיפוש `{searchTerm}`",
+ "EMPTY_STATE": "לא נמצאו תוצאות.",
+ "SEARCH_PLACEHOLDER": "חיפוש...",
+ "MORE": "+{count} נוספים"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "חיפוש...",
+ "EMPTY_STATE": "לא נמצאו תוצאות.",
+ "SEARCHING": "מחפש..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "ביטול",
+ "CONFIRM": "אמת"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "חפש מדינה",
+ "ERROR": "מספר הטלפון צריך להיות ריק או בפורמט E.164",
+ "DIAL_CODE_ERROR": "נא בחר קוד מדינה מהרשימה"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "המחבר אינו זמין"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "פירורי לחם (Breadcrumb)"
+ },
+ "SWITCH": {
+ "TOGGLE": "מתג הפעלה/כיבוי"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "תג"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "למד עוד",
+ "WATCH_VIDEO": "צפה בסרטון"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "דקות",
+ "HOURS": "שעות",
+ "DAYS": "ימים",
+ "PLACEHOLDER": "הזן משך זמן"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "בקרוב!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/contact.json b/app/javascript/dashboard/i18n/locale/he/contact.json
index 50b992bab..4203d154b 100644
--- a/app/javascript/dashboard/i18n/locale/he/contact.json
+++ b/app/javascript/dashboard/i18n/locale/he/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "כתובת IP",
"CREATED_AT_LABEL": "נוצר",
"NEW_MESSAGE": "הודעה חדשה",
+ "CALL": "התקשר",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "בחר תיבת דואר קולי"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "לא קיימות שיחות קודמות המשויכות לאיש קשר זה.",
"TITLE": "שיחות קודמות"
@@ -34,21 +43,22 @@
"TITLE": "הוסף תוויות",
"PLACEHOLDER": "חפש תוויות",
"NO_RESULT": "לא נמצאו תוויות",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "צור תווית חדשה"
}
},
"MERGE_CONTACT": "מזג אנשי קשר",
"CONTACT_ACTIONS": "פעולות אנשי קשר",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "חסום איש קשר",
+ "UNMUTE_CONTACT": "בטל חסימת איש קשר",
+ "MUTED_SUCCESS": "איש הקשר נחסם בהצלחה. לא תקבל הודעה על שיחות עתידיות.",
+ "UNMUTED_SUCCESS": "איש הקשר נבטל חסימה בהצלחה.",
"SEND_TRANSCRIPT": "שלח תמלול",
"EDIT_LABEL": "ערוך",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "שדות מותאמים אישית",
"CONTACT_LABELS": "תגיות אנשי קשר",
- "PREVIOUS_CONVERSATIONS": "שיחות קודמות"
+ "PREVIOUS_CONVERSATIONS": "שיחות קודמות",
+ "NO_RECORDS_FOUND": "לא נמצאו מאפיינים"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "ערוך איש קשר",
"DESC": "ערוך את פרטי איש הקשר"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "איש קשר חדש",
- "TITLE": "צור איש קשר חדש",
- "DESC": "הוסף מידע בסיסי לאיש הקשר."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "ייבוא",
- "TITLE": "ייבא אנשי קשר",
- "DESC": "ייבא אנשי קשר באמצעות קובץ CSV.",
- "DOWNLOAD_LABEL": "הורד קובץ csv לדוגמה.",
- "FORM": {
- "LABEL": "קובץ CSV",
- "SUBMIT": "ייבוא",
- "CANCEL": "ביטול"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "אשר מחיקה",
- "MESSAGE": "אתה בטוח שברצונך למחוק הערה זו?",
- "YES": "כן, מחק",
- "NO": "לא, השאר"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "מחק איש קשר",
"TITLE": "מחק איש קשר",
@@ -136,7 +107,7 @@
"LABEL": "מספר טלפון",
"HELP": "מספר הטלפון צריך להיות בפורמט E.164, למשל: +1415555555 [+][קוד מדינה][אזור חיוג][מספר טלפון מקומי]",
"ERROR": "מספר הטלפון צריך להיות ריק או בפורמט E.164",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
+ "DIAL_CODE_ERROR": "נא בחר קוד מדינה מהרשימה",
"DUPLICATE": "מספר טלפון זה נמצאת בשימוש עבור איש קשר אחר."
},
"LOCATION": {
@@ -197,7 +168,7 @@
},
"INBOX": {
"LABEL": "תיבת הדואר הנכנס",
- "PLACEHOLDER": "Choose source inbox",
+ "PLACEHOLDER": "בחר תיבת מקור",
"ERROR": "בחר תיבת דואר נכנס"
},
"SUBJECT": {
@@ -211,8 +182,8 @@
"ERROR": "ההודעה לא יכולה להיות ריקה"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "בחר קבצים",
+ "HELP_TEXT": "גרור ושחרר קבצים כאן או בחר קבצים מצורפים"
},
"SUBMIT": "שלח הודעה",
"CANCEL": "ביטול",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "איש קשר",
- "FIELDS": "שדות איש קשר",
- "SEARCH_BUTTON": "חפש",
- "SEARCH_INPUT_PLACEHOLDER": "חפש איש קשר",
- "FILTER_CONTACTS": "סנן",
- "FILTER_CONTACTS_SAVE": "שמור סנן",
- "FILTER_CONTACTS_DELETE": "מחק סנן",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "טוען אנשי קשר...",
- "404": "אין אנשי קשר שתואמים לחיפוש שלך 🔍",
- "NO_CONTACTS": "אין אנשי קשר זמינים",
"TABLE_HEADER": {
- "NAME": "שם",
- "PHONE_NUMBER": "מספר טלפון",
- "CONVERSATIONS": "שיחות",
- "LAST_ACTIVITY": "פעילות אחרונה",
- "CREATED_AT": "הוקם ב",
- "COUNTRY": "מדינה",
- "CITY": "עיר",
- "SOCIAL_PROFILES": "פרופילים חברתיים",
- "COMPANY": "חברה",
- "EMAIL_ADDRESS": "כתובת מייל"
- },
- "VIEW_DETAILS": "הצג פרטים"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "איש קשר",
- "LOADING": "טוען פרופיל איש קשר..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "הוסף",
- "TITLE": "Shift + Enter כדי ליצור משימה"
- },
- "FOOTER": {
- "DUE_DATE": "תאריך להגשה",
- "LABEL_TITLE": "הגדר סוג"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "מביא הערות...",
- "NOT_AVAILABLE": "לא נוצרו הערות עבור איש קשר זה",
- "HEADER": {
- "TITLE": "הערות"
- },
- "LIST": {
- "LABEL": "נוספה הערה"
- },
- "ADD": {
- "BUTTON": "הוסף",
- "PLACEHOLDER": "הוסף הערה",
- "TITLE": "Shift + Enter כדי ליצור הערה"
- },
- "CONTENT_HEADER": {
- "DELETE": "מחק הערה"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "פעילויות"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "הערות",
- "PILL_BUTTON_EVENTS": "אירועים",
- "PILL_BUTTON_CONVO": "שיחות"
+ "SOCIAL_PROFILES": "פרופילים חברתיים"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "הוסף מאפיין",
"BUTTON": "הוסף מאפיין מותאם אישית",
- "NOT_AVAILABLE": "אין מאפיינים מותאמים אישית זמינים עבור איש קשר זה.",
"COPY_SUCCESSFUL": "הועתק ללוח בהצלחה",
+ "SHOW_MORE": "הצג את כל התכונות",
+ "SHOW_LESS": "הצג פחות תכונות",
"ACTIONS": {
"COPY": "העתק מאפיין",
"DELETE": "מחק מאפיין",
@@ -346,7 +254,7 @@
"VALIDATIONS": {
"REQUIRED": "נדרש ערך חוקי",
"INVALID_URL": "כתובת אתר לא חוקית",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_INPUT": "קלט לא חוקי"
}
},
"MERGE_CONTACTS": {
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "סיכום",
- "DELETE_WARNING": "איש הקשר של %{primaryContactName} יימחק.",
- "ATTRIBUTE_WARNING": "פרטי הקשר של %{primaryContactName} יועתקו אל %{parentContactName}."
+ "DELETE_WARNING": "איש הקשר של {primaryContactName} יימחק.",
+ "ATTRIBUTE_WARNING": "פרטי הקשר של {primaryContactName} יועתקו אל {parentContactName}."
},
"SEARCH": {
- "ERROR": "הודעת שגיאה"
+ "ERROR_MESSAGE": "משהו השתבש. אנא נסה שוב מאוחר יותר."
},
"FORM": {
"SUBMIT": " מזג אנשי קשר",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "איש הקשר מוזג בהצלחה",
"ERROR_MESSAGE": "לא ניתן למזג אנשי קשר, נסה שוב!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(מזהה: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "איש קשר",
+ "SEARCH_TITLE": "חפש אנשי קשר",
+ "ACTIVE_TITLE": "אנשי קשר פעילים",
+ "SEARCH_PLACEHOLDER": "חיפוש...",
+ "MESSAGE_BUTTON": "הודעה",
+ "SEND_MESSAGE": "שלח הודעה",
+ "BLOCK_CONTACT": "חסום איש קשר",
+ "UNBLOCK_CONTACT": "בטל חסימת איש קשר",
+ "BREADCRUMB": {
+ "CONTACTS": "איש קשר"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "הוסף איש קשר",
+ "EXPORT_CONTACT": "ייצא אנשי קשר",
+ "IMPORT_CONTACT": "ייבא אנשי קשר",
+ "SAVE_CONTACT": "שמור איש קשר",
+ "EMAIL_ADDRESS_DUPLICATE": "כתובת דוא\"ל זו נמצאת בשימוש עבור איש קשר אחר.",
+ "PHONE_NUMBER_DUPLICATE": "מספר טלפון זה נמצאת בשימוש עבור איש קשר אחר.",
+ "SUCCESS_MESSAGE": "איש הקשר נשמר בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לשמור איש קשר. אנא נסה שוב מאוחר יותר."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "איש קשר זה נחסם בהצלחה",
+ "BLOCK_ERROR_MESSAGE": "לא ניתן לחסום איש קשר. אנא נסה שוב מאוחר יותר.",
+ "UNBLOCK_SUCCESS_MESSAGE": "איש קשר זה בוטל חסימה בהצלחה",
+ "UNBLOCK_ERROR_MESSAGE": "לא ניתן לבטל חסימת איש קשר. אנא נסה שוב מאוחר יותר.",
+ "IMPORT_CONTACT": {
+ "TITLE": "ייבא אנשי קשר",
+ "DESCRIPTION": "ייבא אנשי קשר באמצעות קובץ CSV.",
+ "DOWNLOAD_LABEL": "הורד קובץ csv לדוגמה.",
+ "LABEL": "קובץ CSV:",
+ "CHOOSE_FILE": "בחר קובץ",
+ "CHANGE": "שינוי",
+ "CANCEL": "ביטול",
+ "IMPORT": "ייבוא",
+ "SUCCESS_MESSAGE": "תקבלו התראה במייל כשהייבוא יסתיים.",
+ "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "ייצא אנשי קשר",
+ "DESCRIPTION": "ייצא במהירות קובץ CSV עם פרטים מקיפים על אנשי הקשר שלך",
+ "CONFIRM": "ייצא",
+ "SUCCESS_MESSAGE": "הייצוא מתבצע, תקבל הודעה בדוא\"ל כאשר קובץ הייצוא יהיה מוכן להורדה.",
+ "ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
+ },
+ "SORT_BY": {
+ "LABEL": "מיין לפי",
+ "OPTIONS": {
+ "NAME": "שם",
+ "EMAIL": "אימייל",
+ "PHONE_NUMBER": "מספר טלפון",
+ "COMPANY": "חברה",
+ "COUNTRY": "מדינה",
+ "CITY": "עיר",
+ "LAST_ACTIVITY": "פעילות אחרונה",
+ "CREATED_AT": "נוצר בזמן"
+ }
+ },
+ "ORDER": {
+ "LABEL": "סדר",
+ "OPTIONS": {
+ "ASCENDING": "עולה",
+ "DESCENDING": "יורד"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "האם אתה רוצה לשמור את המסנן הזה?",
+ "CONFIRM": "שמור מסנן",
+ "LABEL": "שם",
+ "PLACEHOLDER": "הזן את שם המסנן",
+ "ERROR": "הזן שם חוקי",
+ "SUCCESS_MESSAGE": "המסנן נשמר בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לשמור את המסנן. אנא נסה שוב מאוחר יותר."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "אשר מחיקה",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק מסנן זה?",
+ "CONFIRM": "כן, מחק",
+ "CANCEL": "לא, ביטול",
+ "SUCCESS_MESSAGE": "המסנן נמחק בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן למחוק את המסנן. אנא נסה שוב מאוחר יותר."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "שם",
+ "EMAIL": "אימייל",
+ "PHONE_NUMBER": "מספר טלפון",
+ "IDENTIFIER": "מזהה",
+ "COUNTRY": "מדינה",
+ "CITY": "עיר",
+ "COMPANY": "חברה",
+ "CREATED_AT": "נוצר בזמן",
+ "LAST_ACTIVITY": "פעילות אחרונה",
+ "REFERER_LINK": "קישור מפנה",
+ "BLOCKED": "חסום",
+ "BLOCKED_TRUE": "נכון",
+ "BLOCKED_FALSE": "לא נכון",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "נקה מסננים",
+ "UPDATE_SEGMENT": "עדכן מקטע",
+ "APPLY_FILTERS": "שמור סננים",
+ "ADD_FILTER": "הוסף מסנן"
+ },
+ "TITLE": "סינון אנשי קשר",
+ "EDIT_SEGMENT": "ערוך מקטע",
+ "SEGMENT": {
+ "LABEL": "שם המקטע",
+ "INPUT_PLACEHOLDER": "הזן את שם המקטע"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} מסננים נוספים",
+ "CLEAR_FILTERS": "נקה מסננים"
+ }
+ },
+ "CARD": {
+ "OF": "מתוך",
+ "VIEW_DETAILS": "הצג פרטים",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "ערוך את פרטי איש הקשר",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "הזן שם פרטי"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "הזן שם משפחה"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "הזן כתובת דוא\"ל",
+ "DUPLICATE": "כתובת דוא\"ל זו נמצאת בשימוש עבור איש קשר אחר."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "הזן מספר טלפון",
+ "DUPLICATE": "מספר טלפון זה נמצאת בשימוש עבור איש קשר אחר."
+ },
+ "CITY": {
+ "PLACEHOLDER": "הזן את שם העיר"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "בחר מדינה"
+ },
+ "BIO": {
+ "PLACEHOLDER": "הזן ביוגרפיה"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "הזן את שם החברה"
+ }
+ },
+ "UPDATE_BUTTON": "עדכן איש קשר",
+ "SUCCESS_MESSAGE": "איש קשר עודכן בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לעדכן איש קשר. אנא נסה שוב מאוחר יותר."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "ערוך קישורים חברתיים",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "הוסף פייסבוק"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "הוסף Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "הוסף אינסטגרם"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "הוסף LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "הוסף טוויטר"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "פעולה זו היא קבועה ובלתי הפיכה.",
+ "BUTTON": "מחק עכשיו"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "נוצר ב-{date}",
+ "LAST_ACTIVITY": "פעיל אחרון {date}",
+ "DELETE_CONTACT_DESCRIPTION": "מחק לצמיתות את איש הקשר הזה. פעולה זו היא בלתי הפיכה",
+ "DELETE_CONTACT": "מחק איש קשר",
+ "DELETE_DIALOG": {
+ "TITLE": "אשר מחיקה",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק איש קשר זה?",
+ "CONFIRM": "כן, מחק",
+ "API": {
+ "SUCCESS_MESSAGE": "איש הקשר נמחק בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן היה למחוק איש קשר. בבקשה נסה שוב מאוחר יותר."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "לא ניתן להעלות תמונה. אנא נסה שוב מאוחר יותר.",
+ "SUCCESS_MESSAGE": "תמונה הועלתה בהצלחה"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "האוואטר נמחק בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן למחוק תמונה. אנא נסה שוב מאוחר יותר."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "מאפיינים",
+ "HISTORY": "היסטוריה",
+ "NOTES": "הערות",
+ "MERGE": "מזג"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "לא קיימות שיחות קודמות המשויכות לאיש קשר זה"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "חפש תכונות",
+ "UNUSED_ATTRIBUTES": "{count} תכונה בשימוש | {count} תכונות שלא בשימוש",
+ "EMPTY_STATE": "אין תכונות מותאמות אישית של איש קשר זמינות בחשבון זה. באפשרותך ליצור תכונה מותאמת אישית בהגדרות.",
+ "YES": "כן",
+ "NO": "לא",
+ "TRIGGER": {
+ "SELECT": "בחר ערך",
+ "INPUT": "הזן ערך"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "מספר לא חוקי",
+ "REQUIRED": "נדרש ערך חוקי",
+ "INVALID_INPUT": "קלט לא חוקי",
+ "INVALID_URL": "כתובת אתר לא חוקית",
+ "INVALID_DATE": "תאריך לא חוקי"
+ },
+ "NO_ATTRIBUTES": "לא נמצאו מאפיינים",
+ "API": {
+ "SUCCESS_MESSAGE": "המאפיין עודכן בהצלחה",
+ "DELETE_SUCCESS_MESSAGE": "המאפיין נמחק בהצלחה",
+ "UPDATE_ERROR": "לא ניתן לעדכן את המאפיין. בבקשה נסה שוב מאוחר יותר",
+ "DELETE_ERROR": "לא ניתן למחוק מאפיין. בבקשה נסה שוב מאוחר יותר"
+ }
+ },
+ "MERGE": {
+ "TITLE": "מזג אנשי קשר",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "איש קשר ראשי",
+ "PRIMARY_HELP_LABEL": "לשמירה",
+ "PRIMARY_REQUIRED_ERROR": "אנא בחר איש קשר למיזוג לפני שתמשיך",
+ "PARENT": "למיזוג",
+ "PARENT_HELP_LABEL": "להימחק",
+ "EMPTY_STATE": "לא נמצאו אנשי קשר",
+ "PLACEHOLDER": "חפש איש קשר ראשי",
+ "SEARCH_PLACEHOLDER": "חפש איש קשר",
+ "SEARCH_ERROR_MESSAGE": "לא ניתן לחפש אנשי קשר. אנא נסה שוב מאוחר יותר.",
+ "SUCCESS_MESSAGE": "איש הקשר מוזג בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן למזג אנשי קשר, נסה שוב!",
+ "IS_SEARCHING": "מחפש...",
+ "BUTTONS": {
+ "CANCEL": "ביטול",
+ "CONFIRM": "מזג אנשי קשר"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "הוסף הערה",
+ "WROTE": "נכתב",
+ "YOU": "אתה",
+ "SAVE": "שמור הערה",
+ "ADD_NOTE": "הוסף הערת איש קשר",
+ "EXPAND": "הרחב",
+ "COLLAPSE": "כווץ",
+ "NO_NOTES": "אין הערות, תוכל להוסיף הערות מדף פרטי איש הקשר.",
+ "EMPTY_STATE": "אין הערות המשויכות לאיש קשר זה. תוכל להוסיף הערה על ידי הקלדה בתיבה שלמעלה.",
+ "CONVERSATION_EMPTY_STATE": "אין עדיין הערות. השתמש בלחצן 'הוסף הערה' כדי ליצור אחת."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "לא נמצאו אנשי קשר בחשבון זה",
+ "SUBTITLE": "התחל להוסיף אנשי קשר חדשים על ידי לחיצה על הכפתור למטה",
+ "BUTTON_LABEL": "הוסף איש קשר",
+ "SEARCH_EMPTY_STATE_TITLE": "אין אנשי קשר שתואמים לחיפוש שלך 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "טען עוד"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "הקצה תוויות",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "תוויות שוייכו בהצלחה.",
+ "ASSIGN_LABELS_FAILED": "ההקצאה של התוויות נכשלה",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "בחר את התוויות שברצונך להוסיף לאנשי הקשר שנבחרו.",
+ "NO_LABELS_FOUND": "אין עדיין תוויות זמינות.",
+ "SELECTED_COUNT": "{count} נבחרו",
+ "CLEAR_SELECTION": "נקה בחירה",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "DELETE_CONTACTS": "מחק",
+ "DELETE_SUCCESS": "אנשי קשר נמחקו בהצלחה.",
+ "DELETE_FAILED": "מחיקת אנשי הקשר נכשלה.",
+ "DELETE_DIALOG": {
+ "TITLE": "מחק אנשי קשר שנבחרו",
+ "SINGULAR_TITLE": "מחק איש קשר שנבחר",
+ "DESCRIPTION": "פעולה זו תמחק לצמיתות {count} אנשי קשר שנבחרו. לא ניתן לבטל פעולה זו.",
+ "SINGULAR_DESCRIPTION": "פעולה זו תמחק לצמיתות את איש הקשר שנבחר. לא ניתן לבטל פעולה זו.",
+ "CONFIRM_MULTIPLE": "מחק אנשי קשר",
+ "CONFIRM_SINGLE": "מחק איש קשר"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "צפה",
+ "SUCCESS_MESSAGE": "ההודעה נשלחה בהצלחה!",
+ "ERROR_MESSAGE": "אירעה שגיאה ביצירת השיחה. אנא נסה שוב מאוחר יותר.",
+ "NO_INBOX_ALERT": "אין תיבות דואר נכנס זמינות כדי להתחיל שיחה עם איש קשר זה.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "אל:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "יוצר איש קשר..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "דרך:",
+ "BUTTON": "הצג תיבות דואר נכנס"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "נושא :",
+ "SUBJECT_PLACEHOLDER": "הזן את נושא הדוא\"ל שלך כאן",
+ "CC_LABEL": "עותק:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "עותק מוסתר:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "עותק מוסתר"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "כתוב את הודעתך כאן..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "בחר תבנית",
+ "SEARCH_PLACEHOLDER": "חפש תבניות",
+ "EMPTY_STATE": "לא נמצאו תבניות",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "תבנית WhatsApp: {templateName}",
+ "VARIABLES": "משתנים",
+ "BACK": "חזור",
+ "SEND_MESSAGE": "שלח הודעה"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "בחר תבנית",
+ "SEARCH_PLACEHOLDER": "חפש תבניות",
+ "EMPTY_STATE": "לא נמצאו תבניות",
+ "TEMPLATE_PARSER": {
+ "BACK": "חזור",
+ "SEND_MESSAGE": "שלח הודעה"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "בטל",
+ "SEND": "שלח ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/contactFilters.json b/app/javascript/dashboard/i18n/locale/he/contactFilters.json
index cc4c56afe..25ba537ab 100644
--- a/app/javascript/dashboard/i18n/locale/he/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/he/contactFilters.json
@@ -2,18 +2,18 @@
"CONTACTS_FILTER": {
"TITLE": "סינון אנשי קשר",
"SUBTITLE": "הוסיפו פילטרים מתחת ולחצו 'אישור' בכדי לסנן אנשי קשר.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "EDIT_CUSTOM_SEGMENT": "ערוך מקטע",
+ "CUSTOM_VIEWS_SUBTITLE": "הוסף או הסר מסננים ועדכן את המקטע שלך.",
"ADD_NEW_FILTER": "הוסף מסנן",
"CLEAR_ALL_FILTERS": "ניקוי כל הפילטרים",
"FILTER_DELETE_ERROR": "צריך להיות לפחות מסנן אחד כדי לשמור",
"SUBMIT_BUTTON_LABEL": "שלח",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "עדכן מקטע",
"CANCEL_BUTTON_LABEL": "ביטול",
"CLEAR_BUTTON_LABEL": "מחק סננים",
"EMPTY_VALUE_ERROR": "חובה ערך",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
+ "SEGMENT_LABEL": "שם מקטע",
+ "SEGMENT_QUERY_LABEL": "שאילתת מקטע",
"TOOLTIP_LABEL": "סינון אנשי קשר",
"QUERY_DROPDOWN_LABELS": {
"AND": "ו/גם",
@@ -30,6 +30,9 @@
"is_lesser_than": "הוא פחות מ",
"days_before": "זה x ימים לפני"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "חובה ערך"
+ },
"ATTRIBUTES": {
"NAME": "שם",
"EMAIL": "אימייל",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "תיבת סימון",
"CREATED_AT": "הוקם ב",
"LAST_ACTIVITY": "פעילות אחרונה",
- "REFERER_LINK": "קישור מפנה"
+ "REFERER_LINK": "קישור מפנה",
+ "BLOCKED": "חסום",
+ "LABELS": "תוויות"
},
"GROUPS": {
"STANDARD_FILTERS": "סננים סטנדרטיים",
diff --git a/app/javascript/dashboard/i18n/locale/he/contentTemplates.json b/app/javascript/dashboard/i18n/locale/he/contentTemplates.json
new file mode 100644
index 000000000..138290ca1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "תבניות Twilio",
+ "SUBTITLE": "בחר את תבנית Twilio שברצונך לשלוח",
+ "TEMPLATE_SELECTED_SUBTITLE": "הגדר תבנית: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "חפש תבניות",
+ "NO_TEMPLATES_FOUND": "לא נמצאו תבניות עבור",
+ "NO_CONTENT": "אין תוכן",
+ "HEADER": "כותרת עליונה",
+ "BODY": "גוף",
+ "FOOTER": "כותרת תחתונה",
+ "BUTTONS": "כפתורים",
+ "CATEGORY": "קטגוריה",
+ "MEDIA_CONTENT": "תוכן מדיה",
+ "MEDIA_CONTENT_FALLBACK": "תוכן מדיה",
+ "NO_TEMPLATES_AVAILABLE": "אין תבניות Twilio זמינות. לחץ על רענן כדי לסנכרן תבניות מ-Twilio.",
+ "REFRESH_BUTTON": "רענן תבניות",
+ "REFRESH_SUCCESS": "רענון התבניות הופעל. העדכון עשוי להימשך כמה דקות.",
+ "REFRESH_ERROR": "רענון התבניות נכשל. אנא נסה שוב.",
+ "LABELS": {
+ "LANGUAGE": "שפה",
+ "TEMPLATE_BODY": "גוף התבנית",
+ "CATEGORY": "קטגוריה"
+ },
+ "TYPES": {
+ "MEDIA": "מדיה",
+ "QUICK_REPLY": "תגובה מהירה",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "טקסט"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "משתנים",
+ "LANGUAGE": "שפה",
+ "CATEGORY": "קטגוריה",
+ "VARIABLE_PLACEHOLDER": "הזן ערך {variable}",
+ "GO_BACK_LABEL": "חזור",
+ "SEND_MESSAGE_LABEL": "לשלוח הודעה",
+ "FORM_ERROR_MESSAGE": "נא למלא את כל המשתנים לפני השליחה",
+ "MEDIA_HEADER_LABEL": "כותרת עליונה {type}",
+ "MEDIA_URL_LABEL": "הזן כתובת URL מלאה של מדיה",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "חזור",
+ "SEND_MESSAGE_BUTTON": "לשלוח הודעה"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/conversation.json b/app/javascript/dashboard/i18n/locale/he/conversation.json
index 2ee7c9bd5..0ce06cd72 100644
--- a/app/javascript/dashboard/i18n/locale/he/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/he/conversation.json
@@ -12,9 +12,11 @@
"NO_INBOX_2": " להתחיל",
"NO_INBOX_AGENT": "או - או! נראה שאתה לא חלק מתיבת דואר נכנס כלשהי. אנא פנה למנהל המערכת שלך",
"SEARCH_MESSAGES": "חפש הודעות בשיחות",
+ "VIEW_ORIGINAL": "הצג מקור",
+ "VIEW_TRANSLATED": "הצג מתורגם",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "לפתיחת תפריט פקודות",
+ "KEYBOARD_SHORTCUTS": "להצגת קיצורי מקלדת"
},
"SEARCH": {
"TITLE": "חפש הודעות",
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "טוען שיחות",
"CANNOT_REPLY": "לא ניתן להשיב עקב",
"24_HOURS_WINDOW": "הגבלת חלון הודעות של 24 שעות",
+ "48_HOURS_WINDOW": "הגבלת חלון הודעות של 48 שעות",
+ "API_HOURS_WINDOW": "תוכל להשיב לשיחה זו רק תוך {hours} שעות",
"NOT_ASSIGNED_TO_YOU": "השיחה לא שייכת לך, האם תרצה לשייך אותה אליך?",
"ASSIGN_TO_ME": "שייך לעצמך",
+ "BOT_HANDOFF_MESSAGE": "אתה משיב לשיחה שמטופלת כרגע על ידי עוזר או בוט.",
+ "BOT_HANDOFF_ACTION": "סמן כפתוח והקצה לעצמך",
+ "BOT_HANDOFF_REOPEN_ACTION": "סמן שיחה כפתוחה",
+ "BOT_HANDOFF_SUCCESS": "השיחה הועברה אליך",
+ "BOT_HANDOFF_ERROR": "ההשתלטות על השיחה נכשלה. אנא נסה שוב.",
"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": "הורד",
"UNKNOWN_FILE_TYPE": "קובץ לא ידוע",
- "SAVE_CONTACT": "שמור",
+ "SAVE_CONTACT": "שמור איש קשר",
+ "NO_CONTENT": "אין תוכן להצגה",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} שיתף/ה איש קשר",
+ "LOCATION": "{sender} שיתף/ה מיקום",
+ "FILE": "{sender} שיתף/ה קובץ",
+ "MEETING": "{sender} התחיל/ה פגישה"
+ },
"UPLOADING_ATTACHMENTS": "מעלה קובץ מצורף...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "REPLIED_TO_STORY": "השיב/ה לסטורי שלך",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "הודעה זו אינה נתמכת. תוכל לצפות בהודעה זו באפליקציית Facebook Messenger.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "הודעה זו אינה נתמכת. תוכל לצפות בהודעה זו באפליקציית Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "ההודעה נמחקה בהצלחה",
"FAIL_DELETE_MESSSAGE": "לא ניתן למחוק את ההודעה! נסה שוב",
"NO_RESPONSE": "אין תגובה",
+ "RESPONSE": "תגובה",
"RATING_TITLE": "דירוג",
"FEEDBACK_TITLE": "משוב",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "REPLY_MESSAGE_NOT_FOUND": "ההודעה אינה זמינה",
"CARD": {
"SHOW_LABELS": "הצג תויות",
- "HIDE_LABELS": "הסתר תוויות"
+ "HIDE_LABELS": "הסתר תוויות",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "שיחה נכנסת",
+ "OUTGOING_CALL": "שיחה יוצאת",
+ "CALL_IN_PROGRESS": "שיחה מתבצעת",
+ "NO_ANSWER": "אין מענה",
+ "NO_ANSWER_OUTBOUND_LABEL": "אין מענה",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "שיחה שלא נענתה",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "השיחה הסתיימה",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "עדיין לא נענה",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "הם ענו",
+ "YOU_ANSWERED": "אתה ענית",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "פתרון",
"REOPEN_ACTION": "פתח מחדש",
"OPEN_ACTION": "פתח",
+ "MORE_ACTIONS": "פעולות נוספות",
"OPEN": "עוד",
"CLOSE": "סגור",
"DETAILS": "פרטים",
- "SNOOZED_UNTIL": "Snoozed until",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "מושתק עד",
"SNOOZED_UNTIL_TOMORROW": "נמנם עד מחר",
"SNOOZED_UNTIL_NEXT_WEEK": "נמנם עד שבוע הבא",
- "SNOOZED_UNTIL_NEXT_REPLY": "נמנם עד תגובה הבאה"
+ "SNOOZED_UNTIL_NEXT_REPLY": "נמנם עד תגובה הבאה",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "הוחמץ",
+ "DUE": "עקב"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "סמן כממתין",
@@ -76,32 +134,42 @@
"NEXT_WEEK": "שבוע הבא"
}
},
+ "MENTION": {
+ "AGENTS": "סוכנים",
+ "TEAMS": "צוותים"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "השהה עד",
"APPLY": "נודניק",
"CANCEL": "ביטול"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "עדיפות",
"OPTIONS": {
"NONE": "כלום",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "URGENT": "דחוף",
+ "HIGH": "גבוהה",
+ "MEDIUM": "בינונית",
+ "LOW": "נמוכה"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "כלום",
- "INPUT_PLACEHOLDER": "Select priority",
+ "INPUT_PLACEHOLDER": "בחר עדיפות",
"NO_RESULTS": "לא נמצאו תוצאות",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "העדיפות של שיחה מזהה {conversationId} שונתה ל- {priority}",
+ "FAILED": "לא ניתן לשנות עדיפות. אנא נסה שוב."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "מחק שיחה #{conversationId}",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק שיחה זו?",
+ "CONFIRM": "מחק"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "סמן כממתין",
"RESOLVED": "סמן כפתור",
"MARK_AS_UNREAD": "סמן כלא נקרא",
+ "MARK_AS_READ": "סמן כנקרא",
"REOPEN": "פתח מחדש את השיחה",
"SNOOZE": {
"TITLE": "נודניק",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "ההקצה תווית",
"AGENTS_LOADING": "טוען סוכנים...",
"ASSIGN_TEAM": "שייך צוות",
+ "DELETE": "מחק שיחה",
+ "OPEN_IN_NEW_TAB": "פתח בכרטיסייה חדשה",
+ "COPY_LINK": "העתק קישור לשיחה",
+ "COPY_LINK_SUCCESS": "קישור השיחה הועתק ללוח",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "מזהה שיחה %{conversationId} קושר ל %{agentName}",
+ "SUCCESFUL": "מזהה שיחה {conversationId} קושר ל {agentName}",
"FAILED": "השמת הסוכן לא הצליחה. בבקשה נסה שנית."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "התוית %{labelName} קושרה למזהה שיחה %{conversationId}",
+ "SUCCESFUL": "הוקצתה תווית #{labelName} לשיחה מזהה {conversationId}",
"FAILED": "לא ניתן לקשר שורה. אנא נסו שנית"
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "הצוות %{team} קושר לשיחה מספר %{conversationId}",
+ "SUCCESFUL": "הצוות {team} קושר לשיחה מספר {conversationId}",
"FAILED": "השמה לצוות לא הצליחה, בבקשה נסה שנית."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "נטרל חתימה",
"MSG_INPUT": "Shift + Enter עבור שורה חדשה. התחל עם '/' כדי לבחור תגובה מוכנה.",
"PRIVATE_MSG_INPUT": "Shift + Enter עבור שורה חדשה. זה יהיה גלוי רק לסוכנים",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "חתימת הודעה אינה מוגדרת, נא הגדר אותה בהגדרות הפרופיל.",
- "CLICK_HERE": "לחץ כאן כדי לעדכן"
+ "COPILOT_MSG_INPUT": "תן ל-Copilot הנחיות נוספות, או שאל משהו נוסף... לחץ אנטר כדי לשלוח המשך",
+ "CLICK_HERE": "לחץ כאן כדי לעדכן",
+ "WHATSAPP_TEMPLATES": "תבניות וואטסאפ"
},
"REPLYBOX": {
"REPLY": "הגב",
@@ -143,28 +224,28 @@
"SEND": "שלח",
"CREATE": "הוסף הערה",
"INSERT_READ_MORE": "קרא עוד",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "הצג עורך טקסט עשיר",
+ "DISMISS_REPLY": "בטל תגובה",
+ "REPLYING_TO": "משיב/ה ל:",
"TIP_EMOJI_ICON": "הצג בחירת אימוג'ים",
"TIP_ATTACH_ICON": "הוסף קבצים",
"TIP_AUDIORECORDER_ICON": "הקלט אודיו",
"TIP_AUDIORECORDER_PERMISSION": "אפשר גישה לאודיו",
"TIP_AUDIORECORDER_ERROR": "לא יכול לפתוח אודיו",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "גרור ושחרר כאן להוספת קובץ מצורף",
"START_AUDIO_RECORDING": "התחל הקלטת אודיו",
"STOP_AUDIO_RECORDING": "עצור הקלטת אודיו",
- "": "",
+ "COPILOT_THINKING": "Copilot חושב",
"EMAIL_HEAD": {
- "TO": "TO",
+ "TO": "אל",
"ADD_BCC": "הוסף bcc",
"CC": {
- "LABEL": "CC",
+ "LABEL": "עותק",
"PLACEHOLDER": "אימיילים מופרדים בפסיקים",
"ERROR": "בבקשה הכנס כתוכת אימייל"
},
"BCC": {
- "LABEL": "BBC",
+ "LABEL": "עותק מוסתר",
"PLACEHOLDER": "אימיילים מופרדים בפסיקים",
"ERROR": "בבקשה הכנס כתוכת אימייל"
}
@@ -176,6 +257,13 @@
"YES": "שלח",
"CANCEL": "ביטול"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "כלול שרשור דוא\"ל מצוטט",
+ "DISABLE_TOOLTIP": "אל תכלול שרשור דוא\"ל מצוטט",
+ "REMOVE_PREVIEW": "הסר שרשור דוא\"ל מצוטט",
+ "COLLAPSE": "כווץ תצוגה מקדימה",
+ "EXPAND": "הרחב תצוגה מקדימה"
}
},
"VISIBLE_TO_AGENTS": "פתקים פרטיים: רק אתה והצוות שלך יכולים לראות",
@@ -186,10 +274,15 @@
"ASSIGN_LABEL_SUCCESFUL": "סמן משימה כבוצעה בהצלחה",
"ASSIGN_LABEL_FAILED": "סמן משימה כנכשלה",
"CHANGE_TEAM": "שיחת קבוצה השתנתה",
+ "SUCCESS_DELETE_CONVERSATION": "השיחה נמחקה בהצלחה",
+ "FAIL_DELETE_CONVERSATION": "לא ניתן למחוק את השיחה! נסה שוב",
"FILE_SIZE_LIMIT": "הקובץ גדול מ{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE}MB מגבלת העלאה",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "לא ניתן לשלוח הודעה, אנא נסה שוב מאוחר יותר",
"SENT_BY": "נשלח על ידי:",
"BOT": "בוט",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "לא ניתן לשלוח הודעה! נסה שוב",
"TRY_AGAIN": "נסה שוב",
"ASSIGNMENT": {
@@ -199,7 +292,7 @@
},
"CONTEXT_MENU": {
"COPY": "העתק",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "השב להודעה זו",
"DELETE": "מחק",
"CREATE_A_CANNED_RESPONSE": "הוסף לתגובות מוכנות",
"TRANSLATE": "תרגום",
@@ -211,6 +304,25 @@
"DELETE": "מחק",
"CANCEL": "ביטול"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "איש קשר",
+ "COPILOT": "טייס משנה"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "שיחה נכנסת",
+ "OUTGOING_CALL": "שיחה יוצאת",
+ "CALL_IN_PROGRESS": "שיחה מתבצעת",
+ "NOT_ANSWERED_YET": "עדיין לא נענה",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "סגור",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "ביטול",
"SEND_EMAIL_SUCCESS": "תמליל השיחה נשלח בהצלחה",
"SEND_EMAIL_ERROR": "היתה שגיאה, בקשה נסה שוב",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "שלח תמליל ללקוח",
"SEND_TO_AGENT": "שלח תמליל לסוכן המשוייך לשיחה",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "היי 👋, ברוך הבא ל%{installationName}!",
- "DESCRIPTION": "תודה על ההרשמה. אנחנו רוצים לתת לך את הכי הרבה מ %{installationName}. הינה כמה דברים שאתה יכול לעשות עם %{installationName} לחוויה טובה.",
+ "TITLE": "היי 👋, ברוך הבא ל{installationName}!",
+ "DESCRIPTION": "תודה על ההרשמה. אנחנו רוצים לתת לך את הכי הרבה מ {installationName}. הינה כמה דברים שאתה יכול לעשות עם {installationName} לחוויה טובה.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "תקרא את העדכונים אחרונים",
"ALL_CONVERSATION": {
"TITLE": "כל השיחות שלך במקום אחד",
- "DESCRIPTION": "צפה בכל השיחות שלך עם הלקוחות בדאשבורד אחד. אתה יכול לסנן את השיחות לפי הערוץ, התווית והסטטוס."
+ "DESCRIPTION": "צפה בכל השיחות שלך עם הלקוחות בדאשבורד אחד. אתה יכול לסנן את השיחות לפי הערוץ, התווית והסטטוס.",
+ "NEW_LINK": "לחץ כאן כדי ליצור תיבה"
},
"TEAM_MEMBERS": {
"TITLE": "הזמן את חברי הצוות שלך",
"DESCRIPTION": "מאחר ואתם מוכנים לדבר עם הלקוח, הביאו את חברי הצוות שלכם לעזור לכם. תוכלו להזמין חברי צוות על ידי הוספה של כתובת הדוא\"ל שלהם לרשימת הסוכנים.",
"NEW_LINK": "לחץ כאן כדי להזמין חבר צוות"
},
- "INBOXES": {
- "TITLE": "התחבר לתיבות",
- "DESCRIPTION": "חבר ערוצים שונים דרכם הלקוחות שלך היו מדברים איתך. זה יכול להיות אתר צ'אט חי, דף הפייסבוק או הטוויטר שלך או אפילו מספר הוואטסאפ שלך.",
- "NEW_LINK": "לחץ כאן כדי ליצור תיבה"
- },
"LABELS": {
"TITLE": "ארגן שיחות עם תוויות",
"DESCRIPTION": "תוויות מספקות דרך קלה יותר לסווג את השיחה שלך. צור כמה תוויות כמו #support-enquiry, #billing-question וכו', כדי שתוכל להשתמש בהן בשיחה מאוחר יותר.",
"NEW_LINK": "לחץ כאן כדי ליצור תגיות"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "צור תבניות תגובה מוכנות\n\n",
+ "DESCRIPTION": "תבניות תגובה מוכנות מראש מאפשרות לך להגיב במהירות לשיחה. הסוכנים יכולים להקליד את התו '/' ואחריו קוד קצר כדי להוסיף תגובה.",
+ "NEW_LINK": "לחץ כאן כדי ליצור תבנית תגובה מוכנה"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "פעולות בשיחה",
"CONVERSATION_LABELS": "תוויות שיחה",
"CONVERSATION_INFO": "מידע על שיחה",
+ "CONTACT_NOTES": "הערות איש קשר",
"CONTACT_ATTRIBUTES": "תכונות יצירת קשר",
"PREVIOUS_CONVERSATION": "שיחות קודמות",
- "MACROS": "מאקרו"
+ "MACROS": "מאקרו",
+ "LINEAR_ISSUES": "בעיות Linear מקושרות",
+ "SHOPIFY_ORDERS": "הזמנות Shopify",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "מדיה",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "הצג הכל",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "הזמנה #{id}",
+ "ERROR": "שגיאה בטעינת הזמנות",
+ "NO_SHOPIFY_ORDERS": "לא נמצאו הזמנות",
+ "FINANCIAL_STATUS": {
+ "PENDING": "ממתין ל",
+ "AUTHORIZED": "מאושר",
+ "PARTIALLY_PAID": "שולם חלקית",
+ "PAID": "שולם",
+ "PARTIALLY_REFUNDED": "הוחזר חלקית",
+ "REFUNDED": "הוחזר",
+ "VOIDED": "בוטל"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "מולא",
+ "PARTIALLY_FULFILLED": "מולא חלקית",
+ "UNFULFILLED": "לא מולא"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "צור תכונה",
+ "NO_RECORDS_FOUND": "לא נמצאו מאפיינים",
"UPDATE": {
"SUCCESS": "המאפיין עודכן בהצלחה",
"ERROR": "לא ניתן לעדכן את המאפיין. בבקשה נסה שוב מאוחר יותר"
@@ -297,17 +449,18 @@
"TO": "אל",
"BCC": "עותק מוסתר",
"CC": "עותק",
- "SUBJECT": "נושא"
+ "SUBJECT": "נושא",
+ "EXPAND": "הרחב דוא\"ל"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "משתתף",
"SIDEBAR_TITLE": "משתתפים בשיחה",
"NO_RECORDS_FOUND": "לא נמצאו תוצאות",
"ADD_PARTICIPANTS": "בחר משתתפים",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} אחרים",
+ "REMANING_PARTICIPANT_TEXT": "+{count} אחר",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} אנשים משתתפים.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} אדם משתתף.",
"NO_PARTICIPANTS_TEXT": "אף אחד לא משתתף!.",
"WATCH_CONVERSATION": "הצטרף לשיחה",
"YOU_ARE_WATCHING": "אתה משתתף",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "תוכן מקורי",
"TRANSLATED_CONTENT": "תוכן מתורגם",
"NO_TRANSLATIONS_AVAILABLE": "אין תרגומים זמינים לתוכן זה"
+ },
+ "TYPING": {
+ "ONE": "{user} מקליד/ה",
+ "TWO": "{user} ו-{secondUser} מקלידים",
+ "MULTIPLE": "{user} ו {count} משתמשים אחרים מקלידים"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "נסה הנחיות אלה"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "לא ניתן להוריד קובץ מצורף. אנא נסה שוב"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/customRole.json b/app/javascript/dashboard/i18n/locale/he/customRole.json
new file mode 100644
index 000000000..1aac4e5ce
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "תפקידים מותאמים אישית",
+ "LEARN_MORE": "למד עוד על תפקידים מותאמים אישית",
+ "DESCRIPTION": "תפקידים מותאמים אישית הם תפקידים שנוצרים על ידי הבעלים או המנהל של החשבון. ניתן להקצות תפקידים אלה לסוכנים כדי להגדיר את הגישה וההרשאות שלהם בתוך החשבון. ניתן ליצור תפקידים מותאמים אישית עם הרשאות ורמות גישה ספציפיות שיתאימו לדרישות הארגון.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "הוסף תפקיד מותאם אישית",
+ "LOADING": "מאחזר תפקידים מותאמים אישית...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "אין פריטים התואמים לשאילתה זו.",
+ "PAYWALL": {
+ "TITLE": "שדרג כדי ליצור תפקידים מותאמים אישית",
+ "AVAILABLE_ON": "התכונה של תפקיד מותאם אישית זמינה רק בתוכניות Business ו-Enterprise.",
+ "UPGRADE_PROMPT": "שדרג את התוכנית שלך כדי לקבל גישה לתכונות מתקדמות כמו ניהול צוות, אוטומציות, תכונות מותאמות אישית ועוד.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "התכונה של תפקיד מותאם אישית זמינה רק בתוכניות בתשלום.",
+ "UPGRADE_PROMPT": "שדרג לתוכנית בתשלום כדי לגשת לתכונות מתקדמות כמו יומני ביקורת, קיבולת סוכנים ועוד.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ },
+ "LIST": {
+ "404": "אין תפקידים מותאמים אישית זמינים בחשבון זה.",
+ "TITLE": "נהל תפקידים מותאמים אישית",
+ "DESC": "תפקידים מותאמים אישית הם תפקידים שנוצרים על ידי הבעלים או המנהל של החשבון. ניתן להקצות תפקידים אלה לסוכנים כדי להגדיר את הגישה וההרשאות שלהם בתוך החשבון. ניתן ליצור תפקידים מותאמים אישית עם הרשאות ורמות גישה ספציפיות שיתאימו לדרישות הארגון.",
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "DESCRIPTION": "תיאור",
+ "PERMISSIONS": "הרשאות",
+ "ACTIONS": "פעולות"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "נהל את כל השיחות",
+ "CONVERSATION_UNASSIGNED_MANAGE": "נהל שיחות לא משויכות ואת אלה שמשויכות אליהם",
+ "CONVERSATION_PARTICIPATING_MANAGE": "נהל שיחות שבהן הם משתתפים ואת אלה שמשויכות אליהם",
+ "CONTACT_MANAGE": "נהל אנשי קשר",
+ "REPORT_MANAGE": "נהל דוחות",
+ "KNOWLEDGE_BASE_MANAGE": "נהל בסיס ידע"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "שם",
+ "PLACEHOLDER": "אנא הזן שם.",
+ "ERROR": "שם שדה חובה."
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "אנא הזן תיאור.",
+ "ERROR": "נדרש תיאור."
+ },
+ "PERMISSIONS": {
+ "LABEL": "הרשאות",
+ "ERROR": "הרשאות נדרשות."
+ },
+ "CANCEL_BUTTON_TEXT": "ביטול",
+ "API": {
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ }
+ },
+ "ADD": {
+ "TITLE": "הוסף תפקיד מותאם אישית",
+ "DESC": "תפקידים מותאמים אישית מאפשרים לך ליצור תפקידים עם הרשאות ורמות גישה ספציפיות שיתאימו לדרישות הארגון.",
+ "SUBMIT": "שלח",
+ "API": {
+ "SUCCESS_MESSAGE": "תפקיד מותאם אישית נוסף בהצלחה."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "ערוך",
+ "TITLE": "ערוך תפקיד מותאם אישית",
+ "DESC": "תפקידים מותאמים אישית מאפשרים לך ליצור תפקידים עם הרשאות ורמות גישה ספציפיות שיתאימו לדרישות הארגון.",
+ "SUBMIT": "עדכן",
+ "API": {
+ "SUCCESS_MESSAGE": "התפקיד המותאם אישית עודכן בהצלחה."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "מחק",
+ "API": {
+ "SUCCESS_MESSAGE": "התפקיד המותאם אישית נמחק בהצלחה.",
+ "ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
+ },
+ "CONFIRM": {
+ "TITLE": "אשר מחיקה",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק ",
+ "YES": "כן, מחק ",
+ "NO": "לא, השאר "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/datePicker.json b/app/javascript/dashboard/i18n/locale/he/datePicker.json
new file mode 100644
index 000000000..0d96f7fb8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "להגיש מועמדות",
+ "CLEAR_BUTTON": "נקה",
+ "DATE_RANGE_INPUT": {
+ "START": "תאריך התחלה",
+ "END": "תאריך סיום"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "טווח תאריכים",
+ "LAST_7_DAYS": "7 הימים האחרונים",
+ "LAST_30_DAYS": "30 הימים האחרונים",
+ "LAST_3_MONTHS": "3 החודשים האחרונים",
+ "LAST_6_MONTHS": "6 החודשים האחרונים",
+ "LAST_YEAR": "שנה שעברה",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "החודש",
+ "CUSTOM_RANGE": "טווח תאריכים מותאם אישית"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/general.json b/app/javascript/dashboard/i18n/locale/he/general.json
new file mode 100644
index 000000000..e0bff0379
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "מציג {firstIndex}-{lastIndex} מתוך {totalCount} פריטים",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "חפש",
+ "EMPTY_STATE": "לא נמצאו תוצאות"
+ },
+ "CLOSE": "סגור",
+ "BETA": "בטא",
+ "BETA_DESCRIPTION": "תכונה זו נמצאת בגרסת בטא ועשויה להשתנות ככל שנשפר אותה.",
+ "ACCEPT": "Accept",
+ "DISCARD": "בטל",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "כן",
+ "NO": "לא"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/generalSettings.json b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
index 612c5eefc..6438e5f22 100644
--- a/app/javascript/dashboard/i18n/locale/he/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/he/generalSettings.json
@@ -1,13 +1,39 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "חרגת ממגבלת השיחות. תוכנית Hacker מאפשרת רק 500 שיחות.",
+ "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": "חרגת ממגבלת הסוכנים. התוכנית שלך מאפשרת רק {allowedAgents} סוכנים.",
+ "NON_ADMIN": "אנא פנה למנהל המערכת שלך כדי לשדרג את התוכנית ולהמשיך להשתמש בכל התכונות."
+ },
"TITLE": "הגדרות חשבון",
"SUBMIT": "עדכן הגדרות",
"BACK": "חזור",
- "DISMISS": "Dismiss",
+ "DISMISS": "סגור",
"UPDATE": {
"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": "מזהה חשבון",
"NOTE": "מזהה זה נדרש אם אתה בונה אינטגרציה מבוססת API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolve conversations",
+ "NOTE": "הגדרה זו תאפשר לך לסגור אוטומטית את השיחה לאחר תקופה מסוימת של חוסר פעילות.",
+ "DURATION": {
+ "LABEL": "משך חוסר פעילות",
+ "HELP": "Time period of inactivity after which conversation is auto-resolved",
+ "PLACEHOLDER": "30",
+ "ERROR": "משך הסגירה האוטומטית צריך להיות בין 10 דקות ל-999 ימים",
+ "API": {
+ "SUCCESS": "הגדרות הסגירה האוטומטית עודכנו בהצלחה",
+ "ERROR": "העדכון של הגדרות הסגירה האוטומטית נכשל"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Custom auto-resolution message",
+ "PLACEHOLDER": "השיחה סומנה כסגורה על ידי המערכת עקב 15 ימים של חוסר פעילות",
+ "HELP": "Message sent to the customer after conversation is auto-resolved"
+ },
+ "PREFERENCES": "העדפות",
+ "LABEL": {
+ "LABEL": "Add label after auto-resolution",
+ "PLACEHOLDER": "בחר תווית"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Skip conversations waiting for agent’s reply"
+ },
+ "UPDATE_BUTTON": "שמור שינויים"
+ },
"NAME": {
"LABEL": "שם החשבון",
"PLACEHOLDER": "שם החשבון שלך",
@@ -38,26 +92,49 @@
"PLACEHOLDER": "דוא\"ל התמיכה של החברה שלך",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "אל תכלול שיחות ללא מענה",
+ "HELP": "כאשר מופעל, המערכת תדלג על סגירת שיחות שעדיין ממתינות לתגובת סוכן."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "תמלל הודעות קוליות",
+ "NOTE": "תמלל אוטומטית הודעות קוליות בשיחות. צור תמלול טקסט בכל פעם שנשלחת או מתקבלת הודעה קולית, והצג אותה לצד ההודעה.",
+ "API": {
+ "SUCCESS": "הגדרת תמלול שמע עודכנה בהצלחה",
+ "ERROR": "העדכון של הגדרת תמלול שמע נכשל"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "מספר הימים לאחר כרטיס אמור להיפתר אוטומטית אם אין פעילות",
+ "LABEL": "משך חוסר פעילות לסגירה",
+ "HELP": "משך הזמן שלאחריו שיחה תיסגר אוטומטית אם אין פעילות",
"PLACEHOLDER": "30",
- "ERROR": "אנא הזן משך פתרון אוטומטי חוקי (מינימום יום אחד ומקסימום 999 ימים)"
+ "ERROR": "משך הסגירה האוטומטית צריך להיות בין 10 דקות ל-999 ימים",
+ "API": {
+ "SUCCESS": "הגדרות הסגירה האוטומטית עודכנו בהצלחה",
+ "ERROR": "העדכון של הגדרות הסגירה האוטומטית נכשל"
+ },
+ "UPDATE_BUTTON": "עדכן",
+ "MESSAGE_LABEL": "הודעת סגירה מותאמת אישית",
+ "MESSAGE_PLACEHOLDER": "השיחה סומנה כסגורה על ידי המערכת עקב 15 ימים של חוסר פעילות",
+ "MESSAGE_HELP": "הודעה זו נשלחת ללקוח כאשר שיחה נסגרת אוטומטית על ידי המערכת עקב חוסר פעילות."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "רציפות השיחה עם הודעות אימייל מופעלת עבור החשבון שלך.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "אתה יכול לקבל אימיילים בדומיין המותאם אישית שלך עכשיו."
}
},
- "UPDATE_CHATWOOT": "עדכון %{latestChatwootVersion} עבור Chatwoot זמין. אנא עדכן את המופע שלך.",
+ "UPDATE_CHATWOOT": "עדכון {latestChatwootVersion} עבור Chatwoot זמין. אנא עדכן את המופע שלך.",
"LEARN_MORE": "למד עוד",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information 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"
+ "PAYMENT_PENDING": "התשלום שלך ממתין. אנא עדכן את פרטי התשלום שלך כדי להמשיך להשתמש ב-Chatwoot",
+ "UPGRADE": "שדרג כדי להמשיך להשתמש ב-Chatwoot",
+ "LIMITS_UPGRADE": "החשבון שלך חרג ממגבלות השימוש. אנא שדרג את המינוי שלך כדי להמשיך להשתמש ב-צ'אטווט",
+ "OPEN_BILLING": "פתח חיוב"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "הקש אנטר כדי לבחור",
"ENTER_TO_REMOVE": "הקש אנטר כדי להסיר",
+ "NO_OPTIONS": "הרשימה ריקה",
"SELECT_ONE": "תבחר אחד",
"SELECT": "בחר"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "שיחה הוקצתה",
"assigned_conversation_new_message": "הודעה חדשה",
"participating_conversation_new_message": "הודעה חדשה",
- "conversation_mention": "אִזְכּוּר"
+ "conversation_mention": "אִזְכּוּר",
+ "sla_missed_first_response": "החמצת SLA",
+ "sla_missed_next_response": "החמצת SLA",
+ "sla_missed_resolution": "הסכם רמת שירות פוספס"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "לא מחובר"
+ "OFFLINE": "לא מחובר",
+ "RECONNECTING": "מתחבר מחדש...",
+ "RECONNECT_SUCCESS": "חובר מחדש"
},
"BUTTON": {
"REFRESH": "רענן"
@@ -100,20 +182,22 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "חפש או קפוץ ל",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "כללי",
"REPORTS": "דוחות",
"CONVERSATION": "שיחה",
+ "BULK_ACTIONS": "פעולות בכמות גדולה",
"CHANGE_ASSIGNEE": "שנה מוקצה",
- "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_PRIORITY": "שנה עדיפות",
"CHANGE_TEAM": "להחליף קבוצה",
"SNOOZE_CONVERSATION": "נודניק שיחה",
"ADD_LABEL": "הוסף תווית לשיחה",
"REMOVE_LABEL": "הסר תווית מהשיחה",
"SETTINGS": "הגדרות",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "סיוע AI",
+ "APPEARANCE": "מראה",
+ "SNOOZE_NOTIFICATION": "השבת התראה זמנית"
},
"COMMANDS": {
"GO_TO_CONVERSATION_DASHBOARD": "עבור ללוח המחוונים לשיחה",
@@ -135,8 +219,8 @@
"GO_TO_NOTIFICATIONS": "עבור להודעות",
"ADD_LABELS_TO_CONVERSATION": "הוסף תווית לשיחה",
"ASSIGN_AN_AGENT": "הקצה סוכן",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
+ "AI_ASSIST": "סיוע AI",
+ "ASSIGN_PRIORITY": "הקצה עדיפות",
"ASSIGN_A_TEAM": "הקצה צוות",
"MUTE_CONVERSATION": "שיחה אילמת",
"UNMUTE_CONVERSATION": "בטל השתקת שיחה",
@@ -148,21 +232,21 @@
"UNTIL_NEXT_REPLY": "עד לתשובה הבאה",
"UNTIL_NEXT_WEEK": "עד שבוע הבא",
"UNTIL_TOMORROW": "עד מחר",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "UNTIL_NEXT_MONTH": "עד החודש הבא",
+ "AN_HOUR_FROM_NOW": "עד שעה מעכשיו",
+ "UNTIL_CUSTOM_TIME": "מותאם אישית...",
+ "CHANGE_APPEARANCE": "שנה מראה",
+ "LIGHT_MODE": "בהיר",
+ "DARK_MODE": "כהה",
+ "SYSTEM_MODE": "מערכת",
+ "SNOOZE_NOTIFICATION": "השבת התראה זמנית"
}
},
"DASHBOARD_APPS": {
"LOADING_MESSAGE": "טוען אפליקציית Dashboard..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "או",
"CLICK_HERE": "לחץ כאן"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/helpCenter.json b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
index 03f4d9e8a..e1e793f92 100644
--- a/app/javascript/dashboard/i18n/locale/he/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/he/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "מרכז עזרה",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "צור פורטל"
+ },
"HEADER": {
"FILTER": "סנן לפי",
"SORT": "מיין לפי",
@@ -18,10 +23,10 @@
"ARCHIVED": "מאמרים בארכיון"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "בחר אזור",
+ "PLACEHOLDER": "בחר אזור",
+ "NO_RESULT": "לא נמצא אזור",
+ "SEARCH_PLACEHOLDER": "חפש אזור"
}
},
"EDIT_HEADER": {
@@ -41,6 +46,7 @@
"UPLOADING": "מעלה...",
"SUCCESS": "התמונה הועלתה בהצלחה",
"ERROR": "שגיאה בעת העלאת תמונה",
+ "UN_AUTHORIZED_ERROR": "אינך מורשה להעלות תמונות",
"ERROR_FILE_SIZE": "גודל התמונה צריך להיות פחות מ-{size}MB",
"ERROR_FILE_FORMAT": "פורמט התמונה צריך להיות jpg, jpeg או png",
"ERROR_FILE_DIMENSIONS": "מידות התמונה צריכות להיות פחות מ-2000 x 2000"
@@ -82,15 +88,15 @@
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "ללא קטגוריה",
+ "SEARCH_RESULTS": "תוצאות חיפוש עבור {query}",
+ "EMPTY_TEXT": "חפש מאמרים כדי להוסיף לתשובות.",
+ "SEARCH_LOADER": "מחפש...",
+ "INSERT_ARTICLE": "הכנס",
+ "NO_RESULT": "לא נמצאו מאמרים",
+ "COPY_LINK": "העתק קישור למאמר ללוח",
+ "OPEN_LINK": "פתח מאמר בכרטיסייה חדשה",
+ "PREVIEW_LINK": "תצוגה מקדימה של מאמר"
},
"PORTAL": {
"HEADER": "פורטלים",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "הפורטל נמחק בהצלחה",
"DELETE_ERROR": "שגיאה בעת מחיקת הפורטל"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "הוראות CNAME נשלחו בהצלחה",
+ "ERROR_MESSAGE": "שגיאה בשליחת הוראות CNAME"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "מידע על מרכז העזרה",
- "route": "new_portal_information",
- "body": "מידע בסיסי על הפורטל",
- "CREATE_BASIC_SETTING_BUTTON": "צור הגדרות בסיסיות של פורטל"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "מידע על מרכז העזרה",
+ "BODY": "מידע בסיסי על הפורטל"
},
- {
- "title": "התאמה אישית של מרכז העזרה",
- "route": "portal_customization",
- "body": "התאמה אישית של פורטל",
- "UPDATE_PORTAL_BUTTON": "עדכון הגדרות פורטל"
+ "CUSTOMIZATION": {
+ "TITLE": "התאמה אישית של מרכז העזרה",
+ "BODY": "התאמה אישית של פורטל"
},
- {
- "title": "וואילה! 🎉",
- "route": "portal_finish",
- "body": "אתה מוכן!",
- "FINISH": "סיים"
+ "FINISH": {
+ "TITLE": "וואילה! 🎉",
+ "BODY": "אתה מוכן!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "חזור",
"BASIC_SETTINGS_PAGE": {
@@ -231,9 +237,9 @@
"LABEL": "לוגו",
"UPLOAD_BUTTON": "העלה לוגו",
"HELP_TEXT": "לוגו זה יוצג בכותרת הפורטל.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "IMAGE_UPLOAD_SUCCESS": "לוגו הועלה בהצלחה",
+ "IMAGE_UPLOAD_ERROR": "לוגו נמחק בהצלחה",
+ "IMAGE_DELETE_ERROR": "שגיאה במחיקת לוגו"
},
"NAME": {
"LABEL": "שם",
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "תחום מותאם אישית",
"PLACEHOLDER": "דומיין מותאם אישית של פורטל",
- "HELP_TEXT": "הוסף רק אם אתה רוצה להשתמש בדומיין מותאם אישית עבור הפורטלים שלך. לדוגמה: https://example.com",
+ "HELP_TEXT": "הוסף רק אם ברצונך להשתמש בדומיין מותאם אישית עבור הפורטלים שלך. לדוגמה: {exampleURL}",
"ERROR": "הזן כתובת אתר חוקית של דומיין"
},
"HOME_PAGE_LINK": {
"LABEL": "קישור לדף הבית",
"PLACEHOLDER": "קישור לדף הבית של הפורטל",
- "HELP_TEXT": "הקישור ששימש לחזרה מהפורטל לדף הבית. לדוגמה: https://example.com",
+ "HELP_TEXT": "הקישור המשמש לחזרה מהפורטל לדף הבית. לדוגמה: {exampleURL}",
"ERROR": "הזן כתובת אתר חוקית של דף הבית"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "המקום הוסר מהפורטל בהצלחה",
"ERROR_MESSAGE": "לא ניתן להסיר את המקום מהפורטל. נסה שוב."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -319,13 +337,13 @@
"HEADERS": {
"TITLE": "כותרת",
"CATEGORY": "קטגוריה",
- "READ_COUNT": "Views",
+ "READ_COUNT": "צפיות",
"STATUS": "מצב",
"LAST_EDITED": "עריכה אחרונה"
},
"COLUMNS": {
"BY": "על ידי",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "AUTHOR_NOT_AVAILABLE": "המחבר אינו זמין"
}
},
"EDIT_ARTICLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "המאמר הועבר לארכיון בהצלחה"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "שגיאה בטיוטת מאמר",
+ "SUCCESS": "המאמר נשמר כטיוטה בהצלחה"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "שגיאה בעת מחיקת מאמר"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "אנא הוסף את כותרת המאמר והתוכן ואז רק אתה יכול לעדכן את ההגדרות"
},
@@ -379,7 +413,7 @@
"NAME": {
"LABEL": "שם",
"PLACEHOLDER": "שם קטגוריה",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "שם הקטגוריה והסמל ישמשו בפורטל הפונה לציבור כדי לסווג מאמרים.",
"ERROR": "שם שדה חובה"
},
"SLUG": {
@@ -410,7 +444,7 @@
"NAME": {
"LABEL": "שם",
"PLACEHOLDER": "שם קטגוריה",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "שם הקטגוריה והסמל ישמשו בפורטל הפונה לציבור כדי לסווג מאמרים.",
"ERROR": "שם שדה חובה"
},
"SLUG": {
@@ -441,46 +475,484 @@
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
+ "TITLE": "חפש מאמרים",
+ "PLACEHOLDER": "חפש מאמרים",
+ "NO_RESULT": "לא נמצאו מאמרים",
+ "SEARCHING": "מחפש...",
"SEARCH_BUTTON": "חפש",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "הכנס קישור",
+ "IFRAME_ERROR": "כתובת ה-URL ריקה או לא חוקית. לא ניתן להציג תוכן.",
+ "OPEN_ARTICLE_SEARCH": "הכנס מאמר ממרכז העזרה",
+ "SUCCESS_ARTICLE_INSERTED": "המאמר הוחדר בהצלחה",
+ "PREVIEW_LINK": "תצוגה מקדימה של מאמר",
"CANCEL": "סגור",
"BACK": "חזור",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "חזור לתוצאות"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
+ "TITLE": "מרכז עזרה",
"DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
"SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
"BUTTON": {
"LEARN_MORE": "למד עוד",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "שדרג"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "פורטלים מרובים",
+ "DESCRIPTION": "צור פורטלים מרובים של מרכז עזרה עבור מוצרים שונים באמצעות אותו חשבון."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "תמיכה מלאה באזורים (Locales)",
+ "DESCRIPTION": "לכסן את הפורטל בשפה שלך. אנו תומכים בכל האזורים ומאפשרים תרגומים עבור כל מאמר."
},
"SEO": {
"TITLE": "SEO-friendly design",
"DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
},
"API": {
- "TITLE": "Full API support",
+ "TITLE": "תמיכה מלאה ב-API",
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "טוען...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} צפייה | {count} צפיות",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "פרסם",
+ "DRAFT": "טיוטה",
+ "ARCHIVE": "ארכיון",
+ "TRANSLATE": "תרגום",
+ "DELETE": "מחק"
+ },
+ "STATUS": {
+ "DRAFT": "טיוטה",
+ "PUBLISHED": "יצא לאור",
+ "ARCHIVED": "בארכיון"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "ללא קטגוריה"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "כל המאמרים",
+ "MINE": "שלי",
+ "DRAFT": "טיוטה",
+ "PUBLISHED": "יצא לאור",
+ "ARCHIVED": "בארכיון"
+ },
+ "CATEGORY": {
+ "ALL": "כל הקטגוריות"
+ },
+ "LOCALE": {
+ "ALL": "כל האזורים"
+ },
+ "NEW_ARTICLE": "מאמר חדש"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "כתוב מאמר",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "מאמר חדש"
+ },
+ "MINE": {
+ "TITLE": "לא כתבת כאן מאמרים",
+ "SUBTITLE": "כל המאמרים שנכתבו על ידך מופיעים כאן לגישה מהירה."
+ },
+ "DRAFT": {
+ "TITLE": "אין מאמרים בטיוטות",
+ "SUBTITLE": "מאמרי טיוטה יופיעו כאן"
+ },
+ "PUBLISHED": {
+ "TITLE": "אין מאמרים שפורסמו",
+ "SUBTITLE": "מאמרים שפורסמו יופיעו כאן"
+ },
+ "ARCHIVED": {
+ "TITLE": "אין מאמרים בארכיון",
+ "SUBTITLE": "מאמרים בארכיון אינם מופיעים בפורטל, ניתן להשתמש בהם כדי לסמן דפים מיושנים או לא עדכניים"
+ },
+ "CATEGORY": {
+ "TITLE": "אין מאמרים בקטגוריה זו",
+ "SUBTITLE": "מאמרים בקטגוריה זו יופיעו כאן"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "תרגום",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "SELECTED_COUNT": "{count} נבחרו",
+ "CLEAR_SELECTION": "נקה בחירה",
+ "TRANSLATE_BUTTON": "תרגום",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "פרסם",
+ "DRAFT": "טיוטה",
+ "ARCHIVE": "ארכיון",
+ "TRANSLATE": "תרגום",
+ "MOVE_TO_CATEGORY": "קטגוריה",
+ "DELETE": "מחק",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "מחק",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "קטגוריה חדשה",
+ "EDIT_CATEGORY": "ערוך קטגוריה",
+ "CATEGORIES_COUNT": "{n} קטגוריה | {n} קטגוריות",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "קטגוריות ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} מאמר) | {categoryName} ({categoryCount} מאמרים)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "לא נמצאו קטגוריות",
+ "SUBTITLE": "קטגוריות יופיעו כאן. תוכל להוסיף קטגוריה על ידי לחיצה על כפתור 'קטגוריה חדשה'."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} מאמר | {count} מאמרים"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "קטגוריה נוצרה בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן ליצור קטגוריה"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "הקטגוריה עודכנה בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לעדכן את הקטגוריה"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "הקטגוריה נמחקה בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן למחוק קטגוריה"
+ }
+ },
+ "HEADER": {
+ "CREATE": "צור קטגוריה",
+ "EDIT": "ערוך קטגוריה",
+ "DESCRIPTION": "עריכת קטגוריה תעדכן את הקטגוריה בפורטל הפונה לציבור.",
+ "PORTAL": "פורטל",
+ "LOCALE": "מקומי"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "שם",
+ "PLACEHOLDER": "שם קטגוריה",
+ "ERROR": "שם שדה חובה"
+ },
+ "SLUG": {
+ "LABEL": "שבלול",
+ "PLACEHOLDER": "שבלול קטגוריה עבור כתובות אתרים",
+ "ERROR": "נדרש שבלול",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "תן תיאור קצר על הקטגוריה.",
+ "ERROR": "נדרש תיאור"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "צור",
+ "EDIT": "עדכן",
+ "CANCEL": "ביטול"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "אין אזורים זמינים | {n} אזור | {n} אזורים",
+ "NEW_LOCALE_BUTTON_TEXT": "אזור חדש",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} מאמר | {count} מאמרים",
+ "CATEGORIES_COUNT": "{count} קטגוריה | {count} קטגוריות",
+ "DEFAULT": "ברירת מחדל",
+ "DRAFT": "טיוטה",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "הפוך לברירת מחדל",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "מחק"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "הוסף מקום חדש",
+ "DESCRIPTION": "בחר את השפה שבה מאמר זה ייכתב. זו תתווסף לרשימת התרגומים שלך, ותוכל להוסיף נוספים מאוחר יותר.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "בחר אזור..."
+ },
+ "STATUS": {
+ "LABEL": "מצב",
+ "OPTIONS": {
+ "LIVE": "יצא לאור",
+ "DRAFT": "טיוטה"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "האזור נוסף בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן להוסיף אזור. נסה שוב."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "שומר...",
+ "SAVED": "שמור"
+ },
+ "PREVIEW": "תצוגה מקדימה",
+ "PUBLISH": "פרסם",
+ "DRAFT": "טיוטה",
+ "ARCHIVE": "ארכיון",
+ "BACK_TO_ARTICLES": "חזור למאמרים"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "מאפיינים נוספים",
+ "UNCATEGORIZED": "ללא קטגוריה",
+ "EDITOR_PLACEHOLDER": "כתוב משהו..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "מאפייני מאמר",
+ "META_DESCRIPTION": "מטא תיאור",
+ "META_DESCRIPTION_PLACEHOLDER": "הוסף תיאור מטא",
+ "META_TITLE": "כותרת מטא",
+ "META_TITLE_PLACEHOLDER": "הוסף כותרת מטא",
+ "META_TAGS": "מטא תגים",
+ "META_TAGS_PLACEHOLDER": "הוסף תגי מטא"
+ },
+ "API": {
+ "ERROR": "שגיאה בעת שמירת מאמר"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "פורטל חדש",
+ "PORTALS": "פורטלים",
+ "CREATE_PORTAL": "צור ונהל פורטלים מרובים",
+ "ARTICLES": "מאמרים",
+ "DOMAIN": "דומיין",
+ "PORTAL_NAME": "שם הפורטל"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "צור פורטל חדש",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "צור",
+ "NAME": {
+ "LABEL": "שם",
+ "PLACEHOLDER": "מדריך למשתמש | Chatwoot",
+ "MESSAGE": "בחר שם לפורטל שלך.",
+ "ERROR": "שם שדה חובה"
+ },
+ "SLUG": {
+ "LABEL": "שבלול",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "נדרש שבלול",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "לוגו",
+ "IMAGE_UPLOAD_ERROR": "לא ניתן להעלות את התמונה! נסה שוב",
+ "IMAGE_UPLOAD_SUCCESS": "תמונה נוספה בהצלחה. אנא לחץ על שמור שינויים כדי לשמור את הלוגו",
+ "IMAGE_DELETE_SUCCESS": "לוגו נמחק בהצלחה",
+ "IMAGE_DELETE_ERROR": "לא ניתן למחוק לוגו",
+ "IMAGE_UPLOAD_SIZE_ERROR": "גודל התמונה צריך להיות פחות מ-{size}MB"
+ },
+ "NAME": {
+ "LABEL": "שם",
+ "PLACEHOLDER": "שם הפורטל",
+ "ERROR": "שם שדה חובה"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "טקסט כותרת עליונה",
+ "PLACEHOLDER": "טקסט כותרת הפורטל"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "כותרת עמוד",
+ "PLACEHOLDER": "כותרת דף הפורטל"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "קישור לדף הבית",
+ "PLACEHOLDER": "קישור לדף הבית של הפורטל",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "שבלול",
+ "PLACEHOLDER": "סלאג פורטל"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "ווידג'ט צ'אט חי",
+ "PLACEHOLDER": "בחר ווידג'ט צ'אט חי",
+ "HELP_TEXT": "בחר ווידג'ט צ'אט חי שיופיע במרכז העזרה שלך",
+ "NONE_OPTION": "אין ווידג'ט"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "צבע מותג"
+ },
+ "SAVE_CHANGES": "שמור שינויים"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "תחום מותאם אישית",
+ "LABEL": "תחום מותאם אישית:",
+ "DESCRIPTION": "תוכל לארח את הפורטל שלך בדומיין מותאם אישית. לדוגמה, אם האתר שלך הוא yourdomain.com ואתה רוצה שהפורטל שלך יהיה זמין ב-docs.yourdomain.com, פשוט הזן זאת בשדה זה.",
+ "STATUS_DESCRIPTION": "הפורטל המותאם אישית שלך יתחיל לעבוד ברגע שהוא יאומת.",
+ "PLACEHOLDER": "דומיין מותאם אישית של פורטל",
+ "EDIT_BUTTON": "ערוך",
+ "ADD_BUTTON": "הוסף דומיין מותאם אישית",
+ "STATUS": {
+ "LIVE": "לחיות",
+ "PENDING": "ממתין לאימות",
+ "ERROR": "האימות נכשל"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "הוסף דומיין מותאם אישית",
+ "EDIT_HEADER": "ערוך דומיין מותאם אישית",
+ "ADD_CONFIRM_BUTTON_LABEL": "הוסף דומיין",
+ "EDIT_CONFIRM_BUTTON_LABEL": "עדכן דומיין",
+ "LABEL": "תחום מותאם אישית",
+ "PLACEHOLDER": "דומיין מותאם אישית של פורטל",
+ "ERROR": "דומיין מותאם אישית נדרש",
+ "FORMAT_ERROR": "אנא הזן כתובת URL חוקית של דומיין, לדוגמה docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "הגדרת DNS",
+ "DESCRIPTION": "היכנס לחשבון שלך אצל ספק ה-DNS שלך, והוסף רשומת CNAME עבור תת-הדומיין המצביע על chatwoot.help",
+ "COPY": "CNAME הועתק בהצלחה",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "שלח הוראות",
+ "DESCRIPTION": "אם אתה מעדיף שמישהו מצוות הפיתוח שלך יטפל בשלב זה, תוכל להזין כתובת דוא\"ל למטה, ואנו נשלח להם את ההוראות הנדרשות.",
+ "PLACEHOLDER": "הזן את הדוא\"ל שלהם",
+ "ERROR": "הזן כתובת דוא\"ל חוקית",
+ "SEND_BUTTON": "שלח"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "מחק את {portalName}",
+ "HEADER": "מחק את הפורטל",
+ "DESCRIPTION": "מחק לצמיתות פורטל זה. פעולה זו היא בלתי הפיכה",
+ "DIALOG": {
+ "HEADER": "בטוח שברצונך למחוק את {portalName}?",
+ "DESCRIPTION": "זוהי פעולה קבועה שלא ניתנת לביטול.",
+ "CONFIRM_BUTTON_LABEL": "מחק"
+ }
+ },
+ "EDIT_CONFIGURATION": "ערוך הגדרה"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "מראה",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "הסר"
+ },
+ "SAVE": "שמור שינויים"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "הפורטל נוצר בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן ליצור פורטל"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "הפורטל עודכן בהצלחה",
+ "ERROR_MESSAGE": "לא ניתן לעדכן פורטל"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "העלה מסמך PDF",
+ "DESCRIPTION": "העלה מסמך PDF כדי ליצור אוטומטית שאלות נפוצות באמצעות AI",
+ "DRAG_DROP_TEXT": "גרור ושחרר את קובץ ה-PDF שלך כאן, או לחץ כדי לבחור",
+ "SELECT_FILE": "בחר קובץ PDF",
+ "ADDITIONAL_CONTEXT_LABEL": "הקשר נוסף (אופציונלי)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "ספק כל הקשר או הוראות נוספות ליצירת שאלות נפוצות...",
+ "UPLOADING": "מעלה...",
+ "UPLOAD": "העלה וטפל",
+ "CANCEL": "ביטול",
+ "ERROR_INVALID_TYPE": "אנא בחר קובץ PDF חוקי",
+ "ERROR_FILE_TOO_LARGE": "גודל הקובץ חייב להיות קטן מ-512MB",
+ "ERROR_UPLOAD_FAILED": "העלאת ה-PDF נכשלה. אנא נסה שוב."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "מסמכי PDF",
+ "DESCRIPTION": "נהל מסמכי PDF שהועלו וצור מהם שאלות נפוצות",
+ "UPLOAD_PDF": "העלה PDF",
+ "UPLOAD_FIRST_PDF": "העלה את קובץ ה-PDF הראשון שלך",
+ "UPLOADED_BY": "הועלה על ידי",
+ "GENERATE_FAQS": "צור שאלות נפוצות",
+ "GENERATING": "יוצר...",
+ "CONFIRM_DELETE": "האם אתה בטוח שברצונך למחוק את {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "אין עדיין מסמכי PDF",
+ "DESCRIPTION": "העלה מסמכי PDF כדי ליצור אוטומטית שאלות נפוצות באמצעות AI"
+ },
+ "STATUS": {
+ "UPLOADED": "מוכן",
+ "PROCESSING": "מעבד",
+ "PROCESSED": "הושלם",
+ "FAILED": "נכשל"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "יצירת תוכן",
+ "DESCRIPTION": "העלה מסמכי PDF כדי ליצור אוטומטית תוכן שאלות נפוצות באמצעות AI",
+ "UPLOAD_TITLE": "העלה מסמך PDF",
+ "DRAG_DROP": "גרור ושחרר את קובץ ה-PDF שלך כאן, או לחץ כדי לבחור",
+ "SELECT_FILE": "בחר קובץ PDF",
+ "UPLOADING": "מעבד מסמך...",
+ "UPLOAD_SUCCESS": "המסמך עובד בהצלחה!",
+ "UPLOAD_ERROR": "העלאת המסמך נכשלה. אנא נסה שוב.",
+ "INVALID_FILE_TYPE": "אנא בחר קובץ PDF חוקי",
+ "FILE_TOO_LARGE": "גודל הקובץ חייב להיות קטן מ-512MB",
+ "GENERATED_CONTENT": "תוכן שאלות נפוצות שנוצר",
+ "PUBLISH_SELECTED": "פרסם נבחרים",
+ "PUBLISHING": "מפרסם...",
+ "FROM_DOCUMENT": "מתוך מסמך",
+ "NO_CONTENT": "אין תוכן שנוצר זמין. העלה מסמך PDF כדי להתחיל.",
+ "LOADING": "טוען תוכן שנוצר..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/inbox.json b/app/javascript/dashboard/i18n/locale/he/inbox.json
index 79fad6ef5..8412d2fcf 100644
--- a/app/javascript/dashboard/i18n/locale/he/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/he/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "תיבת הדואר הנכנס",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "כל ההתראות נטענו 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
+ "TITLE": "תיבת הדואר הנכנס שלי",
+ "DISPLAY_DROPDOWN": "הצג",
+ "LOADING": "מאחזר התראות",
+ "404": "אין התראות פעילות בקבוצה זו.",
+ "NO_NOTIFICATIONS": "אין התראות",
+ "NOTE": "התראות מכל תיבות הדואר הנכנס שאליהן נרשמת",
+ "NO_MESSAGES_AVAILABLE": "אופס! לא ניתן לאחזר הודעות",
+ "SNOOZED_UNTIL": "מושתק עד",
"SNOOZED_UNTIL_TOMORROW": "נמנם עד מחר",
"SNOOZED_UNTIL_NEXT_WEEK": "נמנם עד שבוע הבא"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "השתק התראה",
+ "DELETE": "מחק התראה",
+ "BACK": "חזור"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "אוזכרת בשיחה",
+ "CONVERSATION_CREATION": "נוצרה שיחה חדשה",
+ "CONVERSATION_ASSIGNMENT": "שיחה הוקצתה לך",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "הודעה חדשה בשיחה שהוקצתה",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "הודעה חדשה בשיחה שבה אתה משתתף",
+ "SLA_MISSED_FIRST_RESPONSE": "יעד SLA - תגובה ראשונה הוחמץ עבור שיחה",
+ "SLA_MISSED_NEXT_RESPONSE": "יעד SLA - תגובה הבאה הוחמץ עבור שיחה",
+ "SLA_MISSED_RESOLUTION": "יעד SLA - סגירה הוחמץ עבור שיחה"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "אוזכר",
+ "CONVERSATION_ASSIGNMENT": "הוקצה לך",
+ "CONVERSATION_CREATION": "שיחה חדשה",
+ "SLA_MISSED_FIRST_RESPONSE": "הפרת SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "הפרת SLA",
+ "SLA_MISSED_RESOLUTION": "הפרת SLA",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "הודעה חדשה",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "הודעה חדשה",
+ "SNOOZED_UNTIL": "מושתק למשך {time}",
+ "SNOOZED_ENDS": "ההשתקה הסתיימה"
+ },
+ "NO_CONTENT": "אין תוכן זמין",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "סמן כנקרא",
"MARK_AS_UNREAD": "סמן כלא נקרא",
"SNOOZE": "נודניק",
"DELETE": "מחק",
"MARK_ALL_READ": "סמן הכל כנקרא",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "DELETE_ALL": "מחק הכל",
+ "DELETE_ALL_READ": "מחק את כל הנקראים"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "מיין",
+ "DISPLAY": "הצג :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
- "PRIORITY": "Priority"
+ "NEWEST": "החדש ביותר",
+ "OLDEST": "הישן ביותר",
+ "PRIORITY": "עדיפות"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "נימנום",
"READ": "נקרא",
"LABELS": "תוויות",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "מזהה שיחה"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "ההתראה סומנה כנקראה",
+ "MARK_AS_UNREAD": "ההתראה סומנה כלא נקראה",
+ "SNOOZE": "ההתראה הושתקה",
+ "DELETE": "ההתראה נמחקה",
+ "MARK_ALL_READ": "כל ההתראות סומנו כנקראו",
+ "DELETE_ALL": "כל ההתראות נמחקו",
+ "DELETE_ALL_READ": "כל ההתראות שנקראו נמחקו"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "נדרש אישור מחדש",
+ "DESCRIPTION": "חיבור ה-WhatsApp שלך פג. אנא התחבר מחדש כדי להמשיך לקבל ולשלוח הודעות.",
+ "BUTTON_TEXT": "התחבר מחדש ל-WhatsApp",
+ "LOADING_FACEBOOK": "טוען SDK של Facebook...",
+ "SUCCESS": "WhatsApp חובר מחדש בהצלחה",
+ "ERROR": "ההתחברות מחדש ל-WhatsApp נכשלה. אנא נסה שוב.",
+ "WHATSAPP_APP_ID_MISSING": "מזהה האפליקציה של WhatsApp אינו מוגדר. אנא פנה למנהל המערכת שלך.",
+ "WHATSAPP_CONFIG_ID_MISSING": "מזהה תצורת WhatsApp אינו מוגדר. אנא פנה למנהל המערכת שלך.",
+ "CONFIGURATION_ERROR": "אירעה שגיאת תצורה במהלך האישור מחדש.",
+ "FACEBOOK_LOAD_ERROR": "טעינת ה-SDK של Facebook נכשלה. אנא נסה שוב.",
+ "TROUBLESHOOTING": {
+ "TITLE": "פתרון בעיות",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "אתה צריך גישת מנהל לחשבון העסקי של WhatsApp"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
index 6cd4e9c54..64e5f9a6c 100644
--- a/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "תיבות דואר נכנס",
- "SIDEBAR_TXT": "תיבת דואר נכנס
כאשר אתה מחבר אתר אינטרנט או דף פייסבוק ל-Chatwoot, זה נקרא תיבת דואר נכנס. אתה יכול לקבל תיבות דואר נכנס בלתי מוגבלות בחשבון Chatwoot שלך.
לחץ על הוסף תיבת דואר נכנס כדי לחבר אתר או דף פייסבוק.
בלוח המחוונים, תוכל לראות את כל השיחות מכל תיבות הדואר הנכנס שלך במקום אחד ולהגיב להן בכרטיסייה 'שיחות'.
תוכל גם לראות שיחות ספציפיות לתיבת דואר נכנס על ידי לחיצה על שם תיבת הדואר הנכנס בחלונית השמאלית של לוח המחוונים.
",
+ "DESCRIPTION": "ערוץ הוא אמצעי התקשורת שלקוח שלך בוחר כדי ליצור איתך אינטראקציה. תיבת דואר נכנס היא המקום שבו אתה מנהל אינטראקציות עבור ערוץ ספציפי. היא יכולה לכלול תקשורת ממקורות שונים כגון דוא\"ל, צ'אט חי ומדיה חברתית.",
+ "LEARN_MORE": "למד עוד על תיבות דואר נכנס",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "תיבת הדואר הנכנס שלך מנותקת. לא תקבל הודעות חדשות עד שתאשר אותה מחדש.",
+ "CLICK_TO_RECONNECT": "לחץ כאן כדי להתחבר מחדש.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "השלם הרשמה",
"LIST": {
"404": "אין תיבות דואר נכנס מצורפות לחשבון זה."
},
- "CREATE_FLOW": [
- {
- "title": "בחר ערוץ",
- "route": "settings_inbox_new",
- "body": "בחר את הספק שברצונך לשלב עם Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "בחר ערוץ",
+ "BODY": "בחר את הספק שברצונך לשלב עם Chatwoot."
},
- {
- "title": "צור תיבת דואר נכנס",
- "route": "settings_inboxes_page_channel",
- "body": "אמת את חשבונך וצור תיבת דואר נכנס."
+ "INBOX": {
+ "TITLE": "צור תיבת דואר נכנס",
+ "BODY": "אמת את חשבונך וצור תיבת דואר נכנס."
},
- {
- "title": "הוסף נציג",
- "route": "settings_inboxes_add_agents",
- "body": "הוסף נציגים לתיבת הדואר הנכנס שנוצרה."
+ "AGENT": {
+ "TITLE": "הוסף נציג",
+ "BODY": "הוסף נציגים לתיבת הדואר הנכנס שנוצרה."
},
- {
- "title": "וואלה!",
- "route": "settings_inbox_finish",
- "body": "אתם מוכנים לצאת לדרך!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "אתם מוכנים לצאת לדרך!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "שם תיבת הדואר הנכנס",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "בחר עמוד מהרשימה",
"INBOX_NAME": "שם תיבת הדואר הנכנס",
"ADD_NAME": "הוסף שם לתיבת הדואר הנכנס שלך",
- "PICK_NAME": "בחר שם בתיבת הדואר הנכנס שלך",
- "PICK_A_VALUE": "בחר ערך"
+ "PICK_NAME": "בחר שם לתיבת הדואר הנכנס שלך",
+ "PICK_A_VALUE": "בחר ערך",
+ "CREATE_INBOX": "צור תיבת דואר נכנס"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "המשך עם אינסטגרם",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "חבר את פרופיל האינסטגרם שלך",
+ "HELP": "כדי להוסיף את פרופיל האינסטגרם שלך כערוץ, עליך לאמת את פרופיל האינסטגרם שלך על ידי לחיצה על 'המשך עם אינסטגרם' ",
+ "ERROR_MESSAGE": "אירעה שגיאה בחיבור לאינסטגרם, אנא נסה שוב",
+ "ERROR_AUTH": "אירעה שגיאה בחיבור לאינסטגרם, אנא נסה שוב",
+ "NEW_INBOX_SUGGESTION": "חשבון אינסטגרם זה היה מקושר בעבר לתיבת דואר נכנס אחרת והועבר כעת לכאן. כל ההודעות החדשות יופיעו כאן. תיבת הדואר הנכנס הישנה לא תוכל יותר לשלוח או לקבל הודעות עבור חשבון זה.",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "כדי להוסיף את פרופיל הטוויטר שלך כערוץ, עליך לאמת את פרופיל הטוויטר שלך על ידי לחיצה על 'היכנס באמצעות טוויטר' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "כתובת אתר של Webhook",
- "PLACEHOLDER": "הזן את כתובת האתר שלך ל-Webhook",
+ "PLACEHOLDER": "אנא הזן את כתובת ה-Webhook URL שלך",
"ERROR": "אנא הכנס כתובת URL חוקית"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "דומיין אתר",
"PLACEHOLDER": "הזן את שם האתר שלך (למשל: Acme Inc)"
@@ -112,14 +141,14 @@
"ERROR": "שדה חובה"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "השתמש באימות מפתח API",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "אנא הזן את ה-API Key SID שלך",
"ERROR": "שדה חובה"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "LABEL": "סוד מפתח API",
+ "PLACEHOLDER": "אנא הזן את סוד מפתח ה-API שלך",
"ERROR": "שדה חובה"
},
"MESSAGING_SERVICE_SID": {
@@ -133,7 +162,7 @@
"ERROR": "אנא בחר את סוג הערוץ שלך"
},
"AUTH_TOKEN": {
- "LABEL": "Auth Token",
+ "LABEL": "אסימון אימות",
"PLACEHOLDER": "אנא הזן את ה-Twilio Auth Token שלך",
"ERROR": "שדה חובה"
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "מפתח API",
- "PLACEHOLDER": "נא הכנס את ה- Bandwith API Key שלך",
+ "PLACEHOLDER": "אנא הזן את מפתח ה-API של Bandwidth",
"ERROR": "שדה חובה"
},
"API_SECRET": {
"LABEL": "סוד API",
- "PLACEHOLDER": "נא הכנס את ה- Bandwith API Secret שלך",
+ "PLACEHOLDER": "אנא הזן את סוד ה-API של Bandwidth",
"ERROR": "שדה חובה"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "התחל לתמוך בלקוחות שלך באמצעות וואטסאפ.",
"PROVIDERS": {
"LABEL": "ספק API",
+ "WHATSAPP_EMBEDDED": "WhatsApp עסקי",
"TWILIO": "טוויליו",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "הגדרה מהירה דרך Meta",
+ "TWILIO_DESC": "התחבר באמצעות פרטי זיהוי של Twilio",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "בחר את ספק ה-API שלך",
+ "DESCRIPTION": "בחר את ספק ה-WhatsApp שלך. תוכל להתחבר ישירות דרך Meta שאינה דורשת הגדרה, או להתחבר דרך Twilio באמצעות פרטי החשבון שלך."
+ },
"INBOX_NAME": {
"LABEL": "שם תיבת הדואר הנכנס",
"PLACEHOLDER": "נא להזין שם תיבת דואר נכנס",
@@ -238,8 +274,8 @@
"ERROR": "אנא הכנס ערך תקין."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "נא הכנס verify token שברצונך להגדיר עבור facebook webhooks.",
+ "LABEL": "אסימון אימות Webhook",
+ "PLACEHOLDER": "הזן אסימון אימות שברצונך להגדיר עבור Webhooks של Facebook.",
"ERROR": "אנא הכנס ערך תקין."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "אסימון אימות Webhook"
},
"SUBMIT_BUTTON": "צור ערוץ וואטסאפ",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "הגדרה מהירה עם Meta",
+ "DESC": "השתמש בזרימת ההרשמה המשובצת של WhatsApp כדי לחבר במהירות מספרים חדשים. תועבר ל-Meta כדי להיכנס לחשבון WhatsApp העסקי שלך. גישת מנהל מערכת תעזור להפוך את ההגדרה לחלקה וקלה.",
+ "BENEFITS": {
+ "TITLE": "יתרונות ההרשמה המשובצת:",
+ "EASY_SETUP": "אין צורך בהגדרה ידנית",
+ "SECURE_AUTH": "אימות מאובטח מבוסס OAuth",
+ "AUTO_CONFIG": "הגדרת Webhook ומספר טלפון אוטומטית"
+ },
+ "LEARN_MORE": {
+ "TEXT": "כדי ללמוד עוד על ההרשמה המשולבת, התמחור והמגבלות, בקר ב- {link}.",
+ "LINK_TEXT": "קישור זה"
+ },
+ "SUBMIT_BUTTON": "התחבר עם WhatsApp עסקי",
+ "AUTH_PROCESSING": "מאמת עם Meta",
+ "WAITING_FOR_BUSINESS_INFO": "אנא השלם את הגדרת העסק בחלון Meta...",
+ "PROCESSING": "מגדיר את חשבון WhatsApp העסקי שלך",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "טוען SDK של Facebook...",
+ "CANCELLED": "הרשמת WhatsApp בוטלה",
+ "SUCCESS_TITLE": "חשבון WhatsApp עסקי מחובר!",
+ "WAITING_FOR_AUTH": "ממתין לאימות...",
+ "INVALID_BUSINESS_DATA": "התקבלו נתוני עסק לא חוקיים מ-Facebook. אנא נסה שוב.",
+ "SIGNUP_ERROR": "אירעה שגיאת הרשמה",
+ "AUTH_NOT_COMPLETED": "האימות לא הושלם. אנא הפעל מחדש את התהליך.",
+ "SUCCESS_FALLBACK": "חשבון WhatsApp עסקי הוגדר בהצלחה",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "זרימת הגדרה ידנית",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "לא הצלחנו לשמור את ערוץ הוואטסאפ"
}
},
+ "VOICE": {
+ "TITLE": "ערוץ קולי",
+ "DESC": "שלב את Twilio Voice והתחל לתמוך בלקוחות שלך באמצעות שיחות טלפון.",
+ "PHONE_NUMBER": {
+ "LABEL": "מספר טלפון",
+ "PLACEHOLDER": "הזן את מספר הטלפון שלך (לדוגמה: +1234567890)",
+ "ERROR": "אנא ספק מספר טלפון חוקי בפורמט E.164 (לדוגמה: +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "חשבון SID",
+ "PLACEHOLDER": "הזן את Twilio Account SID שלך",
+ "REQUIRED": "Account SID נדרש"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "אסימון אימות",
+ "PLACEHOLDER": "הזן את Twilio Auth Token שלך",
+ "REQUIRED": "אסימון אימות נדרש"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "הזן את Twilio API Key SID שלך",
+ "REQUIRED": "API Key SID נדרש"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "סוד מפתח API",
+ "PLACEHOLDER": "הזן את Twilio API Key Secret שלך",
+ "REQUIRED": "סוד מפתח API נדרש"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "הגדר כתובת URL זו כ-Voice URL במספר הטלפון ובאפליקציית TwiML שלך ב-Twilio.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "הגדר כתובת URL זו כ-Status Callback URL במספר הטלפון שלך ב-Twilio."
+ },
+ "SUBMIT_BUTTON": "צור ערוץ קולי",
+ "API": {
+ "ERROR_MESSAGE": "לא הצלחנו ליצור את הערוץ הקולי"
+ }
+ },
"API_CHANNEL": {
"TITLE": "ערוץ API",
"DESC": "שלב עם ערוץ API והתחל לתמוך בלקוחות שלך.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "כתובת אתר של Webhook",
- "SUBTITLE": "הגדר את כתובת האתר שבה ברצונך לקבל התקשרות חוזרת על אירועים.",
+ "SUBTITLE": "הגדר את כתובת ה-URL שבה תרצה לקבל קריאות חוזרות על אירועים.",
"PLACEHOLDER": "כתובת אתר של Webhook"
},
"SUBMIT_BUTTON": "צור ערוץ API",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "לא הצלחנו לשמור את ערוץ האימייל"
},
- "FINISH_MESSAGE": "התחל להעביר את המיילים שלך לכתובת הדוא\"ל הבאה."
+ "FINISH_MESSAGE": "התחל להעביר את המיילים שלך לכתובת הדוא\"ל הבאה.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "לחץ כאן",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "ערוץ LINE",
@@ -340,7 +451,59 @@
},
"AUTH": {
"TITLE": "בחר ערוץ",
- "DESC": "אנו תומכים בווידג'ט של צ'אט חי, עמוד פייסבוק, פרופיל טוויטר, WhatsApp, דוא\"ל וכו', כערוצי תקשורת. אם אתה רוצה לבנות ערוץ מותאם אישית, אתה יכול ליצור אותו באמצעות ערוץ ה-API. בחר ערוץ אחד מהאפשרויות מטה כדי להמשיך."
+ "DESC": "אנו תומכים בווידג'ט של צ'אט חי, עמוד פייסבוק, פרופיל טוויטר, WhatsApp, דוא\"ל וכו', כערוצי תקשורת. אם אתה רוצה לבנות ערוץ מותאם אישית, אתה יכול ליצור אותו באמצעות ערוץ ה-API. בחר ערוץ אחד מהאפשרויות מטה כדי להמשיך.",
+ "TITLE_NEXT": "השלם את ההגדרה",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "אתר אינטרנט",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "פייסבוק",
+ "DESCRIPTION": "חבר את דף הפייסבוק שלך"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "תמוך בלקוחות שלך ב-WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "אימייל",
+ "DESCRIPTION": "התחבר עם Gmail, Outlook או ספקים אחרים"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "שלב ערוץ SMS עם Twilio או bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "צור ערוץ מותאם אישית באמצעות ה-API שלנו"
+ },
+ "TELEGRAM": {
+ "TITLE": "טלגרם",
+ "DESCRIPTION": "הגדר ערוץ טלגרם באמצעות אסימון בוט"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "שלב את ערוץ Line שלך"
+ },
+ "INSTAGRAM": {
+ "TITLE": "אינסטגרם",
+ "DESCRIPTION": "חבר את חשבון האינסטגרם שלך"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "קול",
+ "DESCRIPTION": "שלב עם Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "סוכנים",
@@ -364,14 +527,22 @@
"TITLE": "אימייל של מיקרוסופט",
"DESCRIPTION": "לחץ על Sign in with Microsoft בכדי להתחיל. אתה תופנה למסך ההתחברות של Microsoft. ברגע שתאשר את בקשת ההרשאות, תופנה חזרה להגדרות תיבת הדואר.",
"EMAIL_PLACEHOLDER": "הכנס כתובת דוא\"ל",
- "HELP": "בכדי להוסיף חשבון Microsoft כערוץ, עליך להתחבר לחשבונך ע\"י לחיצה על 'Sign in with Microsoft' ",
+ "SIGN_IN": "היכנס עם Microsoft",
"ERROR_MESSAGE": "אירעה שגיאה בהתחברות ל- Microsoft, אנא נסה שנית"
+ },
+ "GOOGLE": {
+ "TITLE": "דוא\"ל Google",
+ "DESCRIPTION": "לחץ על כפתור 'היכנס עם Google' כדי להתחיל. תועבר לדף הכניסה לדוא\"ל. לאחר שתקבל את ההרשאות המבוקשות, תועבר בחזרה לשלב יצירת תיבת הדואר הנכנס.",
+ "SIGN_IN": "היכנס עם Google",
+ "EMAIL_PLACEHOLDER": "הכנס כתובת דוא\"ל",
+ "ERROR_MESSAGE": "אירעה שגיאה בחיבור ל-Google, אנא נסה שוב"
}
},
"DETAILS": {
"LOADING_FB": "מאמת אותך עם פייסבוק...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "משהו השתבש, אנא רענן את הדף...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
+ "ERROR_FB_UNAUTHORIZED": "אינך מורשה לבצע פעולה זו. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
"CREATING_CHANNEL": "יוצר את תיבת הדואר הנכנס שלך...",
"TITLE": "הגדר את פרטי תיבת הדואר הנכנס",
@@ -386,7 +557,10 @@
"MESSAGE": "כעת תוכל ליצור קשר עם הלקוחות שלך דרך הערוץ החדש שלך. תמיכה שמחה",
"BUTTON_TEXT": "קח אותי לשם",
"MORE_SETTINGS": "הגדרות נוספות",
- "WEBSITE_SUCCESS": "סיימת בהצלחה ליצור ערוץ אתר אינטרנט. העתק את הקוד המוצג למטה והדבק אותו באתר שלך. בפעם הבאה שלקוח ישתמש בצ'אט החי, השיחה תופיע אוטומטית בתיבת הדואר הנכנס שלך."
+ "WEBSITE_SUCCESS": "סיימת בהצלחה ליצור ערוץ אתר אינטרנט. העתק את הקוד המוצג למטה והדבק אותו באתר שלך. בפעם הבאה שלקוח ישתמש בצ'אט החי, השיחה תופיע אוטומטית בתיבת הדואר הנכנס שלך.",
+ "WHATSAPP_QR_INSTRUCTION": "סרוק את קוד ה-QR שלמעלה כדי לבדוק במהירות את תיבת הדואר הנכנס שלך ב-WhatsApp",
+ "MESSENGER_QR_INSTRUCTION": "סרוק את קוד ה-QR שלמעלה כדי לבדוק במהירות את תיבת הדואר הנכנס שלך ב-Facebook Messenger",
+ "TELEGRAM_QR_INSTRUCTION": "סרוק את קוד ה-QR שלמעלה כדי לבדוק במהירות את תיבת הדואר הנכנס שלך בטלגרם"
},
"REAUTH": "הרשאה מחדש",
"VIEW": "צפה",
@@ -405,21 +579,21 @@
"DISABLED": "כבוי"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "שם שולח",
+ "SUB_TEXT": "בחר את השם המוצג ללקוח שלך כאשר הוא מקבל הודעות דוא\"ל מהסוכנים שלך.",
+ "FOR_EG": "לדוגמה:",
"FRIENDLY": {
- "TITLE": "Friendly",
+ "TITLE": "ידידותי",
"FROM": "מ",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "הוסף את שם הסוכן ששלח את התשובה בשם השולח כדי להפוך אותו לידידותי."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "מקצועי",
+ "SUBTITLE": "השתמש רק בשם העסק שהוגדר כשם השולח בכותרת הדוא\"ל."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
+ "BUTTON_TEXT": "הגדר את שם העסק שלך",
+ "PLACEHOLDER": "הזן את שם העסק שלך",
"SAVE_BUTTON_TEXT": "שמור"
}
},
@@ -432,8 +606,10 @@
"DISABLED": "כבוי"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "מופעל",
- "DISABLED": "כבוי"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "אפשר"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "טופס צ'אט מקדים",
"BUSINESS_HOURS": "שעות פעילות",
"WIDGET_BUILDER": "בונה יישומונים",
- "BOT_CONFIGURATION": "הגדרות בוט"
+ "BOT_CONFIGURATION": "הגדרות בוט",
+ "ACCOUNT_HEALTH": "תקינות חשבון",
+ "CSAT": "CSAT",
+ "VOICE": "קול",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "נהל את חשבון WhatsApp שלך",
+ "DESCRIPTION": "סקור את מצב חשבון WhatsApp שלך, מגבלות הודעות ואיכות. עדכן הגדרות או פתור בעיות במידת הצורך",
+ "GO_TO_SETTINGS": "עבור למנהל העסקי של Meta",
+ "NO_DATA": "נתוני תקינות אינם זמינים",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "מספר טלפון לתצוגה",
+ "TOOLTIP": "מספר טלפון המוצג ללקוחות"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "שם העסק",
+ "TOOLTIP": "שם העסק שאומת על ידי WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "סטטוס שם לתצוגה",
+ "TOOLTIP": "סטטוס אימות שם העסק שלך"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "דירוג איכות",
+ "TOOLTIP": "דירוג איכות WhatsApp עבור חשבונך"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "דרגת מגבלת הודעות",
+ "TOOLTIP": "מגבלת הודעות יומית עבור חשבונך"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "מצב חשבון",
+ "TOOLTIP": "מצב הפעולה הנוכחי של חשבון WhatsApp שלך"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 לקוחות ל-24 שעות",
+ "TIER_1000": "1K לקוחות ל-24 שעות",
+ "TIER_1K": "1K לקוחות ל-24 שעות",
+ "TIER_10K": "10K לקוחות ל-24 שעות",
+ "TIER_100K": "100K לקוחות ל-24 שעות",
+ "TIER_UNLIMITED": "לקוחות ללא הגבלה ל-24 שעות",
+ "UNKNOWN": "דירוג אינו זמין"
+ },
+ "STATUSES": {
+ "APPROVED": "אושר",
+ "PENDING_REVIEW": "ממתין לבדיקה",
+ "AVAILABLE_WITHOUT_REVIEW": "זמין ללא בדיקה",
+ "REJECTED": "נדחה",
+ "DECLINED": "סורב",
+ "NON_EXISTS": "לא קיים"
+ },
+ "MODES": {
+ "SANDBOX": "ארגז חול (Sandbox)",
+ "LIVE": "לחיות"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "הגדרות",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "סקריפט מסנג'ר",
"MESSENGER_SUB_HEAD": "מקם את הכפתור הזה בתוך תג הגוף שלך",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "דומיינים מורשים",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "מפתח סודי",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "סוכנים",
"INBOX_AGENTS_SUB_TEXT": "הוסף או הסר נציגים מתיבת הדואר הנכנס הזו",
"AGENT_ASSIGNMENT": "שיוך שיחה",
@@ -485,50 +778,121 @@
"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": "אפשר שם סוכן בדוא\"ל",
"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": "שיחות ימשיכו באמצעות הדוא\"ל אם לאיש הקשר קיימת כתובת דוא\"ל תקנית.",
- "LOCK_TO_SINGLE_CONVERSATION": "נעל לשיחה בודדת",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "הפעל או השבת מספר שיחות עבור אותו איש קשר בתיבת הדואר הנכנס הזו",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "הגדרות תיבת דואר נכנס",
"INBOX_UPDATE_SUB_TEXT": "עדכן את הגדרות תיבת הדואר הנכנס שלך",
"AUTO_ASSIGNMENT_SUB_TEXT": "אפשר או השבת את ההקצאה האוטומטית של שיחות חדשות לסוכנים שנוספו לתיבת הדואר הנכנס הזו.",
"HMAC_VERIFICATION": "אימות זהות משתמש",
- "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
+ "HMAC_DESCRIPTION": "כדי לאמת את זהות המשתמש, תוכל להעביר `identifier_hash` עבור כל משתמש. תוכל ליצור גיבוב HMAC sha256 באמצעות ה-`identifier` עם המפתח המוצג כאן.",
+ "HMAC_LINK_TO_DOCS": "תוכל לקרוא עוד כאן.",
"HMAC_MANDATORY_VERIFICATION": "אכיפת אימות זהות משתמש",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
+ "HMAC_MANDATORY_DESCRIPTION": "אם מופעל, בקשות חסרות את ה-`identifier_hash` יידחו.",
"INBOX_IDENTIFIER": "מזהה תיבת דואר נכנס",
"INBOX_IDENTIFIER_SUB_TEXT": "השתמש ב-'inbox_identifier' המוצג כאן כדי לאמת את לקוחות ה-API שלך.",
"FORWARD_EMAIL_TITLE": "העבר לדואר אלקטרוני",
"FORWARD_EMAIL_SUB_TEXT": "התחל להעביר את המיילים שלך לכתובת הדוא\"ל הבאה.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "אפשר הודעות לאחר שהשיחה נפתרה",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "אפשר למשתמשי הקצה לשלוח הודעות גם לאחר פתרון השיחה.",
"WHATSAPP_SECTION_SUBHEADER": "מפתח API זה משמש לשילוב עם ממשקי ה-API של WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "הזן את המפתח המעודכן שישמש לשילוב עם ממשקי ה-API של WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "הזן את מפתח ה-API החדש שישמש לשילוב עם ממשקי ה-API של WhatsApp.",
"WHATSAPP_SECTION_TITLE": "מפתח API",
"WHATSAPP_SECTION_UPDATE_TITLE": "עדכון מפתח API",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "הזן את מפתח ה-API החדש כאן",
"WHATSAPP_SECTION_UPDATE_BUTTON": "עדכן",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "הרשמה משובצת של WhatsApp",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "תיבת דואר נכנס זו מחוברת באמצעות הרשמה משובצת של WhatsApp.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "תוכל להגדיר מחדש תיבת דואר נכנס זו כדי לעדכן את הגדרות WhatsApp העסקי שלך.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "הגדר מחדש",
+ "WHATSAPP_CONNECT_TITLE": "התחבר ל-WhatsApp עסקי",
+ "WHATSAPP_CONNECT_SUBHEADER": "שדרג להרשמה משובצת של WhatsApp לניהול קל יותר.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "חבר תיבת דואר נכנס זו ל-WhatsApp עסקי עבור תכונות משופרות וניהול קל יותר.",
+ "WHATSAPP_CONNECT_BUTTON": "התחבר",
+ "WHATSAPP_CONNECT_SUCCESS": "חובר בהצלחה ל-WhatsApp עסקי!",
+ "WHATSAPP_CONNECT_ERROR": "החיבור ל-WhatsApp עסקי נכשל. אנא נסה שוב.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp עסקי הוגדר מחדש בהצלחה!",
+ "WHATSAPP_RECONFIGURE_ERROR": "ההגדרה מחדש של WhatsApp עסקי נכשלה. אנא נסה שוב.",
+ "WHATSAPP_APP_ID_MISSING": "מזהה האפליקציה של WhatsApp אינו מוגדר. אנא פנה למנהל המערכת שלך.",
+ "WHATSAPP_CONFIG_ID_MISSING": "מזהה תצורת WhatsApp אינו מוגדר. אנא פנה למנהל המערכת שלך.",
+ "WHATSAPP_LOGIN_CANCELLED": "הכניסה ל-WhatsApp בוטלה. אנא נסה שוב.",
+ "WHATSAPP_WEBHOOK_TITLE": "אסימון אימות Webhook",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "אסימון זה משמש לאימות האותנטיות של נקודת הקצה של ה-Webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "סנכרן תבניות",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "סנכרן תבניות הודעות מ-WhatsApp באופן ידני כדי לעדכן את התבניות הזמינות שלך.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "סנכרן תבניות",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "סנכרון התבניות הופעל בהצלחה. העדכון עשוי להימשך כמה דקות.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "עדכון הגדרות טופס טרום צ'אט"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "מרכז עזרה",
+ "PLACEHOLDER": "בחר מרכז עזרה",
+ "SELECT_PLACEHOLDER": "בחר מרכז עזרה",
+ "NONE": "כלום",
+ "REMOVE": "הסר מרכז עזרה",
+ "SUB_TEXT": "צרף מרכז עזרה לתיבת הדואר הנכנס"
},
"AUTO_ASSIGNMENT": {
"MAX_ASSIGNMENT_LIMIT": "מגבלת הקצאה אוטומטית",
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "אנא הזן ערך גדול מ-0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "הגבלת המספר המרבי של שיחות מתיבת הדואר הנכנס הזו שניתן להקצות אוטומטית לסוכן"
},
+ "ASSIGNMENT": {
+ "TITLE": "שיוך שיחה",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "מחק מדיניות",
+ "POLICY_LABEL": "מדיניות הקצאה",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "פעיל",
+ "INACTIVE": "לא פעיל"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "נוצר מוקדם ביותר",
+ "LONGEST_WAITING": "המתנה הארוכה ביותר"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin (סבב)",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "לא נמצאו מדיניות הקצאה",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "ביטול",
+ "CONFIRM_DELETE": "מחק",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "הרשאה מחדש",
"SUBTITLE": "פג תוקף החיבור שלך לפייסבוק, אנא חבר מחדש את דף הפייסבוק שלך כדי להמשיך בשירותים",
@@ -561,6 +925,76 @@
"LABEL": "המבקרים צריכים לספק את שמם וכתובת האימייל שלהם לפני תחילת הצ'אט"
}
},
+ "CSAT": {
+ "TITLE": "אפשר CSAT",
+ "SUBTITLE": "הפעל אוטומטית סקרי CSAT בסוף השיחות כדי להבין כיצד לקוחות מרגישים לגבי חווית התמיכה שלהם. עקוב אחר מגמות שביעות רצון וזהה אזורים לשיפור לאורך זמן.",
+ "DISPLAY_TYPE": {
+ "LABEL": "סוג תצוגה"
+ },
+ "MESSAGE": {
+ "LABEL": "הודעה",
+ "PLACEHOLDER": "אנא הזן הודעה להצגה למשתמשים עם הטופס"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "שפה",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "חזור"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "כלל סקר",
+ "DESCRIPTION_PREFIX": "שלח את הסקר אם השיחה",
+ "DESCRIPTION_SUFFIX": "כל אחת מהתוויות",
+ "OPERATOR": {
+ "CONTAINS": "מכיל",
+ "DOES_NOT_CONTAINS": "לא מכיל"
+ },
+ "SELECT_PLACEHOLDER": "בחר תוויות"
+ },
+ "NOTE": "הערה: סקרי CSAT נשלחים פעם אחת בלבד לכל שיחה",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "הגדרות CSAT עודכנו בהצלחה",
+ "ERROR_MESSAGE": "לא הצלחנו לעדכן את הגדרות CSAT. אנא נסה שוב מאוחר יותר."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "הגדר את הזמינות שלך",
"SUBTITLE": "הגדר את הזמינות שלך בווידג'ט הצ'אט החי שלך",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "הודעה לא זמינה למבקרים",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "יום",
+ "AVAILABILITY": "זמינות",
+ "HOURS": "שעות",
"ENABLE": "אפשר זמינות ליום זה",
"UNAVAILABLE": "אינו זמין",
- "HOURS": "שעות",
"VALIDATION_ERROR": "שעת ההתחלה צריכה להיות לפני שעת הסגירה.",
"CHOOSE": "בחר"
},
@@ -606,7 +1042,8 @@
"LABEL": "סיסמה",
"PLACE_HOLDER": "סיסמה"
},
- "ENABLE_SSL": "הפעל SSL"
+ "ENABLE_SSL": "הפעל SSL",
+ "AUTH_MECHANISM": "אימות"
},
"MICROSOFT": {
"TITLE": "מיקרוסופט",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "ביום"
},
"WIDGET_COLOR_LABEL": "צבע יישומון",
- "WIDGET_BUBBLE_POSITION_LABEL": "מיקום בועת יישומון",
- "WIDGET_BUBBLE_TYPE_LABEL": "סוג בועת יישומון",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "סוג:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "דבר איתנו",
- "LABEL": "כותרת מפעיל בועות יישומון",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "דבר איתנו"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "ברירת מחדל",
- "CHAT": "צ'אט"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "זמן מענה טיפוסי תוך כמה דקות",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "מיקרוסופט",
- "OTHER_PROVIDERS": "ספקים אחרים"
+ "MICROSOFT": {
+ "TITLE": "מיקרוסופט",
+ "DESCRIPTION": "התחבר עם Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "התחבר עם Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "ספקים אחרים",
+ "DESCRIPTION": "התחבר עם ספקים אחרים"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "אתר אינטרנט",
+ "TWITTER_PROFILE": "טוויטר",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "אימייל",
+ "TELEGRAM": "טלגרם",
+ "LINE": "Line",
+ "API": "ערוץ API",
+ "INSTAGRAM": "אינסטגרם",
+ "TIKTOK": "TikTok",
+ "VOICE": "קול"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/index.js b/app/javascript/dashboard/i18n/locale/he/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/he/index.js
+++ b/app/javascript/dashboard/i18n/locale/he/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/he/integrationApps.json b/app/javascript/dashboard/i18n/locale/he/integrationApps.json
index e000b0a58..8972360c7 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "שליפת אינטגרציות",
- "NO_HOOK_CONFIGURED": "אין %{integrationId} אינטגרציות מוגדרות בחשבון זה.",
+ "NO_HOOK_CONFIGURED": "אין {integrationId} אינטגרציות מוגדרות בחשבון זה.",
"HEADER": "יישומים",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "חיפוש...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "מופעל",
"DISABLED": "כבוי"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "הוצאת קרס אינטגרציה",
"INBOX": "תיבת הדואר הנכנס",
+ "ACTIONS": "פעולות",
"DELETE": {
"BUTTON_TEXT": "מחק"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "בחר תיבת דואר"
},
"SUBMIT": "צור",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "ביטול"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "התנתק"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow היא פלטפורמה להבנת שפה טבעית שמקלה לעצב ולשלב ממשק משתמש לשיחה באפליקציה לנייד, באפליקציית האינטרנט, במכשיר, בבוט, במערכת התגובה הקולית האינטראקטיבית שלך וכן הלאה.
שילוב Dialogflow עם %{installationName} מאפשר לך להגדיר בוט Dialogflow עם תיבות הדואר הנכנס שלך, המאפשר לבוט לטפל בשאילתות בהתחלה ולמסור אותן לסוכן בעת הצורך. ניתן להשתמש ב-Dialogflow כדי להכשיר את הלידים, להפחית את עומס העבודה של סוכנים על ידי מתן שאלות נפוצות וכו'.
כדי להוסיף את Dialogflow, עליך ליצור חשבון שירות במסוף הפרויקט של גוגל ולשתף את האישורים. אנא עיין במסמכי Dialogflow למידע נוסף."
+ "DIALOGFLOW": "Dialogflow היא פלטפורמה לעיבוד שפה טבעית לבניית ממשקי שיחה. שילובה עם {installationName} מאפשר לבוטים לטפל בשאילתות תחילה ולהעביר אותן לסוכנים בעת הצורך. זה עוזר לאמת לידים ולהפחית את עומס העבודה של הסוכן על ידי מענה על שאלות נפוצות. כדי להוסיף את Dialogflow, צור חשבון שירות ב-Google Console ושתף את פרטי הכניסה. עיין בתיעוד לפרטים"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/integrations.json b/app/javascript/dashboard/i18n/locale/he/integrations.json
index 2e1023d20..420882e16 100644
--- a/app/javascript/dashboard/i18n/locale/he/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/he/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "מחק אינטגרציה של Shopify",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק את האינטגרציה של Shopify?"
+ },
+ "STORE_URL": {
+ "TITLE": "חבר חנות Shopify",
+ "LABEL": "כתובת URL של החנות",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "הזן את כתובת ה-myshopify.com של חנות Shopify שלך",
+ "CANCEL": "ביטול",
+ "SUBMIT": "חבר חנות"
+ },
+ "ERROR": "אירעה שגיאה בחיבור ל-Shopify. אנא נסה שוב או פנה לתמיכה אם הבעיה נמשכת."
+ },
"HEADER": "אינטגרציות",
+ "DESCRIPTION": "Chatwoot משתלב עם כלים ושירותים מרובים כדי לשפר את יעילות הצוות שלך. חקור את הרשימה למטה כדי להגדיר את האפליקציות המועדפות עליך.",
+ "LEARN_MORE": "למד עוד על אינטגרציות",
+ "LOADING": "מאחזר אינטגרציות",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain אינו מופעל בחשבונך.",
+ "CLICK_HERE_TO_CONFIGURE": "לחץ כאן כדי להגדיר",
+ "LOADING_CONSOLE": "טוען את קונסולת Captain...",
+ "FAILED_TO_LOAD_CONSOLE": "הטעינה של קונסולת Captain נכשלה. אנא רענן ונסה שוב."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "אירועים מנויים",
+ "LEARN_MORE": "למד עוד על Webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "ביטול",
"DESC": "אירועי Webhook מספקים לך מידע בזמן אמת על מה שקורה בחשבון Chatwoot שלך. אנא הזן כתובת אתר חוקית כדי להגדיר התקשרות חוזרת.",
@@ -16,12 +55,19 @@
"MESSAGE_UPDATED": "ההודעה עודכנה",
"WEBWIDGET_TRIGGERED": "ווידג'ט צ'אט חי נפתח על ידי המשתמש",
"CONTACT_CREATED": "צור קשר",
- "CONTACT_UPDATED": "איש קשר עודכן"
+ "CONTACT_UPDATED": "איש קשר עודכן",
+ "CONVERSATION_TYPING_ON": "הקלדה בשיחה מופעלת",
+ "CONVERSATION_TYPING_OFF": "הקלדה בשיחה מושבתת",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "שם Webhook",
+ "PLACEHOLDER": "הזן את שם ה-Webhook"
+ },
"END_POINT": {
"LABEL": "כתובת אתר של Webhook",
- "PLACEHOLDER": "דוגמה: https://example/api/webhook",
+ "PLACEHOLDER": "דוגמה: {webhookExampleURL}",
"ERROR": "אנא הכנס כתובת URL חוקית"
},
"EDIT_SUBMIT": "עדכון webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "לא הוגדרו webhooks עבור חשבון זה.",
"TITLE": "נהל webhooks",
- "TABLE_HEADER": [
- "נקודת קצה של Webhook",
- "פעולות"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "נקודת קצה של Webhook",
+ "ACTIONS": "פעולות"
+ }
},
"EDIT": {
"BUTTON_TEXT": "ערוך",
@@ -66,34 +112,35 @@
},
"CONFIRM": {
"TITLE": "אשר מחיקה",
- "MESSAGE": "האם אתה בטוח שתמחק את ה-webhook? (%{webhookURL})",
+ "MESSAGE": "האם אתה בטוח שתמחק את ה-webhook? ({webhookURL})",
"YES": "כן, מחק ",
"NO": "לא, השאר"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "מחק",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "מחק את האינטגרציה",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק את האינטגרציה? פעולה זו תוביל לאובדן גישה לשיחות במרחב העבודה שלך ב-Slack."
},
"HELP_TEXT": {
"TITLE": "שימוש ב-Slack Integration",
- "BODY": "
Chatwoot תסנכרן כעת את כל השיחות הנכנסות לערוץ שיחות-לקוח בתוך מקום העבודה הרפוי שלך.
משיב ל- שרשור שיחה בשיחות לקוח ערוץ רפוי ייצור תגובה חזרה ללקוח באמצעות chatwoot.
התחל את התשובות עם הערה: כדי ליצור הערות פרטיות במקום תשובות.
אם למשיב ב-slack יש פרופיל סוכן ב-chatwoot תחת אותו דוא\"ל, התשובות ישויכו בהתאם. p>
כאשר למשיב אין פרופיל סוכן משויך, התשובות ייעשו מפרופיל הבוט.
",
- "SELECTED": "selected"
+ "BODY": "באמצעות אינטגרציה זו, כל השיחות הנכנסות שלך יסונכרנו לערוץ ***{selectedChannelName}*** במרחב העבודה שלך ב-Slack. תוכל לנהל את כל שיחות הלקוחות שלך ישירות בתוך הערוץ ולעולם לא להחמיץ הודעה.\n\nלהלן התכונות העיקריות של האינטגרציה:\n\n**השב לשיחות מתוך Slack:** כדי להשיב לשיחה בערוץ Slack ***{selectedChannelName}***, פשוט הקלד את ההודעה שלך ושלח אותה כשרשור. זה ייצור תגובה חזרה ללקוח דרך Chatwoot. זה כזה פשוט!\n\n **צור הערות פרטיות:** אם ברצונך ליצור הערות פרטיות במקום תגובות, התחל את ההודעה שלך עם ***`note:`***. זה מבטיח שההודעה שלך תישאר פרטית ולא תהיה גלויה ללקוח.\n\n**שייך פרופיל סוכן:** אם לאדם שהשיב ב-Slack יש פרופיל סוכן ב-Chatwoot תחת אותו דוא\"ל, התגובות ישויכו לפרופיל הסוכן הזה באופן אוטומטי. משמעות הדבר היא שתוכל לעקוב בקלות מי אמר מה ומתי. מצד שני, כאשר למשיב אין פרופיל סוכן משויך, התגובות יופיעו מפרופיל הבוט ללקוח.",
+ "SELECTED": "נבחר"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "בחר ערוץ",
"UPDATE": "עדכן",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "חבר ערוץ",
+ "DESCRIPTION": "מרחב העבודה שלך ב-Slack מקושר כעת ל-Chatwoot. עם זאת, האינטגרציה אינה פעילה כרגע. כדי להפעיל את האינטגרציה ולחבר ערוץ ל-Chatwoot, אנא לחץ על הכפתור למטה.\n\n**הערה:** אם אתה מנסה לחבר ערוץ פרטי, הוסף את אפליקציית Chatwoot לערוץ Slack לפני שתמשיך בשלב זה.",
+ "ATTENTION_REQUIRED": "נדרשת תשומת לב",
+ "EXPIRED": "האינטגרציה שלך ב-Slack פגה. כדי להמשיך לקבל הודעות ב-Slack, אנא מחק את האינטגרציה וחבר מחדש את מרחב העבודה שלך."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "אירעה שגיאה בעדכון האינטגרציה, אנא נסה שוב",
+ "UPDATE_SUCCESS": "הערוץ מחובר בהצלחה",
+ "FAILED_TO_FETCH_CHANNELS": "אירעה שגיאה באחזור הערוצים מ-Slack, אנא נסה שוב"
},
"DYTE": {
"CLICK_HERE_TO_JOIN": "לחץ כאן בשביל להצטרף",
@@ -103,57 +150,79 @@
"CREATE_ERROR": "אירעה שגיאה ביצירת קישור לפגישה, אנא נסה שוב"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "סיוע AI",
+ "WITH_AI": " {option} עם AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "הצעת תגובה",
+ "SUMMARIZE": "סכם",
+ "REPHRASE": "שפר כתיבה",
+ "FIX_SPELLING_GRAMMAR": "תקן איות ודקדוק",
+ "SHORTEN": "קצר",
+ "EXPAND": "הרחב",
+ "MAKE_FRIENDLY": "שנה את טון ההודעה לידידותי",
+ "MAKE_FORMAL": "השתמש בטון רשמי",
+ "SIMPLIFY": "פשט",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "מקצועי",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "ידידותי"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "טיוטת תוכן",
+ "GENERATED_TITLE": "תוכן שנוצר",
+ "AI_WRITING": "AI כותב",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "השתמש בהצעה זו",
"CANCEL": "ביטול"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "שלב עם OpenAI",
+ "DESC": "הבא תכונות AI מתקדמות ללוח המחוונים שלך עם מודלי GPT של OpenAI. כדי להתחיל, הזן את מפתח ה-API מחשבון OpenAI שלך.",
+ "KEY_PLACEHOLDER": "הזן את מפתח ה-API של OpenAI שלך",
"BUTTONS": {
"NEED_HELP": "זקוק לעזרה?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "DISMISS": "סגור",
+ "FINISH": "סיים הגדרה"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "תוכל להגדיר את האינטגרציה של OpenAI מאוחר יותר בכל עת שתרצה.",
+ "SUCCESS_MESSAGE": "האינטגרציה של OpenAI הוגדרה בהצלחה"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "שפר עם AI",
+ "SUMMARY_TITLE": "סיכום עם AI",
+ "REPLY_TITLE": "הצעת תגובה עם AI",
+ "SUBTITLE": "תגובה משופרת תיווצר באמצעות AI, בהתבסס על הטיוטה הנוכחית שלך.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "טון",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "מקצועי",
+ "FRIENDLY": "ידידותי"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "צור",
+ "GENERATING": "יוצר...",
"CANCEL": "ביטול"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "אירעה שגיאה בעיבוד התוכן, אנא נסה שוב"
},
"DELETE": {
"BUTTON_TEXT": "מחק",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "הוסף אפליקציית לוח מחוונים חדשה",
"SIDEBAR_TXT": "אפליקציות לוח מחוונים
אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים של Chatwoot כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה בתוך לוח המחוונים כדי לספק מידע על המשתמש, ההזמנות שלו או היסטוריית התשלומים הקודמת שלו.
כאשר תטמיע את האפליקציה שלך באמצעות לוח המחוונים ב-Chatwoot, האפליקציה שלך תהיה קבל את ההקשר של השיחה והקשר כאירוע חלון. הטמיע מאזין לאירוע ההודעה בדף שלך כדי לקבל את ההקשר.
כדי להוסיף אפליקציית לוח מחוונים חדשה, לחץ על הלחצן 'הוסף אפליקציית לוח מחוונים חדשה'.
",
"DESCRIPTION": "אפליקציות לוח מחוונים מאפשרות לארגונים להטמיע אפליקציה בתוך לוח המחוונים כדי לספק את ההקשר לסוכני תמיכת לקוחות. תכונה זו מאפשרת לך ליצור אפליקציה באופן עצמאי ולהטמיע אותה כדי לספק מידע על המשתמש, ההזמנות שלהם או היסטוריית התשלומים הקודמת שלהם.",
+ "LEARN_MORE": "למד עוד על אפליקציות לוח מחוונים",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "אין עדיין אפליקציות לוח מחוונים מוגדרות בחשבון זה",
"LOADING": "מביא אפליקציות לוח מחוונים...",
- "TABLE_HEADER": [
- "שם",
- "נקודת קצה"
- ],
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "ENDPOINT": "נקודת קצה",
+ "ACTIONS": "פעולות"
+ },
"EDIT_TOOLTIP": "ערוך אפליקציה",
"DELETE_TOOLTIP": "מחק אפליקציה"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "כן, מחק את זה",
"CONFIRM_NO": "לא, שמור את זה",
"TITLE": "אשר מחיקה",
- "MESSAGE": "האם אתה בטוח שתמחק את האפליקציה - %{appName}?",
+ "MESSAGE": "האם אתה בטוח שתמחק את האפליקציה - {appName}?",
"API_SUCCESS": "אפליקציית לוח המחוונים נמחקה בהצלחה",
"API_ERROR": "לא הצלחנו למחוק את האפליקציה. אנא נסה שוב מאוחר יותר"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "מאחזר בעיות Linear...",
+ "LOADING_ERROR": "אירעה שגיאה באחזור בעיות Linear, אנא נסה שוב",
+ "CREATE": "צור",
+ "LINK": {
+ "SEARCH": "חפש בעיות",
+ "SELECT": "בחר בעיה",
+ "TITLE": "קישור",
+ "EMPTY_LIST": "לא נמצאו בעיות Linear",
+ "LOADING": "טוען",
+ "ERROR": "אירעה שגיאה באחזור בעיות Linear, אנא נסה שוב",
+ "LINK_SUCCESS": "הבעיה קושרה בהצלחה",
+ "LINK_ERROR": "אירעה שגיאה בקישור הבעיה, אנא נסה שוב",
+ "LINK_TITLE": "שיחה (#{conversationId}) עם {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "צור בעיות Linear משיחות, או קשר בעיות קיימות למעקב חלק.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "כותרת",
+ "PLACEHOLDER": "הזן כותרת",
+ "REQUIRED_ERROR": "כותרת שדה חובה"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "הזן תיאור"
+ },
+ "TEAM": {
+ "LABEL": "צוות",
+ "PLACEHOLDER": "בחר קבוצה",
+ "SEARCH": "חפש צוות",
+ "REQUIRED_ERROR": "צוות נדרש"
+ },
+ "ASSIGNEE": {
+ "LABEL": "מוקצה",
+ "PLACEHOLDER": "בחר מוקצה",
+ "SEARCH": "חפש מוקצה"
+ },
+ "PRIORITY": {
+ "LABEL": "עדיפות",
+ "PLACEHOLDER": "בחר עדיפות",
+ "SEARCH": "חפש עדיפות"
+ },
+ "LABEL": {
+ "LABEL": "תווית",
+ "PLACEHOLDER": "בחר תווית",
+ "SEARCH": "חפש תווית"
+ },
+ "STATUS": {
+ "LABEL": "מצב",
+ "PLACEHOLDER": "בחר סטטוס",
+ "SEARCH": "חפש סטטוס"
+ },
+ "PROJECT": {
+ "LABEL": "פרויקט",
+ "PLACEHOLDER": "בחר פרויקט",
+ "SEARCH": "חפש פרויקט"
+ }
+ },
+ "CREATE": "צור",
+ "CANCEL": "ביטול",
+ "CREATE_SUCCESS": "הבעיה נוצרה בהצלחה",
+ "CREATE_ERROR": "אירעה שגיאה ביצירת הבעיה, אנא נסה שוב",
+ "LOADING_TEAM_ERROR": "אירעה שגיאה באחזור הצוותים, אנא נסה שוב",
+ "LOADING_TEAM_ENTITIES_ERROR": "אירעה שגיאה באחזור ישויות הצוות, אנא נסה שוב"
+ },
+ "ISSUE": {
+ "STATUS": "מצב",
+ "PRIORITY": "עדיפות",
+ "ASSIGNEE": "מוקצה",
+ "LABELS": "תוויות",
+ "CREATED_AT": "נוצר ב- {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "בטל קישור",
+ "SUCCESS": "הקישור לבעיה בוטל בהצלחה",
+ "ERROR": "אירעה שגיאה בביטול קישור הבעיה, אנא נסה שוב"
+ },
+ "NO_LINKED_ISSUES": "לא נמצאו בעיות מקושרות",
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק את האינטגרציה?",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק את האינטגרציה?",
+ "CONFIRM": "כן, מחק",
+ "CANCEL": "ביטול"
+ },
+ "CTA": {
+ "TITLE": "התחבר ל-Linear",
+ "AGENT_DESCRIPTION": "מרחב העבודה Linear אינו מחובר. בקש ממנהל המערכת שלך לחבר מרחב עבודה כדי להשתמש באינטגרציה זו.",
+ "DESCRIPTION": "מרחב העבודה Linear אינו מחובר. לחץ על הכפתור למטה כדי לחבר את מרחב העבודה שלך כדי להשתמש באינטגרציה זו.",
+ "BUTTON_TEXT": "חבר מרחב עבודה Linear"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק את האינטגרציה של Notion?",
+ "MESSAGE": "מחיקת אינטגרציה זו תסיר את הגישה למרחב העבודה שלך ב-Notion ותפסיק את כל הפונקציונליות הקשורה.",
+ "CONFIRM": "כן, מחק",
+ "CANCEL": "ביטול"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "קפטן",
+ "HEADER_KNOW_MORE": "דע יותר",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "עוזרים",
+ "SWITCH_ASSISTANT": "החלף בין עוזרים",
+ "NEW_ASSISTANT": "צור עוזר",
+ "EMPTY_LIST": "לא נמצאו עוזרים, אנא צור אחד כדי להתחיל"
+ },
+ "COPILOT": {
+ "TITLE": "טייס משנה",
+ "TRY_THESE_PROMPTS": "נסה הנחיות אלה",
+ "PANEL_TITLE": "התחל עם Copilot",
+ "KICK_OFF_MESSAGE": "צריך סיכום מהיר, רוצה לבדוק שיחות קודמות, או לנסח תשובה טובה יותר? Copilot כאן כדי להאיץ את הדברים.",
+ "SEND_MESSAGE": "שלח הודעה...",
+ "EMPTY_MESSAGE": "אירעה שגיאה ביצירת התגובה. אנא נסה שוב.",
+ "LOADER": "קפטן חושב",
+ "YOU": "אתה",
+ "USE": "השתמש בזה",
+ "RESET": "איפוס",
+ "SHOW_STEPS": "הצג שלבים",
+ "SELECT_ASSISTANT": "בחר עוזר",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "סכם שיחה זו",
+ "CONTENT": "סכם את הנקודות העיקריות שנדונו בין הלקוח לסוכן התמיכה, כולל חששות הלקוח, שאלותיו והפתרונות או התשובות שסופקו על ידי סוכן התמיכה"
+ },
+ "SUGGEST": {
+ "LABEL": "הצע תשובה",
+ "CONTENT": "נתח את פניית הלקוח, ונסח תגובה המטפלת ביעילות בחששותיו או בשאלותיו. ודא שהתשובה ברורה, תמציתית ומספקת מידע מועיל."
+ },
+ "RATE": {
+ "LABEL": "דרג שיחה זו",
+ "CONTENT": "סקור את השיחה כדי לראות עד כמה היא עונה על צרכי הלקוח. שתף דירוג מתוך 5 בהתבסס על טון, בהירות ויעילות."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "שיחות בעדיפות גבוהה",
+ "CONTENT": "תן לי סיכום של כל השיחות הפתוחות בעדיפות גבוהה. כלול את מזהה השיחה, שם הלקוח (אם זמין), תוכן ההודעה האחרונה והסוכן שהוקצה. קבץ לפי סטטוס אם רלוונטי."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "רשום אנשי קשר",
+ "CONTENT": "הצג לי את רשימת 10 אנשי הקשר המובילים. כלול שם, דוא\"ל או מספר טלפון (אם זמין), זמן נראה אחרון, תגים (אם יש)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "אתה",
+ "ASSISTANT": "עוזר",
+ "MESSAGE_PLACEHOLDER": "הקלד הודעה...",
+ "HEADER": "מגרש משחקים",
+ "DESCRIPTION": "השתמש במגרש משחקים זה כדי לשלוח הודעות לעוזר שלך ולבדוק אם הוא מגיב בצורה מדויקת, מהירה ובטון שאתה מצפה לו.",
+ "CREDIT_NOTE": "הודעות שנשלחות כאן ייספרו למכסת הזיכויים של Captain שלך."
+ },
+ "PAYWALL": {
+ "TITLE": "שדרג כדי להשתמש ב-Captain AI",
+ "AVAILABLE_ON": "Captain אינו זמין בתוכנית החינמית.",
+ "UPGRADE_PROMPT": "שדרג את התוכנית שלך כדי לקבל גישה לעוזרים שלנו, ל-Copilot ועוד.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI זמין רק בתכניות הארגוניות.",
+ "UPGRADE_PROMPT": "שדרג את התוכנית שלך כדי לקבל גישה לעוזרים שלנו, ל-Copilot ועוד.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ },
+ "BANNER": {
+ "RESPONSES": "ניצלת יותר מ-80% ממגבלת התגובות שלך. כדי להמשיך להשתמש ב-Captain AI, אנא שדרג.",
+ "DOCUMENTS": "מגבלת המסמכים הושגה. שדרג כדי להמשיך להשתמש ב-Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "ביטול",
+ "CREATE": "צור",
+ "EDIT": "עדכן"
+ },
+ "ASSISTANTS": {
+ "HEADER": "עוזרים",
+ "NO_ASSISTANTS_AVAILABLE": "אין עוזרים זמינים בחשבונך.",
+ "ADD_NEW": "צור עוזר חדש",
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק את העוזר?",
+ "DESCRIPTION": "פעולה זו היא קבועה. מחיקת עוזר זה תסיר אותו מכל תיבות הדואר הנכנס המחוברות ותמחק לצמיתות את כל הידע שנוצר.",
+ "CONFIRM": "כן, מחק",
+ "SUCCESS_MESSAGE": "העוזר נמחק בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה במחיקת העוזר, אנא נסה שוב."
+ },
+ "FORM_DESCRIPTION": "מלא את הפרטים למטה כדי לתת שם לעוזר שלך, לתאר את מטרתו ולציין את המוצר שבו הוא יתמוך.",
+ "CREATE": {
+ "TITLE": "צור עוזר",
+ "SUCCESS_MESSAGE": "העוזר נוצר בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה ביצירת העוזר, אנא נסה שוב."
+ },
+ "FORM": {
+ "UPDATE": "עדכן",
+ "SECTIONS": {
+ "BASIC_INFO": "מידע בסיסי",
+ "SYSTEM_MESSAGES": "הודעות מערכת",
+ "INSTRUCTIONS": "הוראות",
+ "FEATURES": "מאפיינים",
+ "TOOLS": "כלים "
+ },
+ "NAME": {
+ "LABEL": "שם",
+ "PLACEHOLDER": "הזן שם עוזר",
+ "ERROR": "השם נדרש"
+ },
+ "TEMPERATURE": {
+ "LABEL": "טמפרטורת תגובה",
+ "DESCRIPTION": "התאם עד כמה התגובות של העוזר צריכות להיות יצירתיות או מגבילות. ערכים נמוכים יותר מייצרים תגובות ממוקדות ודטרמיניסטיות יותר, בעוד שערכים גבוהים יותר מאפשרים תוצאות יצירתיות ומגוונות יותר."
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "הזן תיאור עוזר",
+ "ERROR": "התיאור נדרש"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "שם מוצר",
+ "PLACEHOLDER": "הזן שם מוצר",
+ "ERROR": "שם המוצר נדרש"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "הודעת ברוך הבא",
+ "PLACEHOLDER": "הזן הודעת ברוך הבא"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "הודעת העברה",
+ "PLACEHOLDER": "הזן הודעת העברה"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "הודעת סגירה",
+ "PLACEHOLDER": "הזן הודעת סגירה"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "הוראות",
+ "PLACEHOLDER": "הזן הוראות לעוזר"
+ },
+ "FEATURES": {
+ "TITLE": "מאפיינים",
+ "ALLOW_CONVERSATION_FAQS": "צור שאלות נפוצות משיחות שנסגרו",
+ "ALLOW_MEMORIES": "לכוד פרטים מרכזיים כזיכרונות מאינטראקציות עם לקוחות.",
+ "ALLOW_CITATIONS": "כלול ציטוטים של מקורות בתגובות",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "עדכן את העוזר",
+ "SUCCESS_MESSAGE": "העוזר עודכן בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה בעדכון העוזר, אנא נסה שוב.",
+ "NOT_FOUND": "לא ניתן למצוא את העוזר. אנא נסה שוב."
+ },
+ "SETTINGS": {
+ "HEADER": "הגדרות",
+ "BASIC_SETTINGS": {
+ "TITLE": "הגדרות בסיסיות",
+ "DESCRIPTION": "התאם אישית את מה שהעוזר אומר כאשר הוא מסיים שיחה או מעביר אותה לבן אנוש."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "הגדרות מערכת",
+ "DESCRIPTION": "התאם אישית את מה שהעוזר אומר כאשר הוא מסיים שיחה או מעביר אותה לבן אנוש."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "הדברים המהנים",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "מעקות בטיחות",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "הנחיות תגובה",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "מחק עוזר",
+ "DESCRIPTION": "פעולה זו היא קבועה. מחיקת עוזר זה תסיר אותו מכל תיבות הדואר הנכנס המחוברות ותמחק לצמיתות את כל הידע שנוצר.",
+ "BUTTON_TEXT": "מחק את {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "ערוך עוזר",
+ "DELETE_ASSISTANT": "מחק עוזר",
+ "VIEW_CONNECTED_INBOXES": "הצג תיבות דואר נכנס מחוברות"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "אין עוזרים זמינים",
+ "SUBTITLE": "צור עוזר כדי לספק תגובות מהירות ומדויקות למשתמשים שלך. הוא יכול ללמוד ממאמרי העזרה שלך ומשיחות קודמות.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "עוזר קפטן",
+ "NOTE": "עוזר קפטן יוצר קשר ישיר עם לקוחות, לומד ממסמכי העזרה והשיחות הקודמות שלך, ומספק תגובות מיידיות ומדויקות. הוא מטפל בשאילתות הראשוניות, מספק פתרונות מהירים לפני העברה לסוכן בעת הצורך."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "מעקות בטיחות",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} פריט נבחר | {count} פריטים נבחרו",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "UNSELECT_ALL": "בטל בחירת הכל ({count})",
+ "BULK_DELETE_BUTTON": "מחק"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "מעקות בטיחות לדוגמה",
+ "ADD": "הוסף הכל",
+ "ADD_SINGLE": "הוסף את זה",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "הקלד מעקה בטיחות אחר..."
+ },
+ "NEW": {
+ "TITLE": "הוסף מעקה בטיחות",
+ "CREATE": "צור",
+ "CANCEL": "ביטול",
+ "PLACEHOLDER": "הקלד מעקה בטיחות אחר...",
+ "TEST_ALL": "בדוק הכל"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "חיפוש..."
+ },
+ "EMPTY_MESSAGE": "לא נמצאו מעקות בטיחות. צור או הוסף דוגמאות כדי להתחיל.",
+ "SEARCH_EMPTY_MESSAGE": "לא נמצאו מעקות בטיחות לחיפוש זה.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "מעקות בטיחות נוספו בהצלחה",
+ "ERROR": "אירעה שגיאה בהוספת מעקות בטיחות, אנא נסה שוב."
+ },
+ "UPDATE": {
+ "SUCCESS": "מעקות בטיחות עודכנו בהצלחה",
+ "ERROR": "אירעה שגיאה בעדכון מעקות בטיחות, אנא נסה שוב."
+ },
+ "DELETE": {
+ "SUCCESS": "מעקות בטיחות נמחקו בהצלחה",
+ "ERROR": "אירעה שגיאה במחיקת מעקות בטיחות, אנא נסה שוב."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "הנחיות תגובה",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} פריט נבחר | {count} פריטים נבחרו",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "UNSELECT_ALL": "בטל בחירת הכל ({count})",
+ "BULK_DELETE_BUTTON": "מחק"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "הנחיות תגובה לדוגמה",
+ "ADD": "הוסף הכל",
+ "ADD_SINGLE": "הוסף את זה",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "הקלד הנחיית תגובה אחרת..."
+ },
+ "NEW": {
+ "TITLE": "הוסף הנחיית תגובה",
+ "CREATE": "צור",
+ "CANCEL": "ביטול",
+ "PLACEHOLDER": "הקלד הנחיית תגובה אחרת...",
+ "TEST_ALL": "בדוק הכל"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "חיפוש..."
+ },
+ "EMPTY_MESSAGE": "לא נמצאו הנחיות תגובה. צור או הוסף דוגמאות כדי להתחיל.",
+ "SEARCH_EMPTY_MESSAGE": "לא נמצאו הנחיות תגובה לחיפוש זה.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "הנחיות תגובה נוספו בהצלחה",
+ "ERROR": "אירעה שגיאה בהוספת הנחיות תגובה, אנא נסה שוב."
+ },
+ "UPDATE": {
+ "SUCCESS": "הנחיות תגובה עודכנו בהצלחה",
+ "ERROR": "אירעה שגיאה בעדכון הנחיות תגובה, אנא נסה שוב."
+ },
+ "DELETE": {
+ "SUCCESS": "הנחיות תגובה נמחקו בהצלחה",
+ "ERROR": "אירעה שגיאה במחיקת הנחיות תגובה, אנא נסה שוב."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "תרחישים",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} פריט נבחר | {count} פריטים נבחרו",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "UNSELECT_ALL": "בטל בחירת הכל ({count})",
+ "BULK_DELETE_BUTTON": "מחק"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "תרחישים לדוגמה",
+ "ADD": "הוסף הכל",
+ "ADD_SINGLE": "הוסף את זה",
+ "TOOLS_USED": "כלים בשימוש:"
+ },
+ "NEW": {
+ "CREATE": "הוסף תרחיש",
+ "TITLE": "צור תרחיש",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "כותרת",
+ "PLACEHOLDER": "הזן שם לתרחיש",
+ "ERROR": "שם התרחיש נדרש"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "תאר כיצד והיכן תרחיש זה ישמש",
+ "ERROR": "תיאור התרחיש נדרש"
+ },
+ "INSTRUCTION": {
+ "LABEL": "כיצד לטפל",
+ "PLACEHOLDER": "תאר כיצד והיכן תרחיש זה יטופל",
+ "ERROR": "תוכן התרחיש נדרש"
+ },
+ "CREATE": "צור",
+ "CANCEL": "ביטול"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "ביטול",
+ "UPDATE": "עדכן שינויים"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "חיפוש..."
+ },
+ "EMPTY_MESSAGE": "לא נמצאו תרחישים. צור או הוסף דוגמאות כדי להתחיל.",
+ "SEARCH_EMPTY_MESSAGE": "לא נמצאו תרחישים לחיפוש זה.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "תרחישים נוספו בהצלחה",
+ "ERROR": "אירעה שגיאה בהוספת תרחישים, אנא נסה שוב."
+ },
+ "UPDATE": {
+ "SUCCESS": "תרחישים עודכנו בהצלחה",
+ "ERROR": "אירעה שגיאה בעדכון תרחישים, אנא נסה שוב."
+ },
+ "DELETE": {
+ "SUCCESS": "תרחישים נמחקו בהצלחה",
+ "ERROR": "אירעה שגיאה במחיקת תרחישים, אנא נסה שוב."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "מסמכים",
+ "ADD_NEW": "צור מסמך חדש",
+ "SELECTED": "{count} נבחרו",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "UNSELECT_ALL": "בטל בחירת הכל ({count})",
+ "BULK_DELETE_BUTTON": "מחק",
+ "BULK_SYNC_BUTTON": "רענן",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "כן, מחק הכל",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "נכשל"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "חיפוש..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "מעדכן...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "דף לא נמצא",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "שאלות נפוצות קשורות",
+ "DESCRIPTION": "שאלות נפוצות אלה נוצרו ישירות מהמסמך."
+ },
+ "FORM_DESCRIPTION": "הזן את כתובת ה-URL של המסמך כדי להוסיף אותו כמקור ידע ובחר את העוזר לשייך אליו.",
+ "CREATE": {
+ "TITLE": "הוסף מסמך",
+ "SUCCESS_MESSAGE": "המסמך נוצר בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה ביצירת המסמך, אנא נסה שוב."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "סוג מסמך",
+ "URL": "כתובת URL",
+ "PDF": "קובץ PDF"
+ },
+ "URL": {
+ "LABEL": "כתובת URL",
+ "PLACEHOLDER": "הזן את כתובת ה-URL של המסמך",
+ "ERROR": "אנא ספק כתובת URL חוקית למסמך"
+ },
+ "PDF_FILE": {
+ "LABEL": "קובץ PDF",
+ "CHOOSE_FILE": "בחר קובץ PDF",
+ "ERROR": "אנא בחר קובץ PDF",
+ "HELP_TEXT": "גודל קובץ מרבי: 10MB",
+ "INVALID_TYPE": "אנא בחר קובץ PDF חוקי",
+ "TOO_LARGE": "גודל הקובץ חורג מהמגבלה של 10MB"
+ },
+ "NAME": {
+ "LABEL": "שם מסמך (אופציונלי)",
+ "PLACEHOLDER": "הזן שם למסמך"
+ }
+ },
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק את המסמך?",
+ "DESCRIPTION": "פעולה זו היא קבועה. מחיקת מסמך זה תמחק לצמיתות את כל הידע שנוצר.",
+ "CONFIRM": "כן, מחק",
+ "SUCCESS_MESSAGE": "המסמך נמחק בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה במחיקת המסמך, אנא נסה שוב."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "הצג תגובות קשורות",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "מחק מסמך"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "אין מסמכים זמינים",
+ "SUBTITLE": "מסמכים משמשים את העוזר שלך ליצירת שאלות נפוצות. תוכל לייבא מסמכים כדי לספק הקשר לעוזר שלך.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "מסמך קפטן",
+ "NOTE": "מסמך בקפטן משמש כמקור ידע עבור העוזר. על ידי חיבור מרכז העזרה או המדריכים שלך, קפטן יכול לנתח את התוכן ולספק תגובות מדויקות לשאילתות לקוחות."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "כלים",
+ "ADD_NEW": "צור כלי חדש",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "אין כלים מותאמים אישית זמינים",
+ "SUBTITLE": "צור כלים מותאמים אישית כדי לחבר את העוזר שלך לממשקי API ושירותים חיצוניים, מה שמאפשר לו לאחזר נתונים ולבצע פעולות בשמך.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "כלים מותאמים אישית",
+ "NOTE": "כלים מותאמים אישית מאפשרים לעוזר שלך ליצור אינטראקציה עם ממשקי API ושירותים חיצוניים. צור כלים לאחזור נתונים, ביצוע פעולות או שילוב עם המערכות הקיימות שלך כדי לשפר את יכולות העוזר שלך."
+ }
+ },
+ "FORM_DESCRIPTION": "הגדר את הכלי המותאם אישית שלך כדי להתחבר לממשקי API חיצוניים",
+ "OPTIONS": {
+ "EDIT_TOOL": "ערוך כלי",
+ "DELETE_TOOL": "מחק כלי"
+ },
+ "CREATE": {
+ "TITLE": "צור כלי מותאם אישית",
+ "SUCCESS_MESSAGE": "הכלי המותאם אישית נוצר בהצלחה",
+ "ERROR_MESSAGE": "יצירת הכלי המותאם אישית נכשלה"
+ },
+ "EDIT": {
+ "TITLE": "ערוך כלי מותאם אישית",
+ "SUCCESS_MESSAGE": "הכלי המותאם אישית עודכן בהצלחה",
+ "ERROR_MESSAGE": "עדכון הכלי המותאם אישית נכשל"
+ },
+ "DELETE": {
+ "TITLE": "מחק כלי מותאם אישית",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק כלי מותאם אישית זה? לא ניתן לבטל פעולה זו.",
+ "CONFIRM": "כן, מחק",
+ "SUCCESS_MESSAGE": "הכלי המותאם אישית נמחק בהצלחה",
+ "ERROR_MESSAGE": "מחיקת הכלי המותאם אישית נכשלה"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "פתח חיוב",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "שם כלי",
+ "PLACEHOLDER": "בדיקת הזמנה",
+ "ERROR": "שם הכלי נדרש",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור",
+ "PLACEHOLDER": "בודק פרטי הזמנה לפי מזהה הזמנה"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "שיטה"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "כתובת URL של נקודת קצה",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "כתובת URL חוקית נדרשת"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "סוג אימות"
+ },
+ "AUTH_TYPES": {
+ "NONE": "כלום",
+ "BEARER": "אסימון נושא (Bearer Token)",
+ "BASIC": "אימות בסיסי",
+ "API_KEY": "מפתח API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "אסימון נושא (Bearer Token)",
+ "BEARER_TOKEN_PLACEHOLDER": "הזן את אסימון הנושא שלך",
+ "USERNAME": "שם משתמש",
+ "USERNAME_PLACEHOLDER": "הזן שם משתמש",
+ "PASSWORD": "סיסמה",
+ "PASSWORD_PLACEHOLDER": "הזן סיסמה",
+ "API_KEY": "שם כותרת (Header)",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "ערך כותרת (Header)",
+ "API_VALUE_PLACEHOLDER": "הזן ערך מפתח API"
+ },
+ "PARAMETERS": {
+ "LABEL": "פרמטרים",
+ "HELP_TEXT": "הגדר את הפרמטרים שיחולצו משאילתות משתמשים"
+ },
+ "ADD_PARAMETER": "הוסף פרמטר",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "שם פרמטר (לדוגמה, order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "סוג"
+ },
+ "PARAM_TYPES": {
+ "STRING": "מחרוזת",
+ "NUMBER": "מספר",
+ "BOOLEAN": "בוליאני",
+ "ARRAY": "מערך",
+ "OBJECT": "אובייקט"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "תיאור הפרמטר"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "נדרש"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "תבנית גוף בקשה (אופציונלי)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "תבנית תגובה (אופציונלי)",
+ "PLACEHOLDER": "סטטוס הזמנה {'{{'} order_id {'}}'}: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "שם הפרמטר נדרש"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "שאלות נפוצות",
+ "PENDING_FAQS": "שאלות נפוצות ממתינות",
+ "ADD_NEW": "צור שאלות נפוצות חדשות",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "שיחה #{id}"
+ },
+ "SELECTED": "{count} נבחרו",
+ "SELECT_ALL": "בחר הכל ({count})",
+ "UNSELECT_ALL": "בטל בחירת הכל ({count})",
+ "SEARCH_PLACEHOLDER": "חפש שאלות נפוצות...",
+ "BULK_APPROVE_BUTTON": "אשר",
+ "BULK_DELETE_BUTTON": "מחק",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "שאלות נפוצות אושרו בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה באישור השאלות הנפוצות, אנא נסה שוב."
+ },
+ "BULK_DELETE": {
+ "TITLE": "מחק שאלות נפוצות?",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק את השאלות הנפוצות שנבחרו? לא ניתן לבטל פעולה זו.",
+ "CONFIRM": "כן, מחק הכל",
+ "SUCCESS_MESSAGE": "שאלות נפוצות נמחקו בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה במחיקת השאלות הנפוצות, אנא נסה שוב."
+ },
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך למחוק את השאלות הנפוצות?",
+ "DESCRIPTION": "",
+ "CONFIRM": "כן, מחק",
+ "SUCCESS_MESSAGE": "השאלות הנפוצות נמחקו בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה במחיקת השאלות הנפוצות, אנא נסה שוב."
+ },
+ "FILTER": {
+ "ASSISTANT": "עוזר: {selected}",
+ "STATUS": "סטטוס: {selected}",
+ "ALL_ASSISTANTS": "הכל"
+ },
+ "STATUS": {
+ "TITLE": "מצב",
+ "PENDING": "ממתין ל",
+ "APPROVED": "אושר",
+ "ALL": "הכל"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "קפטן מצא כמה שאלות נפוצות שהלקוחות שלך חיפשו.",
+ "ACTION": "לחץ כאן כדי לסקור"
+ },
+ "FORM_DESCRIPTION": "הוסף שאלה ותשובה מתאימה לבסיס הידע ובחר את העוזר שאליו יש לשייך אותה.",
+ "CREATE": {
+ "TITLE": "הוסף שאלות נפוצות",
+ "SUCCESS_MESSAGE": "התגובה נוספה בהצלחה.",
+ "ERROR_MESSAGE": "אירעה שגיאה בהוספת התגובה. אנא נסה שוב."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "שאלה",
+ "PLACEHOLDER": "הזן את השאלה כאן",
+ "ERROR": "אנא ספק שאלה חוקית."
+ },
+ "ANSWER": {
+ "LABEL": "תשובה",
+ "PLACEHOLDER": "הזן את התשובה כאן",
+ "ERROR": "אנא ספק תשובה חוקית."
+ }
+ },
+ "EDIT": {
+ "TITLE": "עדכן את השאלות הנפוצות",
+ "SUCCESS_MESSAGE": "השאלות הנפוצות עודכנו בהצלחה",
+ "ERROR_MESSAGE": "אירעה שגיאה בעדכון השאלות הנפוצות, אנא נסה שוב",
+ "APPROVE_SUCCESS_MESSAGE": "השאלות הנפוצות סומנו כמאושרות"
+ },
+ "OPTIONS": {
+ "APPROVE": "אשר",
+ "EDIT_RESPONSE": "ערוך",
+ "DELETE_RESPONSE": "מחק"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "לא נמצאו שאלות נפוצות",
+ "NO_PENDING_TITLE": "אין עוד שאלות נפוצות ממתינות לסקור",
+ "SUBTITLE": "שאלות נפוצות עוזרות לעוזר שלך לספק תשובות מהירות ומדויקות לשאלות של הלקוחות שלך. הן יכולות להיווצר אוטומטית מהתוכן שלך או שניתן להוסיף אותן באופן ידני.",
+ "CLEAR_SEARCH": "נקה מסננים פעילים",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "שאלות נפוצות של קפטן",
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "תיבות דואר נכנס מחוברות",
+ "ADD_NEW": "חבר תיבת דואר נכנס חדשה",
+ "OPTIONS": {
+ "DISCONNECT": "התנתק"
+ },
+ "DELETE": {
+ "TITLE": "האם אתה בטוח שברצונך לנתק את תיבת הדואר הנכנס?",
+ "DESCRIPTION": "",
+ "CONFIRM": "כן, מחק",
+ "SUCCESS_MESSAGE": "תיבת הדואר הנכנס נותקה בהצלחה.",
+ "ERROR_MESSAGE": "אירעה שגיאה בניצוק תיבת הדואר הנכנס, אנא נסה שוב."
+ },
+ "FORM_DESCRIPTION": "בחר תיבת דואר נכנס להתחברות עם העוזר.",
+ "CREATE": {
+ "TITLE": "חבר תיבת דואר נכנס",
+ "SUCCESS_MESSAGE": "תיבת הדואר הנכנס חוברו בהצלחה.",
+ "ERROR_MESSAGE": "אירעה שגיאה בחיבור תיבת הדואר הנכנס. אנא נסה שוב."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "תיבת הדואר הנכנס",
+ "PLACEHOLDER": "בחר את תיבת הדואר הנכנס לפריסת העוזר.",
+ "ERROR": "בחירת תיבת דואר נכנס נדרשת."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "אין תיבות דואר נכנס מחוברות",
+ "SUBTITLE": "חיבור תיבת דואר נכנס מאפשר לעוזר לטפל בשאלות ראשוניות של הלקוחות שלך לפני העברתן אליך."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
index 311fc3589..d1317bfb7 100644
--- a/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/he/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "תוויות",
"HEADER_BTN_TXT": "הוסף תווית",
"LOADING": "מביא תוויות",
+ "DESCRIPTION": "תוויות עוזרות לך לסווג ולתעדף שיחות ולידים. תוכל להקצות תווית לשיחה או לאיש קשר באמצעות החלונית הצדדית.",
+ "LEARN_MORE": "למד עוד על תוויות",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "חפש תוויות...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "אין פריטים התואמים לשאילתה זו",
- "SIDEBAR_TXT": "תוויות
תוויות עוזרות לך לסווג שיחות ולתעדף אותן. אתה יכול להקצות תווית לשיחה מהלוח הצדדי.
תוויות קשורות לחשבון וניתן להשתמש בהן כדי ליצור זרימות עבודה מותאמות אישית בארגון שלך. אתה יכול להקצות צבע מותאם אישית לתווית, זה מקל על זיהוי התווית. תוכל להציג את התווית בסרגל הצד כדי לסנן את השיחות בקלות.
",
"LIST": {
"404": "אין תוויות זמינות בחשבון זה.",
"TITLE": "נהל תוויות",
"DESC": "תוויות מאפשרות לך לקבץ את השיחות יחד.",
- "TABLE_HEADER": [
- "שם",
- "תיאור",
- "צֶבַע"
- ]
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "DESCRIPTION": "תיאור",
+ "COLOR": "צֶבַע",
+ "ACTION": "פעולות"
+ }
},
"FORM": {
"NAME": {
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "הוסף תווית לשיחה",
+ "MULTIPLE_SUGGESTION": "בחר תווית זו",
+ "DESELECT": "בטל בחירת תווית",
+ "DISMISS": "בטל הצעה"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "סגור",
+ "ADD_SELECTED_LABELS": "הוסף תוויות שנבחרו",
+ "ADD_SELECTED_LABEL": "הוסף תווית שנבחרה",
+ "ADD_ALL_LABELS": "הוסף את כל התוויות",
+ "SUGGESTED_LABELS": "תוויות מוצעות"
},
"ADD": {
"TITLE": "הוסף תווית",
diff --git a/app/javascript/dashboard/i18n/locale/he/login.json b/app/javascript/dashboard/i18n/locale/he/login.json
index f183ab730..b9195113e 100644
--- a/app/javascript/dashboard/i18n/locale/he/login.json
+++ b/app/javascript/dashboard/i18n/locale/he/login.json
@@ -3,7 +3,7 @@
"TITLE": "התחבר ל Woot",
"EMAIL": {
"LABEL": "אימייל",
- "PLACEHOLDER": "מייל לדוגמא: someone@example.com",
+ "PLACEHOLDER": "example@companyname.com",
"ERROR": "נא הכנס כתובת דוא\"ל תקינה"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "שכחת את הסיסמה?",
"CREATE_NEW_ACCOUNT": "צור חשבון",
- "SUBMIT": "התחבר"
+ "SUBMIT": "התחבר",
+ "SAML": {
+ "LABEL": "התחבר באמצעות SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "הזן את הדוא\"ל הארגוני שלך כדי לגשת לארגון שלך",
+ "BACK_TO_LOGIN": "התחבר באמצעות סיסמה",
+ "WORK_EMAIL": {
+ "LABEL": "דוא\"ל ארגוני",
+ "PLACEHOLDER": "הזן את הדוא\"ל הארגוני שלך"
+ },
+ "SUBMIT": "המשך עם SSO",
+ "API": {
+ "ERROR_MESSAGE": "אימות SSO נכשל. אנא בדוק את פרטי הכניסה שלך ונסה שוב."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/macros.json b/app/javascript/dashboard/i18n/locale/he/macros.json
index 5e3d06d83..f985ad512 100644
--- a/app/javascript/dashboard/i18n/locale/he/macros.json
+++ b/app/javascript/dashboard/i18n/locale/he/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "מאקרו",
+ "DESCRIPTION": "מאקרו הוא קבוצה של פעולות שמורות המסייעות לסוכני שירות לקוחות להשלים משימות בקלות. הסוכנים יכולים להגדיר קבוצה של פעולות כמו תיוג שיחה בתווית, שליחת תמלול דוא\"ל, עדכון תכונה מותאמת אישית וכו', והם יכולים להפעיל פעולות אלה בלחיצה אחת.",
+ "LEARN_MORE": "למד עוד על מאקרואים",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "הוסף מאקרו חדש",
"HEADER_BTN_TXT_SAVE": "שמור מאקרו",
"LOADING": "מביא פקודות מאקרו",
- "SIDEBAR_TXT": "פקודות מאקרו
מאקרו הוא קבוצה של פעולות שמורות המסייעות לסוכני שירות לקוחות לבצע משימות בקלות. הסוכנים יכולים להגדיר קבוצה של פעולות כמו תיוג שיחה עם תווית, שליחת תמלול דוא\"ל, עדכון תכונה מותאמת אישית וכו', והם יכולים להפעיל את הפעולות הללו בלחיצה אחת. כאשר הסוכנים מפעילים את המאקרו, הפעולות יבוצעו ברצף בסדר שהן מוגדרות. מאקרו משפרים את הפרודוקטיביות ומגדילים את העקביות בפעולות.
מאקרו יכול להועיל בשתי דרכים.
כסוכן מסייע: אם סוכן מבצע קבוצה של פעולות מספר פעמים, הוא יכול לשמור אותה כמאקרו ולבצע את כל הפעולות יחד באמצעות לחיצה אחת.
p>כאפשרות להצטרף לחבר צוות: כל סוכן צריך לבצע בדיקות/פעולות רבות ושונות במהלך כל שיחה. הכניסה לחבר צוות תמיכה חדש תהיה קלה אם פקודות מאקרו מוגדרות מראש זמינות בחשבון. במקום לתאר כל שלב בפירוט, המנהל/ראש הצוות יכול להצביע על פקודות המאקרו המשמשות בתרחישים שונים.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "משהו השתבש. אנא נסה שוב",
"ORDER_INFO": "פקודות מאקרו יפעלו לפי הסדר שתוסיף את הפעולות שלך. תוכל לסדר אותם מחדש על ידי גרירתם על ידי הידית לצד כל צומת.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "שם",
- "נוצר על ידי",
- "עודכן לאחרונה על ידי",
- "רְאוּת"
- ],
+ "TABLE_HEADER": {
+ "NAME": "שם",
+ "CREATED BY": "נוצר על ידי",
+ "LAST_UPDATED_BY": "עודכן לאחרונה על ידי",
+ "VISIBILITY": "רְאוּת",
+ "ACTIONS": "פעולות"
+ },
"404": "לא נמצאו פקודות מאקרו"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "אירעה שגיאה במחיקת המאקרו. אנא נסה שוב מאוחר יותר"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "ערוך מאקרו",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "נראות מאקרו",
"GLOBAL": {
"LABEL": "ציבורי",
- "DESCRIPTION": "מאקרו זה זמין באופן ציבורי עבור כל הסוכנים בחשבון זה."
+ "DESCRIPTION": "מאקרו זה זמין באופן ציבורי עבור כל הסוכנים בחשבון זה.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "פרטי",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "לבצע",
"PREVIEW": "תצוגה מקדימה מאקרו",
"EXECUTED_SUCCESSFULLY": "המאקרו הופעל בהצלחה"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "מפתח תכונה נדרש",
+ "FILTER_OPERATOR_REQUIRED": "אופרטור מסנן נדרש",
+ "VALUE_REQUIRED": "חובה ערך",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "הערך חייב להיות בין 1 ל-998",
+ "ACTION_PARAMETERS_REQUIRED": "פרמטרי פעולה נדרשים",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "נדרש לפחות תנאי אחד",
+ "ATLEAST_ONE_ACTION_REQUIRED": "נדרשת לפחות פעולה אחת"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "הקצה צוות",
+ "ASSIGN_AGENT": "הקצה סוכן",
+ "ADD_LABEL": "הוסף תווית",
+ "REMOVE_LABEL": "הסר תווית",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "כלום",
+ "LOW": "נמוכה",
+ "MEDIUM": "בינונית",
+ "HIGH": "גבוהה",
+ "URGENT": "דחופה"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/mfa.json b/app/javascript/dashboard/i18n/locale/he/mfa.json
new file mode 100644
index 000000000..bf7bc87c4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "סטטוס אימות",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "מופעל",
+ "DISABLED": "כבוי",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "חשבונך מוגן באמצעות שכבת אבטחה נוספת",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "שפר את אבטחת חשבונך",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "סרוק קוד QR באמצעות אפליקציית האימות שלך",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "טוען...",
+ "MANUAL_ENTRY": "לא מצליח לסרוק? הזן קוד ידנית",
+ "SECRET_KEY": "מפתח סודי",
+ "COPY": "עותק",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "אמת והמשך",
+ "CANCEL": "ביטול",
+ "ERROR_STARTING": "אימות רב-שלבי (MFA) אינו מופעל. אנא פנה למנהל המערכת.",
+ "INVALID_CODE": "קוד אימות לא חוקי",
+ "SECRET_COPIED": "המפתח הסודי הועתק ללוח",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "שמור את קודי הגיבוי שלך",
+ "DESCRIPTION": "שמור קודים אלה בבטחה. ניתן להשתמש בכל אחד מהם פעם אחת אם תאבד גישה למאמת שלך",
+ "IMPORTANT": "חשוב:",
+ "IMPORTANT_NOTE": " שמור קודים אלה במיקום מאובטח. לא תוכל לראות אותם שוב.",
+ "DOWNLOAD": "הורד",
+ "COPY_ALL": "העתק הכל",
+ "CONFIRM": "שמרתי את קודי הגיבוי שלי במיקום מאובטח ואני מבין/ה שלא אוכל לראות אותם שוב",
+ "COMPLETE_SETUP": "השלם הגדרה",
+ "CODES_COPIED": "קודי הגיבוי הועתקו ללוח"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "קודי גיבוי",
+ "BACKUP_CODES_DESC": "צור קודים חדשים אם איבדת או השתמשת בקודים הקיימים שלך",
+ "REGENERATE": "צור מחדש קודי גיבוי",
+ "DISABLE_MFA": "השבת אימות דו-שלבי (2FA)",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "סיסמה",
+ "OTP_CODE": "קוד אימות",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "קוד גיבוי",
+ "BACKUP_CODE_PLACEHOLDER": "הזן אחד מקודי הגיבוי שלך",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "השבת 2FA",
+ "CANCEL": "ביטול",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "השבתת MFA נכשלה. אנא בדוק את פרטי הכניסה שלך."
+ },
+ "REGENERATE": {
+ "TITLE": "צור מחדש קודי גיבוי",
+ "DESCRIPTION": "פעולה זו תבטל את קודי הגיבוי הקיימים שלך ותיצור חדשים. הזן את קוד האימות שלך כדי להמשיך.",
+ "OTP_CODE": "קוד אימות",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "צור קודים חדשים",
+ "CANCEL": "ביטול",
+ "NEW_CODES_TITLE": "קודי גיבוי חדשים נוצרו",
+ "NEW_CODES_DESC": "קודי הגיבוי הישנים שלך בוטלו. שמור קודים חדשים אלה במיקום מאובטח.",
+ "CODES_IMPORTANT": "חשוב:",
+ "CODES_IMPORTANT_NOTE": " ניתן להשתמש בכל קוד פעם אחת בלבד. שמור אותם לפני סגירת חלון זה.",
+ "DOWNLOAD_CODES": "הורד קודים",
+ "COPY_ALL_CODES": "העתק את כל הקודים",
+ "CODES_SAVED": "שמרתי את הקודים שלי",
+ "SUCCESS": "קודי גיבוי חדשים נוצרו",
+ "ERROR": "יצירת קודי גיבוי מחדש נכשלה"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "הזן את קוד האימות שלך כדי להמשיך",
+ "AUTHENTICATOR_APP": "אפליקציית אימות",
+ "BACKUP_CODE": "קוד גיבוי",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "הזן אחד מקודי הגיבוי שלך",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "אמת",
+ "TRY_ANOTHER_METHOD": "נסה שיטת אימות אחרת",
+ "CANCEL_LOGIN": "בטל וחזור לכניסה",
+ "HELP_TEXT": "נתקלת בבעיות בכניסה?",
+ "LEARN_MORE": "למד עוד על 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "שימוש באפליקציית אימות",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "שימוש בקוד גיבוי",
+ "BACKUP_DESC": "אם אין לך גישה לאפליקציית האימות שלך, תוכל להשתמש באחד מקודי הגיבוי ששמרת בעת הגדרת 2FA. ניתן להשתמש בכל קוד פעם אחת בלבד.",
+ "CONTACT_TITLE": "זקוק לעזרה נוספת?",
+ "CONTACT_DESC_CLOUD": "אם איבדת גישה גם לאפליקציית האימות וגם לקודי הגיבוי שלך, אנא פנה לתמיכה של Chatwoot לקבלת סיוע.",
+ "CONTACT_DESC_SELF_HOSTED": "אם איבדת גישה גם לאפליקציית האימות וגם לקודי הגיבוי שלך, אנא פנה למנהל המערכת שלך לקבלת סיוע."
+ },
+ "VERIFICATION_FAILED": "האימות נכשל. אנא נסה שוב."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/onboarding.json b/app/javascript/dashboard/i18n/locale/he/onboarding.json
new file mode 100644
index 000000000..c04751001
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "אימייל",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "אתר",
+ "LANGUAGE": "שפה",
+ "TIMEZONE": "אזור זמן",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "בחר אזור זמן",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "המשך",
+ "SAVING": "שומר...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/report.json b/app/javascript/dashboard/i18n/locale/he/report.json
index 046805827..a80c5bee4 100644
--- a/app/javascript/dashboard/i18n/locale/he/report.json
+++ b/app/javascript/dashboard/i18n/locale/he/report.json
@@ -3,77 +3,63 @@
"HEADER": "שיחות",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
- "DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "אחזור הנתונים נכשל, אנא נסה שוב מאוחר יותר.",
+ "SUMMARY_FETCHING_FAILED": "אחזור הסיכום נכשל, אנא נסה שוב מאוחר יותר.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"INCOMING_MESSAGES": {
"NAME": "הודעות נכנסות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"OUTGOING_MESSAGES": {
"NAME": "הודעות יוצאות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "זמן תגובה ראשון",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן התגובה הראשון הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_TIME": {
"NAME": "זמן רזולוציה",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן הרזולוציה הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_COUNT": {
"NAME": "ספירת רזולוציות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "ספירת רזולוציות",
+ "DESC": "( סך הכל )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "ספירת העברות",
+ "DESC": "( סך הכל )"
},
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "זמן המתנת לקוח",
+ "TOOLTIP_TEXT": "זמן ההמתנה הוא {metricValue} (מבוסס על {conversationCount} תגובות)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "7 הימים האחרונים",
+ "LAST_14_DAYS": "14 הימים האחרונים",
"LAST_30_DAYS": "30 הימים האחרונים",
+ "THIS_MONTH": "החודש",
+ "LAST_MONTH": "חודש שעבר",
"LAST_3_MONTHS": "3 החודשים האחרונים",
"LAST_6_MONTHS": "6 החודשים האחרונים",
"LAST_YEAR": "שנה שעברה",
"CUSTOM_DATE_RANGE": "טווח תאריכים מותאם אישית"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "7 הימים האחרונים"
- },
- {
- "id": 1,
- "name": "30 הימים האחרונים"
- },
- {
- "id": 2,
- "name": "3 החודשים האחרונים"
- },
- {
- "id": 3,
- "name": "6 החודשים האחרונים"
- },
- {
- "id": 4,
- "name": "שנה שעברה"
- },
- {
- "id": 5,
- "name": "טווח תאריכים מותאם אישית"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "להגיש מועמדות",
"PLACEHOLDER": "בחר טווח תאריכים"
@@ -130,42 +116,56 @@
"groupBy": "חודש"
}
],
- "BUSINESS_HOURS": "שעות פעילות"
+ "BUSINESS_HOURS": "שעות פעילות",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "נקה מסנן",
+ "EMPTY_LIST": "לא נמצאו תוצאות"
+ },
+ "PAGINATION": {
+ "RESULTS": "מציג {start} עד {end} מתוך {total} תוצאות",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "סקירה כללית של סוכנים",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_AGENT_REPORTS": "הורד דוחות סוכן",
"FILTER_DROPDOWN_LABEL": "בחר סוכן",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "חפש סוכנים"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"INCOMING_MESSAGES": {
"NAME": "הודעות נכנסות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"OUTGOING_MESSAGES": {
"NAME": "הודעות יוצאות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "זמן תגובה ראשון",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן התגובה הראשון הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_TIME": {
"NAME": "זמן רזולוציה",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן הרזולוציה הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_COUNT": {
"NAME": "ספירת רזולוציות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
}
},
"DATE_RANGE": [
@@ -201,38 +201,44 @@
},
"LABEL_REPORTS": {
"HEADER": "סקירת תוויות",
+ "DESCRIPTION": "עקוב אחר ביצועי התוויות עם מדדי מפתח כולל שיחות, זמני תגובה, זמני סגירה ומקרים שנסגרו. לחץ על שם תווית לקבלת תובנות מפורטות.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_LABEL_REPORTS": "הורד דוחות תווית",
"FILTER_DROPDOWN_LABEL": "בחר תווית",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "חפש תוויות"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"INCOMING_MESSAGES": {
"NAME": "הודעות נכנסות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"OUTGOING_MESSAGES": {
"NAME": "הודעות יוצאות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "זמן תגובה ראשון",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן התגובה הראשון הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_TIME": {
"NAME": "זמן רזולוציה",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן הרזולוציה הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_COUNT": {
"NAME": "ספירת רזולוציות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
}
},
"DATE_RANGE": [
@@ -268,38 +274,46 @@
},
"INBOX_REPORTS": {
"HEADER": "סקירה כללית של תיבת הדואר הנכנס",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_INBOX_REPORTS": "הורד דוחות תיבת דואר נכנס",
"FILTER_DROPDOWN_LABEL": "בחר תיבת דואר",
+ "ALL_INBOXES": "כל תיבות הדואר הנכנס",
+ "SEARCH_INBOX": "חפש תיבת דואר נכנס",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"INCOMING_MESSAGES": {
"NAME": "הודעות נכנסות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"OUTGOING_MESSAGES": {
"NAME": "הודעות יוצאות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "זמן תגובה ראשון",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן התגובה הראשון הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_TIME": {
"NAME": "זמן רזולוציה",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן הרזולוציה הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_COUNT": {
"NAME": "ספירת רזולוציות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
}
},
"DATE_RANGE": [
@@ -335,38 +349,47 @@
},
"TEAM_REPORTS": {
"HEADER": "סקירת צוות",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "טוען נתוני תרשים...",
"NO_ENOUGH_DATA": "לא קיבלנו מספיק נקודות נתונים כדי להפיק דוח, אנא נסה שוב מאוחר יותר.",
"DOWNLOAD_TEAM_REPORTS": "הורד דוחות צוות",
"FILTER_DROPDOWN_LABEL": "תבחר קבוצה",
+ "FILTERS": {
+ "ADD_FILTER": "הוסף מסנן",
+ "CLEAR_ALL": "נקה הכל",
+ "NO_FILTER": "אין מסננים זמינים",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "חפש צוותים"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "שיחות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"INCOMING_MESSAGES": {
"NAME": "הודעות נכנסות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"OUTGOING_MESSAGES": {
"NAME": "הודעות יוצאות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "זמן תגובה ראשון",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן התגובה הראשון הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן התגובה הראשון הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_TIME": {
"NAME": "זמן רזולוציה",
- "DESC": "( Avg )",
+ "DESC": "( ממוצע )",
"INFO_TEXT": "מספר כולל של שיחות המשמשות לחישוב:",
- "TOOLTIP_TEXT": "זמן הרזולוציה הוא %{metricValue} (מבוסס על %{conversationCount} שיחות)"
+ "TOOLTIP_TEXT": "זמן הרזולוציה הוא {metricValue} (מבוסס על {conversationCount} שיחות)"
},
"RESOLUTION_COUNT": {
"NAME": "ספירת רזולוציות",
- "DESC": "( Total )"
+ "DESC": "( סך הכל )"
}
},
"DATE_RANGE": [
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "דוחות CSAT",
- "NO_RECORDS": "אין תשובות לסקר CSAT זמינות.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "הורד דוחות CSAT",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "DOWNLOAD_FAILED": "הורדת דוחות CSAT נכשלה",
"FILTERS": {
+ "ADD_FILTER": "הוסף מסנן",
+ "CLEAR_ALL": "נקה הכל",
+ "NO_FILTER": "אין מסננים זמינים",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "חפש סוכנים",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "חפש צוותים",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "בחר סוכנים"
+ "LABEL": "סוכן"
+ },
+ "INBOXES": {
+ "LABEL": "תיבת הדואר הנכנס"
+ },
+ "TEAMS": {
+ "LABEL": "צוות"
+ },
+ "RATINGS": {
+ "LABEL": "דירוג"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "איש קשר",
- "AGENT_NAME": "סוכן מוקצה",
+ "AGENT_NAME": "סוכן",
"RATING": "דירוג",
- "FEEDBACK_TEXT": "הערת משוב"
- }
+ "FEEDBACK_TEXT": "הערת משוב",
+ "CONVERSATION": "שיחה",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "תגובה",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "סה\"כ תגובות",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "שיעור תגובה",
"TOOLTIP": "מספר כולל של תגובות / מספר כולל של הודעות סקר CSAT שנשלחו * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "שמור",
+ "CANCEL": "ביטול",
+ "SAVING": "שומר...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "דוחות בוט",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "מספר שיחות",
+ "TOOLTIP": "המספר הכולל של השיחות שטופלו על ידי הבוט"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "סך התגובות",
+ "TOOLTIP": "המספר הכולל של התגובות שנשלחו על ידי הבוט"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "שיעור סגירה",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "שיעור העברה",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "תנועת שיחות",
"NO_CONVERSATIONS": "בלי שיחות",
- "CONVERSATION": "שיחה %{count}",
- "CONVERSATIONS": "%{count} שיחות"
+ "CONVERSATION": "שיחה {count}",
+ "CONVERSATIONS": "{count} שיחות",
+ "DOWNLOAD_REPORT": "הורד דוח"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "סגירות",
+ "NO_CONVERSATIONS": "בלי שיחות",
+ "CONVERSATION": "שיחה {count}",
+ "CONVERSATIONS": "{count} שיחות",
+ "DOWNLOAD_REPORT": "הורד דוח"
},
"AGENT_CONVERSATIONS": {
"HEADER": "שיחות של סוכנים",
@@ -456,7 +553,19 @@
"NO_AGENTS": "אין שיחות של סוכנים",
"TABLE_HEADER": {
"AGENT": "סוכן",
- "OPEN": "פתוח",
+ "OPEN": "פתח",
+ "UNATTENDED": "ללא השגחה",
+ "STATUS": "מצב"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "כל הצוותים",
+ "HEADER": "שיחות לפי צוותים",
+ "LOADING_MESSAGE": "טוען מדדי צוות...",
+ "NO_TEAMS": "אין נתונים זמינים",
+ "TABLE_HEADER": {
+ "TEAM": "צוות",
+ "OPEN": "פתח",
"UNATTENDED": "ללא השגחה",
"STATUS": "מצב"
}
@@ -476,5 +585,66 @@
"THURSDAY": "יום חמישי",
"FRIDAY": "שישי",
"SATURDAY": "יום שבת"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "דוחות SLA",
+ "NO_RECORDS": "שיחות שהוחל עליהן SLA אינן זמינות.",
+ "LOADING": "טוען נתוני SLA...",
+ "DOWNLOAD_SLA_REPORTS": "הורד דוחות SLA",
+ "DOWNLOAD_FAILED": "הורדת דוחות SLA נכשלה",
+ "DROPDOWN": {
+ "ADD_FIlTER": "הוסף מסנן",
+ "CLEAR_ALL": "נקה הכל",
+ "CLEAR_FILTER": "נקה מסנן",
+ "EMPTY_LIST": "לא נמצאו תוצאות",
+ "NO_FILTER": "אין מסננים זמינים",
+ "SEARCH": "חפש מסנן",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "שם SLA",
+ "AGENTS": "שם סוכן",
+ "INBOXES": "שם תיבת דואר נכנס",
+ "LABELS": "שם התווית",
+ "TEAMS": "שם קבוצה"
+ },
+ "SLA": "מדיניות SLA",
+ "INBOXES": "תיבת הדואר הנכנס",
+ "AGENTS": "סוכן",
+ "LABELS": "תווית",
+ "TEAMS": "צוות"
+ },
+ "WITH": "עם",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "שיעור עמידה",
+ "TOOLTIP": "אחוז ה-SLA שנוצרו והושלמו בהצלחה"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "מספר החמצות",
+ "TOOLTIP": "סך החמצות SLA בתקופה מסוימת"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "מספר שיחות",
+ "TOOLTIP": "המספר הכולל של שיחות עם SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "מדיניות",
+ "CONVERSATION": "שיחה",
+ "AGENT": "סוכן"
+ },
+ "VIEW_DETAILS": "הצג פרטים"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "תיבת הדואר הנכנס",
+ "AGENT": "סוכן",
+ "TEAM": "צוות",
+ "LABEL": "תווית",
+ "AVG_RESOLUTION_TIME": "זמן סגירה ממוצע",
+ "AVG_FIRST_RESPONSE_TIME": "זמן תגובה ראשונה ממוצע",
+ "AVG_REPLY_TIME": "זמן המתנת לקוח ממוצע",
+ "RESOLUTION_COUNT": "ספירת רזולוציות",
+ "CONVERSATIONS": "מספר שיחות"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/resetPassword.json b/app/javascript/dashboard/i18n/locale/he/resetPassword.json
index 20de30b15..d693a219c 100644
--- a/app/javascript/dashboard/i18n/locale/he/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/he/resetPassword.json
@@ -1,8 +1,8 @@
{
"RESET_PASSWORD": {
"TITLE": "אפס את הסיסמה",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "הזן את כתובת הדוא\"ל שבה אתה משתמש כדי להיכנס ל-Chatwoot לקבלת הוראות לאיפוס הסיסמה.",
+ "GO_BACK_TO_LOGIN": "אם ברצונך לחזור לדף ההתחברות,",
"EMAIL": {
"LABEL": "אימייל",
"PLACEHOLDER": "הזן בבקשה את האימייל שלך.",
diff --git a/app/javascript/dashboard/i18n/locale/he/search.json b/app/javascript/dashboard/i18n/locale/he/search.json
index 73fdef26e..0aaaa9d17 100644
--- a/app/javascript/dashboard/i18n/locale/he/search.json
+++ b/app/javascript/dashboard/i18n/locale/he/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "הכל",
+ "ALL": "All results",
"CONTACTS": "איש קשר",
"CONVERSATIONS": "שיחות",
- "MESSAGES": "הודעות"
+ "MESSAGES": "הודעות",
+ "ARTICLES": "מאמרים"
},
"SECTION": {
"CONTACTS": "איש קשר",
"CONVERSATIONS": "שיחות",
- "MESSAGES": "הודעות"
+ "MESSAGES": "הודעות",
+ "ARTICLES": "מאמרים"
},
- "EMPTY_STATE": "לא נמצא %{item} עבור השאילתה '%{query}'",
- "EMPTY_STATE_FULL": "לא נמצאו תוצאות עבור השאילתה '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ להתמקד",
+ "VIEW_MORE": "הצג עוד",
+ "LOAD_MORE": "טען עוד",
+ "SEARCHING_DATA": "מחפש",
+ "LOADING_DATA": "טוען",
+ "EMPTY_STATE": "לא נמצא {item} עבור השאילתה '{query}'",
+ "EMPTY_STATE_FULL": "לא נמצאו תוצאות עבור השאילתה '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/להתמקד",
"INPUT_PLACEHOLDER": "חפש הודעות, אנשי קשר או שיחות",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "נקה הכל",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "חפש לפי מזהה שיחה, אימייל, מספר טלפון, הודעות לתוצאות חיפוש טובות יותר.",
"BOT_LABEL": "בוט",
"READ_MORE": "קרא עוד",
+ "READ_LESS": "Read less",
"WROTE": "נכתב:",
- "FROM": "מ",
- "EMAIL": "אימייל"
+ "FROM": "מאת",
+ "EMAIL": "אימייל",
+ "EMAIL_SUBJECT": "נושא",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "נוצר ב-{time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "7 הימים האחרונים",
+ "LAST_30_DAYS": "30 הימים האחרונים",
+ "LAST_60_DAYS": "60 הימים האחרונים",
+ "LAST_90_DAYS": "90 הימים האחרונים",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "להגיש מועמדות",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "נקה מסנן"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "שולח",
+ "IN": "תיבת הדואר הנכנס",
+ "AGENTS": "סוכנים",
+ "CONTACTS": "איש קשר",
+ "INBOXES": "תיבות דואר נכנס",
+ "NO_AGENTS": "לא נמצאו סוכנים",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/settings.json b/app/javascript/dashboard/i18n/locale/he/settings.json
index 89ea470d2..8aa405c49 100644
--- a/app/javascript/dashboard/i18n/locale/he/settings.json
+++ b/app/javascript/dashboard/i18n/locale/he/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "הסיסמא שונתה בהצלחה",
"AFTER_EMAIL_CHANGED": "הפרופיל עודכן בהצלחה, יש להתחבר מחדש",
"FORM": {
+ "PICTURE": "תמונת פרופיל",
"AVATAR": "תמונת פרופיל",
"ERROR": "אנא תקן שגיאות בטופס",
"REMOVE_IMAGE": "הסר",
@@ -34,15 +35,41 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "ממשק",
+ "NOTE": "התאם אישית את המראה והתחושה של לוח המחוונים שלך ב-Chatwoot.",
+ "FONT_SIZE": {
+ "TITLE": "גודל גופן",
+ "NOTE": "התאם את גודל הטקסט ברחבי לוח המחוונים בהתבסס על ההעדפה שלך.",
+ "UPDATE_SUCCESS": "הגדרות הגופן שלך עודכנו בהצלחה",
+ "UPDATE_ERROR": "אירעה שגיאה בעדכון הגדרות הגופן, אנא נסה שוב",
+ "OPTIONS": {
+ "SMALLER": "קטן יותר",
+ "SMALL": "קטן",
+ "DEFAULT": "ברירת מחדל",
+ "LARGE": "גדול",
+ "LARGER": "גדול יותר",
+ "EXTRA_LARGE": "גדול במיוחד"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "שפה מועדפת",
+ "NOTE": "בחר את השפה שבה ברצונך להשתמש.",
+ "UPDATE_SUCCESS": "הגדרות השפה שלך עודכנו בהצלחה",
+ "UPDATE_ERROR": "אירעה שגיאה בעדכון הגדרות השפה, אנא נסה שוב",
+ "USE_ACCOUNT_DEFAULT": "השתמש בברירת המחדל של החשבון"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "חתימת הודעה אישית",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
+ "NOTE": "צור חתימת הודעה ייחודית שתופיע בסוף כל הודעה שתשלח מכל תיבת דואר נכנס. ניתן לכלול גם תמונה מוטמעת, הנתמכת בצ'אט חי, דוא\"ל ותיבות דואר נכנסות של API.",
"BTN_TEXT": "שמירה",
"API_ERROR": "לא ניתן לשמור את החתימה! אנא נסה שנית",
"API_SUCCESS": "החתימה נשמרה בהצלחה",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "גודל התמונה צריך להיות פחות מ-{size}MB"
+ "IMAGE_UPLOAD_ERROR": "לא ניתן להעלות את התמונה! נסה שוב",
+ "IMAGE_UPLOAD_SUCCESS": "התמונה נוספה בהצלחה. אנא לחץ על שמור כדי לשמור את החתימה",
+ "IMAGE_UPLOAD_SIZE_ERROR": "גודל התמונה צריך להיות פחות מ-{size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "חתימת הודעה",
@@ -54,15 +81,45 @@
"NOTE": "עדכון הסיסמה שלך יאפס את הכניסות שלך במספר מכשירים.",
"BTN_TEXT": "שנה סיסמא"
},
+ "SECURITY_SECTION": {
+ "TITLE": "אבטחה",
+ "NOTE": "נהל תכונות אבטחה נוספות עבור חשבונך.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "אסימון",
- "NOTE": "משמש לחיבורי API"
+ "NOTE": "משמש לחיבורי API",
+ "COPY": "עותק",
+ "RESET": "איפוס",
+ "CONFIRM_RESET": "האם אתה בטוח?",
+ "CONFIRM_HINT": "לחץ שוב כדי לאשר",
+ "RESET_SUCCESS": "אסימון הגישה נוצר מחדש בהצלחה",
+ "RESET_ERROR": "לא ניתן ליצור מחדש את אסימון הגישה. אנא נסה שוב"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "התראות קוליות",
- "NOTE": "אפשר התראות קוליות להודעות ושיחות חדשות.",
+ "TITLE": "התראות שמע",
+ "NOTE": "הפעל התראות שמע בלוח המחוונים עבור הודעות ושיחות חדשות.",
+ "PLAY": "הפעל צליל",
+ "ALERT_TYPES": {
+ "NONE": "כלום",
+ "MINE": "הוקצה",
+ "ALL": "הכל",
+ "ASSIGNED": "השיחות שהוקצו לי",
+ "UNASSIGNED": "שיחות לא משויכות",
+ "NOTME": "שיחות פתוחות שהוקצו לאחרים"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "לא בחרת אפשרויות, לא תקבל התראות שמע.",
+ "ASSIGNED": "תקבל התראות עבור שיחות שהוקצו לך.",
+ "UNASSIGNED": "תקבל התראות עבור כל שיחה לא משויכת.",
+ "NOTME": "תקבל התראות עבור שיחות שהוקצו לאחרים.",
+ "ASSIGNED+UNASSIGNED": "תקבל התראות עבור השיחות שהוקצו לך ועבור כל שיחה ללא מענה.",
+ "ASSIGNED+NOTME": "תקבל התראות עבור שיחות שהוקצו לך ולאחרים, אך לא עבור שיחות לא משויכות.",
+ "NOTME+UNASSIGNED": "תקבל התראות עבור שיחות ללא מענה ועבור אלה שהוקצו לאחרים.",
+ "ASSIGNED+NOTME+UNASSIGNED": "תקבל התראות עבור כל השיחות."
+ },
"ALERT_TYPE": {
- "TITLE": "סוגי התראות:",
+ "TITLE": "אירועי התראה לשיחות",
"NONE": "כלום",
"ASSIGNED": "שיחות משוייכות",
"ALL_CONVERSATIONS": "כל השיחות"
@@ -74,7 +131,9 @@
"TITLE": "העדפות התראה:",
"CONDITION_ONE": "שלח התראות קוליות רק במידה והדפדפן לא פעיל",
"CONDITION_TWO": "שלח התראות כל 30 שניות עד שכל ההודעות המשוייכות נקראו"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "ההפעלה האוטומטית מושבתת בדפדפן שלך. כדי לשמוע התראות באופן אוטומטי, אפשר הרשאת צליל בהגדרות הדפדפן שלך או צור אינטראקציה עם הדף.",
+ "READ_MORE": "קרא עוד"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "התראות דוא\"ל",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "שלח התראה באימייל כאשר נפתחת שיחה חדשה",
"CONVERSATION_MENTION": "שלח הודעות דחיפה כאשר אתה מוזכר בשיחה",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "שלח התראה באימייל כאשר יש הודעה חדשה בשיחה המוקצית עבורי",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "שלח הודעות דחיפה כאשר נוצרת הודעה חדשה בשיחה המיועדת עבורי"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "שלח הודעות דחיפה כאשר נוצרת הודעה חדשה בשיחה המיועדת עבורי",
+ "SLA_MISSED_FIRST_RESPONSE": "שלח התראות בדוא\"ל כאשר שיחה לא עומדת בהסכם תנאי השירות (SLA) של התגובה הראשונה",
+ "SLA_MISSED_NEXT_RESPONSE": "שלח התראות בדוא\"ל כאשר שיחה לא עומדת ב-הסכם תנאי השירות (SLA) של התגובה הבאה",
+ "SLA_MISSED_RESOLUTION": "שלח התראות דוא\"ל כאשר שיחה מחמיצה SLA סגירה"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "העדפות התראות",
+ "TYPE_TITLE": "סוג התראה",
+ "EMAIL": "אימייל",
+ "PUSH": "התראת דחיפה (Push)",
+ "TYPES": {
+ "CONVERSATION_CREATED": "שיחה חדשה נוצרה",
+ "CONVERSATION_ASSIGNED": "שיחה הוקצתה לך",
+ "CONVERSATION_MENTION": "הוזכרת בשיחה",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "נוצרה הודעה חדשה בשיחה שהוקצתה",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "נוצרה הודעה חדשה בשיחה שבה אתה משתתף",
+ "SLA_MISSED_FIRST_RESPONSE": "שיחה מחמיצה SLA תגובה ראשונה",
+ "SLA_MISSED_NEXT_RESPONSE": "שיחה מחמיצה SLA תגובה הבאה",
+ "SLA_MISSED_RESOLUTION": "שיחה מחמיצה SLA סגירה"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "העדפות ההתראות עודכנו בהצלחה",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "שלח התראת פוש כאשר יש הודעה חדשה בשיחה המוקצית עבורי",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "שלח הודעות דחיפה כאשר נוצרת הודעה חדשה בשיחה המיועדת עבורי",
"HAS_ENABLED_PUSH": "הודעות דחיפה בדפדפן זה הופעלו.",
- "REQUEST_PUSH": "אפשר הודעות דחיפה"
+ "REQUEST_PUSH": "אפשר הודעות דחיפה",
+ "SLA_MISSED_FIRST_RESPONSE": "שלח התראות דחיפה כאשר שיחה מחמיצה SLA תגובה ראשונה",
+ "SLA_MISSED_NEXT_RESPONSE": "שלח התראות דחיפה כאשר שיחה מחמיצה SLA תגובה הבאה",
+ "SLA_MISSED_RESOLUTION": "שלח התראות דחיפה כאשר שיחה מחמיצה SLA סגירה"
},
"PROFILE_IMAGE": {
"LABEL": "תמונת פרופיל"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "זמינות",
- "STATUSES_LIST": [
- "מחובר",
- "עסוק",
- "לא מחובר"
- ],
+ "STATUS": {
+ "ONLINE": "מחובר",
+ "BUSY": "עסוק",
+ "OFFLINE": "לא מחובר"
+ },
"SET_AVAILABILITY_SUCCESS": "זמינות הוגדרה בהצלחה",
- "SET_AVAILABILITY_ERROR": "לא ניתן להגדיר זמינות, אנא נסה שנית"
+ "SET_AVAILABILITY_ERROR": "לא ניתן להגדיר זמינות, אנא נסה שנית",
+ "IMPERSONATING_ERROR": "לא ניתן לשנות זמינות בעת התחזות למשתמש"
},
"EMAIL": {
"LABEL": "כתובת הדוא\"ל שלך",
@@ -148,24 +231,34 @@
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "שינוי",
"CHANGE_ACCOUNTS": "החלף חשבון",
- "CONTACT_SUPPORT": "צור קשר עם תמיכה",
+ "SWITCH_ACCOUNT": "החלף חשבון",
+ "CONTACT_SUPPORT": "צור קשר עם התמיכה",
"SELECTOR_SUBTITLE": "בחר חשבון מהרשימה הבאה",
"PROFILE_SETTINGS": "הגדרות פרופיל",
- "KEYBOARD_SHORTCUTS": "קיצורי דרך במקלדת",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "מסוף סופר אדמין",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "קיצורי מקלדת",
+ "APPEARANCE": "שנה מראה",
+ "SUPER_ADMIN_CONSOLE": "קונסולת מנהל-על",
+ "DOCS": "קרא תיעוד",
+ "CHANGELOG": "יומן שינויים",
"LOGOUT": "התנתק"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "שנותרו ימי ניסיון.",
"TRAIL_BUTTON": "קנה עכשיו",
"DELETED_USER": "משתמש מחוק",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "EMAIL_VERIFICATION_PENDING": "נראה שעדיין לא אימתת את כתובת הדוא\"ל שלך. אנא בדוק את תיבת הדואר הנכנס שלך עבור דוא\"ל האימות.",
+ "RESEND_VERIFICATION_MAIL": "שלח מחדש דוא\"ל אימות",
+ "EMAIL_VERIFICATION_SENT": "דוא\"ל האימות נשלח. אנא בדוק את תיבת הדואר הנכנס שלך.",
"ACCOUNT_SUSPENDED": {
"TITLE": "חשבון מושעה",
"MESSAGE": "החשבון שלך מושעה. אנא פנה לצוות התמיכה לקבלת מידע נוסף."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "לא נמצא חשבון",
+ "MESSAGE_CLOUD": "אינך חלק משום חשבון כרגע. אם אתה חושב שזו טעות, אנא פנה לצוות התמיכה שלנו.",
+ "MESSAGE_SELF_HOSTED": "אינך חלק משום חשבון כרגע. אנא פנה למנהל המערכת שלך.",
+ "LOGOUT": "התנתק"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "הורד",
"UPLOADING": "מעלה...",
- "INSTAGRAM_STORY_UNAVAILABLE": "הסיפור הזה כבר לא זמין."
+ "INSTAGRAM_STORY_UNAVAILABLE": "הסיפור הזה כבר לא זמין.",
+ "INSTAGRAM_STORY_REPLY": "השיב/ה לסטורי שלך:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "ראה במפה"
},
"FORM_BUBBLE": {
"SUBMIT": "שלח"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "תמונה זו אינה זמינה עוד.",
+ "LOADING_FAILED": "טעינה נכשלה"
}
},
"CONFIRM_EMAIL": "מאמת...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "אין פריטים",
"CURRENTLY_VIEWING_ACCOUNT": "צופה כרגע:",
"SWITCH": "החלף",
+ "INBOX_VIEW": "תצוגת תיבת דואר נכנס",
"CONVERSATIONS": "שיחות",
- "INBOX": "תיבת הדואר הנכנס",
+ "INBOX": "תיבת הדואר הנכנס שלי",
"ALL_CONVERSATIONS": "כל השיחות",
"MENTIONED_CONVERSATIONS": "אִזְכּוּרים",
"PARTICIPATING_CONVERSATIONS": "משתתף",
@@ -208,10 +308,22 @@
"REPORTS": "דיווחים",
"SETTINGS": "הגדרות",
"CONTACTS": "איש קשר",
+ "ACTIVE": "פעיל",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "קפטן",
+ "CAPTAIN_ASSISTANTS": "עוזרים",
+ "CAPTAIN_DOCUMENTS": "מסמכים",
+ "CAPTAIN_RESPONSES": "שאלות נפוצות",
+ "CAPTAIN_TOOLS": "כלים",
+ "CAPTAIN_SCENARIOS": "תרחישים",
+ "CAPTAIN_PLAYGROUND": "מגרש משחקים",
+ "CAPTAIN_INBOXES": "תיבות דואר נכנס",
+ "CAPTAIN_SETTINGS": "הגדרות",
"HOME": "בית",
"AGENTS": "סוכנים",
"AGENT_BOTS": "בוטים",
- "AUDIT_LOGS": "Audit Logs",
+ "AUDIT_LOGS": "יומני ביקורת",
"INBOXES": "תיבות דואר נכנס",
"NOTIFICATIONS": "התראות",
"CANNED_RESPONSES": "תגובות מוכנות",
@@ -234,51 +346,269 @@
"NEW_INBOX": "תיבת דואר נכנס חדשה",
"REPORTS_CONVERSATION": "שיחות",
"CSAT": "CSAT",
+ "LIVE_CHAT": "צ'אט חי",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "קמפיין",
"ONGOING": "מתמשך",
"ONE_OFF": "חד פעמי",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "בוט",
"REPORTS_AGENT": "סוכנים",
"REPORTS_LABEL": "תוויות",
"REPORTS_INBOX": "תיבת הדואר הנכנס",
"REPORTS_TEAM": "צוות",
+ "AGENT_ASSIGNMENT": "הקצאת סוכן",
"SET_AVAILABILITY_TITLE": "הגדר את עצמך בתור",
+ "SET_YOUR_AVAILABILITY": "הגדר את הזמינות שלך",
"SLA": "SLA",
+ "CUSTOM_ROLES": "תפקידים מותאמים אישית",
"BETA": "בטא",
"REPORTS_OVERVIEW": "סקירה כללית",
- "FACEBOOK_REAUTHORIZE": "פג תוקף החיבור שלך לפייסבוק, אנא חבר מחדש את דף הפייסבוק שלך כדי להמשיך בשירותים",
+ "REAUTHORIZE": "חיבור תיבת הדואר הנכנס שלך פג, אנא התחבר מחדש\n כדי להמשיך לקבל ולשלוח הודעות",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "כל המאמרים",
- "MY_ARTICLES": "הכתבות שלי",
- "DRAFT": "טיוטה",
- "ARCHIVED": "בארכיון",
- "CATEGORY": "קטגוריה",
- "SETTINGS": "הגדרות",
- "CATEGORY_EMPTY_MESSAGE": "לא נמצאו קטגוריות"
+ "TITLE": "מרכז עזרה",
+ "ARTICLES": "מאמרים",
+ "CATEGORIES": "קטגוריות",
+ "LOCALES": "מקומיים",
+ "SETTINGS": "הגדרות"
},
+ "CHANNELS": "ערוצים",
"SET_AUTO_OFFLINE": {
"TEXT": "סמן באופן לא מקוון באופן אוטומטי",
- "INFO_TEXT": "תן למערכת לסמן אותך באופן אוטומטי במצב לא מקוון כשאתה לא משתמש באפליקציה או בלוח המחוונים."
+ "INFO_TEXT": "תן למערכת לסמן אותך באופן אוטומטי במצב לא מקוון כשאתה לא משתמש באפליקציה או בלוח המחוונים.",
+ "INFO_SHORT": "סמן אוטומטית כלא מקוון כאשר אינך משתמש באפליקציה."
},
- "DOCS": "קרא מסמכים"
+ "DOCS": "קרא מסמכים",
+ "SECURITY": "אבטחה",
+ "CAPTAIN_AI": "קפטן",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "עוזר",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "מאפיינים",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "חיוב",
+ "DESCRIPTION": "נהל את המנוי שלך כאן, שדרג את התוכנית שלך וקבל יותר עבור הצוות שלך.",
"CURRENT_PLAN": {
"TITLE": "תוכנית נוכחית",
- "PLAN_NOTE": "אתה רשום כעת לתוכנית **%{plan}** עם רישיונות **%{quantity}**"
+ "PLAN_NOTE": "אתה רשום כעת לתוכנית **{plan}** עם רישיונות **{quantity}**",
+ "SEAT_COUNT": "מספר מושבים",
+ "RENEWS_ON": "מתחדש ב-"
},
+ "VIEW_PRICING": "הצג תמחור",
"MANAGE_SUBSCRIPTION": {
"TITLE": "נהל את המנוי שלך",
"DESCRIPTION": "הצג את החשבוניות הקודמות שלך, ערוך את פרטי החיוב שלך או בטל את המנוי שלך.",
"BUTTON_TXT": "עבור לפורטל החיובים"
},
+ "CAPTAIN": {
+ "TITLE": "קפטן",
+ "DESCRIPTION": "נהל שימוש וזיכויים עבור Captain AI.",
+ "BUTTON_TXT": "קנה עוד זיכויים",
+ "DOCUMENTS": "מסמכים",
+ "RESPONSES": "תגובות",
+ "UPGRADE": "Captain אינו זמין בתוכנית החינמית, שדרג עכשיו כדי לקבל גישה לעוזרים, ל-Copilot ועוד.",
+ "REFRESH_CREDITS": "רענן"
+ },
"CHAT_WITH_US": {
"TITLE": "זקוק לעזרה?",
"DESCRIPTION": "האם אתה נתקל בבעיות כלשהן בחיוב? אנחנו כאן כדי לעזור.",
"BUTTON_TXT": "דבר איתנו"
},
- "NO_BILLING_USER": "חשבון החיוב שלך מוגדר. אנא רענן את הדף ונסה שוב."
+ "NO_BILLING_USER": "חשבון החיוב שלך מוגדר. אנא רענן את הדף ונסה שוב.",
+ "TOPUP": {
+ "BUY_CREDITS": "קנה עוד זיכויים",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "הערה:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "ביטול",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "חזור",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "אבטחה",
+ "DESCRIPTION": "נהל את הגדרות האבטחה של חשבונך.",
+ "LINK_TEXT": "למד עוד על SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "כתובת URL של ACS",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "כתובת URL של SSO",
+ "HELP": "כתובת ה-URL שאליה יישלחו בקשות אימות SAML",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "אישור חתימה בפורמט PEM",
+ "HELP": "האישור הציבורי מספק הזהויות שלך המשמש לאימות תגובות SAML",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "טביעת אצבע",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "הקוד הועתק ללוח בהצלחה",
+ "SP_ENTITY_ID": {
+ "LABEL": "מזהה ישות SP",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "מזהה ישות של ספק הזהויות",
+ "HELP": "מזהה ייחודי עבור ספק הזהויות שלך (נמצא בדרך כלל בהגדרות IdP)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "עדכן הגדרות SAML",
+ "API": {
+ "SUCCESS": "הגדרות SAML עודכנו בהצלחה",
+ "ERROR": "העדכון של הגדרות SAML נכשל",
+ "ERROR_LOADING": "טעינת הגדרות SAML נכשלה",
+ "DISABLED": "הגדרות SAML הושבתו בהצלחה"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "כתובת URL של SSO, מזהה ישות של ספק הזהויות ואישור הם שדות נדרשים",
+ "SSO_URL_ERROR": "אנא הזן כתובת URL חוקית של SSO",
+ "CERTIFICATE_ERROR": "אישור נדרש",
+ "IDP_ENTITY_ID_ERROR": "מזהה ישות של ספק הזהויות נדרש"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "תכונת SAML SSO זמינה רק בתוכניות Enterprise.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ },
+ "PAYWALL": {
+ "TITLE": "שדרג כדי להפעיל SAML SSO",
+ "AVAILABLE_ON": "תכונת SAML SSO זמינה רק בתוכניות Enterprise.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "הגדרת תכונת SAML",
+ "DESCRIPTION": "יש להגדיר את מיפויי התכונות הבאים בספק הזהויות שלך"
+ },
+ "INFO_SECTION": {
+ "TITLE": "מידע על ספק השירות",
+ "TOOLTIP": "העתק ערכים אלה והגדר אותם בספק הזהויות שלך כדי ליצור את חיבור SAML"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "חפש מאפיין"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "פתור את השיחה",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "פתור את השיחה",
+ "CANCEL": "ביטול"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "בחר אפשרות"
+ },
+ "CHECKBOX": {
+ "YES": "כן",
+ "NO": "לא"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "אה הו! לא הצלחנו למצוא חשבונות Chatwoot. נא ליצור חשבון חדש כדי להמשיך.",
@@ -294,7 +624,8 @@
"LABEL": "שם החברה",
"PLACEHOLDER": "וויין אנטרפרייז"
},
- "SUBMIT": "שלח"
+ "SUBMIT": "שלח",
+ "CANCEL": "ביטול"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "עבור לסרגל הצד של דוחות",
"MOVE_TO_NEXT_TAB": "עבור ללשונית הבאה ברשימת השיחות",
"GO_TO_SETTINGS": "לך להגדרות",
- "SWITCH_CONVERSATION_STATUS": "עבור למצב השיחה הבאה",
"SWITCH_TO_PRIVATE_NOTE": "עבור להערה פרטית",
"SWITCH_TO_REPLY": "עבור לתשובה",
"TOGGLE_SNOOZE_DROPDOWN": "החלפת תפריט נודניק"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "הקצאת סוכן",
+ "DESCRIPTION": "הגדר מדיניות לניהול יעיל של עומס העבודה וניתוב שיחות בהתבסס על הצרכים של תיבות הדואר הנכנס והסוכנים. למד עוד כאן"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "מדיניות הקצאה",
+ "DESCRIPTION": "נהל כיצד שיחות מוקצות בתיבות דואר נכנס.",
+ "FEATURES": [
+ "הקצה לפי שיחות באופן שווה או לפי קיבולת זמינה",
+ "הוסף כללי הפצה הוגנת כדי למנוע עומס יתר על סוכן כלשהו",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "מדיניות קיבולת סוכן",
+ "DESCRIPTION": "נהל את עומס העבודה עבור סוכנים.",
+ "FEATURES": [
+ "הגדר מספר שיחות מרבי לכל תיבת דואר נכנס",
+ "צור חריגים על בסיס תוויות וזמן",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "נצח / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "מדיניות הקצאה",
+ "CREATE_POLICY": "מדיניות חדשה"
+ },
+ "CARD": {
+ "ORDER": "סדר",
+ "PRIORITY": "עדיפות",
+ "ACTIVE": "פעיל",
+ "INACTIVE": "לא פעיל",
+ "POPOVER": "תיבות דואר נכנס שנוספו",
+ "EDIT": "ערוך"
+ },
+ "NO_RECORDS_FOUND": "לא נמצאו מדיניות הקצאה"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "צור מדיניות הקצאה"
+ },
+ "CREATE_BUTTON": "צור מדיניות",
+ "API": {
+ "SUCCESS_MESSAGE": "מדיניות ההקצאה נוצרה בהצלחה",
+ "ERROR_MESSAGE": "יצירת מדיניות ההקצאה נכשלה",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "ערוך מדיניות הקצאה"
+ },
+ "EDIT_BUTTON": "עדכן מדיניות",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "הוסף תיבת דואר נכנס",
+ "DESCRIPTION": "תיבת הדואר הנכנס {inboxName} כבר מקושרת למדיניות אחרת. האם אתה בטוח שברצונך לקשר אותה למדיניות זו? היא תנותק מהמדיניות האחרת.",
+ "CONFIRM_BUTTON_LABEL": "המשך",
+ "CANCEL_BUTTON_LABEL": "ביטול"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "מדיניות ההקצאה עודכנה בהצלחה",
+ "ERROR_MESSAGE": "עדכון מדיניות ההקצאה נכשל"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "תיבת הדואר הנכנס נוספה למדיניות בהצלחה",
+ "ERROR_MESSAGE": "הוספת תיבת הדואר הנכנס למדיניות נכשלה"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "תיבת הדואר הנכנס הוסרה מהמדיניות בהצלחה",
+ "ERROR_MESSAGE": "הסרת תיבת הדואר הנכנס מהמדיניות נכשלה"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "שם מדיניות:",
+ "PLACEHOLDER": "הזן שם מדיניות"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור:",
+ "PLACEHOLDER": "הזן תיאור"
+ },
+ "STATUS": {
+ "LABEL": "מצב:",
+ "PLACEHOLDER": "בחר סטטוס",
+ "ACTIVE": "המדיניות פעילה",
+ "INACTIVE": "המדיניות לא פעילה"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "סדר הקצאה",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin (סבב)",
+ "DESCRIPTION": "הקצה שיחות באופן שווה בין הסוכנים."
+ },
+ "BALANCED": {
+ "LABEL": "מאוזן",
+ "DESCRIPTION": "הקצה שיחות על בסיס קיבולת זמינה.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "עדיפות הקצאה",
+ "EARLIEST_CREATED": {
+ "LABEL": "נוצר מוקדם ביותר",
+ "DESCRIPTION": "השיחה שנוצרה ראשונה מוקצית ראשונה."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "המתנה הארוכה ביותר",
+ "DESCRIPTION": "השיחה הממתינה הכי הרבה זמן מוקצית ראשונה."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "מדיניות הפצה הוגנת",
+ "DESCRIPTION": "הגדר את המספר המרבי של שיחות שניתן להקצות לכל סוכן בתוך חלון זמן כדי למנוע עומס יתר על סוכן כלשהו. שדה חובה זה מוגדר כברירת מחדל ל-100 שיחות לשעה.",
+ "INPUT_MAX": "הקצה מקסימום",
+ "DURATION": "שיחות לכל סוכן בכל"
+ },
+ "INBOXES": {
+ "LABEL": "תיבות דואר נכנס שנוספו",
+ "DESCRIPTION": "הוסף תיבות דואר נכנס שעבורן מדיניות זו תחול.",
+ "ADD_BUTTON": "הוסף תיבת דואר נכנס",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "חפש ובחר תיבות דואר נכנס להוספה",
+ "ADD_BUTTON": "הוסף"
+ },
+ "EMPTY_STATE": "לא נוספו תיבות דואר נכנס למדיניות זו, הוסף תיבת דואר נכנס כדי להתחיל",
+ "API": {
+ "SUCCESS_MESSAGE": "תיבת הדואר הנכנס נוספה בהצלחה למדיניות",
+ "ERROR_MESSAGE": "הוספת תיבת הדואר הנכנס למדיניות נכשלה"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "מדיניות ההקצאה נמחקה בהצלחה",
+ "ERROR_MESSAGE": "מחיקת מדיניות ההקצאה נכשלה"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "קיבולת סוכן",
+ "CREATE_POLICY": "מדיניות חדשה"
+ },
+ "CARD": {
+ "POPOVER": "סוכנים שנוספו",
+ "EDIT": "ערוך"
+ },
+ "NO_RECORDS_FOUND": "לא נמצאו מדיניות קיבולת סוכן"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "צור מדיניות קיבולת סוכן"
+ },
+ "CREATE_BUTTON": "צור מדיניות",
+ "API": {
+ "SUCCESS_MESSAGE": "מדיניות קיבולת הסוכן נוצרה בהצלחה",
+ "ERROR_MESSAGE": "יצירת מדיניות קיבולת הסוכן נכשלה"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "ערוך מדיניות קיבולת סוכן"
+ },
+ "EDIT_BUTTON": "עדכן מדיניות",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "הוסף סוכן",
+ "DESCRIPTION": "{agentName} כבר מקושר למדיניות אחרת. האם אתה בטוח שברצונך לקשר אותו למדיניות זו? הוא ינותק מהמדיניות האחרת.",
+ "CONFIRM_BUTTON_LABEL": "המשך",
+ "CANCEL_BUTTON_LABEL": "ביטול"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "מדיניות קיבולת הסוכן עודכנה בהצלחה",
+ "ERROR_MESSAGE": "עדכון מדיניות קיבולת הסוכן נכשל"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "הסוכן נוסף למדיניות בהצלחה",
+ "ERROR_MESSAGE": "הוספת הסוכן למדיניות נכשלה"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "הסוכן הוסר מהמדיניות בהצלחה",
+ "ERROR_MESSAGE": "הסרת הסוכן מהמדיניות נכשלה"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "שם מדיניות:",
+ "PLACEHOLDER": "הזן שם מדיניות"
+ },
+ "DESCRIPTION": {
+ "LABEL": "תיאור:",
+ "PLACEHOLDER": "הזן תיאור"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "מגבלות קיבולת תיבת דואר נכנס",
+ "ADD_BUTTON": "הוסף תיבת דואר נכנס",
+ "FIELD": {
+ "SELECT_INBOX": "בחר תיבת דואר נכנס",
+ "MAX_CONVERSATIONS": "מקסימום שיחות",
+ "SET_LIMIT": "הגדר מגבלה"
+ },
+ "EMPTY_STATE": "לא הוגדרה מגבלת תיבת דואר נכנס"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "כללי חריגה",
+ "DESCRIPTION": "שיחות העומדות בתנאים הבאים לא ייכללו בחישוב קיבולת הסוכן",
+ "TAGS": {
+ "LABEL": "אל תכלול שיחות מתויגות בתוויות ספציפיות",
+ "ADD_TAG": "הוסף תג",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "חפש ובחר תגים להוספה"
+ },
+ "EMPTY_STATE": "לא נוספו תגים למדיניות זו."
+ },
+ "DURATION": {
+ "LABEL": "אל תכלול שיחות ישנות יותר ממשך זמן מוגדר",
+ "PLACEHOLDER": "הגדר זמן"
+ }
+ },
+ "USERS": {
+ "LABEL": "סוכנים שהוקצו",
+ "DESCRIPTION": "הוסף סוכנים שעבורם מדיניות זו תחול.",
+ "ADD_BUTTON": "הוסף סוכן",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "חפש ובחר סוכנים להוספה",
+ "ADD_BUTTON": "הוסף"
+ },
+ "EMPTY_STATE": "לא נוספו סוכנים",
+ "API": {
+ "SUCCESS_MESSAGE": "הסוכן נוסף בהצלחה למדיניות",
+ "ERROR_MESSAGE": "הוספת הסוכן למדיניות נכשלה"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "מדיניות קיבולת הסוכן נמחקה בהצלחה",
+ "ERROR_MESSAGE": "מחיקת מדיניות קיבולת הסוכן נכשלה"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "מחק מדיניות",
+ "DESCRIPTION": "האם אתה בטוח שברצונך למחוק מדיניות זו? לא ניתן לבטל פעולה זו.",
+ "CONFIRM_BUTTON_LABEL": "מחק",
+ "CANCEL_BUTTON_LABEL": "ביטול"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/signup.json b/app/javascript/dashboard/i18n/locale/he/signup.json
index a8d580aa4..81af889f4 100644
--- a/app/javascript/dashboard/i18n/locale/he/signup.json
+++ b/app/javascript/dashboard/i18n/locale/he/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "צור חשבון",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "הירשם",
"TESTIMONIAL_HEADER": "כל מה שצריך זה צעד אחד כדי להתקדם",
"TESTIMONIAL_CONTENT": "אתה במרחק צעד אחד מלהפעיל את הלקוחות שלך, לשמר אותם ולמצוא חדשים.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "מייל עבודה",
- "PLACEHOLDER": "הזן את כתובת הדוא\"ל שלך בעבודה. למשל: bruce@wayne.enterprises",
+ "PLACEHOLDER": "הכנס את כתובת הדוא\"ל של מקום העבודה שלך. לדוגמא: bruce{'@'}wayne{'.'}enterprises",
"ERROR": "אנא הזן כתובת דוא\"ל חוקית לעבודה"
},
"PASSWORD": {
"LABEL": "סיסמה",
"PLACEHOLDER": "סיסמה",
"ERROR": "הסיסמה קצרה מדי",
- "IS_INVALID_PASSWORD": "הסיסמה צריכה להכיל לפחות אות אחת גדולה, אות קטנה אחת, מספר אחד ותו מיוחד אחד"
+ "IS_INVALID_PASSWORD": "הסיסמה צריכה להכיל לפחות אות אחת גדולה, אות קטנה אחת, מספר אחד ותו מיוחד אחד",
+ "REQUIREMENTS_LENGTH": "לפחות 6 תווים",
+ "REQUIREMENTS_UPPERCASE": "לפחות אות אחת גדולה",
+ "REQUIREMENTS_LOWERCASE": "לפחות אות אחת קטנה",
+ "REQUIREMENTS_NUMBER": "לפחות מספר אחד",
+ "REQUIREMENTS_SPECIAL": "לפחות תו מיוחד אחד"
},
"CONFIRM_PASSWORD": {
"LABEL": "אמת סיסמה",
"PLACEHOLDER": "אמת סיסמה",
- "ERROR": "סיסמה לא מתאימה"
+ "ERROR": "סיסמאות לא תואמות"
},
"API": {
"SUCCESS_MESSAGE": "ההרשמה הצליחה",
"ERROR_MESSAGE": "לא ניתן להתחבר לשרת Woot, נסה שוב מאוחר יותר"
},
"SUBMIT": "צור חשבון",
- "HAVE_AN_ACCOUNT": "כבר יש לך חשבון?"
+ "HAVE_AN_ACCOUNT": "כבר יש לך חשבון?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "שלח מחדש דוא\"ל אימות",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/sla.json b/app/javascript/dashboard/i18n/locale/he/sla.json
index 9f4524f2c..ad95b92fa 100644
--- a/app/javascript/dashboard/i18n/locale/he/sla.json
+++ b/app/javascript/dashboard/i18n/locale/he/sla.json
@@ -1,41 +1,71 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "אין פריטים התואמים לשאילתה זו",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "הסכמי רמת שירות (SLA)",
+ "ADD_ACTION": "הוסף SLA",
+ "ADD_ACTION_LONG": "צור מדיניות SLA חדשה",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "למד עוד על SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "מאחזר SLA",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "שדרג כדי ליצור SLA",
+ "AVAILABLE_ON": "תכונת SLA זמינה רק בתוכניות Business ו-Enterprise.",
+ "UPGRADE_PROMPT": "שדרג את התוכנית שלך כדי לקבל גישה לתכונות מתקדמות כמו ניהול צוות, אוטומציות, תכונות מותאמות אישית ועוד.",
+ "UPGRADE_NOW": "שדרג עכשיו",
+ "CANCEL_ANYTIME": "תוכל לשנות או לבטל את התוכנית שלך בכל עת"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "תכונת SLA זמינה רק בתוכניות בתשלום.",
+ "UPGRADE_PROMPT": "שדרג לתוכנית בתשלום כדי לגשת לתכונות מתקדמות כמו יומני ביקורת, קיבולת סוכנים ועוד.",
+ "ASK_ADMIN": "אנא פנה למנהל המערכת שלך לצורך השדרוג."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "שם",
- "תיאור",
- "FRT",
- "NRT",
- "RT",
- "שעות פעילות"
- ]
+ "404": "אין SLA זמין בחשבון זה.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "בעיות שהועלו על ידי לקוחות Enterprise, הדורשות תשומת לב מיידית.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "בעיות שהועלו על ידי לקוחות Enterprise, שיש לאשר במהירות."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "סף זמן תגובה ראשונה",
+ "NRT": "סף זמן תגובה הבאה",
+ "RT": "סף זמן סגירה",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
+ "LABEL": "שם SLA",
+ "PLACEHOLDER": "שם SLA",
+ "REQUIRED_ERROR": "שם SLA נדרש",
"MINIMUM_LENGTH_ERROR": "נדרש אורך מינימלי 2",
"VALID_ERROR": "רק אלפבית, מספרים, מקף וקו תחתון מותרים"
},
"DESCRIPTION": {
"LABEL": "תיאור",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "SLA עבור לקוחות פרימיום"
},
"FIRST_RESPONSE_TIME": {
"LABEL": "זמן תגובה ראשון",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "זמן תגובה הבאה",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
@@ -44,10 +74,10 @@
},
"BUSINESS_HOURS": {
"LABEL": "שעות פעילות",
- "PLACEHOLDER": "Only during business hours"
+ "PLACEHOLDER": "רק בשעות פעילות"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "הסף צריך להיות מספר וגדול מאפס"
},
"EDIT": "ערוך",
"CREATE": "צור",
@@ -55,19 +85,33 @@
"CANCEL": "ביטול"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "הוסף SLA",
+ "DESC": "הבטחות ידידותיות לשירות נהדר!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA נוסף בהצלחה",
"ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "מחק SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA נמחק בהצלחה",
"ERROR_MESSAGE": "היתה שגיאה, בקשה נסה שוב"
+ },
+ "CONFIRM": {
+ "TITLE": "אשר מחיקה",
+ "MESSAGE": "האם אתה בטוח שברצונך למחוק ",
+ "YES": "כן, מחק ",
+ "NO": "לא, השאר "
}
+ },
+ "EVENTS": {
+ "TITLE": "החמצות SLA",
+ "FRT": "זמן תגובה ראשונה",
+ "NRT": "זמן תגובה הבאה",
+ "RT": "זמן סגירה",
+ "SHOW_MORE": "{count} נוספים",
+ "HIDE": "הסתר {count} שורות"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/he/snooze.json b/app/javascript/dashboard/i18n/locale/he/snooze.json
new file mode 100644
index 000000000..358275d42
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "דקות",
+ "HOUR": "hour",
+ "HOURS": "שעות",
+ "DAY": "יום",
+ "DAYS": "ימים",
+ "WEEK": "יום",
+ "WEEKS": "weeks",
+ "MONTH": "שבוע",
+ "MONTHS": "months",
+ "YEAR": "חודש",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "מחר",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "שבוע הבא",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "מתוך",
+ "AFTER": "after",
+ "WEEK": "יום",
+ "DAY": "יום"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
index 70683fe9e..3fdaa1e68 100644
--- a/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/he/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "צור צוות חדש",
"HEADER": "צוותים",
- "SIDEBAR_TXT": "צוותים
צוותים מאפשרים לך לארגן את הסוכנים שלך בקבוצות על סמך תחומי האחריות שלהם.
סוכן יכול להיות חלק ממספר צוותים. אתה יכול להקצות שיחות לצוות כאשר אתה עובד בשיתוף פעולה.
",
+ "LOADING": "מאחזר צוותים",
+ "DESCRIPTION": "צוותים מאפשרים לך לארגן סוכנים לקבוצות על בסיס תחומי האחריות שלהם. סוכן יכול להשתייך למספר צוותים. בעבודה שיתופית, תוכל להקצות שיחות לצוותים ספציפיים.",
+ "LEARN_MORE": "למד עוד על צוותים",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "חפש צוותים...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "לא נוצרו צוותים בחשבון זה.",
- "EDIT_TEAM": "ערוך צוות"
+ "EDIT_TEAM": "ערוך צוות",
+ "NONE": "כלום"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "הוסף סוכנים לצוות",
- "TITLE": "הוסף סוכנים לצוות - %{teamName}",
+ "TITLE": "הוסף סוכנים לצוות - {teamName}",
"DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. זה מאפשר לך לשתף פעולה כצוות בשיחות, לקבל התראות על אירועים חדשים באותה שיחה."
},
- "WIZARD": [
- {
- "title": "צור",
- "route": "settings_teams_new",
- "body": "צור צוות חדש של סוכנים."
- },
- {
- "title": "הוסף נציג",
- "route": "settings_teams_add_agents",
- "body": "הוסף סוכנים לצוות."
- },
- {
- "title": "סיים",
- "route": "settings_teams_finish",
- "body": "אתם מוכנים לצאת לדרך!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "צור",
+ "BODY": "צור צוות חדש של סוכנים."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "הוסף נציג",
+ "BODY": "הוסף סוכנים לצוות."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "סיים",
+ "BODY": "אתם מוכנים לצאת לדרך!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "עדכן סוכנים בצוות",
- "TITLE": "הוסף סוכנים לצוות - %{teamName}",
+ "TITLE": "הוסף סוכנים לצוות - {teamName}",
"DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. כל הסוכנים שנוספו יקבלו הודעה כאשר שיחה תוקצה לצוות זה."
},
- "WIZARD": [
- {
- "title": "פרטי צוות",
- "route": "settings_teams_edit",
- "body": "שנה שם, תיאור ופרטים נוספים."
- },
- {
- "title": "עריכת סוכנים",
- "route": "settings_teams_edit_members",
- "body": "ערוך סוכנים בצוות שלך."
- },
- {
- "title": "סיים",
- "route": "settings_teams_edit_finish",
- "body": "אתם מוכנים לצאת לדרך!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "פרטי צוות",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "שנה שם, תיאור ופרטים נוספים."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "עריכת סוכנים",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "ערוך סוכנים בצוות שלך."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "סיים",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "אתם מוכנים לצאת לדרך!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "לא ניתן לשמור את פרטי הצוות. נסה שוב."
},
"AGENTS": {
"AGENT": "סוכן",
- "EMAIL": "מייל",
+ "EMAIL": "אימייל",
"BUTTON_TEXT": "הוסף נציגים",
"ADD_AGENTS": "הוספת סוכנים לצוות שלך...",
"SELECT": "בחר",
"SELECT_ALL": "בחר את כל הסוכנים",
- "SELECTED_COUNT": "%{selected} מתוך %{total} סוכנים שנבחרו."
+ "SELECTED_COUNT": "{selected} מתוך {total} סוכנים שנבחרו."
},
"ADD": {
- "TITLE": "הוסף סוכנים לצוות - %{teamName}",
+ "TITLE": "הוסף סוכנים לצוות - {teamName}",
"DESC": "הוסף סוכנים לצוות החדש שלך שנוצר. זה מאפשר לך לשתף פעולה כצוות בשיחות, לקבל התראות על אירועים חדשים באותה שיחה.",
"SELECT": "בחר",
"SELECT_ALL": "בחר את כל הסוכנים",
- "SELECTED_COUNT": "%{selected} מתוך %{total} סוכנים שנבחרו.",
+ "SELECTED_COUNT": "{selected} מתוך {total} סוכנים שנבחרו.",
"BUTTON_TEXT": "הוסף נציגים",
"AGENT_VALIDATION_ERROR": "בחר סוכן אחד לפחות."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "לא ניתן למחוק את הצוות. נסה שוב."
},
"CONFIRM": {
- "TITLE": "האם אתה בטוח רוצה למחוק - %{teamName}",
+ "TITLE": "האם אתה בטוח שברצונך למחוק את הצוות?",
"PLACE_HOLDER": "אנא הקלד {teamName} כדי לאשר",
"MESSAGE": "מחיקת הצוות תסיר את הקצאת הצוות מהשיחות שהוקצו לצוות זה.",
"YES": "מחק ",
diff --git a/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json
index 78964f044..420ac4ca7 100644
--- a/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/he/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "תבניות וואטסאפ",
- "SUBTITLE": "בחר את תבנית הווטסאפ שברצונך לשלוח",
- "TEMPLATE_SELECTED_SUBTITLE": "עיבוד %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "חפש תבניות",
- "NO_TEMPLATES_FOUND": "לא נמצאו תבניות עבור",
- "LABELS": {
- "LANGUAGE": "שפה",
- "TEMPLATE_BODY": "גוף התבנית",
- "CATEGORY": "קטגוריה"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "משתנים",
- "VARIABLE_PLACEHOLDER": "הזן ערך %{variable}",
- "GO_BACK_LABEL": "חזור",
- "SEND_MESSAGE_LABEL": "לשלוח הודעה",
- "FORM_ERROR_MESSAGE": "נא למלא את כל המשתנים לפני השליחה"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "תבניות וואטסאפ",
+ "SUBTITLE": "בחר את תבנית הווטסאפ שברצונך לשלוח",
+ "TEMPLATE_SELECTED_SUBTITLE": "הגדר תבנית: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "חפש תבניות",
+ "NO_TEMPLATES_FOUND": "לא נמצאו תבניות עבור",
+ "HEADER": "כותרת עליונה",
+ "BODY": "גוף",
+ "FOOTER": "כותרת תחתונה",
+ "BUTTONS": "כפתורים",
+ "CATEGORY": "קטגוריה",
+ "MEDIA_CONTENT": "תוכן מדיה",
+ "MEDIA_CONTENT_FALLBACK": "תוכן מדיה",
+ "NO_TEMPLATES_AVAILABLE": "אין תבניות WhatsApp זמינות. לחץ על רענן כדי לסנכרן תבניות מ-WhatsApp.",
+ "REFRESH_BUTTON": "רענן תבניות",
+ "REFRESH_SUCCESS": "רענון התבניות הופעל. העדכון עשוי להימשך כמה דקות.",
+ "REFRESH_ERROR": "רענון התבניות נכשל. אנא נסה שוב.",
+ "LABELS": {
+ "LANGUAGE": "שפה",
+ "TEMPLATE_BODY": "גוף התבנית",
+ "CATEGORY": "קטגוריה"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "משתנים",
+ "LANGUAGE": "שפה",
+ "CATEGORY": "קטגוריה",
+ "VARIABLE_PLACEHOLDER": "הזן ערך {variable}",
+ "GO_BACK_LABEL": "חזור",
+ "SEND_MESSAGE_LABEL": "לשלוח הודעה",
+ "FORM_ERROR_MESSAGE": "נא למלא את כל המשתנים לפני השליחה",
+ "MEDIA_HEADER_LABEL": "כותרת עליונה {type}",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "הזן דקות תפוגה",
+ "BUTTON_PARAMETERS": "פרמטרים של כפתורים",
+ "BUTTON_LABEL": "כפתור {index}",
+ "COUPON_CODE": "הזן קוד קופון (מקסימום 15 תווים)",
+ "MEDIA_URL_LABEL": "הזן כתובת URL של {type}",
+ "DOCUMENT_NAME_PLACEHOLDER": "הזן שם קובץ מסמך (לדוגמה, Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "הזן פרמטר כפתור"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/he/yearInReview.json b/app/javascript/dashboard/i18n/locale/he/yearInReview.json
new file mode 100644
index 000000000..6597a02ca
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/he/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "סגור",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "שיחות",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "הורד",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json
index 170f01d7f..4b9226f8f 100644
--- a/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hi/advancedFilters.json
@@ -1,7 +1,7 @@
{
"FILTER": {
"TITLE": "Filter conversations",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
+ "SUBTITLE": "नीचे अपने फ़िल्टर जोड़ें और चैट अव्यवस्था को दूर करने के लिए 'फ़िल्टर लागू करें' पर क्लिक करें।",
"EDIT_CUSTOM_FILTER": "Edit Folder",
"CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
"ADD_NEW_FILTER": "Add filter",
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/hi/agentBots.json b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
index fb744b4a9..c17ec60d0 100644
--- a/app/javascript/dashboard/i18n/locale/hi/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hi/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
index d711762fa..c90a429aa 100644
--- a/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Add Agent",
"LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
index 64a0e83d6..31b175812 100644
--- a/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/auditLogs.json b/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
index bb3007975..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hi/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 469df1c24..2c4852dc8 100644
--- a/app/javascript/dashboard/i18n/locale/hi/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Note",
+ "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",
+ "COMPANY_NAME": "Company",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
index 6af8316e9..6b922bc7b 100644
--- a/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hi/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/campaign.json b/app/javascript/dashboard/i18n/locale/hi/campaign.json
index bbcc463ee..f1a3397f2 100644
--- a/app/javascript/dashboard/i18n/locale/hi/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/hi/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "रद्द करें",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "रद्द करें"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "रद्द करें",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "रद्द करें"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp अभियान",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "कोई WhatsApp अभियान उपलब्ध नहीं है",
+ "SUBTITLE": "अपने ग्राहकों तक सीधे पहुँचने के लिए एक WhatsApp अभियान शुरू करें। आसानी से ऑफ़र भेजें या घोषणाएँ करें। शुरू करने के लिए 'अभियान बनाएँ' पर क्लिक करें।"
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "WhatsApp अभियान बनाएं",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "एक टेम्पलेट चुनें",
+ "INFO": "इस अभियान मे उपयोग करने के लिए टेम्पलेट चुनिए।",
+ "ERROR": "टेम्पलेट की अव्यश्कता है",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "{variable} के लिए मूल्य दर्ज करें"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp अभियान सफलतापूर्वक बनाया गया",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
index 082afcb84..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/hi/chatlist.json b/app/javascript/dashboard/i18n/locale/hi/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/hi/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hi/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/companies.json b/app/javascript/dashboard/i18n/locale/hi/companies.json
new file mode 100644
index 000000000..534205038
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contacts",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Company",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/components.json b/app/javascript/dashboard/i18n/locale/hi/components.json
new file mode 100644
index 000000000..fd9f092a5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "रद्द करें",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/contact.json b/app/javascript/dashboard/i18n/locale/hi/contact.json
index 5186fda9a..93ff820eb 100644
--- a/app/javascript/dashboard/i18n/locale/hi/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hi/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP Address",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
"TITLE": "Previous Conversations"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Custom Attributes",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "PREVIOUS_CONVERSATIONS": "Previous Conversations",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edit contact",
"DESC": "Edit contact details"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacts",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacts"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "रद्द करें",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "COMPANY": "Company",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Yes, Delete",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Company",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Enter the company name"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Yes, Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "रद्द करें",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Delete",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/contactFilters.json b/app/javascript/dashboard/i18n/locale/hi/contactFilters.json
index 09a543984..4c62f0789 100644
--- a/app/javascript/dashboard/i18n/locale/hi/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hi/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/hi/contentTemplates.json b/app/javascript/dashboard/i18n/locale/hi/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/conversation.json b/app/javascript/dashboard/i18n/locale/hi/conversation.json
index cca1458b9..509afd4e7 100644
--- a/app/javascript/dashboard/i18n/locale/hi/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hi/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " to get started",
"NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
"SEARCH_MESSAGES": "Search for messages in conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Copilot को अतिरिक्त प्रांप्ट दें, या कुछ और पूछें… फॉलो-अप भेजने के लिए एंटर दबाएँ",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Reply",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot सोच रहा है",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Cancel"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Delete",
"CANCEL": "Cancel"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/customRole.json b/app/javascript/dashboard/i18n/locale/hi/customRole.json
new file mode 100644
index 000000000..6c9b164fc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "रद्द करें",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/datePicker.json b/app/javascript/dashboard/i18n/locale/hi/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/general.json b/app/javascript/dashboard/i18n/locale/hi/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/generalSettings.json b/app/javascript/dashboard/i18n/locale/hi/generalSettings.json
index 185d328a5..e97d8bc55 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": "आप एजेंट लिमिट पार कर चुके है।आपका प्लान {allowedAgents} एजेंट्स की अनुमति देता है।",
+ "NON_ADMIN": "कृपया प्लान को अपग्रेड करने और सभी सुविधाओं का उपयोग जारी रखने के लिए अपने व्यवस्थापक से संपर्क करें।"
+ },
"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": "अपना खाता हटाएं",
+ "NOTE": "एक बार जब आप अपना खाता हटा देंगे, तो आपका सारा डेटा हटा दिया जाएगा।",
+ "BUTTON_TEXT": "अपना खाता हटाएं",
+ "CONFIRM": {
+ "TITLE": "खाता हटाएं",
+ "MESSAGE": "आपका खाता हटाना अपरिवर्तनीय है। नीचे अपने खाते का नाम दर्ज करे ये पुष्टि करने के लिए की आप इसे निरंतर रूप से ख़त्म करना चाहते है।",
+ "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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
index 467b0def9..f80deb4fb 100644
--- a/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hi/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Uploading...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Back",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Delete"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "मेरा",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "EDIT": "Update",
+ "CANCEL": "रद्द करें"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Delete"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Create",
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Edit",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Delete"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Remove"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Uploading...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancel",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/inbox.json b/app/javascript/dashboard/i18n/locale/hi/inbox.json
index dcac5459f..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/hi/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/hi/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
index ba83549cf..3b3bdfa93 100644
--- a/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "There are no inboxes attached to this account."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Choose Channel",
+ "BODY": "Choose the provider you want to integrate with Chatwoot."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Create Inbox",
+ "BODY": "Authenticate your account and create an inbox."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the created inbox."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "You are all set to go!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Inbox Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Select a page from the list",
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Please enter a valid URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website Domain",
"PLACEHOLDER": "Enter your website domain (eg: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "This field is required"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
+ "LABEL": "Phone Number",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "This field is required"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "This field is required"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Inbox Name",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Phone Number",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Channel Name",
"PLACEHOLDER": "Please enter a channel name",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Click here",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agents",
"DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authenticating you with Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Take me there",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reauthorize",
"VIEW": "View",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agents",
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "Delete",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat with us"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Typically replies in a few minutes",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/index.js b/app/javascript/dashboard/i18n/locale/hi/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/hi/index.js
+++ b/app/javascript/dashboard/i18n/locale/hi/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/integrations.json b/app/javascript/dashboard/i18n/locale/hi/integrations.json
index 45587f2db..0438ba3d1 100644
--- a/app/javascript/dashboard/i18n/locale/hi/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hi/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "रद्द करें",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Cancel",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Please enter a valid URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "There are no webhooks configured for this account.",
"TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Actions"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Edit",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Yes, Delete ",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Delete",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Actions"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Create",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Select team",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Create",
+ "CANCEL": "रद्द करें",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Labels",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "और जानें",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "सहायक",
+ "SWITCH_ASSISTANT": "सहायकों के बीच स्विच करें",
+ "NEW_ASSISTANT": "सहायक बनाएँ",
+ "EMPTY_LIST": "कोई सहायक नहीं मिला, कृपया शुरुआत करने के लिए एक बनाएँ"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Copilot के साथ शुरुआत करें",
+ "KICK_OFF_MESSAGE": "क्या आपको तेज़ सारांश चाहिए, पिछले संवाद देखना है, या बेहतर उत्तर ड्राफ्ट करना है? Copilot यहाँ आपके काम को तेजी से करने के लिए है।",
+ "SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "प्रतिक्रिया उत्पन्न करने में त्रुटि हुई। कृपया पुनः प्रयास करें।",
+ "LOADER": "Captain सोच रहा है",
+ "YOU": "You",
+ "USE": "इसे उपयोग करें",
+ "RESET": "रीसेट करें",
+ "SHOW_STEPS": "कदम दिखाएं",
+ "SELECT_ASSISTANT": "सहायक चुनें",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "इस वार्तालाप का सारांश बनाएं",
+ "CONTENT": "ग्राहक और सपोर्ट एजेंट के बीच चर्चा किए गए मुख्य बिंदुओं का सारांश बनाएं, जिसमें ग्राहक की चिंताएं, प्रश्न, और सपोर्ट एजेंट द्वारा प्रदान किए गए समाधान या उत्तर शामिल हों।"
+ },
+ "SUGGEST": {
+ "LABEL": "उत्तर सुझाएं",
+ "CONTENT": "ग्राहक की पूछताछ का विश्लेषण करें, और एक उत्तर ड्राफ्ट करें जो उनकी चिंताओं या प्रश्नों को प्रभावी रूप से संबोधित करता हो। उत्तर स्पष्ट, संक्षिप्त, और सहायक जानकारी प्रदान करे।"
+ },
+ "RATE": {
+ "LABEL": "इस वार्तालाप को रेट करें",
+ "CONTENT": "वार्तालाप की समीक्षा करें कि यह ग्राहक की आवश्यकताओं को कितना अच्छी तरह पूरा करता है। टोन, स्पष्टता, और प्रभावशीलता के आधार पर 5 में से रेटिंग साझा करें।"
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "उच्च प्राथमिकता वाले वार्तालाप",
+ "CONTENT": "मुझे सभी उच्च प्राथमिकता खुले वार्तालापों का सारांश दें। वार्तालाप आईडी, ग्राहक का नाम (यदि उपलब्ध हो), अंतिम संदेश की सामग्री, और नियुक्त एजेंट शामिल करें। यदि प्रासंगिक हो तो स्थिति के अनुसार समूह बनाएं।"
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "संपर्क सूचीबद्ध करें",
+ "CONTENT": "मुझे शीर्ष 10 संपर्कों की सूची दिखाएं। नाम, ईमेल या फोन नंबर (यदि उपलब्ध हो), अंतिम बार देखा गया समय, टैग (यदि कोई हो) शामिल करें।"
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "सहायक",
+ "MESSAGE_PLACEHOLDER": "Type your message...",
+ "HEADER": "परीक्षण क्षेत्र",
+ "DESCRIPTION": "इस.Playground का उपयोग अपने सहायक को संदेश भेजने के लिए करें और जांचें कि वह सटीक, तेज़ और आपकी अपेक्षित टोन में प्रतिक्रिया देता है।",
+ "CREDIT_NOTE": "यहाँ भेजे गए संदेश आपके Captain क्रेडिट्स में गिने जाएंगे।"
+ },
+ "PAYWALL": {
+ "TITLE": "Captain AI उपयोग करने के लिए अपग्रेड करें",
+ "AVAILABLE_ON": "Captain मुफ्त योजना पर उपलब्ध नहीं है।",
+ "UPGRADE_PROMPT": "हमारे सहायकों, Copilot और अधिक तक पहुंच पाने के लिए अपनी योजना अपग्रेड करें।",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI केवल एंटरप्राइज योजनाओं में उपलब्ध है।",
+ "UPGRADE_PROMPT": "हमारे सहायकों, Copilot और अधिक तक पहुंच पाने के लिए अपनी योजना अपग्रेड करें।",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "आपने अपनी प्रतिक्रिया सीमा का 80% से अधिक उपयोग कर लिया है। Captain AI का उपयोग जारी रखने के लिए कृपया अपग्रेड करें।",
+ "DOCUMENTS": "दस्तावेज़ सीमा पूरी हो गई है। Captain AI का उपयोग जारी रखने के लिए अपग्रेड करें।"
+ },
+ "FORM": {
+ "CANCEL": "रद्द करें",
+ "CREATE": "Create",
+ "EDIT": "Update"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Cancel",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancel",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "All"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Pending",
+ "APPROVED": "Approved",
+ "ALL": "All"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edit",
+ "DELETE_RESPONSE": "Delete"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
index 09ac38551..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hi/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/hi/login.json b/app/javascript/dashboard/i18n/locale/hi/login.json
index 941565463..8bf01d710 100644
--- a/app/javascript/dashboard/i18n/locale/hi/login.json
+++ b/app/javascript/dashboard/i18n/locale/hi/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email eg: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/macros.json b/app/javascript/dashboard/i18n/locale/hi/macros.json
index 3a59d4f26..e51975921 100644
--- a/app/javascript/dashboard/i18n/locale/hi/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hi/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/mfa.json b/app/javascript/dashboard/i18n/locale/hi/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/onboarding.json b/app/javascript/dashboard/i18n/locale/hi/onboarding.json
new file mode 100644
index 000000000..d7c960002
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/report.json b/app/javascript/dashboard/i18n/locale/hi/report.json
index 6ff84c5f5..45c40de58 100644
--- a/app/javascript/dashboard/i18n/locale/hi/report.json
+++ b/app/javascript/dashboard/i18n/locale/hi/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Resolution Count",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/search.json b/app/javascript/dashboard/i18n/locale/hi/search.json
index fbafaf73c..f23a14630 100644
--- a/app/javascript/dashboard/i18n/locale/hi/search.json
+++ b/app/javascript/dashboard/i18n/locale/hi/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/settings.json b/app/javascript/dashboard/i18n/locale/hi/settings.json
index ca734fe43..51f673f15 100644
--- a/app/javascript/dashboard/i18n/locale/hi/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
"AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profile Image",
"ERROR": "Please fix form errors",
"REMOVE_IMAGE": "Remove",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,45 @@
"NOTE": "Updating your password would reset your logins in multiple devices.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "NOTE": "This token can be used if you are building an API based integration",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "None",
+ "MINE": "Assigned",
+ "ALL": "All",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "None",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Email Notifications",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
"CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Your notification preferences are updated successfully",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "REQUEST_PUSH": "Enable push notifications",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profile Image"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Busy",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "days trial remaining.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Submit"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifying...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxes",
+ "CAPTAIN_SETTINGS": "Settings",
"HOME": "Home",
"AGENTS": "Agents",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Conversations",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agents",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Settings"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Chat with us"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancel",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Company Name",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Submit",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Delete",
+ "CANCEL_BUTTON_LABEL": "Cancel"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/signup.json b/app/javascript/dashboard/i18n/locale/hi/signup.json
index 10ddc5b86..d16b10839 100644
--- a/app/javascript/dashboard/i18n/locale/hi/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hi/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/sla.json b/app/javascript/dashboard/i18n/locale/hi/sla.json
index 806746b75..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/hi/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hi/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/snooze.json b/app/javascript/dashboard/i18n/locale/hi/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
index f9ecaaaae..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hi/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/hi/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/hi/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/hi/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/hi/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/hi/yearInReview.json b/app/javascript/dashboard/i18n/locale/hi/yearInReview.json
new file mode 100644
index 000000000..414cee310
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hi/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json
index f69ce988f..6ab65f22e 100644
--- a/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hr/advancedFilters.json
@@ -1,101 +1,117 @@
{
"FILTER": {
- "TITLE": "Filter conversations",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
- "SUBMIT_BUTTON_LABEL": "Apply filters",
- "UPDATE_BUTTON_LABEL": "Update folder",
- "CANCEL_BUTTON_LABEL": "Cancel",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "Value is required.",
- "TOOLTIP_LABEL": "Filter conversations",
+ "TITLE": "Filtriraj razgovore",
+ "SUBTITLE": "Dodajte svoje filtre ispod i pritisnite 'Primijeni filtre' da biste se probili kroz nered u chatu.",
+ "EDIT_CUSTOM_FILTER": "Uredi mapu",
+ "CUSTOM_VIEWS_SUBTITLE": "Dodajte ili uklonite filtre i ažurirajte svoju mapu.",
+ "ADD_NEW_FILTER": "Dodaj filter",
+ "FILTER_DELETE_ERROR": "Ups, čini se da ne možemo ništa spremiti! Molimo dodajte barem jedan filter za spremanje.",
+ "SUBMIT_BUTTON_LABEL": "Primijeni filtre",
+ "UPDATE_BUTTON_LABEL": "Ažuriraj mapu",
+ "CANCEL_BUTTON_LABEL": "Odustani",
+ "CLEAR_BUTTON_LABEL": "Očisti filtre",
+ "FOLDER_LABEL": "Naziv mape",
+ "FOLDER_QUERY_LABEL": "Upit mape",
+ "EMPTY_VALUE_ERROR": "Vrijednost je obavezna.",
+ "TOOLTIP_LABEL": "Filtriraj razgovore",
"QUERY_DROPDOWN_LABELS": {
- "AND": "AND",
- "OR": "OR"
+ "AND": "I",
+ "OR": "ILI"
},
+ "INPUT_PLACEHOLDER": "Unesite vrijednost",
"OPERATOR_LABELS": {
- "equal_to": "Equal to",
- "not_equal_to": "Not equal to",
- "contains": "Contains",
- "does_not_contain": "Does not contain",
- "is_present": "Is present",
- "is_not_present": "Is not present",
- "is_greater_than": "Is greater than",
- "is_less_than": "Is lesser than",
- "days_before": "Is x days before",
- "starts_with": "Počinje s"
+ "equal_to": "Jednako",
+ "not_equal_to": "Nije jednako",
+ "does_not_contain": "Ne sadrži",
+ "is_present": "Prisutno je",
+ "is_not_present": "Nije prisutno",
+ "is_greater_than": "Veće je od",
+ "is_less_than": "Manje je od",
+ "days_before": "Je x dana prije",
+ "starts_with": "Počinje s",
+ "equalTo": "Jednako",
+ "notEqualTo": "Nije jednako",
+ "contains": "Sadrži",
+ "doesNotContain": "Ne sadrži",
+ "isPresent": "Prisutno je",
+ "isNotPresent": "Nije prisutno",
+ "isGreaterThan": "Veće je od",
+ "isLessThan": "Manje je od",
+ "daysBefore": "Je x dana prije",
+ "startsWith": "Počinje s"
},
"ATTRIBUTE_LABELS": {
- "TRUE": "True",
- "FALSE": "False"
+ "TRUE": "Istina",
+ "FALSE": "Neistina"
},
"ATTRIBUTES": {
"STATUS": "Status",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "Team name",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
- "LABELS": "Labels",
- "BROWSER_LANGUAGE": "Browser language",
+ "ASSIGNEE_NAME": "Ime dodijeljenog",
+ "INBOX_NAME": "Naziv sandučića",
+ "TEAM_NAME": "Naziv tima",
+ "CONVERSATION_IDENTIFIER": "Identifikator razgovora",
+ "CAMPAIGN_NAME": "Naziv kampanje",
+ "LABELS": "Oznake",
+ "BROWSER_LANGUAGE": "Jezik preglednika",
"PRIORITY": "Prioritet",
- "COUNTRY_NAME": "Country name",
- "REFERER_LINK": "Referer link",
- "CUSTOM_ATTRIBUTE_LIST": "List",
- "CUSTOM_ATTRIBUTE_TEXT": "Text",
- "CUSTOM_ATTRIBUTE_NUMBER": "Number",
- "CUSTOM_ATTRIBUTE_LINK": "Link",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "COUNTRY_NAME": "Ime zemlje",
+ "REFERER_LINK": "Povezica preporuke",
+ "CUSTOM_ATTRIBUTE_LIST": "Popis",
+ "CUSTOM_ATTRIBUTE_TEXT": "Tekst",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Broj",
+ "CUSTOM_ATTRIBUTE_LINK": "Povezica",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Kvačica",
"CREATED_AT": "Kreirano",
"LAST_ACTIVITY": "Zadnja aktivnost"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Vrijednost je obavezna",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "Standardni filteri",
+ "ADDITIONAL_FILTERS": "Dodatni filteri",
+ "CUSTOM_ATTRIBUTES": "Dodatni atributi"
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "Do you want to save this filter?",
- "LABEL": "Name this filter",
- "PLACEHOLDER": "Name your filter to refer it later.",
- "ERROR_MESSAGE": "Name is required.",
- "SAVE_BUTTON": "Save filter",
- "CANCEL_BUTTON": "Cancel",
+ "TITLE": "Želite li spremiti ovaj filteri?",
+ "LABEL": "Naziv ovog filtera",
+ "PLACEHOLDER": "Dajte ime ovom filteru da ga se prisjetite kasnije.",
+ "ERROR_MESSAGE": "Ime je obavezno.",
+ "SAVE_BUTTON": "Spremi filter",
+ "CANCEL_BUTTON": "Odustani",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder created successfully.",
- "ERROR_MESSAGE": "Error while creating folder."
+ "SUCCESS_MESSAGE": "Mapa uspješno kreirana.",
+ "ERROR_MESSAGE": "Greška prilikom brisanja mape."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment created successfully.",
- "ERROR_MESSAGE": "Error while creating segment."
+ "SUCCESS_MESSAGE": "Segment uspješno kreiran.",
+ "ERROR_MESSAGE": "Greška prilikom kreiranja segmenta."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "Uredi folder"
},
"DELETE": {
- "DELETE_BUTTON": "Delete filter",
+ "DELETE_BUTTON": "Izbriši filter",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the filter ",
- "YES": "Yes, delete",
- "NO": "No, keep it"
+ "TITLE": "Potvrdi brisanje",
+ "MESSAGE": "Jeste li sigurno da želite izbrisati filter?",
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting folder."
+ "SUCCESS_MESSAGE": "Folder uspješno izbrisan.",
+ "ERROR_MESSAGE": "Greška prilikom brisanja mape."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting segment."
+ "SUCCESS_MESSAGE": "Segment uspješno izbrisan.",
+ "ERROR_MESSAGE": "Greška prilikom brisanja segmenta."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/agentBots.json b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
index d65a736a7..1e5019dca 100644
--- a/app/javascript/dashboard/i18n/locale/hr/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hr/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "Botovi",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Bot name",
- "PLACEHOLDER": "Name your bot.",
- "ERROR": "Potrebno je unijeti ime Bota."
- },
- "DESCRIPTION": {
- "LABEL": "Bot description",
- "PLACEHOLDER": "Što ovaj Bot radi?"
- },
- "BOT_CONFIG": {
- "ERROR": "Unesi iznad svoju CSML bot konfiguraciju.",
- "API_ERROR": "Your CSML configuration is invalid. Please fix it and try again."
- },
- "SUBMIT": "Validacija i pohrana"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "DESC": "Dodijelite Agent Bot svojoj pristigloj pošti. Oni mogu voditi početne razgovore i prebaciti ih živom agentu kada je to potrebno.",
"SUBMIT": "Ažuriraj",
- "DISCONNECT": "Disconnect bot",
+ "DISCONNECT": "Isključi Bota",
"SUCCESS_MESSAGE": "Uspješno ažuriran agentski bot.",
"DISCONNECTED_SUCCESS_MESSAGE": "Uspješno isključen agentski bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "ERROR_MESSAGE": "Nije moguće ažurirati agentskog bota, molimo pokušajte ponovno.",
+ "DISCONNECTED_ERROR_MESSAGE": "Nije moguće ažurirati agentskog bota, molimo pokušajte ponovno.",
+ "SELECT_PLACEHOLDER": "Izaberi Bota"
},
"ADD": {
- "TITLE": "Konfiguriraj novog bota",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "Odustani",
"API": {
"SUCCESS_MESSAGE": "Uspješno dodan Bot.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "ERROR_MESSAGE": "Nije moguće dodati bota, molimo pokušajte kasnije."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "Dohvat Botova...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL",
+ "ACTIONS": "Radnje"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Izbriši",
- "TITLE": "Delete bot",
- "SUBMIT": "Izbriši",
- "CANCEL_BUTTON_TEXT": "Odustani",
- "DESCRIPTION": "Jeste li sigurni da želite izbrisati ovog bota? Akciju nije moguće poništiti.",
+ "TITLE": "Izbriši Bota",
+ "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": "Could not delete bot. Please try again."
+ "ERROR_MESSAGE": "Nije moguće izbrisati bota, molimo pokušajte ponovno."
}
},
"EDIT": {
"BUTTON_TEXT": "Uredi",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Odustani",
+ "TITLE": "Uredi Bota",
"API": {
"SUCCESS_MESSAGE": "Bot uspješno izbrisan.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "ERROR_MESSAGE": "Nije moguće ažurirati bota, molimo pokušajte ponovno."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
index e5af8f609..87d8fe921 100644
--- a/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/agentMgmt.json
@@ -1,77 +1,80 @@
{
"AGENT_MGMT": {
- "HEADER": "Agents",
- "HEADER_BTN_TXT": "Add Agent",
- "LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "HEADER": "Agenti",
+ "HEADER_BTN_TXT": "Dodaj agenta",
+ "LOADING": "Dohvaćanje popisa agenata",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
"DESC": "You can add/remove agents to/in your team.",
- "NAME": "Name",
- "EMAIL": "EMAIL",
+ "NAME": "Ime",
+ "EMAIL": "E-pošta",
"STATUS": "Status",
- "ACTIONS": "Actions",
- "VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "ACTIONS": "Radnje",
+ "VERIFIED": "Potvrđen",
+ "VERIFICATION_PENDING": "Potvrda na čekanju",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
- "TITLE": "Add agent to your team",
+ "TITLE": "Dodaj agenta u svoj tim",
"DESC": "You can add people who will be able to handle support for your inboxes.",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"FORM": {
"NAME": {
- "LABEL": "Agent Name",
+ "LABEL": "Ime agenta",
"PLACEHOLDER": "Please enter a name of the agent"
},
"AGENT_TYPE": {
- "LABEL": "Role",
+ "LABEL": "Uloga",
"PLACEHOLDER": "Please select a role",
"ERROR": "Role is required"
},
"EMAIL": {
- "LABEL": "Email Address",
+ "LABEL": "Adresa e-pošte",
"PLACEHOLDER": "Please enter an email address of the agent"
},
- "SUBMIT": "Add Agent"
+ "SUBMIT": "Dodaj agenta"
},
"API": {
- "SUCCESS_MESSAGE": "Agent added successfully",
+ "SUCCESS_MESSAGE": "Uspješno dodan agent",
"EXIST_MESSAGE": "Agent email already in use, Please try another email address",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
- "SUCCESS_MESSAGE": "Agent deleted successfully",
+ "SUCCESS_MESSAGE": "Agent uspješno izbrisan",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
}
},
"EDIT": {
- "TITLE": "Edit agent",
+ "TITLE": "Uredi agenta",
"FORM": {
"NAME": {
- "LABEL": "Agent Name",
+ "LABEL": "Ime agenta",
"PLACEHOLDER": "Please enter a name of the agent"
},
"AGENT_TYPE": {
- "LABEL": "Role",
- "PLACEHOLDER": "Please select a role",
- "ERROR": "Role is required"
+ "LABEL": "Uloga",
+ "PLACEHOLDER": "Molimo odaberite ulogu",
+ "ERROR": "Potrebno je unijeti ulogu"
},
"EMAIL": {
- "LABEL": "Email Address",
+ "LABEL": "Adresa e-pošte",
"PLACEHOLDER": "Please enter an email address of the agent"
},
"AGENT_AVAILABILITY": {
@@ -79,21 +82,23 @@
"PLACEHOLDER": "Izaberi status raspoloživosti",
"ERROR": "Potrebna je raspoloživost"
},
- "SUBMIT": "Edit Agent"
+ "SUBMIT": "Uredi agenta"
},
- "BUTTON_TEXT": "Edit",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "BUTTON_TEXT": "Uredi",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"API": {
- "SUCCESS_MESSAGE": "Agent updated successfully",
+ "SUCCESS_MESSAGE": "Agent uspješno ažuriran",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"PASSWORD_RESET": {
- "ADMIN_RESET_BUTTON": "Reset Password",
+ "ADMIN_RESET_BUTTON": "Ponovno postvljanje lozinke",
"ADMIN_SUCCESS_MESSAGE": "An email with reset password instructions has been sent to the agent",
"SUCCESS_MESSAGE": "Agent password reset successfully",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "Nijedno"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
index 64a0e83d6..99fd0ee2b 100644
--- a/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/attributesMgmt.json
@@ -3,11 +3,28 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Tekst",
+ "NUMBER": "Broj",
+ "LINK": "Povezica",
+ "DATE": "Date",
+ "LIST": "Popis",
+ "CHECKBOX": "Kvačica"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"FORM": {
"NAME": {
"LABEL": "Display Name",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -58,17 +79,17 @@
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
- "NO": "Cancel"
+ "NO": "Odustani"
}
},
"EDIT": {
@@ -88,18 +109,19 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
- "EDIT": "Edit",
- "DELETE": "Delete"
+ "EDIT": "Uredi",
+ "DELETE": "Izbriši"
},
"EMPTY_RESULT": {
"404": "There are no custom attributes created",
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/auditLogs.json b/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
index bbf3034b0..12601fadf 100644
--- a/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hr/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logovi",
"HEADER_BTN_TXT": "Dodaj Audit Logove",
"LOADING": "Dohvat Audit Logova",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Ne postoji rezultat za zadano pretraživanje",
"SIDEBAR_TXT": "Audit Logovi
Audit Logovi su tragovi događaja i akcija u Chatwoot sustavu.
",
"LIST": {
"404": "Na ovom korisničkom računu nema dostupnih Audit Logova.",
"TITLE": "Upravljanje Audit Logovima",
"DESC": "Audit Logovi su tragovi događaja i akcija u Chatwoot sustavu.",
- "TABLE_HEADER": [
- "Korisnik",
- "Akcija",
- "IP adresa"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Korisnik",
+ "TIME": "Akcija",
+ "IP_ADDRESS": "IP adresa"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Audit Logovi su uspješno dohvaćeni",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 88056e60d..979ecfa91 100644
--- a/app/javascript/dashboard/i18n/locale/hr/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/automation.json
@@ -1,13 +1,17 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"FORM": {
"NAME": {
"LABEL": "Rule Name",
@@ -28,7 +32,7 @@
"LABEL": "Conditions"
},
"ACTIONS": {
- "LABEL": "Actions"
+ "LABEL": "Radnje"
}
},
"CONDITION_BUTTON_LABEL": "Add Condition",
@@ -39,23 +43,23 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Radnje"
+ },
"404": "No automation rules found"
},
"DELETE": {
"TITLE": "Delete Automation Rule",
- "SUBMIT": "Delete",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "SUBMIT": "Izbriši",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
},
"API": {
"SUCCESS_MESSAGE": "Automation rule deleted successfully",
@@ -65,7 +69,7 @@
"EDIT": {
"TITLE": "Edit Automation Rule",
"SUBMIT": "Update",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"API": {
"SUCCESS_MESSAGE": "Automation rule updated successfully",
"ERROR_MESSAGE": "Could not update automation rule, Please try again later"
@@ -79,10 +83,10 @@
}
},
"FORM": {
- "EDIT": "Edit",
+ "EDIT": "Uredi",
"CREATE": "Create",
- "DELETE": "Delete",
- "CANCEL": "Cancel",
+ "DELETE": "Izbriši",
+ "CANCEL": "Odustani",
"RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
},
"CONDITION": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -104,15 +110,84 @@
"DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
"ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
"DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
- "CONFIRMATION_LABEL": "Yes",
- "CANCEL_LABEL": "No"
+ "CONFIRMATION_LABEL": "Da",
+ "CANCEL_LABEL": "Ne"
},
"ATTACHMENT": {
"UPLOAD_ERROR": "Could not upload attachment, Please try again",
- "LABEL_IDLE": "Upload Attachment",
+ "LABEL_IDLE": "Prenesi privitak",
"LABEL_UPLOADING": "Prenosim...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Nijedno",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Promjena prioriteta",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Otvori razgovor",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Nisko",
+ "MEDIUM": "Srednje",
+ "HIGH": "Visoko",
+ "URGENT": "Hitno"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Note",
+ "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",
+ "COMPANY_NAME": "Company",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Tim",
+ "PRIORITY": "Prioritet",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
index 6af8316e9..79165bced 100644
--- a/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hr/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Odustani",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/campaign.json b/app/javascript/dashboard/i18n/locale/hr/campaign.json
index cbf061b30..d14359d7f 100644
--- a/app/javascript/dashboard/i18n/locale/hr/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/hr/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Poruka",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "od",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Odustani",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Poruka",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Odustani"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Odustani",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Poruka",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Odustani"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Odustani",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Proces {templateName}",
+ "LANGUAGE": "Jezik",
+ "CATEGORY": "Kategorija",
+ "VARIABLES_LABEL": "Varijable",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Odustani"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Poruka",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
index 15fbe05ac..93a70501d 100644
--- a/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/cannedMgmt.json
@@ -1,24 +1,28 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Saznajte više o unaprijed pripremljenim odgovorima",
+ "DESCRIPTION": "Unaprijed pripremljeni odgovori su već napisani predlošci za odgovore koji vam pomažu da brzo odgovorite na razgovor. Agenti mogu upisati znak '/' nakon kojeg slijedi kratki kod za umetanje unaprijed pripremljenog odgovora tijekom razgovora.",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Ne postoji rezultat za zadano pretraživanje.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Radnje"
+ }
},
"ADD": {
"TITLE": "Add canned response",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"FORM": {
"SHORT_CODE": {
"LABEL": "Short code",
@@ -39,7 +43,7 @@
},
"EDIT": {
"TITLE": "Edit canned response",
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"FORM": {
"SHORT_CODE": {
"LABEL": "Short code",
@@ -53,14 +57,14 @@
},
"SUBMIT": "Submit"
},
- "BUTTON_TEXT": "Edit",
+ "BUTTON_TEXT": "Uredi",
"API": {
"SUCCESS_MESSAGE": "Canned response is updated successfully.",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Canned response deleted successfully.",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
diff --git a/app/javascript/dashboard/i18n/locale/hr/chatlist.json b/app/javascript/dashboard/i18n/locale/hr/chatlist.json
index b94b35549..a7574ef2c 100644
--- a/app/javascript/dashboard/i18n/locale/hr/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hr/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/companies.json b/app/javascript/dashboard/i18n/locale/hr/companies.json
new file mode 100644
index 000000000..d93ebe563
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Ime",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Kreirano",
+ "LAST_ACTIVITY_AT": "Zadnja aktivnost",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contacts",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Company",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Odustani"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Ime",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/components.json b/app/javascript/dashboard/i18n/locale/hr/components.json
new file mode 100644
index 000000000..d3aa278ec
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Nisu pronađeni rezultati.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Nisu pronađeni rezultati.",
+ "SEARCHING": "Tražim..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Odustani",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/contact.json b/app/javascript/dashboard/i18n/locale/hr/contact.json
index 622e23d9a..25609fce2 100644
--- a/app/javascript/dashboard/i18n/locale/hr/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hr/contact.json
@@ -1,7 +1,7 @@
{
"CONTACT_PANEL": {
"NOT_AVAILABLE": "Not Available",
- "EMAIL_ADDRESS": "Email Address",
+ "EMAIL_ADDRESS": "Adresa e-pošte",
"PHONE_NUMBER": "Phone number",
"IDENTIFIER": "Identifier",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP Address",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
"TITLE": "Previous Conversations"
@@ -44,11 +53,12 @@
"MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
"UNMUTED_SUCCESS": "This contact is unblocked successfully.",
"SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "EDIT_LABEL": "Uredi",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Custom Attributes",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "PREVIOUS_CONVERSATIONS": "Previous Conversations",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,51 +66,12 @@
"TITLE": "Edit contact",
"DESC": "Edit contact details"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
"DESC": "Delete contact details",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete ",
"YES": "Yes, Delete",
"NO": "No, Keep"
@@ -113,7 +84,7 @@
"CONTACT_FORM": {
"FORM": {
"SUBMIT": "Submit",
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"AVATAR": {
"LABEL": "Contact Avatar"
},
@@ -127,7 +98,7 @@
},
"EMAIL_ADDRESS": {
"PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "Email Address",
+ "LABEL": "Adresa e-pošte",
"DUPLICATE": "This email address is in use for another contact.",
"ERROR": "Please enter a valid email address."
},
@@ -215,87 +186,24 @@
"HELP_TEXT": "Drag and drop files here or choose files to attach"
},
"SUBMIT": "Send message",
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"SUCCESS_MESSAGE": "Message sent!",
"GO_TO_CONVERSATION": "View",
"ERROR_MESSAGE": "Couldn't send! try again"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -307,7 +215,7 @@
},
"FORM": {
"CREATE": "Add attribute",
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"NAME": {
"LABEL": "Custom attribute name",
"PLACEHOLDER": "Eg: shopify id",
@@ -363,20 +271,396 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"CHILD_CONTACT": {
"ERROR": "Select a child contact to merge"
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakti",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Poruka",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakti"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "Odustani",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Došlo je do pogreške, molimo pokušajte ponovo"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Došlo je do pogreške, molimo pokušajte ponovo"
+ },
+ "SORT_BY": {
+ "LABEL": "Poredaj po",
+ "OPTIONS": {
+ "NAME": "Ime",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "COMPANY": "Company",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Zadnja aktivnost",
+ "CREATED_AT": "Kreirano"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Želite li spremiti ovaj filteri?",
+ "CONFIRM": "Spremi filter",
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Potvrdi brisanje",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Yes, Delete",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Ime",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Company",
+ "CREATED_AT": "Kreirano",
+ "LAST_ACTIVITY": "Zadnja aktivnost",
+ "REFERER_LINK": "Povezica preporuke",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Istina",
+ "BLOCKED_FALSE": "Neistina",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Očisti filtre",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Primijeni filtre",
+ "ADD_FILTER": "Dodaj filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Očisti filtre"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Unesi ime grada"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Enter the company name"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Potvrdi brisanje",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Yes, Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Da",
+ "NO": "Ne",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Unesite vrijednost"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Tražim...",
+ "BUTTONS": {
+ "CANCEL": "Odustani",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "napisao/la",
+ "YOU": "Vi",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Izbriši",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Pregled",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Varijable",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/contactFilters.json b/app/javascript/dashboard/i18n/locale/hr/contactFilters.json
index 09a543984..7ebd11837 100644
--- a/app/javascript/dashboard/i18n/locale/hr/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hr/contactFilters.json
@@ -9,42 +9,47 @@
"FILTER_DELETE_ERROR": "You should have atleast one filter to save",
"SUBMIT_BUTTON_LABEL": "Submit",
"UPDATE_BUTTON_LABEL": "Update Segment",
- "CANCEL_BUTTON_LABEL": "Cancel",
+ "CANCEL_BUTTON_LABEL": "Odustani",
"CLEAR_BUTTON_LABEL": "Clear Filters",
"EMPTY_VALUE_ERROR": "Value is required",
"SEGMENT_LABEL": "Segment Name",
"SEGMENT_QUERY_LABEL": "Segment Query",
"TOOLTIP_LABEL": "Filter contacts",
"QUERY_DROPDOWN_LABELS": {
- "AND": "AND",
- "OR": "OR"
+ "AND": "I",
+ "OR": "ILI"
},
"OPERATOR_LABELS": {
- "equal_to": "Equal to",
- "not_equal_to": "Not equal to",
- "contains": "Contains",
- "does_not_contain": "Does not contain",
- "is_present": "Is present",
- "is_not_present": "Is not present",
- "is_greater_than": "Is greater than",
+ "equal_to": "Jednako",
+ "not_equal_to": "Nije jednako",
+ "contains": "Sadrži",
+ "does_not_contain": "Ne sadrži",
+ "is_present": "Prisutno je",
+ "is_not_present": "Nije prisutno",
+ "is_greater_than": "Veće je od",
"is_lesser_than": "Is lesser than",
- "days_before": "Is x days before"
+ "days_before": "Je x dana prije"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Vrijednost je obavezna"
},
"ATTRIBUTES": {
- "NAME": "Name",
+ "NAME": "Ime",
"EMAIL": "Email",
"PHONE_NUMBER": "Phone number",
"IDENTIFIER": "Identifier",
"CITY": "City",
"COUNTRY": "Country",
- "CUSTOM_ATTRIBUTE_LIST": "List",
- "CUSTOM_ATTRIBUTE_TEXT": "Text",
- "CUSTOM_ATTRIBUTE_NUMBER": "Number",
- "CUSTOM_ATTRIBUTE_LINK": "Link",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
+ "CUSTOM_ATTRIBUTE_LIST": "Popis",
+ "CUSTOM_ATTRIBUTE_TEXT": "Tekst",
+ "CUSTOM_ATTRIBUTE_NUMBER": "Broj",
+ "CUSTOM_ATTRIBUTE_LINK": "Povezica",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Kvačica",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/hr/contentTemplates.json b/app/javascript/dashboard/i18n/locale/hr/contentTemplates.json
new file mode 100644
index 000000000..f30f38504
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Pretraži Predloške",
+ "NO_TEMPLATES_FOUND": "Nije pronađen predložak za",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Jezik",
+ "TEMPLATE_BODY": "Tijelo predloška",
+ "CATEGORY": "Kategorija"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Tekst"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Varijable",
+ "LANGUAGE": "Jezik",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Unesi {variable} vrijednost",
+ "GO_BACK_LABEL": "Nazad",
+ "SEND_MESSAGE_LABEL": "Šalji poruku",
+ "FORM_ERROR_MESSAGE": "Popuniti sve varijable prije slanja",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Šalji poruku"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/conversation.json b/app/javascript/dashboard/i18n/locale/hr/conversation.json
index 7623d94a1..a268b80c6 100644
--- a/app/javascript/dashboard/i18n/locale/hr/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hr/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " to get started",
"NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
"SEARCH_MESSAGES": "Search for messages in conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agenti",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nijedno",
"INPUT_PLACEHOLDER": "Odaberi prioritet",
"NO_RESULTS": "Nisu pronađeni rezultati",
- "SUCCESSFUL": "Prioritet razgovora id %{conversationId} promijenjen na %{priority}",
+ "SUCCESSFUL": "Prioritet razgovora id {conversationId} promijenjen na {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,27 +210,32 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Dajte copilotu dodatne upute ili pitajte bilo što drugo... Pritisnite Enter za slanje nastavka",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Predlošci"
},
"REPLYBOX": {
"REPLY": "Reply",
"PRIVATE_NOTE": "Private Note",
"SEND": "Send",
"CREATE": "Add Note",
- "INSERT_READ_MORE": "Read more",
+ "INSERT_READ_MORE": "Pročitaj više",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot razmišlja",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -174,8 +255,15 @@
"MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
"CONFIRM": {
"YES": "Send",
- "CANCEL": "Cancel"
+ "CANCEL": "Odustani"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
@@ -186,21 +274,26 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
"SELECT_AGENT": "Select Agent",
- "REMOVE": "Remove",
+ "REMOVE": "Izbriši",
"ASSIGN": "Assign"
},
"CONTEXT_MENU": {
"COPY": "Copy",
"REPLY_TO": "Reply to this message",
- "DELETE": "Delete",
+ "DELETE": "Izbriši",
"CREATE_A_CANNED_RESPONSE": "Add to canned responses",
"TRANSLATE": "Translate",
"COPY_PERMALINK": "Copy link to the message",
@@ -208,18 +301,38 @@
"DELETE_CONFIRMATION": {
"TITLE": "Are you sure you want to delete this message?",
"MESSAGE": "You cannot undo this action",
- "DELETE": "Delete",
- "CANCEL": "Cancel"
+ "DELETE": "Izbriši",
+ "CANCEL": "Odustani"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
"TITLE": "Send conversation transcript",
"DESC": "Send a copy of the conversation transcript to the specified email address",
"SUBMIT": "Submit",
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/customRole.json b/app/javascript/dashboard/i18n/locale/hr/customRole.json
new file mode 100644
index 000000000..ea2e4e739
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Ne postoji rezultat za zadano pretraživanje.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Radnje"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Ime je obavezno."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Odustani",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Pošalji",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Uredi",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Ažuriraj",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Izbriši",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Potvrdi brisanje",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Da, izbriši ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/datePicker.json b/app/javascript/dashboard/i18n/locale/hr/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/general.json b/app/javascript/dashboard/i18n/locale/hr/general.json
new file mode 100644
index 000000000..86fd8676b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "Nisu pronađeni rezultati"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/generalSettings.json b/app/javascript/dashboard/i18n/locale/hr/generalSettings.json
index 9ea0cb5b6..3e62ba3a5 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -76,7 +153,7 @@
"LOADING_MESSAGE": "Loading notifications...",
"404": "No Notifications",
"TABLE_HEADER": [
- "Name",
+ "Ime",
"Phone Number",
"Conversations",
"Last Contacted"
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Promjena prioriteta",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
index f36e69405..6d7a9b027 100644
--- a/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hr/helpCenter.json
@@ -1,19 +1,24 @@
{
"HELP_CENTER": {
+ "TITLE": "Centar za pomoć",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
"LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
+ "SETTINGS_BUTTON": "Postavke",
"NEW_BUTTON": "New Article",
"DROPDOWN_OPTIONS": {
"PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "DRAFT": "Skica",
+ "ARCHIVED": "Arhivirano"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
+ "ALL_ARTICLES": "Svi članci",
+ "MINE": "Moji članci",
"DRAFT": "Draft Articles",
"ARCHIVED": "Archived Articles"
},
@@ -25,10 +30,10 @@
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
+ "ALL_ARTICLES": "Svi članci",
+ "PUBLISH_BUTTON": "Objavi",
"MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
+ "PREVIEW": "Pretpregled",
"ADD_TRANSLATION": "Add translation",
"OPEN_SIDEBAR": "Open sidebar",
"CLOSE_SIDEBAR": "Close sidebar",
@@ -37,10 +42,11 @@
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
+ "TITLE": "Prenesi sliku",
"UPLOADING": "Prenosim...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -106,7 +112,7 @@
"TITLE": "Portals",
"PORTAL_SETTINGS": "Portal settings",
"SUBTITLE": "You have multiple portals and can have different locales for each portal.",
- "CANCEL_BUTTON_LABEL": "Cancel",
+ "CANCEL_BUTTON_LABEL": "Odustani",
"CHOOSE_LOCALE_BUTTON": "Choose Locale"
},
"PORTAL_SETTINGS": {
@@ -116,12 +122,12 @@
"ADD": "Add locale",
"VISIT": "Visit site",
"SETTINGS": "Settings",
- "DELETE": "Delete"
+ "DELETE": "Izbriši"
},
"PORTAL_CONFIG": {
"TITLE": "Portal Configurations",
"ITEMS": {
- "NAME": "Name",
+ "NAME": "Ime",
"DOMAIN": "Custom domain",
"SLUG": "Slug",
"TITLE": "Portal title",
@@ -137,7 +143,7 @@
"ARTICLE_COUNT": "No. of articles",
"CATEGORIES": "No. of categories",
"SWAP": "Swap",
- "DELETE": "Delete",
+ "DELETE": "Izbriši",
"DEFAULT_LOCALE": "Default"
}
}
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -173,7 +185,7 @@
"TITLE": "Categories in",
"NEW_CATEGORY": "New category",
"TABLE": {
- "NAME": "Name",
+ "NAME": "Ime",
"DESCRIPTION": "Description",
"LOCALE": "Locale",
"ARTICLE_COUNT": "No. of articles",
@@ -181,7 +193,7 @@
"EDIT": "Edit category",
"DELETE": "Delete category"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "Nisu pronađene kategorije"
}
},
"EDIT_BASIC_INFO": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Back",
"BASIC_SETTINGS_PAGE": {
@@ -236,7 +242,7 @@
"IMAGE_DELETE_ERROR": "Error while deleting logo"
},
"NAME": {
- "LABEL": "Name",
+ "LABEL": "Ime",
"PLACEHOLDER": "Portal name",
"HELP_TEXT": "The name will be used in the public facing portal internally.",
"ERROR": "Name is required"
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -292,7 +298,7 @@
},
"BUTTONS": {
"CREATE": "Create locale",
- "CANCEL": "Cancel"
+ "CANCEL": "Odustani"
},
"API": {
"SUCCESS_MESSAGE": "Locale added successfully",
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,10 +366,16 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete the article?",
"YES": "Yes, Delete",
"NO": "No, Keep it"
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -377,7 +411,7 @@
"PORTAL": "Portal",
"LOCALE": "Locale",
"NAME": {
- "LABEL": "Name",
+ "LABEL": "Ime",
"PLACEHOLDER": "Category name",
"HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
"ERROR": "Name is required"
@@ -395,7 +429,7 @@
},
"BUTTONS": {
"CREATE": "Create category",
- "CANCEL": "Cancel"
+ "CANCEL": "Odustani"
},
"API": {
"SUCCESS_MESSAGE": "Category created successfully",
@@ -408,7 +442,7 @@
"PORTAL": "Portal",
"LOCALE": "Locale",
"NAME": {
- "LABEL": "Name",
+ "LABEL": "Ime",
"PLACEHOLDER": "Category name",
"HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
"ERROR": "Name is required"
@@ -426,7 +460,7 @@
},
"BUTTONS": {
"CREATE": "Update category",
- "CANCEL": "Cancel"
+ "CANCEL": "Odustani"
},
"API": {
"SUCCESS_MESSAGE": "Category updated successfully",
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Objavi",
+ "DRAFT": "Skica",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Izbriši"
+ },
+ "STATUS": {
+ "DRAFT": "Skica",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Arhivirano"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mine",
+ "DRAFT": "Skica",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Arhivirano"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Objavi",
+ "DRAFT": "Skica",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Kategorija",
+ "DELETE": "Izbriši",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Izbriši",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nisu pronađene kategorije",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Ime je obavezno"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "EDIT": "Ažuriraj",
+ "CANCEL": "Odustani"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Skica",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Izbriši"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Skica"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Pretpregled",
+ "PUBLISH": "Objavi",
+ "DRAFT": "Skica",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Create",
+ "NAME": {
+ "LABEL": "Ime",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Ime je obavezno"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Ime",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Ime je obavezno"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Uredi",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Izbriši"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Izbriši"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Prenosim...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Odustani",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generiranje...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/inbox.json b/app/javascript/dashboard/i18n/locale/hr/inbox.json
index 9b4133d4c..32943b55e 100644
--- a/app/javascript/dashboard/i18n/locale/hr/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/hr/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
index 8eb6ebe15..abb3e7433 100644
--- a/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "There are no inboxes attached to this account."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Choose Channel",
+ "BODY": "Choose the provider you want to integrate with Chatwoot."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Create Inbox",
+ "BODY": "Authenticate your account and create an inbox."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the created inbox."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "You are all set to go!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Inbox Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Select a page from the list",
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Please enter a valid URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website Domain",
"PLACEHOLDER": "Enter your website domain (eg: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "This field is required"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
+ "LABEL": "Broj telefona",
"PLACEHOLDER": "Please enter the phone number from which message will be sent.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "This field is required"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "This field is required"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Inbox Name",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Phone Number",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Channel Name",
"PLACEHOLDER": "Please enter a channel name",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Click here",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agents",
+ "TITLE": "Agenti",
"DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authenticating you with Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Take me there",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reauthorize",
"VIEW": "View",
@@ -406,11 +580,11 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Prijateljski",
- "FROM": "from",
+ "FROM": "od",
"SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
},
"PROFESSIONAL": {
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,22 +606,24 @@
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete ",
"PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
},
"API": {
"SUCCESS_MESSAGE": "Inbox deleted successfully",
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Settings",
"FEATURES": {
@@ -477,7 +753,24 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
- "INBOX_AGENTS": "Agents",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "Agenti",
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
"AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Token za verifikaciju Webhook-a",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "Ovaj token se koristi za verifikaciju autentičnosti webhook endpoint-a.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Centar za pomoć",
"PLACEHOLDER": "Odaberi centar za pomoć",
"SELECT_PLACEHOLDER": "Odaberi centar za pomoć",
+ "NONE": "None",
"REMOVE": "Makni Centar za Pomoć",
"SUB_TEXT": "Pridruži Centar za Pomoć inbox-u"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Odustani",
+ "CONFIRM_DELETE": "Izbriši",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reauthorize",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Jezik",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,12 +1117,13 @@
"IN_A_DAY": "In a day"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
- "DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
- "PLACE_HOLDER": "Chat with us"
+ "DEFAULT": "Čavrljajte s nama",
+ "LABEL": "Launcher Title",
+ "PLACE_HOLDER": "Čavrljajte s nama"
},
"UPDATE": {
"BUTTON_TEXT": "Update Widget Settings",
@@ -695,7 +1133,7 @@
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
+ "PREVIEW": "Pretpregled",
"SCRIPT": "Script"
},
"WIDGET_BUBBLE_POSITION": {
@@ -709,16 +1147,16 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "Typically replies in a few minutes",
- "IN_A_FEW_HOURS": "Typically replies in a few hours",
- "IN_A_DAY": "Typically replies in a day"
+ "IN_A_FEW_MINUTES": "Obično odgovara za nekoliko minuta",
+ "IN_A_FEW_HOURS": "Obično odgovara za nekoliko sati",
+ "IN_A_DAY": "Obično odgovara u roku jednog dana"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Start Conversation",
- "CHAT_INPUT_PLACEHOLDER": "Type your message"
+ "START_CONVERSATION_BUTTON_TEXT": "Započnite razgovor",
+ "CHAT_INPUT_PLACEHOLDER": "Unesite svoju poruku"
},
"BODY": {
"TEAM_AVAILABILITY": {
@@ -728,12 +1166,37 @@
"USER_MESSAGE": "Hi",
"AGENT_MESSAGE": "Hello"
},
- "BRANDING_TEXT": "Powered by Chatwoot",
+ "BRANDING_TEXT": "Pokreće Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/index.js b/app/javascript/dashboard/i18n/locale/hr/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/hr/index.js
+++ b/app/javascript/dashboard/i18n/locale/hr/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
index a80ecb837..8dc949df1 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -22,7 +25,7 @@
"INBOX": "Yes, Delete",
"ACCOUNT": "Yes, Disconnect"
},
- "CANCEL_BUTTON_TEXT": "Cancel",
+ "CANCEL_BUTTON_TEXT": "Odustani",
"API": {
"SUCCESS_MESSAGE": "Hook deleted successfully",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
@@ -31,8 +34,9 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Radnje",
"DELETE": {
- "BUTTON_TEXT": "Delete"
+ "BUTTON_TEXT": "Izbriši"
}
},
"ADD": {
@@ -42,7 +46,8 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
- "CANCEL": "Cancel"
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
+ "CANCEL": "Odustani"
},
"API": {
"SUCCESS_MESSAGE": "Integration hook added successfully",
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/integrations.json b/app/javascript/dashboard/i18n/locale/hr/integrations.json
index 1ac3f3f7c..d35941385 100644
--- a/app/javascript/dashboard/i18n/locale/hr/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hr/integrations.json
@@ -1,10 +1,49 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Odustani",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
"SUBSCRIPTIONS": {
"LABEL": "Events",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Please enter a valid URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,13 +83,13 @@
"LIST": {
"404": "There are no webhooks configured for this account.",
"TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Radnje"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
+ "BUTTON_TEXT": "Uredi",
"TITLE": "Edit webhook",
"API": {
"SUCCESS_MESSAGE": "Webhook configuration updated successfully",
@@ -51,7 +97,7 @@
}
},
"ADD": {
- "CANCEL": "Cancel",
+ "CANCEL": "Odustani",
"TITLE": "Add new webhook",
"API": {
"SUCCESS_MESSAGE": "Webhook configuration added successfully",
@@ -59,20 +105,21 @@
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Webhook deleted successfully",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "Yes, Delete ",
+ "TITLE": "Potvrdi brisanje",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
+ "YES": "Da, izbriši",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Izbriši",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionalno",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Prijateljski"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -130,7 +199,7 @@
"DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
"KEY_PLACEHOLDER": "Enter your OpenAI API key",
"BUTTONS": {
- "NEED_HELP": "Need help?",
+ "NEED_HELP": "Trebate pomoć?",
"DISMISS": "Dismiss",
"FINISH": "Finish Setup"
},
@@ -156,7 +225,7 @@
"GENERATE_ERROR": "Došlo je do greške tijekom procesiranja sadržaja, molim pokušajte ponovno"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Integration deleted successfully"
}
@@ -169,18 +238,23 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Radnje"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
"FORM": {
- "TITLE_LABEL": "Name",
+ "TITLE_LABEL": "Ime",
"TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
"TITLE_ERROR": "A name for the dashboard app is required",
"URL_LABEL": "Endpoint",
@@ -190,14 +264,14 @@
"CREATE": {
"HEADER": "Add a new dashboard app",
"FORM_SUBMIT": "Submit",
- "FORM_CANCEL": "Cancel",
+ "FORM_CANCEL": "Odustani",
"API_SUCCESS": "Dashboard app configured successfully",
"API_ERROR": "We couldn't create an app. Please try again later"
},
"UPDATE": {
"HEADER": "Edit dashboard app",
"FORM_SUBMIT": "Update",
- "FORM_CANCEL": "Cancel",
+ "FORM_CANCEL": "Odustani",
"API_SUCCESS": "Dashboard app updated successfully",
"API_ERROR": "We couldn't update the app. Please try again later"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Create",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Povezica",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Tim",
+ "PLACEHOLDER": "Select team",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritet",
+ "PLACEHOLDER": "Odaberi prioritet",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Create",
+ "CANCEL": "Odustani",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Prioritet",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Labels",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Da, izbriši",
+ "CANCEL": "Odustani"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Saznaj više",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asistenti",
+ "SWITCH_ASSISTANT": "Prebaci se između asistenata",
+ "NEW_ASSISTANT": "Kreiraj asistenta",
+ "EMPTY_LIST": "Nema pronađenih asistenata, molimo stvorite jednog za početak"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Započnite s Copilotom",
+ "KICK_OFF_MESSAGE": "Trebate brzi sažetak, želite provjeriti prethodne razgovore ili nacrtati bolji odgovor? Copilot je tu da ubrza stvari.",
+ "SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "Došlo je do pogreške pri generiranju odgovora. Molimo pokušajte ponovno.",
+ "LOADER": "Captain razmišlja",
+ "YOU": "Vi",
+ "USE": "Koristi ovo",
+ "RESET": "Poništi",
+ "SHOW_STEPS": "Prikaži korake",
+ "SELECT_ASSISTANT": "Odaberi asistenta",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Sažmi ovaj razgovor",
+ "CONTENT": "Sažmi ključne točke raspravljene između kupca i agenata za podršku, uključujući brige kupca, pitanja i rješenja ili odgovore koje je dao agent za podršku."
+ },
+ "SUGGEST": {
+ "LABEL": "Predloži odgovor",
+ "CONTENT": "Analiziraj upit kupca i nacrtaj odgovor koji učinkovito rješava njihove brige ili pitanja. Osiguraj da je odgovor jasan, sažet i pruža korisne informacije."
+ },
+ "RATE": {
+ "LABEL": "Ocijeni ovaj razgovor",
+ "CONTENT": "Pregledajte razgovor kako biste vidjeli koliko dobro zadovoljava potrebe kupca. Podijelite ocjenu od 1 do 5 na temelju tona, jasnoće i učinkovitosti."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Razgovori visokog prioriteta",
+ "CONTENT": "Dajte mi sažetak svih otvorenih razgovora visokog prioriteta. Uključite ID razgovora, ime kupca (ako je dostupno), sadržaj posljednje poruke i dodijeljenog agenta. Grupirajte po statusu ako je relevantno."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Popis kontakata",
+ "CONTENT": "Pokaži mi popis top 10 kontakata. Uključi ime, e-mail ili broj telefona (ako je dostupno), vrijeme posljednjeg viđenja, oznake (ako ih ima)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Vi",
+ "ASSISTANT": "Asistent",
+ "MESSAGE_PLACEHOLDER": "Unesite svoju poruku...",
+ "HEADER": "Poligon",
+ "DESCRIPTION": "Koristite ovaj poligon za slanje poruka svom asistentu i provjerite odgovara li točno, brzo i u očekivanom tonu.",
+ "CREDIT_NOTE": "Poruke poslane ovdje računaju se u vaše Captain kredite."
+ },
+ "PAYWALL": {
+ "TITLE": "Nadogradite za korištenje Captain AI",
+ "AVAILABLE_ON": "Captain nije dostupan na besplatnom planu.",
+ "UPGRADE_PROMPT": "Nadogradite svoj plan da biste dobili pristup našim asistentima, copilotu i još mnogo toga.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI dostupan je samo u Enterprise planovima.",
+ "UPGRADE_PROMPT": "Nadogradite svoj plan da biste dobili pristup našim asistentima, copilotu i još mnogo toga.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Iskoristili ste preko 80 % svog limita odgovora. Da biste nastavili koristiti Captain AI, nadogradite plan.",
+ "DOCUMENTS": "Dosegnut je limit dokumenata. Nadogradite kako biste nastavili koristiti Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Odustani",
+ "CREATE": "Create",
+ "EDIT": "Ažuriraj"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Izbriši"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Odustani",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Izbriši"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Odustani",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Izbriši"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Odustani"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Odustani",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Izbriši",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Broj",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Izbriši",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Sve"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Pending",
+ "APPROVED": "Approved",
+ "ALL": "Sve"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Uredi",
+ "DELETE_RESPONSE": "Izbriši"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Da, izbriši",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
index 09ac38551..7b1347730 100644
--- a/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hr/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Radnje"
+ }
},
"FORM": {
"NAME": {
@@ -33,10 +38,10 @@
"SHOW_ON_SIDEBAR": {
"LABEL": "Show label on sidebar"
},
- "EDIT": "Edit",
+ "EDIT": "Uredi",
"CREATE": "Create",
- "DELETE": "Delete",
- "CANCEL": "Cancel"
+ "DELETE": "Izbriši",
+ "CANCEL": "Odustani"
},
"SUGGESTIONS": {
"TOOLTIP": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
@@ -67,16 +73,16 @@
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Label deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
+ "TITLE": "Potvrdi brisanje",
"MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/login.json b/app/javascript/dashboard/i18n/locale/hr/login.json
index 941565463..8bf01d710 100644
--- a/app/javascript/dashboard/i18n/locale/hr/login.json
+++ b/app/javascript/dashboard/i18n/locale/hr/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email eg: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/macros.json b/app/javascript/dashboard/i18n/locale/hr/macros.json
index 3a59d4f26..b28444026 100644
--- a/app/javascript/dashboard/i18n/locale/hr/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hr/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -15,7 +19,7 @@
"ERROR": "Name is required for creating a macro"
},
"ACTIONS": {
- "LABEL": "Actions"
+ "LABEL": "Radnje"
}
},
"API": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Ime",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Radnje"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Nisko",
+ "MEDIUM": "Srednje",
+ "HIGH": "Visoko",
+ "URGENT": "Hitno"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/mfa.json b/app/javascript/dashboard/i18n/locale/hr/mfa.json
new file mode 100644
index 000000000..bcb175950
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Odustani",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Odustani",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Odustani",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/onboarding.json b/app/javascript/dashboard/i18n/locale/hr/onboarding.json
new file mode 100644
index 000000000..74c55921c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Jezik",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/report.json b/app/javascript/dashboard/i18n/locale/hr/report.json
index 6ff84c5f5..f9fa93091 100644
--- a/app/javascript/dashboard/i18n/locale/hr/report.json
+++ b/app/javascript/dashboard/i18n/locale/hr/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Resolution Count",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nisu pronađeni rezultati"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Tim"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,11 +479,51 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Odustani",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
+ "HEADER": "Pregled",
"LIVE": "Live",
"ACCOUNT_CONVERSATIONS": {
"HEADER": "Open Conversations",
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Tim",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Dodaj filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nisu pronađeni rezultati",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Tim"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/resetPassword.json b/app/javascript/dashboard/i18n/locale/hr/resetPassword.json
index 70d48976e..a2db00f4a 100644
--- a/app/javascript/dashboard/i18n/locale/hr/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/hr/resetPassword.json
@@ -1,17 +1,17 @@
{
"RESET_PASSWORD": {
- "TITLE": "Reset Password",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "TITLE": "Reset lozinke",
+ "DESCRIPTION": "Unesite email adresu koju koristite za prijavu na Chatwoot kako biste dobili instrukcije za resetiranje lozinke.",
+ "GO_BACK_TO_LOGIN": "Ako se želite vratiti na stranicu za prijavu,",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Please enter your email",
- "ERROR": "Please enter a valid email"
+ "PLACEHOLDER": "Molimo, unesite e-mail.",
+ "ERROR": "Molimo, unesite validan e-mail."
},
"API": {
- "SUCCESS_MESSAGE": "Password reset link has been sent to your email",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Link za reset lozinke je poslan na zadani e-mail.",
+ "ERROR_MESSAGE": "Nije uspjelo spajanje na Woot server. Molimo pokušajte ponovno."
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Pošalji"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/search.json b/app/javascript/dashboard/i18n/locale/hr/search.json
index fbafaf73c..98dc87537 100644
--- a/app/javascript/dashboard/i18n/locale/hr/search.json
+++ b/app/javascript/dashboard/i18n/locale/hr/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
- "CONTACTS": "Contacts",
- "CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "ALL": "All results",
+ "CONTACTS": "Kontakti",
+ "CONVERSATIONS": "Razgovori",
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
"SECTION": {
- "CONTACTS": "Contacts",
- "CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "CONTACTS": "Kontakti",
+ "CONVERSATIONS": "Razgovori",
+ "MESSAGES": "Poruke",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
- "INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Tražim",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Pronađeno {item} za traženi pojam '{query}'",
+ "EMPTY_STATE_FULL": "Ništa nije pronađeno za traženi pojam '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/za fokusiranje",
+ "INPUT_PLACEHOLDER": "Unesi 3 ili više znakova za pretragu",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
+ "EMPTY_STATE_DEFAULT": "Traži po conversation id, e-mail, broj telefona, poruke za bolje rezultate pretrage. ",
"BOT_LABEL": "Bot",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "READ_MORE": "Pročitaj više",
+ "READ_LESS": "Read less",
+ "WROTE": "napisao/la:",
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agenti",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json b/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json
index ec2d94744..0deef8159 100644
--- a/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/hr/setNewPassword.json
@@ -1,23 +1,23 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set New Password",
+ "TITLE": "Postavi novu lozinku",
"PASSWORD": {
- "LABEL": "Password",
- "PLACEHOLDER": "Password",
- "ERROR": "Password is too short"
+ "LABEL": "Lozinka",
+ "PLACEHOLDER": "Lozinka",
+ "ERROR": "Lozinka je prekratka."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm Password",
- "PLACEHOLDER": "Confirm Password",
- "ERROR": "Passwords do not match"
+ "LABEL": "Potvrdi lozinku",
+ "PLACEHOLDER": "Potvrdi lozinku",
+ "ERROR": "Lozinke se ne poklapaju."
},
"API": {
- "SUCCESS_MESSAGE": "Successfully changed the password",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Lozinka je uspješno promijenjena.",
+ "ERROR_MESSAGE": "Nije uspjelo spajanje na Woot server. Molimo pokušajte ponovno."
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "Potvrda istekla. Molimo ponovno riješite captcha."
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Pošalji"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/settings.json b/app/javascript/dashboard/i18n/locale/hr/settings.json
index 5de9f9ce5..4ec0300f6 100644
--- a/app/javascript/dashboard/i18n/locale/hr/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/settings.json
@@ -1,22 +1,23 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
+ "LINK": "Postavke profila",
+ "TITLE": "Postavke profila",
+ "BTN_TEXT": "Ažuriraj profil",
+ "DELETE_AVATAR": "Izbriši avatar",
"AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
"AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
"UPDATE_SUCCESS": "Your profile has been updated successfully",
"PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
"AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
"FORM": {
- "AVATAR": "Profile Image",
+ "PICTURE": "Profilna slika",
+ "AVATAR": "Profilna slika",
"ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "REMOVE_IMAGE": "Izbriši",
+ "UPLOAD_IMAGE": "Prenesi sliku",
+ "UPDATE_IMAGE": "Ažuriraj sliku",
"PROFILE_SECTION": {
- "TITLE": "Profile",
+ "TITLE": "Profil",
"NOTE": "Your email address is your identity and is used to log in."
},
"SEND_MESSAGE": {
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -50,31 +77,63 @@
"PLACEHOLDER": "Insert your personal message signature here."
},
"PASSWORD_SECTION": {
- "TITLE": "Password",
+ "TITLE": "Lozinka",
"NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
+ "BTN_TEXT": "Promijeni lozinku"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
},
"ACCESS_TOKEN": {
- "TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "TITLE": "Pristupni token",
+ "NOTE": "This token can be used if you are building an API based integration",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Nijedno",
+ "MINE": "Dodijeljeno",
+ "ALL": "Sve",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
- "NONE": "None",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "TITLE": "Alert events for conversations",
+ "NONE": "Nijedno",
+ "ASSIGNED": "Dodijeljeni razgovori",
+ "ALL_CONVERSATIONS": "Svi razgovori"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "Ton obavještenja:"
},
"CONDITIONS": {
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Pročitaj više"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Email Notifications",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
"CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Your notification preferences are updated successfully",
@@ -98,10 +177,13 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "REQUEST_PUSH": "Enable push notifications",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "Profilna slika"
},
"NAME": {
"LABEL": "Your full name",
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Busy",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "days trial remaining.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Download",
"UPLOADING": "Prenosim...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Submit"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifying...",
@@ -197,26 +295,40 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
+ "INBOX": "My Inbox",
+ "ALL_CONVERSATIONS": "Svi razgovori",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Participating",
"UNATTENDED_CONVERSATIONS": "Unattended",
"REPORTS": "Reports",
"SETTINGS": "Settings",
"CONTACTS": "Contacts",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxes",
+ "CAPTAIN_SETTINGS": "Settings",
"HOME": "Home",
- "AGENTS": "Agents",
+ "AGENTS": "Agenti",
"AGENT_BOTS": "Botovi",
"AUDIT_LOGS": "Audit Logovi",
"INBOXES": "Inboxes",
"NOTIFICATIONS": "Notifications",
"CANNED_RESPONSES": "Canned Responses",
"INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
+ "PROFILE_SETTINGS": "Postavke profila",
"ACCOUNT_SETTINGS": "Account Settings",
"APPLICATIONS": "Applications",
"LABELS": "Labels",
@@ -234,73 +346,292 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Conversations",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
- "REPORTS_AGENT": "Agents",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
+ "REPORTS_AGENT": "Agenti",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_TEAM": "Tim",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
+ "SET_AVAILABILITY_TITLE": "Postavi sebe kao",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REPORTS_OVERVIEW": "Pregled",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Centar za pomoć",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Kategorija",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Postavke"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Pročitaj članke",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "Naplata",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "Trenutni plan",
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
+ "TITLE": "Upravljanje pretplatom",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
- "CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
- "BUTTON_TXT": "Chat with us"
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "CHAT_WITH_US": {
+ "TITLE": "Trebate pomoć?",
+ "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "BUTTON_TXT": "Čavrljajte s nama"
+ },
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Odustani",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Nazad",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Copied to clipboard",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Odustani"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NEW_ACCOUNT": "Novi račun",
+ "SELECTOR_SUBTITLE": "Kreirajte novi račun",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
+ "SUCCESS_MESSAGE": "Račun uspješno kreiran",
+ "EXIST_MESSAGE": "Račun već postoji",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"FORM": {
"NAME": {
- "LABEL": "Company Name",
+ "LABEL": "Naziv tvrtke",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Pošalji",
+ "CANCEL": "Odustani"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "Vidi sve skraćenice",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
+ "OPEN_CONVERSATION": "Otvori razgovor",
"RESOLVE_AND_NEXT": "Resolve and move to next",
"NAVIGATE_DROPDOWN": "Navigate dropdown items",
"RESOLVE_CONVERSATION": "Resolve Conversation",
@@ -310,16 +641,283 @@
"TOGGLE_SIDEBAR": "Toggle Sidebar",
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
+ "GO_TO_SETTINGS": "Idi na postavke",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritet",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Uredi"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Odustani"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Uredi"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Odustani"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Izbriši",
+ "CANCEL_BUTTON_LABEL": "Odustani"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/signup.json b/app/javascript/dashboard/i18n/locale/hr/signup.json
index 10ddc5b86..ac6a702ef 100644
--- a/app/javascript/dashboard/i18n/locale/hr/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hr/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Lozinke se ne poklapaju."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/sla.json b/app/javascript/dashboard/i18n/locale/hr/sla.json
index 244f041f1..2b5679ab8 100644
--- a/app/javascript/dashboard/i18n/locale/hr/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hr/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Ne postoji rezultat za zadano pretraživanje",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Potvrdi brisanje",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Da, izbriši",
+ "NO": "Ne, zadrži"
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/snooze.json b/app/javascript/dashboard/i18n/locale/hr/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
index f9ecaaaae..ebcbb0b6a 100644
--- a/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hr/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "Nijedno"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -91,17 +90,17 @@
"BUTTON_TEXT": "Finish"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Izbriši",
"API": {
"SUCCESS_MESSAGE": "Team deleted successfully.",
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
- "NO": "Cancel"
+ "NO": "Odustani"
}
},
"SETTINGS": "Settings",
diff --git a/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json
index 8127f7dda..39c64adce 100644
--- a/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/hr/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Predlošci",
- "SUBTITLE": "Izaberi whatsapp predložak koji želiš poslati",
- "TEMPLATE_SELECTED_SUBTITLE": "Proces %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Pretraži Predloške",
- "NO_TEMPLATES_FOUND": "Nije pronađen predložak za",
- "LABELS": {
- "LANGUAGE": "Jezik",
- "TEMPLATE_BODY": "Tijelo predloška",
- "CATEGORY": "Kategorija"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Varijable",
- "VARIABLE_PLACEHOLDER": "Unesi %{variable} vrijednost",
- "GO_BACK_LABEL": "Nazad",
- "SEND_MESSAGE_LABEL": "Šalji poruku",
- "FORM_ERROR_MESSAGE": "Popuniti sve varijable prije slanja"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Predlošci",
+ "SUBTITLE": "Izaberi whatsapp predložak koji želiš poslati",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Pretraži Predloške",
+ "NO_TEMPLATES_FOUND": "Nije pronađen predložak za",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Jezik",
+ "TEMPLATE_BODY": "Tijelo predloška",
+ "CATEGORY": "Kategorija"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Varijable",
+ "LANGUAGE": "Jezik",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Unesi {variable} vrijednost",
+ "GO_BACK_LABEL": "Nazad",
+ "SEND_MESSAGE_LABEL": "Šalji poruku",
+ "FORM_ERROR_MESSAGE": "Popuniti sve varijable prije slanja",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/hr/yearInReview.json b/app/javascript/dashboard/i18n/locale/hr/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hr/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json
index 22a26ac68..85781b843 100644
--- a/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hu/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "ÉS",
"OR": "VAGY"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Egyenlő",
"not_equal_to": "Nem egyenlő",
- "contains": "Tartalmaz",
"does_not_contain": "Nem tartalmaz",
"is_present": "Jelen van",
"is_not_present": "Nincs jelen",
"is_greater_than": "Nagyobb",
"is_less_than": "Kisebb",
"days_before": "x nappal előtte",
- "starts_with": "Ezzel kezdődik"
+ "starts_with": "Ezzel kezdődik",
+ "equalTo": "Egyenlő",
+ "notEqualTo": "Nem egyenlő",
+ "contains": "Tartalmaz",
+ "doesNotContain": "Nem tartalmaz",
+ "isPresent": "Jelen van",
+ "isNotPresent": "Nincs jelen",
+ "isGreaterThan": "Nagyobb",
+ "isLessThan": "Kisebb mint",
+ "daysBefore": "x nappal előtte",
+ "startsWith": "Ezzel kezdődik"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Igaz",
@@ -54,6 +64,12 @@
"CREATED_AT": "Létrehozva",
"LAST_ACTIVITY": "Utolsó aktivitás"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Kötelező megadni",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard szűrők",
"ADDITIONAL_FILTERS": "További szűrők",
diff --git a/app/javascript/dashboard/i18n/locale/hu/agentBots.json b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
index 7d1d30f13..3105889cf 100644
--- a/app/javascript/dashboard/i18n/locale/hu/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hu/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Botok",
"LOADING_EDITOR": "Szerkesztő betöltése...",
- "HEADER_BTN_TXT": "Bot konfiguráció hozzáadása",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Műveletek"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
index e00a8874c..d4b9d6295 100644
--- a/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Ügynökök",
"HEADER_BTN_TXT": "Ügynök Hozzádása",
"LOADING": "Ügynökök Listájának Lekérése",
- "SIDEBAR_TXT": "Ügynökök
Egy Ügynök tagja a terméktámogatási csapatodnak.
Az ügynökök láthatják és válaszolhatnak a felhasználóid üzeneteire. A lista minden jelenleg a fiókodban található ügynököt mutatja.
Kattints az Ügynök hozzáadásra új ügynök hozzáadásához. Az ügynök amelyet hozzáadsz e-mailt fog kapni egy megerősítő linkkel, mellyel aktiválhatják a fiókjukat, mely után hozzáférést kapnak a Chatwoot-hoz és válaszolhatnak üzenetekre.
A Chatwoot lehetőségeihez a következő szerepkörök alapján férhet hozzá.
Ügynökök - Ezzel a szerepkörrel rendelkező ügynökök hozzáférhetnek az inboxokhoz, jelentésekhez és beszélgetésekhez. Hozzárendelhetnek beszélgetéseket más ügynökökhöz vagy saját magukhoz és lezárhatnak beszélgetéseket.
Adminisztrátor - Az Adminisztrátor felhasználók hozzáférhetnek minden Chatwoot funkcióhoz mely a fiókhoz tartozik, beleértve a beállításokat, illetve a normális ügynöki felhasználói jogosultságokkal is bírnak.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Adminisztrátor",
"AGENT": "Ügynök"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Ehhez a fiókhoz nincs ügynök rendelve",
"TITLE": "A csapatod ügynökeinek kezelése",
@@ -17,7 +19,8 @@
"STATUS": "Státusz",
"ACTIONS": "Műveletek",
"VERIFIED": "Megerősített",
- "VERIFICATION_PENDING": "Megerősítés függőben"
+ "VERIFICATION_PENDING": "Megerősítés függőben",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Ügynök hozzáadása a csapathoz",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Nem sikerült csatlakozni a Woot szerverhez, kérjük próbáld később"
}
},
+ "SEARCH_PLACEHOLDER": "Ügynökök keresése...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nincs találat."
},
@@ -103,6 +108,9 @@
"AGENT": "Ügynök kiválasztása",
"TEAM": "Csapat kiválasztása"
},
+ "LIST": {
+ "NONE": "Nincs"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nem találunk ügynököt",
diff --git a/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
index 9256f03f5..6a1a6945f 100644
--- a/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Egyedi atribútumok",
"HEADER_BTN_TXT": "Adj meg egyedi tulajdonságot",
"LOADING": "Vonzó egyedi tulajdonság",
- "SIDEBAR_TXT": "Egyéni tulajdonságok
Egy egyéni tulajdonság nyomon követi a kapcsolataival/beszélgetéseivel kapcsolatos tényeket – például az előfizetési csomagot, vagy amikor megrendelték az első terméket stb.
Egyéni tulajdonság létrehozásához kattintson az Egyéni tulajdonság hozzáadása lehetőségre. Meglévő egyéni tulajdonság szerkesztése vagy törlése is lehetséges, ha a Törlés gombra kattintasz.",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Tulajdonságok keresése...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Beszélgetés",
+ "CONTACT": "Kontakt",
+ "COMPANY": "Cég"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Szöveg",
+ "NUMBER": "Szám",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "Lista",
+ "CHECKBOX": "Jelölőnégyzet"
+ },
"ADD": {
"TITLE": "Adj meg egyedi tulajdonságot",
"SUBMIT": "Létrehozás",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,8 +85,8 @@
"ERROR_MESSAGE": "Egyéni Tulajdonság törlése sikertelen. Próbáld újra."
},
"CONFIRM": {
- "TITLE": "Biztosan törölni akarod: %{attributeName}",
- "PLACE_HOLDER": "Kérlek gépeld a megerősítéshez",
+ "TITLE": "Biztosan törölni akarod: {attributeName}",
+ "PLACE_HOLDER": "Kérlek írd be: {attributeName}",
"MESSAGE": "A törlés eltávolítja az egyéni tulajdonságot",
"YES": "Törlés ",
"NO": "Mégse"
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Egyedi atribútumok",
"CONVERSATION": "Beszélgetés",
- "CONTACT": "Kontakt"
+ "CONTACT": "Kontakt",
+ "COMPANY": "Cég"
},
"LIST": {
- "TABLE_HEADER": [
- "Név",
- "Leírás",
- "Típus",
- "Kulcs"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "DESCRIPTION": "Leírás",
+ "TYPE": "Típus",
+ "KEY": "Kulcs"
+ },
"BUTTONS": {
"EDIT": "Szerkesztés",
"DELETE": "Törlés"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/auditLogs.json b/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
index 887c9411f..72a561b84 100644
--- a/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hu/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit logok",
"HEADER_BTN_TXT": "Audit logok hozzáadása",
"LOADING": "Audit logok betöltése",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Nincs megfelelő elem",
"SIDEBAR_TXT": "
Auditnaplók
Az auditnaplók a Chatwoot rendszer eseményeinek és műveleteinek nyomvonalai.
",
"LIST": {
"404": "Nincsen elérthető Auditnapló ebben a fiókban.",
"TITLE": "Audit logok menedzselése",
"DESC": "Az Auditnaplók a Chatwoot rendszer eseményeinek és műveleteinek nyomvonalai.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP cím"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP cím"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Auditnapló sikeresen lekérve",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Rendszer",
"AUTOMATION_RULE": {
- "ADD": "%{agentName}új automatizálási szabályt hozott létre (#%{id})",
- "EDIT": "%{agentName} frissített egy automatizálási szabályt (#%{id})",
- "DELETE": "%{agentName} törölt egy automatizálási szabályt (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} meghívta %{invitee} a fiókba, mint %{role}",
+ "ADD": "{agentName} meghívta {invitee} a fiókba, mint {role}",
"EDIT": {
- "SELF": "%{agentName} megváltoztatta az %{attributes} -aikat %{values} - ra",
- "OTHER": "%{agentName} megváltoztatta %{attributes} %{user} %{values} -ra"
+ "SELF": "{agentName} megváltoztatta az {attributes} -aikat {values} - ra",
+ "OTHER": "{agentName} megváltoztatta {attributes} {user} {values} -ra",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} új beérkező levelek mappát hozott létre (#%{id})",
- "EDIT": "%{agentName} frissítette a beérkező leveleket (#%{id})",
- "DELETE": "%{agentName} törölt egy beérkező levelet (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} létrehozott egy új webhookot (#%{id})",
- "EDIT": "%{agentName} frissített egy webhookot (#%{id})",
- "DELETE": "%{agentName} törölt egy webhookot (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} aláírta",
- "SIGN_OUT": "%{agentName} kijelentkezett"
+ "SIGN_IN": "{agentName} aláírta",
+ "SIGN_OUT": "{agentName} kijelentkezett"
},
"TEAM": {
- "ADD": "%{agentName} létrehozott egy új csapatot (#%{id})",
- "EDIT": "%{agentName} frissített egy csapatot (#%{id})",
- "DELETE": "%{agentName} törölt egy csapatot (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} létrehozott egy új makrót (#%{id})",
- "EDIT": "%{agentName} frissített egy makrót (#%{id})",
- "DELETE": "%{agentName} törölt egy makrót (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} hozzáadva %{user} a bejövő üzenetekhez %{inbox_id}",
- "REMOVE": "%{agentName} eltávolítva %{user} a bejövő üzenetekből %{inbox_id}"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} hozzáadva %{user} a csapathoz %{team_id}",
- "REMOVE": "%{agentName} eltávolítva %{user} a csapatból %{team_id}"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} frissítette a fiók konfigurációját %{id}"
+ "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 10ae1f6b9..679fd6f2e 100644
--- a/app/javascript/dashboard/i18n/locale/hu/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatizációk",
- "HEADER_BTN_TXT": "Automatikus szabály hozzáadása",
+ "HEADER": "Automatizáció",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatizálási szabályok betöltése",
- "SIDEBAR_TXT": "Automatizálási szabályok
Az automatizálás helyettesítheti és automatizálhatja a meglévő folyamatokat, amelyek kézi kezelést igényelnek. Az automatizálással sok mindent megtehetsz, beleértve a címkék hozzáadását és a beszélgetések hozzárendelését a legjobb ügynökhöz. Így a csapat arra összpontosít, amit a legjobban csinál, és kevesebb időt fordít a manuális feladatokra.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatikus szabály hozzáadása",
"SUBMIT": "Létrehozás",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Név",
- "Leírás",
- "Aktív",
- "Létrehozva"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "ACTIVE": "Aktív",
+ "CREATED_ON": "Létrehozva",
+ "ACTIONS": "Műveletek"
+ },
"404": "Nem található automatizált szabály"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Legalább egy tevékenység szükséges a mentéshez",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Írd be az üzeneted ide",
- "TEAM_DROPDOWN_PLACEHOLDER": "Csapatok kiválasztása"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Csapatok kiválasztása",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Automatizált szabályok aktivizálása",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Frissítés...",
"LABEL_UPLOADED": "Sikeres feltöltés",
"LABEL_UPLOAD_FAILED": "Sikertelen feltöltés"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Kötelező megadni",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Nincs",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Beszélgetés létrehozva",
+ "CONVERSATION_UPDATED": "Beszélgetés frissítve",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Prioritás megváltoztatása",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Beszélgetés megnyitása",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nincs",
+ "LOW": "Alacsony",
+ "MEDIUM": "Közepes",
+ "HIGH": "Magas",
+ "URGENT": "Sürgős"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privát üzenet",
+ "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",
+ "COMPANY_NAME": "Cég",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Csapat",
+ "PRIORITY": "Prioritás",
+ "LABELS": "Cimkék"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
index c57da4956..0b4c4e0f4 100644
--- a/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hu/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "beszélgetés kiválasztva",
- "AGENT_SELECT_LABEL": "Ügynök kiválasztása",
- "ASSIGN_CONFIRMATION_LABEL": "Biztosan hozzá szeretnéd rendelni?",
- "UNASSIGN_CONFIRMATION_LABEL": "Biztosan meg szeretnéd szüntetni a hozzárendelést?",
- "GO_BACK_LABEL": "Visszaugrás",
- "ASSIGN_LABEL": "Hozzárendelés",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Nincs",
+ "CLEAR_SELECTION": "Kijelölés törlése",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Biztosan hozzárendeled a kijelölt {n} beszélgetést ehhez az ügyintézőhöz: {agentName}? | Biztosan hozzárendeled a kijelölt {n} beszélgetést ehhez az ügyintézőhöz: {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Biztosan megszünteted a kijelölt {n} beszélgetés ügyintézői hozzárendelését? | Biztosan megszünteted a kijelölt {n} beszélgetés ügyintézői hozzárendelését?",
"YES": "Igen",
+ "CANCEL": "Mégse",
+ "SEARCH_INPUT_PLACEHOLDER": "Keresés",
"ASSIGN_AGENT_TOOLTIP": "Ügynök hozzárendelése",
"ASSIGN_TEAM_TOOLTIP": "Csapat hozzárendelése",
"ASSIGN_SUCCESFUL": "Beszélgetés sikeresen hozzá lett rendelve.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Beszélgetés sikeresen megoldva.",
"RESOLVE_FAILED": "Nem sikerült megoldani a beszélgetéseket. Kérjük, próbálja újra.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Csak a kiválasztott beszélgetések láthatóak ezen az oldalon.",
- "AGENT_LIST_LOADING": "Ügynökök betöltése",
"UPDATE": {
"CHANGE_STATUS": "Státusz változtatása",
- "SNOOZE_UNTIL_NEXT_REPLY": "Alvómód a következő válaszig.",
+ "SNOOZE_UNTIL": "Halasztás",
"UPDATE_SUCCESFUL": "Beszélgetés státusza sikeresen frissítve ",
"UPDATE_FAILED": "Nem sikerült frissíteni a beszélgetéseket. Kérjük, próbálja újra."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Címkék hozzárendelése",
- "NO_LABELS_FOUND": "Nem található cimke erre:",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Válogatott címkék hozzárendelése",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Címkék hozzárendelése sikeres.",
- "ASSIGN_FAILED": "Nem sikerült címkéket hozzárendelni. Kérjük, próbálja újra."
+ "ASSIGN_FAILED": "Nem sikerült címkéket hozzárendelni. Kérjük, próbálja újra.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Csapat kiválasztása",
"NONE": "Nincs",
- "NO_TEAMS_AVAILABLE": "Ebben a fiókban még nincs csapat létrehozva.",
- "ASSIGN_SELECTED_TEAMS": "Válogatott csapatok hozzárendelése.",
- "ASSIGN_SUCCESFUL": "Csapatok hozzárendelése sikeres.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Biztosan hozzárendeled a kijelölt {n} beszélgetést ehhez a csapathoz: {teamName}? | Biztosan hozzárendeled a kijelölt {n} beszélgetést ehhez a csapathoz: {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Biztosan megszünteted a kijelölt {n} beszélgetés csapathoz rendelését? | Biztosan megszünteted a kijelölt {n} beszélgetés csapathoz rendelését?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Nem sikerült csapatot kijelölni. Kérjük, próbálja újra."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/campaign.json b/app/javascript/dashboard/i18n/locale/hu/campaign.json
index 43d42cec6..486673acd 100644
--- a/app/javascript/dashboard/i18n/locale/hu/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/hu/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampányok",
- "SIDEBAR_TXT": "A proaktív üzenetek lehetővé teszik az ügyfelek számára, hogy kimenő üzeneteket küldjenek kapcsolataiknak, amelyek több beszélgetést indítanak el. Új kampány létrehozásához kattints a Kampány hozzáadása lehetőségre. Meglévő kampányt is szerkeszthetsz vagy törölhetsz a Szerkesztés vagy a Törlés gombra kattintva.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Hozz létre egy egyszeri kampányt",
- "ONGOING": "Hozz létre egy folyamatban lévő kampányt"
- },
- "ADD": {
- "TITLE": "Kampány létrehozása",
- "DESC": "A proaktív üzenetek lehetővé teszik az ügyfelek számára, hogy kimenő üzeneteket küldjenek kapcsolataiknak, amelyek több beszélgetést indítanak el.",
- "CANCEL_BUTTON_TEXT": "Mégse",
- "CREATE_BUTTON_TEXT": "Létrehozás",
- "FORM": {
- "TITLE": {
- "LABEL": "Cím",
- "PLACEHOLDER": "Kérlek írd ide a kampány nevét",
- "ERROR": "Cím megadása kötelező"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Engedélyezve",
+ "DISABLED": "Letiltva"
},
- "SCHEDULED_AT": {
- "LABEL": "Tervezett idő",
- "PLACEHOLDER": "Kérlek, válaszd ki az időtartamot",
- "CONFIRM": "Megerősítés",
- "ERROR": "Tervezett idő megadása kötelező"
- },
- "AUDIENCE": {
- "LABEL": "Közönség",
- "PLACEHOLDER": "Ügyfél címke kiválasztása",
- "ERROR": "Közönség megadása kötelező"
- },
- "INBOX": {
- "LABEL": "Válassz egy fiókot",
- "PLACEHOLDER": "Válassz fiókot",
- "ERROR": "Fiók kötelező"
- },
- "MESSAGE": {
- "LABEL": "Üzenet",
- "PLACEHOLDER": "Kérlek írd ide a kampány üzenetét",
- "ERROR": "Üzenet kötelező"
- },
- "SENT_BY": {
- "LABEL": "Küldő",
- "PLACEHOLDER": "Kérlek, válaszd ki a kampány tartalmát",
- "ERROR": "Küldő megadása kötelező"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Kérjük adj meg egy URL-t",
- "ERROR": "Kérjük helyes URL-t adj meg"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Az oldalon töltött idő (másodperc)",
- "PLACEHOLDER": "Kérlek, add meg az időtartamot",
- "ERROR": "Az oldalon töltött idő megadása kötelező"
- },
- "ENABLED": "Kampány engedélyezése",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Feloldás csak munkaidőben",
- "SUBMIT": "Kampány hozzáadása"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Küldő",
+ "BOT": "Bot",
+ "FROM": "innen",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampány sikeresen létrehozva",
- "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Mégse",
+ "CREATE_BUTTON_TEXT": "Létrehozás",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Cím",
+ "PLACEHOLDER": "Kérlek írd ide a kampány nevét",
+ "ERROR": "Cím megadása kötelező"
+ },
+ "MESSAGE": {
+ "LABEL": "Üzenet",
+ "PLACEHOLDER": "Kérlek írd ide a kampány üzenetét",
+ "ERROR": "Üzenet kötelező"
+ },
+ "INBOX": {
+ "LABEL": "Válassz fiókot",
+ "PLACEHOLDER": "Válassz fiókot",
+ "ERROR": "Fiók kötelező"
+ },
+ "SENT_BY": {
+ "LABEL": "Küldő",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Küldő megadása kötelező"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Kérjük adj meg egy URL-t",
+ "ERROR": "Kérjük helyes URL-t adj meg"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Az oldalon töltött idő (másodperc)",
+ "PLACEHOLDER": "Kérlek, add meg az időtartamot",
+ "ERROR": "Az oldalon töltött idő megadása kötelező"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Kampány engedélyezése",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Feloldás csak munkaidőben"
+ },
+ "BUTTONS": {
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Törlés",
- "CONFIRM": {
- "TITLE": "Törlés megerősítése",
- "MESSAGE": "Biztos abban, hogy törli?",
- "YES": "Igen, Törlés ",
- "NO": "Nem, Mégse "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Lezárt",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Mégse",
+ "CREATE_BUTTON_TEXT": "Létrehozás",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Cím",
+ "PLACEHOLDER": "Kérlek írd ide a kampány nevét",
+ "ERROR": "Cím megadása kötelező"
+ },
+ "MESSAGE": {
+ "LABEL": "Üzenet",
+ "PLACEHOLDER": "Kérlek írd ide a kampány üzenetét",
+ "ERROR": "Üzenet kötelező"
+ },
+ "INBOX": {
+ "LABEL": "Válassz fiókot",
+ "PLACEHOLDER": "Válassz fiókot",
+ "ERROR": "Fiók kötelező"
+ },
+ "AUDIENCE": {
+ "LABEL": "Közönség",
+ "PLACEHOLDER": "Ügyfél címke kiválasztása",
+ "ERROR": "Közönség megadása kötelező"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Tervezett idő",
+ "PLACEHOLDER": "Kérlek, válaszd ki az időtartamot",
+ "ERROR": "Tervezett idő megadása kötelező"
+ },
+ "BUTTONS": {
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Lezárt",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Mégse",
+ "CREATE_BUTTON_TEXT": "Létrehozás",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Cím",
+ "PLACEHOLDER": "Kérlek írd ide a kampány nevét",
+ "ERROR": "Cím megadása kötelező"
+ },
+ "INBOX": {
+ "LABEL": "Válassz fiókot",
+ "PLACEHOLDER": "Válassz fiókot",
+ "ERROR": "Fiók kötelező"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Feldolgozás: {templateName}",
+ "LANGUAGE": "Nyelv",
+ "CATEGORY": "Kategória",
+ "VARIABLES_LABEL": "Változók",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Közönség",
+ "PLACEHOLDER": "Ügyfél címke kiválasztása",
+ "ERROR": "Közönség megadása kötelező"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Tervezett idő",
+ "PLACEHOLDER": "Kérlek, válaszd ki az időtartamot",
+ "ERROR": "Tervezett idő megadása kötelező"
+ },
+ "BUTTONS": {
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Biztos abban, hogy törli?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Törlés",
"API": {
"SUCCESS_MESSAGE": "Kampány sikeresen törölve",
- "ERROR_MESSAGE": "Nem sikerült a kampány törlése. Kérjük próbáld később."
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra."
}
- },
- "EDIT": {
- "TITLE": "Kampány szerkesztése",
- "UPDATE_BUTTON_TEXT": "Frissítés",
- "API": {
- "SUCCESS_MESSAGE": "Kampány sikeresen frissítve",
- "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Kampányok betöltése...",
- "404": "Nem találhatók kampányok létrehozva ehhez a postafiókhoz",
- "TABLE_HEADER": {
- "TITLE": "Cím",
- "MESSAGE": "Üzenet",
- "INBOX": "Fiók",
- "STATUS": "Státusz",
- "SENDER": "Küldő",
- "URL": "URL",
- "SCHEDULED_AT": "Tervezett idő",
- "TIME_ON_PAGE": "Idő(mp)",
- "CREATED_AT": "Létrehozva"
- },
- "BUTTONS": {
- "ADD": "Hozzáadás",
- "EDIT": "Szerkesztés",
- "DELETE": "Törlés"
- },
- "STATUS": {
- "ENABLED": "Engedélyezve",
- "DISABLED": "Letiltva",
- "COMPLETED": "Lezárt",
- "ACTIVE": "Aktív"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Egyszeri kampányok",
- "404": "Nincsennek kampányok létrehozva",
- "INBOXES_NOT_FOUND": "Kérjük, hozz létre egy SMS-postafiókot, és kezdd el kampányok hozzáadását"
- },
- "ONGOING": {
- "HEADER": "Folyamatban lévő kampányok",
- "404": "Nincsennek folyamatban lévő kampányok létrehozva",
- "INBOXES_NOT_FOUND": "Kérjük, hozz létre egy postafiókot, és kezdd el kampányok hozzáadását"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
index f0d0d0916..ff1c8ecf7 100644
--- a/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Mentett válaszok",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Sablon válasz hozzáadása",
"LOADING": "Sablon válaszok lekérése...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Nincs megfelelő elem.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Nincs megfelelő mentett válasz ebben a fiókban.",
"TITLE": "Mentett válaszok kezelése",
"DESC": "A sablon válaszok előre definiáltak, amelyek segítségével gyorsan küldhet válaszokat a beszélgetésekre.",
- "TABLE_HEADER": [
- "Rövid kód",
- "Tartalom",
- "Műveletek"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Rövid kód",
+ "CONTENT": "Tartalom",
+ "ACTIONS": "Műveletek"
+ }
},
"ADD": {
"TITLE": "Sablon válasz hozzáadása",
diff --git a/app/javascript/dashboard/i18n/locale/hu/chatlist.json b/app/javascript/dashboard/i18n/locale/hu/chatlist.json
index af9f4057f..94704a1f5 100644
--- a/app/javascript/dashboard/i18n/locale/hu/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hu/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Nincs aktív üzenetváltás ebben a csoportban."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Beszélgetések",
"MENTION_HEADING": "Megemlítések",
"UNATTENDED_HEADING": "Figyelmen kívül hagyott",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Függőben lévő válasz: Legrövidebb először"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Hely"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "megosztott URL-t tartalmaz"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Nincs elérhető tartalom",
"HIDE_QUOTED_TEXT": "Idézett szöveg eltűntetése",
"SHOW_QUOTED_TEXT": "Idézett szöveg megjelenítése",
- "MESSAGE_READ": "Olvasott"
+ "MESSAGE_READ": "Olvasott",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/companies.json b/app/javascript/dashboard/i18n/locale/hu/companies.json
new file mode 100644
index 000000000..534cb98a2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Rendezés",
+ "OPTIONS": {
+ "NAME": "Név",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Létrehozva",
+ "LAST_ACTIVITY_AT": "Utolsó aktivitás",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Cég létrehozása"
+ },
+ "CREATE": {
+ "TITLE": "Cég létrehozása",
+ "ACTIONS": {
+ "SAVE": "Cég létrehozása"
+ },
+ "MESSAGES": {
+ "SUCCESS": "A cég sikeresen létrehozva.",
+ "ERROR": "Nem sikerült létrehozni a céget."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Cég részleteinek betöltése...",
+ "EMPTY_STATE": {
+ "TITLE": "Cég nem található",
+ "SUBTITLE": "Ez a cég lehet, hogy eltávolításra került, vagy már nem elérhető ebben a fiókban."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Tulajdonságok",
+ "CONTACTS": "Kontaktok",
+ "HISTORY": "Előzmények",
+ "NOTES": "Megjegyzések"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "Nincsenek beszélgetések a cég ügyfeleihez kapcsolódóan."
+ },
+ "NOTES": {
+ "EMPTY": "Nincsenek megjegyzések a cég ügyfeleihez kapcsolódóan."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Tulajdonságok keresése...",
+ "EMPTY_STATE": "A cégnek még nincsenek egyedi tulajdonságai.",
+ "NO_ATTRIBUTES": "Nincs találat a tulajdonságok között.",
+ "UNUSED_ATTRIBUTES": "{count} nem használt tulajdonság | {count} nem használt tulajdonság",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Cég tulajdonsága frissítve.",
+ "UPDATE_ERROR": "Nem sikerült frissíteni a cég tulajdonságát.",
+ "DELETE_SUCCESS": "Cég tulajdonsága eltávolítva.",
+ "DELETE_ERROR": "Nem sikerült eltávolítani a cég tulajdonságát."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Kontaktok betöltése...",
+ "EMPTY": "Ehhez a céghez még nincsenek ügyfelek kapcsolva.",
+ "UNNAMED_CONTACT": "Név nélküli ügyfél",
+ "ACTIONS": {
+ "ADD": "Ügyfél hozzáadása",
+ "REMOVE": "Ügyfél eltávolítása"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Keress a meglévő ügyfelek között, és csatold őket ehhez a céghez.",
+ "SEARCH_PLACEHOLDER": "Ügyfelek keresése...",
+ "INITIAL": "Kezdj el gépelni az ügyfelek kereséséhez.",
+ "EMPTY": "Nem találhatók ügyfelek.",
+ "CONFIRM_TITLE": "Ügyfél csatolása",
+ "CONFIRM_DESCRIPTION": "Erősítsd meg a cég és az ügyfél csatolását.",
+ "COMPANY_LABEL": "Cég",
+ "CONTACT_LABEL": "Kontakt",
+ "CURRENT_COMPANY": "Jelenlegi cég: {companyName}",
+ "ADD": "Csatolás",
+ "CANCEL": "Mégse"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Ügyfél csatolva a céghez.",
+ "ADD_ERROR": "Nem sikerült csatolni az ügyfelet a céghez.",
+ "REASSIGN_SUCCESS": "Ügyfél újra hozzárendelve a céghez.",
+ "REASSIGN_ERROR": "Nem sikerült újra hozzárendelni az ügyfelet a céghez.",
+ "REMOVE_SUCCESS": "Ügyfél eltávolítva a cégtől.",
+ "REMOVE_ERROR": "Nem sikerült eltávolítani az ügyfelet a cégtől."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Nem sikerült eltávolítani a cég profilképét."
+ },
+ "PROFILE": {
+ "TITLE": "Cég részleteinek szerkesztése",
+ "CREATED_AT": "Létrehozás dátuma: {date}",
+ "LAST_ACTIVE": "Utolsó aktivitás: {date}",
+ "DESCRIPTION_PLACEHOLDER": "Adj hozzá egy rövid leírást ehhez a céghez",
+ "ACTIONS": {
+ "SAVE": "Cég frissítése"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Cég frissítve.",
+ "UPDATE_ERROR": "Nem sikerült frissíteni a céget."
+ },
+ "FIELDS": {
+ "NAME": "Név",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Veszélyzóna",
+ "SECTION_DESCRIPTION": "Töröld ezt a céget, és válaszd le a kapcsolódó ügyfeleket. Az ügyfelek megmaradnak a fiókban.",
+ "BUTTON": "Cég törlése",
+ "TITLE": "Cég törlése?",
+ "DESCRIPTION": "Ez eltávolítja a céget, és leválaszt minden kapcsolódó ügyfelet. Az ügyfelek megmaradnak.",
+ "DESCRIPTION_WITH_NAME": "Ez eltávolítja a '{companyName}' céget, és leválaszt minden kapcsolódó ügyfelet. Az ügyfelek megmaradnak.",
+ "CONFIRM": "Cég törlése",
+ "MESSAGES": {
+ "SUCCESS": "Cég törölve.",
+ "ERROR": "Nem sikerült törölni a céget."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/components.json b/app/javascript/dashboard/i18n/locale/hu/components.json
new file mode 100644
index 000000000..5feb395bf
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Nincs találat.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Nincs találat.",
+ "SEARCHING": "Keresés..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Mégse",
+ "CONFIRM": "Megerősítés"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Kérlek, válassz egy hívószámot a listából"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Tudj meg többet",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/contact.json b/app/javascript/dashboard/i18n/locale/hu/contact.json
index 80c092801..3a88e7793 100644
--- a/app/javascript/dashboard/i18n/locale/hu/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hu/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP cím",
"CREATED_AT_LABEL": "Létrehozva",
"NEW_MESSAGE": "Új üzenet",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Nincs megelőző beszélgetés ezzel a kontakttal.",
"TITLE": "Korábbi beszélgetések"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Egyedi atribútumok",
"CONTACT_LABELS": "Kontakt címkéi",
- "PREVIOUS_CONVERSATIONS": "Korábbi beszélgetések"
+ "PREVIOUS_CONVERSATIONS": "Korábbi beszélgetések",
+ "NO_RECORDS_FOUND": "Nem található tulajdonság"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Kontakt szerkesztése",
"DESC": "Kontakt részletek szerkesztése"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Új kontakt",
- "TITLE": "Új kontakt létrehozása",
- "DESC": "Alapvető információ a kontaktról."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importálás",
- "TITLE": "Kontaktok importálása",
- "DESC": "Kontaktok importálása CSV fájlból.",
- "DOWNLOAD_LABEL": "Minta CSV fájl letöltése.",
- "FORM": {
- "LABEL": "CSV fájl",
- "SUBMIT": "Importálás",
- "CANCEL": "Mégse"
- },
- "SUCCESS_MESSAGE": "Értesítjük emailben, amint a befogadás megtörtént.",
- "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Kontaktok exportálása",
- "DESC": "Kontaktok exportálása CSV fájlból.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra",
- "CONFIRM": {
- "TITLE": "Kontaktok exportálása",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Törlés megerősítése",
- "MESSAGE": "Biztosan törölni akarod ezt a megjegyzést?",
- "YES": "Igen, töröld",
- "NO": "Nem, tartsa meg"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Kontakt Törlése",
"TITLE": "Kontakt törlése",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontaktok",
- "FIELDS": "Kontakt mezői",
- "SEARCH_BUTTON": "Keresés",
- "SEARCH_INPUT_PLACEHOLDER": "Kontaktok keresése",
- "FILTER_CONTACTS": "Szűrő",
- "FILTER_CONTACTS_SAVE": "Szűrő mentése",
- "FILTER_CONTACTS_DELETE": "Szűrő törlése",
- "FILTER_CONTACTS_EDIT": "Szegmens szerkesztése",
"LIST": {
- "LOADING_MESSAGE": "Kontaktok betöltése...",
- "404": "Nincs a keresésnek megfelelő kontakt 🔍",
- "NO_CONTACTS": "Nincsenek elérhető kontaktok",
"TABLE_HEADER": {
- "NAME": "Név",
- "PHONE_NUMBER": "Telefonszám",
- "CONVERSATIONS": "Beszélgetések",
- "LAST_ACTIVITY": "Utolsó aktivitás",
- "CREATED_AT": "Létrehozva",
- "COUNTRY": "Ország",
- "CITY": "Város",
- "SOCIAL_PROFILES": "Social media profilok",
- "COMPANY": "Cég",
- "EMAIL_ADDRESS": "Email cím"
- },
- "VIEW_DETAILS": "Részletek megtekintése"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontaktok",
- "LOADING": "A kontakt profiljának betöltése..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Hozzáadás",
- "TITLE": "Shift + Enter egy feladat létrehozásához"
- },
- "FOOTER": {
- "DUE_DATE": "Lejárati idő",
- "LABEL_TITLE": "Típus megadása"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Megjegyzések letöltése...",
- "NOT_AVAILABLE": "Ehhez a kontakthoz nincs megjegyzés létrehozva",
- "HEADER": {
- "TITLE": "Megjegyzések"
- },
- "LIST": {
- "LABEL": "hozzáadott egy megjegyzést"
- },
- "ADD": {
- "BUTTON": "Hozzáadás",
- "PLACEHOLDER": "Megjegyzés hozzáadása",
- "TITLE": "Shift + Enter egy megjegyzés létrehozásához"
- },
- "CONTENT_HEADER": {
- "DELETE": "Megjegyzés törlése"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Tevékenységek"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "megjegyzések",
- "PILL_BUTTON_EVENTS": "események",
- "PILL_BUTTON_CONVO": "beszélgetések"
+ "SOCIAL_PROFILES": "Social media profilok"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Attribútum hozzáadása",
"BUTTON": "Speciális attribútum hozzáadása",
- "NOT_AVAILABLE": "Ehhez a névjegyhez nem állnak rendelkezésre egyéni tulajdonságok.",
"COPY_SUCCESSFUL": "Vágólapra másolva",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Attribútum másolása",
"DELETE": "Attribútum törlése",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Összegzés",
- "DELETE_WARNING": "%{primaryContactName} kontaktja törlésre kerül.",
- "ATTRIBUTE_WARNING": "%{primaryContactName} kontakt adatai át lesznek másolva hozzá: %{parentContactName}."
+ "DELETE_WARNING": "{primaryContactName} kontaktja törlésre kerül.",
+ "ATTRIBUTE_WARNING": "{primaryContactName} kontakt adatai át lesznek másolva hozzá: {parentContactName}."
},
"SEARCH": {
- "ERROR": "HIBA_ÜZENET"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Kontaktok egyesítése",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontakt összevonása sikeres",
"ERROR_MESSAGE": "Nem sikerült a kontaktot összevonni, próbáld újra!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontaktok",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Üzenet",
+ "SEND_MESSAGE": "Üzenet elküldése",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontaktok"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Az e-mailcím már egy másik kontakthoz tartozik.",
+ "PHONE_NUMBER_DUPLICATE": "Ez a telefonszám már egy másik kontakthoz tartozik.",
+ "SUCCESS_MESSAGE": "Kontakt mentés sikeres",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Kontaktok importálása CSV fájlból.",
+ "DOWNLOAD_LABEL": "Minta CSV fájl letöltése.",
+ "LABEL": "CSV fájl:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Megváltoztatás",
+ "CANCEL": "Mégse",
+ "IMPORT": "Importálás",
+ "SUCCESS_MESSAGE": "Értesítjük emailben, amint a befogadás megtörtént.",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
+ },
+ "SORT_BY": {
+ "LABEL": "Rendezés",
+ "OPTIONS": {
+ "NAME": "Név",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Telefonszám",
+ "COMPANY": "Cég",
+ "COUNTRY": "Ország",
+ "CITY": "Város",
+ "LAST_ACTIVITY": "Utolsó aktivitás",
+ "CREATED_AT": "Létrehozva"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "El akarod menteni ezt a szűrőt?",
+ "CONFIRM": "Szűrő mentése",
+ "LABEL": "Név",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Törlés megerősítése",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Igen, Törlés",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Név",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Telefonszám",
+ "IDENTIFIER": "Azonosító",
+ "COUNTRY": "Ország",
+ "CITY": "Város",
+ "COMPANY": "Cég",
+ "CREATED_AT": "Létrehozva",
+ "LAST_ACTIVITY": "Utolsó aktivitás",
+ "REFERER_LINK": "Hivatkozás link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Igaz",
+ "BLOCKED_FALSE": "Hamis",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Szűrők törlése",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Szűrők alkalmazása",
+ "ADD_FILTER": "Szűrő hozzáadása"
+ },
+ "TITLE": "Kontaktok szűrése",
+ "EDIT_SEGMENT": "Szegmens szerkesztése",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Szűrők törlése"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Részletek megtekintése",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Kontakt részletek szerkesztése",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Az e-mailcím már egy másik kontakthoz tartozik."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Ez a telefonszám már egy másik kontakthoz tartozik."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Add meg a város nevét"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Cégnév megadása"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "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 contact?",
+ "CONFIRM": "Igen, Törlés",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakt sikeresen törölve",
+ "ERROR_MESSAGE": "A kontakt törlése nem lehetséges. Kérjük próbáld később."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar sikeresen törölve",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Megjegyzések",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Nincs megelőző beszélgetés ezzel a kontakttal"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Igen",
+ "NO": "Nem",
+ "TRIGGER": {
+ "SELECT": "Válassz egyet",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Kötelező megadni",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Hibás URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Nem található tulajdonság",
+ "API": {
+ "SUCCESS_MESSAGE": "Tulajdonság sikeresen frissítve",
+ "DELETE_SUCCESS_MESSAGE": "Tulajdonság sikeresen törölve",
+ "UPDATE_ERROR": "Nem lehet frissíteni a tulajdonságot. Kérlek, próbáld újra később",
+ "DELETE_ERROR": "Nem lehet törölni a tulajdonságot. Kérlek, próbáld újra később"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Kapcsolattartók összevonása",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Elsődleges kontakt",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Törlendő",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Kontakt keresése",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Kontakt összevonása sikeres",
+ "ERROR_MESSAGE": "Nem sikerült a kontaktot összevonni, próbáld újra!",
+ "IS_SEARCHING": "Keresés...",
+ "BUTTONS": {
+ "CANCEL": "Mégse",
+ "CONFIRM": "Kapcsolattartók összevonása"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Megjegyzés hozzáadása",
+ "WROTE": "írta",
+ "YOU": "Ön",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Nincs a keresésnek megfelelő kontakt 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Cimke hozzáadása",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Címkék hozzárendelése sikeres.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Törlés",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Kontakt törlése"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Megtekintés",
+ "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": "Ide:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Tárgy :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Másolat:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Titkos másolat:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Titkos másolat"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Írd ide üzeneted..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Változók",
+ "BACK": "Visszaugrás",
+ "SEND_MESSAGE": "Üzenet elküldése"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Visszaugrás",
+ "SEND_MESSAGE": "Üzenet elküldése"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/contactFilters.json b/app/javascript/dashboard/i18n/locale/hu/contactFilters.json
index 7645f97e4..d3f6309a2 100644
--- a/app/javascript/dashboard/i18n/locale/hu/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hu/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Kisebb mint",
"days_before": "x nappal előtte"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Kötelező megadni"
+ },
"ATTRIBUTES": {
"NAME": "Név",
"EMAIL": "E-mail",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Jelölőnégyzet",
"CREATED_AT": "Létrehozva",
"LAST_ACTIVITY": "Utolsó aktivitás",
- "REFERER_LINK": "Hivatkozás link"
+ "REFERER_LINK": "Hivatkozás link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Cimkék"
},
"GROUPS": {
"STANDARD_FILTERS": "Alap szűrők",
diff --git a/app/javascript/dashboard/i18n/locale/hu/contentTemplates.json b/app/javascript/dashboard/i18n/locale/hu/contentTemplates.json
new file mode 100644
index 000000000..dee0184f5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Sablon keresése",
+ "NO_TEMPLATES_FOUND": "Nem található sablon erre:",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategória",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Nyelv",
+ "TEMPLATE_BODY": "Sablon törzse",
+ "CATEGORY": "Kategória"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Szöveg"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Változók",
+ "LANGUAGE": "Nyelv",
+ "CATEGORY": "Kategória",
+ "VARIABLE_PLACEHOLDER": "Add meg a {variable} értékét",
+ "GO_BACK_LABEL": "Vissza",
+ "SEND_MESSAGE_LABEL": "Üzenet küldése",
+ "FORM_ERROR_MESSAGE": "Kérlek add meg az összes változó értékét küldés előtt",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Vissza",
+ "SEND_MESSAGE_BUTTON": "Üzenet küldése"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/conversation.json b/app/javascript/dashboard/i18n/locale/hu/conversation.json
index f4ea792c0..7e68e6b40 100644
--- a/app/javascript/dashboard/i18n/locale/hu/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hu/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " Első lépések",
"NO_INBOX_AGENT": "O-Ó! Úgy tűnik, hogy egyetlen fióknak sem vagy tagja. Kérjük lépj kapcsolatba az adminisztrátoroddal",
"SEARCH_MESSAGES": "Üzenetek keresése a beszélgetésekben",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "menü megnyitása",
"KEYBOARD_SHORTCUTS": "billentyűparancs megtekintése"
@@ -30,41 +32,97 @@
"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",
+ "48_HOURS_WINDOW": "48 ó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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Ismeretlen fájl",
- "SAVE_CONTACT": "Mentés",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} megbeszélést kezdett"
+ },
"UPLOADING_ATTACHMENTS": "Csatolt fileok feltöltése...",
"REPLIED_TO_STORY": "Válaszolt a storydra",
- "UNSUPPORTED_MESSAGE": "Ez az üzenet nem támogatott.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ez az üzenet nem támogatott. Ezt az üzenetet a Facebook Messenger alkalmazásban tekintheti meg.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ez az üzenet nem támogatott. Ezt az üzenetet az Instagram alkalmazásban tekintheti meg.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Üzenet törölve",
"FAIL_DELETE_MESSSAGE": "Nem tudtad törölni az üzenetet! Próbáld újra",
"NO_RESPONSE": "Nincs válasz",
+ "RESPONSE": "Response",
"RATING_TITLE": "Értékelés",
"FEEDBACK_TITLE": "Visszajelzés",
"REPLY_MESSAGE_NOT_FOUND": "Üzenet nem elérhető",
"CARD": {
"SHOW_LABELS": "Cimkék mutatása",
- "HIDE_LABELS": "Cimkék elrejtése"
+ "HIDE_LABELS": "Cimkék elrejtése",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Kevesebb mutatása"
},
"HEADER": {
"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",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Halasztás eddig",
"SNOOZED_UNTIL_TOMORROW": "Halasztás holnapig",
"SNOOZED_UNTIL_NEXT_WEEK": "Halasztás jövő hétig",
- "SNOOZED_UNTIL_NEXT_REPLY": "Halasztás következő válaszig"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Halasztás következő válaszig",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Függőben levőként megjelölés",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Jövő héten"
}
},
+ "MENTION": {
+ "AGENTS": "Ügynökök",
+ "TEAMS": "Csapatok"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Halasztás eddig",
"APPLY": "Halasztás",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nincs",
"INPUT_PLACEHOLDER": "Prioritás megadása",
"NO_RESULTS": "Nincs találat",
- "SUCCESSFUL": "Beszélgetés prioritásának megváltoztatása",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Megjelölés olvasatlanként",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Beszélgetés újranyitása",
"SNOOZE": {
"TITLE": "Halasztás",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Cimke hozzáadása",
"AGENTS_LOADING": "Ügynökök betöltése...",
"ASSIGN_TEAM": "Csapat hozzárendelése",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Beszélgetés azonosító",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Nem sikerült hozzárendelni ügynököt. Kérlek, próbáld újra."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Címke hozzárendelése",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nem sikerült hozzárendelni címkét. Kérlek, próbáld újra."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Hozzárendelés csoporthoz",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Nem sikerült hozzárendelni csoporthoz. Kérlek, próbáld újra."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Aláírás kikapcsolása",
"MSG_INPUT": "Shift + enter új sorért. Kezdj a '/'-el mentett válasz kiválasztásához.",
"PRIVATE_MSG_INPUT": "Shift + enter új sorért. Ezt csak ügynökök láthatják",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Üzenet aláírása nem változott, kérlek, változtasd meg a profilod beállításaiban. ",
- "CLICK_HERE": "Frissítéshez kattints ide"
+ "COPILOT_MSG_INPUT": "Adj további promptokat a copilothoz, vagy kérdezz bármi mást... Nyomd meg az Entert a folytatáshoz",
+ "CLICK_HERE": "Frissítéshez kattints ide",
+ "WHATSAPP_TEMPLATES": "Whatsapp sablonok"
},
"REPLYBOX": {
"REPLY": "Válasz",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Tudj meg többet",
"DISMISS_REPLY": "Válasz elutasítása",
"REPLYING_TO": "Válaszolva a következőre:",
- "TIP_FORMAT_ICON": "Rich szövegszerkesztő mutatása",
"TIP_EMOJI_ICON": "Emoji választó mutatása",
"TIP_ATTACH_ICON": "Fileok csatolása",
"TIP_AUDIORECORDER_ICON": "Hangfelvétel",
"TIP_AUDIORECORDER_PERMISSION": "Hozzáférés megadása a hangfelvételhez",
"TIP_AUDIORECORDER_ERROR": "Nem sikerült megnyitni a hangfelvételt",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Helyezd ide a csatolmányt",
"START_AUDIO_RECORDING": "Hangfelvétel indítása",
"STOP_AUDIO_RECORDING": "Hangfelvétel leállítása",
- "": "",
+ "COPILOT_THINKING": "Copilot gondolkodik",
"EMAIL_HEAD": {
"TO": "Címzett",
"ADD_BCC": "Titkos másolat hozzáadása",
@@ -171,11 +252,18 @@
},
"UNDEFINED_VARIABLES": {
"TITLE": "Definiálatlan változók",
- "MESSAGE": "Definiálatlan változók vannak az üzenetedben. Így is el szeretnéd küldeni az üzenetet?",
+ "MESSAGE": "Az üzeneted {undefinedVariablesCount} definiálatlan változót tartalmaz: {undefinedVariables}. Így is el szeretnéd küldeni az üzenetet?",
"CONFIRM": {
"YES": "Elküldés",
"CANCEL": "Mégse"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privát megjegyzés: csak Neked és a csapat tagjainak látható",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nem tudsz üzenetet küldeni, kérlek, próbáld újra",
"SENT_BY": "Küldő:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nem sikerült elküldeni az üzenetet! Próbáld újra.",
"TRY_AGAIN": "újra",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Törlés",
"CANCEL": "Mégse"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontakt",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Elutasítás",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Mégse",
"SEND_EMAIL_SUCCESS": "A beszélgetés jegyzet sikeresen elküldve",
"SEND_EMAIL_ERROR": "Hiba történt, kérjük próbáld újra",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "A beszélgetés jegyzet elküldése az ügyfélnek",
"SEND_TO_AGENT": "A beszélgetés jegyzet elküldése a hozzárendelt ügynöknek",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hello 👋, köszöntünk a %{installationName}!",
- "DESCRIPTION": "Köszönjük, hogy feliratkoztál. Segíteni akarunk, hogy a legtöbbet hozd ki a %{installationName}. Itt találsz egy pár dolgot, amit a %{installationName} lehetővé tesz.",
+ "TITLE": "Hello 👋, köszöntünk a {installationName}!",
+ "DESCRIPTION": "Köszönjük, hogy feliratkoztál. Segíteni akarunk, hogy a legtöbbet hozd ki a {installationName}. Itt találsz egy pár dolgot, amit a {installationName} lehetővé tesz.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Olvasd el legfrissebbeket",
"ALL_CONVERSATION": {
"TITLE": "Minden beszélgetésed egy helyen",
- "DESCRIPTION": "Kövesd az összes ügyfélbeszélgetésedet egy felületről. Szűrheted a beszélgetéseket csatorna, cimke vagy státusz alapján."
+ "DESCRIPTION": "Kövesd az összes ügyfélbeszélgetésedet egy felületről. Szűrheted a beszélgetéseket csatorna, cimke vagy státusz alapján.",
+ "NEW_LINK": "Kattints ide postaláda létrehozásához"
},
"TEAM_MEMBERS": {
"TITLE": "Hívd meg csapattagjaidat",
"DESCRIPTION": "Mivel éppen ügyféllel készülsz beszélni, hívd meg a csapattagjaidat, hogy segíthessenek neked. Az e-mailcímük ügynöklistába való megadásával tudod meghívni őket.",
"NEW_LINK": "Kattints ide csapattag meghívásához"
},
- "INBOXES": {
- "TITLE": "Inboxok összekötése",
- "DESCRIPTION": "Különböző csatornákat használva kapcsolódj az ügyfeleidhez. Weboldal chateden, a Facebook vagy Twitter fiókodon, vagy akár WhatsApp számodon keresztül.",
- "NEW_LINK": "Kattints ide postaláda létrehozásához"
- },
"LABELS": {
"TITLE": "Rendezd a beszélgetéseket cimkékkel",
"DESCRIPTION": "A cimkék egyszerű módot biztosítanak hogy kategorizáld a beszélgetést. Hozz létre cimkéket, mint például a #támogatás vagy a #számlázás, stb... későbbi használatra.",
"NEW_LINK": "Kattints ide cimkék létrehozásához"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Makrók",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Összes megtekintése",
+ "SHOW_LESS": "Kevesebb mutatása",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Függőben lévő",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Attribútum hozzáadása",
+ "NO_RECORDS_FOUND": "Nem található tulajdonság",
"UPDATE": {
"SUCCESS": "Tulajdonság sikeresen frissítve",
"ERROR": "Nem lehet frissíteni a tulajdonságot. Kérlek, próbáld újra"
@@ -297,17 +449,18 @@
"TO": "Ide",
"BCC": "Titkos másolat",
"CC": "Másolat",
- "SUBJECT": "Tárgy"
+ "SUBJECT": "Tárgy",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Részvétel",
"SIDEBAR_TITLE": "Résztvevők",
"NO_RECORDS_FOUND": "Nincs találat",
"ADD_PARTICIPANTS": "Résztvevők kiválasztása",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} fő",
- "REMANING_PARTICIPANT_TEXT": "+%{count} fő",
- "TOTAL_PARTICIPANTS_TEXT": "+%{count} fő vesz részt.",
- "TOTAL_PARTICIPANT_TEXT": "+%{count} fő vesz részt.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} fő",
+ "REMANING_PARTICIPANT_TEXT": "+{count} fő",
+ "TOTAL_PARTICIPANTS_TEXT": "+{count} fő vesz részt.",
+ "TOTAL_PARTICIPANT_TEXT": "+{count} fő vesz részt.",
"NO_PARTICIPANTS_TEXT": "Nincs részvevő!.",
"WATCH_CONVERSATION": "Csatlakozás a beszélgetéshez",
"YOU_ARE_WATCHING": "Te részt veszel",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Eredeti szöveg",
"TRANSLATED_CONTENT": "Fordított szöveg",
"NO_TRANSLATIONS_AVAILABLE": "Nem elérhető fordítás ehhez a tartalomhoz"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/customRole.json b/app/javascript/dashboard/i18n/locale/hu/customRole.json
new file mode 100644
index 000000000..178a1b3c4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Nincs megfelelő elem.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "DESCRIPTION": "Leírás",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Műveletek"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Név",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Név kötelező."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Leírás megadása kötelező."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Mégse",
+ "API": {
+ "ERROR_MESSAGE": "Nem sikerült csatlakozni a Woot szerverhez, kérjük próbáld később"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Elküldés",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Szerkesztés",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Frissítés",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Törlés",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Nem sikerült csatlakozni a Woot szerverhez, kérjük próbáld később"
+ },
+ "CONFIRM": {
+ "TITLE": "Törlés megerősítése",
+ "MESSAGE": "Biztos abban, hogy törli ",
+ "YES": "Igen, törlés ",
+ "NO": "Nem, mégse "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/datePicker.json b/app/javascript/dashboard/i18n/locale/hu/datePicker.json
new file mode 100644
index 000000000..04cc6a9d1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Alkalmaz",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Utolsó 7 nap",
+ "LAST_30_DAYS": "Utolsó 30 nap",
+ "LAST_3_MONTHS": "Elmúlt 3 hónapban",
+ "LAST_6_MONTHS": "Elmúlt 6 hónapban",
+ "LAST_YEAR": "Elmúlt 1 évben",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Egyedi időszak"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/general.json b/app/javascript/dashboard/i18n/locale/hu/general.json
new file mode 100644
index 000000000..0ba3d5f3a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Keresés",
+ "EMPTY_STATE": "Nincs találat"
+ },
+ "CLOSE": "Bezárás",
+ "BETA": "Béta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Igen",
+ "NO": "Nem"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/generalSettings.json b/app/javascript/dashboard/i18n/locale/hu/generalSettings.json
index bad4ac35b..fe041fecb 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Most már goadhatsz e-maileket az egyedi domaineden."
}
},
- "UPDATE_CHATWOOT": "Egy frissítés elérhető a Chatwoothoz %{latestChatwootVersion}. Kérjük frissítsd a telepítésed.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Enter-rel válaszd ki",
"ENTER_TO_REMOVE": "Enter-rel távolítsd el",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Válassz egyet",
"SELECT": "Kiválasztás"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Beszélgetés hozzárendelve",
"assigned_conversation_new_message": "Új üzenet",
"participating_conversation_new_message": "Új üzenet",
- "conversation_mention": "Megemlítés"
+ "conversation_mention": "Megemlítés",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Frissítés"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Keresés vagy ugrás ide:",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Általános",
"REPORTS": "Jelentések",
"CONVERSATION": "Beszélgetés",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Felelős megváltoztatása",
"CHANGE_PRIORITY": "Prioritás megváltoztatása",
"CHANGE_TEAM": "Csapat megváltoztatása",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Holnapig",
"UNTIL_NEXT_MONTH": "Következő hónapig",
"AN_HOUR_FROM_NOW": "Mostantól egy óráig",
- "CUSTOM": "Speciális...",
+ "UNTIL_CUSTOM_TIME": "Speciális...",
"CHANGE_APPEARANCE": "Megjelenés módosítása",
"LIGHT_MODE": "Világos mód",
"DARK_MODE": "Sötét mód",
diff --git a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
index 315bbdf54..78388171c 100644
--- a/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hu/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Súgóközpont",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Portál létrehozása"
+ },
"HEADER": {
"FILTER": "Szűrés",
"SORT": "Rendezés",
@@ -41,6 +46,7 @@
"UPLOADING": "Frissítés...",
"SUCCESS": "Képfeltöltés sikeres",
"ERROR": "Hiba a kép feltöltésekor",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "A kép mérete kevesebb, mint {size} MB",
"ERROR_FILE_FORMAT": "A kép formátuma legyen jpg, jpeg vagy png",
"ERROR_FILE_DIMENSIONS": "A kép felbontása kevesebb legyen, mint 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Kategorizálhatatlan",
- "SEARCH_RESULTS": "Keresési eredmények %{query}",
+ "SEARCH_RESULTS": "Keresési eredmények {query}",
"EMPTY_TEXT": "Cikkek keresése a válaszokba való beillesztéshez.",
"SEARCH_LOADER": "Keresés...",
"INSERT_ARTICLE": "Beszúrás",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portál sikeresen törölve",
"DELETE_ERROR": "Hiba a portál törlése közben"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Sugó információk",
- "route": "new_portal_information",
- "body": "Általános információk a portálról",
- "CREATE_BASIC_SETTING_BUTTON": "Portál általános beállításainak létrehozása"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Sugó információk",
+ "BODY": "Általános információk a portálról"
},
- {
- "title": "Sugó testreszabása",
- "route": "portal_customization",
- "body": "Portál személyreszabása",
- "UPDATE_PORTAL_BUTTON": "Portál beállítások frissítése"
+ "CUSTOMIZATION": {
+ "TITLE": "Sugó testreszabása",
+ "BODY": "Portál személyreszabása"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "Kész is!",
- "FINISH": "Befejezés"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "Kész is!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Vissza",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Egyedi domain",
"PLACEHOLDER": "Portál egyedi domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Adj meg egy érvényes felhasználó URL-t"
},
"HOME_PAGE_LINK": {
"LABEL": "Főoldal link",
"PLACEHOLDER": "Portál főoldal link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Adj meg egy érvényes kezdőlap URL-jét"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Terület sikeresen eltávolítva a portálról",
"ERROR_MESSAGE": "Nem sikerült eltávolítani a területet a portálról. Kérlek, próbáld újra."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Cikk sikeresen archiválva"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Hiba a cikk törlésekor"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Kérjük, adj hozzá a cikk címét és tartalmát, ezután csak Te tudod majd frissíteni a beállításokat"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Használja a portált fej nélküli CMS-ként harmadik féltől származó front-end keretrendszerekkel a mi API-ink segítségével."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publikálás",
+ "DRAFT": "Vázlat",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Fordítás",
+ "DELETE": "Törlés"
+ },
+ "STATUS": {
+ "DRAFT": "Vázlat",
+ "PUBLISHED": "Publikált",
+ "ARCHIVED": "Archivált"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Enyém",
+ "DRAFT": "Vázlat",
+ "PUBLISHED": "Publikált",
+ "ARCHIVED": "Archivált"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Bejegyzés lefordítása | {count} bejegyzés lefordítása",
+ "DESCRIPTION": "Fordítsd le a kiválasztott bejegyzést egy másik nyelvre. | Fordítsd le a kiválasztott bejegyzéseket egy másik nyelvre.",
+ "LOCALE_LABEL": "Célnyelv",
+ "LOCALE_PLACEHOLDER": "Válassz nyelvet",
+ "CATEGORY_LABEL": "Célkategória",
+ "CATEGORY_PLACEHOLDER": "Válassz kategóriát",
+ "OPTIONAL": "(opcionális)",
+ "CONFIRM": "Fordítás",
+ "SELECT_ALL": "Összes kijelölése ({count})",
+ "SELECTED_COUNT": "{count} kijelölve",
+ "CLEAR_SELECTION": "Kijelölés törlése",
+ "TRANSLATE_BUTTON": "Fordítás",
+ "CONFIRM_OVERWRITE": "Felülírás és lefordítás",
+ "DUPLICATE_WARNING": "Ehhez a bejegyzéshez már létezik fordítás a kiválasztott nyelven. | {count} bejegyzéshez már létezik fordítás a kiválasztott nyelven.",
+ "DUPLICATE_CONFIRM_HINT": "Kattints a 'Lefordítás' gombra ismét a meglévő fordítás felülírásához.",
+ "API": {
+ "SUCCESS_MESSAGE": "A fordítás folyamatban van. A bejegyzés elkészülés után piszkozatként fog megjelenni.",
+ "ERROR_MESSAGE": "Nem sikerült elindítani a fordítást. Kérlek, próbáld újra."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publikálás",
+ "DRAFT": "Vázlat",
+ "ARCHIVE": "Archiválás",
+ "TRANSLATE": "Fordítás",
+ "MOVE_TO_CATEGORY": "Kategória",
+ "DELETE": "Törlés",
+ "STATUS_SUCCESS": "A bejegyzések sikeresen frissítve",
+ "STATUS_ERROR": "Nem sikerült frissíteni a bejegyzéseket",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Bejegyzés törlése | {count} bejegyzés törlése",
+ "DELETE_CONFIRM_DESCRIPTION": "Ez véglegesen törli a kiválasztott bejegyzést. Ez a művelet nem vonható vissza. | Ez véglegesen törli a kijelölt {count} bejegyzést. Ez a művelet nem vonható vissza.",
+ "DELETE_CONFIRM": "Törlés",
+ "DELETE_SUCCESS": "A bejegyzések sikeresen törölve",
+ "DELETE_ERROR": "Nem sikerült törölni a bejegyzéseket"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Új kategória",
+ "EDIT_CATEGORY": "Kategória szerkesztése",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nincsenek kategóriák",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategória létrehozva",
+ "ERROR_MESSAGE": "Nem lehet létrehozni a kategóriát"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategória frissítve",
+ "ERROR_MESSAGE": "Nem lehet frissíteni a kategóriát"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategória törölve",
+ "ERROR_MESSAGE": "Nem lehet törölni a kategóriát"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Kategória létrehozása",
+ "EDIT": "Kategória szerkesztése",
+ "DESCRIPTION": "A kategória szerkesztése frissíti a kategóriát a nyilvános portálon.",
+ "PORTAL": "Portál",
+ "LOCALE": "Nyelv"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Név",
+ "PLACEHOLDER": "Kategória neve",
+ "ERROR": "Név kötelező"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Kategória az URL-ekhez",
+ "ERROR": "Érme megadása kötelező",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Adj egy rövid leírást a kategóriához.",
+ "ERROR": "Leírás megadása kötelező"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Létrehozás",
+ "EDIT": "Frissítés",
+ "CANCEL": "Mégse"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Alapértelmezett",
+ "DRAFT": "Vázlat",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Törlés"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Új terület hozzáadása",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Nyelv kiválasztása..."
+ },
+ "STATUS": {
+ "LABEL": "Státusz",
+ "OPTIONS": {
+ "LIVE": "Publikált",
+ "DRAFT": "Vázlat"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Terület sikeresen hozzáadva",
+ "ERROR_MESSAGE": "Nem sikerült területet hozzáadni. Kérlek, próbáld újra."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Mentés...",
+ "SAVED": "Mentve"
+ },
+ "PREVIEW": "Előnézet",
+ "PUBLISH": "Publikálás",
+ "DRAFT": "Vázlat",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Kategorizálhatatlan",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta leírás",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta cím",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tagek",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Hiba a cikk elmentésekor"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portálok",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "bejegyzések",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portál neve"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Létrehozás",
+ "NAME": {
+ "LABEL": "Név",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Név kötelező"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Érme megadása kötelező",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logó",
+ "IMAGE_UPLOAD_ERROR": "A képet nem lehet betölteni! Próbálja újra",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo sikeresen törölve",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "A kép mérete kevesebb, mint {size} MB"
+ },
+ "NAME": {
+ "LABEL": "Név",
+ "PLACEHOLDER": "Portál neve",
+ "ERROR": "Név kötelező"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portál fejléc szöveg"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portál oldalcím"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portál főoldal link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Egyedi felhasználó",
+ "LABEL": "Egyedi felhasználó:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portál egyedi domain",
+ "EDIT_BUTTON": "Szerkesztés",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Élő",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Egyedi felhasználó",
+ "PLACEHOLDER": "Portál egyedi domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Elküldés"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Portál törlése",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Törlés"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Megjelenés",
+ "DESCRIPTION": "Válaszd ki az elrendezést, amely a legjobban megfelel a céljaidnak.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Klasszikus",
+ "DESCRIPTION": "Barátságos kezdőlap kereséssel és kiemelt témákkal."
+ },
+ "SIDEBAR": {
+ "TITLE": "Dokumentáció",
+ "DESCRIPTION": "Egymás melletti navigáció, amely minden útmutatót egy kattintásnyira tart."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Közösségi hivatkozások",
+ "DESCRIPTION": "Add meg az egyes hálózatok felhasználónevét, és a súgóközpont elkészíti a teljes hivatkozást. A dokumentációs elrendezés láblécében jelenik meg.",
+ "PLACEHOLDER": "felhasználónév",
+ "ADD": "Közösségi hivatkozás hozzáadása",
+ "REMOVE": "Eltávolítás"
+ },
+ "SAVE": "Módosítások mentése"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portál sikeresen létrehozva",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portál sikeresen frissítve",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Frissítés...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Mégse",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generálás...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Lezárt",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/inbox.json b/app/javascript/dashboard/i18n/locale/hu/inbox.json
index f16e033ef..af065fda8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/hu/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Fiók",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Értesítések lekérése",
- "EOF": "Minden értesítés betöltve 🎉",
"404": "Ebben a csoportban nincsenek aktív értesítések.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Értesítés az összes feliratkozott postafiókból",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Halasztás eddig",
"SNOOZED_UNTIL_TOMORROW": "Halasztás holnapig",
"SNOOZED_UNTIL_NEXT_WEEK": "Halasztás jövő hétig"
},
"ACTION_HEADER": {
"SNOOZE": "Értesítés alvó állapotban",
- "DELETE": "Értesítés törlése"
+ "DELETE": "Értesítés törlése",
+ "BACK": "Vissza"
},
"TYPES": {
"CONVERSATION_MENTION": "Önt megemlítették egy beszélgetésben",
"CONVERSATION_CREATION": "Új beszélgetés létrehozása",
"CONVERSATION_ASSIGNMENT": "Egy beszélgetés hozzád lett rendelve",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Új üzenet egy kijelölt beszélgetésben",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Új üzenet egy beszélgetésben, amelyben részt vesz"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Új üzenet egy beszélgetésben, amelyben részt vesz",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Új üzenet",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Új üzenet",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Nincs elérhető tartalom",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Megjelölés olvasatlanként",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
index b2e1a3fbb..8f778b771 100644
--- a/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Fiókok",
- "SIDEBAR_TXT": "Inbox
Amikor egy weboldalt vagy facebook oldalt összekötsz a Chatwoottal, inbox-nak vagy fióknak hívjuk. Korlátlan inboxod lehet a Chatwoot fiókodban.
Kattints a Inbox hozzáadása gombra hogy összekapcsold a weboldaladdal vagy Facebook oldaladdal.
A műszerfaladon láthatod az összes beszélgetésedet az összes fiókodból egy helyen és válszolhatsz a 'Beszélgetések' fülön.
Láthatsz továbbá fiókhoz kapcsolódó beszélgetéseket a fiók nevére kattintva a műszerfal bal sávjában.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Nincs Inbox kapcsolva ehhez a fiókhoz."
},
- "CREATE_FLOW": [
- {
- "title": "Csatorna kiválasztása",
- "route": "settings_inbox_new",
- "body": "Válasz egy szolgáltatót, melyet össze akarsz integrálni a Chatwoottal."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Csatorna kiválasztása",
+ "BODY": "Válasz egy szolgáltatót, melyet össze akarsz integrálni a Chatwoottal."
},
- {
- "title": "Fiók létrehozása",
- "route": "settings_inboxes_page_channel",
- "body": "Hitelesítsd a fiókod és hozz létre egy inboxot."
+ "INBOX": {
+ "TITLE": "Fiók létrehozása",
+ "BODY": "Hitelesítsd a fiókod és hozz létre egy inboxot."
},
- {
- "title": "Ügynök Hozzádása",
- "route": "settings_inboxes_add_agents",
- "body": "Adj hozzá ügynököket a létrehozott inboxhoz."
+ "AGENT": {
+ "TITLE": "Ügynök Hozzádása",
+ "BODY": "Adj hozzá ügynököket a létrehozott inboxhoz."
},
- {
- "title": "Tadaaam!",
- "route": "settings_inbox_finish",
- "body": "Mindennel készen állsz!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Mindennel készen állsz!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Fiók név",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Válaszd ki az oldalt a listából",
"INBOX_NAME": "Fiók név",
"ADD_NAME": "Adj nevet a fiókodnak",
- "PICK_NAME": "Válassz nevet az inboxodnak",
- "PICK_A_VALUE": "Válassz értéket"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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 ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Add meg a Webhook URL-t",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Kérjük helyes URL-t adj meg"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website domain",
"PLACEHOLDER": "Add meg weboldalad domainjét (pl.: példa.hu)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API kulcs",
- "PLACEHOLDER": "Kérlek add meg a Bandwidth API kulcsot",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Ez a mező kötelező"
},
"API_SECRET": {
"LABEL": "API titkos kulcs",
- "PLACEHOLDER": "Kérlek add meg a Bandwidth Titkoskódot",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Ez a mező kötelező"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Kapcsolatfelvétel az ügyfelekkel WhatsAppon keresztül.",
"PROVIDERS": {
"LABEL": "API szolgáltató",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Fiók név",
"PLACEHOLDER": "Kérjük adj meg a fiók nevet",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Azonosító Token",
- "PLACEHOLDER": "Adj meg egy ellenőrző tokent, amelyet be szeretne állítani a facebook webhookhoz.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Kérlek adj meg egy érvényes értéket."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "WhatsApp cstorna létrehozása",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Nem tudtuk elmenteni a WhatsApp csatornát"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefonszám",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Fiók SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API kulcs biztonsági azonosító (SID)",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API titkos kulcs",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API csatorna",
"DESC": "API-val integrálj és láss neki az ügyfeleid támogatásának.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Állítsd be az URL-t melyről fogadni szeretnéd a visszahívásokat az eseményekről.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "API csatorna létrehozása",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "E-mail csatorna",
- "DESC": "Inbox-al való integrálás.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Csatorna neve",
"PLACEHOLDER": "Kérjük adj meg csatorna nevet",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Nem tudtuk elmenteni az e-mail csatornát"
},
- "FINISH_MESSAGE": "Kezdd el továbbítani az e-maileket a következő e-mail címekre."
+ "FINISH_MESSAGE": "Kezdd el továbbítani az e-maileket a következő e-mail címekre.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Kattints ide",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE csatorna",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Csatorna kiválasztása",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Honlap",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Ügynökök",
"DESC": "Itt hozzáadhatsz ügynököket az újonan létrehooztt inboxodhoz. Csak ezek a kiválasztott ügynökök fognak hozzáférni az inboxodhoz. Az ügynökök akik nem részei az inboxnak, nem látják és nem tudnak válaszolni az üzenetekre belépésük után.
UI:Adminisztrátorként hozzáférésed van az összes inboxhoz, add hozzá magad az összes inboxhoz ügynökként.",
- "VALIDATION_ERROR": "Adj legalább egy ügynököt az új inboxodhoz",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Válaszd ki az inboxhoz hozzárendelt ügynököket"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "A kezdéshez kattintson a Bejelentkezés a Microsofttal gombra. A rendszer átirányítja az e-mail bejelentkezési oldalra. Miután elfogadta a kért engedélyeket, a rendszer visszairányítja a beérkező levelek létrehozásának lépéséhez.",
"EMAIL_PLACEHOLDER": "E-mailcím megadása",
- "HELP": "Ha Microsoft-fiókját csatornaként szeretné hozzáadni, hitelesítenie kell Microsoft-fiókját a \"Bejelentkezés Microsoft-fiókkal\" lehetőségre kattintva ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "Hiba történt a Microsoft szervereihez való csatlakozáskor, kérjük próbáld később"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "E-mailcím megadása",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Facebookkal azonosítunk...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Valami elromlott, kérjük töltsd újra az oldalt...",
"ERROR_FB_UNAUTHORIZED": "Nincs jogosultsága erre a tevékenységre. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Bizonyosodjon meg, hogy teljes hozzáférése van a Facebook oldalhoz. Bővebb információt itt talál.",
@@ -386,7 +557,10 @@
"MESSAGE": "Most már tudsz egyeztetni az ügyfeleiddel az új csatornán. Boldog támgoatást",
"BUTTON_TEXT": "Vigyél oda",
"MORE_SETTINGS": "További beállítások",
- "WEBSITE_SUCCESS": "Sikeresen létrehoztad a website csatornát. Másold az itt látható kódot és helyezd el a weboldaladon. Legközelebb, mikor egy ügyfél az élő chatben van, a beszélgetés automatikusan megjelenik az inboxodban."
+ "WEBSITE_SUCCESS": "Sikeresen létrehoztad a website csatornát. Másold az itt látható kódot és helyezd el a weboldaladon. Legközelebb, mikor egy ügyfél az élő chatben van, a beszélgetés automatikusan megjelenik az inboxodban.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Újraengedélyezés",
"VIEW": "Megtekintés",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Küldő neve",
- "SUB_TEXT": "Válassza ki a nevet, amit a vevő lásson, amikor emailt kap.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "Például:",
"FRIENDLY": {
"TITLE": "Barátságos",
@@ -418,7 +592,7 @@
"SUBTITLE": "Csak a konfigurált cégnevet használja feladói névként az e-mail fejlécében."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "Üzleti nevének konfigurálása",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Adja meg vállalkozásának nevét",
"SAVE_BUTTON_TEXT": "Mentés"
}
@@ -432,8 +606,10 @@
"DISABLED": "Letiltva"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Engedélyezve",
- "DISABLED": "Letiltva"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Engedélyezés"
@@ -464,7 +640,107 @@
"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ó",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Élő"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Beállítások",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger szkript",
"MESSENGER_SUB_HEAD": "Ezt a gombot a body tag-en belül helyezd el",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Ügynökök",
"INBOX_AGENTS_SUB_TEXT": "Ügynökök hosszáadása vagy eltávolítása az inboxból",
"AGENT_ASSIGNMENT": "Beszélgetés hozzárendelés",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Egyetlen beszélgetés zárolása",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Több beszélgetés engedélyezése vagy letiltása ugyanahhoz a névjegyhez ebben a postafiókban",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Fiókbeállítások",
"INBOX_UPDATE_SUB_TEXT": "Frissítsd az inbox beállításaidat",
"AUTO_ASSIGNMENT_SUB_TEXT": "Bekapcsolása vagy kikapcsolása az inboxhoz kapcsolódó automatikus ügynökhozzárendelésnek új beszélgetések esetén.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Használja az itt látható \"inbox_identifier\" tokent az API-kliensek hitelesítéséhez.",
"FORWARD_EMAIL_TITLE": "Továbbítás ide",
"FORWARD_EMAIL_SUB_TEXT": "Kezdd el továbbítani az e-maileket a következő e-mail címekre.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Üzenetek engedélyezése a beszélgetés befejezése után",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Engedélyezze a végfelhasználók számára, hogy üzeneteket küldjenek a beszélgetés lezárása után is.",
"WHATSAPP_SECTION_SUBHEADER": "Ezt az API-kulcsot a WhatsApp API-kkal való integrációhoz használják.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Adja meg a frissített kulcsot a WhatsApp API-kkal való integrációhoz.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API kulcs",
"WHATSAPP_SECTION_UPDATE_TITLE": "API-kulcs frissítése",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Add meg az új API kulcsot",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Frissítés",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Azonosító Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Kapcsolódás",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "Ez a token a webhook-végpont hitelességének ellenőrzésére szolgál.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Csevegés előtti űrlap beállításainak frissítése"
},
"HELP_CENTER": {
"LABEL": "Súgóközpont",
"PLACEHOLDER": "Súgóközpont kiválasztása",
"SELECT_PLACEHOLDER": "Súgóközpont kiválasztása",
+ "NONE": "Nincs",
"REMOVE": "Súgóközpont eltávolítása",
"SUB_TEXT": "Súgóközpont csatolása a fiókhoz"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Kérlek 0-nál magasabb értéket adj meg",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Korlátozza az ebből a postafiókból érkező beszélgetések maximális számát, amelyek automatikusan hozzárendelhetők egy ügynökhöz"
},
+ "ASSIGNMENT": {
+ "TITLE": "Beszélgetés hozzárendelés",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktív",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Mégse",
+ "CONFIRM_DELETE": "Törlés",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Újraengedélyezés",
"SUBTITLE": "A Facebook kapcsolatod lejárt, kérjük kapcsold össze oldalad újra a szolgáltatás folytatásához",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Nyelv",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Visszaugrás"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Nem elérhető üzenetek a vendégek számára",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Nap",
+ "AVAILABILITY": "Elérhetőség",
+ "HOURS": "Hours",
"ENABLE": "Elérhetőség bekapcsolása erre a napra",
"UNAVAILABLE": "Nem elérhető",
- "HOURS": "óra",
"VALIDATION_ERROR": "A kezés idejének a zárás ideje előttinek kell lennie.",
"CHOOSE": "Kiválasztás"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Az SMTP engedélyezéséhez konfigurálja az IMAP-et.",
"UPDATE": "IMAP beállítások frissítése",
"TOGGLE_AVAILABILITY": "Engedélyezze az IMAP-konfigurációt ehhez a fiókhoz",
- "TOGGLE_HELP": "Az IMAP engedélyezése segít a felhasználónak az e-mailek fogadásában",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP beállítások sikeresen frissítve",
"ERROR_MESSAGE": "Nem sikerült frissíteni az IMAP-beállításokat"
@@ -606,7 +1042,8 @@
"LABEL": "Jelszó",
"PLACE_HOLDER": "Jelszó"
},
- "ENABLE_SSL": "SSL engedélyezése"
+ "ENABLE_SSL": "SSL engedélyezése",
+ "AUTH_MECHANISM": "Autentikáció"
},
"MICROSOFT": {
"TITLE": "360Dialog",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Egy napon belül"
},
"WIDGET_COLOR_LABEL": "Widget szín",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget buborék pozíciója",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget buborék típusa",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Típus:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatelj velünk",
- "LABEL": "Widget buborék indító címe",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chatelj velünk"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Alapértelmezett",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Néhány percen belül válaszol",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\nwindow.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "360Dialog",
- "OTHER_PROVIDERS": "Más szolgáltató"
+ "MICROSOFT": {
+ "TITLE": "360Dialog",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Más szolgáltató",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Honlap",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mail",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API csatorna",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/index.js b/app/javascript/dashboard/i18n/locale/hu/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/hu/index.js
+++ b/app/javascript/dashboard/i18n/locale/hu/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
index 0d7c0f05b..da685f756 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Integrációk lekérése",
- "NO_HOOK_CONFIGURED": "Ebben a fiókban nincs beállítva %{integrationId} integráció",
+ "NO_HOOK_CONFIGURED": "Ebben a fiókban nincs beállítva {integrationId} integráció",
"HEADER": "Alkalmazások",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Engedélyezve",
"DISABLED": "Letiltva"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Integrációs hookok betöltése",
"INBOX": "Fiók",
+ "ACTIONS": "Műveletek",
"DELETE": {
"BUTTON_TEXT": "Törlés"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Válassz fiókot"
},
"SUBMIT": "Létrehozás",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Mégse"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Leválasztás"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "A Dialogflow egy természetes nyelvi platform, amely megkönnyíti a társalgási felhasználói felület tervezését és integrálását mobilalkalmazásába, webalkalmazásába, eszközébe, botjába, interaktív hangválaszrendszerébe stb.
A Dialogflow integráció a %{installationName} szolgáltatással lehetővé teszi egy Dialogflow bot konfigurálását a beérkező leveleihez, amely lehetővé teszi, hogy a bot kezdetben kezelje a lekérdezéseket, és szükség esetén átadja azokat egy ügynöknek. A Dialogflow felhasználható a potenciális ügyfelek minősítésére, az ügynökök munkaterhelésének csökkentésére gyakran ismételt kérdések megadásával stb.
A Dialogflow hozzáadásához létre kell hoznod egy szolgáltatásfiókot a Google projektkonzoljában, és meg kell osztanod adataidat a hitelesítéshez. További információkért tekintsd meg a Dialogflow dokumentumokat."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/integrations.json b/app/javascript/dashboard/i18n/locale/hu/integrations.json
index 9c25873c1..0750b809e 100644
--- a/app/javascript/dashboard/i18n/locale/hu/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hu/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Mégse",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrációk",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Feliratkozott események",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Mégse",
"DESC": "Webhook események valós idejű információt adnak arról, hogy mi történik a Chatwoot fiókodban. Kérünk a visszahívás beállításánál egy helyes URL-t adj meg.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Például: https://példa.com/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Kérjük helyes URL-t adj meg"
},
"EDIT_SUBMIT": "Webhook frissítése",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Nincs a fiókhoz rendelt Webhook.",
"TITLE": "Webhook kezelés",
- "TABLE_HEADER": [
- "Webhook végpont",
- "Műveletek"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook végpont",
+ "ACTIONS": "Műveletek"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Szerkesztés",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Törlés megerősítése",
- "MESSAGE": "Biztosan törölni szeretnéd a webhookot? (%{webhookURL})",
+ "MESSAGE": "Biztosan törölni szeretnéd a webhookot? ({webhookURL})",
"YES": "Igen, Törlés ",
"NO": "Nem, tartsa meg"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Törlés",
"DELETE_CONFIRMATION": {
"TITLE": "Az integráció törlése",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "kiválasztás"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI segítség",
- "WITH_AI": " %{option} AI-al ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Válasz lehetőségek",
"SUMMARIZE": "Összefoglalás",
@@ -114,7 +161,29 @@
"EXPAND": "Kiegészítés",
"MAKE_FRIENDLY": "Legyen személyes hangvételű",
"MAKE_FORMAL": "Legyen hivatalos hangvételű",
- "SIMPLIFY": "Egyszerűsít"
+ "SIMPLIFY": "Egyszerűsít",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professzionális",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Barátságos"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Vázlatos szöveg",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Új kezdőlapi applikáció hozzáadása",
"SIDEBAR_TXT": "Irányítópult-alkalmazások
Az irányítópult-alkalmazások segítségével a szervezetek beágyazhatnak egy alkalmazást a Chatwoot irányítópultjába, hogy kontextust biztosítsanak az ügyfélszolgálati ügynökök számára. Ezzel a funkcióval önállóan hozhat létre alkalmazást, és beágyazhatja azt az irányítópultba, hogy megadja a felhasználói információkat, rendeléseiket vagy korábbi fizetési előzményeiket.
Ha beágyazza alkalmazását a Chatwoot irányítópultjával, az alkalmazás ablakeseményként kapja meg a beszélgetés és a kapcsolatfelvétel kontextusát. Helyezzen el egy figyelőt az üzeneteseményhez az oldalon, hogy megkapja a kontextust.
Új irányítópult-alkalmazás hozzáadásához kattintson az „Új irányítópult-alkalmazás hozzáadása” gombra.
",
"DESCRIPTION": "Az irányítópult-alkalmazások segítségével a szervezetek beágyazhatnak egy alkalmazást az irányítópultba, hogy kontextust biztosítsanak az ügyfélszolgálati ügynökök számára. Ez a funkció lehetővé teszi, hogy önállóan hozzon létre egy alkalmazást, és beágyazza azt, hogy megadja a felhasználói információkat, rendeléseiket vagy korábbi fizetési előzményeiket.\n",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Ebben a fiókban még nincsenek konfigurálva kezdőlapi-alkalmazások",
"LOADING": "Kezdőlapi alkalmazások lekérése...",
- "TABLE_HEADER": [
- "Név",
- "Végpont"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "ENDPOINT": "Végpont",
+ "ACTIONS": "Műveletek"
+ },
"EDIT_TOOLTIP": "App szerkesztése",
"DELETE_TOOLTIP": "App törlése"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Igen, töröld",
"CONFIRM_NO": "Nem, tartsd meg",
"TITLE": "Törlés megerősítése",
- "MESSAGE": "Biztosan törölni szeretnéd az appot? (%{appName}?",
+ "MESSAGE": "Biztosan törölni szeretnéd az appot? ({appName}?",
"API_SUCCESS": "Kezdőlapi applikációk sikeresen törölve",
"API_ERROR": "Nem tudtuk törölni az appot, kérlek próbáld újra"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Létrehozás",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Cím",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Cím megadása kötelező"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Csapat",
+ "PLACEHOLDER": "Csapat kiválasztása",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritás",
+ "PLACEHOLDER": "Prioritás megadása",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Cimke",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Státusz",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Státusz",
+ "PRIORITY": "Prioritás",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Cimkék",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Igen, törlés",
+ "CANCEL": "Mégse"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Tudjon meg többet",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asszisztensek",
+ "SWITCH_ASSISTANT": "Váltás az asszisztensek között",
+ "NEW_ASSISTANT": "Asszisztens létrehozása",
+ "EMPTY_LIST": "Nem található asszisztens, kérjük, hozzon létre egyet a kezdéshez"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Kezdje el a Copilottal",
+ "KICK_OFF_MESSAGE": "Gyors összefoglalóra van szüksége, szeretné áttekinteni a korábbi beszélgetéseket, vagy jobb választ megfogalmazni? A Copilot gyorsítja a folyamatot.",
+ "SEND_MESSAGE": "Üzenet elküldése...",
+ "EMPTY_MESSAGE": "Hiba történt a válasz elkészítésekor. Kérjük, próbálja újra.",
+ "LOADER": "Captain gondolkodik",
+ "YOU": "Ön",
+ "USE": "Használja ezt",
+ "RESET": "Alaphelyzetbe állítás",
+ "SHOW_STEPS": "Mutassa a lépéseket",
+ "SELECT_ASSISTANT": "Asszisztens kiválasztása",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Foglalja össze ezt a beszélgetést",
+ "CONTENT": "Foglalja össze a kulcspontokat az ügyfél és az ügyfélszolgálati ügynök között folytatott beszélgetésben, beleértve az ügyfél aggályait, kérdéseit és az ügyfélszolgálati ügynök által adott megoldásokat vagy válaszokat."
+ },
+ "SUGGEST": {
+ "LABEL": "Javasoljon választ",
+ "CONTENT": "Elemezze az ügyfél kérdését, és készítsen egy választ, amely hatékonyan kezeli az aggályokat vagy kérdéseket. Biztosítsa, hogy a válasz világos, tömör és hasznos információkat tartalmazzon."
+ },
+ "RATE": {
+ "LABEL": "Értékelje ezt a beszélgetést",
+ "CONTENT": "Vizsgálja felül a beszélgetést, hogy mennyire felel meg az ügyfél igényeinek. Osszon meg egy értékelést 5 pontból a hangnem, világosság és hatékonyság alapján."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Nagy prioritású beszélgetések",
+ "CONTENT": "Adjon egy összefoglalót az összes nagy prioritású nyitott beszélgetésről. Tartalmazza a beszélgetés azonosítóját, az ügyfél nevét (ha elérhető), az utolsó üzenet tartalmát és a kijelölt ügynököt. Ha releváns, csoportosítsa státusz szerint."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Kapcsolatok listázása",
+ "CONTENT": "Mutassa meg a 10 legfontosabb kapcsolat listáját. Tartalmazza a nevet, e-mailt vagy telefonszámot (ha elérhető), az utolsó megtekintés idejét, címkéket (ha vannak)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Ön",
+ "ASSISTANT": "Asszisztens",
+ "MESSAGE_PLACEHOLDER": "Gépeld be üzeneted...",
+ "HEADER": "Játszótér",
+ "DESCRIPTION": "Használja ezt a játszóteret üzenetek küldéséhez az asszisztensnek, és ellenőrizze, hogy pontosan, gyorsan és a várt hangnemben válaszol-e.",
+ "CREDIT_NOTE": "Itt küldött üzenetek a Captain kreditjeit csökkentik."
+ },
+ "PAYWALL": {
+ "TITLE": "Frissítsen a Captain AI használatához",
+ "AVAILABLE_ON": "A Captain nem érhető el az ingyenes csomagban.",
+ "UPGRADE_PROMPT": "Frissítse csomagját, hogy hozzáférjen asszisztenseinkhez, copilothoz és egyebekhez.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "A Captain AI csak az Enterprise csomagokban érhető el.",
+ "UPGRADE_PROMPT": "Frissítse csomagját, hogy hozzáférjen asszisztenseinkhez, copilothoz és egyebekhez.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "A válaszlimit több mint 80%-át felhasználta. A Captain AI további használatához kérjük, frissítsen.",
+ "DOCUMENTS": "Elérte a dokumentumok korlátját. Frissítsen a Captain AI használat folytatásához."
+ },
+ "FORM": {
+ "CANCEL": "Mégse",
+ "CREATE": "Létrehozás",
+ "EDIT": "Frissítés"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Leírás",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Beállítások",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Törlés"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Törlés"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Törlés"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Cím",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Létrehozás",
+ "CANCEL": "Mégse"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Mégse",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Törlés",
+ "BULK_SYNC_BUTTON": "Frissítés",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Az oldal nem található",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Számlázási beállítások megnyitása",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nincs",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API kulcs"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Jelszó",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Típus"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Szám",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Kötelező"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Törlés",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Mind"
+ },
+ "STATUS": {
+ "TITLE": "Státusz",
+ "PENDING": "Függőben lévő",
+ "APPROVED": "Approved",
+ "ALL": "Mind"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Szerkesztés",
+ "DELETE_RESPONSE": "Törlés"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Leválasztás"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Igen, törlés",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Fiók",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
index ff8543f88..e4ee526a0 100644
--- a/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hu/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Cimkék",
"HEADER_BTN_TXT": "Cimke hozzáadása",
"LOADING": "Cimkék letöltése",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Címkék keresése...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Nincs megfelelő elem",
- "SIDEBAR_TXT": "Cimkék
A cimkék segítenek kategorizálni és priorizálni a beszélgetéseket. A beszélgetésekhez cimkét rendelhetsz az oldalpanelben
A cimkék a fiókodhoz vannak kötve. A cimkékkel egyedi munkameneteket hozhatsz létre a szervezetedben. Egyedi színt adhatsz a cimkéknek a könnyű azonosíthatóság érdekében. Az oldalsávban meg tudod majd jeleníteni a cimkéket hogy könnyen szűrhesd a beszélgetéseket
",
"LIST": {
"404": "Nincs megfelelő cimke ebben a fiókban.",
"TITLE": "Cimkék kezelése",
"DESC": "A cimkék a beszélgetések csoportokba rendezését segítik.",
- "TABLE_HEADER": [
- "Név",
- "Leírás",
- "Szín"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "DESCRIPTION": "Leírás",
+ "COLOR": "Szín",
+ "ACTION": "Műveletek"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Elutasítás",
"ADD_SELECTED_LABELS": "Kijelölt címkék hozzáadása",
"ADD_SELECTED_LABEL": "Kijelölt címke hozzáadása",
- "ADD_ALL_LABELS": "Minden címke hozzáadása"
+ "ADD_ALL_LABELS": "Minden címke hozzáadása",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Cimke hozzáadása",
diff --git a/app/javascript/dashboard/i18n/locale/hu/login.json b/app/javascript/dashboard/i18n/locale/hu/login.json
index 3cae5f036..3bd51284b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/login.json
+++ b/app/javascript/dashboard/i18n/locale/hu/login.json
@@ -3,7 +3,7 @@
"TITLE": "Chatwoot belépés",
"EMAIL": {
"LABEL": "E-mail",
- "PLACEHOLDER": "E-mail pl.: valaki@példa.hu",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Kérjük helyes e-mailcímet adj meg"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Elfelejtetted a jelszavad?",
"CREATE_NEW_ACCOUNT": "Új fiók létrehozása",
- "SUBMIT": "Bejelentkezés"
+ "SUBMIT": "Bejelentkezés",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/macros.json b/app/javascript/dashboard/i18n/locale/hu/macros.json
index 18bea009f..117061b66 100644
--- a/app/javascript/dashboard/i18n/locale/hu/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hu/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Makrók",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Új makró hozzáadása",
"HEADER_BTN_TXT_SAVE": "Makró mentése",
"LOADING": "Makrók lekérdezése",
- "SIDEBAR_TXT": "Makrók
A makró olyan mentett műveletek halmaza, amelyek segítségével az ügyfélszolgálati ügynökök könnyedén elvégezhetik a feladatokat. Az ügynökök meghatározhatnak egy sor műveletet, mint például egy beszélgetés címkével való címkézése, e-mail átirat küldése, egyéni tulajdonság frissítése stb., Ezeket a műveleteket egyetlen kattintással végrehajthatják. Amikor az ügynökök futtatják a makrót, a műveletek egymás után, a meghatározott sorrendben hajtódnak végre. A makrók javítják a produktivitást és növelik a műveletek következetességét.
A makró kétféleképpen lehet hasznos:
Ügynöki asszisztensként: Ha egy ügynök többször végrehajt egy műveletsort, makróként mentheti el, és egyetlen kattintással végrehajthatja az összes műveletet.
Csapattag bevonásának lehetősége: Minden ügynöknek sok különböző ellenőrzést/műveletet kell végrehajtania minden beszélgetés során. Egy új ügyfélszolgálati tag felvétele egyszerű lesz, ha előre meghatározott makrók állnak rendelkezésre a fiókban. Az egyes lépések részletes leírása helyett a menedzser/csapatvezető rámutathat a különböző forgatókönyvekben használt makrókra.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Valami elromlott, kérjük töltsd próbáld újra",
"ORDER_INFO": "A makrók a műveletek hozzáadásának sorrendjében fognak futni. A makrókat áthúzással át tudod rendezni.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Név",
- "Létrehozta",
- "Utoljára szerkesztette:",
- "Láthatóság"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Név",
+ "CREATED BY": "Létrehozta",
+ "LAST_UPDATED_BY": "Utoljára szerkesztette:",
+ "VISIBILITY": "Láthatóság",
+ "ACTIONS": "Műveletek"
+ },
"404": "Nem találtunk makrót"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Hiba történt a makró törlése közben. Kérlek próbáld újra később"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Makró szerkesztése",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Makró láthatósága",
"GLOBAL": {
"LABEL": "Nyilvános",
- "DESCRIPTION": "Ez a makró nyilvánosan elérhető minden ügynök számára ebben a fiókban."
+ "DESCRIPTION": "Ez a makró nyilvánosan elérhető minden ügynök számára ebben a fiókban.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Csak adminisztrátorok tudnak publikus makrókat szerkeszteni."
},
"PERSONAL": {
"LABEL": "Privát",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Futtatás",
"PREVIEW": "Makró előnézet",
"EXECUTED_SUCCESSFULLY": "Makró végrehajtása sikeres"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Kötelező megadni",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nincs",
+ "LOW": "Alacsony",
+ "MEDIUM": "Közepes",
+ "HIGH": "Magas",
+ "URGENT": "Sürgős"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/mfa.json b/app/javascript/dashboard/i18n/locale/hu/mfa.json
new file mode 100644
index 000000000..755e5cd80
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Engedélyezve",
+ "DISABLED": "Letiltva",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Másolás",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Mégse",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Letöltés",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Jelszó",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Mégse",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Mégse",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/onboarding.json b/app/javascript/dashboard/i18n/locale/hu/onboarding.json
new file mode 100644
index 000000000..1eff9d57e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Szia {name}!",
+ "SUBTITLE": "Ellenőrizd az alábbi adatokat",
+ "YOUR_DETAILS": "Adataid",
+ "COMPANY_DETAILS": "Cégadatok",
+ "FIELDS": {
+ "EMAIL": "E-mail",
+ "YOUR_ROLE": "Szerepköröd",
+ "WEBSITE": "Honlap",
+ "LANGUAGE": "Nyelv",
+ "TIMEZONE": "Időzóna",
+ "COMPANY_SIZE": "Cégméret",
+ "INDUSTRY": "Iparág",
+ "REFERRAL_SOURCE": "Hol találtál ránk?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Válassz szerepkört",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Válassz nyelvet",
+ "SELECT_TIMEZONE": "Időzóna kiválasztása",
+ "SELECT_COMPANY_SIZE": "Válassz cégméretet",
+ "SELECT_INDUSTRY": "Válassz iparágat",
+ "SELECT_REFERRAL_SOURCE": "Válassz forrást"
+ },
+ "EMAIL_VERIFIED": "E-mail cím megerősítve",
+ "SETTING_UP": "A fiókod beállítása...",
+ "CONTINUE": "Folytatás",
+ "SAVING": "Mentés...",
+ "VALIDATION_ERROR": "Töltsd ki az összes kötelező mezőt",
+ "SUCCESS": "Az adatok sikeresen mentve",
+ "ERROR": "Nem sikerült menteni az adatokat. Próbáld újra."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/report.json b/app/javascript/dashboard/i18n/locale/hu/report.json
index 3b99acac0..2595a0a5b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/report.json
+++ b/app/javascript/dashboard/i18n/locale/hu/report.json
@@ -3,7 +3,7 @@
"HEADER": "Beszélgetések",
"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_AGENT_REPORTS": "Ügynök jelentések letöltése",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Sikertelen adatlekérés, kérlek próbáld újra később.",
"SUMMARY_FETCHING_FAILED": "Sikertelen összefoglaló lekérés, kérlek próbáld újra később.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Első reakció idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Első válaszidő"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Megoldási idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Felbontási idő"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Megoldások száma",
"DESC": "( Teljes )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Megoldások száma",
+ "DESC": "( Teljes )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Teljes )"
+ },
"REPLY_TIME": {
"NAME": "Vevő várakozási idő",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Utolsó 7 nap",
+ "LAST_14_DAYS": "Utolsó 14 nap",
"LAST_30_DAYS": "Utolsó 30 nap",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Elmúlt 3 hónapban",
"LAST_6_MONTHS": "Elmúlt 6 hónapban",
"LAST_YEAR": "Elmúlt 1 évben",
"CUSTOM_DATE_RANGE": "Egyedi időszak"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Utolsó 7 nap"
- },
- {
- "id": 1,
- "name": "Utolsó 30 nap"
- },
- {
- "id": 2,
- "name": "Elmúlt 3 hónapban"
- },
- {
- "id": 3,
- "name": "Elmúlt 6 hónapban"
- },
- {
- "id": 4,
- "name": "Elmúlt 1 évben"
- },
- {
- "id": 5,
- "name": "Egyedi időszak"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Alkalmaz",
"PLACEHOLDER": "Dátumtartomány kiválasztása"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Nyitvatartás"
+ "BUSINESS_HOURS": "Nyitvatartás",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nincs találat"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Ügynök áttekintés",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Ügynök jelentések letöltése",
"FILTER_DROPDOWN_LABEL": "Ügynök kiválasztása",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ügynökök keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -155,13 +155,13 @@
"NAME": "Első reakció idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Első válaszidő"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Megoldási idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Felbontási idő"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Megoldások száma",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Cimke választása",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Címkék keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -222,13 +228,13 @@
"NAME": "Első reakció idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Első válaszidő"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Megoldási idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Felbontási idő"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Megoldások száma",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Beérkezett üzenetek áttekintése",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Beérkezett üzenetek letöltése",
"FILTER_DROPDOWN_LABEL": "Válassz egy fiókot",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -289,13 +303,13 @@
"NAME": "Első reakció idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Első válaszidő"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Megoldási idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Felbontási idő"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Megoldások száma",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Csapat áttekintés",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Csapat riport letöltése",
"FILTER_DROPDOWN_LABEL": "Csapat kiválasztása",
+ "FILTERS": {
+ "ADD_FILTER": "Szűrő hozzáadása",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Csapatok keresése"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Beszélgetések",
@@ -356,13 +379,13 @@
"NAME": "Első reakció idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Első válaszidő"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Megoldási idő",
"DESC": "( Átlag )",
"INFO_TEXT": "A számításhoz felhasznált beszélgetések száma:",
- "TOOLTIP_TEXT": "Felbontási idő"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Megoldások száma",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT riportok",
- "NO_RECORDS": "Nem állnak rendelkezésre CSAT-felmérés válaszai.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "CSAT jelentés letöltése",
"DOWNLOAD_FAILED": "Sikertelen a CSAT jelentés letöltése",
"FILTERS": {
+ "ADD_FILTER": "Szűrő hozzáadása",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ügynökök keresése",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Csapatok keresése",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Ügynökök választása"
+ "LABEL": "Ügynök"
+ },
+ "INBOXES": {
+ "LABEL": "Fiók"
+ },
+ "TEAMS": {
+ "LABEL": "Csapat"
+ },
+ "RATINGS": {
+ "LABEL": "Értékelés"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Hozzárendelt ügynök",
+ "AGENT_NAME": "Ügynök",
"RATING": "Értékelés",
- "FEEDBACK_TEXT": "Visszajelző komment"
- }
+ "FEEDBACK_TEXT": "Visszajelző komment",
+ "CONVERSATION": "Beszélgetés",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Összes válasz",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Válaszarány",
"TOOLTIP": "Válaszok teljes száma / Az elküldött CSAT felmérési üzenetek teljes száma * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Mentés",
+ "CANCEL": "Mégse",
+ "SAVING": "Mentés...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Beszélgetés forgalom",
"NO_CONVERSATIONS": "Nincsennek beszélgetések",
- "CONVERSATION": "Beszélgetése százaléka",
- "CONVERSATIONS": "Beszélgetések százalékai"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Nincsennek beszélgetések",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Ügynökök által kezelt beszélgetések",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Nincsennek ügynökök általi beszélgetések",
"TABLE_HEADER": {
"AGENT": "Ügynök",
- "OPEN": "NYITOTT",
+ "OPEN": "Megnyitás",
+ "UNATTENDED": "Figyelmen kívül hagyott",
+ "STATUS": "Státusz"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Csapat",
+ "OPEN": "Megnyitás",
"UNATTENDED": "Figyelmen kívül hagyott",
"STATUS": "Státusz"
}
@@ -476,5 +585,66 @@
"THURSDAY": "csütörtök",
"FRIDAY": "péntek",
"SATURDAY": "szombat"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Szűrő hozzáadása",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nincs találat",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Ügynök neve",
+ "INBOXES": "Fiók név",
+ "LABELS": "Cimke neve",
+ "TEAMS": "Csapatnév"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Fiók",
+ "AGENTS": "Ügynök",
+ "LABELS": "Cimke",
+ "TEAMS": "Csapat"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Beszélgetés",
+ "AGENT": "Ügynök"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Megoldások száma",
+ "CONVERSATIONS": "Beszélgetések száma"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/search.json b/app/javascript/dashboard/i18n/locale/hu/search.json
index 7b2bd1c8e..ddba63e94 100644
--- a/app/javascript/dashboard/i18n/locale/hu/search.json
+++ b/app/javascript/dashboard/i18n/locale/hu/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Mind",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "Nem található %{item}, a keresésre: '%{query}'",
- "EMPTY_STATE_FULL": "Nincs eredménye a következő keresésnek: '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ a fókuszáláshoz",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Keresés",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Nem található {item}, a keresésre: '{query}'",
+ "EMPTY_STATE_FULL": "Nincs eredménye a következő keresésnek: '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/a fókuszáláshoz",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Tudj meg többet",
+ "READ_LESS": "Read less",
"WROTE": "írta:",
- "FROM": "innen",
- "EMAIL": "e-mail"
+ "FROM": "Innen",
+ "EMAIL": "E-mail",
+ "EMAIL_SUBJECT": "Tárgy",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Utolsó 7 nap",
+ "LAST_30_DAYS": "Utolsó 30 nap",
+ "LAST_60_DAYS": "Utolsó 60 nap",
+ "LAST_90_DAYS": "Utolsó 90 nap",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Alkalmaz",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Küldő",
+ "IN": "Fiók",
+ "AGENTS": "Ügynökök",
+ "CONTACTS": "Kontaktok",
+ "INBOXES": "Fiókok",
+ "NO_AGENTS": "Nem találunk ügynököt",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/settings.json b/app/javascript/dashboard/i18n/locale/hu/settings.json
index 4143f9d32..acde7e91b 100644
--- a/app/javascript/dashboard/i18n/locale/hu/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "A jelszavad sikeresen megváltoztattad",
"AFTER_EMAIL_CHANGED": "A profilod sikeresen frissítésre került, kérjük lépj be újra, mivel megváltoztak a belépési adataid",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profilkép",
"ERROR": "Kérjük javítsd ki az űrlaphibákat",
"REMOVE_IMAGE": "Eltávolítás",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Alapértelmezett",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Személyes üzenet aláírás",
"NOTE": "Hozzon létre egyedi üzenetaláírást, amely bármelyik postafiókból küldött üzenet végén megjelenik. Beilleszthet egy soron belüli képet is, amelyet az élő chat, az e-mail és az API bejövő üzenetek támogatnak.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Aláírás sikeresen mentve",
"IMAGE_UPLOAD_ERROR": "A képet nem lehet betölteni! Próbálja újra",
"IMAGE_UPLOAD_SUCCESS": "A kép sikeresen hozzáadva. Az aláírás mentéséhez kattintson a mentésre",
- "IMAGE_UPLOAD_SIZE_ERROR": "A kép mérete kevesebb, mint {size} MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "A kép mérete kevesebb, mint {size} MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Üzenet aláírás",
@@ -54,15 +81,45 @@
"NOTE": "A jelszó frissítása minden beléptetett eszközt kiléptet.",
"BTN_TEXT": "Jelszó megváltoztatása"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Hozzáférési kulcs",
- "NOTE": "Ez a kulcs akkor használható, ha API-alapú integrációt építesz"
+ "NOTE": "Ez a kulcs akkor használható, ha API-alapú integrációt építesz",
+ "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": "Hangüzenetek",
- "NOTE": "Hangüzenetek engedélyezése a vezérlőpulton új üzenetek és beszélgetések esetén.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Nincs",
+ "MINE": "Assigned",
+ "ALL": "Mind",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Esemény figyelmeztetés:",
+ "TITLE": "Alert events for conversations",
"NONE": "Nincs",
"ASSIGNED": "Hozzárendelt Beszélgetések",
"ALL_CONVERSATIONS": "Beszélgetések"
@@ -74,7 +131,9 @@
"TITLE": "Figyelmeztető feltételek:",
"CONDITION_ONE": "Csak akkor küldjön hangjelzést, ha a böngészőablak nem aktív",
"CONDITION_TWO": "Figyelmeztetések küldése 30 másodpercenként, amíg az összes hozzárendelt beszélgetést elolvasta"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Tudj meg többet"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-mail értesítések",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Küldj e-mail értesítéseket, amikor egy új beszélgetés létrejön",
"CONVERSATION_MENTION": "Küldj e-mail értesítéseket, amikor egy beszélgetésben megemlítenek",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Küldj e-mail értesítéseket, amikor egy hozzám rendelt beszélgetésben új üzenet érkezik",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kapj e-mailt amikor egy üzenet létrejön egy hozzád rendelt beszélgetésben"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kapj e-mailt amikor egy üzenet létrejön egy hozzád rendelt beszélgetésben",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-mail",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Az értesítési beállításaid sikeresen frissítve",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Küldj push üzeneteket, amikor egy hozzám rendelt beszélgetésben új üzenet érkezik",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kapj push értesítést amikor egy üzenet létrejön egy hozzád rendelt beszélgetésben",
"HAS_ENABLED_PUSH": "Engedélyezted a push üzeneteket ezen a böngészőn.",
- "REQUEST_PUSH": "Push üznetek engedélyezése"
+ "REQUEST_PUSH": "Push üznetek engedélyezése",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profilkép"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Elérhetőség",
- "STATUSES_LIST": [
- "Online",
- "Foglalt",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Foglalt",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Megváltoztatás",
- "CHANGE_ACCOUNTS": "Fiókváltás",
- "CONTACT_SUPPORT": "Lépj kapcsolatba az ügfyélszolgálattal!",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Fiók kiválasztása az alábbi listából",
- "PROFILE_SETTINGS": "Profilbeállítások",
- "KEYBOARD_SHORTCUTS": "Rövid billentyűparancsok",
- "APPEARANCE": "Megjelenés módosítása",
- "SUPER_ADMIN_CONSOLE": "Szuper felügyeleti konzol",
- "LOGOUT": "Kilépés"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "nap van hátra a próbaidőszakból.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Felfüggesztett Fiók",
"MESSAGE": "A fiókod felfüggesztés alatt van. Bővebb információkért, kérlek, lépj kapcsolatba az ügfyélszolgálattal."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Letöltés",
"UPLOADING": "Feltöltés...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ez a story már nem érhető el."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ez a story már nem érhető el.",
+ "INSTAGRAM_STORY_REPLY": "Válaszolt a storydra:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Mutasd térképen"
},
"FORM_BUBBLE": {
"SUBMIT": "Elküldés"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Ellenőrzés...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Jelenleg nézi:",
"SWITCH": "Váltás",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Beszélgetések",
- "INBOX": "Fiók",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Beszélgetések",
"MENTIONED_CONVERSATIONS": "Megemlítések",
"PARTICIPATING_CONVERSATIONS": "Részvétel",
@@ -208,6 +308,18 @@
"REPORTS": "Jelentések",
"SETTINGS": "Beállítások",
"CONTACTS": "Kontaktok",
+ "ACTIVE": "Aktív",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Fiókok",
+ "CAPTAIN_SETTINGS": "Beállítások",
"HOME": "Nyitólap",
"AGENTS": "Ügynökök",
"AGENT_BOTS": "Botok",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Új fiók",
"REPORTS_CONVERSATION": "Beszélgetések",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampányok",
"ONGOING": "Folyamatban",
"ONE_OFF": "Egyszeri",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Ügynökök",
"REPORTS_LABEL": "Cimkék",
"REPORTS_INBOX": "Fiók",
"REPORTS_TEAM": "Csapat",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Ugrás a Beszélgetések Irányítópultjához",
+ "SET_YOUR_AVAILABILITY": "Elérhetőség beállítása",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Béta",
"REPORTS_OVERVIEW": "Áttekintés",
- "FACEBOOK_REAUTHORIZE": "A Facebook kapcsolatod lejárt, kérjük kapcsold össze oldalad újra a szolgáltatás folytatásához",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Súgóközpont",
- "ALL_ARTICLES": "Minden bejegyzés",
- "MY_ARTICLES": "Saját bejegyzések",
- "DRAFT": "Vázlat",
- "ARCHIVED": "Archivált",
- "CATEGORY": "Kategória",
- "SETTINGS": "Beállítások",
- "CATEGORY_EMPTY_MESSAGE": "Kategóriák nem találhatók "
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategóriák",
+ "LOCALES": "Nyelvek",
+ "SETTINGS": "Beállítások"
},
+ "CHANNELS": "Csatornák",
"SET_AUTO_OFFLINE": {
"TEXT": "Offline állapot automatikusan",
- "INFO_TEXT": "Hagyd, hogy a rendszer automatikusan offline módban jelöljön meg, amikor nem használod az alkalmazást vagy az irányítópultot."
+ "INFO_TEXT": "Hagyd, hogy a rendszer automatikusan offline módban jelöljön meg, amikor nem használod az alkalmazást vagy az irányítópultot.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Dokumentum olvasása"
+ "DOCS": "Dokumentum olvasása",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Lehetőségek",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Számlázás",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Aktuális előfizetés",
- "PLAN_NOTE": "Jelenleg előfizetett a **%{plan}** csomagra **%{quantity}** licensszel"
+ "PLAN_NOTE": "Jelenleg előfizetett a **{plan}** csomagra **{quantity}** licensszel",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Előfizetés kezelése",
"DESCRIPTION": "Korábbi számlák nézete, fizetési részletek szerkesztése, vagy az előfizetés törlése",
"BUTTON_TXT": "Ugrás a számlázási felületre"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Frissítés"
+ },
"CHAT_WITH_US": {
"TITLE": "Kell segítség?",
"DESCRIPTION": "Számlázási problémád akadt? Azért vagyunk itt, hogy segítsünk.",
"BUTTON_TXT": "Chatelj velünk"
},
- "NO_BILLING_USER": "Számlázási fiókod konfigurálás alatt áll. Kérjük, frissítsd az oldalt, és próbáld újra."
+ "NO_BILLING_USER": "Számlázási fiókod konfigurálás alatt áll. Kérjük, frissítsd az oldalt, és próbáld újra.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Megjegyzés:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Mégse",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Vissza",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Vágólapra másolva",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Tulajdonságok keresése"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Beszélgetés megoldása",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Beszélgetés megoldása",
+ "CANCEL": "Mégse"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Igen",
+ "NO": "Nem"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uppsz! Nem találtunk egyetlen Chatwoot-fiókot sem. A folytatáshoz kérlek hozz létre egy új fiókot.",
@@ -294,7 +624,8 @@
"LABEL": "Cégnév",
"PLACEHOLDER": "Kovács Kft."
},
- "SUBMIT": "Elküldés"
+ "SUBMIT": "Elküldés",
+ "CANCEL": "Mégse"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Ugrás a jelentések oldalsávra",
"MOVE_TO_NEXT_TAB": "Ugrás a beszélgetéslista következő lapjára",
"GO_TO_SETTINGS": "Beállítások megnyitása",
- "SWITCH_CONVERSATION_STATUS": "Váltás a következő beszélgetés állapotára",
"SWITCH_TO_PRIVATE_NOTE": "Válts privát jegyzetre",
"SWITCH_TO_REPLY": "Válts a válasz fülre",
"TOGGLE_SNOOZE_DROPDOWN": "Alvómód bekapcsolása a legördülő menüben"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/\n"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritás",
+ "ACTIVE": "Aktív",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Szerkesztés"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Mégse"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Státusz:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Hozzáadás"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Szerkesztés"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Mégse"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Leírás:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Hozzáadás"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Törlés",
+ "CANCEL_BUTTON_LABEL": "Mégse"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/signup.json b/app/javascript/dashboard/i18n/locale/hu/signup.json
index dbaa05dc3..5e2d2561a 100644
--- a/app/javascript/dashboard/i18n/locale/hu/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hu/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Fiók létrehozása",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Regisztrálás",
"TESTIMONIAL_HEADER": "Már csak egy lépés van hátra",
"TESTIMONIAL_CONTENT": "Már csak egy lépésre vagy!",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Munkahelyi e-mail",
- "PLACEHOLDER": "Add meg munkahelyi e-mailcímed. Pl. kovacs.janos@email.hu",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Jelszó",
"PLACEHOLDER": "Jelszó",
"ERROR": "A jelszó túl rövid",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Jelszó megerősítése",
"PLACEHOLDER": "Jelszó megerősítése",
- "ERROR": "A jelszavak nem egyeznek"
+ "ERROR": "A jelszavak nem egyeznek."
},
"API": {
- "SUCCESS_MESSAGE": "Sikeres regisztráció",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Nem sikerült csatlakozni a Woot szerverhez, kérjük próbáld később"
},
"SUBMIT": "Fiók létrehozása",
- "HAVE_AN_ACCOUNT": "Már van fiókod?"
+ "HAVE_AN_ACCOUNT": "Már van fiókod?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/sla.json b/app/javascript/dashboard/i18n/locale/hu/sla.json
index d56ecc835..64e56d2d8 100644
--- a/app/javascript/dashboard/i18n/locale/hu/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hu/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Nincs megfelelő elem",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Név",
- "Leírás",
- "FRT",
- "NRT",
- "RT",
- "Nyitvatartás"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Hiba történt, kérjük próbáld újra"
+ },
+ "CONFIRM": {
+ "TITLE": "Törlés megerősítése",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Igen, Törlés ",
+ "NO": "Nem, Mégse "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Első reakció idő",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/snooze.json b/app/javascript/dashboard/i18n/locale/hu/snooze.json
new file mode 100644
index 000000000..25a940758
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "óra",
+ "DAY": "nap",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "holnap",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "jövő héten",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "nap"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
index 99171f85a..9704acfcf 100644
--- a/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hu/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Új csapat hozzárendelése",
"HEADER": "Csapatok",
- "SIDEBAR_TXT": "Csapatok
A csapatok segítségével csoportokba rendezheti ügynökeit feladataik alapján.
Egy ügynök több csapat tagja is lehet. Együttműködés közben beszélgetéseket rendelhet egy csapathoz.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Csapatok keresése...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Ebben a fiókban nincs csapat létrehozva.",
- "EDIT_TEAM": "Csapat szerkesztése"
+ "EDIT_TEAM": "Csapat szerkesztése",
+ "NONE": "Nincs"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Ügynökök hozzáadása a csapathoz",
- "TITLE": "Ügynökök hozzárendelése a %{teamName} csapathoz",
+ "TITLE": "Ügynökök hozzárendelése a {teamName} csapathoz",
"DESC": "Adj hozzá ügynököket az újonan létrehozott csapatodhoz. Ez lehetővé teszi, hogy a csapatod a beszélgetéseken közösen dolgozzon és kapjon értesítést új eseményekről ezen beszélgetésekhez kapcsolódóan."
},
- "WIZARD": [
- {
- "title": "Létrehozás",
- "route": "settings_teams_new",
- "body": "Hozz létre új csapatot az ügynökeidből."
- },
- {
- "title": "Ügynök Hozzádása",
- "route": "settings_teams_add_agents",
- "body": "Ügynökök hozzáadása a csapathoz."
- },
- {
- "title": "Befejezés",
- "route": "settings_teams_finish",
- "body": "Mindennel készen állsz!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Létrehozás",
+ "BODY": "Hozz létre új csapatot az ügynökeidből."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Ügynök Hozzádása",
+ "BODY": "Ügynökök hozzáadása a csapathoz."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Befejezés",
+ "BODY": "Mindennel készen állsz!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Ügynökök frissítése a csapatban",
- "TITLE": "Ügynökök hozzárendelése a %{teamName} csapathoz",
+ "TITLE": "Ügynökök hozzárendelése a {teamName} csapathoz",
"DESC": "Adj ügynököket az újonan létrehozott csapatodhoz. Minden hozzáadott ügynök értesítést kap amikor egy beszélgetés a csapatához lesz rendelve."
},
- "WIZARD": [
- {
- "title": "Csapat részletek",
- "route": "settings_teams_edit",
- "body": "Változtass nevet, leírást és egyéb részleteket."
- },
- {
- "title": "Ügynök szerkesztése",
- "route": "settings_teams_edit_members",
- "body": "A csapatod ügynökeinek szerkesztése."
- },
- {
- "title": "Befejezés",
- "route": "settings_teams_edit_finish",
- "body": "Mindennel készen állsz!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Csapat részletek",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Változtass nevet, leírást és egyéb részleteket."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Ügynök szerkesztése",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "A csapatod ügynökeinek szerkesztése."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Befejezés",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Mindennel készen állsz!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Nem sikerült a csapat részleteinek mentése. Kérjük próbáld újra."
},
"AGENTS": {
- "AGENT": "ÜGYNÖK",
- "EMAIL": "EMAIL",
+ "AGENT": "Ügynök",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Ügynök Hozzádása",
"ADD_AGENTS": "Ügynökök hozzáadása a csapathoz...",
"SELECT": "kiválasztás",
"SELECT_ALL": "összes kiválasztása",
- "SELECTED_COUNT": "%{selected} a %{total}-ból kiválasztva."
+ "SELECTED_COUNT": "{selected} a {total}-ból kiválasztva."
},
"ADD": {
- "TITLE": "Ügynökök hozzárendelése a %{teamName} csapathoz",
+ "TITLE": "Ügynökök hozzárendelése a {teamName} csapathoz",
"DESC": "Adj hozzá ügynököket az újonan létrehozott csapatodhoz. Ez lehetővé teszi, hogy a csapatod a beszélgetéseken közösen dolgozzon és kapjon értesítést új eseményekről ezen beszélgetésekhez kapcsolódóan.",
"SELECT": "kiválasztás",
"SELECT_ALL": "összes kiválasztása",
- "SELECTED_COUNT": "%{selected} a %{total}-ból kiválasztva.",
+ "SELECTED_COUNT": "{selected} a {total}-ból kiválasztva.",
"BUTTON_TEXT": "Ügynök Hozzádása",
"AGENT_VALIDATION_ERROR": "Kérlek válassz ki legalább egy ügynököt."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Nem sikerült a csapat törlés. Próbáld újra."
},
"CONFIRM": {
- "TITLE": "Biztosan törölni akarod: %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Kérlek gépeld be, hogy {teamName} a megerősítéshez",
"MESSAGE": "A csapat letörlése a hozzárendelt beszélgetéseket is eltávolítja.",
"YES": "Törlés ",
diff --git a/app/javascript/dashboard/i18n/locale/hu/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/hu/whatsappTemplates.json
index 1d43984d2..addcfe063 100644
--- a/app/javascript/dashboard/i18n/locale/hu/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/hu/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp sablonok",
- "SUBTITLE": "Válaszd ki a Whatsapp sablont",
- "TEMPLATE_SELECTED_SUBTITLE": "Feldolgozás: %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Sablon keresése",
- "NO_TEMPLATES_FOUND": "Nem található sablon erre:",
- "LABELS": {
- "LANGUAGE": "Nyelv",
- "TEMPLATE_BODY": "Sablon törzse",
- "CATEGORY": "Kategória"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Változók",
- "VARIABLE_PLACEHOLDER": "Add meg a %{variable} értékét",
- "GO_BACK_LABEL": "Vissza",
- "SEND_MESSAGE_LABEL": "Üzenet küldése",
- "FORM_ERROR_MESSAGE": "Kérlek add meg az összes változó értékét küldés előtt"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp sablonok",
+ "SUBTITLE": "Válaszd ki a Whatsapp sablont",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Sablon keresése",
+ "NO_TEMPLATES_FOUND": "Nem található sablon erre:",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategória",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Nyelv",
+ "TEMPLATE_BODY": "Sablon törzse",
+ "CATEGORY": "Kategória"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Változók",
+ "LANGUAGE": "Nyelv",
+ "CATEGORY": "Kategória",
+ "VARIABLE_PLACEHOLDER": "Add meg a {variable} értékét",
+ "GO_BACK_LABEL": "Vissza",
+ "SEND_MESSAGE_LABEL": "Üzenet küldése",
+ "FORM_ERROR_MESSAGE": "Kérlek add meg az összes változó értékét küldés előtt",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/hu/yearInReview.json b/app/javascript/dashboard/i18n/locale/hu/yearInReview.json
new file mode 100644
index 000000000..fb360caf4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hu/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Bezárás",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "beszélgetések",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Letöltés",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json b/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json
index 170f01d7f..a991cb25b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hy/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/hy/agentBots.json b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
index fb744b4a9..155cd1d91 100644
--- a/app/javascript/dashboard/i18n/locale/hy/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/hy/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Պատճենել գաղտնաբառը",
+ "COPY_SUCCESS": "Գաղտնաբառը պատճենվել է",
+ "TOGGLE": "Ցուցադրել/թաքցնել գաղտնաբառը",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Պատրաստ է",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
index b563de61f..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Add Agent",
"LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
index 64a0e83d6..43e5d665b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Ընկերություն"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Ընկերություն"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/auditLogs.json b/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
index bb3007975..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/hy/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 469df1c24..ecf7eabef 100644
--- a/app/javascript/dashboard/i18n/locale/hy/automation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Գաղտնի նշում",
+ "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",
+ "COMPANY_NAME": "Ընկերություն",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
index 6af8316e9..c6f9648a3 100644
--- a/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/hy/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Չկա",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/campaign.json b/app/javascript/dashboard/i18n/locale/hy/campaign.json
index bbcc463ee..4b15adb0b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/hy/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Ընթացքի մեջ է",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Ընթացքի մեջ է",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
index 082afcb84..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/hy/chatlist.json b/app/javascript/dashboard/i18n/locale/hy/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/hy/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/hy/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/companies.json b/app/javascript/dashboard/i18n/locale/hy/companies.json
new file mode 100644
index 000000000..2c53bd252
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Գործոններ",
+ "CONTACTS": "Կապեր",
+ "HISTORY": "Պատմություն",
+ "NOTES": "Նշումներ"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "Կապեր չեն գտնվել.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Ընկերություն",
+ "CONTACT_LABEL": "Կոնտակտ",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Ստեղծվել է {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "Դոմեն"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/components.json b/app/javascript/dashboard/i18n/locale/hy/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/contact.json b/app/javascript/dashboard/i18n/locale/hy/contact.json
index 5186fda9a..702b355eb 100644
--- a/app/javascript/dashboard/i18n/locale/hy/contact.json
+++ b/app/javascript/dashboard/i18n/locale/hy/contact.json
@@ -1,54 +1,64 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
- "EMAIL_ADDRESS": "Email Address",
- "PHONE_NUMBER": "Phone number",
- "IDENTIFIER": "Identifier",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
- "COMPANY": "Company",
- "LOCATION": "Location",
+ "NOT_AVAILABLE": "Առկա չէ",
+ "EMAIL_ADDRESS": "Էլեկտրոնային հասցե",
+ "PHONE_NUMBER": "Հեռախոսահամար",
+ "IDENTIFIER": "Համակարգիչ",
+ "COPY_SUCCESSFUL": "Հաջողությամբ պատճենվեց սեղմատախտակում",
+ "COMPANY": "Ընկերություն",
+ "LOCATION": "Տեղանք",
"BROWSER_LANGUAGE": "Browser Language",
- "CONVERSATION_TITLE": "Conversation Details",
+ "CONVERSATION_TITLE": "Հաղորդակցության մանրամասներ",
"VIEW_PROFILE": "View Profile",
"BROWSER": "Browser",
"OS": "Operating System",
- "INITIATED_FROM": "Initiated from",
- "INITIATED_AT": "Initiated at",
- "IP_ADDRESS": "IP Address",
- "CREATED_AT_LABEL": "Created",
- "NEW_MESSAGE": "New message",
+ "INITIATED_FROM": "Սկսվել է՝",
+ "INITIATED_AT": "Սկսվել է՝",
+ "IP_ADDRESS": "IP հասցե",
+ "CREATED_AT_LABEL": "Ստեղծվել է",
+ "NEW_MESSAGE": "Նոր հաղորդագրություն",
+ "CALL": "Զանգ",
+ "CALL_INITIATED": "Զանգը սկսվում է…",
+ "CALL_FAILED": "Չհաջողվեց սկսել զանգը։ Խնդրում ենք փորձել կրկին։",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Ընտրեք ձայնային մուտքագրման արկղը"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
- "TITLE": "Previous Conversations"
+ "TITLE": "Նախորդ զրույցներ"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Contact Labels",
- "ERROR": "Couldn't update labels"
+ "TITLE": "Կապի պիտակներ",
+ "ERROR": "Չհաջողվեց թարմացնել պիտակները"
},
"CONVERSATION": {
- "TITLE": "Conversation Labels",
- "ADD_BUTTON": "Add Labels"
+ "TITLE": "Հաղորդակցության պիտակներ",
+ "ADD_BUTTON": "Ավելացնել պիտակներ"
},
"LABEL_SELECT": {
- "TITLE": "Add Labels",
- "PLACEHOLDER": "Search labels",
- "NO_RESULT": "No labels found",
- "CREATE_LABEL": "Create new label"
+ "TITLE": "Ավելացնել պիտակներ",
+ "PLACEHOLDER": "Որոնել պիտակներ",
+ "NO_RESULT": "Պիտակներ չեն գտնվել",
+ "CREATE_LABEL": "Ստեղծել նոր պիտակ"
}
},
- "MERGE_CONTACT": "Merge contact",
- "CONTACT_ACTIONS": "Contact actions",
+ "MERGE_CONTACT": "Միավորել կապը",
+ "CONTACT_ACTIONS": "Կապի գործողություններ",
"MUTE_CONTACT": "Block Contact",
"UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
+ "MUTED_SUCCESS": "Այս շփումը հաջողությամբ արգելափակվեց։ Դուք այլևս ծանուցումներ չեք ստանա ապագա զրույցների մասին։",
"UNMUTED_SUCCESS": "This contact is unblocked successfully.",
"SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "EDIT_LABEL": "Խմբագրել",
"SIDEBAR_SECTIONS": {
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "CUSTOM_ATTRIBUTES": "Հատուկ հատկություններ",
+ "CONTACT_LABELS": "Կապի պիտակներ",
+ "PREVIOUS_CONVERSATIONS": "Նախորդ զրույցներ",
+ "NO_RECORDS_FOUND": "Հայտնաբերված հատկություններ չկան"
}
},
"EDIT_CONTACT": {
@@ -56,107 +66,68 @@
"TITLE": "Edit contact",
"DESC": "Edit contact details"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Delete Contact",
- "TITLE": "Delete contact",
- "DESC": "Delete contact details",
+ "BUTTON_LABEL": "Ջնջել կապը",
+ "TITLE": "Ջնջել կապը",
+ "DESC": "Ջնջել կապի մանրամասները",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete",
- "NO": "No, Keep"
+ "TITLE": "Հաստատել ջնջումը",
+ "MESSAGE": "Վստա՞հ եք, որ ցանկանում եք ջնջել ",
+ "YES": "Այո, Ջնջել",
+ "NO": "Ոչ, Պահպանել"
},
"API": {
- "SUCCESS_MESSAGE": "Contact deleted successfully",
- "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ "SUCCESS_MESSAGE": "Կապը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել կապը։ Խնդրում ենք փորձել ավելի ուշ։"
}
},
"CONTACT_FORM": {
"FORM": {
- "SUBMIT": "Submit",
- "CANCEL": "Cancel",
+ "SUBMIT": "Ուղարկել",
+ "CANCEL": "Չեղարկել",
"AVATAR": {
"LABEL": "Contact Avatar"
},
"NAME": {
"PLACEHOLDER": "Enter the full name of the contact",
- "LABEL": "Full Name"
+ "LABEL": "Ամբողջական անուն"
},
"BIO": {
"PLACEHOLDER": "Enter the bio of the contact",
- "LABEL": "Bio"
+ "LABEL": "Կենսագրություն"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "Email Address",
- "DUPLICATE": "This email address is in use for another contact.",
- "ERROR": "Please enter a valid email address."
+ "PLACEHOLDER": "Մուտքագրեք շփման էլ. փոստի հասցեն",
+ "LABEL": "Էլեկտրոնային հասցե",
+ "DUPLICATE": "Այս էլ. փոստի հասցեն օգտագործվում է մեկ այլ շփման համար։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր էլ. հասցե։"
},
"PHONE_NUMBER": {
"PLACEHOLDER": "Enter the phone number of the contact",
- "LABEL": "Phone Number",
+ "LABEL": "Հեռախոսահամար",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
- "ERROR": "Phone number should be either empty or of E.164 format",
+ "ERROR": "Հեռախոսահամարը պետք է լինի դատարկ կամ E.164 ձևաչափով",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "This phone number is in use for another contact."
},
"LOCATION": {
"PLACEHOLDER": "Enter the location of the contact",
- "LABEL": "Location"
+ "LABEL": "Տեղանք"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Enter the company name",
- "LABEL": "Company Name"
+ "PLACEHOLDER": "Մուտքագրեք ընկերության անունը",
+ "LABEL": "Ընկերության անուն"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
- "LABEL": "Country Name",
- "SELECT_PLACEHOLDER": "Select",
- "REMOVE": "Remove",
- "SELECT_COUNTRY": "Select Country"
+ "PLACEHOLDER": "Մուտքագրեք երկրի անունը",
+ "LABEL": "Երկրի անուն",
+ "SELECT_PLACEHOLDER": "Ընտրել",
+ "REMOVE": "Հեռացնել",
+ "SELECT_COUNTRY": "Ընտրեք երկիրը"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "Մուտքագրեք քաղաքի անունը",
+ "LABEL": "Քաղաքի անուն"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
@@ -183,170 +154,107 @@
"ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
}
},
- "SUCCESS_MESSAGE": "Contact saved successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "Կապը հաջողությամբ պահպանվեց",
+ "ERROR_MESSAGE": "Սխալ է տեղի ունեցել, խնդրում ենք կրկին փորձել"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Start conversation",
- "TITLE": "New conversation",
- "DESC": "Start a new conversation by sending a new message.",
+ "BUTTON_LABEL": "Սկսել զրույցը",
+ "TITLE": "Նոր զրույց",
+ "DESC": "Սկսեք նոր զրույց՝ ուղարկելով նոր հաղորդագրություն։",
"NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "Ուղղությամբ"
},
"INBOX": {
"LABEL": "Inbox",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "PLACEHOLDER": "Ընտրեք աղբյուրի փոստարկղը",
+ "ERROR": "Ընտրեք մուտքուղի"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
- "ERROR": "Subject can't be empty"
+ "LABEL": "Թեմա",
+ "PLACEHOLDER": "Թեմա",
+ "ERROR": "Թեման չի կարող դատարկ լինել"
},
"MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "LABEL": "Հաղորդագրություն",
+ "PLACEHOLDER": "Գրեք ձեր հաղորդագրությունը այստեղ",
+ "ERROR": "Հաղորդագրությունը չի կարող դատարկ լինել"
},
"ATTACHMENTS": {
"SELECT": "Choose files",
"HELP_TEXT": "Drag and drop files here or choose files to attach"
},
- "SUBMIT": "Send message",
- "CANCEL": "Cancel",
- "SUCCESS_MESSAGE": "Message sent!",
- "GO_TO_CONVERSATION": "View",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "SUBMIT": "Ուղարկել հաղորդագրություն",
+ "CANCEL": "Չեղարկել",
+ "SUCCESS_MESSAGE": "Հաղորդագրությունը ուղարկվեց։",
+ "GO_TO_CONVERSATION": "Դիտել",
+ "ERROR_MESSAGE": "Չհաջողվեց ուղարկել։ Փորձեք կրկին"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
- "BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "BUTTON": "Ավելացնել հարմարեցված հատկություն",
+ "COPY_SUCCESSFUL": "Հաջողությամբ պատճենվեց տուփում",
+ "SHOW_MORE": "Ցույց տալ բոլոր հատկությունները",
+ "SHOW_LESS": "Ցույց տալ քիչ հատկություններ",
"ACTIONS": {
- "COPY": "Copy attribute",
- "DELETE": "Delete attribute",
- "EDIT": "Edit attribute"
+ "COPY": "Պատճենել հատկությունը",
+ "DELETE": "Ջնջել հատկությունը",
+ "EDIT": "Խմբագրել հատկությունը"
},
"ADD": {
- "TITLE": "Create custom attribute",
+ "TITLE": "Ստեղծել հարմարեցված հատկություն",
"DESC": "Add custom information to this contact."
},
"FORM": {
- "CREATE": "Add attribute",
- "CANCEL": "Cancel",
+ "CREATE": "Ավելացնել հատկանիշ",
+ "CANCEL": "Չեղարկել",
"NAME": {
- "LABEL": "Custom attribute name",
+ "LABEL": "Հատուկ հատկանիշի անուն",
"PLACEHOLDER": "Eg: shopify id",
- "ERROR": "Invalid custom attribute name"
+ "ERROR": "Անվավեր հարմարեցված հատկության անուն"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "Հատկության արժեք",
+ "PLACEHOLDER": "Օրինակ՝ 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "Ստեղծել նոր հատկություն ",
+ "SUCCESS": "Հատկությունը հաջողությամբ ավելացվեց",
+ "ERROR": "Հատկությունը ավելացնել հնարավոր չէ։ Խնդրում ենք փորձել ավելի ուշ"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "Հատկությունը հաջողությամբ թարմացվեց",
+ "ERROR": "Հատկությունը թարմացնել հնարավոր չէ։ Խնդրում ենք փորձել ավելի ուշ"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "Հատկությունը հաջողությամբ ջնջվեց",
+ "ERROR": "Չհաջողվեց ջնջել հատկությունը։ Խնդրում ենք փորձել ավելի ուշ"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "Ավելացնել հատկություններ",
+ "PLACEHOLDER": "Որոնել հատկություններ",
+ "NO_RESULT": "Հատկություններ չեն գտնվել"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
+ "PLACEHOLDER": "Ընտրել արժեքը",
"SEARCH_INPUT_PLACEHOLDER": "Search value",
- "NO_RESULT": "No result found"
+ "NO_RESULT": "Արդյունք չի գտնվել"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "Invalid URL",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "Պահանջվում է վավեր արժեք",
+ "INVALID_URL": "Անվավեր URL",
+ "INVALID_INPUT": "Անվավեր մուտք"
}
},
"MERGE_CONTACTS": {
@@ -354,29 +262,405 @@
"DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
"PRIMARY": {
"TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "HELP_LABEL": "Ջնջվելու է"
},
"PARENT": {
"TITLE": "Contact to merge",
"PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "HELP_LABEL": "Պահպանվելու է"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "Ամփոփում",
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "{primaryContactName} շփման մանրամասները կպատճենվեն {parentContactName} շփման մեջ։"
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Ինչ-որ բան սխալ է տեղի ունեցել։ Խնդրում ենք փորձել ավելի ուշ։"
},
"FORM": {
"SUBMIT": " Merge contacts",
- "CANCEL": "Cancel",
+ "CANCEL": "Չեղարկել",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "Ընտրեք ենթաշփման միաձուլելու համար"
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ՀՎԱՏԱՐԱՐՈՒԹՅՈՒՆ՝ {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Կապեր",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Որոնել...",
+ "MESSAGE_BUTTON": "Հաղորդագրություն",
+ "SEND_MESSAGE": "Ուղարկել հաղորդագրություն",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Կապեր"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Այս էլ. փոստի հասցեն օգտագործվում է մեկ այլ շփման համար։",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Կապը հաջողությամբ պահպանվեց",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Ներբեռնեք օրինակային csv նմուշ։",
+ "LABEL": "CSV ֆայլ:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Փոխել",
+ "CANCEL": "Չեղարկել",
+ "IMPORT": "Ներմուծել",
+ "SUCCESS_MESSAGE": "Ներմուծման ավարտի մասին կստանաք էլեկտրոնային նամակ։",
+ "ERROR_MESSAGE": "Սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Արագ արտահանեք շփումների մանրամասնություններով csv ֆայլ",
+ "CONFIRM": "Արտահանել",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Սխալ է տեղի ունեցել, խնդրում ենք կրկին փորձել"
+ },
+ "SORT_BY": {
+ "LABEL": "Տեսակավորել ըստ",
+ "OPTIONS": {
+ "NAME": "Անուն",
+ "EMAIL": "Էլեկտրոնային հասցե",
+ "PHONE_NUMBER": "Հեռախոսահամար",
+ "COMPANY": "Ընկերություն",
+ "COUNTRY": "Երկիր",
+ "CITY": "Քաղաք",
+ "LAST_ACTIVITY": "Վերջին ակտիվություն",
+ "CREATED_AT": "Ստեղծվել է"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Տեսակավորում",
+ "OPTIONS": {
+ "ASCENDING": "Աճման կարգով",
+ "DESCENDING": "Նվազման կարգով"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Ցանկանու՞մ եք պահպանել այս ֆիլտրը:",
+ "CONFIRM": "Պահպանել զտիչը",
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Մուտքագրեք վավեր անուն",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Հաստատել ջնջումը",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Այո, ջնջել",
+ "CANCEL": "Ոչ, չեղարկել",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Անուն",
+ "EMAIL": "Էլեկտրոնային հասցե",
+ "PHONE_NUMBER": "Հեռախոսահամար",
+ "IDENTIFIER": "Նույնացուցիչ",
+ "COUNTRY": "Երկիր",
+ "CITY": "Քաղաք",
+ "COMPANY": "Ընկերություն",
+ "CREATED_AT": "Ստեղծվել է",
+ "LAST_ACTIVITY": "Վերջին ակտիվություն",
+ "REFERER_LINK": "Հղման հասցե",
+ "BLOCKED": "Արգելափակված",
+ "BLOCKED_TRUE": "Այո",
+ "BLOCKED_FALSE": "Ոչ",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Մաքրել զտիչները",
+ "UPDATE_SEGMENT": "Թարմացնել հատվածը",
+ "APPLY_FILTERS": "Կիրառել զտիչները",
+ "ADD_FILTER": "Ավելացնել դիտակետ"
+ },
+ "TITLE": "Զտել շփումները",
+ "EDIT_SEGMENT": "Խմբագրել հատվածը",
+ "SEGMENT": {
+ "LABEL": "Հատվածի անունը",
+ "INPUT_PLACEHOLDER": "Մուտքագրեք հատվածի անունը"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Մաքրել զտիչները"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Դիտել մանրամասները",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Մուտքագրեք անունը"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Մուտքագրեք ազգանունը"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Մուտքագրեք էլեկտրոնային հասցեն",
+ "DUPLICATE": "Այս էլ. փոստի հասցեն օգտագործվում է մեկ այլ շփման համար։"
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Մուտքագրեք հեռախոսահամարը",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Մուտքագրեք քաղաքի անունը"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Ընտրեք երկիրը"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Մուտքագրեք կենսագրությունը"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Մուտքագրեք ընկերության անունը"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Խմբագրել սոցիալական հղումները",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Այս գործողությունը մշտական է և անշրջելի։",
+ "BUTTON": "Ջնջել հիմա"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Ստեղծվել է {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Մշտապես ջնջեք այս շփումը։ Այս գործողությունը անշրջելի է",
+ "DELETE_CONTACT": "Ջնջել կապը",
+ "DELETE_DIALOG": {
+ "TITLE": "Հաստատել ջնջումը",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Այո, ջնջել",
+ "API": {
+ "SUCCESS_MESSAGE": "Կապը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել կապը։ Խնդրում ենք փորձել ավելի ուշ։"
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Պատկերը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել պատկերը։ Խնդրում ենք փորձել ավելի ուշ։"
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Գործոններ",
+ "HISTORY": "Պատմություն",
+ "NOTES": "Նշումներ",
+ "MERGE": "Միավորել"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Որոնել հատկանիշներ",
+ "UNUSED_ATTRIBUTES": "{count} Օգտագործված հատկանիշ | {count} Չօգտագործված հատկանիշներ",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Այո",
+ "NO": "Ոչ",
+ "TRIGGER": {
+ "SELECT": "Ընտրեք արժեքը",
+ "INPUT": "Մուտքագրեք արժեքը"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Անվավեր թիվ",
+ "REQUIRED": "Պահանջվում է վավեր արժեք",
+ "INVALID_INPUT": "Անվավեր մուտքագրում",
+ "INVALID_URL": "Անվավեր URL",
+ "INVALID_DATE": "Անվավեր ամսաթիվ"
+ },
+ "NO_ATTRIBUTES": "Հատկություններ չեն գտնվել",
+ "API": {
+ "SUCCESS_MESSAGE": "Հատկությունը հաջողությամբ թարմացվեց",
+ "DELETE_SUCCESS_MESSAGE": "Գույքը հաջողությամբ ջնջվեց",
+ "UPDATE_ERROR": "Չհաջողվեց թարմացնել գույքը։ Խնդրում ենք փորձել ավելի ուշ",
+ "DELETE_ERROR": "Չհաջողվեց ջնջել գույքը։ Խնդրում ենք փորձել ավելի ուշ"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Միավորել կապը",
+ "DESCRIPTION": "Միացրեք երկու պրոֆիլ մեկում՝ ներառյալ բոլոր հատկանիշներն ու զրույցները։ Կոնֆլիկտի դեպքում առաջնային շփման հատկանիշներն ունեն առավելություն։",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "Պահպանվելու է",
+ "PRIMARY_REQUIRED_ERROR": "Խնդրում ենք ընտրել մի շփում միաձուլելու համար, նախքան շարունակելը",
+ "PARENT": "Միաձուլվելու է",
+ "PARENT_HELP_LABEL": "Ջնջվելու է",
+ "EMPTY_STATE": "Կապեր չեն գտնվել",
+ "PLACEHOLDER": "Որոնել հիմնական կապը",
+ "SEARCH_PLACEHOLDER": "Որոնել կապ",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Որոնվում է...",
+ "BUTTONS": {
+ "CANCEL": "Չեղարկել",
+ "CONFIRM": "Միավորել կապը"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Ավելացնել նշում",
+ "WROTE": "գրել է",
+ "YOU": "Դուք",
+ "SAVE": "Պահպանել նշումը",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "Բացել",
+ "COLLAPSE": "Փակել",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
+ "EMPTY_STATE": "Այս շփման հետ կապված նշումներ չկան։ Կարող եք ավելացնել նշում՝ վերևի տուփում գրելով։",
+ "CONVERSATION_EMPTY_STATE": "Նշումներ դեռ չկան։ Օգտագործեք «Ավելացնել նշում» կոճակը՝ նոր նշում ստեղծելու համար։"
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Ձեր որոնմանը համապատասխան շփումներ չկան 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Բեռնել ավելին"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Նշումներ նշանակել",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Նշումները հաջողությամբ նշանակվեցին։",
+ "ASSIGN_LABELS_FAILED": "Հնարավոր չեղավ նշանակել պիտակները",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "Դեռ պիտակներ չկան։",
+ "SELECTED_COUNT": "{count} ընտրված",
+ "CLEAR_SELECTION": "Մաքրել ընտրությունը",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "DELETE_CONTACTS": "Ջնջել",
+ "DELETE_SUCCESS": "Կապերը հաջողությամբ ջնջվեցին։",
+ "DELETE_FAILED": "Չհաջողվեց ջնջել կապերը։",
+ "DELETE_DIALOG": {
+ "TITLE": "Ջնջել ընտրված կապերը",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "Սա մշտապես կջնջի ընտրված {count} շփումները։ Այս գործողությունը անշրջելի է։",
+ "SINGULAR_DESCRIPTION": "Սա մշտապես կջնջի ընտրված շփումը։ Այս գործողությունը անշրջելի է։",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Ջնջել կապը"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Որոնումը հնարավոր չեղավ ավարտել։ Խնդրում ենք փորձել կրկին։"
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Դիտել",
+ "SUCCESS_MESSAGE": "Հաղորդագրությունը հաջողությամբ ուղարկվեց։",
+ "ERROR_MESSAGE": "Խոսակցություն ստեղծելիս սխալ է տեղի ունեցել։ Խնդրում ենք փորձել ավելի ուշ։",
+ "NO_INBOX_ALERT": "There are no available inboxes to start a conversation with this contact.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "Ուղղված՝:",
+ "TAG_INPUT_PLACEHOLDER": "Մուտքագրեք առնվազն 2 տառ՝ որոնելու համար անունով, էլեկտրոնային հասցեով կամ հեռախոսահամարով",
+ "CONTACT_CREATING": "Կապ ստեղծվում է..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Միջոցով:",
+ "BUTTON": "Ցույց տալ մուտքերը"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Թեմա՝:",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Մուտքագրեք առնվազն 2 տառ՝ որոնելու համար էլեկտրոնային հասցեով",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Մուտքագրեք առնվազն 2 տառ՝ որոնելու համար էլեկտրոնային հասցեով",
+ "BCC_BUTTON": "Թաքնված հղում"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Գրեք ձեր հաղորդագրությունը այստեղ..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Ընտրել ձևանմուշը",
+ "SEARCH_PLACEHOLDER": "Որոնել ձևանմուշներ",
+ "EMPTY_STATE": "Ձևանմուշներ չեն գտնվել",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Փոփոխականներ",
+ "BACK": "Վերադառնալ",
+ "SEND_MESSAGE": "Ուղարկել հաղորդագրություն"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Ընտրեք ձևանմուշը",
+ "SEARCH_PLACEHOLDER": "Որոնեք ձևանմուշները",
+ "EMPTY_STATE": "Ձևանմուշներ չեն գտնվել",
+ "TEMPLATE_PARSER": {
+ "BACK": "Վերադառնալ",
+ "SEND_MESSAGE": "Ուղարկել հաղորդագրություն"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Բաց թողնել",
+ "SEND": "Ուղարկել ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/contactFilters.json b/app/javascript/dashboard/i18n/locale/hy/contactFilters.json
index 09a543984..4c62f0789 100644
--- a/app/javascript/dashboard/i18n/locale/hy/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/hy/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/hy/contentTemplates.json b/app/javascript/dashboard/i18n/locale/hy/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/conversation.json b/app/javascript/dashboard/i18n/locale/hy/conversation.json
index cca1458b9..e4f4b6f43 100644
--- a/app/javascript/dashboard/i18n/locale/hy/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/hy/conversation.json
@@ -6,76 +6,138 @@
"SWITCH_VIEW_LAYOUT": "Switch the layout",
"DASHBOARD_APP_TAB_MESSAGES": "Messages",
"UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
- "NO_MESSAGE_2": " to send a message to your page!",
- "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.",
- "NO_INBOX_2": " to get started",
- "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
- "SEARCH_MESSAGES": "Search for messages in conversations",
+ "NO_MESSAGE_1": "Վայ, ձեր մուտքի արկղում հաճախորդներից հաղորդագրություններ չկան։",
+ "NO_MESSAGE_2": " ՝ ձեր էջին հաղորդագրություն ուղարկելու համար։",
+ "NO_INBOX_1": "Բարև, դուք դեռ մուտքի արկղեր չեք ավելացրել։",
+ "NO_INBOX_2": " ՝ սկսելու համար",
+ "NO_INBOX_AGENT": "Վայ, դուք որևէ մուտքի արկղի մաս չեք կազմում։ Խնդրում ենք կապ հաստատել ձեր ադմինիստրատորի հետ։",
+ "SEARCH_MESSAGES": "Որոնել հաղորդագրություններ զրույցներում",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
},
"SEARCH": {
- "TITLE": "Search messages",
- "RESULT_TITLE": "Search Results",
- "LOADING_MESSAGE": "Crunching data...",
- "PLACEHOLDER": "Type any text to search messages",
- "NO_MATCHING_RESULTS": "No results found."
+ "TITLE": "Որոնել հաղորդագրություններ",
+ "RESULT_TITLE": "Որոնման արդյունքներ",
+ "LOADING_MESSAGE": "Տվյալները մշակվում են...",
+ "PLACEHOLDER": "Մուտքագրեք տեքստ՝ հաղորդագրություններում որոնելու համար",
+ "NO_MATCHING_RESULTS": "Արդյունքներ չեն գտնվել։"
},
- "UNREAD_MESSAGES": "Unread Messages",
- "UNREAD_MESSAGE": "Unread Message",
- "CLICK_HERE": "Click here",
- "LOADING_INBOXES": "Loading inboxes",
- "LOADING_CONVERSATIONS": "Loading Conversations",
- "CANNOT_REPLY": "You cannot reply due to",
- "24_HOURS_WINDOW": "24 hour message window restriction",
+ "UNREAD_MESSAGES": "Չկարդացված հաղորդագրություններ",
+ "UNREAD_MESSAGE": "Չկարդացված հաղորդագրություն",
+ "CLICK_HERE": "Սեղմեք այստեղ",
+ "LOADING_INBOXES": "Մուտքի արկղերի բեռնում",
+ "LOADING_CONVERSATIONS": "Զրույցների բեռնում",
+ "CANNOT_REPLY": "Չեք կարող պատասխանել, քանի որ",
+ "24_HOURS_WINDOW": "24-ժամյա հաղորդագրության սահմանափակում",
+ "48_HOURS_WINDOW": "48 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",
- "REPLYING_TO": "You are replying to:",
- "REMOVE_SELECTION": "Remove Selection",
- "DOWNLOAD": "Download",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
+ "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": "Ներբեռնել",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
- "UPLOADING_ATTACHMENTS": "Uploading attachments...",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
+ "UPLOADING_ATTACHMENTS": "Կցորդների բեռնում...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
- "NO_RESPONSE": "No response",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "Հաղորդագրությունը հաջողությամբ ջնջվեց",
+ "FAIL_DELETE_MESSSAGE": "Չհաջողվեց ջնջել հաղորդագրությունը։ Փորձեք կրկին",
+ "NO_RESPONSE": "Պատասխան չկա",
+ "RESPONSE": "Response",
+ "RATING_TITLE": "Գնահատական",
+ "FEEDBACK_TITLE": "Կարծիք",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
- "RESOLVE_ACTION": "Resolve",
- "REOPEN_ACTION": "Reopen",
- "OPEN_ACTION": "Open",
- "OPEN": "More",
- "CLOSE": "Close",
- "DETAILS": "details",
+ "RESOLVE_ACTION": "Փակել",
+ "REOPEN_ACTION": "Վերաբացել",
+ "OPEN_ACTION": "Բացել",
+ "MORE_ACTIONS": "More actions",
+ "OPEN": "Ավելին",
+ "CLOSE": "Փակել",
+ "DETAILS": "մանրամասներ",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_TOMORROW": "Հետաձգված է մինչև վաղը",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Հետաձգված է մինչև հաջորդ շաբաթ",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
+ "MARK_PENDING": "Նշել որպես սպասվող",
"SNOOZE_UNTIL": "Snooze",
"SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
- "TOMORROW": "Tomorrow",
- "NEXT_WEEK": "Next week"
+ "TITLE": "Հետաձգել մինչև",
+ "NEXT_REPLY": "Հաջորդ պատասխան",
+ "TOMORROW": "Վաղը",
+ "NEXT_WEEK": "Հաջորդ շաբաթ"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -132,41 +208,46 @@
"MESSAGE_SIGN_TOOLTIP": "Message signature",
"ENABLE_SIGN_TOOLTIP": "Enable signature",
"DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
- "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MSG_INPUT": "Shift + enter՝ նոր տողի համար։ Սկսեք '/'-ով՝ պատրաստի պատասխան ընտրելու համար։",
+ "PRIVATE_MSG_INPUT": "Shift + enter՝ նոր տողի համար։ Սա տեսանելի կլինի միայն գործակալներին",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Նվիրեք Copilot-ին լրացուցիչ հրահանգներ կամ հարցրեք բան ավել... Սեղմեք enter՝ շարունակական ուղարկելու համար",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
- "REPLY": "Reply",
- "PRIVATE_NOTE": "Private Note",
- "SEND": "Send",
- "CREATE": "Add Note",
+ "REPLY": "Պատասխանել",
+ "PRIVATE_NOTE": "Գաղտնի նշում",
+ "SEND": "Ուղարկել",
+ "CREATE": "Ավելացնել նշում",
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
- "TIP_EMOJI_ICON": "Show emoji selector",
- "TIP_ATTACH_ICON": "Attach files",
+ "TIP_EMOJI_ICON": "Ցուցադրել էմոջի ընտրիչը",
+ "TIP_ATTACH_ICON": "Կցել ֆայլեր",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "Քաշեք և գցեք այստեղ կցելու համար",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot-ը մտածում է",
"EMAIL_HEAD": {
"TO": "TO",
- "ADD_BCC": "Add bcc",
+ "ADD_BCC": "Ավելացնել թաքն. պատճեն",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "Էլ. հասցեները՝ ստորակետերով բաժանված",
+ "ERROR": "Մուտքագրեք վավեր էլ. հասցեներ"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "Էլ. հասցեները՝ ստորակետերով բաժանված",
+ "ERROR": "Մուտքագրեք վավեր էլ. հասցեներ"
}
},
"UNDEFINED_VARIABLES": {
@@ -176,31 +257,43 @@
"YES": "Send",
"CANCEL": "Cancel"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
- "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
- "CHANGE_STATUS": "Conversation status changed",
+ "VISIBLE_TO_AGENTS": "Գաղտնի նշում․ տեսանելի է միայն ձեզ և ձեր թիմին",
+ "CHANGE_STATUS": "Զրույցի կարգավիճակը փոխվեց",
"CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "Conversation Assignee changed",
+ "CHANGE_AGENT": "Զրույցի պատասխանատուն փոխվեց",
"CHANGE_AGENT_FAILED": "Assignee change failed",
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "Conversation team changed",
+ "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": "Sent by:",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "Հնարավոր չէ ուղարկել այս հաղորդագրությունը, փորձեք ավելի ուշ",
+ "SENT_BY": "Ուղարկողը՝",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
- "SELECT_AGENT": "Select Agent",
- "REMOVE": "Remove",
- "ASSIGN": "Assign"
+ "SELECT_AGENT": "Ընտրել գործակալին",
+ "REMOVE": "Հեռացնել",
+ "ASSIGN": "Նշանակել"
},
"CONTEXT_MENU": {
- "COPY": "Copy",
+ "COPY": "Պատճենել",
"REPLY_TO": "Reply to this message",
- "DELETE": "Delete",
+ "DELETE": "Ջնջել",
"CREATE_A_CANNED_RESPONSE": "Add to canned responses",
"TRANSLATE": "Translate",
"COPY_PERMALINK": "Copy link to the message",
@@ -211,68 +304,127 @@
"DELETE": "Delete",
"CANCEL": "Cancel"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
- "TITLE": "Send conversation transcript",
- "DESC": "Send a copy of the conversation transcript to the specified email address",
- "SUBMIT": "Submit",
- "CANCEL": "Cancel",
- "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
- "SEND_EMAIL_ERROR": "There was an error, please try again",
+ "TITLE": "Ուղարկել զրույցի արձանագրությունը",
+ "DESC": "Ուղարկել զրույցի արձանագրության պատճենը նշված էլ. հասցեին",
+ "SUBMIT": "Ուղարկել",
+ "CANCEL": "Չեղարկել",
+ "SEND_EMAIL_SUCCESS": "Զրույցի արձանագրությունը հաջողությամբ ուղարկվեց",
+ "SEND_EMAIL_ERROR": "Սխալ տեղի ունեցավ, խնդրում ենք փորձել կրկին",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
- "SEND_TO_CONTACT": "Send the transcript to the customer",
- "SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address",
+ "SEND_TO_CONTACT": "Ուղարկել արձանագրությունը հաճախորդին",
+ "SEND_TO_AGENT": "Ուղարկել արձանագրությունը նշանակված գործակալին",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "Ուղարկել արձանագրությունը այլ էլ. հասցե",
"EMAIL": {
- "PLACEHOLDER": "Enter an email address",
- "ERROR": "Please enter a valid email address"
+ "PLACEHOLDER": "Մուտքագրեք էլ. հասցե",
+ "ERROR": "Մուտքագրեք վավեր էլ. հասցե"
}
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
- "READ_LATEST_UPDATES": "Read our latest updates",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
+ "READ_LATEST_UPDATES": "Կարդացեք մեր վերջին նորությունները",
"ALL_CONVERSATION": {
- "TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
- },
- "TEAM_MEMBERS": {
- "TITLE": "Invite your team members",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "Click here to invite a team member"
- },
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
+ "TITLE": "Ձեր բոլոր զրույցները մեկ տեղում",
+ "DESCRIPTION": "Տեսեք ձեր հաճախորդների բոլոր զրույցները մեկ վահանակում։ Կարող եք զտել զրույցները մուտքային ալիքով, պիտակով և կարգավիճակով։",
"NEW_LINK": "Click here to create an inbox"
},
+ "TEAM_MEMBERS": {
+ "TITLE": "Հրավիրեք թիմի անդամներին",
+ "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
+ "NEW_LINK": "Սեղմեք այստեղ՝ թիմի անդամ հրավիրելու համար"
+ },
"LABELS": {
- "TITLE": "Organize conversations with labels",
- "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
- "NEW_LINK": "Click here to create tags"
+ "TITLE": "Կազմակերպեք զրույցները պիտակներով",
+ "DESCRIPTION": "Պիտակները հեշտացնում են զրույցների դասակարգումը։ Ստեղծեք օրինակ՝ #support-enquiry, #billing-question և այլն, որպեսզի հետագայում օգտագործեք զրույցներում։",
+ "NEW_LINK": "Սեղմեք այստեղ՝ պիտակներ ստեղծելու համար"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Assigned Agent",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "Assigned Team",
+ "ASSIGNEE_LABEL": "Նշանակված գործակալ",
+ "SELF_ASSIGN": "Նշանակել ինձ",
+ "TEAM_LABEL": "Նշանակված թիմ",
"SELECT": {
- "PLACEHOLDER": "None"
+ "PLACEHOLDER": "Չկա"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
- "CONVERSATION_LABELS": "Conversation Labels",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
- "PREVIOUS_CONVERSATION": "Previous Conversations",
- "MACROS": "Macros"
+ "CONTACT_DETAILS": "Կոնտակտի տվյալներ",
+ "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",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Դիտել բոլորը",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -294,20 +446,21 @@
},
"EMAIL_HEADER": {
"FROM": "From",
- "TO": "To",
- "BCC": "Bcc",
- "CC": "Cc",
- "SUBJECT": "Subject"
+ "TO": "Ում",
+ "BCC": "Թաքն. պատճեն",
+ "CC": "Պատճեն",
+ "SUBJECT": "Վերնագիր",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/customRole.json b/app/javascript/dashboard/i18n/locale/hy/customRole.json
new file mode 100644
index 000000000..3bdc371e4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/datePicker.json b/app/javascript/dashboard/i18n/locale/hy/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/general.json b/app/javascript/dashboard/i18n/locale/hy/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/generalSettings.json b/app/javascript/dashboard/i18n/locale/hy/generalSettings.json
index 185d328a5..fab8020e2 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
index 467b0def9..648634a48 100644
--- a/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/hy/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "Օգնության կենտրոն",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Ստեղծեք ինքնասպասարկման օգնության կենտրոնի պորտալներ ձեր հաճախորդների համար։ Օգնեք նրանց արագ գտնել պատասխաններ՝ առանց սպասելու։ Հեշտացրեք հարցումները, բարձրացրեք գործակալների արդյունավետությունը և բարելավեք հաճախորդների աջակցությունը։",
+ "CREATE_PORTAL_BUTTON": "Ստեղծել պորտալ։"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
- "NEW_BUTTON": "New Article",
+ "FILTER": "Ֆիլտրել ըստ",
+ "SORT": "Տեսակավորել ըստ",
+ "LOCALE": "Լոկալիզացիա",
+ "SETTINGS_BUTTON": "Կարգավորումներ",
+ "NEW_BUTTON": "Նոր հոդված",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "Հրապարակված",
+ "DRAFT": "Սևագիր",
+ "ARCHIVED": "Արխիվացված"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "Բոլոր հոդվածները",
+ "MINE": "Իմ հոդվածները",
+ "DRAFT": "Սևագրեր",
+ "ARCHIVED": "Արխիվացված հոդվածներ"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Ընտրել լեզուն",
+ "PLACEHOLDER": "Ընտրել լեզուն",
+ "NO_RESULT": "Լեզու չի գտնվել",
+ "SEARCH_PLACEHOLDER": "Փնտրել լեզուն"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "Բոլոր հոդվածները",
+ "PUBLISH_BUTTON": "Հրապարակել",
+ "MOVE_TO_ARCHIVE_BUTTON": "Տեղափոխել արխիվացվածների մեջ",
+ "PREVIEW": "Նախադիտում",
+ "ADD_TRANSLATION": "Ավելացնել թարգմանություն",
+ "OPEN_SIDEBAR": "Բացել կողային վահանակը",
+ "CLOSE_SIDEBAR": "Փակել կողային վահանակը",
+ "SAVING": "Պահպանում...",
+ "SAVED": "Պահպանված է"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
- "UPLOADING": "Uploading...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "TITLE": "Ներբեռնել պատկեր",
+ "UPLOADING": "Ներբեռնում...",
+ "SUCCESS": "Պատկերը հաջողությամբ ներբեռնվեց",
+ "ERROR": "Սխալ պատկերի ներբեռնումիս",
+ "UN_AUTHORIZED_ERROR": "Դուք իրավունք չունեք պատկերներ վերբեռնելու։",
+ "ERROR_FILE_SIZE": "Պատկերի չափը պետք է լինի փոքր քան {size}MB",
+ "ERROR_FILE_FORMAT": "Պատկերի ֆորմատը պետք է լինի jpg, jpeg կամ png",
+ "ERROR_FILE_DIMENSIONS": "Պատկերի չափերը պետք է լինեն փոքր քան 2000 × 2000"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "Հոդվածի կարգավորումներ",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "Կատեգորիա",
+ "TITLE": "Ընտրեք կատեգորիա",
+ "PLACEHOLDER": "Ընտրեք կատեգորիա",
+ "NO_RESULT": "Կատեգորիա չի գտնվել",
+ "SEARCH_PLACEHOLDER": "Որոնել կատեգորիաներ"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "Հեղինակ",
+ "TITLE": "Ընտրեք հեղինակ",
+ "PLACEHOLDER": "Ընտրել հեղինակը",
+ "NO_RESULT": "Հեղինակներ չեն գտնվել",
+ "SEARCH_PLACEHOLDER": "Որոնել հեղինակը"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "Մետա վերնագիր",
+ "PLACEHOLDER": "Ավելացնել մետա վերնագիր"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "Մետա նկարագրություն",
+ "PLACEHOLDER": "Ավելացրեք ձեր մետա նկարագրությունը ավելի լավ SEO արդյունքների համար..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "Մետա պիտակներ",
+ "PLACEHOLDER": "Ավելացրեք մետա պիտակներ, բաժանված ստորակետերով..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "Արխիվացնել հոդվածը",
+ "DELETE": "Ջնջել հոդվածը"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "Առանձնահատուկ կատեգորիա չունի",
+ "SEARCH_RESULTS": "{query} որոնման արդյունքներ",
+ "EMPTY_TEXT": "Որոնեք հոդվածներ՝ պատասխաններում տեղադրելու համար։",
+ "SEARCH_LOADER": "Որոնվում է...",
+ "INSERT_ARTICLE": "Ներմուծել",
+ "NO_RESULT": "Հոդվածներ չեն գտնվել",
+ "COPY_LINK": "Պատճենել հոդվածի հղումը սեղմատախտակին",
+ "OPEN_LINK": "Բացել հոդվածը նոր ներդիրում",
+ "PREVIEW_LINK": "Նախադիտել հոդվածը"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "Պորտալներ",
+ "DEFAULT": "Նախնական",
+ "NEW_BUTTON": "Նոր պորտալ",
+ "ACTIVE_BADGE": "ակտիվ",
+ "CHOOSE_LOCALE_LABEL": "Ընտրել լեզու",
+ "LOADING_MESSAGE": "Պորտալները բեռնվում են...",
+ "ARTICLES_LABEL": "հոդվածներ",
+ "NO_PORTALS_MESSAGE": "Հասանելի պորտալներ չկան",
+ "ADD_NEW_LOCALE": "Ավելացնել նոր լեզու",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
- "CANCEL_BUTTON_LABEL": "Cancel",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "TITLE": "Պորտալներ",
+ "PORTAL_SETTINGS": "Պորտալի կարգավորումներ",
+ "SUBTITLE": "Դուք ունեք մի քանի պորտալ և յուրաքանչյուրի համար կարող եք ունենալ տարբեր լեզուներ։",
+ "CANCEL_BUTTON_LABEL": "Չեղարկել",
+ "CHOOSE_LOCALE_BUTTON": "Ընտրել լեզու"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
- "SETTINGS": "Settings",
- "DELETE": "Delete"
+ "COUNT_LABEL": "հոդվածներ",
+ "ADD": "Ավելացնել լեզու",
+ "VISIT": "Այցելել կայք",
+ "SETTINGS": "Կարգավորումներ",
+ "DELETE": "Ջնջել"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "Պորտալի կազմաձևումներ",
"ITEMS": {
- "NAME": "Name",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "NAME": "Անուն",
+ "DOMAIN": "Հատուկ տիրույթ",
+ "SLUG": "Սլագ",
+ "TITLE": "Պորտալի վերնագիր",
+ "THEME": "Թեմայի գույն",
+ "SUB_TEXT": "Պորտալի ենթագրություն"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "Հասանելի լեզուներ",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
- "DELETE": "Delete",
- "DEFAULT_LOCALE": "Default"
+ "NAME": "Լեզվի անուն",
+ "CODE": "Լեզվի կոդ",
+ "ARTICLE_COUNT": "Հոդվածների քանակ",
+ "CATEGORIES": "Կատեգորիաների քանակ",
+ "SWAP": "Փոխանակել",
+ "DELETE": "Ջնջել",
+ "DEFAULT_LOCALE": "Նախնական"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "Ջնջել պորտալը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս պորտալը:",
+ "YES": "Այո, ջնջել պորտալը",
+ "NO": "Ոչ, պահել պորտալը",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "Պորտալը հաջողությամբ ջնջվեց",
+ "DELETE_ERROR": "Սխալ պորտալը ջնջելիս"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME հրահանգները հաջողությամբ ուղարկվեցին",
+ "ERROR_MESSAGE": "Սխալ CNAME հրահանգները ուղարկելու ժամանակ"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "Խմբագրել պորտալը",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "Հիմնական տեղեկություններ"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "Պորտալի հարմարեցում"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "Կատեգորիաներ"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "Լեզուներ"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "Կատեգորիաներ՝",
+ "NEW_CATEGORY": "Նոր կատեգորիա",
"TABLE": {
- "NAME": "Name",
- "DESCRIPTION": "Description",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "NAME": "Անուն",
+ "DESCRIPTION": "Նկարագրություն",
+ "LOCALE": "Լեզու",
+ "ARTICLE_COUNT": "Հոդվածների քանակը",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "Խմբագրել կատեգորիան",
+ "DELETE": "Ջնջել կատեգորիան"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "Կատեգորիաներ չեն գտնվել"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "Թարմացնել հիմնական կարգավորումները"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Օգնության կենտրոնի տեղեկություններ",
+ "BODY": "Հիմնական տեղեկություններ պորտալի մասին։"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Օգնության կենտրոնի հարմարեցում",
+ "BODY": "Հարմարեցրեք պորտալը։"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Ահա և վերջը! 🎉",
+ "BODY": "Դուք պատրաստ եք։"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
- "BACK_BUTTON": "Back",
+ "BACK_BUTTON": "Հետ",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "Ստեղծել պորտալ",
+ "TITLE": "Օգնության կենտրոնի տեղեկություններ",
+ "CREATE_BASIC_SETTING_BUTTON": "Ստեղծել պորտալի հիմնական կարգավորումները"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "Պորտալի հարմարեցում",
+ "TITLE": "Օգնության կենտրոնի հարմարեցում",
+ "UPDATE_PORTAL_BUTTON": "Թարմացնել պորտալի կարգավորումները"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "Voila🎉 Դուք պատրաստ եք։",
+ "MESSAGE": "Այժմ կարող եք տեսնել այս ստեղծված պորտալը ձեր բոլոր պորտալների էջում։",
+ "FINISH": "Գնալ բոլոր պորտալների էջ"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "Լոգո",
+ "UPLOAD_BUTTON": "Վերբեռնել լոգոն",
+ "HELP_TEXT": "Այս լոգոն կցուցադրվի պորտալի վերնագրում։",
+ "IMAGE_UPLOAD_SUCCESS": "Լոգոն հաջողությամբ բեռնվել է։",
+ "IMAGE_UPLOAD_ERROR": "Լոգոն հաջողությամբ ջնջվել է։",
+ "IMAGE_DELETE_ERROR": "Սխալ լոգոն ջնջելիս։"
},
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Պորտալի անուն",
+ "HELP_TEXT": "Անվանումը կօգտագործվի հանրային պորտալում ներսում։",
+ "ERROR": "Անունը պարտադիր է"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "Պորտալի slug URL-ների համար",
+ "ERROR": "Սլագը պարտադիր է"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "Անհատական տիրույթ",
+ "PLACEHOLDER": "Պորտալի անհատական տիրույթ",
+ "HELP_TEXT": "Ավելացրեք միայն, եթե ցանկանում եք օգտագործել հարմարեցված դոմեն ձեր պորտալների համար։ Օրինակ՝ {exampleURL}",
+ "ERROR": "Մուտքագրեք վավեր դոմեյնի URL"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "Գլխավոր էջի հղում",
+ "PLACEHOLDER": "Պորտալի գլխավոր էջի հղում",
+ "HELP_TEXT": "Հղումը, որը օգտագործվում է պորտալից տուն էջ վերադառնալու համար։ Օրինակ՝ {exampleURL}",
+ "ERROR": "Մուտքագրեք վավեր գլխավոր էջի URL"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "Պորտալի թեմայի գույն",
+ "HELP_TEXT": "Այս գույնը կցուցադրվի որպես պորտալի թեմայի գույն։"
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "Էջի վերնագիր",
+ "PLACEHOLDER": "Պորտալի էջի վերնագիր",
+ "HELP_TEXT": "Էջի վերնագիրը կօգտագործվի հանրային պորտալում։",
+ "ERROR": "Էջի վերնագիրը պարտադիր է"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "Վերնագրի տեքստ",
+ "PLACEHOLDER": "Պորտալի վերնագրի տեքստ",
+ "HELP_TEXT": "Պորտալի վերնագրի տեքստը կօգտագործվի հանրային պորտալում։",
+ "ERROR": "Պորտալի վերնագրի տեքստը պարտադիր է"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "Պորտալը հաջողությամբ ստեղծվեց։",
+ "ERROR_MESSAGE_FOR_BASIC": "Չհաջողվեց ստեղծել պորտալը։ Փորձեք կրկին։",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "Պորտալը հաջողությամբ թարմացվեց։",
+ "ERROR_MESSAGE_FOR_UPDATE": "Չհաջողվեց թարմացնել պորտալը։ Փորձեք կրկին։"
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "Ավելացնել նոր լեզու",
+ "SUB_TITLE": "Սա ավելացնում է նոր լեզու ձեր թարգմանությունների ցանկում։",
+ "PORTAL": "Պորտալ",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "Լեզու",
+ "PLACEHOLDER": "Ընտրեք լեզու",
+ "ERROR": "Լեզուն պարտադիր է"
},
"BUTTONS": {
- "CREATE": "Create locale",
- "CANCEL": "Cancel"
+ "CREATE": "Ստեղծել լեզու",
+ "CANCEL": "Չեղարկել"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "Լեզուն հաջողությամբ ավելացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ավելացնել լեզուն։ Փորձեք կրկին։"
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "Նախնական լեզուն հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել նախնական լեզուն։ Փորձեք կրկին։"
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "Լեզուն հաջողությամբ հեռացվեց պորտալից։",
+ "ERROR_MESSAGE": "Չհաջողվեց հեռացնել լեզուն պորտալից։ Փորձեք կրկին։"
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "Հոդվածները բեռնվում են...",
+ "404": "Ոչ մի հոդված չի համապատասխանում ձեր որոնմանը 🔍",
+ "NO_ARTICLES": "Հոդվածներ առկա չեն",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
- "STATUS": "Status",
- "LAST_EDITED": "Last edited"
+ "TITLE": "Վերնագիր",
+ "CATEGORY": "Կատեգորիա",
+ "READ_COUNT": "Դիտումներ",
+ "STATUS": "Կարգավիճակ",
+ "LAST_EDITED": "Վերջին խմբագրումը"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "հեղինակ՝",
+ "AUTHOR_NOT_AVAILABLE": "Հեղինակն անհասանելի է"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "Բեռնվում է հոդվածը...",
+ "TITLE_PLACEHOLDER": "Հոդվածի վերնագիրը գրեք այստեղ",
+ "CONTENT_PLACEHOLDER": "Գրեք ձեր հոդվածը այստեղ",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "Սխալ հոդվածը պահելիս"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "Սխալ հոդվածը հրապարակելիս",
+ "SUCCESS": "Հոդվածը հաջողությամբ հրապարակվեց"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "Սխալ հոդվածը արխիվավորելիս",
+ "SUCCESS": "Հոդվածը հաջողությամբ արխիվավորվեց"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Սխալ հոդվածի նախագծման ընթացքում",
+ "SUCCESS": "Հոդվածը հաջողությամբ պահպանվեց"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
- "NO": "No, Keep it"
+ "TITLE": "Հաստատել ջնջումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել հոդվածը:",
+ "YES": "Այո, ջնջել",
+ "NO": "Ոչ, պահել"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "Հոդվածը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Սխալ հոդվածը ջնջելիս"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Հոդվածները վերադասավորել հնարավոր չէ։ Խնդրում ենք փորձել կրկին։"
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Կատեգորիաները վերադասավորել հնարավոր չէ։ Խնդրում ենք փորձել կրկին։"
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "Խնդրում ենք ավելացնել հոդվածի վերնագիրը և բովանդակությունը, ապա միայն կարող եք թարմացնել կարգավորումները"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "Որոնել հոդվածներ"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "Ստեղծել կատեգորիա",
+ "SUB_TITLE": "Կատեգորիան կօգտագործվի հանրային պորտալում հոդվածները դասակարգելու համար։",
+ "PORTAL": "Պորտալ",
+ "LOCALE": "Լոկալ",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Կատեգորիայի անուն",
+ "HELP_TEXT": "Կատեգորիայի անունն ու պատկերակը կօգտագործվեն հանրային պորտալում՝ հոդվածները դասակարգելու համար։",
+ "ERROR": "Անունը պարտադիր է"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "Կատեգորիայի slug URL-ների համար",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug-ը պարտադիր է"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Տվեք կարճ նկարագրություն կատեգորիայի մասին։",
+ "ERROR": "Նկարագրությունը պարտադիր է"
},
"BUTTONS": {
- "CREATE": "Create category",
- "CANCEL": "Cancel"
+ "CREATE": "Ստեղծել կատեգորիա",
+ "CANCEL": "Չեղարկել"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ ստեղծվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել կատեգորիա"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "Խմբագրել կատեգորիան",
+ "SUB_TITLE": "Կատեգորիայի խմբագրումը կթարմացնի կատեգորիան հանրային պորտալում։",
+ "PORTAL": "Պորտալ",
+ "LOCALE": "Լեզու",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Կատեգորիայի անուն",
+ "HELP_TEXT": "Կատեգորիայի անունն ու պատկերակը կօգտագործվեն հանրային պորտալում՝ հոդվածները դասակարգելու համար։",
+ "ERROR": "Անունը պարտադիր է"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "Կատեգորիայի սլագ URL-ների համար",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Սլագը պարտադիր է"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Տվեք կարճ նկարագրություն կատեգորիայի մասին։",
+ "ERROR": "Նկարագրությունը պարտադիր է"
},
"BUTTONS": {
- "CREATE": "Update category",
- "CANCEL": "Cancel"
+ "CREATE": "Թարմացնել կատեգորիան",
+ "CANCEL": "Չեղարկել"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել կատեգորիան"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել կատեգորիան"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
- "CANCEL": "Close",
- "BACK": "Back",
- "BACK_RESULTS": "Back to results"
+ "TITLE": "Որոնել հոդվածներ",
+ "PLACEHOLDER": "Որոնել հոդվածներ",
+ "NO_RESULT": "Հոդվածներ չեն գտնվել",
+ "SEARCHING": "Որոնվում է...",
+ "SEARCH_BUTTON": "Որոնել",
+ "INSERT_ARTICLE": "Ներդնել հղումը",
+ "IFRAME_ERROR": "URL-ը դատարկ է կամ անվավեր։ Բովանդակությունը չի կարող ցուցադրվել։",
+ "OPEN_ARTICLE_SEARCH": "Ներդնել հոդված Help Center-ից",
+ "SUCCESS_ARTICLE_INSERTED": "Հոդվածը հաջողությամբ ներդրվել է։",
+ "PREVIEW_LINK": "Դիտել հոդվածը",
+ "CANCEL": "Փակել",
+ "BACK": "Հետ",
+ "BACK_RESULTS": "Վերադառնալ արդյունքներին"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "Օգնության կենտրոն",
+ "DESCRIPTION": "Ստեղծեք օգտատերերի համար հարմար ինքնասպասարկման պորտալներ։ Օգնեք ձեր օգտատերերին մուտք գործել հոդվածներ և ստանալ աջակցություն 24/7։ Թարմացրեք ձեր բաժանորդագրությունը՝ այս հնարավորությունը միացնելու համար։",
+ "SELF_HOSTED_DESCRIPTION": "Ստեղծեք օգտատերերի համար հարմար ինքնասպասարկման պորտալներ։ Օգնեք ձեր օգտատերերին մուտք գործել հոդվածներ և ստանալ աջակցություն 24/7։ Խնդրում ենք կապ հաստատել ձեր ադմինիստրատորի հետ՝ այս հնարավորությունը միացնելու համար։",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "Իմանալ ավելին",
+ "UPGRADE": "Թարմացնել"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Բազմաթիվ պորտալներ",
+ "DESCRIPTION": "Ստեղծեք բազմաթիվ օգնության կենտրոնի պորտալներ տարբեր ապրանքների համար նույն հաշվի միջոցով։"
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Լիակատար աջակցություն լեզուների համար",
+ "DESCRIPTION": "Լոկալիզացրեք պորտալը ձեր լեզվով։ Մենք աջակցում ենք բոլոր լեզուներին և թույլ ենք տալիս թարգմանություններ յուրաքանչյուր հոդվածի համար։"
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO-ի համար հարմար դիզայն",
+ "DESCRIPTION": "Անհատականացրեք ձեր մետա պիտակները՝ բարելավելու որոնողական համակարգերում ձեր տեսանելիությունը մեր SEO-ի համար հարմար էջերով։"
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "Լիակատար API աջակցություն",
+ "DESCRIPTION": "Օգտագործեք պորտալը որպես գլխազուրկ CMS՝ երրորդ կողմի ֆրոնթենդ ֆրեյմվորքերի հետ մեր API-ների միջոցով։"
}
}
+ },
+ "LOADING": "Բեռնվում է...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} դիտում | {count} դիտումներ",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Հրապարակել",
+ "DRAFT": "Սևագիր",
+ "ARCHIVE": "Արխիվ",
+ "TRANSLATE": "Translate",
+ "DELETE": "Ջնջել"
+ },
+ "STATUS": {
+ "DRAFT": "Սևագիր",
+ "PUBLISHED": "Հրապարակված",
+ "ARCHIVED": "Արխիվացված"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Առանձնացված չէ"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Բոլոր հոդվածները",
+ "MINE": "Իմը",
+ "DRAFT": "Սևագիր",
+ "PUBLISHED": "Հրապարակված",
+ "ARCHIVED": "Արխիվացված"
+ },
+ "CATEGORY": {
+ "ALL": "Բոլոր կատեգորիաները"
+ },
+ "LOCALE": {
+ "ALL": "Բոլոր լեզուները"
+ },
+ "NEW_ARTICLE": "Նոր հոդված"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Գրեք հոդված",
+ "SUBTITLE": "Գրեք հարուստ հոդված։ Սկսենք։",
+ "BUTTON_LABEL": "Նոր հոդված"
+ },
+ "MINE": {
+ "TITLE": "Դուք այստեղ դեռ հոդվածներ չեք գրել",
+ "SUBTITLE": "Ձեր կողմից գրված բոլոր հոդվածները ցուցադրվում են այստեղ արագ հասանելիության համար։"
+ },
+ "DRAFT": {
+ "TITLE": "Սևագրերում հոդվածներ չկան",
+ "SUBTITLE": "Սևագրերը կցուցադրվեն այստեղ։"
+ },
+ "PUBLISHED": {
+ "TITLE": "Հրապարակված հոդվածներ չկան",
+ "SUBTITLE": "Հրապարակված հոդվածները կցուցադրվեն այստեղ"
+ },
+ "ARCHIVED": {
+ "TITLE": "Արխիվում հոդվածներ չկան",
+ "SUBTITLE": "Արխիվացված հոդվածները չեն ցուցադրվում պորտալում, դուք կարող եք օգտագործել դրանք որպես հին կամ ժամկետանց էջերի նշում"
+ },
+ "CATEGORY": {
+ "TITLE": "Այս կատեգորիայի մեջ հոդվածներ չկան։",
+ "SUBTITLE": "Այս կատեգորիայի հոդվածները կցուցադրվեն այստեղ։"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "SELECTED_COUNT": "{count} ընտրված",
+ "CLEAR_SELECTION": "Մաքրել ընտրությունը",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Հրապարակել",
+ "DRAFT": "Սևագիր",
+ "ARCHIVE": "Արխիվ",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Նոր կատեգորիա",
+ "EDIT_CATEGORY": "Խմբագրել կատեգորիան",
+ "CATEGORIES_COUNT": "{n} կատեգորիա | {n} կատեգորիաներ",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Կատեգորիաներ ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} հոդված) | {categoryName} ({categoryCount} հոդված)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Կատեգորիաներ չեն գտնվել։",
+ "SUBTITLE": "Կատեգորիաները կցուցադրվեն այստեղ։ Կարող եք ավելացնել կատեգորիա՝ սեղմելով «Նոր կատեգորիա» կոճակը։"
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} հոդված | {count} հոդվածներ"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ ստեղծվեց։",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել կատեգորիան"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել կատեգորիան"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Կատեգորիան հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել կատեգորիան"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Ստեղծել կատեգորիա",
+ "EDIT": "Խմբագրել կատեգորիան",
+ "DESCRIPTION": "Կատեգորիայի խմբագրումը կթարմացնի կատեգորիան հանրային պորտալում։",
+ "PORTAL": "Պորտալ",
+ "LOCALE": "Լոկալ"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Կատեգորիայի անուն",
+ "ERROR": "Անունը պարտադիր է"
+ },
+ "SLUG": {
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "կատեգորիայի slug URL-ների համար",
+ "ERROR": "Slug-ը պարտադիր է",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Տվեք կարճ նկարագրություն կատեգորիայի մասին։",
+ "ERROR": "Նկարագրությունը պարտադիր է"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Ստեղծել",
+ "EDIT": "Թարմացնել",
+ "CANCEL": "Չեղարկել"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Լեզուներ չկան | {n} լեզու | {n} լեզուներ",
+ "NEW_LOCALE_BUTTON_TEXT": "Նոր լեզու",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} հոդված | {count} հոդվածներ",
+ "CATEGORIES_COUNT": "{count} կատեգորիա | {count} կատեգորիաներ",
+ "DEFAULT": "Նախնական",
+ "DRAFT": "Սևագիր",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Դարձնել նախնական",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Ջնջել"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Ավելացնել նոր լեզու",
+ "DESCRIPTION": "Ընտրեք լեզուն, որով կգրվի այս հոդվածը։ Այն կավելացվի ձեր թարգմանությունների ցանկին, և դուք կարող եք ավելացնել ավելի շատ հետագայում։",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Ընտրեք լեզու..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Հրապարակված",
+ "DRAFT": "Սևագիր"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Լեզուն հաջողությամբ ավելացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ավելացնել լեզուն։ Փորձեք կրկին։"
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Պահպանում...",
+ "SAVED": "Պահպանված է"
+ },
+ "PREVIEW": "Նախադիտում",
+ "PUBLISH": "Հրապարակել",
+ "DRAFT": "Սևագիր",
+ "ARCHIVE": "Արխիվ",
+ "BACK_TO_ARTICLES": "Վերադառնալ հոդվածներին"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Ավելին հատկություններ",
+ "UNCATEGORIZED": "Առանց կատեգորիայի",
+ "EDITOR_PLACEHOLDER": "Գրեք ինչ-որ բան..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Հոդվածի հատկություններ",
+ "META_DESCRIPTION": "Մետա նկարագրություն",
+ "META_DESCRIPTION_PLACEHOLDER": "Ավելացնել մետա նկարագրություն",
+ "META_TITLE": "Մետա վերնագիր",
+ "META_TITLE_PLACEHOLDER": "Ավելացնել մետա վերնագիր",
+ "META_TAGS": "Մետա թեգեր",
+ "META_TAGS_PLACEHOLDER": "Ավելացնել մետա թեգեր"
+ },
+ "API": {
+ "ERROR": "Սխալ հոդվածը պահպանելիս"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Նոր պորտալ",
+ "PORTALS": "Պորտալներ",
+ "CREATE_PORTAL": "Ստեղծել և կառավարել մի քանի պորտալ",
+ "ARTICLES": "հոդվածներ",
+ "DOMAIN": "դոմեն",
+ "PORTAL_NAME": "Պորտալի անուն"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Ստեղծել նոր պորտալ",
+ "DESCRIPTION": "Տվեք ձեր պորտալին անուն և ստեղծեք օգտատերերին հարմար URL slug։ Կարող եք փոփոխել երկուսն էլ հետագայում կարգավորումների մեջ։",
+ "CONFIRM_BUTTON_LABEL": "Ստեղծել",
+ "NAME": {
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Օգտագործողի ուղեցույց | Chatwoot",
+ "MESSAGE": "Ընտրեք անուն ձեր պորտալի համար։",
+ "ERROR": "Անունը պարտադիր է"
+ },
+ "SLUG": {
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug-ը պարտադիր է",
+ "FORMAT_ERROR": "Խնդրում ենք մուտքագրել վավեր slug, օրինակ՝ user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Լոգո",
+ "IMAGE_UPLOAD_ERROR": "Չհաջողվեց պատկերն ուղարկել։ Փորձեք կրկին",
+ "IMAGE_UPLOAD_SUCCESS": "Պատկերը հաջողությամբ ավելացվեց։ Խնդրում ենք սեղմել «Պահպանել փոփոխությունները»՝ լոգոն պահպանելու համար",
+ "IMAGE_DELETE_SUCCESS": "Լոգոն հաջողությամբ ջնջվեց",
+ "IMAGE_DELETE_ERROR": "Չհաջողվեց ջնջել լոգոն",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Պատկերի չափը պետք է լինի {size}MB-ից պակաս"
+ },
+ "NAME": {
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Պորտալի անուն",
+ "ERROR": "Պետք է մուտքագրել անուն"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Վերնագրի տեքստ",
+ "PLACEHOLDER": "Պորտալի վերնագրի տեքստ"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Էջի վերնագիր",
+ "PLACEHOLDER": "Պորտալի էջի վերնագիր"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Գլխավոր էջի հղում",
+ "PLACEHOLDER": "Պորտալի գլխավոր էջի հղում",
+ "ERROR": "Մուտքագրեք վավեր URL։ Գլխավոր էջի հղումը պետք է սկսվի 'http://' կամ 'https://'։"
+ },
+ "SLUG": {
+ "LABEL": "Սլագ",
+ "PLACEHOLDER": "Պորտալի slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Ուղիղ զրույցի վիջեթ",
+ "PLACEHOLDER": "Ընտրեք ուղիղ զրույցի վիջեթը",
+ "HELP_TEXT": "Ընտրեք ուղիղ զրույցի վիջեթ, որը կցուցադրվի ձեր օգնության կենտրոնում",
+ "NONE_OPTION": "Առկա չէ վիջեթ"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Բրենդի գույն"
+ },
+ "SAVE_CHANGES": "Պահպանել փոփոխությունները"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Հարմարեցված դոմեն",
+ "LABEL": "Հարմարեցված դոմեն՝",
+ "DESCRIPTION": "Դուք կարող եք հյուրընկալել ձեր պորտալը հարմարեցված դոմեյնում։ Օրինակ՝ եթե ձեր կայքը yourdomain.com է և ցանկանում եք, որ պորտալը հասանելի լինի docs.yourdomain.com հասցեով, պարզապես մուտքագրեք այն այս դաշտում։",
+ "STATUS_DESCRIPTION": "Ձեր հարմարեցված պորտալը կսկսի աշխատել, երբ այն հաստատվի։",
+ "PLACEHOLDER": "Պորտալի հարմարեցված դոմեն",
+ "EDIT_BUTTON": "Խմբագրել",
+ "ADD_BUTTON": "Ավելացնել հարմարեցված դոմեն",
+ "STATUS": {
+ "LIVE": "Ակտիվ",
+ "PENDING": "Սպասում է հաստատմանը",
+ "ERROR": "Հաստատումը ձախողվեց"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Ավելացնել հարմարեցված դոմեն",
+ "EDIT_HEADER": "Խմբագրել հարմարեցված դոմենը",
+ "ADD_CONFIRM_BUTTON_LABEL": "Ավելացնել դոմեն",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Թարմացնել դոմենը",
+ "LABEL": "Հարմարեցված դոմեն",
+ "PLACEHOLDER": "Պորտալի հարմարեցված դոմեն",
+ "ERROR": "Պարտադիր է հարմարեցված դոմենը",
+ "FORMAT_ERROR": "Խնդրում ենք մուտքագրել վավեր դոմենի URL, օրինակ՝ docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS կարգավորումներ",
+ "DESCRIPTION": "Մուտք գործեք ձեր DNS մատակարարի հաշիվ և ավելացրեք CNAME գրառում ենթադոմենի համար, որը ցույց է տալիս chatwoot.help",
+ "COPY": "CNAME-ը հաջողությամբ պատճենվեց",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Ուղարկել հրահանգներ",
+ "DESCRIPTION": "Եթե ցանկանում եք, որ ձեր զարգացման թիմից որևէ մեկը զբաղվի այս քայլով, կարող եք ներքևում մուտքագրել էլ․ հասցեն, և մենք կուղարկենք անհրաժեշտ հրահանգները։",
+ "PLACEHOLDER": "Մուտքագրեք նրանց էլ․ հասցեն",
+ "ERROR": "Մուտքագրեք վավեր էլ․ հասցե",
+ "SEND_BUTTON": "Ուղարկել"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Ջնջել {portalName}",
+ "HEADER": "Ջնջել պորտալը",
+ "DESCRIPTION": "Մշտապես ջնջել այս պորտալը։ Այս գործողությունը անշրջելի է",
+ "DIALOG": {
+ "HEADER": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել {portalName}-ը:",
+ "DESCRIPTION": "Սա մշտական գործողություն է, որը չի կարող հետադարձվել։",
+ "CONFIRM_BUTTON_LABEL": "Ջնջել"
+ }
+ },
+ "EDIT_CONFIGURATION": "Խմբագրել կազմաձևը"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Հեռացնել"
+ },
+ "SAVE": "Պահպանել փոփոխությունները"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Պորտալը հաջողությամբ ստեղծվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել պորտալը"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Պորտալը հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել պորտալը"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Բեռնավորել PDF փաստաթուղթ",
+ "DESCRIPTION": "Բեռնավորեք PDF փաստաթուղթ՝ ավտոմատ կերպով ստեղծելու համար հաճախ տրվող հարցեր՝ օգտագործելով AI",
+ "DRAG_DROP_TEXT": "Քաշեք և թողեք ձեր PDF ֆայլը այստեղ, կամ սեղմեք ընտրելու համար",
+ "SELECT_FILE": "Ընտրել PDF ֆայլ",
+ "ADDITIONAL_CONTEXT_LABEL": "Լրացուցիչ համատեքստ (Ընտրովի)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Տրամադրեք լրացուցիչ համատեքստ կամ հրահանգներ ՀՏՀ ստեղծման համար...",
+ "UPLOADING": "Բեռնվում է...",
+ "UPLOAD": "Բեռնավորել և մշակել",
+ "CANCEL": "Չեղարկել",
+ "ERROR_INVALID_TYPE": "Խնդրում ենք ընտրել վավեր PDF ֆայլ",
+ "ERROR_FILE_TOO_LARGE": "Ֆայլի չափը պետք է լինի 512ՄԲ-ից պակաս",
+ "ERROR_UPLOAD_FAILED": "PDF ֆայլի վերբեռնումը ձախողվեց։ Խնդրում ենք փորձել կրկին։"
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF փաստաթղթեր",
+ "DESCRIPTION": "Կառավարեք վերբեռնված PDF փաստաթղթերը և ստեղծեք ՀՏՀ դրանցից",
+ "UPLOAD_PDF": "Վերբեռնել PDF",
+ "UPLOAD_FIRST_PDF": "Վերբեռնեք ձեր առաջին PDF-ը",
+ "UPLOADED_BY": "Վերբեռնվել է՝",
+ "GENERATE_FAQS": "Ստեղծել ՀՏՀ",
+ "GENERATING": "Ստեղծվում է...",
+ "CONFIRM_DELETE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել {filename} ֆայլը?",
+ "EMPTY_STATE": {
+ "TITLE": "Դեռևս PDF փաստաթղթեր չկան",
+ "DESCRIPTION": "Վերբեռնեք PDF փաստաթղթեր՝ արհեստական բանականությամբ ավտոմատ ՀՏՀ ստեղծելու համար"
+ },
+ "STATUS": {
+ "UPLOADED": "Պատրաստ է",
+ "PROCESSING": "Ընթացքի մեջ է",
+ "PROCESSED": "Ավարտված է",
+ "FAILED": "Ձախողվել է"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Բովանդակության ստեղծում",
+ "DESCRIPTION": "Վերբեռնեք PDF փաստաթղթեր՝ արհեստական բանականությամբ ավտոմատ ՀՏՀ բովանդակություն ստեղծելու համար",
+ "UPLOAD_TITLE": "Վերբեռնել PDF փաստաթուղթ",
+ "DRAG_DROP": "Քաշեք և թողեք ձեր PDF ֆայլը այստեղ, կամ սեղմեք ընտրելու համար",
+ "SELECT_FILE": "Ընտրել PDF ֆայլ",
+ "UPLOADING": "Փաստաթուղթը մշակվում է...",
+ "UPLOAD_SUCCESS": "Փաստաթուղթը հաջողությամբ մշակվեց։",
+ "UPLOAD_ERROR": "Փաստաթուղթը վերբեռնելուց ձախողվեց։ Խնդրում ենք փորձել կրկին։",
+ "INVALID_FILE_TYPE": "Խնդրում ենք ընտրել վավեր PDF ֆայլ",
+ "FILE_TOO_LARGE": "Ֆայլի չափը պետք է լինի 512ՄԲ-ից պակաս",
+ "GENERATED_CONTENT": "Ստեղծված ՀՏՀ բովանդակություն",
+ "PUBLISH_SELECTED": "Հրապարակել ընտրվածը",
+ "PUBLISHING": "Հրապարակվում է...",
+ "FROM_DOCUMENT": "Փաստաթղթից",
+ "NO_CONTENT": "Ստեղծված բովանդակություն չկա։ Սկսելու համար վերբեռնեք PDF փաստաթուղթ։",
+ "LOADING": "Բեռնվում է ստեղծված բովանդակությունը..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/inbox.json b/app/javascript/dashboard/i18n/locale/hy/inbox.json
index dcac5459f..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/hy/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/hy/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
index 3762a5151..71169f92c 100644
--- a/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/inboxMgmt.json
@@ -1,739 +1,1202 @@
{
"INBOX_MGMT": {
- "HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "HEADER": "Զամբյուղներ",
+ "DESCRIPTION": "Անցումը այն հաղորդակցության ձևն է, որը ձեր հաճախորդը ընտրում է ձեզ հետ շփվելու համար։ Ներարկղը այն վայրն է, որտեղ դուք կառավարում եք կոնկրետ անցման հաղորդակցությունները։ Այն կարող է ներառել հաղորդակցություններ տարբեր աղբյուրներից, ինչպիսիք են էլ. փոստը, ուղիղ զրույցը և սոցիալական մեդիան։",
+ "LEARN_MORE": "Իմացեք ավելին մուտքայինների մասին",
+ "COUNT": "{n} մուտք | {n} մուտքեր",
+ "SEARCH_PLACEHOLDER": "Փնտրել մուտքեր...",
+ "NO_RESULTS": "Ձեր որոնմանը համապատասխանող մուտքեր չեն գտնվել",
+ "RECONNECTION_REQUIRED": "Ձեր մուտքի արկղը անջատված է։ Դուք նոր հաղորդագրություններ չեք ստանա, մինչև այն կրկին թույլտվեք։",
+ "CLICK_TO_RECONNECT": "Սեղմեք այստեղ՝ կրկին միանալու համար։",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Ձեր WhatsApp Business գրանցումը ավարտված չէ։ Խնդրում ենք ստուգել ձեր ցուցադրման անունի կարգավիճակը Meta Business Manager-ում, նախքան կրկին միանալը։",
+ "COMPLETE_REGISTRATION": "Ավարտել գրանցումը",
"LIST": {
- "404": "There are no inboxes attached to this account."
+ "404": "Այս հաշվի հետ կապված զամբյուղներ չկան։"
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Ընտրեք ալիքը",
+ "BODY": "Ընտրեք այն պրովայդերին, որի հետ ցանկանում եք ինտեգրվել Chatwoot-ին։"
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Ստեղծել մուտքի արկղ",
+ "BODY": "Հավաստագրեք ձեր հաշիվը և ստեղծեք մուտքի արկղ։"
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Ավելացնել գործակալներ",
+ "BODY": "Ավելացրեք գործակալներ ստեղծված մուտքի արկղին։"
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Ահա և վերջը։",
+ "BODY": "Դուք պատրաստ եք սկսել։"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "LABEL": "Ինբոքսի անուն",
+ "PLACEHOLDER": "Մուտքագրեք ձեր ինբոքսի անունը (օրինակ՝ Acme Inc)",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր նամակների արկղի անուն"
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
+ "LABEL": "Վեբկայքի անուն",
+ "PLACEHOLDER": "Մուտքագրեք ձեր վեբկայքի անունը (օրինակ՝ Acme Inc)"
},
"FB": {
- "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.",
- "CHOOSE_PAGE": "Choose Page",
- "CHOOSE_PLACEHOLDER": "Select a page from the list",
- "INBOX_NAME": "Inbox Name",
- "ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "HELP": "PS․ Մուտք գործելով՝ մենք միայն ձեր Էջի հաղորդագրություններին ենք հասանելիություն ստանում։ Ձեր անձնական հաղորդագրություններին Chatwoot-ը երբեք չի կարող հասանելիություն ունենալ։",
+ "CHOOSE_PAGE": "Ընտրել Էջը",
+ "CHOOSE_PLACEHOLDER": "Ընտրեք էջը ցուցակից",
+ "INBOX_NAME": "Զամբյուղի անուն",
+ "ADD_NAME": "Ավելացրեք անուն ձեր զամբյուղին",
+ "PICK_NAME": "Ընտրեք անուն ձեր մուտքի համար",
+ "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 հաղորդագրություններ այս մուտքի արկղից։"
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Շարունակել TikTok-ով",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Կապեք ձեր TikTok պրոֆիլը",
+ "HELP": "Ձեր TikTok պրոֆիլը որպես ալիք ավելացնելու համար անհրաժեշտ է հաստատել ձեր TikTok պրոֆիլը՝ սեղմելով «Շարունակել TikTok-ով» կոճակը։ ",
+ "ERROR_MESSAGE": "TikTok-ին միանալու ընթացքում սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "ERROR_AUTH": "TikTok-ին միանալու ընթացքում սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
},
"TWITTER": {
- "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "HELP": "Ձեր Twitter պրոֆիլը որպես ալիք ավելացնելու համար անհրաժեշտ է հաստատել ձեր Twitter պրոֆիլը՝ սեղմելով «Մուտք Twitter-ով» կոճակը։ ",
+ "ERROR_MESSAGE": "Twitter-ին միանալու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "Ստեղծել զրույցներ նշված Tweets-ից"
}
},
"WEBSITE_CHANNEL": {
- "TITLE": "Website channel",
- "DESC": "Create a channel for your website and start supporting your customers via our website widget.",
- "LOADING_MESSAGE": "Creating Website Support Channel",
+ "TITLE": "Վեբկայքի ալիք",
+ "DESC": "Ստեղծեք ալիք ձեր վեբկայքի համար և սկսեք աջակցել ձեր հաճախորդներին մեր վեբկայքի վիջեթի միջոցով։",
+ "LOADING_MESSAGE": "Ստեղծվում է վեբկայքի աջակցության ալիքը",
"CHANNEL_AVATAR": {
- "LABEL": "Channel Avatar"
+ "LABEL": "Ալիքի պատկերակ"
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "Please enter a valid URL"
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Webhook URL-ը",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր URL"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Պատճենել գաղտնաբառը",
+ "COPY_SUCCESS": "Գաղտնաբառը պատճենվել է",
+ "TOGGLE": "Ցուցադրել/թաքցնել գաղտնաբառը",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
- "LABEL": "Website Domain",
- "PLACEHOLDER": "Enter your website domain (eg: acme.com)"
+ "LABEL": "Վեբկայքի տիրույթ",
+ "PLACEHOLDER": "Մուտքագրեք ձեր վեբկայքի տիրույթը (օրինակ՝ acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Welcome Heading",
- "PLACEHOLDER": "Hi there !"
+ "LABEL": "Բարի գալուստ վերնագիր",
+ "PLACEHOLDER": "Բարև ձեզ։"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "Բարի գալուստ տող",
+ "PLACEHOLDER": "Մենք հեշտացնում ենք կապ հաստատելը մեզ հետ։ Հարցրեք ինչ ուզում եք կամ կիսվեք ձեր կարծիքով։"
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Channel greeting message",
- "PLACEHOLDER": "Acme Inc typically replies in a few hours."
+ "LABEL": "Ալիքի ողջույնի հաղորդագրություն",
+ "PLACEHOLDER": "Acme Inc-ը սովորաբար պատասխանում է մի քանի ժամում։"
},
"CHANNEL_GREETING_TOGGLE": {
- "LABEL": "Enable channel greeting",
+ "LABEL": "Միացնել ալիքի ողջույնը",
"HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Միացված է",
+ "DISABLED": "Անջատված է"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "Սահմանել պատասխանելու ժամանակը",
+ "IN_A_FEW_MINUTES": "Մի քանի րոպեում",
+ "IN_A_FEW_HOURS": "Մի քանի ժամում",
+ "IN_A_DAY": "Մեկ օրվա ընթացքում",
+ "HELP_TEXT": "Այս պատասխանելու ժամանակը կցուցադրվի կենդանի զրույցի վիջեթում"
},
"WIDGET_COLOR": {
- "LABEL": "Widget Color",
- "PLACEHOLDER": "Update the widget color used in widget"
+ "LABEL": "Վիջեթի գույն",
+ "PLACEHOLDER": "Թարմացրեք վիջեթում օգտագործվող գույնը"
},
- "SUBMIT_BUTTON": "Create inbox",
+ "SUBMIT_BUTTON": "Ստեղծել զամբյուղ",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել կայքի ալիք, խնդրում ենք փորձել կրկին"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp ալիք",
+ "DESC": "Միացրեք Twilio-ն և սկսեք աջակցել ձեր հաճախորդներին SMS կամ WhatsApp-ի միջոցով։",
"ACCOUNT_SID": {
- "LABEL": "Account SID",
- "PLACEHOLDER": "Please enter your Twilio Account SID",
- "ERROR": "This field is required"
+ "LABEL": "Հաշվի SID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Twilio Հաշվի SID-ն",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
- "ERROR": "This field is required"
+ "USE_API_KEY": "Օգտագործել API բանալիի հաստատում",
+ "LABEL": "API բանալիի SID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր API բանալիի SID",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
- "ERROR": "This field is required"
+ "LABEL": "API բանալիի գաղտնիք",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր API բանալիի գաղտնիքը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
- "ERROR": "This field is required",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "LABEL": "Հաղորդագրությունների ծառայության SID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Twilio հաղորդագրությունների ծառայության SID-ն",
+ "ERROR": "Այս դաշտը պարտադիր է",
+ "USE_MESSAGING_SERVICE": "Օգտագործել Twilio հաղորդագրությունների ծառայությունը"
},
"CHANNEL_TYPE": {
- "LABEL": "Channel Type",
- "ERROR": "Please select your Channel Type"
+ "LABEL": "Ալիքի տեսակը",
+ "ERROR": "Խնդրում ենք ընտրել ձեր ալիքի տեսակը"
},
"AUTH_TOKEN": {
- "LABEL": "Auth Token",
- "PLACEHOLDER": "Please enter your Twilio Auth Token",
- "ERROR": "This field is required"
+ "LABEL": "Հաստատման նշան",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Twilio Հաստատման նշանը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Նամակների արկղի անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել նամակների արկղի անունը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Հեռախոսահամար",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել հեռախոսահամարը, որի միջոցով հաղորդագրությունը կուղարկվի։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր հեռախոսահամար, որը սկսվում է `+` նշանով և չի պարունակում բացատներ։"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
+ "TITLE": "Հետադարձ զանգի URL",
+ "SUBTITLE": "Դուք պետք է կարգավորեք հաղորդագրության հետադարձ զանգի URL-ը Twilio-ում՝ օգտագործելով այստեղ նշված URL-ը։"
},
- "SUBMIT_BUTTON": "Create Twilio Channel",
+ "SUBMIT_BUTTON": "Ստեղծել Twilio ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again"
+ "ERROR_MESSAGE": "Չհաջողվեց հաստատել Twilio հավատարմագրերը, խնդրում ենք փորձել կրկին"
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS ալիք",
+ "DESC": "Սկսեք աջակցել ձեր հաճախորդներին SMS-ով։",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API մատակարար",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել SMS ալիքը"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
- "ERROR": "This field is required"
+ "LABEL": "Հաշվի ID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Bandwidth հաշվի ID-ն",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
- "ERROR": "This field is required"
+ "LABEL": "API բանալին",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Bandwidth API բանալին",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
- "ERROR": "This field is required"
+ "LABEL": "API գաղտնիք",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Bandwidth API գաղտնիքը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
- "ERROR": "This field is required"
+ "LABEL": "Դիմումի ID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր Bandwidth դիմումի ID-ն",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Նամակների արկղի անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել նամակների արկղի անուն",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Հեռախոսահամար",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել այն հեռախոսահամարը, որտեղից կուղարկվի հաղորդագրությունը։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր հեռախոսահամար, որը սկսվում է `+` նշանով և չի պարունակում բացատներ։"
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Ստեղծել Bandwidth ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "Չհաջողվեց հաստատել Bandwidth հավատարմագրերը, խնդրում ենք փորձել կրկին"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "TITLE": "Հետադարձ կանչի URL",
+ "SUBTITLE": "Դուք պետք է կարգավորեք հաղորդագրության հետադարձ կանչի URL-ը Bandwidth-ում այստեղ նշված URL-ով։"
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp ալիք",
+ "DESC": "Սկսեք աջակցել ձեր հաճախորդներին WhatsApp-ի միջոցով։",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API մատակարար",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
- "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD": "WhatsApp ամպ",
+ "WHATSAPP_CLOUD_DESC": "Արագ կարգավորում Meta-ի միջոցով",
+ "TWILIO_DESC": "Կապ հաստատեք Twilio հավատարմագրերով",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Ընտրեք ձեր API մատակարարին",
+ "DESCRIPTION": "Ընտրեք ձեր WhatsApp մատակարարին։ Կարող եք անմիջապես կապ հաստատել Meta-ի միջոցով, որը չի պահանջում կարգավորում, կամ կապ հաստատել Twilio-ի միջոցով՝ օգտագործելով ձեր հաշվի հավատարմագրերը։"
+ },
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter an inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Նամակների արկղի անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել նամակների արկղի անունը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Հեռախոսահամար",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել այն հեռախոսահամարը, որի միջոցով հաղորդագրությունը կուղարկվի։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր հեռախոսահամար, որը սկսվում է `+` նշանով և չի պարունակում բացատներ։"
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Հեռախոսահամարի ID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել Facebook մշակողի վահանակից ստացված Հեռախոսահամարի ID-ն։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր արժեք։"
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Բիզնես հաշվի ID",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել Facebook մշակողի վահանակից ստացված Բիզնես հաշվի ID-ն։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր արժեք։"
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Webhook հաստատման տոկեն",
+ "PLACEHOLDER": "Մուտքագրեք վավերացման տոկեն, որը ցանկանում եք կարգավորել Facebook webhook-ների համար։",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր արժեք։"
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "API բանալին",
+ "SUBTITLE": "Կարգավորեք WhatsApp API բանալին։",
+ "PLACEHOLDER": "API բանալին",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր արժեք։"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "TITLE": "Հետադարձ կանչի URL",
+ "SUBTITLE": "Դուք պետք է կարգավորեք webhook URL-ը և վավերացման տոկենը Facebook Developer պորտալում ստորև նշված արժեքներով։",
"WEBHOOK_URL": "Webhook URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook վավերացման տոկեն"
+ },
+ "SUBMIT_BUTTON": "Ստեղծել WhatsApp ալիք",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Արագ կարգավորում Meta-ով",
+ "DESC": "Օգտագործեք WhatsApp Embedded Signup հոսքը նոր համարները արագ կապելու համար։ Դուք կուղղորդվեք Meta՝ ձեր WhatsApp Business հաշիվ մուտք գործելու համար։ Վարչական մուտքի առկայությունը կօգնի կարգավորումը դարձնել հարթ և հեշտ։",
+ "BENEFITS": {
+ "TITLE": "Էմբեդացված գրանցման առավելությունները:",
+ "EASY_SETUP": "Չի պահանջվում ձեռքով կարգավորում",
+ "SECURE_AUTH": "Ապահով OAuth-հիմնված վավերացում",
+ "AUTO_CONFIG": "Ավտոմատ webhook-ի և հեռախոսահամարի կարգավորում"
+ },
+ "LEARN_MORE": {
+ "TEXT": "Ներկայացված գրանցման, գների և սահմանափակումների մասին ավելին իմանալու համար այցելեք {link}։",
+ "LINK_TEXT": "այս հղումը"
+ },
+ "SUBMIT_BUTTON": "Կապ հաստատել WhatsApp Business-ի հետ",
+ "AUTH_PROCESSING": "Վավերացում Meta-ի հետ",
+ "WAITING_FOR_BUSINESS_INFO": "Խնդրում ենք լրացնել բիզնեսի կարգավորումը Meta պատուհանում...",
+ "PROCESSING": "Ձեր WhatsApp Business հաշվի կարգավորումը",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Բեռնում է Facebook SDK-ն...",
+ "CANCELLED": "WhatsApp գրանցումը չեղարկվեց",
+ "SUCCESS_TITLE": "WhatsApp Business հաշիվը միացված է։",
+ "WAITING_FOR_AUTH": "Սպասում ենք հաստատմանը...",
+ "INVALID_BUSINESS_DATA": "Facebook-ից ստացված բիզնեսի տվյալները անվավեր են։ Խնդրում ենք փորձել կրկին։",
+ "SIGNUP_ERROR": "Գրանցման սխալ է տեղի ունեցել",
+ "AUTH_NOT_COMPLETED": "Հաստատումը չի ավարտվել։ Խնդրում ենք սկսել գործընթացը նորից։",
+ "SUCCESS_FALLBACK": "WhatsApp Business հաշիվը հաջողությամբ կարգավորվել է",
+ "MANUAL_FALLBACK": "Եթե ձեր համարը արդեն միացված է WhatsApp Business Platform (API)-ին, կամ եթե դուք տեխնոլոգիական մատակարար եք, որը միացնում է իր սեփական համարը, խնդրում ենք օգտագործել {link} ընթացքը",
+ "MANUAL_LINK_TEXT": "ձեռնարկային կարգավորման ընթացք",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել WhatsApp ալիքը"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Ձայնային ալիք",
+ "DESC": "Միացրեք Twilio Voice-ը և սկսեք աջակցել ձեր հաճախորդներին հեռախոսազանգերի միջոցով։",
+ "PHONE_NUMBER": {
+ "LABEL": "Հեռախոսահամար",
+ "PLACEHOLDER": "Մուտքագրեք ձեր հեռախոսահամարը (օրինակ՝ +1234567890)",
+ "ERROR": "Խնդրում ենք տրամադրել վավեր հեռախոսահամար E.164 ձևաչափով (օրինակ՝ +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Հաշվի SID",
+ "PLACEHOLDER": "Մուտքագրեք ձեր Twilio Հաշվի SID-ը",
+ "REQUIRED": "Պահանջվում է հաշվի SID"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Հավաստագրի նշան",
+ "PLACEHOLDER": "Մուտքագրեք ձեր Twilio հավաստագրի նշանը",
+ "REQUIRED": "Պահանջվում է հավաստագրի նշան"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API բանալի SID",
+ "PLACEHOLDER": "Մուտքագրեք ձեր Twilio API Key SID-ը",
+ "REQUIRED": "Պահանջվում է API Key SID-ը"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key գաղտնիք",
+ "PLACEHOLDER": "Մուտքագրեք ձեր Twilio API Key գաղտնիքը",
+ "REQUIRED": "Պահանջվում է API Key գաղտնիքը"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio ձայնային URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Կարգավորեք այս URL-ը որպես Ձայնային URL ձեր Twilio հեռախոսահամարին և TwiML հավելվածին։",
+ "TWILIO_STATUS_URL_TITLE": "Twilio կարգավիճակի Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Կարգավորեք այս URL-ը որպես կարգավիճակի Callback URL ձեր Twilio հեռախոսահամարին։"
+ },
+ "SUBMIT_BUTTON": "Ստեղծել ձայնային ալիք",
+ "API": {
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել ձայնային ալիքը"
}
},
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "API ալիք",
+ "DESC": "Միացրեք API ալիքը և սկսեք աջակցել ձեր հաճախորդներին։",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Ալիքի անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ալիքի անունը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Կարգավորեք URL-ը, որտեղ ցանկանում եք ստանալ իրադարձությունների հետադարձ կանչեր։",
"PLACEHOLDER": "Webhook URL"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "Ստեղծել API ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to save the api channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել API ալիքը"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "Էլփոստի ալիք",
+ "DESC": "Միացրեք ձեր էլփոստի մուտքի արկղը։",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Ալիքի անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ալիքի անունը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"EMAIL": {
- "LABEL": "Email",
- "SUBTITLE": "Provide the email address where your customers send support requests.",
- "PLACEHOLDER": "Email"
+ "LABEL": "Էլփոստ",
+ "SUBTITLE": "Տվեք էլփոստի հասցեն, որտեղ ձեր հաճախորդները ուղարկում են աջակցման հարցումներ։",
+ "PLACEHOLDER": "Էլփոստ"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "Ստեղծել էլփոստի ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել էլփոստի ալիքը"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Ձեր էլփոստի մուտքի արկղը հաջողությամբ ստեղծվել է։ Պետք է կարգավորեք SMTP և IMAP հավատարմագրերը՝ էլփոստեր ուղարկելու և ստանալու համար։ Այս կարգավորումներ չլինելու դեպքում էլփոստերը չեն մշակվի։",
+ "FORWARDING_ADDRESS_LABEL": "Էլ. փոստերը փոխանցել այս հասցեին:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Սեղմեք այստեղ",
+ "CONFIGURE_SMTP_IMAP_TEXT": " ՝ IMAP և SMTP կարգավորումները սահմանելու համար"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE ալիք",
+ "DESC": "Միացրեք LINE ալիքը և սկսեք աջակցել ձեր հաճախորդներին։",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Անվանում ալիքի",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ալիքի անունը",
+ "ERROR": "Այս դաշտը պարտադիր է"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE ալիքի ID",
+ "PLACEHOLDER": "LINE ալիքի ID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE ալիքի գաղտնիք",
+ "PLACEHOLDER": "LINE ալիքի գաղտնիք"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE ալիքի տոկեն",
+ "PLACEHOLDER": "LINE ալիքի տոկեն"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "Ստեղծել LINE ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել LINE ալիքը"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "Հետադարձ կանչի URL",
+ "SUBTITLE": "Դուք պետք է կարգավորեք webhook URL-ը LINE հավելվածում այստեղ նշված URL-ով։"
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram ալիք",
+ "DESC": "Միացրեք Telegram ալիքը և սկսեք աջակցել ձեր հաճախորդներին։",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "Բոտի տոկեն",
+ "SUBTITLE": "Կարգավորեք բոտի տոկենը, որը ստացել եք Telegram BotFather-ից։",
+ "PLACEHOLDER": "Բոտի տոկեն"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Ստեղծել Telegram ալիք",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Չհաջողվեց պահպանել Telegram ալիքը"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "Ընտրեք ալիք",
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Ավարտեք կարգավորումը",
+ "TITLE_FINISH": "Ահա և վերջը։",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Կայք",
+ "DESCRIPTION": "Ստեղծեք կենդանի զրույցի վիջեթ"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Կապեք ձեր Facebook էջը"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Աջակցեք ձեր հաճախորդներին WhatsApp-ում"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Էլ. փոստ",
+ "DESCRIPTION": "Կապվեք Gmail-ի, Outlook-ի կամ այլ մատակարարների հետ"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Միացրեք SMS ալիքը Twilio կամ bandwidth-ի հետ"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Ստեղծեք հարմարեցված ալիք մեր API-ով"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Կարգավորեք Telegram ալիքը՝ օգտագործելով Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Միացրեք ձեր Line ալիքը"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Միացրեք ձեր Instagram հաշիվը"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Կապեք ձեր TikTok հաշիվը"
+ },
+ "VOICE": {
+ "TITLE": "Ձայն",
+ "DESCRIPTION": "Միացրեք Twilio Voice-ին"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agents",
- "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "TITLE": "Գործակալներ",
+ "DESC": "Այստեղ կարող եք ավելացնել գործակալներ՝ ձեր նոր ստեղծված զամբյուղը կառավարելու համար։ Միայն այս ընտրված գործակալները կունենան հասանելիություն ձեր զամբյուղին։ Գործակալները, որոնք չեն պատկանում այս զամբյուղին, չեն կարող տեսնել կամ պատասխանել հաղորդագրություններին այս զամբյուղում մուտք գործելիս։
PS․ Որպես ադմինիստրատոր, եթե ձեզ անհրաժեշտ է հասանելիություն բոլոր զամբյուղներին, պետք է ինքներդ ձեզ ավելացնեք որպես գործակալ բոլոր այն զամբյուղներին, որոնք դուք ստեղծում եք։",
+ "VALIDATION_ERROR": "Ավելացրեք առնվազն մեկ գործակալ ձեր նոր Նամակապանակում",
+ "PICK_AGENTS": "Ընտրեք գործակալներ այս ինբոքսի համար"
},
"DETAILS": {
- "TITLE": "Inbox Details",
- "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification."
+ "TITLE": "Զամբյուղի մանրամասներ",
+ "DESC": "Ներքևի բացվող ցանկից ընտրեք Facebook Էջը, որը ցանկանում եք կապել Chatwoot-ի հետ։ Կարող եք նաև ձեր զամբյուղին տալ հատուկ անուն՝ ավելի լավ ճանաչման համար։"
},
"FINISH": {
- "TITLE": "Nailed It!",
- "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)"
+ "TITLE": "Հաջողվեց։",
+ "DESC": "Դուք հաջողությամբ ավարտել եք ձեր Facebook Էջի ինտեգրումը Chatwoot-ի հետ։ Հաջորդ անգամ, երբ հաճախորդը հաղորդագրություն ուղարկի ձեր Էջին, զրույցը ավտոմատ կերպով կհայտնվի ձեր զամբյուղում։
Մենք նաև տրամադրում ենք վիջեթի սցենար, որը կարող եք հեշտությամբ ավելացնել ձեր վեբկայքում։ Երբ այն ակտիվ լինի ձեր վեբկայքում, հաճախորդները կարող են ուղարկել հաղորդագրություններ անմիջապես ձեր կայքից՝ առանց որևէ արտաքին գործիքի օգնության, և զրույցը կհայտնվի հենց այստեղ, Chatwoot-ում։
Հիանալի է, չէ՞։ Մենք իսկապես փորձում ենք :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "Ընտրեք ձեր էլփոստի մատակարարին",
+ "DESCRIPTION": "Ընտրեք էլփոստի մատակարար ցուցակից։ Եթե ձեր մատակարարը ցուցակում չկա, կարող եք ընտրել «այլ մատակարար» տարբերակը և տրամադրել IMAP և SMTP հավատարմագրերը։"
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft էլփոստ",
+ "DESCRIPTION": "Սկսելու համար սեղմեք «Մուտք Microsoft-ով» կոճակը։ Դուք կուղղորդվեք էլփոստի մուտքի էջ։ Երբ ընդունեք պահանջվող թույլտվությունները, կվերադառնաք մուտքի ստեղծման քայլին։",
+ "EMAIL_PLACEHOLDER": "Մուտքագրեք էլփոստի հասցեն",
+ "SIGN_IN": "Մուտք գործեք Microsoft-ով",
+ "ERROR_MESSAGE": "Microsoft-ով կապվելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
+ },
+ "GOOGLE": {
+ "TITLE": "Google էլփոստ",
+ "DESCRIPTION": "Սկսելու համար սեղմեք Մուտք գործել Google-ով կոճակը։ Դուք կուղղորդվեք էլփոստի մուտքի էջ։ Երբ ընդունեք պահանջվող թույլտվությունները, կվերադառնաք մուտքի արկղի ստեղծման քայլին։",
+ "SIGN_IN": "Մուտք գործեք Google-ով",
+ "EMAIL_PLACEHOLDER": "Մուտքագրեք էլ. փոստի հասցեն",
+ "ERROR_MESSAGE": "Google-ի հետ կապվելու ընթացքում սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
}
},
"DETAILS": {
- "LOADING_FB": "Authenticating you with Facebook...",
- "ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creating your Inbox...",
- "TITLE": "Configure Inbox Details",
+ "LOADING_FB": "Ձեզ հաստատում ենք Facebook-ով...",
+ "ERROR_FB_LOADING": "Սխալ Facebook SDK-ի բեռնման ժամանակ։ Խնդրում ենք անջատել ցանկացած գովազդարգելիչ և փորձել այլ զննարկիչից։",
+ "ERROR_FB_AUTH": "Ինչ-որ բան սխալ է, խնդրում ենք թարմացնել էջը...",
+ "ERROR_FB_UNAUTHORIZED": "Դուք իրավունք չունեք կատարել այս գործողությունը։ ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Խնդրում ենք համոզվել, որ դուք լիակատար վերահսկողությամբ մուտք ունեք Facebook էջին։ Կարդացեք ավելին Facebook դերերի մասին այստեղ։",
+ "CREATING_CHANNEL": "Ստեղծվում է ձեր զամբյուղը...",
+ "TITLE": "Կարգավորել զամբյուղի մանրամասները",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents",
- "ADD_AGENTS": "Adding Agents to your Inbox..."
+ "BUTTON_TEXT": "Ավելացնել գործակալներ",
+ "ADD_AGENTS": "Գործակալներ ավելացվում են ձեր զամբյուղին..."
},
"FINISH": {
- "TITLE": "Your Inbox is ready!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "TITLE": "Ձեր զամբյուղը պատրաստ է։",
+ "MESSAGE": "Դուք այժմ կարող եք հաղորդակցվել ձեր հաճախորդների հետ նոր ալիքի միջոցով։ Հաջող աջակցություն",
+ "BUTTON_TEXT": "Տանեք ինձ այնտեղ",
+ "MORE_SETTINGS": "Ավելին կարգավորումներ",
+ "WEBSITE_SUCCESS": "Դուք հաջողությամբ ավարտել եք վեբկայքի ալիքի ստեղծումը։ Պատճենեք ստորև ներկայացված կոդը և տեղադրեք ձեր վեբկայքում։ Հաջորդ անգամ, երբ հաճախորդը օգտագործի ուղիղ զրույցը, զրույցը ավտոմատ կհայտնվի ձեր զամբյուղում։",
+ "WHATSAPP_QR_INSTRUCTION": "Սկանավորեք վերևի QR կոդը՝ արագ փորձարկելու ձեր WhatsApp մուտքը",
+ "MESSENGER_QR_INSTRUCTION": "Սկանավորեք վերևի QR կոդը՝ արագ փորձարկելու ձեր Facebook Messenger մուտքը",
+ "TELEGRAM_QR_INSTRUCTION": "Սկանավորեք վերևի QR կոդը՝ արագ փորձարկելու ձեր Telegram մուտքը"
},
- "REAUTH": "Reauthorize",
- "VIEW": "View",
+ "REAUTH": "Վերահաստատել",
+ "VIEW": "Դիտել",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Inbox settings updated successfully",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "Զամբյուղի կարգավորումները հաջողությամբ թարմացվեցին",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Ավտոմատ նշանակումը հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել նամակների արկղի կարգավորումները։ Խնդրում ենք փորձել ավելի ուշ։"
},
"EMAIL_COLLECT_BOX": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Միացված",
+ "DISABLED": "Անջատված"
},
"ENABLE_CSAT": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Միացված",
+ "DISABLED": "Անջատված"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "Ուղարկողի անուն",
+ "SUB_TEXT": "Ընտրեք այն անունը, որը կցուցադրվի ձեր հաճախորդին, երբ նրանք ստանան էլ. փոստ ձեր գործակալներից։",
+ "FOR_EG": "Օրինակ՝",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "Ընկերական",
+ "FROM": "հետ",
+ "SUBTITLE": "Ավելացրեք պատասխան ուղարկող գործակալի անունը ուղարկողի անվան մեջ, որպեսզի այն ընկերական լինի։"
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "Մասնագիտական",
+ "SUBTITLE": "Օգտագործեք միայն կարգավորված բիզնեսի անունը որպես ուղարկողի անուն էլփոստի վերնագրում։"
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "Կարգավորեք ձեր բիզնեսի անունը",
+ "PLACEHOLDER": "Մուտքագրեք ձեր բիզնեսի անունը",
+ "SAVE_BUTTON_TEXT": "Պահպանել"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Միացված",
+ "DISABLED": "Անջատված"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Միացված",
+ "DISABLED": "Անջատված"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Վերաբացել նույն զրույցը",
+ "DISABLED": "Ստեղծել նոր զրույցներ",
+ "ENABLED_DESCRIPTION": "Երբ կոնտակտը կրկին հաղորդագրություն է ուղարկում, նախորդ զրույցը կվերաբացվի։",
+ "DISABLED_DESCRIPTION": "Նոր զրույց կստեղծվի յուրաքանչյուր անգամ նախորդը լուծվելուց հետո։"
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "Միացնել"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "BUTTON_TEXT": "Ջնջել",
+ "AVATAR_DELETE_BUTTON_TEXT": "Ջնջել Ավատարը",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "Հաստատել ջնջումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել ",
+ "PLACE_HOLDER": "Խնդրում ենք մուտքագրել {inboxName} հաստատելու համար",
+ "YES": "Այո, ջնջել ",
+ "NO": "Ոչ, պահել "
},
"API": {
- "SUCCESS_MESSAGE": "Inbox deleted successfully",
- "ERROR_MESSAGE": "Could not delete inbox. Please try again later.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "Զամբյուղը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել զամբյուղը։ Խնդրում ենք փորձել ավելի ուշ։",
+ "AVATAR_SUCCESS_MESSAGE": "Ինբոքսի ավատարը հաջողությամբ ջնջվեց",
+ "AVATAR_ERROR_MESSAGE": "Չհաջողվեց ջնջել ինբոքսի ավատարը։ Խնդրում ենք փորձել ավելի ուշ։"
}
},
"TABS": {
- "SETTINGS": "Settings",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "SETTINGS": "Կարգավորումներ",
+ "COLLABORATORS": "Համագործակիցներ",
+ "CONFIGURATION": "Կոնֆիգուրացիա",
+ "CAMPAIGN": "Կարևոր արշավներ",
+ "PRE_CHAT_FORM": "Զրուցից առաջ ձև",
+ "BUSINESS_HOURS": "Բիզնեսի ժամեր",
+ "WIDGET_BUILDER": "Վիջեթի կառուցող",
+ "BOT_CONFIGURATION": "Բոտի կարգավորումներ",
+ "ACCOUNT_HEALTH": "Հաշվի առողջություն",
+ "CSAT": "CSAT",
+ "VOICE": "Ձայն",
+ "CALLS": "Calls"
},
- "SETTINGS": "Settings",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Անվճարների նախապատվություններ",
+ "WIDGET_FEATURES": "Վիջեթի հնարավորություններ",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Կառավարեք ձեր WhatsApp հաշիվը",
+ "DESCRIPTION": "Դիտարկեք ձեր WhatsApp հաշվի կարգավիճակը, հաղորդագրությունների սահմանները և որակը։ Թարմացրեք կարգավորումները կամ լուծեք խնդիրները, եթե անհրաժեշտ է",
+ "GO_TO_SETTINGS": "Գնալ Meta Business Manager",
+ "NO_DATA": "Առողջության տվյալները հասանելի չեն",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Ցուցադրել հեռախոսահամարը",
+ "TOOLTIP": "Հեռախոսահամարը, որը ցուցադրվում է հաճախորդներին"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Բիզնեսի անուն",
+ "TOOLTIP": "Բիզնեսի անունը հաստատված է WhatsApp-ով"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Ցուցադրման անվան կարգավիճակ",
+ "TOOLTIP": "Ձեր բիզնեսի անվան հաստատման կարգավիճակը"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Որակի գնահատական",
+ "TOOLTIP": "Ձեր հաշվի WhatsApp որակի գնահատականը"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Հաղորդագրությունների սահմանաչափի մակարդակ",
+ "TOOLTIP": "Ձեր հաշվի օրական հաղորդագրությունների սահմանաչափ"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Հաշվի ռեժիմ",
+ "TOOLTIP": "Ձեր WhatsApp հաշվի ընթացիկ գործառնական ռեժիմը"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 հաճախորդ 24h-ում",
+ "TIER_1000": "1K հաճախորդ 24h-ում",
+ "TIER_1K": "1K հաճախորդ 24h-ում",
+ "TIER_10K": "10K հաճախորդ 24h-ում",
+ "TIER_100K": "100K հաճախորդ 24h-ում",
+ "TIER_UNLIMITED": "Անսահմանափակ հաճախորդ 24h-ում",
+ "UNKNOWN": "Գնահատականը հասանելի չէ"
+ },
+ "STATUSES": {
+ "APPROVED": "Հաստատված",
+ "PENDING_REVIEW": "Սպասում է վերանայմանը",
+ "AVAILABLE_WITHOUT_REVIEW": "Հասանելի առանց վերանայման",
+ "REJECTED": "Մերժված",
+ "DECLINED": "Մերժվել է",
+ "NON_EXISTS": "Չկա"
+ },
+ "MODES": {
+ "SANDBOX": "Փորձարկման միջավայր",
+ "LIVE": "Ուղիղ ռեժիմ"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook-ի կարգավորում",
+ "DESCRIPTION": "Webhook URL-ը անհրաժեշտ է ձեր WhatsApp Business հաշվի համար՝ հաճախորդներից հաղորդագրություններ ստանալու համար",
+ "ACTION_REQUIRED": "Webhook-ը կարգավորված չէ",
+ "REGISTER_BUTTON": "Գրանցել Webhook",
+ "REGISTER_SUCCESS": "Webhook-ը հաջողությամբ գրանցվեց",
+ "REGISTER_ERROR": "Webhook-ի գրանցումը ձախողվեց։ Խնդրում ենք փորձել կրկին։",
+ "CONFIGURED_SUCCESS": "Webhook-ը հաջողությամբ կարգավորվեց",
+ "URL_MISMATCH": "Webhook URL-ի անհամապատասխանություն"
+ }
+ },
+ "SETTINGS": "Կարգավորումներ",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "LABEL": "Հատկություններ",
+ "DISPLAY_FILE_PICKER": "Ցուցադրել ֆայլերի ընտրիչը վիջեթում",
+ "DISPLAY_EMOJI_PICKER": "Ցուցադրել էմոջի ընտրիչը վիջեթում",
+ "ALLOW_END_CONVERSATION": "Թույլատրել օգտատերերին ավարտել զրույցը վիջեթից",
+ "USE_INBOX_AVATAR_FOR_BOT": "Օգտագործել մուտքի անունն ու պատկերակը բոտի համար"
},
"SETTINGS_POPUP": {
- "MESSENGER_HEADING": "Messenger Script",
- "MESSENGER_SUB_HEAD": "Place this button inside your body tag",
- "INBOX_AGENTS": "Agents",
- "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
- "UPDATE": "Update",
- "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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
- "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
- "HMAC_VERIFICATION": "User Identity Validation",
+ "MESSENGER_HEADING": "Հաղորդագրիչի սցենար",
+ "MESSENGER_SUB_HEAD": "Տեղադրեք այս կոճակը ձեր body թեգի ներսում",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Թույլատրված տիրույթներ",
+ "DESCRIPTION": "Սահմանափակեք, թե որ կայքերն են կարողանում տեղադրել ձեր զրույցի վիջեթը: Անվտանգության համար ավելացրեք միայն այն դոմեյնները, որոնք պատկանում են ձեզ և որոնց վստահում եք: Ավելացրեք մեկ կամ ավելի դոմեյններ՝ բաժանված ստորակետերով: Թողեք դատարկ՝ թույլ տալու բոլոր դոմեյնները (չի խորհուրդրվում արտադրության համար)։",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Միացնել վիջեթը շարժական հավելվածներում",
+ "SUBTITLE": "Մշակեք այս տարբերակը, եթե վիջեթը տեղադրում եք iOS կամ Android հավելվածներում։ Շարժական հավելվածները չեն ուղարկում դոմեյնի տեղեկություններ, ուստի դրանք կարգելափակվեն դոմեյնների սահմանափակումների կողմից, եթե այս տարբերակը միացված չէ։"
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Հայտնության հաստատում",
+ "DESCRIPTION": "Հաստատեք օգտվողի իսկությունը՝ ստեղծելով անվտանգ տոկեններ։ Սա կանխում է չարտոնված օգտվողների կողմից ուրիշների անվան տակ զրույցներ վարելը։",
+ "SECRET_KEY": "Գաղտնի բանալի",
+ "VIEW_DOCS": "Դիտել փաստաթղթերը",
+ "REQUIRE_LABEL": "Պահանջել հայտնության հաստատում բոլոր զրույցների համար",
+ "REQUIRE_DESCRIPTION": "Երբ ակտիվացված է, օգտատերերը պետք է տրամադրեն վավեր ինքնության տոկեն՝ զրույց սկսելու համար։ Հարցումները, որոնք չունեն վավեր տոկեններ, մերժվելու են։"
+ },
+ "INBOX_AGENTS": "Գործակալներ",
+ "INBOX_AGENTS_SUB_TEXT": "Ավելացնել կամ հեռացնել գործակալներ այս զամբյուղից",
+ "AGENT_ASSIGNMENT": "Զրույցի նշանակում",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "Թարմացնել զրույցի նշանակման կարգավորումները",
+ "UPDATE": "Թարմացնել",
+ "ENABLE_EMAIL_COLLECT_BOX": "Միացնել էլփոստի հավաքման տուփը",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Միացնել կամ անջատել էլփոստի հավաքման տուփը նոր զրույցում",
+ "AUTO_ASSIGNMENT": "Միացնել ավտոմատ նշանակումը",
+ "SENDER_NAME_SECTION": "Միացնել գործակալի անունը էլփոստում",
+ "SENDER_NAME_SECTION_TEXT": "Միացնել/անջատել գործակալի անունի ցուցադրումը էլփոստում, եթե անջատված է, կցուցադրվի բիզնեսի անունը",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "Միացնել զրույցի շարունակականությունը էլ. փոստով",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Զրույցները կշարունակվեն էլ. փոստով, եթե կոնտակտի էլ. փոստի հասցեն հասանելի է։",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Զրույցների ուղղորդում",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Կարգավորեք զրույցների ստեղծումը գոյություն ունեցող կոնտակտների համար",
+ "INBOX_UPDATE_TITLE": "Զամբյուղի կարգավորումներ",
+ "INBOX_UPDATE_SUB_TEXT": "Թարմացրեք ձեր զամբյուղի կարգավորումները",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "Միացրեք կամ անջատեք նոր զրույցների ավտոմատ նշանակումը այս զամբյուղին ավելացված գործակալներին։",
+ "HMAC_VERIFICATION": "Օգտագործողի նույնականացման ստուգում",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "Կարդացեք ավելին այստեղ։",
+ "HMAC_MANDATORY_VERIFICATION": "Կիրառել օգտվողի նույնականացման ստուգումը",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
- "WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "INBOX_IDENTIFIER": "Ինբոքսի նույնականիչ",
+ "INBOX_IDENTIFIER_SUB_TEXT": "Օգտագործեք այստեղ ցուցադրված `inbox_identifier` տոկենը՝ ձեր API հաճախորդների նույնականացման համար։",
+ "FORWARD_EMAIL_TITLE": "Ուղղարկել էլփոստին",
+ "FORWARD_EMAIL_SUB_TEXT": "Սկսեք ձեր էլփոստերը ուղարկել հետևյալ էլփոստի հասցեին։",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Էլ. փոստերի փոխանցումը ձեր մուտքագրման արկղին այս պահին անջատված է այս տեղադրման վրա։ Այս ֆունկցիան օգտագործելու համար այն պետք է միացվի ձեր ադմինիստրատորի կողմից։ Խնդրում ենք կապ հաստատել նրանց հետ շարունակելու համար։",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "Թույլատրել հաղորդագրություններ զրույցի լուծումից հետո",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Թույլատրել վերջնական օգտվողներին հաղորդագրություններ ուղարկել նույնիսկ զրույցի լուծումից հետո։",
+ "WHATSAPP_SECTION_SUBHEADER": "Այս API բանալին օգտագործվում է WhatsApp API-ների ինտեգրման համար։",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Մուտքագրեք նոր API բանալին, որը կօգտագործվի WhatsApp API-ների հետ ինտեգրման համար։",
+ "WHATSAPP_SECTION_TITLE": "API բանալին",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Թարմացնել API բանալին",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Մուտքագրեք նոր API բանալին այստեղ",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "Թարմացնել",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp-ի ներառված գրանցում",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "Այս մուտքի արկղը միացված է WhatsApp-ի ներառված գրանցման միջոցով։",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "Դուք կարող եք վերակազմակերպել այս մուտքի արկղը՝ թարմացնելու ձեր WhatsApp Business կարգավորումները։",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Վերակազմակերպել",
+ "WHATSAPP_CONNECT_TITLE": "Կապվել WhatsApp Business-ի հետ",
+ "WHATSAPP_CONNECT_SUBHEADER": "Թարմացեք WhatsApp-ի ներկառուցված գրանցմանը՝ ավելի հեշտ կառավարման համար։",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Կապեք այս մուտքի արկղը WhatsApp Business-ի հետ՝ բարելավված հնարավորություններով և ավելի հեշտ կառավարման համար։",
+ "WHATSAPP_CONNECT_BUTTON": "Կապվել",
+ "WHATSAPP_CONNECT_SUCCESS": "Հաջողությամբ միացվեց WhatsApp Business-ին։",
+ "WHATSAPP_CONNECT_ERROR": "Չհաջողվեց միանալ WhatsApp Business-ին։ Խնդրում ենք փորձել կրկին։",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Հաջողությամբ վերակազմակերպվեց WhatsApp Business-ը։",
+ "WHATSAPP_RECONFIGURE_ERROR": "Չհաջողվեց վերակազմակերպել WhatsApp Business-ը։ Խնդրում ենք փորձել կրկին։",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp հավելվածի ID-ն կարգավորված չէ։ Խնդրում ենք կապ հաստատել ձեր ադմինիստրատորի հետ։",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp կարգավորման ID-ն կարգավորված չէ։ Խնդրում ենք կապ հաստատել ձեր ադմինիստրատորի հետ։",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp մուտքը չեղարկվեց։ Խնդրում ենք փորձել կրկին։",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook-ի Վերահսկման Տոկեն",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "Այս տոկենը օգտագործվում է webhook endpoint-ի իսկությունը հաստատելու համար։",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Սինխրոնացնել ձևանմուշները",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Ձեռնարկաբար համաժամեցրեք հաղորդագրությունների տիպերը WhatsApp-ից՝ ձեր հասանելի տիպերը թարմացնելու համար։",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Համաժամեցնել տիպերը",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Տիպերի համաժամացումը հաջողությամբ սկսվեց։ Թարմացումը կարող է տևել մի քանի րոպե։",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Թարմացնել նախազրույցի ձևի կարգավորումները"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "Օգնության կենտրոն",
+ "PLACEHOLDER": "Ընտրեք Օգնության կենտրոնը",
+ "SELECT_PLACEHOLDER": "Ընտրեք Օգնության կենտրոնը",
+ "NONE": "Ոչ մեկը",
+ "REMOVE": "Հեռացնել Օգնության կենտրոնը",
+ "SUB_TEXT": "Կցեք Օգնության կենտրոնը մուտքին"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "Ավտոմատ նշանակման սահմանաչափ",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Խնդրում ենք մուտքագրել 0-ից մեծ արժեք",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Սահմանափակել այս նամակների արկղից ավտոմատ նշանակվող զրույցների առավելագույն քանակը գործակալին"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "Հաղորդակցության հանձնարարում",
+ "DESCRIPTION": "Ավտոմատ կերպով նշանակեք ներթափանցող զրույցները հասանելի գործակալներին՝ հիմնվելով նշանակման քաղաքականությունների վրա",
+ "ENABLE_AUTO_ASSIGNMENT": "Միացնել զրույցների ավտոմատ նշանակումը",
+ "DEFAULT_RULES_TITLE": "Նախնական նշանակման կանոններ",
+ "DEFAULT_RULES_DESCRIPTION": "Օգտագործել նախնական նշանակման վարքագիծը բոլոր զրույցների համար",
+ "DEFAULT_RULE_1": "Առաջին հերթին՝ ամենահին ստեղծված զրույցները",
+ "DEFAULT_RULE_2": "Շրջանաձև բաշխում",
+ "CUSTOMIZE_WITH_POLICY": "Անհատականացնել նշանակման քաղաքականությամբ",
+ "USING_POLICY": "Այս մուտքի համար օգտագործվում է անհատական նշանակման քաղաքականություն",
+ "CUSTOMIZE_POLICY": "Անհատականացնել նշանակման քաղաքականությամբ",
+ "DELETE_POLICY": "Ջնջել քաղաքականությունը",
+ "POLICY_LABEL": "Վերաբաշխման քաղաքականություն",
+ "ASSIGNMENT_ORDER_LABEL": "Վերաբաշխման կարգ",
+ "ASSIGNMENT_METHOD_LABEL": "Վերաբաշխման մեթոդ",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ակտիվ",
+ "INACTIVE": "Անգործուն"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Ավելի վաղ ստեղծված",
+ "LONGEST_WAITING": "Ամենաերկար սպասող"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Շրջանաձև հերթափոխ",
+ "BALANCED": "Համաչափ հանձնարարում"
+ },
+ "UPGRADE_PROMPT": "Հատուկ հանձնարարումների քաղաքականությունները հասանելի են Բիզնես պլանում",
+ "UPGRADE_TO_BUSINESS": "Թարմացնել դեպի Business",
+ "DEFAULT_POLICY_LINKED": "Նախնական քաղաքականությունը կապված է",
+ "DEFAULT_POLICY_DESCRIPTION": "Կապեք հարմարեցված նշանակման քաղաքականություն՝ հարմարեցնելու, թե ինչպես են զրույցները նշանակվում գործակալներին այս մուտքի արկղում։",
+ "LINK_EXISTING_POLICY": "Կապել գոյություն ունեցող քաղաքականությունը",
+ "CREATE_NEW_POLICY": "Ստեղծել նոր քաղաքականություն",
+ "NO_POLICIES": "Առանձնացման քաղաքականություններ չեն գտնվել",
+ "VIEW_ALL_POLICIES": "Դիտել բոլոր քաղաքականությունները",
+ "CURRENT_BEHAVIOR": "Ընթացիկ օգտագործվում է նախնական առանձնացման վարքագիծը:",
+ "LINK_SUCCESS": "Առանձնացման քաղաքականությունը հաջողությամբ կապվեց",
+ "LINK_ERROR": "Չհաջողվեց կապել առանձնացման քաղաքականությունը"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Հեռացնել նշանակման քաղաքականությունը:",
+ "DELETE_CONFIRM_MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք հեռացնել այս նշանակման քաղաքականությունը այս մուտքի արկղից: Մուտքի արկղը կվերադառնա նախնական նշանակման կանոններին։",
+ "CANCEL": "Չեղարկել",
+ "CONFIRM_DELETE": "Հեռացնել",
+ "DELETE_SUCCESS": "Նշանակման քաղաքականությունը հաջողությամբ հեռացվեց",
+ "DELETE_ERROR": "Չհաջողվեց հեռացնել նշանակման քաղաքականությունը"
},
"FACEBOOK_REAUTHORIZE": {
- "TITLE": "Reauthorize",
- "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
- "MESSAGE_ERROR": "There was an error, please try again"
+ "TITLE": "Վերահավատարմագրվել",
+ "SUBTITLE": "Ձեր Facebook կապը ժամկետանց է, խնդրում ենք կրկին միացնել ձեր Facebook էջը՝ ծառայությունները շարունակելու համար",
+ "MESSAGE_SUCCESS": "Կապը հաջողությամբ վերականգնվեց",
+ "MESSAGE_ERROR": "Սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "Զրուցից առաջ ձևերը թույլ են տալիս հավաքել օգտվողի տեղեկություններ նախքան զրույցի սկսելը։",
+ "SET_FIELDS": "Զրուցի նախնական ձևի դաշտեր",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "Դաշտեր",
+ "LABEL": "Նշում",
+ "PLACE_HOLDER": "Տեղապահ տեքստ",
+ "KEY": "Բանալի",
+ "TYPE": "Տիպ",
+ "REQUIRED": "Պարտադիր է"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "Միացնել զրուցից առաջ ձևը",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "Այո",
+ "DISABLED": "Ոչ"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "Զրուցի նախնական հաղորդագրություն",
+ "PLACEHOLDER": "Այս հաղորդագրությունը տեսանելի կլինի օգտվողներին միասին ձևի հետ"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "Այցելուները պետք է տրամադրեն իրենց անունն ու էլփոստի հասցեն զրույցի սկսելուց առաջ"
+ }
+ },
+ "CSAT": {
+ "TITLE": "Միացնել CSAT",
+ "SUBTITLE": "Ավտոմատ կերպով սկսեք CSAT հարցումներ զրույցների ավարտին՝ հասկանալու համար, թե ինչպես են հաճախորդները գնահատում իրենց աջակցման փորձը։ Հետևեք գոհունակության միտումներին և հայտնաբերեք բարելավման ոլորտները ժամանակի ընթացքում։",
+ "DISPLAY_TYPE": {
+ "LABEL": "Ցուցադրման տեսակ"
+ },
+ "MESSAGE": {
+ "LABEL": "Հաղորդագրություն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել հաղորդագրություն, որը կցուցադրվի օգտատերերին ձևի հետ միասին"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Կոճակի տեքստ",
+ "PLACEHOLDER": "Խնդրում ենք գնահատել մեզ"
+ },
+ "LANGUAGE": {
+ "LABEL": "Լեզու",
+ "PLACEHOLDER": "Ընտրեք տպագրության լեզուն"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Հաղորդագրության նախադիտում",
+ "TOOLTIP": "Սա կարող է փոքր-ինչ տարբերվել WhatsApp-ի հարթակում ցուցադրման ժամանակ։"
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Հաստատված է WhatsApp-ի կողմից",
+ "PENDING": "Սպասում է WhatsApp-ի հաստատմանը",
+ "REJECTED": "Meta-ն մերժեց ձևանմուշը",
+ "DEFAULT": "Պահանջվում է WhatsApp-ի հաստատում",
+ "NOT_FOUND": "Ձևանմուշը գոյություն չունի Meta հարթակում։"
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp ձևանմուշը հաջողությամբ ստեղծվեց և ուղարկվեց հաստատման համար",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել WhatsApp ձևանմուշը"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Խմբագրել հարցման մանրամասները",
+ "DESCRIPTION": "Մենք կջնջենք նախորդ ձևանմուշը և կստեղծենք նոր, որը կրկին կուղարկվի WhatsApp-ի հաստատման համար",
+ "CONFIRM": "Ստեղծել նոր ձևանմուշ",
+ "CANCEL": "Վերադառնալ"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Ստուգել օգտակարության համապատասխանությունը",
+ "HELPER_NOTE": "Նախքան ուղարկումը ստուգեք այս հաղորդագրությունը՝ օգտակարության համապատասխանությունը բարելավելու համար։ Համակարգը ստեղծում է հատուկ CSAT ձևանմուշ՝ զեկուցման կոճակներով և ուղարկում որպես օգտակարություն։ Meta-ն կարող է այն դեռ դասակարգել որպես մարքեթինգ՝ հիմնվելով բովանդակության վրա։",
+ "RESULT_LABEL": "Meta կատեգորիայի կանխատեսում",
+ "GUIDANCE_NOTE": "Սա ուղղորդիչ ստուգում է, ոչ Meta-ի հաստատման երաշխիք։",
+ "SUGGESTION_LABEL": "Առաջարկվող օգտակարության անվտանգ վերագրանցում",
+ "APPLY": "Օգտագործել այս վերագրանցումը",
+ "ERROR_MESSAGE": "Հաղորդագրությունը վերլուծել հնարավոր չեղավ։ Խնդրում ենք փորձել կրկին։",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Հավանական օգտակարություն",
+ "LIKELY_MARKETING": "Հավանական մարքեթինգ",
+ "UNCLEAR": "Պետք է հստակեցում"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Հարցման կանոն",
+ "DESCRIPTION_PREFIX": "Ուղարկել հարցումը, եթե զրույցը",
+ "DESCRIPTION_SUFFIX": "միայնակ որևէ պիտակների",
+ "OPERATOR": {
+ "CONTAINS": "պարունակում է",
+ "DOES_NOT_CONTAINS": "չի պարունակում"
+ },
+ "SELECT_PLACEHOLDER": "ընտրեք պիտակները"
+ },
+ "NOTE": "Նշում․ CSAT հարցումները ուղարկվում են միայն մեկ անգամ յուրաքանչյուր զրույցի ընթացքում",
+ "WHATSAPP_NOTE": "Նշում․ Երբ պահում եք, համակարգը ստեղծում է հատուկ CSAT ձևանմուշ WhatsApp-ում (օգտագործվում է գնահատականը և արձագանքը հավաքելու համար զեկույցներում) և ուղարկում այն որպես Օգտակարություն հաստատման։ Meta-ն կարող է այն դասակարգել որպես Մարքեթինգ՝ հիմնվելով բովանդակության վրա։ Հաստատումից հետո հարցումները ուղարկվում են միայն մեկ անգամ յուրաքանչյուր զրույցի համար՝ համաձայն հարցման կանոնի։",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT կարգավորումները հաջողությամբ թարմացվեցին",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել CSAT կարգավորումները։ Խնդրում ենք փորձել կրկին հետո։"
}
},
"BUSINESS_HOURS": {
- "TITLE": "Set your availability",
- "SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "Սահմանեք ձեր մատչելիությունը",
+ "SUBTITLE": "Սահմանեք ձեր մատչելիությունը կենդանի զրույցի վիջեթում",
+ "WEEKLY_TITLE": "Սահմանեք ձեր շաբաթական ժամերը",
+ "TIMEZONE_LABEL": "Ընտրել ժամանակային գոտին",
+ "UPDATE": "Թարմացնել բիզնեսի ժամերի կարգավորումները",
+ "TOGGLE_AVAILABILITY": "Միացնել բիզնեսի մատչելիությունը այս ինբոքսի համար",
+ "UNAVAILABLE_MESSAGE_LABEL": "Այցելուների համար անհասանելի հաղորդագրություն",
+ "TOGGLE_HELP": "Բիզնեսի մատչելիությունը միացնելիս, մատչելի ժամերը կցուցադրվեն կենդանի զրույցի վիջեթում, նույնիսկ եթե բոլոր գործակալները օֆլայն են։ Մատչելի ժամերից դուրս այցելուներին հնարավոր է զգուշացնել հաղորդագրությամբ և նախազրույցի ձևով։",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "Օր",
+ "AVAILABILITY": "Հասանելիություն",
+ "HOURS": "Ժամեր",
+ "ENABLE": "Միացնել մատչելիությունը այս օրը",
+ "UNAVAILABLE": "Չմատչելի",
+ "VALIDATION_ERROR": "Սկսման ժամանակը պետք է լինի փակման ժամանակից առաջ։",
+ "CHOOSE": "Ընտրել"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "Ամբողջ օրը"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "Կարգավորեք ձեր IMAP մանրամասները",
+ "NOTE_TEXT": "SMTP-ն ակտիվացնելու համար խնդրում ենք կարգավորել IMAP-ը։",
+ "UPDATE": "Թարմացնել IMAP կարգավորումները",
+ "TOGGLE_AVAILABILITY": "Միացնել IMAP կարգավորումը այս նամակների արկղի համար",
+ "TOGGLE_HELP": "IMAP-ի միացումը կօգնի օգտատիրոջը ստանալ էլ. փոստ",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP կարգավորումները հաջողությամբ թարմացվեցին",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել IMAP կարգավորումները"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "Հասցե",
+ "PLACE_HOLDER": "Հասցե (օրինակ՝ imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "Պորտ",
+ "PLACE_HOLDER": "Պորտ"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "Մուտքագրում",
+ "PLACE_HOLDER": "Մուտքագրում"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "Գաղտնաբառ",
+ "PLACE_HOLDER": "Գաղտնաբառ"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Միացնել SSL",
+ "AUTH_MECHANISM": "Հավաստագրում"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Վերականգնել MICROSOFT հաշվի թույլտվությունը"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "Կարգավորեք ձեր SMTP մանրամասները",
+ "UPDATE": "Թարմացնել SMTP կարգավորումները",
+ "TOGGLE_AVAILABILITY": "Միացնել SMTP կարգավորումը այս նամակների արկղի համար",
+ "TOGGLE_HELP": "SMTP-ի միացումը կօգնի օգտվողին էլ. փոստ ուղարկել",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP կարգավորումները հաջողությամբ թարմացվեցին",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել SMTP կարգավորումները"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "Հասցե",
+ "PLACE_HOLDER": "Հասցե (օրինակ՝ smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "Պորտ",
+ "PLACE_HOLDER": "Պորտ"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "Մուտքագրում",
+ "PLACE_HOLDER": "Մուտքագրում"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "Գաղտնաբառ",
+ "PLACE_HOLDER": "Գաղտնաբառ"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "Դոմեն",
+ "PLACE_HOLDER": "Դոմեն"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "Կոդավորում",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "OpenSSL հաստատման ռեժիմ",
+ "AUTH_MECHANISM": "Հավաստագրում"
},
- "NOTE": "Note: ",
+ "NOTE": "Նշում՝ ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "Կայքի Ավատար",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "Ավատարը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Սխալ տեղի ունեցավ, խնդրում ենք փորձել կրկին"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "LABEL": "Կայքի անուն",
+ "PLACE_HOLDER": "Մուտքագրեք ձեր կայքի անունը (օրինակ՝ Acme Inc)",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր կայքի անուն"
},
"WELCOME_HEADING": {
- "LABEL": "Welcome Heading",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "Բարի գալուստ վերնագիր",
+ "PLACE_HOLDER": "Բարև ձեզ։"
},
"WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "Բարի գալուստ տող",
+ "PLACE_HOLDER": "Մենք հեշտացնում ենք կապ հաստատելը։ Հարցրեք մեզ ինչ-որ բան կամ կիսվեք ձեր կարծիքով։"
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "Պատասխանելու ժամանակ",
+ "IN_A_FEW_MINUTES": "Մի քանի րոպեում",
+ "IN_A_FEW_HOURS": "Մի քանի ժամում",
+ "IN_A_DAY": "Մեկ օրվա ընթացքում"
},
- "WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_COLOR_LABEL": "Վիջեթի գույն",
+ "WIDGET_BUBBLE": "Փուչիկ",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Դիրք:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Տեսակ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
- "DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
- "PLACE_HOLDER": "Chat with us"
+ "DEFAULT": "Զրուցել մեզ հետ",
+ "LABEL": "Սկիզբի Վերնագիր",
+ "PLACE_HOLDER": "Զրուցել մեզ հետ"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "Թարմացնել վիջեթի կարգավորումները",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "Վիջեթի կարգավորումները հաջողությամբ թարմացվեցին",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել վիջեթի կարգավորումները"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "Նախադիտում",
+ "SCRIPT": "Սցենար"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "Ձախ",
+ "RIGHT": "Աջ"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "Ստանդարտ",
+ "EXPANDED_BUBBLE": "Ընդլայնված փուչիկ"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "Նախնական",
+ "CHAT": "Զրույցի ռեժիմ"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "Typically replies in a few minutes",
- "IN_A_FEW_HOURS": "Typically replies in a few hours",
- "IN_A_DAY": "Typically replies in a day"
+ "IN_A_FEW_MINUTES": "Հաճախ պատասխանում է մի քանի րոպեում",
+ "IN_A_FEW_HOURS": "Հաճախ պատասխանում է մի քանի ժամում",
+ "IN_A_DAY": "Հաճախ պատասխանում է մեկ օրվա ընթացքում"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Start Conversation",
- "CHAT_INPUT_PLACEHOLDER": "Type your message"
+ "START_CONVERSATION_BUTTON_TEXT": "Սկսել զրույցը",
+ "CHAT_INPUT_PLACEHOLDER": "Մուտքագրեք ձեր հաղորդագրությունը"
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "We are away at the moment"
+ "ONLINE": "Մենք առցանց ենք",
+ "OFFLINE": "Մենք այս պահին հեռու ենք"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "Բարև",
+ "AGENT_MESSAGE": "Բարև ձեզ"
},
- "BRANDING_TEXT": "Powered by Chatwoot",
+ "BRANDING_TEXT": "Շահագործվում է Chatwoot-ով",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Միացրեք Microsoft-ին"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Կապվել Google-ի հետ"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Այլ մատակարարներ",
+ "DESCRIPTION": "Կապվել այլ մատակարարների հետ"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Կայք",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Էլ. փոստ",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API ալիք",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Ձայն"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/index.js b/app/javascript/dashboard/i18n/locale/hy/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/hy/index.js
+++ b/app/javascript/dashboard/i18n/locale/hy/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/integrations.json b/app/javascript/dashboard/i18n/locale/hy/integrations.json
index 45587f2db..0dc4b0570 100644
--- a/app/javascript/dashboard/i18n/locale/hy/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/hy/integrations.json
@@ -1,213 +1,1103 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Ջնջել Shopify ինտեգրումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել Shopify ինտեգրումը։"
+ },
+ "STORE_URL": {
+ "TITLE": "Միացնել Shopify խանութը",
+ "LABEL": "Խանութի URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Մուտքագրեք ձեր Shopify խանութի myshopify.com URL-ը",
+ "CANCEL": "Չեղարկել",
+ "SUBMIT": "Միացնել խանութը"
+ },
+ "ERROR": "Սխալ է տեղի ունեցել Shopify-ին միանալու ժամանակ։ Խնդրում ենք փորձել կրկին կամ կապվել աջակցման ծառայության հետ, եթե խնդիրը շարունակվի։"
+ },
+ "HEADER": "Ինտեգրացիաներ",
+ "DESCRIPTION": "Chatwoot ինտեգրվում է բազմաթիվ գործիքների և ծառայությունների հետ՝ բարելավելու ձեր թիմի արդյունավետությունը։ Ստորև դիտեք ցանկը՝ ձեր սիրելի հավելվածները կարգավորելու համար։",
+ "LEARN_MORE": "Իմացեք ավելին ինտեգրացիաների մասին",
+ "LOADING": "Ինտեգրացիաները բեռնվում են",
+ "SEARCH_PLACEHOLDER": "Որոնել ինտեգրացիաներ...",
+ "NO_RESULTS": "Ձեր որոնմանը համապատասխան ինտեգրացիաներ չեն գտնվել",
+ "CAPTAIN": {
+ "DISABLED": "Captain-ը ձեր հաշվում ակտիվացված չէ։",
+ "CLICK_HERE_TO_CONFIGURE": "Սեղմեք այստեղ կարգավորելու համար",
+ "LOADING_CONSOLE": "Բեռնվում է Captain կոնսոլը...",
+ "FAILED_TO_LOAD_CONSOLE": "Չհաջողվեց բեռնել Captain կոնսոլը։ Խնդրում ենք թարմացնել և փորձել կրկին։"
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "Բաժանորդագրված իրադարձություններ",
+ "LEARN_MORE": "Իմացեք ավելին webhook-ների մասին",
+ "SECRET": {
+ "LABEL": "Գաղտնաբառ",
+ "COPY": "Պատճենել գաղտնաբառը",
+ "COPY_SUCCESS": "Գաղտնաբառը պատճենվել է",
+ "TOGGLE": "Ցուցադրել/թաքցնել գաղտնաբառը",
+ "CREATED_DESC": "Ձեր webhook-ը ստեղծվել է։ Օգտագործեք ներքևի գաղտնաբառը՝ webhook-ի ստորագրությունները ստուգելու համար։ Խնդրում ենք այն պատճենել հիմա՝ այն կարող եք գտնել նաև webhook-ի խմբագրման ձևում։",
+ "DONE": "Պատրաստ է"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Որոնել webhook-ներ...",
+ "NO_RESULTS": "Ձեր որոնմանը համապատասխան webhook-ներ չեն գտնվել",
"FORM": {
- "CANCEL": "Cancel",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
+ "CANCEL": "Չեղարկել",
+ "DESC": "Webhook իրադարձությունները ձեզ տրամադրում են իրական ժամանակի տեղեկություններ այն մասին, թե ինչ է տեղի ունենում ձեր Chatwoot հաշվում։ Խնդրում ենք մուտքագրել վավեր URL՝ callback կարգավորելու համար։",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "Իրադարձություններ",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "Հաղորդակցություն ստեղծվեց",
+ "CONVERSATION_STATUS_CHANGED": "Հաղորդակցության կարգավիճակը փոխվեց",
+ "CONVERSATION_UPDATED": "Հաղորդակցությունը թարմացվեց",
+ "MESSAGE_CREATED": "Հաղորդագրություն ստեղծվեց",
+ "MESSAGE_UPDATED": "Հաղորդագրությունը թարմացվեց",
+ "WEBWIDGET_TRIGGERED": "Օգտատիրոջ կողմից բացված կենդանի զրույցի վիջեթ",
+ "CONTACT_CREATED": "Կոնտակտ ստեղծվեց",
+ "CONTACT_UPDATED": "Կոնտակտը թարմացվեց",
+ "CONVERSATION_TYPING_ON": "Զրույցի տպագրություն ակտիվ է",
+ "CONVERSATION_TYPING_OFF": "Զրույցի տպագրություն անջատված է",
+ "INBOX_UPDATED": "Inbox updated"
}
},
- "END_POINT": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
+ "NAME": {
+ "LABEL": "Webhook-ի անունը",
+ "PLACEHOLDER": "Մուտքագրեք webhook-ի անունը"
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "Create webhook"
+ "END_POINT": {
+ "LABEL": "URL Webhook",
+ "PLACEHOLDER": "Օրինակ՝ {webhookExampleURL}",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր URL"
+ },
+ "EDIT_SUBMIT": "Թարմացնել webhook-ը",
+ "ADD_SUBMIT": "Ստեղծել webhook"
},
- "TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "TITLE": "Վեբհուք",
+ "CONFIGURE": "Կարգավորել",
+ "HEADER": "Webhook կարգավորումներ",
+ "HEADER_BTN_TXT": "Ավելացնել նոր webhook",
+ "LOADING": "Բեռնվում են կցված webhook-ները",
+ "SEARCH_404": "Այս հարցմանը համապատասխանող տարրեր չկան",
+ "SIDEBAR_TXT": "Webhook-ներ
Webhook-ները HTTP կանչեր են, որոնք կարող են սահմանվել յուրաքանչյուր հաշվի համար։ Դրանք ակտիվանում են Chatwoot-ում հաղորդագրության ստեղծման նման իրադարձություններով։ Դուք կարող եք ստեղծել մեկից ավելի webhook այս հաշվի համար։
Webhook ստեղծելու համար սեղմեք Ավելացնել նոր webhook կոճակը։ Դուք կարող եք նաև հեռացնել ցանկացած գոյություն ունեցող webhook՝ սեղմելով Delete կոճակը։
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "404": "Այս հաշվի համար webhook-ներ չեն կարգավորվել։",
+ "TITLE": "Կառավարել webhook-ները",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook վերջնակետ",
+ "ACTIONS": "Գործողություններ"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
- "TITLE": "Edit webhook",
+ "BUTTON_TEXT": "Խմբագրել",
+ "TITLE": "Խմբագրել webhook-ը",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook կարգավորումը հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց կապ հաստատել Woot սերվերի հետ, խնդրում ենք փորձել ավելի ուշ"
}
},
"ADD": {
- "CANCEL": "Cancel",
- "TITLE": "Add new webhook",
+ "CANCEL": "Չեղարկել",
+ "TITLE": "Ավելացնել նոր webhook",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook կարգավորումը հաջողությամբ ավելացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց կապ հաստատել Woot սերվերի հետ, խնդրում ենք փորձել ավելի ուշ"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Հեռացնել",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook-ը հաջողությամբ հեռացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց կապ հաստատել Woot սերվերի հետ, խնդրում ենք փորձել ավելի ուշ"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "Yes, Delete ",
- "NO": "No, Keep it"
+ "TITLE": "Հաստատել հեռացումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել webhook-ը։ ({webhookURL})",
+ "YES": "Այո, հեռացնել ",
+ "NO": "Ոչ, պահել"
}
}
},
"SLACK": {
- "DELETE": "Delete",
+ "HEADER": "Slack",
+ "DELETE": "Ջնջել",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "Ջնջել ինտեգրումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել ինտեգրումը։ Դա կբերի ձեր Slack աշխատանքային տարածքի զրույցների հասանելիության կորուստին։"
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "BODY": "Այս ինտեգրացիայի միջոցով ձեր բոլոր մուտք գործող զրույցները կհամաժամեցվեն ***{selectedChannelName}*** Slack ալիքում ձեր Slack workspace-ում։ Դուք կարող եք կառավարել ձեր հաճախորդների բոլոր զրույցները հենց այդ ալիքում և երբեք բաց չթողնել հաղորդագրություն։\n\nԱհա ինտեգրացիայի հիմնական հնարավորությունները.\n\n**Պատասխանեք զրույցներին Slack-ում:** Որպեսզի պատասխանեք ***{selectedChannelName}*** Slack ալիքում զրույցին, պարզապես գրեք ձեր հաղորդագրությունը և ուղարկեք այն որպես թել։ Սա կստեղծի պատասխան հաճախորդին Chatwoot-ի միջոցով։ Դա շատ պարզ է։\n\n **Ստեղծեք մասնավոր նշումներ:** Եթե ցանկանում եք ստեղծել մասնավոր նշումներ փոխարենը պատասխանների, ձեր հաղորդագրությունը սկսեք ***`note:`***-ով։ Սա կապահովի, որ ձեր հաղորդագրությունը կմնա մասնավոր և հաճախորդը չի տեսնի այն։\n\n**Կցեք գործակալի պրոֆիլ:** Եթե Slack-ում պատասխանող անձը ունի գործակալի պրոֆիլ Chatwoot-ում նույն էլ․ հասցեով, պատասխանները ինքնաբար կկցվեն այդ գործակալի պրոֆիլին։ Սա նշանակում է, որ հեշտությամբ կարող եք հետևել՝ ով, ինչ և երբ է ասել։ Մյուս կողմից, եթե պատասխանողը չունի կցված գործակալի պրոֆիլ, պատասխանները հաճախորդին կերևան բոտի պրոֆիլից։",
+ "SELECTED": "ընտրված"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
- "UPDATE": "Update",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "OPTION_LABEL": "Ընտրել ալիք",
+ "UPDATE": "Թարմացնել",
+ "BUTTON_TEXT": "Կապել ալիքը",
+ "DESCRIPTION": "Ձեր Slack աշխատանքային տարածքը այժմ կապված է Chatwoot-ի հետ։ Սակայն ինտեգրումը ներկայումս անգործուն է։ Ինտեգրումը ակտիվացնելու և ալիք կապելու համար Chatwoot-ի հետ, խնդրում ենք սեղմել ստորև գտնվող կոճակը։\n\n**Նշում:** Եթե փորձում եք կապել անձնական ալիք, նախ ավելացրեք Chatwoot հավելվածը Slack ալիքին այս քայլից առաջ։",
+ "ATTENTION_REQUIRED": "Պահանջվում է ուշադրություն",
+ "EXPIRED": "Ձեր Slack ինտեգրումը ժամկետանց է։ Շարունակելու համար ստանալ հաղորդագրություններ Slack-ում, խնդրում ենք ջնջել ինտեգրումը և կրկին կապել ձեր աշխատանքային տարածքը։"
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "Ինտեգրման թարմացման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "UPDATE_SUCCESS": "Ալիքը հաջողությամբ կապվել է",
+ "FAILED_TO_FETCH_CHANNELS": "Slack-ից ալիքները ստանալու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "Սեղմեք այստեղ՝ միանալու համար",
+ "LEAVE_THE_ROOM": "Ելք սենյակից",
+ "START_VIDEO_CALL_HELP_TEXT": "Սկսել նոր վիդեո զանգ հաճախորդի հետ",
+ "JOIN_ERROR": "Զանգին միանալու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "CREATE_ERROR": "Հանդիպման հղում ստեղծելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI Օգնություն",
+ "WITH_AI": " {option} արհեստական բանականությամբ ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "Պատասխանման առաջարկ",
+ "SUMMARIZE": "Ամփոփել",
+ "REPHRASE": "Բարելավել գրությունը",
+ "FIX_SPELLING_GRAMMAR": "Ուղղել հոմանիշներն ու քերականությունը",
+ "SHORTEN": "Կրճատել",
+ "EXPAND": "Ընդլայնել",
+ "MAKE_FRIENDLY": "Փոխել հաղորդագրության տոնը ընկերական",
+ "MAKE_FORMAL": "Օգտվել պաշտոնական տոնից",
+ "SIMPLIFY": "Պարզեցնել",
+ "CONFIDENT": "Օգտագործել վստահ տոն",
+ "PROFESSIONAL": "Օգտագործել պրոֆեսիոնալ տոն",
+ "CASUAL": "Օգտագործել առօրյա տոն",
+ "STRAIGHTFORWARD": "Օգտագործել պարզ տոն"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Բարելավել պատասխանը",
+ "IMPROVE_REPLY_SELECTION": "Բարելավել ընտրությունը",
+ "CHANGE_TONE": {
+ "TITLE": "Փոխել տոնը",
+ "OPTIONS": {
+ "PROFESSIONAL": "Պրոֆեսիոնալ",
+ "CASUAL": "Անպաշտոնական",
+ "STRAIGHTFORWARD": "Պարզ ու հստակ",
+ "CONFIDENT": "Վստահ",
+ "FRIENDLY": "Բարեկամական"
+ }
+ },
+ "GRAMMAR": "Ուղղել քերականությունն ու ուղղագրությունը",
+ "SUGGESTION": "Առաջարկել պատասխան",
+ "SUMMARIZE": "Ամփոփել զրույցը",
+ "ASK_COPILOT": "Հարցնել Copilot-ին"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "Սևրագիր",
+ "GENERATED_TITLE": "Ստեղծված բովանդակություն",
+ "AI_WRITING": "AI-ն գրում է",
"BUTTONS": {
- "APPLY": "Use this suggestion",
- "CANCEL": "Cancel"
+ "APPLY": "Օգտվել այս առաջարկից",
+ "CANCEL": "Չեղարկել"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "Ինտեգրվել OpenAI-ի հետ",
+ "DESC": "Ներդրեք առաջադեմ AI հնարավորություններ ձեր վահանակում OpenAI-ի GPT մոդելների միջոցով։ Սկսելու համար մուտքագրեք ձեր OpenAI հաշվի API բանալին։",
+ "KEY_PLACEHOLDER": "Մուտքագրեք ձեր OpenAI API բանալին",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "Պահանջվում է օգնություն։",
+ "DISMISS": "Փակել",
+ "FINISH": "Ավարտել կարգավորումը"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "Դուք կարող եք OpenAI ինտեգրումը կարգավորել ավելի ուշ, երբ ցանկանաք։",
+ "SUCCESS_MESSAGE": "OpenAI ինտեգրումը հաջողությամբ կարգավորվեց"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "Բարելավել AI-ով",
+ "SUMMARY_TITLE": "Ամփոփում AI-ով",
+ "REPLY_TITLE": "Պատասխանման առաջարկ AI-ով",
+ "SUBTITLE": "AI-ի միջոցով կստեղծվի բարելավված պատասխան՝ հիմնված ձեր ընթացիկ նախագծի վրա։",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "Տոն",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "Մասնագիտական",
+ "FRIENDLY": "Ընկերական"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
- "CANCEL": "Cancel"
+ "GENERATE": "Ստեղծել",
+ "GENERATING": "Ստեղծվում է...",
+ "CANCEL": "Չեղարկել"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "Հեռացնել",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "Ինտեգրացիան հաջողությամբ հեռացվեց"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "Կապվել"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "Վահանակի հավելվածներ",
+ "HEADER_BTN_TXT": "Ավելացնել նոր վահանակի հավելված",
+ "SIDEBAR_TXT": "Վահանակի հավելվածներ
Վահանակի հավելվածները թույլ են տալիս կազմակերպություններին տեղադրել հավելված Chatwoot վահանակի ներսում՝ հաճախորդների աջակցության գործակալների համար համատեքստ տրամադրելու նպատակով։ Այս ֆունկցիան թույլ է տալիս անկախ ստեղծել հավելված և տեղադրել այն վահանակի ներսում՝ օգտատիրոջ տեղեկություններ, նրանց պատվերներ կամ նախորդ վճարումների պատմություն տրամադրելու համար։
Երբ դուք տեղադրում եք ձեր հավելվածը Chatwoot վահանակի միջոցով, ձեր հավելվածը կստանա հաղորդակցության և կոնտակտի համատեքստը որպես պատուհանի իրադարձություն։ Կիրառեք հաղորդագրության իրադարձության լսող ձեր էջում՝ համատեքստը ստանալու համար։
Նոր վահանակի հավելված ավելացնելու համար սեղմեք «Ավելացնել նոր վահանակի հավելված» կոճակը։
",
+ "DESCRIPTION": "Վահանակի հավելվածները թույլ են տալիս կազմակերպություններին տեղադրել հավելված վահանակի ներսում՝ հաճախորդների աջակցության գործակալների համար համատեքստ տրամադրելու նպատակով։ Այս ֆունկցիան թույլ է տալիս անկախ ստեղծել հավելված և տեղադրել այն՝ օգտատիրոջ տեղեկություններ, նրանց պատվերներ կամ նախորդ վճարումների պատմություն տրամադրելու համար։",
+ "LEARN_MORE": "Իմացեք ավելին Dashboard հավելվածների մասին",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Որոնել վահանակի հավելվածներ...",
+ "NO_RESULTS": "Ձեր որոնմանը համապատասխան վահանակի հավելվածներ չեն գտնվել",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "Այս հաշվի վրա դեռևս վահանակի հավելվածներ չեն կարգավորվել",
+ "LOADING": "Բեռնվում են վահանակի հավելվածները...",
+ "TABLE_HEADER": {
+ "NAME": "Անուն",
+ "ENDPOINT": "Վերջնակետ",
+ "ACTIONS": "Գործողություններ"
+ },
+ "EDIT_TOOLTIP": "Խմբագրել հավելվածը",
+ "DELETE_TOOLTIP": "Հեռացնել հավելվածը"
},
"FORM": {
- "TITLE_LABEL": "Name",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_LABEL": "Անուն",
+ "TITLE_PLACEHOLDER": "Մուտքագրեք ձեր վահանակի հավելվածի անունը",
+ "TITLE_ERROR": "Վահանակի հավելվածի համար անունը պարտադիր է",
+ "URL_LABEL": "Վերջնակետ",
+ "URL_PLACEHOLDER": "Մուտքագրեք այն endpoint URL-ը, որտեղ հյուրընկալվում է ձեր հավելվածը",
+ "URL_ERROR": "Պարտադիր է վավեր URL"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
- "FORM_SUBMIT": "Submit",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "HEADER": "Ավելացնել նոր վահանակի հավելված",
+ "FORM_SUBMIT": "Ուղարկել",
+ "FORM_CANCEL": "Չեղարկել",
+ "API_SUCCESS": "Վահանակի հավելվածը հաջողությամբ կարգավորվեց",
+ "API_ERROR": "Չհաջողվեց ստեղծել հավելված։ Խնդրում ենք փորձել ավելի ուշ"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
- "FORM_SUBMIT": "Update",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "HEADER": "Խմբագրել վահանակի հավելվածը",
+ "FORM_SUBMIT": "Թարմացնել",
+ "FORM_CANCEL": "Չեղարկել",
+ "API_SUCCESS": "Վահանակի հավելվածը հաջողությամբ թարմացվեց",
+ "API_ERROR": "Չհաջողվեց թարմացնել հավելվածը։ Խնդրում ենք փորձել ավելի ուշ"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "Այո, հեռացնել",
+ "CONFIRM_NO": "Ոչ, պահել",
+ "TITLE": "Հաստատել հեռացումը",
+ "MESSAGE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել հավելվածը՝ {appName}:",
+ "API_SUCCESS": "Վահանակի հավելվածը հաջողությամբ հեռացվեց",
+ "API_ERROR": "Չհաջողվեց հեռացնել հավելվածը։ Խնդրում ենք փորձել ավելի ուշ"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Ստեղծել/կապել Linear խնդիր",
+ "LOADING": "Բեռնում են Linear խնդիրները...",
+ "LOADING_ERROR": "Linear խնդիրները բեռնելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "CREATE": "Ստեղծել",
+ "LINK": {
+ "SEARCH": "Որոնել խնդիրները",
+ "SELECT": "Ընտրել խնդիր",
+ "TITLE": "Կապել",
+ "EMPTY_LIST": "Linear խնդիրներ չեն գտնվել",
+ "LOADING": "Բեռնում",
+ "ERROR": "Linear խնդիրները բեռնելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "LINK_SUCCESS": "Խնդիրը հաջողությամբ կապվեց",
+ "LINK_ERROR": "Խնդիրը կապելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "LINK_TITLE": "Հաղորդում (#{conversationId}) {name}-ի հետ"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Ստեղծել/կապել Linear խնդիր",
+ "DESCRIPTION": "Ստեղծեք Linear խնդիրներ զրույցներից կամ կապեք գոյություն ունեցողները հարթ հետևման համար։",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Վերնագիր",
+ "PLACEHOLDER": "Մուտքագրեք վերնագիր",
+ "REQUIRED_ERROR": "Պահանջվում է վերնագիր"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Մուտքագրեք նկարագրություն"
+ },
+ "TEAM": {
+ "LABEL": "Թիմ",
+ "PLACEHOLDER": "Ընտրեք թիմը",
+ "SEARCH": "Որոնել թիմը",
+ "REQUIRED_ERROR": "Պահանջվում է թիմ"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Նշանակված",
+ "PLACEHOLDER": "Ընտրեք պատասխանատուին",
+ "SEARCH": "Որոնել պատասխանատուին"
+ },
+ "PRIORITY": {
+ "LABEL": "Առաջնահերթություն",
+ "PLACEHOLDER": "Ընտրեք առաջնահերթությունը",
+ "SEARCH": "Որոնել առաջնահերթությունը"
+ },
+ "LABEL": {
+ "LABEL": "Նշում",
+ "PLACEHOLDER": "Ընտրեք պիտակը",
+ "SEARCH": "Որոնել պիտակը"
+ },
+ "STATUS": {
+ "LABEL": "Կարգավիճակ",
+ "PLACEHOLDER": "Ընտրեք կարգավիճակը",
+ "SEARCH": "Որոնել կարգավիճակը"
+ },
+ "PROJECT": {
+ "LABEL": "Նախագիծ",
+ "PLACEHOLDER": "Ընտրեք նախագիծը",
+ "SEARCH": "Որոնել նախագիծը"
+ }
+ },
+ "CREATE": "Ստեղծել",
+ "CANCEL": "Չեղարկել",
+ "CREATE_SUCCESS": "Խնդիրը հաջողությամբ ստեղծվեց",
+ "CREATE_ERROR": "Խնդիրը ստեղծելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "LOADING_TEAM_ERROR": "Թիմերը բեռնելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "LOADING_TEAM_ENTITIES_ERROR": "Թիմի միավորները բեռնելու ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
+ },
+ "ISSUE": {
+ "STATUS": "Կարգավիճակ",
+ "PRIORITY": "Առաջնահերթություն",
+ "ASSIGNEE": "Նշանակված",
+ "LABELS": "Նշումներ",
+ "CREATED_AT": "Ստեղծվել է {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Հեռացնել կապը",
+ "SUCCESS": "Խնդիրը հաջողությամբ անկապվեց",
+ "ERROR": "Խնդրի անկապման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
+ },
+ "NO_LINKED_ISSUES": "Համակցված խնդիրներ չեն գտնվել",
+ "DELETE": {
+ "TITLE": "Համոզված եք, որ ցանկանում եք ջնջել ինտեգրումը։",
+ "MESSAGE": "Համոզված եք, որ ցանկանում եք ջնջել ինտեգրումը։",
+ "CONFIRM": "Այո, ջնջել",
+ "CANCEL": "Չեղարկել"
+ },
+ "CTA": {
+ "TITLE": "Միացնել Linear-ին",
+ "AGENT_DESCRIPTION": "Linear աշխատանքային տարածքը միացված չէ։ Խնդրում ենք խնդրել ձեր ադմինիստրատորին միացնել աշխատանքային տարածքը՝ այս ինտեգրումը օգտագործելու համար։",
+ "DESCRIPTION": "Linear աշխատանքային տարածքը միացված չէ։ Սեղմեք ստորև գտնվող կոճակը՝ ձեր աշխատանքային տարածքը միացնելու համար և օգտագործելու այս ինտեգրումը։",
+ "BUTTON_TEXT": "Միացնել Linear աշխատանքային տարածքը"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել Notion ինտեգրումը։",
+ "MESSAGE": "Այս ինտեգրման ջնջումը կվերացնի ձեր Notion աշխատանքային տարածքի հասանելիությունը և կդադարեցնի բոլոր համապատասխան ֆունկցիոնալությունները։",
+ "CONFIRM": "Այո, ջնջել",
+ "CANCEL": "Չեղարկել"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Իմանալ ավելին",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Օգնականներ",
+ "SWITCH_ASSISTANT": "Փոխել օգնականը",
+ "NEW_ASSISTANT": "Ստեղծել օգնական",
+ "EMPTY_LIST": "Օգնականներ չեն գտնվել, ստեղծեք նոր՝ սկսելու համար"
+ },
+ "COPILOT": {
+ "TITLE": "Կոպիլոտ",
+ "TRY_THESE_PROMPTS": "Փորձեք այս հրահանգները",
+ "PANEL_TITLE": "Սկսեք Կոպիլոտով",
+ "KICK_OFF_MESSAGE": "Ցանկանու՞մ եք արագ ամփոփում, ստուգել անցյալ զրույցները կամ կազմել ավելի լավ պատասխան։ Կոպիլոտը այստեղ է՝ արագացնելու գործընթացը։",
+ "SEND_MESSAGE": "Ուղարկել հաղորդագրություն...",
+ "EMPTY_MESSAGE": "Սխալ է տեղի ունեցել պատասխանի ստեղծման ժամանակ։ Խնդրում ենք փորձել կրկին։",
+ "LOADER": "Captain-ը մտածում է",
+ "YOU": "Դուք",
+ "USE": "Օգտագործել սա",
+ "RESET": "Վերականգնել",
+ "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",
+ "AVAILABLE_ON": "Captain հասանելի չէ անվճար պլանում։",
+ "UPGRADE_PROMPT": "Թարմացրեք ձեր պլանը՝ ստանալու համար մեր օգնականներին, copilot-ին և ավելին։",
+ "UPGRADE_NOW": "Թարմացնել հիմա",
+ "CANCEL_ANYTIME": "Դուք կարող եք ցանկացած պահի փոխել կամ չեղարկել ձեր պլանը"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI-ը հասանելի է միայն Enterprise փաթեթներում։",
+ "UPGRADE_PROMPT": "Թարմացրեք ձեր պլանը՝ ստանալու համար մեր օգնականներին, copilot-ին և ավելին։",
+ "ASK_ADMIN": "Խնդրում ենք դիմել ձեր ադմինիստրատորին թարմացման համար։"
+ },
+ "BANNER": {
+ "RESPONSES": "Դուք օգտագործել եք ձեր պատասխանների սահմանաչափի ավելի քան 80%-ը։ Շարունակելու համար խնդրում ենք թարմացնել։",
+ "DOCUMENTS": "Փաստաթղթերի սահմանաչափը լրացել է։ Շարունակելու համար թարմացրեք Captain AI։"
+ },
+ "FORM": {
+ "CANCEL": "Չեղարկել",
+ "CREATE": "Ստեղծել",
+ "EDIT": "Թարմացնել"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Օգնականներ",
+ "NO_ASSISTANTS_AVAILABLE": "Ձեր հաշվում օգնականներ չկան։",
+ "ADD_NEW": "Ստեղծել նոր օգնական",
+ "DELETE": {
+ "TITLE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել օգնականին:",
+ "DESCRIPTION": "Այս գործողությունը անշրջելի է։ Օգնականի ջնջումը կջնջի այն բոլոր միացված մուտքային արկղերից և մշտապես կջնջի բոլոր ստեղծված գիտելիքները։",
+ "CONFIRM": "Այո, ջնջել",
+ "SUCCESS_MESSAGE": "Օգնականը հաջողությամբ ջնջվել է",
+ "ERROR_MESSAGE": "Օգնականի ջնջման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "FORM_DESCRIPTION": "Լրացրեք ստորև նշված տվյալները՝ օգնականին անուն տալու, նրա նպատակը նկարագրելու և աջակցվող արտադրանքը նշելու համար։",
+ "CREATE": {
+ "TITLE": "Ստեղծել օգնական",
+ "SUCCESS_MESSAGE": "Օգնականը հաջողությամբ ստեղծվել է",
+ "ERROR_MESSAGE": "Օգնականի ստեղծման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "FORM": {
+ "UPDATE": "Թարմացնել",
+ "SECTIONS": {
+ "BASIC_INFO": "Հիմնական տեղեկություններ",
+ "SYSTEM_MESSAGES": "Համակարգի հաղորդագրություններ",
+ "INSTRUCTIONS": "Ցուցումներ",
+ "FEATURES": "Հատկություններ",
+ "TOOLS": "Գործիքներ "
+ },
+ "NAME": {
+ "LABEL": "Անուն",
+ "PLACEHOLDER": "Մուտքագրեք օգնականի անունը",
+ "ERROR": "Անունը պարտադիր է"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Պատասխանի ջերմաստիճան",
+ "DESCRIPTION": "Կարգավորեք, թե որքան ստեղծագործ կամ սահմանափակ պետք է լինեն օգնականի պատասխանները։ Նվազագույն արժեքները տալիս են ավելի կենտրոնացած և որոշակի պատասխաններ, իսկ բարձր արժեքները թույլ են տալիս ավելի ստեղծագործ և բազմազան արդյունքներ։"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Մուտքագրեք օգնականի նկարագրությունը",
+ "ERROR": "Նկարագրությունը պարտադիր է"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Ապրանքի անուն",
+ "PLACEHOLDER": "Մուտքագրեք ապրանքի անունը",
+ "ERROR": "Ապրանքի անունը պարտադիր է"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Բարի գալուստ հաղորդագրություն",
+ "PLACEHOLDER": "Մուտքագրեք բարի գալուստ հաղորդագրությունը"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Հանձնման հաղորդագրություն",
+ "PLACEHOLDER": "Մուտքագրեք հանձնման հաղորդագրությունը"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Լուծման հաղորդագրություն",
+ "PLACEHOLDER": "Մուտքագրեք լուծման հաղորդագրությունը"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Ցուցումներ",
+ "PLACEHOLDER": "Մուտքագրեք ցուցումներ օգնականի համար"
+ },
+ "FEATURES": {
+ "TITLE": "Հատկություններ",
+ "ALLOW_CONVERSATION_FAQS": "Ստեղծել ՀՏՀ-ներ լուծված զրույցներից",
+ "ALLOW_MEMORIES": "Հաճախորդների հետ փոխգործակցություններից կարևոր մանրամասներ պահպանել հիշողություններում։",
+ "ALLOW_CITATIONS": "Sertakan petikan sumber dalam jawapan",
+ "ALLOW_CONTACT_ATTRIBUTES": "Թույլատրել մուտք կոնտակտային տվյալներին"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Թարմացնել օգնականը",
+ "SUCCESS_MESSAGE": "Օգնականը հաջողությամբ թարմացվել է",
+ "ERROR_MESSAGE": "Օգնականի թարմացման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։",
+ "NOT_FOUND": "Օգնականը չի գտնվել։ Խնդրում ենք փորձել կրկին։"
+ },
+ "SETTINGS": {
+ "HEADER": "Կարգավորումներ",
+ "BASIC_SETTINGS": {
+ "TITLE": "Հիմնական կարգավորումներ",
+ "DESCRIPTION": "Անհատականացրեք, թե ինչ է ասում օգնականը զրույցը ավարտելիս կամ մարդուն փոխանցելիս։"
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "Համակարգի կարգավորումներ",
+ "DESCRIPTION": "Անհատականացրեք, թե ինչ է ասում օգնականը զրույցը ավարտելիս կամ մարդուն փոխանցելիս։"
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "Ճիշտ հաճելի բաները",
+ "DESCRIPTION": "Ավելացրեք ավելի շատ վերահսկողություն օգնականին։ (մի փոքր ավելի պատկերավոր՝ ինչպես պատմություն՝ Հարցման սահմանափակում → սցենարներ → արդյունք) Խթանում է օգտատիրոջը իրականում օգտագործել դրանք։",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Պաշտպանիչ սահմաններ",
+ "DESCRIPTION": "Պահպանում է ամեն ինչ ուղիղ ճանապարհին՝ միայն այն հարցերը, որոնց պատասխանել եք ցանկանում ձեր օգնականին, ոչ մի բան սահմաններից դուրս կամ թեմայից դուրս։"
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Պատասխանների ուղեցույցներ",
+ "DESCRIPTION": "Ձեր օգնականի պատասխանների ոճն ու կառուցվածքը՝ պարզ և բարեկամական՞ Կարճ և հակիրճ՞ Վերլուծական և պաշտոնական՞:"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Ջնջել օգնականը",
+ "DESCRIPTION": "Այս գործողությունը անդառնալի է։ Օգնականը ջնջելու դեպքում այն կհեռացվի բոլոր միացված մուտքային արկղերից և ամբողջությամբ կջնջվի ստեղծված գիտելիքը։",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Խմբագրել օգնականին",
+ "DELETE_ASSISTANT": "Ջնջել օգնականին",
+ "VIEW_CONNECTED_INBOXES": "Դիտել միացված մուտքային արկղերը"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Օգնականներ չկան",
+ "SUBTITLE": "Ստեղծեք օգնական՝ ձեր օգտատերերին արագ և ճշգրիտ պատասխաններ տրամադրելու համար։ Այն կարող է սովորել ձեր օգնության հոդվածներից և անցյալ զրույցներից։",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Օգնական",
+ "NOTE": "Captain Օգնականը անմիջականորեն ներգրավվում է հաճախորդների հետ, սովորում է ձեր օգնության փաստաթղթերից և անցյալ զրույցներից, և տրամադրում է արագ, ճշգրիտ պատասխաններ։ Այն կառավարում է սկզբնական հարցումները, ապահովելով արագ լուծումներ, նախքան անհրաժեշտության դեպքում փոխանցել գործակալին։"
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Պահպանիչ սահմաններ",
+ "DESCRIPTION": "Պահպանում է ընթացքը՝ միայն այն հարցերը, որոնց պատասխանել եք ցանկանում, ոչինչ սահմաններից դուրս կամ թեմայից դուրս։",
+ "BULK_ACTION": {
+ "SELECTED": "{count} տարր ընտրված | {count} տարրեր ընտրված",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "UNSELECT_ALL": "Բացառել բոլորը ({count})",
+ "BULK_DELETE_BUTTON": "Ջնջել"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Օրինակ պահպանիչ սահմաններ",
+ "ADD": "Ավելացնել բոլորը",
+ "ADD_SINGLE": "Ավելացնել սա",
+ "SAVE": "Ավելացնել և պահպանել (↵)",
+ "PLACEHOLDER": "Մուտքագրեք մեկ այլ պահպանիչ սահման..."
+ },
+ "NEW": {
+ "TITLE": "Ավելացնել պահպանիչ սահման",
+ "CREATE": "Ստեղծել",
+ "CANCEL": "Չեղարկել",
+ "PLACEHOLDER": "Մուտքագրեք մեկ այլ պահպանիչ սահման...",
+ "TEST_ALL": "Բոլորը թեստավորել"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Որոնում..."
+ },
+ "EMPTY_MESSAGE": "Պահպանիչ սահմաններ չեն գտնվել։ Սկսելու համար ստեղծեք կամ ավելացրեք օրինակներ։",
+ "SEARCH_EMPTY_MESSAGE": "Այս որոնման համար պահպանիչ սահմաններ չեն գտնվել։",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Պահպանիչ սահմանները հաջողությամբ ավելացվեցին",
+ "ERROR": "Պահպանիչ սահմաններ ավելացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "UPDATE": {
+ "SUCCESS": "Պահպանիչ սահմանները հաջողությամբ թարմացվեցին",
+ "ERROR": "Պահպանիչ սահմաններ թարմացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "DELETE": {
+ "SUCCESS": "Պահպանիչ սահմանները հաջողությամբ ջնջվեցին",
+ "ERROR": "Պահպանիչ սահմաններ ջնջելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Պատասխանների ուղեցույցներ",
+ "DESCRIPTION": "Ձեր օգնականի պատասխանների ոճն ու կառուցվածքը՝ պարզ և բարեկամական՞ Կարճ և հակիրճ՞ Վերլուծական և պաշտոնական՞:",
+ "BULK_ACTION": {
+ "SELECTED": "{count} տարր ընտրված | {count} տարրեր ընտրված",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "UNSELECT_ALL": "Բացառել բոլորը ({count})",
+ "BULK_DELETE_BUTTON": "Ջնջել"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Օրինակ պատասխանների ուղեցույցներ",
+ "ADD": "Ավելացնել բոլորը",
+ "ADD_SINGLE": "Ավելացնել սա",
+ "SAVE": "Ավելացնել և պահպանել (↵)",
+ "PLACEHOLDER": "Մուտքագրեք մեկ այլ պատասխանների ուղեցույց..."
+ },
+ "NEW": {
+ "TITLE": "Ավելացնել պատասխանների ուղեցույց",
+ "CREATE": "Ստեղծել",
+ "CANCEL": "Չեղարկել",
+ "PLACEHOLDER": "Մուտքագրեք մեկ այլ պատասխանների ուղեցույց...",
+ "TEST_ALL": "Բոլորը թեստավորել"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Որոնում..."
+ },
+ "EMPTY_MESSAGE": "Պատասխանների ուղեցույցներ չեն գտնվել։ Սկսելու համար ստեղծեք կամ ավելացրեք օրինակներ։",
+ "SEARCH_EMPTY_MESSAGE": "Այս որոնման համար պատասխանների ուղեցույցներ չեն գտնվել։",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Պատասխանների ուղեցույցները հաջողությամբ ավելացվեցին",
+ "ERROR": "Պատասխանների ուղեցույցներ ավելացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "UPDATE": {
+ "SUCCESS": "Պատասխանների ուղեցույցները հաջողությամբ թարմացվեցին",
+ "ERROR": "Պատասխանների ուղեցույցներ թարմացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "DELETE": {
+ "SUCCESS": "Պատասխանների ուղեցույցները հաջողությամբ ջնջվեցին",
+ "ERROR": "Պատասխանների ուղեցույցներ ջնջելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Սցենարներ",
+ "DESCRIPTION": "Տվեք ձեր օգնականին համատեքստ՝ օրինակ՝ «ինչ անել, երբ օգտատերը կաշկանդված է», կամ «ինչպես վարվել վերադարձի խնդրանքի ժամանակ»։",
+ "BULK_ACTION": {
+ "SELECTED": "{count} տարր ընտրված | {count} տարրեր ընտրված",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "UNSELECT_ALL": "Բացառել բոլորը ({count})",
+ "BULK_DELETE_BUTTON": "Ջնջել"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Օրինակ սցենարներ",
+ "ADD": "Ավելացնել բոլորը",
+ "ADD_SINGLE": "Ավելացնել սա",
+ "TOOLS_USED": "Օգտագործված գործիքներ:"
+ },
+ "NEW": {
+ "CREATE": "Ավելացնել սցենար",
+ "TITLE": "Ստեղծել սցենար",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Վերնագիր",
+ "PLACEHOLDER": "Մուտքագրեք սցենարի անունը",
+ "ERROR": "Սցենարի անունը պարտադիր է"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն",
+ "PLACEHOLDER": "Նկարագրեք, թե ինչպես և որտեղ է օգտագործվելու այս սցենարը",
+ "ERROR": "Սցենարի նկարագրությունը պարտադիր է"
+ },
+ "INSTRUCTION": {
+ "LABEL": "Ինչպես վարվել",
+ "PLACEHOLDER": "Նկարագրեք, թե ինչպես և որտեղ է իրականացվելու այս սցենարը",
+ "ERROR": "Սցենարի բովանդակությունը պարտադիր է"
+ },
+ "CREATE": "Ստեղծել",
+ "CANCEL": "Չեղարկել"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Չեղարկել",
+ "UPDATE": "Թարմացնել փոփոխությունները"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Որոնում..."
+ },
+ "EMPTY_MESSAGE": "Սցենարներ չեն գտնվել։ Սկսելու համար ստեղծեք կամ ավելացրեք օրինակներ։",
+ "SEARCH_EMPTY_MESSAGE": "Այս որոնման համար սցենարներ չեն գտնվել։",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Senario berjaya ditambah",
+ "ERROR": "Սցենարներ ավելացնելիս սխալ առաջացավ, խնդրում ենք փորձել կրկին։"
+ },
+ "UPDATE": {
+ "SUCCESS": "Senario berjaya dikemas kini",
+ "ERROR": "Սցենարներ թարմացնելիս սխալ առաջացավ, խնդրում ենք փորձել կրկին։"
+ },
+ "DELETE": {
+ "SUCCESS": "Senario berjaya dipadam",
+ "ERROR": "Սցենարներ ջնջելիս սխալ առաջացավ, խնդրում ենք փորձել կրկին։"
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Փաստաթղթեր",
+ "ADD_NEW": "Ստեղծել նոր փաստաթուղթ",
+ "SELECTED": "{count} ընտրված",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "UNSELECT_ALL": "Չընտրել բոլորը ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Այո, ջնջել բոլորը",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Ձախողվել է"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Էջը չի գտնվել",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Համապատասխան ՀՏՀ-ներ",
+ "DESCRIPTION": "Այս ՀՏՀ-ները ստեղծվել են ուղղակիորեն փաստաթղթից։"
+ },
+ "FORM_DESCRIPTION": "Մուտքագրեք փաստաթղթի URL հասցեն՝ այն ավելացնելու համար որպես գիտելիքների աղբյուր և ընտրեք օգնականին, որի հետ կապել այն։",
+ "CREATE": {
+ "TITLE": "Ավելացնել փաստաթուղթ",
+ "SUCCESS_MESSAGE": "Փաստաթուղթը հաջողությամբ ստեղծվել է",
+ "ERROR_MESSAGE": "Փաստաթղթի ստեղծման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Jenis Dokumen",
+ "URL": "URL",
+ "PDF": "Fail PDF"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Մուտքագրեք փաստաթղթի URL հասցեն",
+ "ERROR": "Խնդրում ենք տրամադրել փաստաթղթի վավեր URL"
+ },
+ "PDF_FILE": {
+ "LABEL": "Fail PDF",
+ "CHOOSE_FILE": "Pilih fail PDF",
+ "ERROR": "Sila pilih fail PDF",
+ "HELP_TEXT": "Saiz fail maksimum: 10MB",
+ "INVALID_TYPE": "Sila pilih fail PDF yang sah",
+ "TOO_LARGE": "Saiz fail melebihi had 10MB"
+ },
+ "NAME": {
+ "LABEL": "Nama Dokumen (Pilihan)",
+ "PLACEHOLDER": "Masukkan nama untuk dokumen"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել փաստաթուղթը։",
+ "DESCRIPTION": "Այս գործողությունը անշրջելի է։ Փաստաթղթի ջնջումը մշտապես կջնջի բոլոր ստեղծված գիտելիքները։",
+ "CONFIRM": "Այո, ջնջել",
+ "SUCCESS_MESSAGE": "Փաստաթուղթը հաջողությամբ ջնջվել է",
+ "ERROR_MESSAGE": "Փաստաթղթի ջնջման ժամանակ սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Դիտել կապված պատասխանները",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Ջնջել փաստաթուղթը"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Փաստաթղթեր չկան",
+ "SUBTITLE": "Փաստաթղթերը օգտագործվում են օգնականի կողմից ՀՏՀ-ներ ստեղծելու համար։ Դուք կարող եք ներմուծել փաստաթղթեր՝ օգնականին տրամադրելու համատեքստ։",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Փաստաթուղթ",
+ "NOTE": "Captain-ում փաստաթուղթը ծառայում է որպես գիտելիքների աղբյուր օգնականի համար։ Կապելով ձեր օգնության կենտրոնը կամ ուղեցույցները՝ Captain-ը կարող է վերլուծել բովանդակությունը և տրամադրել ճշգրիտ պատասխաններ հաճախորդների հարցումների համար։"
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Alat",
+ "ADD_NEW": "Cipta alat baru",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "Tiada alat khusus tersedia",
+ "SUBTITLE": "Ստեղծեք անհատական գործիքներ՝ ձեր օգնականին արտաքին API-ների և ծառայությունների հետ կապելու համար՝ հնարավորություն տալով նրան ստանալ տվյալներ և կատարել գործողություններ ձեր անունից։",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Alat Khusus",
+ "NOTE": "Անհատական գործիքները թույլ են տալիս ձեր օգնականին աշխատել արտաքին API-ների և ծառայությունների հետ։ Ստեղծեք գործիքներ՝ տվյալներ ստանալու, գործողություններ կատարելու կամ ձեր առկա համակարգերի հետ ինտեգրվելու համար՝ ձեր օգնականի հնարավորությունները ընդլայնելու համար։"
+ }
+ },
+ "FORM_DESCRIPTION": "Konfigurasikan alat khusus anda untuk berhubung dengan API luaran",
+ "OPTIONS": {
+ "EDIT_TOOL": "Sunting alat",
+ "DELETE_TOOL": "Padam alat"
+ },
+ "CREATE": {
+ "TITLE": "Cipta Alat Khusus",
+ "SUCCESS_MESSAGE": "Alat khusus berjaya dicipta",
+ "ERROR_MESSAGE": "Gagal mencipta alat khusus"
+ },
+ "EDIT": {
+ "TITLE": "Sunting Alat Tersuai",
+ "SUCCESS_MESSAGE": "Alat tersuai berjaya dikemas kini",
+ "ERROR_MESSAGE": "Gagal mengemas kini alat tersuai"
+ },
+ "DELETE": {
+ "TITLE": "Padam Alat Tersuai",
+ "DESCRIPTION": "Վստա՞հ եք, որ ցանկանում եք ջնջել այս անհատական գործիքը։ Այս գործողությունը հնարավոր չէ վերականգնել։",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "Alat tersuai berjaya dipadam",
+ "ERROR_MESSAGE": "Gagal memadam alat tersuai"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nama Alat",
+ "PLACEHOLDER": "Carian Pesanan",
+ "ERROR": "Nama alat diperlukan",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Mencari butiran pesanan mengikut ID pesanan"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Kaedah"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "URL Titik Akhir",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "URL yang sah diperlukan"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Jenis Pengesahan"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Tiada",
+ "BEARER": "Token Bearer",
+ "BASIC": "Pengesahan Asas",
+ "API_KEY": "Kunci API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Token Bearer",
+ "BEARER_TOKEN_PLACEHOLDER": "Masukkan token bearer anda",
+ "USERNAME": "Nama Pengguna",
+ "USERNAME_PLACEHOLDER": "Masukkan nama pengguna",
+ "PASSWORD": "Kata Laluan",
+ "PASSWORD_PLACEHOLDER": "Masukkan kata laluan",
+ "API_KEY": "Nama Header",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Nilai Header",
+ "API_VALUE_PLACEHOLDER": "Masukkan nilai kunci API"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameter",
+ "HELP_TEXT": "Tentukan parameter yang akan diambil dari pertanyaan pengguna"
+ },
+ "ADD_PARAMETER": "Tambah Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Nama parameter (contoh: order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Տեսակ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "Տող",
+ "NUMBER": "Թիվ",
+ "BOOLEAN": "Բուլյան",
+ "ARRAY": "Զանգված",
+ "OBJECT": "Օբյեկտ"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Պարամետրի նկարագրություն"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Պարտադիր"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Հարցման մարմնի ձևանմուշ (ըստ ցանկության)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Պատասխանի ձևանմուշ (ըստ ցանկության)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Պարամետրի անունը պարտադիր է"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "ՀՏՀ-ներ",
+ "PENDING_FAQS": "Սպասող ՀՏՀ-ներ",
+ "ADD_NEW": "Ստեղծել նոր FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Զրույց #{id}"
+ },
+ "SELECTED": "{count} ընտրված",
+ "SELECT_ALL": "Ընտրել բոլորը ({count})",
+ "UNSELECT_ALL": "Չընտրել բոլորը ({count})",
+ "SEARCH_PLACEHOLDER": "Cari Soalan Lazim...",
+ "BULK_APPROVE_BUTTON": "Հաստատել",
+ "BULK_DELETE_BUTTON": "Ջնջել",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "ՀՏՀ-ները հաջողությամբ հաստատվեցին",
+ "ERROR_MESSAGE": "ՀՏՀ-ները հաստատելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "BULK_DELETE": {
+ "TITLE": "Ջնջե՞լ ՀՏՀ-ները։",
+ "DESCRIPTION": "Համոզված եք, որ ցանկանում եք ջնջել ընտրված ՀՏՀ-ները։ Այս գործողությունը չի կարող հետ վերադարձվել։",
+ "CONFIRM": "Այո, ջնջել բոլորը",
+ "SUCCESS_MESSAGE": "ՀՏՀ-ները հաջողությամբ ջնջվեցին",
+ "ERROR_MESSAGE": "ՀՏՀ-ները ջնջելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "DELETE": {
+ "TITLE": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել FAQ-ը։",
+ "DESCRIPTION": "",
+ "CONFIRM": "Այո, ջնջել",
+ "SUCCESS_MESSAGE": "ՀՏՀ-ն հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "ՀՏՀ-ն ջնջելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին։"
+ },
+ "FILTER": {
+ "ASSISTANT": "Օգնական՝ {selected}",
+ "STATUS": "Կարգավիճակ՝ {selected}",
+ "ALL_ASSISTANTS": "Բոլորը"
+ },
+ "STATUS": {
+ "TITLE": "Կարգավիճակ",
+ "PENDING": "Սպասման մեջ",
+ "APPROVED": "Հաստատված",
+ "ALL": "Բոլորը"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain-ը գտել է հաճախորդների փնտրած ՀՏՀ-ները։",
+ "ACTION": "Սեղմեք այստեղ՝ դիտարկելու համար"
+ },
+ "FORM_DESCRIPTION": "Ավելացրեք հարց և նրա համապատասխան պատասխան գիտելիքների բազայում և ընտրեք օգնականին, որի հետ այն պետք է կապվի։",
+ "CREATE": {
+ "TITLE": "Ավելացնել ՀՏՀ",
+ "SUCCESS_MESSAGE": "Պատասխանը հաջողությամբ ավելացվեց։",
+ "ERROR_MESSAGE": "Պատասխանը ավելացնելիս սխալ է տեղի ունեցել։ Խնդրում ենք փորձել կրկին։"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Հարց",
+ "PLACEHOLDER": "Մուտքագրեք հարցը այստեղ",
+ "ERROR": "Խնդրում ենք տրամադրել վավեր հարց։"
+ },
+ "ANSWER": {
+ "LABEL": "Պատասխան",
+ "PLACEHOLDER": "Մուտքագրեք պատասխանը այստեղ",
+ "ERROR": "Խնդրում ենք տրամադրել վավեր պատասխան։"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Թարմացնել ՀՏՀ-ն",
+ "SUCCESS_MESSAGE": "ՀՏՀ-ն հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "ՀՏՀ-ն թարմացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "APPROVE_SUCCESS_MESSAGE": "ՀՏՀ-ն նշվել է որպես հաստատված"
+ },
+ "OPTIONS": {
+ "APPROVE": "Հաստատել",
+ "EDIT_RESPONSE": "Խմբագրել",
+ "DELETE_RESPONSE": "Ջնջել"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "ՀՏՀ-ներ չեն գտնվել",
+ "NO_PENDING_TITLE": "Վերանայման սպասող ՀՏՀ-ներ չկան",
+ "SUBTITLE": "ՀՏՀ-ները օգնում են ձեր օգնականին արագ և ճշգրիտ պատասխաններ տրամադրել ձեր հաճախորդների հարցերին։ Դրանք կարող են ավտոմատ կերպով ստեղծվել ձեր բովանդակությունից կամ ձեռքով ավելացվել։",
+ "CLEAR_SEARCH": "Մաքրել ակտիվ ֆիլտրերը",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Կապտեն Հաճախ տրվող հարցեր",
+ "NOTE": "Կապտեն Հաճախ տրվող հարցերը հայտնաբերում են հաճախորդների ընդհանուր հարցերը՝ անկախ նրանից, թե դրանք բացակայում են ձեր գիտելիքների բազայում, թե հաճախ են տրվում, և ստեղծում են համապատասխան ՀՏՀ-ներ՝ աջակցությունը բարելավելու համար։ Դուք կարող եք վերանայել յուրաքանչյուր առաջարկ և որոշել՝ հաստատել կամ մերժել այն։"
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Կապված մուտքային արկղեր",
+ "ADD_NEW": "Կապել նոր մուտքային արկղ",
+ "OPTIONS": {
+ "DISCONNECT": "Դադարեցնել կապը"
+ },
+ "DELETE": {
+ "TITLE": "Համոզվա՞ծ եք, որ ցանկանում եք դադարեցնել կապը այս նամակապանակի հետ։",
+ "DESCRIPTION": "",
+ "CONFIRM": "Այո, ջնջել",
+ "SUCCESS_MESSAGE": "Նամակապանակի կապը հաջողությամբ դադարեցվեց։",
+ "ERROR_MESSAGE": "Նամակապանակի կապը դադարեցնելու ընթացքում սխալ տեղի ունեցավ, խնդրում ենք փորձել կրկին։"
+ },
+ "FORM_DESCRIPTION": "Ընտրեք մուտքային արկղը, որը կապվելու է օգնականի հետ։",
+ "CREATE": {
+ "TITLE": "Կապել մուտքային արկղ",
+ "SUCCESS_MESSAGE": "Մուտքային արկղը հաջողությամբ կապվեց։",
+ "ERROR_MESSAGE": "Մուտքային արկղը կապելիս սխալ է տեղի ունեցել։ Խնդրում ենք փորձել կրկին։"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Մուտքային արկղ",
+ "PLACEHOLDER": "Ընտրեք մուտքային արկղը, որտեղ կգործարկվի օգնականը։",
+ "ERROR": "Պետք է ընտրել մուտքային արկղ։"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Կապված մուտքային արկղեր չկան",
+ "SUBTITLE": "Մուտքային արկղի միացումը թույլ է տալիս օգնականին կառավարել հաճախորդների սկզբնական հարցերը, նախքան դրանք փոխանցելը ձեզ։"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
index 09ac38551..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/hy/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/hy/login.json b/app/javascript/dashboard/i18n/locale/hy/login.json
index 941565463..8bf01d710 100644
--- a/app/javascript/dashboard/i18n/locale/hy/login.json
+++ b/app/javascript/dashboard/i18n/locale/hy/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email eg: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/macros.json b/app/javascript/dashboard/i18n/locale/hy/macros.json
index 3a59d4f26..e51975921 100644
--- a/app/javascript/dashboard/i18n/locale/hy/macros.json
+++ b/app/javascript/dashboard/i18n/locale/hy/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/mfa.json b/app/javascript/dashboard/i18n/locale/hy/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/onboarding.json b/app/javascript/dashboard/i18n/locale/hy/onboarding.json
new file mode 100644
index 000000000..e930682d5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Կայք",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Ժամային գոտի",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Ընտրել ժամանակային գոտին",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Շարունակել",
+ "SAVING": "Պահպանում...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/report.json b/app/javascript/dashboard/i18n/locale/hy/report.json
index 6ff84c5f5..6f197e6d2 100644
--- a/app/javascript/dashboard/i18n/locale/hy/report.json
+++ b/app/javascript/dashboard/i18n/locale/hy/report.json
@@ -1,119 +1,105 @@
{
"REPORT": {
- "HEADER": "Conversations",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "HEADER": "Զրույցներ",
+ "LOADING_CHART": "Գրաֆիկի տվյալները բեռնվում են...",
+ "NO_ENOUGH_DATA": "Հաշվետվություն կազմելու համար բավարար տվյալներ չկան, փորձեք ավելի ուշ։",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Ներբեռնել զրույցների հաշվետվությունները",
+ "DATA_FETCHING_FAILED": "Տվյալները բեռնելը ձախողվեց, խնդրում ենք փորձել ավելի ուշ։",
+ "SUMMARY_FETCHING_FAILED": "Հաշվետվության ամփոփումը բեռնելը ձախողվեց, խնդրում ենք փորձել ավելի ուշ։",
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "Զրույցներ",
+ "DESC": "(Ընդամենը)"
},
"INCOMING_MESSAGES": {
"NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "DESC": "(Ընդամենը)"
},
"OUTGOING_MESSAGES": {
"NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "DESC": "(Ընդամենը)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Առաջին արձագանքի ժամանակ",
+ "DESC": "(Միջին)",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Առաջին պատասխանման ժամանակը {metricValue} է (հիմնված է {conversationCount} զրույցների վրա)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Լուծման ժամանակ",
+ "DESC": "(Միջին)",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Լուծման ժամանակը {metricValue} է (հիմնված է {conversationCount} զրույցների վրա)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "Լուծվածների քանակ",
+ "DESC": "( Ընդհանուր )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Լուծումների քանակ",
+ "DESC": "(Ընդհանուր)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Հանձման քանակ",
+ "DESC": "(Ընդհանուր)"
},
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "Հաճախորդի սպասման ժամանակ",
+ "TOOLTIP_TEXT": "Սպասման ժամանակը {metricValue} է (հիմնված է {conversationCount} պատասխանների վրա)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
- "LAST_7_DAYS": "Last 7 days",
- "LAST_30_DAYS": "Last 30 days",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "LAST_7_DAYS": "Վերջին 7 օրերը",
+ "LAST_14_DAYS": "Վերջին 14 օրերը",
+ "LAST_30_DAYS": "Վերջին 30 օրերը",
+ "THIS_MONTH": "Այս ամիս",
+ "LAST_MONTH": "Նախորդ ամիս",
+ "LAST_3_MONTHS": "Վերջին 3 ամիսները",
+ "LAST_6_MONTHS": "Վերջին 6 ամիսները",
+ "LAST_YEAR": "Վերջին տարին",
+ "CUSTOM_DATE_RANGE": "Ընտրված ամսաթվի միջակայք"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Կիրառել",
+ "PLACEHOLDER": "Ընտրեք ամսաթվերի միջակայքը"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "Խմբավորել ըստ",
+ "DURATION_FILTER_LABEL": "Տևողություն",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
+ "DAY": "Օր",
+ "WEEK": "Շաբաթ",
+ "MONTH": "Ամիս",
"YEAR": "Month"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Օր"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Օր"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "Շաբաթ"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "Օր"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "Շաբաթ"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "Ամիս"
}
],
"GROUP_BY_YEAR_OPTIONS": [
@@ -130,351 +116,535 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Աշխատանքային ժամեր",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Մաքրել ֆիլտրը",
+ "EMPTY_LIST": "Արդյունքներ չեն գտնվել"
+ },
+ "PAGINATION": {
+ "RESULTS": "Ցուցադրվում է {start}-ից {end}-ը՝ ընդհանուր {total} արդյունքներից",
+ "PER_PAGE_TEMPLATE": "{size} / էջ"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "FILTER_DROPDOWN_LABEL": "Select Agent",
+ "HEADER": "Գործակալների ամփոփում",
+ "DESCRIPTION": "Հեշտությամբ հետևեք գործակալի արդյունավետությանը հիմնական չափանիշներով, ինչպիսիք են զրույցները, պատասխանման ժամանակները, լուծման ժամանակները և լուծված դեպքերը։ Սեղմեք գործակալի անունը՝ ավելին իմանալու համար։",
+ "LOADING_CHART": "Գրաֆիկի տվյալները բեռնվում են...",
+ "NO_ENOUGH_DATA": "Հաշվետվություն կազմելու համար բավարար տվյալներ չունենք, փորձեք ավելի ուշ։",
+ "DOWNLOAD_AGENT_REPORTS": "Ներբեռնել գործակալների հաշվետվությունները",
+ "FILTER_DROPDOWN_LABEL": "Ընտրեք գործակալին",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Որոնել գործակալների մեջ"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "Զրույցներ",
+ "DESC": "( Ընդհանուր )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "Մուտքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "Ելքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Առաջին արձագանքի ժամանակ",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Առաջին պատասխանման ժամանակը {metricValue} է (հիմնված է {conversationCount} զրույցների վրա)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Լուծման ժամանակ",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Լուծման ժամանակը {metricValue} է (հիմնված է {conversationCount} զրույցների վրա)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "Լուծված դեպքերի քանակ",
+ "DESC": "( Ընդամենը )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "Վերջին 7 օրը"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "Վերջին 30 օրը"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Վերջին 3 ամիսը"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Վերջին 6 ամիսը"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Վերջին տարին"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Անհատական ժամանակահատված"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Կիրառել",
+ "PLACEHOLDER": "Ընտրեք ժամանակահատվածը"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
- "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",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "HEADER": "Պիտակների ակնարկ",
+ "DESCRIPTION": "Հետևեք պիտակի արդյունավետությանը հիմնական չափանիշներով՝ ներառյալ զրույցները, պատասխանման ժամանակները, լուծման ժամանակները և լուծված դեպքերը։ Սեղմեք պիտակի անվան վրա՝ մանրամասն տեղեկությունների համար։",
+ "LOADING_CHART": "Գծապատկերի տվյալները բեռնվում են...",
+ "NO_ENOUGH_DATA": "Հաշվետվություն կազմելու համար բավարար տվյալներ չկան, փորձեք ավելի ուշ։",
+ "DOWNLOAD_LABEL_REPORTS": "Ներբեռնել պիտակների հաշվետվությունները",
+ "FILTER_DROPDOWN_LABEL": "Ընտրեք պիտակը",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Որոնել պիտակները"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "Զրույցներ",
+ "DESC": "( Ընդամենը )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "Մուտքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "Ելքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Առաջին արձագանքի ժամանակը",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Առաջին պատասխանման ժամանակը {metricValue} է (հիմնված {conversationCount} զրույցների վրա)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Լուծման ժամանակ",
+ "DESC": "( միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Լուծման ժամանակը {metricValue} է (հիմնված {conversationCount} զրույցների վրա)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "Լուծված դեպքերի քանակ",
+ "DESC": "( ընդհանուր )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "Վերջին 7 օրը"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "Վերջին 30 օրը"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Վերջին 3 ամիսը"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Վերջին 6 ամիսը"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Վերջին տարին"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Անհատական ժամանակահատված"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Կիրառել",
+ "PLACEHOLDER": "Ընտրեք ամսաթվերի միջակայքը"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "HEADER": "Զրույցների ամփոփում",
+ "DESCRIPTION": "Արագ դիտեք ձեր մուտքի արկղի կատարողականը հիմնական չափանիշներով՝ զրույցներ, պատասխանների ժամանակներ, լուծման ժամանակներ և լուծված դեպքեր՝ բոլորը մեկ վայրում։ Սեղմեք մուտքի արկղի անվան վրա՝ մանրամասների համար։",
+ "LOADING_CHART": "Գրաֆիկի տվյալները բեռնվում են...",
+ "NO_ENOUGH_DATA": "Հաշվետվություն կազմելու համար բավարար տվյալներ չկան, փորձեք ավելի ուշ։",
+ "DOWNLOAD_INBOX_REPORTS": "Ներբեռնել զրույցների հաշվետվությունները",
+ "FILTER_DROPDOWN_LABEL": "Ընտրեք զրույցների արկղը",
+ "ALL_INBOXES": "Բոլոր մուտքերը",
+ "SEARCH_INBOX": "Որոնել Նամակների Պատյանում",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Որոնել մուտքային տուփերը"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "Զրույցներ",
+ "DESC": "( Ընդամենը )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "Մուտքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "Ելքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Առաջին արձագանքի ժամանակը",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Առաջին պատասխանման ժամանակը {metricValue} է (հիմնված {conversationCount} զրույցների վրա)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Լուծման ժամանակ",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Լուծման ժամանակը {metricValue} է (հիմնված {conversationCount} զրույցների վրա)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "Լուծված դեպքերի քանակ",
+ "DESC": "( Ընդամենը )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "Վերջին 7 օրը"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "Վերջին 30 օրը"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Վերջին 3 ամիսը"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Վերջին 6 ամիսը"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Վերջին տարին"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Անհատական ժամանակահատված"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Կիրառել",
+ "PLACEHOLDER": "Ընտրեք ժամանակահատվածը"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "HEADER": "Թիմի ակնարկ",
+ "DESCRIPTION": "Ստացեք ձեր թիմի արդյունավետության ակնարկ՝ կարևոր չափանիշներով, ներառյալ զրույցները, պատասխանման ժամանակները, լուծման ժամանակները և լուծված դեպքերը։ Սեղմեք թիմի անունը՝ մանրամասների համար։",
+ "LOADING_CHART": "Գծապատկերի տվյալները բեռնվում են...",
+ "NO_ENOUGH_DATA": "Հաշվետվություն կազմելու համար բավարար տվյալներ չկան, փորձեք ավելի ուշ։",
+ "DOWNLOAD_TEAM_REPORTS": "Ներբեռնել թիմի հաշվետվությունները",
+ "FILTER_DROPDOWN_LABEL": "Ընտրեք թիմը",
+ "FILTERS": {
+ "ADD_FILTER": "Ավելացնել ֆիլտր",
+ "CLEAR_ALL": "Մաքրել բոլորը",
+ "NO_FILTER": "Ֆիլտրեր չկան",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Որոնել թիմերը"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "Զրույցներ",
+ "DESC": "( Ընդամենը )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "Մուտքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "Ելքային հաղորդագրություններ",
+ "DESC": "( Ընդամենը )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Առաջին արձագանքի ժամանակը",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Հաշվարկի համար օգտագործված զրույցների ընդհանուր քանակը՝",
+ "TOOLTIP_TEXT": "Առաջին պատասխանման ժամանակը {metricValue} է (հիմնված {conversationCount} զրույցների վրա)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "Լուծման ժամանակ",
+ "DESC": "( Միջին )",
+ "INFO_TEXT": "Ընդհանուր զրույցների քանակը հաշվարկի համար՝:",
+ "TOOLTIP_TEXT": "Լուծման ժամանակը {metricValue} է (հիմնված է {conversationCount} զրույցների վրա)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "Լուծվածների քանակ",
+ "DESC": "( Ընդհանուր )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "Վերջին 7 օրը"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "Վերջին 30 օրը"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "Վերջին 3 ամիսը"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Վերջին 6 ամիսը"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Վերջին տարին"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "Անհատական ժամանակահատված"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "Կիրառել",
+ "PLACEHOLDER": "Ընտրեք ժամանակահատվածը"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "CSAT հաշվետվություններ",
+ "NO_RECORDS": "Դեռ պատասխաններ չկան",
+ "NO_RECORDS_DESCRIPTION": "CSAT հարցման պատասխանները կհայտնվեն այստեղ, երբ հաճախորդները սկսեն տրամադրել կարծիք։",
+ "DOWNLOAD": "Ներբեռնել CSAT հաշվետվությունները",
+ "DOWNLOAD_FAILED": "Չհաջողվեց ներբեռնել CSAT հաշվետվությունները",
"FILTERS": {
+ "ADD_FILTER": "Ավելացնել ֆիլտր",
+ "CLEAR_ALL": "Մաքրել բոլորը",
+ "NO_FILTER": "Ֆիլտրեր չկան",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Փնտրել գործակալներ",
+ "INBOXES": "Որոնել մուտքային արկղերը",
+ "TEAMS": "Որոնել թիմերը",
+ "RATINGS": "Որոնել գնահատականները"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Գործակալ"
+ },
+ "INBOXES": {
+ "LABEL": "Մուտքային արկղ"
+ },
+ "TEAMS": {
+ "LABEL": "Թիմ"
+ },
+ "RATINGS": {
+ "LABEL": "Գնահատական"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "Կոնտակտ",
+ "AGENT_NAME": "Գործակալ",
+ "RATING": "Վարկանիշ",
+ "FEEDBACK_TEXT": "Մեկնաբանություն",
+ "CONVERSATION": "Հաղորդակցություն",
+ "CUSTOMER": "Հաճախորդ",
+ "RESPONSE": "Պատասխան",
+ "HANDLED_BY": "Կատարել է"
+ },
+ "UNKNOWN_CUSTOMER": "Անհայտ հաճախորդ"
},
+ "NO_AGENT": "Չկա նշանակված գործակալ",
+ "NO_FEEDBACK": "Հետադարձ կապ չի տրամադրվել",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "Ընդհանուր պատասխաններ",
+ "TOOLTIP": "Հավաքագրված պատասխանների ընդհանուր քանակը"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "Բավարարվածության միավոր",
+ "TOOLTIP": "Դրական պատասխանների ընդհանուր թիվը / Պատասխանների ընդհանուր թիվը * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "Պատասխանների տոկոսը",
+ "TOOLTIP": "Պատասխանների ընդհանուր թիվը / Ուղարկված CSAT հարցումների ընդհանուր թիվը * 100"
+ },
+ "RATING_DISTRIBUTION": "Գնահատման բաշխում"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Վերանայման նշումներ",
+ "PLACEHOLDER": "Ավելացնել վերանայման նշումներ այս գնահատման մասին...",
+ "SAVE": "Պահպանել",
+ "CANCEL": "Չեղարկել",
+ "SAVING": "Պահպանում...",
+ "SAVED": "Նշումները հաջողությամբ պահպանվեցին",
+ "SAVE_ERROR": "Չհաջողվեց պահպանել նշումները",
+ "UPDATED_BY": "Թարմացվել է {name} կողմից {time}",
+ "UPDATED_BY_LABEL": "Թարմացվել է",
+ "PAYWALL": {
+ "TITLE": "Թարմացրեք՝ ավելացնելու համար վերանայման նշումներ",
+ "AVAILABLE_ON": "Վերանայման նշումների ֆունկցիան հասանելի է միայն Բիզնես և Էնթերպրայզ պլաններում։",
+ "UPGRADE_PROMPT": "Ավելացրեք ներքին կոնտեքստ յուրաքանչյուր CSAT պատասխանին վերանայման նշումների միջոցով։ Պահեք, թե ինչ է իրականում տեղի ունեցել, ավելի արագ հայտնաբերեք նմուշները և ավելի լավ որոշումներ կայացրեք ձեր հետադարձ կապից։",
+ "UPGRADE_NOW": "Թարմացրեք հիմա",
+ "CANCEL_ANYTIME": "Դուք կարող եք ցանկացած պահի փոխել կամ չեղարկել ձեր պլանը"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Բոտի հաշվետվություններ",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Խոսակցությունների քանակը",
+ "TOOLTIP": "Բոտի կողմից մշակված ընդհանուր խոսակցությունների քանակը"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Ընդհանուր պատասխաններ",
+ "TOOLTIP": "Բոտի կողմից ուղարկված ընդհանուր պատասխանների քանակը"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Լուծման տոկոսադրույք",
+ "TOOLTIP": "Բոտի կողմից լուծված զրույցների ընդհանուր քանակը / Բոտի կողմից մշակված զրույցների ընդհանուր քանակը * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Հանձման տոկոսադրույք",
+ "TOOLTIP": "Բոտից գործակալներին հանձնարարված զրույցների ընդհանուր քանակը / Բոտի կողմից մշակված զրույցների ընդհանուր քանակը * 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
- "LIVE": "Live",
+ "HEADER": "Ընդհանուր տեսք",
+ "LIVE": "Ուղիղ",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
- "OPEN": "Open",
- "UNATTENDED": "Unattended",
- "UNASSIGNED": "Unassigned",
- "PENDING": "Pending"
+ "HEADER": "Բաց զրույցներ",
+ "LOADING_MESSAGE": "Բեռնվում են զրույցի չափանիշները...",
+ "OPEN": "Բաց",
+ "UNATTENDED": "Անհետաքրքրված",
+ "UNASSIGNED": "Չհատկացված",
+ "PENDING": "Սպասման մեջ"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "Հաղորդակցության հոսք",
+ "NO_CONVERSATIONS": "Հաղորդակցություններ չկան",
+ "CONVERSATION": "{count} զրույց",
+ "CONVERSATIONS": "{count} զրույցներ",
+ "DOWNLOAD_REPORT": "Ներբեռնել հաշվետվությունը"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Լուծումներ",
+ "NO_CONVERSATIONS": "Չկան զրույցներ",
+ "CONVERSATION": "{count} զրույց",
+ "CONVERSATIONS": "{count} զրույցներ",
+ "DOWNLOAD_REPORT": "Ներբեռնել հաշվետվությունը"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "Զրույցներ գործակալների կողմից",
+ "LOADING_MESSAGE": "Բեռնվում են գործակալի չափանիշները...",
+ "NO_AGENTS": "Գործակալների կողմից զրույցներ չկան",
"TABLE_HEADER": {
- "AGENT": "Agent",
- "OPEN": "OPEN",
- "UNATTENDED": "Unattended",
- "STATUS": "Status"
+ "AGENT": "Գործակալ",
+ "OPEN": "Բացել",
+ "UNATTENDED": "Անհետաքրքրված",
+ "STATUS": "Կարգավիճակ"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "Բոլոր թիմերը",
+ "HEADER": "Խոսակցություններ ըստ թիմերի",
+ "LOADING_MESSAGE": "Բեռնվում են թիմի չափանիշները...",
+ "NO_TEAMS": "Տվյալներ չեն հասանելի",
+ "TABLE_HEADER": {
+ "TEAM": "Թիմ",
+ "OPEN": "Բաց",
+ "UNATTENDED": "Անհետաքրքրված",
+ "STATUS": "Կարգավիճակ"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
- "ONLINE": "Online",
- "BUSY": "Busy",
- "OFFLINE": "Offline"
+ "HEADER": "Գործակցի կարգավիճակ",
+ "ONLINE": "Առցանց",
+ "BUSY": "Աշխատասեր",
+ "OFFLINE": "Անհասանելի"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "Կիրակի",
+ "MONDAY": "Երկուշաբթի",
+ "TUESDAY": "Երեքշաբթի",
+ "WEDNESDAY": "Չորեքշաբթի",
+ "THURSDAY": "Հինգշաբթի",
+ "FRIDAY": "Ուրբաթ",
+ "SATURDAY": "Շաբաթ"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA հաշվետվություններ",
+ "NO_RECORDS": "SLA կիրառված զրույցները հասանելի չեն։",
+ "LOADING": "Բեռնվում է SLA տվյալը...",
+ "DOWNLOAD_SLA_REPORTS": "Ներբեռնել SLA հաշվետվությունները",
+ "DOWNLOAD_FAILED": "Չհաջողվեց ներբեռնել SLA հաշվետվությունները",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Ավելացնել ֆիլտր",
+ "CLEAR_ALL": "Մաքրել բոլորը",
+ "CLEAR_FILTER": "Մաքրել ֆիլտրը",
+ "EMPTY_LIST": "Արդյունքներ չեն գտնվել",
+ "NO_FILTER": "Ֆիլտրեր չկան",
+ "SEARCH": "Փնտրման ֆիլտր",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA-ի անուն",
+ "AGENTS": "Գործակալի անուն",
+ "INBOXES": "Փոստարկղի անուն",
+ "LABELS": "Պիտակի անուն",
+ "TEAMS": "Թիմի անունը"
+ },
+ "SLA": "SLA քաղաքականություն",
+ "INBOXES": "Նամակապանակ",
+ "AGENTS": "Գործակալ",
+ "LABELS": "Պիտակ",
+ "TEAMS": "Թիմ"
+ },
+ "WITH": "հետ",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Հարվածի տոկոսադրույք",
+ "TOOLTIP": "Ստեղծված SLA-ների տոկոսը, որոնք հաջողությամբ ավարտվել են"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Բացթողումների քանակը",
+ "TOOLTIP": "Ընդհանուր SLA բացթողումները որոշակի ժամանակահատվածում"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Հաղորդակցությունների քանակ",
+ "TOOLTIP": "Ընդհանուր հաղորդակցությունների քանակը SLA-ով"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Քաղաքականություն",
+ "CONVERSATION": "Հաղորդակցություն",
+ "AGENT": "Գործակալ"
+ },
+ "VIEW_DETAILS": "Դիտել մանրամասները"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "Մուտքի արկղ",
+ "AGENT": "Գործակալ",
+ "TEAM": "Խումբ",
+ "LABEL": "Պիտակ",
+ "AVG_RESOLUTION_TIME": "Միջին լուծման ժամանակ",
+ "AVG_FIRST_RESPONSE_TIME": "Միջին առաջին պատասխանման ժամանակ",
+ "AVG_REPLY_TIME": "Միջին հաճախորդի սպասման ժամանակ",
+ "RESOLUTION_COUNT": "Լուծումների քանակ",
+ "CONVERSATIONS": "Խոսակցությունների քանակ"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/search.json b/app/javascript/dashboard/i18n/locale/hy/search.json
index fbafaf73c..f23a14630 100644
--- a/app/javascript/dashboard/i18n/locale/hy/search.json
+++ b/app/javascript/dashboard/i18n/locale/hy/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/settings.json b/app/javascript/dashboard/i18n/locale/hy/settings.json
index a953dbca0..463da6f97 100644
--- a/app/javascript/dashboard/i18n/locale/hy/settings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/settings.json
@@ -1,325 +1,923 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
+ "LINK": "Պրոֆիլի կարգավորումներ",
+ "TITLE": "Պրոֆիլի կարգավորումներ",
+ "BTN_TEXT": "Թարմացնել պրոֆիլը",
+ "DELETE_AVATAR": "Ջնջել պրոֆիլային նկարը",
+ "AVATAR_DELETE_SUCCESS": "Պրոֆիլային նկարը հաջողությամբ ջնջվել է",
+ "AVATAR_DELETE_FAILED": "Պրոֆիլային նկարի ջնջման ընթացքում սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "UPDATE_SUCCESS": "Ձեր պրոֆիլը հաջողությամբ թարմացվել է",
+ "PASSWORD_UPDATE_SUCCESS": "Ձեր գաղտնաբառը հաջողությամբ փոխվել է",
+ "AFTER_EMAIL_CHANGED": "Ձեր պրոֆիլը հաջողությամբ թարմացվել է, խնդրում ենք կրկին մուտք գործել, քանի որ ձեր մուտքի տվյալները փոխվել են",
"FORM": {
- "AVATAR": "Profile Image",
- "ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "PICTURE": "Պրոֆիլի լուսանկար",
+ "AVATAR": "Պրոֆիլի պատկեր",
+ "ERROR": "Խնդրում ենք շտկել ձևի սխալները",
+ "REMOVE_IMAGE": "Հեռացնել",
+ "UPLOAD_IMAGE": "Վերբեռնել պատկեր",
+ "UPDATE_IMAGE": "Թարմացնել պատկեր",
"PROFILE_SECTION": {
- "TITLE": "Profile",
- "NOTE": "Your email address is your identity and is used to log in."
+ "TITLE": "Պրոֆիլ",
+ "NOTE": "Ձեր էլ. փոստի հասցեն ձեր ինքնությունն է և օգտագործվում է մուտք գործելու համար։"
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "Հարցման կոճակ հաղորդագրություններ ուղարկելու համար",
+ "NOTE": "Դուք կարող եք ընտրել հարցման կոճակ (Enter կամ Cmd/Ctrl+Enter) ըստ ձեր նախասիրության։",
+ "UPDATE_SUCCESS": "Ձեր կարգավորումները հաջողությամբ թարմացվել են",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "Մուտքագրել (↵)",
+ "CONTENT": "Ուղարկել հաղորդագրություններ՝ սեղմելով Enter կոճակը՝ առանց սեղմելու ուղարկելու կոճակը։"
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "Ուղարկել հաղորդագրություններ՝ սեղմելով Cmd/Ctrl + Enter կոճակները՝ առանց սեղմելու ուղարկելու կոճակը։"
}
}
},
- "MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
- },
- "MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
- },
- "PASSWORD_SECTION": {
- "TITLE": "Password",
- "NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
- },
- "ACCESS_TOKEN": {
- "TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
- },
- "AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
- "NONE": "None",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "INTERFACE_SECTION": {
+ "TITLE": "Միջերես",
+ "NOTE": "Անհատականացրեք ձեր Chatwoot վահանակի տեսքը և զգացողությունը։",
+ "FONT_SIZE": {
+ "TITLE": "Տառատեսակ չափը",
+ "NOTE": "Ձեր նախասիրության հիման վրա կարգավորեք տեքստի չափը ամբողջ վահանակում։",
+ "UPDATE_SUCCESS": "Ձեր տառատեսակի կարգավորումները հաջողությամբ թարմացվել են",
+ "UPDATE_ERROR": "Թարմացման ընթացքում սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին",
+ "OPTIONS": {
+ "SMALLER": "Փոքրացված",
+ "SMALL": "Փոքր",
+ "DEFAULT": "Նախնական",
+ "LARGE": "Մեծ",
+ "LARGER": "Ավելի մեծ",
+ "EXTRA_LARGE": "Հատուկ մեծ"
+ }
},
- "DEFAULT_TONE": {
- "TITLE": "Alert tone:"
- },
- "CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
+ "LANGUAGE": {
+ "TITLE": "Նախընտրելի լեզու",
+ "NOTE": "Ընտրեք այն լեզուն, որը ցանկանում եք օգտագործել։",
+ "UPDATE_SUCCESS": "Ձեր լեզվի կարգավորումները հաջողությամբ թարմացվել են",
+ "UPDATE_ERROR": "Սխալ է տեղի ունեցել լեզվի կարգավորումները թարմացնելիս, խնդրում ենք փորձել կրկին",
+ "USE_ACCOUNT_DEFAULT": "Օգտագործել հաշվի նախնականը"
}
},
+ "MESSAGE_SIGNATURE_SECTION": {
+ "TITLE": "Անձնական հաղորդագրության ստորագրություն",
+ "NOTE": "Ստեղծեք յուրահատուկ հաղորդագրության ստորագրություն, որը կցուցադրվի յուրաքանչյուր հաղորդագրության վերջում, որը դուք ուղարկում եք ցանկացած մուտքագծից։ Կարող եք նաև ներառել ներքին պատկեր, որը աջակցվում է կենդանի զրույցում, էլեկտրոնային փոստում և API մուտքագծերում։",
+ "BTN_TEXT": "Պահպանել հաղորդագրության ստորագրությունը",
+ "API_ERROR": "Չհաջողվեց պահպանել ստորագրությունը։ Փորձեք կրկին",
+ "API_SUCCESS": "Ստորագրությունը հաջողությամբ պահպանվել է",
+ "IMAGE_UPLOAD_ERROR": "Պատկերի վերբեռնումը չհաջողվեց։ Փորձեք կրկին",
+ "IMAGE_UPLOAD_SUCCESS": "Պատկերը հաջողությամբ ավելացվեց։ Խնդրում ենք սեղմել պահպանել՝ ստորագրությունը պահպանելու համար",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Պատկերի չափը պետք է լինի {size} ՄԲ-ից փոքր",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
+ },
+ "MESSAGE_SIGNATURE": {
+ "LABEL": "Հաղորդագրության ստորագրություն",
+ "ERROR": "Հաղորդագրության ստորագրությունը չի կարող լինել դատարկ",
+ "PLACEHOLDER": "Ներդրեք ձեր անձնական հաղորդագրության ստորագրությունը այստեղ։"
+ },
+ "PASSWORD_SECTION": {
+ "TITLE": "Գաղտնաբառ",
+ "NOTE": "Գաղտնաբառի թարմացումը կվերականգնի ձեր մուտքերը մի քանի սարքերում։",
+ "BTN_TEXT": "Փոխել գաղտնաբառ"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Անվտանգություն",
+ "NOTE": "Կառավարեք ձեր հաշվի լրացուցիչ անվտանգության հատկությունները։",
+ "MFA_BUTTON": "Կառավարեք երկփուլ հաստատումը"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Մուտքի տոկեն",
+ "NOTE": "Այս տոկենը կարող է օգտագործվել, եթե դուք կառուցում եք API-հիմնված ինտեգրում",
+ "COPY": "Պատճենել",
+ "RESET": "Վերականգնել",
+ "CONFIRM_RESET": "Համոզվա՞ծ եք:",
+ "CONFIRM_HINT": "Հաստատելու համար կրկին սեղմեք",
+ "RESET_SUCCESS": "Մուտքի նշանը հաջողությամբ վերարտադրվել է",
+ "RESET_ERROR": "Չի հաջողվում վերարտադրել մուտքի նշանը։ Խնդրում ենք փորձել կրկին"
+ },
+ "AUDIO_NOTIFICATIONS_SECTION": {
+ "TITLE": "Աուդիո ազդանշաններ",
+ "NOTE": "Միացրեք աուդիո ազդանշանները վահանակում նոր հաղորդագրությունների և զրույցների համար։",
+ "PLAY": "Դուրս հնչեցնել ձայնը",
+ "ALERT_TYPES": {
+ "NONE": "Ոչ մեկը",
+ "MINE": "Նշված",
+ "ALL": "Բոլորը",
+ "ASSIGNED": "Իմ նշանակված զրույցները",
+ "UNASSIGNED": "Չնշանակված զրույցները",
+ "NOTME": "Բաց զրույցներ, որոնք նշանակված են ուրիշների"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Դուք որևէ տարբերակ չեք ընտրել, աուդիո ազդանշաններ չեք ստանա։",
+ "ASSIGNED": "Դուք կստանաք ազդանշաններ ձեր նշանակված զրույցների համար։",
+ "UNASSIGNED": "Դուք կստանաք ազդանշաններ ցանկացած չնշանակված զրույցների համար։",
+ "NOTME": "Դուք կստանաք ազդանշաններ ուրիշների նշանակված զրույցների համար։",
+ "ASSIGNED+UNASSIGNED": "Դուք կստանաք ազդանշաններ ձեր նշանակված և ցանկացած չհետևվող զրույցների համար։",
+ "ASSIGNED+NOTME": "Դուք կստանաք ազդանշաններ ձեր և ուրիշների նշանակված զրույցների համար, բայց ոչ չնշանակվածների։",
+ "NOTME+UNASSIGNED": "Դուք կստանաք ազդանշաններ չհետևվող և ուրիշների նշանակված զրույցների համար։",
+ "ASSIGNED+NOTME+UNASSIGNED": "Դուք կստանաք ազդանշաններ բոլոր զրույցների համար։"
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Զրույցների համար ազդանշանային իրադարձություններ",
+ "NONE": "Ոչ մեկը",
+ "ASSIGNED": "Նշված զրույցներ",
+ "ALL_CONVERSATIONS": "Բոլոր զրույցները"
+ },
+ "DEFAULT_TONE": {
+ "TITLE": "Ազդանշանի տոն:"
+ },
+ "CONDITIONS": {
+ "TITLE": "Ազդանշանի պայմաններ:",
+ "CONDITION_ONE": "Ուղարկել աուդիո ազդանշաններ միայն եթե դիտարկչի պատուհանը ակտիվ չէ",
+ "CONDITION_TWO": "Ուղարկել ազդանշաններ յուրաքանչյուր 30 վայրկյան, մինչև բոլոր նշանակված զրույցները կարդացվեն"
+ },
+ "SOUND_PERMISSION_ERROR": "Ավտոմատ հնչեցումը անջատված է ձեր զննարկչում։ Աուդիո ազդանշաններ լսելու համար միացրեք ձայնի թույլտվությունը զննարկչի կարգավորումներում կամ փոխազդեք էջի հետ։",
+ "READ_MORE": "Կարդալ ավելին"
+ },
"EMAIL_NOTIFICATIONS_SECTION": {
- "TITLE": "Email Notifications",
- "NOTE": "Update your email notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "TITLE": "Էլ. փոստի ծանուցումներ",
+ "NOTE": "Թարմացրեք ձեր էլ. փոստի ծանուցումների նախասիրությունները այստեղ",
+ "CONVERSATION_ASSIGNMENT": "Ուղարկել էլ. փոստի ծանուցումներ, երբ ինձ նշանակվում է զրույց",
+ "CONVERSATION_CREATION": "Ուղարկել էլ. փոստի ծանուցումներ, երբ ստեղծվում է նոր զրույց",
+ "CONVERSATION_MENTION": "Ուղարկել էլ. փոստի ծանուցումներ, երբ ձեզ նշում են զրույցում",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Ուղարկել էլ. փոստի ծանուցումներ, երբ նշանակված զրույցում ստեղծվում է նոր հաղորդագրություն",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Էլեկտրոնային փոստով ծանուցումներ ուղարկել, երբ մասնակցող զրույցում նոր հաղորդագրություն է ստեղծվում",
+ "SLA_MISSED_FIRST_RESPONSE": "Էլեկտրոնային փոստով ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում առաջին պատասխանման SLA-ն",
+ "SLA_MISSED_NEXT_RESPONSE": "Էլեկտրոնային փոստով ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում հաջորդ պատասխանման SLA-ն",
+ "SLA_MISSED_RESOLUTION": "Էլեկտրոնային փոստով ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում լուծման SLA-ն"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Ծանուցումների նախընտրություններ",
+ "TYPE_TITLE": "Ծանուցման տեսակը",
+ "EMAIL": "Էլեկտրոնային փոստ",
+ "PUSH": "Push ծանուցում",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Ստեղծվել է նոր զրույց",
+ "CONVERSATION_ASSIGNED": "Զրույց է նշանակվել ձեզ",
+ "CONVERSATION_MENTION": "Ձեզ նշում են զրույցում",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Նշված զրույցում ստեղծվել է նոր հաղորդագրություն",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Մասնակցող զրույցում ստեղծվել է նոր հաղորդագրություն",
+ "SLA_MISSED_FIRST_RESPONSE": "Զրույցը բաց է թողնում առաջին պատասխանման SLA-ն",
+ "SLA_MISSED_NEXT_RESPONSE": "Զրույցը բաց է թողնում հաջորդ պատասխանման SLA-ն",
+ "SLA_MISSED_RESOLUTION": "Զրույցը բաց է թողնում լուծման SLA-ն"
+ },
+ "BROWSER_PERMISSION": "Միացրեք push ծանուցումները ձեր դիտարկչի համար, որպեսզի կարողանաք դրանք ստանալ"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
- "UPDATE_ERROR": "There is an error while updating the preferences, please try again"
+ "UPDATE_SUCCESS": "Ձեր ծանուցումների նախասիրությունները հաջողությամբ թարմացվել են",
+ "UPDATE_ERROR": "Նախասիրությունները թարմացնելիս սխալ է տեղի ունեցել, խնդրում ենք փորձել կրկին"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "TITLE": "Push ծանուցումներ",
+ "NOTE": "Թարմացրեք ձեր push ծանուցումների նախասիրությունները այստեղ",
+ "CONVERSATION_ASSIGNMENT": "Ուղարկել push ծանուցումներ, երբ ինձ նշանակվում է զրույց",
+ "CONVERSATION_CREATION": "Ուղարկել push ծանուցումներ, երբ ստեղծվում է նոր զրույց",
+ "CONVERSATION_MENTION": "Ուղարկել push ծանուցումներ, երբ ձեզ նշում են զրույցում",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Ուղարկել push ծանուցումներ, երբ նշանակված զրույցում ստեղծվում է նոր հաղորդագրություն",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Push ծանուցումներ ուղարկել, երբ մասնակցող զրույցում նոր հաղորդագրություն է ստեղծվում",
+ "HAS_ENABLED_PUSH": "Դուք ակտիվացրել եք push ծանուցումները այս զննարկչի համար",
+ "REQUEST_PUSH": "Ակտիվացնել push ծանուցումները",
+ "SLA_MISSED_FIRST_RESPONSE": "Push ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում առաջին պատասխանման SLA-ն",
+ "SLA_MISSED_NEXT_RESPONSE": "Push ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում հաջորդ պատասխանման SLA-ն",
+ "SLA_MISSED_RESOLUTION": "Push ծանուցումներ ուղարկել, երբ զրույցը բաց է թողնում լուծման SLA-ն"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "Պրոֆիլի պատկեր"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "Ձեր ամբողջական անունը",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր ամբողջական անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր ամբողջական անունը"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "Ցուցադրվող անուն",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր ցուցադրվող անուն",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ցուցադրվող անուն, այն կցուցադրվի զրույցներում"
},
"AVAILABILITY": {
- "LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "LABEL": "Հասանելիություն",
+ "STATUS": {
+ "ONLINE": "Առցանց",
+ "BUSY": "Աշխատ Busy",
+ "OFFLINE": "Օֆլայն"
+ },
+ "SET_AVAILABILITY_SUCCESS": "Հասանելիությունը հաջողությամբ սահմանվեց",
+ "SET_AVAILABILITY_ERROR": "Հասանելիությունը սահմանել չհաջողվեց, խնդրում ենք փորձել կրկին",
+ "IMPERSONATING_ERROR": "Չի կարելի փոխել մատչելիությունը, երբ ներկայացնում եք մեկ այլ օգտվողի"
},
"EMAIL": {
- "LABEL": "Your email address",
- "ERROR": "Please enter a valid email address",
- "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations"
+ "LABEL": "Ձեր էլ. փոստի հասցեն",
+ "ERROR": "Խնդրում ենք մուտքագրել վավեր էլ. փոստի հասցե",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ձեր էլ. փոստի հասցեն, այն կցուցադրվի զրույցներում"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "Ընթացիկ գաղտնաբառ",
+ "ERROR": "Խնդրում ենք մուտքագրել ընթացիկ գաղտնաբառ",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել ընթացիկ գաղտնաբառ"
},
"PASSWORD": {
- "LABEL": "New password",
- "ERROR": "Please enter a password of length 6 or more",
- "PLACEHOLDER": "Please enter a new password"
+ "LABEL": "Նոր գաղտնաբառ",
+ "ERROR": "Խնդրում ենք մուտքագրել 6 կամ ավելի նիշ երկարությամբ գաղտնաբառ",
+ "PLACEHOLDER": "Խնդրում ենք մուտքագրել նոր գաղտնաբառ"
},
"PASSWORD_CONFIRMATION": {
- "LABEL": "Confirm new password",
- "ERROR": "Confirm password should match the password",
- "PLACEHOLDER": "Please re-enter your new password"
+ "LABEL": "Հաստատել նոր գաղտնաբառը",
+ "ERROR": "Հաստատման գաղտնաբառը պետք է համընկնի գաղտնաբառի հետ",
+ "PLACEHOLDER": "Խնդրում ենք կրկին մուտքագրել ձեր նոր գաղտնաբառ"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
- "SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "CHANGE_AVAILABILITY_STATUS": "Փոխել",
+ "CHANGE_ACCOUNTS": "Փոխել հաշիվը",
+ "SWITCH_ACCOUNT": "Փոխել հաշիվը",
+ "CONTACT_SUPPORT": "Կապ հաստատել աջակցության հետ",
+ "SELECTOR_SUBTITLE": "Ընտրեք հաշիվ հետևյալ ցուցակից",
+ "PROFILE_SETTINGS": "Պրոֆիլային կարգավորումներ",
+ "YEAR_IN_REVIEW": "Տարի վերանայման մեջ",
+ "KEYBOARD_SHORTCUTS": "Բանալիի կարճ ուղիներ",
+ "APPEARANCE": "Փոխել տեսքը",
+ "SUPER_ADMIN_CONSOLE": "Սուպեր ադմինիստրատորի կոնսոլ",
+ "DOCS": "Կարդալ փաստաթղթերը",
+ "CHANGELOG": "Փոփոխությունների մատյան",
+ "LOGOUT": "Ելք"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "days trial remaining.",
- "TRAIL_BUTTON": "Buy Now",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "TRIAL_MESSAGE": "օր փորձաշրջան մնացել է։",
+ "TRAIL_BUTTON": "Գնել հիմա",
+ "DELETED_USER": "Ջնջված օգտվող",
+ "EMAIL_VERIFICATION_PENDING": "Դուք դեռ չեք հաստատել ձեր էլեկտրոնային փոստի հասցեն։ Խնդրում ենք ստուգել ձեր մուտքագիծը հաստատման էլեկտրոնային փոստի համար։",
+ "RESEND_VERIFICATION_MAIL": "Վերակազմակերպել հաստատման էլեկտրոնային փոստը",
+ "EMAIL_VERIFICATION_SENT": "Հաստատման էլեկտրոնային փոստը ուղարկվել է։ Խնդրում ենք ստուգել ձեր մուտքագիծը։",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "Հաշիվը դադարեցված է",
+ "MESSAGE": "Ձեր հաշիվը դադարեցված է։ Խնդրում ենք կապ հաստատել աջակցության թիմի հետ լրացուցիչ տեղեկությունների համար։"
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "Հաշիվ չի գտնվել",
+ "MESSAGE_CLOUD": "Դուք այս պահին որևէ հաշվի անդամ չեք։ Եթե կարծում եք, որ սա սխալ է, խնդրում ենք դիմել մեր աջակցման թիմին։",
+ "MESSAGE_SELF_HOSTED": "Դուք այս պահին որևէ հաշվի անդամ չեք։ Խնդրում ենք դիմել ձեր ադմինիստրատորին։",
+ "LOGOUT": "Ելք"
}
},
"COMPONENTS": {
"CODE": {
- "BUTTON_TEXT": "Copy",
- "CODEPEN": "Open in CodePen",
- "COPY_SUCCESSFUL": "Copied to clipboard"
+ "BUTTON_TEXT": "Պատճենել",
+ "CODEPEN": "Բացել CodePen-ում",
+ "COPY_SUCCESSFUL": "Պատճենվել է կլիպբորդը"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "Ցույց տալ ավելին",
+ "SHOW_LESS": "Ցույց տալ պակաս"
},
"FILE_BUBBLE": {
- "DOWNLOAD": "Download",
- "UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "DOWNLOAD": "Ներբեռնել",
+ "UPLOADING": "Վերբեռնվում է...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "Այս պատմությունը այլևս հասանելի չէ։",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "Դիտել քարտեզում"
},
"FORM_BUBBLE": {
- "SUBMIT": "Submit"
+ "SUBMIT": "Ուղարկել"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Այս պատկերն այլևս հասանելի չէ։",
+ "LOADING_FAILED": "Բեռնավորումը ձախողվեց"
}
},
- "CONFIRM_EMAIL": "Verifying...",
+ "CONFIRM_EMAIL": "Վավերացում...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Add Inbox"
+ "NEW_INBOX": "Ավելացնել մուտքուղի"
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
- "REPORTS": "Reports",
- "SETTINGS": "Settings",
- "CONTACTS": "Contacts",
- "HOME": "Home",
- "AGENTS": "Agents",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Inboxes",
- "NOTIFICATIONS": "Notifications",
- "CANNED_RESPONSES": "Canned Responses",
- "INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
- "ACCOUNT_SETTINGS": "Account Settings",
- "APPLICATIONS": "Applications",
- "LABELS": "Labels",
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
- "REPORTS_CONVERSATION": "Conversations",
+ "NO_ITEMS": "Առարկաներ չկան",
+ "CURRENTLY_VIEWING_ACCOUNT": "Ընթացիկ դիտվողը՝",
+ "SWITCH": "Փոխել",
+ "INBOX_VIEW": "Մուտքագծի դիտում",
+ "CONVERSATIONS": "Զրույցներ",
+ "INBOX": "Իմ մուտքային արկղը",
+ "ALL_CONVERSATIONS": "Բոլոր զրույցները",
+ "MENTIONED_CONVERSATIONS": "Հղումներ",
+ "PARTICIPATING_CONVERSATIONS": "Մասնակցում է",
+ "UNATTENDED_CONVERSATIONS": "Չհետևվող",
+ "REPORTS": "Հաշվետվություններ",
+ "SETTINGS": "Կարգավորումներ",
+ "CONTACTS": "Կապեր",
+ "ACTIVE": "Ակտիվ",
+ "COMPANIES": "Ընկերություններ",
+ "ALL_COMPANIES": "Բոլոր ընկերությունները",
+ "CAPTAIN": "Կապիտան",
+ "CAPTAIN_ASSISTANTS": "Օգնակիցներ",
+ "CAPTAIN_DOCUMENTS": "Փաստաթղթեր",
+ "CAPTAIN_RESPONSES": "Հաճախ տրվող հարցեր",
+ "CAPTAIN_TOOLS": "Գործիքներ",
+ "CAPTAIN_SCENARIOS": "Սցենարներ",
+ "CAPTAIN_PLAYGROUND": "Խաղահրապարակ",
+ "CAPTAIN_INBOXES": "Նամակներ",
+ "CAPTAIN_SETTINGS": "Կարգավորումներ",
+ "HOME": "Գլխավոր",
+ "AGENTS": "Գործակալներ",
+ "AGENT_BOTS": "Բոտեր",
+ "AUDIT_LOGS": "Հաշվետվությունների գրառումներ",
+ "INBOXES": "Մուտքուղիներ",
+ "NOTIFICATIONS": "Ծանուցումներ",
+ "CANNED_RESPONSES": "Պատրաստի պատասխաններ",
+ "INTEGRATIONS": "Ինտեգրացիաներ",
+ "PROFILE_SETTINGS": "Պրոֆիլի կարգավորումներ",
+ "ACCOUNT_SETTINGS": "Հաշվի կարգավորումներ",
+ "APPLICATIONS": "Դիմումներ",
+ "LABELS": "Պիտակներ",
+ "CUSTOM_ATTRIBUTES": "Հատուկ հատկություններ",
+ "AUTOMATION": "Ավտոմատացում",
+ "MACROS": "Մակրոներ",
+ "TEAMS": "Թիմ",
+ "BILLING": "Վճարում",
+ "CUSTOM_VIEWS_FOLDER": "Թղթապանակներ",
+ "CUSTOM_VIEWS_SEGMENTS": "Սեգմենտներ",
+ "ALL_CONTACTS": "Բոլոր կապերը",
+ "TAGGED_WITH": "Թեգավորված է",
+ "NEW_LABEL": "Նոր թեգ",
+ "NEW_TEAM": "Նոր թիմ",
+ "NEW_INBOX": "Նոր նամակների արկղ",
+ "REPORTS_CONVERSATION": "Զրույցներ",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
- "REPORTS_AGENT": "Agents",
- "REPORTS_LABEL": "Labels",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "LIVE_CHAT": "Կենդանի զրույց",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "Կամպանիաներ",
+ "ONGOING": "Ընթացիկ",
+ "ONE_OFF": "Միանգամյա",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Բոտ",
+ "REPORTS_AGENT": "Գործակալներ",
+ "REPORTS_LABEL": "Թեգեր",
+ "REPORTS_INBOX": "Նամակների արկղ",
+ "REPORTS_TEAM": "Թիմ",
+ "AGENT_ASSIGNMENT": "Գործակալների նշանակումներ",
+ "SET_AVAILABILITY_TITLE": "Սահմանել ինքներդ ձեզ որպես",
+ "SET_YOUR_AVAILABILITY": "Սահմանել ձեր մատչելիությունը",
"SLA": "SLA",
- "BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "CUSTOM_ROLES": "Անհատական դերեր",
+ "BETA": "Բետա",
+ "REPORTS_OVERVIEW": "Ընդհանուր տեսք",
+ "REAUTHORIZE": "Ձեր մուտքագծի կապը ժամկետանց է, խնդրում ենք կրկին միանալ\n շարունակելու համար հաղորդագրություններ ստանալն ու ուղարկելն",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "Օգնության կենտրոն",
+ "ARTICLES": "Հոդվածներ",
+ "CATEGORIES": "Կատեգորիաներ",
+ "LOCALES": "Լոկալներ",
+ "SETTINGS": "Կարգավորումներ"
},
+ "CHANNELS": "Անցումներ",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "Ավտոմատ նշեք օֆլայն",
+ "INFO_TEXT": "Թույլ տվեք համակարգին ավտոմատ նշել ձեզ օֆլայն, երբ չեք օգտագործում հավելվածը կամ վահանակը։",
+ "INFO_SHORT": "Ավտոմատ նշեք օֆլայն, երբ չեք օգտագործում հավելվածը։"
},
- "DOCS": "Read docs"
+ "DOCS": "Կարդալ փաստաթղթերը",
+ "SECURITY": "Անվտանգություն",
+ "CAPTAIN_AI": "Կապիտան",
+ "CONVERSATION_WORKFLOW": "Զրույցների աշխատանքային հոսք"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain-ի կարգավորումներ",
+ "DESCRIPTION": "Կարգավորեք ձեր AI մոդելներն ու ֆունկցիաները Captain-ի համար։ Captain-ը գործում է կրեդիտների վրա հիմնված վճարման համակարգով, և յուրաքանչյուր գործողության համար, որը կատարում է Captain-ը ընտրված մոդելի հիման վրա, ձեզ կվճարվի կրեդիտներ։",
+ "LOADING": "Բեռնվում է Captain-ի կազմաձևումը...",
+ "LINK_TEXT": "Իմանալ ավելին Captain կրեդիտների մասին",
+ "NOT_ENABLED": "Captain-ը ձեր հաշվին ակտիվացված չէ։ Խնդրում ենք արդիականացնել ձեր պլանը՝ Captain-ի ֆունկցիաներին հասանելիություն ստանալու համար։",
+ "MODEL_CONFIG": {
+ "TITLE": "Մոդելի կազմաձևում",
+ "DESCRIPTION": "Ընտրեք AI մոդելներ տարբեր ֆունկցիաների համար։",
+ "SELECT_MODEL": "Ընտրել մոդելը",
+ "CREDITS_PER_MESSAGE": "{credits} կրեդիտ/հաղորդագրություն",
+ "COMING_SOON": "Շուտով կգա",
+ "EDITOR": {
+ "TITLE": "Խմբագրիչի ֆունկցիաներ",
+ "DESCRIPTION": "Ակտիվացնում է խելացի կազմումը, քերականական ուղղումները, տոնայնության կարգավորումները և հաղորդագրությունների խմբագրիչի պարունակության բարելավումը։"
+ },
+ "ASSISTANT": {
+ "TITLE": "Օգնական",
+ "DESCRIPTION": "Կառավարում է ավտոմատ պատասխանները, զրույցների ամփոփումները և խելացի պատասխանների առաջարկները հաճախորդների հետ փոխազդեցությունների համար։"
+ },
+ "COPILOT": {
+ "TITLE": "Համատեղ ղեկավարը",
+ "DESCRIPTION": "Առաջարկում է իրական ժամանակի համատեքստային առաջարկներ, գիտելիքների բազայի խորհուրդներ և պրոակտիվ պատկերացումներ զրույցների ընթացքում։"
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Ֆունկցիաներ",
+ "DESCRIPTION": "Ակտիվացրեք կամ անջատեք AI-ով աշխատող ֆունկցիաները։",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Աուդիո տրանսկրիպցիա",
+ "DESCRIPTION": "Ավտոմատ կերպով ձայնային հաղորդագրությունները և զանգերի ձայնագրությունները փոխարկում է որոնելի տեքստային տրանսկրիպտների։"
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Օգնության կենտրոնի որոնման ինդեքսավորում",
+ "DESCRIPTION": "Օգտագործեք AI-ն՝ ձեր օգնության կենտրոնի հոդվածների համատեքստային որոնման համար։"
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Լեյբլի առաջարկ",
+ "DESCRIPTION": "Ավտոմատ առաջարկում է համապատասխան լեյբլներ և թեգեր զրույցների բովանդակության վերլուծության և համատեքստի հիման վրա։",
+ "MODEL_TITLE": "Լեյբլի առաջարկի մոդել",
+ "MODEL_DESCRIPTION": "Ընտրեք AI մոդելը՝ զրույցների վերլուծության և համապատասխան լեյբլների առաջարկման համար"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain կարգավորումները հաջողությամբ թարմացվել են։",
+ "ERROR": "Չհաջողվեց թարմացնել Captain կարգավորումները։ Խնդրում ենք փորձել կրկին։"
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "Վճարում",
+ "DESCRIPTION": "Կառավարեք ձեր բաժանորդագրությունը այստեղ, արդիականացրեք պլանը և ստացեք ավելին ձեր թիմի համար։",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "Ընթացիկ պլան",
+ "PLAN_NOTE": "Դուք ներկայումս բաժանորդագրված եք **{plan}** պլանին՝ **{quantity}** լիցենզիաներով",
+ "SEAT_COUNT": "Մեկնոցների քանակը",
+ "RENEWS_ON": "Վերականգնվում է"
},
+ "VIEW_PRICING": "Դիտել գները",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "Կառավարեք ձեր բաժանորդագրությունը",
+ "DESCRIPTION": "Դիտեք ձեր նախորդ հաշիվները, խմբագրեք վճարման տվյալները կամ չեղարկեք բաժանորդագրությունը։",
+ "BUTTON_TXT": "Գնալ վճարման պորտալ"
+ },
+ "CAPTAIN": {
+ "TITLE": "Կապիտան",
+ "DESCRIPTION": "Կառավարեք Captain AI-ի օգտագործումն ու կրեդիտները։",
+ "BUTTON_TXT": "Գնել ավելի շատ կրեդիտներ",
+ "DOCUMENTS": "Փաստաթղթեր",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain-ը հասանելի չէ անվճար պլանում, արդիականացրեք հիմա՝ ստանալու օգնականներ, կոպիլոտ և ավելին։",
+ "REFRESH_CREDITS": "Թարմացնել"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
- "BUTTON_TXT": "Chat with us"
+ "TITLE": "Ցանկանու՞մ եք օգնություն։",
+ "DESCRIPTION": "Վճարման հետ կապված խնդիրներ ունե՞ք։ Մենք այստեղ ենք օգնելու համար։",
+ "BUTTON_TXT": "Զրուցել մեզ հետ"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Ձեր վճարման հաշիվը կարգավորվում է։ Խնդրում ենք թարմացնել էջը և փորձել կրկին։",
+ "TOPUP": {
+ "BUY_CREDITS": "Գնել ավելի շատ կրեդիտներ",
+ "MODAL_TITLE": "Գնել AI կրեդիտներ",
+ "MODAL_DESCRIPTION": "Գնել լրացուցիչ կրեդիտներ Captain AI-ի համար։",
+ "CREDITS": "ԿՐԵԴԻՏՆԵՐ",
+ "ONE_TIME": "մեկանգամյա",
+ "POPULAR": "Ամենատարածված",
+ "NOTE_TITLE": "Նշում:",
+ "NOTE_DESCRIPTION": "Կրեդիտները ավելացվում են անմիջապես և ժամկետն ավարտվում է 6 ամսում։ Կրեդիտների օգտագործման համար անհրաժեշտ է ակտիվ բաժանորդագրություն։ Գնված կրեդիտները օգտագործվում են ձեր ամսական պլանի կրեդիտներից հետո։",
+ "CANCEL": "Չեղարկել",
+ "PURCHASE": "Գնել կրեդիտներ",
+ "LOADING": "Բեռնվում են ընտրանքները...",
+ "FETCH_ERROR": "Չհաջողվեց բեռնել կրեդիտների ընտրանքները։ Խնդրում ենք փորձել կրկին։",
+ "PURCHASE_ERROR": "Չհաջողվեց կատարել գնումը։ Խնդրում ենք փորձել կրկին։",
+ "PURCHASE_SUCCESS": "Ձեր հաշվին հաջողությամբ ավելացվել է {credits} կրեդիտ",
+ "CONFIRM": {
+ "TITLE": "Հաստատել գնումը",
+ "DESCRIPTION": "Դուք պատրաստվում եք գնել {credits} կրեդիտ {amount} արժեքով։",
+ "INSTANT_DEDUCTION_NOTE": "Ձեր պահպանված քարտը անմիջապես կվճարվի հաստատումից հետո։",
+ "GO_BACK": "Վերադառնալ",
+ "CONFIRM_PURCHASE": "Հաստատել գնումը"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Անվտանգություն",
+ "DESCRIPTION": "Կառավարեք ձեր հաշվի անվտանգության կարգավորումները։",
+ "LINK_TEXT": "Իմանալ ավելին SAML SSO-ի մասին",
+ "SAML_DISABLED_MESSAGE": "SAML SSO-ն ներկայումս անջատված է։ Խնդրում ենք կապ հաստատել ձեր ադմինիստրատորի հետ՝ այս ֆունկցիան ակտիվացնելու համար։",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Կարգավորեք SAML միակ մուտքը ձեր հաշվի համար։ Օգտագործողները կհաստատվեն ձեր ինքնության մատակարարի միջոցով՝ էլ․ փոստի/գաղտնաբառի փոխարեն։",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Կարգավորեք այս URL-ը ձեր IdP-ում որպես SAML պատասխանների հասցե"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "URL, որտեղ կուղարկվեն SAML հաստատման հարցումները",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Ստորագրության սերտիֆիկատ PEM ձևաչափով",
+ "HELP": "Ձեր ինքնության մատակարարից ստացված հանրային սերտիֆիկատը՝ SAML պատասխանները ստուգելու համար",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Բնութագիր",
+ "TOOLTIP": "Սերտիֆիկատի SHA-1 բնութագիրը - Օգտագործեք սա ձեր IdP կարգավորումներում սերտիֆիկատը ստուգելու համար"
+ },
+ "COPY_SUCCESS": "Պատճենվել է սեղմատախտակին",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP սուբյեկտի ID",
+ "HELP": "Այս հավելվածի եզակի նույնացուցիչը որպես ծառայության մատակարար (ավտոմատ ստեղծված)։",
+ "TOOLTIP": "Chatwoot-ի եզակի նույնացուցիչը որպես Ծառայության մատակարար - Կարգավորեք սա ձեր IdP կարգավորումներում"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Ինքնության մատակարարի Entity ID",
+ "HELP": "Ձեր ինքնության մատակարարի եզակի նույնացուցիչը (հաճախ գտվում է IdP կարգավորումներում)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Թարմացնել SAML կարգավորումները",
+ "API": {
+ "SUCCESS": "SAML կարգավորումները հաջողությամբ թարմացվեցին",
+ "ERROR": "Չհաջողվեց թարմացնել SAML կարգավորումները",
+ "ERROR_LOADING": "Չհաջողվեց բեռնել SAML կարգավորումները",
+ "DISABLED": "SAML կարգավորումները հաջողությամբ անջատվեցին"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL-ը, Ինքնության մատակարարի Entity ID-ն և Սերտիֆիկատը պարտադիր դաշտեր են",
+ "SSO_URL_ERROR": "Խնդրում ենք մուտքագրել վավեր SSO URL",
+ "CERTIFICATE_ERROR": "Սերտիֆիկատը պարտադիր է",
+ "IDP_ENTITY_ID_ERROR": "Ինքնության մատակարարի Entity ID-ն պարտադիր է"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO ֆունկցիան հասանելի է միայն Enterprise պլաններում։",
+ "UPGRADE_PROMPT": "Թարմացեք Enterprise պլանի՝ SAML միակ մուտքի և այլ առաջադեմ անվտանգության հատկությունների հասանելիության համար։",
+ "ASK_ADMIN": "Խնդրում ենք դիմեք ձեր ադմինիստրատորին թարմացման համար։"
+ },
+ "PAYWALL": {
+ "TITLE": "Թարմացրեք՝ SAML SSO-ն ակտիվացնելու համար",
+ "AVAILABLE_ON": "SAML SSO ֆունկցիան հասանելի է միայն Enterprise պլաններում։",
+ "UPGRADE_PROMPT": "Թարմացրեք ձեր պլանը՝ SAML միակ մուտքի և այլ առաջադեմ հատկությունների հասանելիության համար։",
+ "UPGRADE_NOW": "Թարմացրեք հիմա",
+ "CANCEL_ANYTIME": "Դուք կարող եք ցանկացած պահի փոխել կամ չեղարկել ձեր պլանը"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML հատկանիշների կարգավորում",
+ "DESCRIPTION": "Հետևյալ հատկանիշների համապատասխանությունները պետք է կարգավորվեն ձեր ինքնության մատակարարում"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Ծառայության մատակարարի տեղեկություններ",
+ "TOOLTIP": "Պատճենեք այս արժեքները և կարգավորեք դրանք ձեր ինքնության մատակարարում՝ SAML կապը հաստատելու համար"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Զրույցների աշխատանքային հոսքեր",
+ "DESCRIPTION": "Կարգավորեք կանոնները և պահանջվող դաշտերը զրույցի լուծման համար։"
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Լուծման ժամանակ պահանջվող հատկություններ",
+ "DESCRIPTION": "Զրույցը լուծելիս գործակալներին կհայտնվի այս հատկությունները լրացնելու հրահանգ, եթե նրանք դեռ չեն լրացրել դրանք։",
+ "NO_ATTRIBUTES": "Հատկություններ դեռ չեն ավելացվել",
+ "ADD": {
+ "TITLE": "Ավելացնել հատկություններ",
+ "SEARCH_PLACEHOLDER": "Որոնել հատկություններ"
+ },
+ "SAVE": {
+ "SUCCESS": "Պահանջվող հատկությունները թարմացվել են",
+ "ERROR": "Չհաջողվեց թարմացնել պահանջվող հատկությունները, խնդրում ենք փորձել կրկին"
+ },
+ "MODAL": {
+ "TITLE": "Լուծել զրույցը",
+ "DESCRIPTION": "Խնդրում ենք լրացնել հետևյալ հարմարեցված հատկությունները նախքան այս զրույցը լուծելը",
+ "ACTIONS": {
+ "RESOLVE": "Լուծել զրույցը",
+ "CANCEL": "Չեղարկել"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Գրեք նշում...",
+ "NUMBER": "Մուտքագրեք թիվ",
+ "LINK": "Ավելացնել հղում",
+ "DATE": "Ընտրել ամսաթիվ",
+ "LIST": "Ընտրել տարբերակ"
+ },
+ "CHECKBOX": {
+ "YES": "Այո",
+ "NO": "Ոչ"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Արդիականացրեք՝ օգտագործելու համար պահանջվող հատկությունները",
+ "AVAILABLE_ON": "Պահանջվող զրույցի հատկությունների ֆունկցիոնալությունը հասանելի է Business և Enterprise պլաններում։",
+ "UPGRADE_PROMPT": "Արդիականացրեք ձեր պլանը՝ գործակալներին զրույցի լուծումից առաջ պահանջվող հատկությունները լրացնելու հրահանգ տալու համար։",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "Օհ, մենք չգտանք Chatwoot հաշիվներ: Խնդրում ենք ստեղծել նոր հաշիվ շարունակելու համար",
+ "NEW_ACCOUNT": "Նոր հաշիվ",
+ "SELECTOR_SUBTITLE": "Ստեղծել նոր հաշիվ",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Հաշիվը հաջողությամբ ստեղծվել է",
+ "EXIST_MESSAGE": "Հաշիվը արդեն գոյություն ունի",
+ "ERROR_MESSAGE": "Չհաջողվեց կապ հաստատել Woot Server-ի հետ, խնդրում ենք փորձել ավելի ուշ"
},
"FORM": {
"NAME": {
- "LABEL": "Company Name",
+ "LABEL": "Ընկերության անուն",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Ուղարկել",
+ "CANCEL": "Չեղարկել"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "Դիտել բոլոր կարճուղիները",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "Բացել զրույցը",
+ "RESOLVE_AND_NEXT": "Լուծել և անցնել հաջորդին",
+ "NAVIGATE_DROPDOWN": "Շարժվել բացվող ցանկի տարրերի միջև",
+ "RESOLVE_CONVERSATION": "Լուծել զրույցը",
+ "GO_TO_CONVERSATION_DASHBOARD": "Գնալ զրույցների վահանակ",
+ "ADD_ATTACHMENT": "Ավելացնել կցորդ",
+ "GO_TO_CONTACTS_DASHBOARD": "Գնալ կապերի վահանակ",
+ "TOGGLE_SIDEBAR": "Փոխել կողային վահանակը",
+ "GO_TO_REPORTS_SIDEBAR": "Գնալ հաշվետվությունների կողային վահանակ",
+ "MOVE_TO_NEXT_TAB": "Շարժվել զրույցների ցուցակի հաջորդ ներդիրին",
+ "GO_TO_SETTINGS": "Գնալ կարգավորումներ",
+ "SWITCH_TO_PRIVATE_NOTE": "Փոխել անձնական նշման",
+ "SWITCH_TO_REPLY": "Փոխել պատասխանին",
+ "TOGGLE_SNOOZE_DROPDOWN": "Փոխել ժամանակավոր դադարեցման բացվող ցանկը"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Գործակալների նշանակում",
+ "DESCRIPTION": "Սահմանեք քաղաքականություններ՝ արդյունավետ կառավարելու աշխատանքային բեռը և ուղղորդելու զրույցները՝ հիմնվելով մուտքային արկղերի և գործակալների կարիքների վրա։ Կարդացեք ավելին այստեղ"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Նշանակման քաղաքականություն",
+ "DESCRIPTION": "Կառավարեք, թե ինչպես են զրույցները նշանակվում մուտքային արկղերում։",
+ "FEATURES": [
+ "Նշանակել զրույցների հավասարաչափ կամ մատչելի հզորության հիման վրա",
+ "Ավելացնել արդար բաշխման կանոններ՝ խուսափելու համար գործակալների ծանրաբեռնվածությունից",
+ "Ավելացնել մուտքային արկղեր քաղաքականությանը՝ մեկ քաղաքականություն մեկ մուտքային արկղի համար"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Գործակալների հզորության քաղաքականություն",
+ "DESCRIPTION": "Կառավարեք գործակալների աշխատանքային բեռը։",
+ "FEATURES": [
+ "Սահմանեք առավելագույն զրույցների քանակը մեկ մուտքային արկղում",
+ "Ստեղծեք բացառություններ պիտակների և ժամանակի հիման վրա",
+ "Ավելացնել գործակալներ քաղաքականությանը՝ մեկ քաղաքականություն մեկ գործակալին"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Նշանակման քաղաքականություն",
+ "CREATE_POLICY": "Նոր քաղաքականություն"
+ },
+ "CARD": {
+ "ORDER": "Հերթ",
+ "PRIORITY": "Առաջնահերթություն",
+ "ACTIVE": "Ակտիվ",
+ "INACTIVE": "Անգործուն",
+ "POPOVER": "Ավելացված մուտքային տուփեր",
+ "EDIT": "Խմբագրել"
+ },
+ "NO_RECORDS_FOUND": "Առանձնացման քաղաքականություններ չեն գտնվել"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Ստեղծել առանձնացման քաղաքականություն"
+ },
+ "CREATE_BUTTON": "Ստեղծել քաղաքականություն",
+ "API": {
+ "SUCCESS_MESSAGE": "Առանձնացման քաղաքականությունը հաջողությամբ ստեղծվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել առանձնացման քաղաքականությունը",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Խմբագրել առանձնացման քաղաքականությունը"
+ },
+ "EDIT_BUTTON": "Թարմացնել քաղաքականությունը",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Ավելացնել մուտքային տուփ",
+ "DESCRIPTION": "{inboxName} մուտքային տուփը արդեն կապված է մեկ այլ քաղաքականության հետ։ Համոզվա՞ծ եք, որ ցանկանում եք կապել այն այս քաղաքականությանը։ Այն անկապ կդառնա մյուս քաղաքականությունից։",
+ "CONFIRM_BUTTON_LABEL": "Շարունակել",
+ "CANCEL_BUTTON_LABEL": "Չեղարկել"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Առանձնացման քաղաքականությունը հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել առանձնացման քաղաքականությունը"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Մուտքային տուփը հաջողությամբ ավելացվեց քաղաքականությանը",
+ "ERROR_MESSAGE": "Չհաջողվեց մուտքային տուփը ավելացնել քաղաքականությանը"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Մուտքի տուփը հաջողությամբ հեռացվեց քաղաքականությունից",
+ "ERROR_MESSAGE": "Չհաջողվեց մուտքի տուփը հեռացնել քաղաքականությունից"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Քաղաքականության անունը:",
+ "PLACEHOLDER": "Մուտքագրեք քաղաքականության անունը"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն:",
+ "PLACEHOLDER": "Մուտքագրեք նկարագրությունը"
+ },
+ "STATUS": {
+ "LABEL": "Կարգավիճակ:",
+ "PLACEHOLDER": "Ընտրեք կարգավիճակը",
+ "ACTIVE": "Քաղաքականությունը ակտիվ է",
+ "INACTIVE": "Քաղաքականությունը անգործուն է"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Առանձնացման կարգը",
+ "ROUND_ROBIN": {
+ "LABEL": "Շրջանաձև հերթափոխ",
+ "DESCRIPTION": "Հաղորդակցությունները հավասարաչափ բաժանել գործակալների միջև։"
+ },
+ "BALANCED": {
+ "LABEL": "Հավասարակշռված",
+ "DESCRIPTION": "Հաղորդակցությունները հատկացնել ըստ հասանելի հզորության։",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Առանձնացման առաջնահերթություն",
+ "EARLIEST_CREATED": {
+ "LABEL": "Առաջին ստեղծվածը",
+ "DESCRIPTION": "Առաջին ստեղծված զրույցը կստանա առաջնահերթություն։"
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Ամենաերկար սպասողը",
+ "DESCRIPTION": "Ամենաերկար սպասող զրույցը կստանա առաջնահերթություն։"
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Արդար բաշխման քաղաքականություն",
+ "DESCRIPTION": "Սահմանեք առավելագույն զրույցների քանակը, որոնք կարող են հատկացվել մեկ գործակալին որոշակի ժամանակահատվածում՝ խուսափելու համար գործակալների ծանրաբեռնվածությունից։ Այս պարտադիր դաշտի նախնական արժեքն է՝ 100 զրույց ժամում։",
+ "INPUT_MAX": "Առավելագույն հատկացում",
+ "DURATION": "Զրույցներ յուրաքանչյուր գործակալին յուրաքանչյուր"
+ },
+ "INBOXES": {
+ "LABEL": "Ավելացված մուտքի տուփեր",
+ "DESCRIPTION": "Ավելացրեք մուտքի տուփեր, որոնց համար այս քաղաքականությունը կկիրառվի։",
+ "ADD_BUTTON": "Ավելացնել մուտքի տուփ",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Որոնել և ընտրել մուտքի տուփեր ավելացնելու համար",
+ "ADD_BUTTON": "Ավելացնել"
+ },
+ "EMPTY_STATE": "Այս քաղաքականությանը մուտքի տուփեր չեն ավելացվել, սկսելու համար ավելացրեք մուտքի տուփ",
+ "API": {
+ "SUCCESS_MESSAGE": "Մուտքի տուփը հաջողությամբ ավելացվեց քաղաքականությանը",
+ "ERROR_MESSAGE": "Չհաջողվեց մուտքի տուփը ավելացնել քաղաքականությանը"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Առանձնացման քաղաքականությունը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել առանձնացման քաղաքականությունը"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Գործակալների հզորություն",
+ "CREATE_POLICY": "Նոր քաղաքականություն"
+ },
+ "CARD": {
+ "POPOVER": "Ավելացված գործակալներ",
+ "EDIT": "Խմբագրել"
+ },
+ "NO_RECORDS_FOUND": "Գործակալների հզորության քաղաքականություններ չեն գտնվել"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Ստեղծել գործակալների հզորության քաղաքականություն"
+ },
+ "CREATE_BUTTON": "Ստեղծել քաղաքականություն",
+ "API": {
+ "SUCCESS_MESSAGE": "Գործակալների հզորության քաղաքականությունը հաջողությամբ ստեղծվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ստեղծել գործակալների հզորության քաղաքականությունը"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Խմբագրել գործակալների հզորության քաղաքականությունը"
+ },
+ "EDIT_BUTTON": "Թարմացնել քաղաքականությունը",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Ավելացնել գործակալ",
+ "DESCRIPTION": "{agentName} գործակալը արդեն կապված է մեկ այլ քաղաքականության հետ։ Համոզվա՞ծ եք, որ ցանկանում եք կապել այն այս քաղաքականությանը։ Այն անկապ կդառնա մյուս քաղաքականությունից։",
+ "CONFIRM_BUTTON_LABEL": "Շարունակել",
+ "CANCEL_BUTTON_LABEL": "Չեղարկել"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Գործակալների հզորության քաղաքականությունը հաջողությամբ թարմացվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց թարմացնել գործակալների հզորության քաղաքականությունը"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Գործակալը հաջողությամբ ավելացվեց քաղաքականությանը",
+ "ERROR_MESSAGE": "Չհաջողվեց գործակալին ավելացնել քաղաքականությանը"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Գործակալը հաջողությամբ հեռացվեց քաղաքականությունից",
+ "ERROR_MESSAGE": "Չհաջողվեց հեռացնել գործակալին քաղաքականությունից"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Քաղաքականության անունը:",
+ "PLACEHOLDER": "Մուտքագրեք քաղաքականության անունը"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Նկարագրություն:",
+ "PLACEHOLDER": "Մուտքագրեք նկարագրությունը"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Նամակների տարողության սահմաններ",
+ "ADD_BUTTON": "Ավելացնել նամակ",
+ "FIELD": {
+ "SELECT_INBOX": "Ընտրեք նամակը",
+ "MAX_CONVERSATIONS": "Առավելագույն զրույցներ",
+ "SET_LIMIT": "Սահմանել սահմանը"
+ },
+ "EMPTY_STATE": "Նամակների սահման չի սահմանվել"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Բացառման կանոններ",
+ "DESCRIPTION": "Զրույցները, որոնք համապատասխանում են հետևյալ պայմաններին, չեն հաշվում գործակալների տարողության մեջ",
+ "TAGS": {
+ "LABEL": "Բացառել զրույցները, որոնք նշագրված են հատուկ պիտակներով",
+ "ADD_TAG": "ավելացնել պիտակ",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Որոնել և ընտրել ավելացնելու պիտակները"
+ },
+ "EMPTY_STATE": "Այս քաղաքականությանը պիտակներ չեն ավելացված։"
+ },
+ "DURATION": {
+ "LABEL": "Բացառել զրույցները, որոնք ավելի հին են, քան նշված ժամանակահատվածը",
+ "PLACEHOLDER": "Սահմանել ժամանակը"
+ }
+ },
+ "USERS": {
+ "LABEL": "Նշանակված գործակալներ",
+ "DESCRIPTION": "Ավելացրեք գործակալներ, որոնց համար այս քաղաքականությունը կկիրառվի։",
+ "ADD_BUTTON": "Ավելացնել գործակալ",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Որոնել և ընտրել ավելացնելու գործակալները",
+ "ADD_BUTTON": "Ավելացնել"
+ },
+ "EMPTY_STATE": "Գործակալներ չեն ավելացված",
+ "API": {
+ "SUCCESS_MESSAGE": "Գործակալը հաջողությամբ ավելացվեց քաղաքականությանը",
+ "ERROR_MESSAGE": "Չհաջողվեց ավելացնել գործակալին քաղաքականությանը"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Գործակալների հզորության քաղաքականությունը հաջողությամբ ջնջվեց",
+ "ERROR_MESSAGE": "Չհաջողվեց ջնջել գործակալների հզորության քաղաքականությունը"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Ջնջել քաղաքականությունը",
+ "DESCRIPTION": "Համոզվա՞ծ եք, որ ցանկանում եք ջնջել այս քաղաքականությունը։ Այս գործողությունը չի կարող հետադարձվել։",
+ "CONFIRM_BUTTON_LABEL": "Ջնջել",
+ "CANCEL_BUTTON_LABEL": "Չեղարկել"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/signup.json b/app/javascript/dashboard/i18n/locale/hy/signup.json
index 10ddc5b86..dc06c7501 100644
--- a/app/javascript/dashboard/i18n/locale/hy/signup.json
+++ b/app/javascript/dashboard/i18n/locale/hy/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Passwords do not match"
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Վերակազմակերպել հաստատման էլեկտրոնային փոստը",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/sla.json b/app/javascript/dashboard/i18n/locale/hy/sla.json
index 806746b75..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/hy/sla.json
+++ b/app/javascript/dashboard/i18n/locale/hy/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/snooze.json b/app/javascript/dashboard/i18n/locale/hy/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json b/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
index f9ecaaaae..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/hy/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/hy/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/hy/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/hy/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/hy/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/hy/yearInReview.json b/app/javascript/dashboard/i18n/locale/hy/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/hy/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/advancedFilters.json b/app/javascript/dashboard/i18n/locale/id/advancedFilters.json
index 361910761..3af76d803 100644
--- a/app/javascript/dashboard/i18n/locale/id/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/id/advancedFilters.json
@@ -4,7 +4,7 @@
"SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
"EDIT_CUSTOM_FILTER": "Edit Folder",
"CUSTOM_VIEWS_SUBTITLE": "Tambahkan atau hapus filter dan perbarui folder Anda.",
- "ADD_NEW_FILTER": "Add filter",
+ "ADD_NEW_FILTER": "Tambah filter",
"FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
"SUBMIT_BUTTON_LABEL": "Terapkan filter",
"UPDATE_BUTTON_LABEL": "Perbarui folder",
@@ -18,17 +18,27 @@
"AND": "DAN",
"OR": "ATAU"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Sama dengan",
"not_equal_to": "Tidak sama dengan",
- "contains": "Berisi",
"does_not_contain": "Tidak berisi",
"is_present": "Ada",
"is_not_present": "Tidak ada",
"is_greater_than": "Lebih besar dari",
"is_less_than": "Lebih kecil dari",
"days_before": "X hari sebelum",
- "starts_with": "Dimulai dengan"
+ "starts_with": "Dimulai dengan",
+ "equalTo": "Sama dengan",
+ "notEqualTo": "Tidak sama dengan",
+ "contains": "Berisi",
+ "doesNotContain": "Tidak berisi",
+ "isPresent": "Ada",
+ "isNotPresent": "Tidak ada",
+ "isGreaterThan": "Lebih besar dari",
+ "isLessThan": "Lebih kecil dari",
+ "daysBefore": "X hari sebelum",
+ "startsWith": "Dimulai dengan"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Benar",
@@ -42,9 +52,9 @@
"CONVERSATION_IDENTIFIER": "Conversation identifier",
"CAMPAIGN_NAME": "Campaign name",
"LABELS": "Label",
- "BROWSER_LANGUAGE": "Browser language",
+ "BROWSER_LANGUAGE": "Bahasa peramban",
"PRIORITY": "Prioritas",
- "COUNTRY_NAME": "Country name",
+ "COUNTRY_NAME": "Nama negara",
"REFERER_LINK": "Tautan Referer",
"CUSTOM_ATTRIBUTE_LIST": "Daftar",
"CUSTOM_ATTRIBUTE_TEXT": "Teks",
@@ -54,10 +64,16 @@
"CREATED_AT": "Dibuat pada",
"LAST_ACTIVITY": "Aktivitas terakhir"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nilai dibutuhkan",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "CUSTOM_ATTRIBUTES": "Atribut kostum"
},
"CUSTOM_VIEWS": {
"ADD": {
@@ -85,7 +101,7 @@
"CONFIRM": {
"TITLE": "Konfirmasi penghapusan",
"MESSAGE": "Apakah Anda yakin ingin menghapus filter ",
- "YES": "Yes, delete",
+ "YES": "Ya, hapus",
"NO": "Tidak, simpan"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/id/agentBots.json b/app/javascript/dashboard/i18n/locale/id/agentBots.json
index c963e91d8..6f619e280 100644
--- a/app/javascript/dashboard/i18n/locale/id/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/id/agentBots.json
@@ -1,30 +1,23 @@
{
"AGENT_BOTS": {
"HEADER": "Bot",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "DESC": "Tetapkan Bot Agen ke kotak masuk Anda. Mereka dapat menangani percakapan awal dan meneruskannya ke agen manusia jika diperlukan.",
"SUBMIT": "Perbarui",
- "DISCONNECT": "Disconnect bot",
+ "DISCONNECT": "Putuskan koneksi",
"SUCCESS_MESSAGE": "Berhasil memperbarui bot agen.",
"DISCONNECTED_SUCCESS_MESSAGE": "Berhasil memutuskan hubungan bot agen.",
"ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
@@ -32,7 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Aksi"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
index 44cb7546b..4296cb328 100644
--- a/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agen",
"HEADER_BTN_TXT": "Tambahkan Agen",
"LOADING": "Mendapatkan Daftar Agen",
- "SIDEBAR_TXT": "Agen
Seorang Agen adalah anggota tim Dukungan Pelanggan Anda.
Agen akan dapat melihat dan membalas pesan dari pengguna Anda. Daftar ini menunjukkan semua agen yang saat ini ada di akun Anda.
Klik Pada Tambah Agent untuk menambahkan agen baru. Agen yang Anda tambahkan akan menerima email dengan tautan konfirmasi untuk mengaktifkan akun mereka, setelah itu mereka dapat mengakses Chatwoot dan menanggapi pesan.
Akses ke fitur Chatwoot didasarkan pada wewenang berikut.
Agen - Agen dengan wewenang ini hanya dapat mengakses kotak masuk, laporan, dan percakapan. Mereka dapat menetapkan percakapan ke agen lain atau diri mereka sendiri dan menyelesaikan percakapan.
Administrator - Administrator akan memiliki akses ke semua fitur Chatwoot yang diaktifkan untuk akun Anda, termasuk pengaturan, bersama dengan semua hak istimewa agen normal.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agen"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tidak ada agen yang terkait dengan akun ini",
"TITLE": "Kelola agen di tim Anda",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Aksi",
"VERIFIED": "Diverifikasi",
- "VERIFICATION_PENDING": "Verifikasi Pending"
+ "VERIFICATION_PENDING": "Verifikasi Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Tambahkan agen ke tim Anda",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Tidak dapat terhubung ke Server Woot, Silahkan coba lagi nanti"
}
},
+ "SEARCH_PLACEHOLDER": "Mencari Agen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Tidak ada hasil ditemukan."
},
@@ -103,6 +108,9 @@
"AGENT": "Pilih Agen",
"TEAM": "Pilih tim"
},
+ "LIST": {
+ "NONE": "Tidak ada"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Tidak ada agen",
diff --git a/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
index 3f6414296..7ad04459d 100644
--- a/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Atribut Kustom",
"HEADER_BTN_TXT": "Tambah Atribut Kustom",
"LOADING": "Mengambil atribut kustom",
- "SIDEBAR_TXT": "Atribut Kustom
Atribut kustom melacak fakta tentang kontak/percakapan Anda — seperti rencana langganan, atau kapan mereka memesan item pertama, dll.
Untuk membuat Atribut Kustom, cukup klik tombol Tambah Atribut Kustom. Anda juga dapat mengedit atau menghapus Atribut Kustom yang sudah ada dengan mengklik tombol Edit atau Hapus.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Cari atribut...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Percakapan",
+ "CONTACT": "Kontak",
+ "COMPANY": "Perusahaan"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Teks",
+ "NUMBER": "Nomor",
+ "LINK": "Tautan",
+ "DATE": "Date",
+ "LIST": "Daftar",
+ "CHECKBOX": "Kotak centang"
+ },
"ADD": {
"TITLE": "Tambah Atribut Kustom",
"SUBMIT": "Buat",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,8 +85,8 @@
"ERROR_MESSAGE": "Tidak dapat menghapus Atribut Kustom. Coba lagi."
},
"CONFIRM": {
- "TITLE": "Anda yakin akan menghapus - %{attributeName}",
- "PLACE_HOLDER": "Silakan ketik %{attributeName} untuk konfirmasi",
+ "TITLE": "Anda yakin akan menghapus - {attributeName}",
+ "PLACE_HOLDER": "Silakan ketik {attributeName} untuk konfirmasi",
"MESSAGE": "Menghapus akan menghapus atribut kustom",
"YES": "Hapus ",
"NO": "Batalkan"
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Atribut Kustom",
"CONVERSATION": "Percakapan",
- "CONTACT": "Kontak"
+ "CONTACT": "Kontak",
+ "COMPANY": "Perusahaan"
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Deskripsi",
- "Tipe",
- "Kunci"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Deskripsi",
+ "TYPE": "Tipe",
+ "KEY": "Kunci"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Hapus"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/auditLogs.json b/app/javascript/dashboard/i18n/locale/id/auditLogs.json
index 363bd3865..f579ef475 100644
--- a/app/javascript/dashboard/i18n/locale/id/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/id/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Catatan Audit",
"HEADER_BTN_TXT": "Tambahkan Catatan Audit",
"LOADING": "Mengambil Catatan Audit",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini",
"SIDEBAR_TXT": "Catatan Audit
Catatan Audit adalah jejak untuk peristiwa dan tindakan dalam Sistem Chatwoot.
",
"LIST": {
"404": "Tidak ada Catatan Audit yang tersedia di akun ini.",
"TITLE": "Kelola Catatan Audit",
"DESC": "Catatan Audit adalah jejak untuk peristiwa dan tindakan dalam Sistem Chatwoot.",
- "TABLE_HEADER": [
- "Pengguna",
- "Tindakan",
- "Alamat IP"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Pengguna",
+ "TIME": "Tindakan",
+ "IP_ADDRESS": "Alamat IP"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Catatan Audit berhasil diambil",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Sistem",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} membuat aturan otomatisasi baru (#%{id})",
- "EDIT": "%{agentName} memperbarui aturan otomatisasi (#%{id})",
- "DELETE": "%{agentName} menghapus aturan otomatisasi (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} mengundang %{invitee} ke akun sebagai %{role}",
+ "ADD": "{agentName} mengundang {invitee} ke akun sebagai {role}",
"EDIT": {
- "SELF": "%{agentName} mengubah %{attributes} mereka menjadi %{values}",
- "OTHER": "%{agentName} mengubah %{attributes} dari %{user} menjadi %{values}"
+ "SELF": "{agentName} mengubah {attributes} mereka menjadi {values}",
+ "OTHER": "{agentName} mengubah {attributes} dari {user} menjadi {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} membuat kotak masuk baru (#%{id})",
- "EDIT": "%{agentName} memperbarui kotak masuk (#%{id})",
- "DELETE": "%{agentName} menghapus kotak masuk (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} membuat webhook baru (#%{id})",
- "EDIT": "%{agentName} memperbarui webhook (#%{id})",
- "DELETE": "%{agentName} menghapus webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} masuk",
- "SIGN_OUT": "%{agentName} keluar"
+ "SIGN_IN": "{agentName} masuk",
+ "SIGN_OUT": "{agentName} keluar"
},
"TEAM": {
- "ADD": "%{agentName} membuat tim baru (#%{id})",
- "EDIT": "%{agentName} memperbarui tim (#%{id})",
- "DELETE": "%{agentName} menghapus tim (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} membuat makro baru (#%{id})",
- "EDIT": "%{agentName} memperbarui makro (#%{id})",
- "DELETE": "%{agentName} menghapus makro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 87a52e563..a8b125aa6 100644
--- a/app/javascript/dashboard/i18n/locale/id/automation.json
+++ b/app/javascript/dashboard/i18n/locale/id/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
"HEADER": "Otomatisasi",
- "HEADER_BTN_TXT": "Tambah Aturan Otomatisasi",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Mengambil aturan otomatisasi",
- "SIDEBAR_TXT": "Aturan Otomatisasi
Otomatisasi dapat menggantikan dan mengotomatisasi proses yang memerlukan upaya manual. Anda dapat melakukan banyak hal dengan otomatisasi, termasuk menambahkan label dan menugaskan percakapan kepada agen terbaik. Dengan begitu, tim fokus pada hal-hal yang mereka lakukan dengan baik dan menghabiskan lebih sedikit waktu untuk tugas-tugas manual.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Tambah Aturan Otomatisasi",
"SUBMIT": "Buat",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Deskripsi",
- "Aktif",
- "Dibuat pada"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "ACTIVE": "Aktif",
+ "CREATED_ON": "Dibuat pada",
+ "ACTIONS": "Aksi"
+ },
"404": "Tidak ada aturan otomatisasi ditemukan"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Anda harus memiliki setidaknya satu aksi untuk disimpan",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Masukkan pesan Anda di sini",
- "TEAM_DROPDOWN_PLACEHOLDER": "Pilih tim"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Pilih tim",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Aktifkan Aturan Otomatisasi",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Mengunggah...",
"LABEL_UPLOADED": "Berhasil Diunggah",
"LABEL_UPLOAD_FAILED": "Gagal Mengunggah"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Nilai dibutuhkan",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Tidak ada",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Percakapan Dibuat",
+ "CONVERSATION_UPDATED": "Percakapan Diperbarui",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Ubah Prioritas",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Buka percakapan",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Tidak ada",
+ "LOW": "Rendah",
+ "MEDIUM": "Sedang",
+ "HIGH": "Tinggi",
+ "URGENT": "Penting"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Catatan Pribadi",
+ "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",
+ "COMPANY_NAME": "Perusahaan",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Tim",
+ "PRIORITY": "Prioritas",
+ "LABELS": "Label"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/bulkActions.json b/app/javascript/dashboard/i18n/locale/id/bulkActions.json
index 2390ca58f..7e7a9ab77 100644
--- a/app/javascript/dashboard/i18n/locale/id/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/id/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} percakapan dipilih",
- "AGENT_SELECT_LABEL": "Pilih Agen",
- "ASSIGN_CONFIRMATION_LABEL": "Apakah Anda yakin ingin menugaskan %{conversationCount} %{conversationLabel} kepada",
- "UNASSIGN_CONFIRMATION_LABEL": "Apakah Anda yakin ingin melepaskan penugasan dari %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Kembali",
- "ASSIGN_LABEL": "Tugaskan",
+ "CONVERSATIONS_SELECTED": "{conversationCount} percakapan dipilih",
+ "NONE": "Tidak ada",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ya",
+ "CANCEL": "Batalkan",
+ "SEARCH_INPUT_PLACEHOLDER": "Cari",
"ASSIGN_AGENT_TOOLTIP": "Tugaskan agen",
"ASSIGN_TEAM_TOOLTIP": "Tugaskan tim",
"ASSIGN_SUCCESFUL": "Percakapan berhasil ditugaskan.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Percakapan berhasil diselesaikan.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Percakapan yang terlihat di halaman ini hanya yang dipilih.",
- "AGENT_LIST_LOADING": "Sedang memuat agen",
"UPDATE": {
"CHANGE_STATUS": "Ubah status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Tunda hingga balasan berikutnya.",
+ "SNOOZE_UNTIL": "Tunda",
"UPDATE_SUCCESFUL": "Status percakapan berhasil diperbarui.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Tidak ada label ditemukan untuk",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Tugaskan label terpilih",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Label berhasil ditugaskan.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Pilih tim",
"NONE": "Tidak ada",
- "NO_TEAMS_AVAILABLE": "Belum ada tim yang ditambahkan ke akun ini.",
- "ASSIGN_SELECTED_TEAMS": "Tugaskan tim terpilih.",
- "ASSIGN_SUCCESFUL": "Tim berhasil ditugaskan.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/campaign.json b/app/javascript/dashboard/i18n/locale/id/campaign.json
index eda7cf36f..6faebd197 100644
--- a/app/javascript/dashboard/i18n/locale/id/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/id/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampanye",
- "SIDEBAR_TXT": "Pesan proaktif mengizinkan pelanggan untuk mengirimkan pesan keluar kepada kontak mereka yang akan memicu percakapan lebih. Klik pada Tambahkan Kampanye untuk membuat sebuah kampanye baru. Anda juga dapat mengedit atau menghapus kampanye yang telah ada dengan mengklik pada tombol Edit atau Delete.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Buat kampanye sekali pakai",
- "ONGOING": "Buat kampanye berkelanjutan"
- },
- "ADD": {
- "TITLE": "Buat sebuah kampanye",
- "DESC": "Pesan proaktif mengizinkan pelanggan untuk mengirimkan pesan keluar kepada kontak mereka yang akan memicu percakapan lebih.",
- "CANCEL_BUTTON_TEXT": "Batalkan",
- "CREATE_BUTTON_TEXT": "Buat",
- "FORM": {
- "TITLE": {
- "LABEL": "Judul",
- "PLACEHOLDER": "Silakan masukkan judul kampanye",
- "ERROR": "Judul wajib diisi"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Diaktifkan",
+ "DISABLED": "Nonaktif"
},
- "SCHEDULED_AT": {
- "LABEL": "Waktu penjadwalan",
- "PLACEHOLDER": "Silakan pilih waktu",
- "CONFIRM": "Konfirmasi",
- "ERROR": "Jadwal waktu wajib diisi"
- },
- "AUDIENCE": {
- "LABEL": "Hadirin",
- "PLACEHOLDER": "Pilih label pelanggan",
- "ERROR": "Hadirin wajib diisi"
- },
- "INBOX": {
- "LABEL": "Pilih kotak masuk",
- "PLACEHOLDER": "Pilih Kotak Masuk",
- "ERROR": "Kotak Masuk wajib diisi"
- },
- "MESSAGE": {
- "LABEL": "Pesan",
- "PLACEHOLDER": "Silakan masukkan pesan kampanye",
- "ERROR": "Pesan wajib diisi"
- },
- "SENT_BY": {
- "LABEL": "Dikirim oleh",
- "PLACEHOLDER": "Silakan pilih isi kampanye",
- "ERROR": "Pengirim wajib diisi"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Silakan masukkan URL",
- "ERROR": "Harap masukkan URL yang valid"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Waktu pada halaman(detik)",
- "PLACEHOLDER": "Silakan masukkan waktu",
- "ERROR": "Waktu pada halaman wajib diisi"
- },
- "ENABLED": "Aktifkan kampanye",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Pemicu hanya selama jam kerja",
- "SUBMIT": "Tambahkan kampanye"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Dikirim oleh",
+ "BOT": "Bot",
+ "FROM": "dari",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampanye telah berhasil dibuat",
- "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Buat",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Judul",
+ "PLACEHOLDER": "Silakan masukkan judul kampanye",
+ "ERROR": "Judul wajib diisi"
+ },
+ "MESSAGE": {
+ "LABEL": "Pesan",
+ "PLACEHOLDER": "Silakan masukkan pesan kampanye",
+ "ERROR": "Pesan wajib diisi"
+ },
+ "INBOX": {
+ "LABEL": "Pilih Kotak Masuk",
+ "PLACEHOLDER": "Pilih Kotak Masuk",
+ "ERROR": "Kotak Masuk wajib diisi"
+ },
+ "SENT_BY": {
+ "LABEL": "Dikirim oleh",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Pengirim wajib diisi"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Silakan masukkan URL",
+ "ERROR": "Harap masukkan URL yang valid"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Waktu pada halaman(detik)",
+ "PLACEHOLDER": "Silakan masukkan waktu",
+ "ERROR": "Waktu pada halaman wajib diisi"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Aktifkan kampanye",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Pemicu hanya selama jam kerja"
+ },
+ "BUTTONS": {
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Hapus",
- "CONFIRM": {
- "TITLE": "Konfirmasi Penghapusan",
- "MESSAGE": "Apakah Anda yakin untuk menghapus?",
- "YES": "Ya, Hapus ",
- "NO": "Tidak, Simpan "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Selesai",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Buat",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Judul",
+ "PLACEHOLDER": "Silakan masukkan judul kampanye",
+ "ERROR": "Judul wajib diisi"
+ },
+ "MESSAGE": {
+ "LABEL": "Pesan",
+ "PLACEHOLDER": "Silakan masukkan pesan kampanye",
+ "ERROR": "Pesan wajib diisi"
+ },
+ "INBOX": {
+ "LABEL": "Pilih Kotak Masuk",
+ "PLACEHOLDER": "Pilih Kotak Masuk",
+ "ERROR": "Kotak Masuk wajib diisi"
+ },
+ "AUDIENCE": {
+ "LABEL": "Hadirin",
+ "PLACEHOLDER": "Pilih label pelanggan",
+ "ERROR": "Hadirin wajib diisi"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Waktu penjadwalan",
+ "PLACEHOLDER": "Silakan pilih waktu",
+ "ERROR": "Jadwal waktu wajib diisi"
+ },
+ "BUTTONS": {
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Selesai",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Buat",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Judul",
+ "PLACEHOLDER": "Silakan masukkan judul kampanye",
+ "ERROR": "Judul wajib diisi"
+ },
+ "INBOX": {
+ "LABEL": "Pilih Kotak Masuk",
+ "PLACEHOLDER": "Pilih Kotak Masuk",
+ "ERROR": "Kotak Masuk wajib diisi"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Bahasa",
+ "CATEGORY": "Kategori",
+ "VARIABLES_LABEL": "Variabel",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Hadirin",
+ "PLACEHOLDER": "Pilih label pelanggan",
+ "ERROR": "Hadirin wajib diisi"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Waktu penjadwalan",
+ "PLACEHOLDER": "Silakan pilih waktu",
+ "ERROR": "Jadwal waktu wajib diisi"
+ },
+ "BUTTONS": {
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Apakah Anda yakin ingin menghapus?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Hapus",
"API": {
"SUCCESS_MESSAGE": "Kampanye berhasil dihapus",
- "ERROR_MESSAGE": "Tidak dapat menghapus kampanye. Silakan coba lagi nanti."
+ "ERROR_MESSAGE": "Terjadi sebuah kesalahan. Silakan coba lagi."
}
- },
- "EDIT": {
- "TITLE": "Edit kampanye",
- "UPDATE_BUTTON_TEXT": "Perbarui",
- "API": {
- "SUCCESS_MESSAGE": "Kampanye berhasil diperbarui",
- "ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Memuat kampanye...",
- "404": "Tidak ada kampanye yang dibuat untuk kotak masuk ini.",
- "TABLE_HEADER": {
- "TITLE": "Judul",
- "MESSAGE": "Pesan",
- "INBOX": "Kotak masuk",
- "STATUS": "Status",
- "SENDER": "Pengirim",
- "URL": "URL",
- "SCHEDULED_AT": "Waktu penjadwalan",
- "TIME_ON_PAGE": "Waktu(Detik)",
- "CREATED_AT": "Dibuat pada"
- },
- "BUTTONS": {
- "ADD": "Tambah",
- "EDIT": "Edit",
- "DELETE": "Hapus"
- },
- "STATUS": {
- "ENABLED": "Diaktifkan",
- "DISABLED": "Nonaktif",
- "COMPLETED": "Selesai",
- "ACTIVE": "Aktif"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Kampanye sekali pakai",
- "404": "Tidak ada kampanye yang dibuat oleh siapa pun",
- "INBOXES_NOT_FOUND": "Silakan buat sebuah kotak masuk sms dan mulai menambahkan kampanye"
- },
- "ONGOING": {
- "HEADER": "Kampanye yang sedang berlangsung",
- "404": "Tidak ada kampanye yang sedang berlangsung yang dibuat",
- "INBOXES_NOT_FOUND": "Silakan buat sebuah kotak masuk sms dan mulai menambahkan kampanye"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
index 205ed3dec..5b2333c1d 100644
--- a/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Balasan Canned",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Tidak ada balasan canned yang tersedia di akun ini.",
"TITLE": "Kelola Balasan Canned",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Konten",
- "Aksi"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Konten",
+ "ACTIONS": "Aksi"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/id/chatlist.json b/app/javascript/dashboard/i18n/locale/id/chatlist.json
index 625a810ff..3735815e0 100644
--- a/app/javascript/dashboard/i18n/locale/id/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/id/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Tidak ada percakapan aktif di grup ini."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Percakapan",
"MENTION_HEADING": "Sebutkan",
"UNATTENDED_HEADING": "Belum dihadiri",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Lokasi"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "telah membagikan url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Tidak ada konten yang tersedia",
"HIDE_QUOTED_TEXT": "Sembunyikan Teks yang Dikutip",
"SHOW_QUOTED_TEXT": "Tampilkan Teks yang Dikutip",
- "MESSAGE_READ": "Dibaca"
+ "MESSAGE_READ": "Dibaca",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/companies.json b/app/javascript/dashboard/i18n/locale/id/companies.json
new file mode 100644
index 000000000..385e9fe6c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Urutkan berdasarkan",
+ "OPTIONS": {
+ "NAME": "Nama",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Dibuat pada",
+ "LAST_ACTIVITY_AT": "Aktivitas terakhir",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribut",
+ "CONTACTS": "Kontak",
+ "HISTORY": "History",
+ "NOTES": "Catatan"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Cari atribut...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Memuat kontak...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Tambahkan kontak",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Perusahaan",
+ "CONTACT_LABEL": "Kontak",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Batalkan"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nama",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/components.json b/app/javascript/dashboard/i18n/locale/id/components.json
new file mode 100644
index 000000000..8c5e64738
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Tidak ada hasil ditemukan.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Tidak ada hasil ditemukan.",
+ "SEARCHING": "Sedang mencari..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Batalkan",
+ "CONFIRM": "Konfirmasi"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Pilih kode panggilan dari daftar"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Pelajari lebih lanjut",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/contact.json b/app/javascript/dashboard/i18n/locale/id/contact.json
index 8067691fb..e95a529b0 100644
--- a/app/javascript/dashboard/i18n/locale/id/contact.json
+++ b/app/javascript/dashboard/i18n/locale/id/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Alamat IP",
"CREATED_AT_LABEL": "Dibuat",
"NEW_MESSAGE": "Pesan baru",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Tidak ada percakapan sebelumnya yang terkait dengan kontak ini.",
"TITLE": "Percakapan Sebelumnya"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Atribut Kustom",
"CONTACT_LABELS": "Label Kontak",
- "PREVIOUS_CONVERSATIONS": "Percakapan Sebelumnya"
+ "PREVIOUS_CONVERSATIONS": "Percakapan Sebelumnya",
+ "NO_RECORDS_FOUND": "Tidak ditemukan atribut"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edit kontak",
"DESC": "Edit detail kontak"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Kontak Baru",
- "TITLE": "Buat kontak baru",
- "DESC": "Tambahkan detail informasi dasar tentang kontak tersebut."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Impor",
- "TITLE": "Impor Kontak",
- "DESC": "Impor kontak melalui file CSV.",
- "DOWNLOAD_LABEL": "Unduh contoh file CSV.",
- "FORM": {
- "LABEL": "File CSV",
- "SUBMIT": "Impor",
- "CANCEL": "Batalkan"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Ekspor",
- "TITLE": "Ekspor Kontak",
- "DESC": "Ekspor kontak ke file CSV.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi",
- "CONFIRM": {
- "TITLE": "Ekspor Kontak",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Konfirmasi Penghapusan",
- "MESSAGE": "Anda yakin ingin menghapus catatan ini?",
- "YES": "Ya, Hapus",
- "NO": "Tidak, Simpan"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Hapus Kontak",
"TITLE": "Hapus kontak",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontak",
- "FIELDS": "Bidang Kontak",
- "SEARCH_BUTTON": "Cari",
- "SEARCH_INPUT_PLACEHOLDER": "Cari Kontak",
- "FILTER_CONTACTS": "Saring",
- "FILTER_CONTACTS_SAVE": "Simpan Filter",
- "FILTER_CONTACTS_DELETE": "Hapus Filter",
- "FILTER_CONTACTS_EDIT": "Edit Segmen",
"LIST": {
- "LOADING_MESSAGE": "Memuat kontak...",
- "404": "Tidak ada kontak yang cocok dengan pencarian Anda 🔍",
- "NO_CONTACTS": "Tidak ada kontak yang tersedia",
"TABLE_HEADER": {
- "NAME": "Nama",
- "PHONE_NUMBER": "Nomor Telepon",
- "CONVERSATIONS": "Percakapan",
- "LAST_ACTIVITY": "Aktivitas Terakhir",
- "CREATED_AT": "Dibuat",
- "COUNTRY": "Negara",
- "CITY": "Kota",
- "SOCIAL_PROFILES": "Profil Sosial",
- "COMPANY": "Perusahaan",
- "EMAIL_ADDRESS": "Alamat Email"
- },
- "VIEW_DETAILS": "Lihat Detail"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontak",
- "LOADING": "Memuat profil kontak..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Tambah",
- "TITLE": "Tekan Shift + Enter untuk membuat tugas baru"
- },
- "FOOTER": {
- "DUE_DATE": "Tenggat Waktu",
- "LABEL_TITLE": "Tentukan Tipe"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Mengambil catatan...",
- "NOT_AVAILABLE": "Tidak ada catatan yang dibuat untuk kontak ini",
- "HEADER": {
- "TITLE": "Catatan"
- },
- "LIST": {
- "LABEL": "menambahkan catatan"
- },
- "ADD": {
- "BUTTON": "Tambah",
- "PLACEHOLDER": "Tambahkan Catatan",
- "TITLE": "Tekan Shift + Enter untuk membuat catatan baru"
- },
- "CONTENT_HEADER": {
- "DELETE": "Hapus Catatan"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Aktivitas"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "Catatan",
- "PILL_BUTTON_EVENTS": "Peristiwa",
- "PILL_BUTTON_CONVO": "Percakapan"
+ "SOCIAL_PROFILES": "Profil Sosial"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Tambahkan atribut",
"BUTTON": "Tambahkan atribut kustom",
- "NOT_AVAILABLE": "Tidak ada atribut kustom yang tersedia untuk kontak ini.",
"COPY_SUCCESSFUL": "Berhasil disalin ke clipboard",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Salin Atribut",
"DELETE": "Hapus Atribut",
@@ -346,7 +254,7 @@
"VALIDATIONS": {
"REQUIRED": "Nilai yang valid diperlukan",
"INVALID_URL": "URL tidak valid",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_INPUT": "Masukan Tidak Valid"
}
},
"MERGE_CONTACTS": {
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Ringkasan",
- "DELETE_WARNING": "Kontak %{primaryContactName} akan dihapus.",
- "ATTRIBUTE_WARNING": "Detail kontak dari %{primaryContactName} akan disalin ke %{parentContactName}."
+ "DELETE_WARNING": "Kontak {primaryContactName} akan dihapus.",
+ "ATTRIBUTE_WARNING": "Detail kontak dari {primaryContactName} akan disalin ke {parentContactName}."
},
"SEARCH": {
- "ERROR": "PESAN_KESALAHAN"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": "Gabungkan Kontak",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontak berhasil digabungkan",
"ERROR_MESSAGE": "Tidak dapat menggabungkan kontak, coba lagi!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontak",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Pesan",
+ "SEND_MESSAGE": "Kirim Pesan",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontak"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Tambahkan kontak",
+ "EXPORT_CONTACT": "Ekspor kontak",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Simpan kontak",
+ "EMAIL_ADDRESS_DUPLICATE": "Alamat email ini digunakan untuk kontak lain.",
+ "PHONE_NUMBER_DUPLICATE": "Nomor ini sudah digunakan oleh kontak lain.",
+ "SUCCESS_MESSAGE": "Kontak berhasil disimpan",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Impor kontak",
+ "DESCRIPTION": "Impor kontak melalui file CSV.",
+ "DOWNLOAD_LABEL": "Unduh contoh file CSV.",
+ "LABEL": "File CSV:",
+ "CHOOSE_FILE": "Pilih berkas",
+ "CHANGE": "Ubah",
+ "CANCEL": "Batalkan",
+ "IMPORT": "Impor",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Ekspor kontak",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Ekspor",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
+ },
+ "SORT_BY": {
+ "LABEL": "Urutkan berdasarkan",
+ "OPTIONS": {
+ "NAME": "Nama",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Nomor Telepon",
+ "COMPANY": "Perusahaan",
+ "COUNTRY": "Negara",
+ "CITY": "Kota",
+ "LAST_ACTIVITY": "Aktivitas terakhir",
+ "CREATED_AT": "Dibuat pada"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Apakah Anda ingin menyimpan filter ini?",
+ "CONFIRM": "Simpan filter",
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Konfirmasi Penghapusan",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ya, Hapus",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nama",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Nomor Telepon",
+ "IDENTIFIER": "Pengenal",
+ "COUNTRY": "Negara",
+ "CITY": "Kota",
+ "COMPANY": "Perusahaan",
+ "CREATED_AT": "Dibuat pada",
+ "LAST_ACTIVITY": "Aktivitas terakhir",
+ "REFERER_LINK": "Tautan Referer",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Benar",
+ "BLOCKED_FALSE": "Salah",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Terapkan filter",
+ "ADD_FILTER": "Tambah filter"
+ },
+ "TITLE": "Filter kontak",
+ "EDIT_SEGMENT": "Edit Segmen",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Lihat Detail",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit detail kontak",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Alamat email ini digunakan untuk kontak lain."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Nomor ini sudah digunakan oleh kontak lain."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Masukkan nama kota"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Masukkan nama perusahaan"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Hapus kontak",
+ "DELETE_DIALOG": {
+ "TITLE": "Konfirmasi Penghapusan",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ya, Hapus",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontak berhasil dihapus",
+ "ERROR_MESSAGE": "Tidak dapat menghapus kontak. Silakan coba lagi nanti."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar berhasil dihapus",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribut",
+ "HISTORY": "History",
+ "NOTES": "Catatan",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Tidak ada percakapan sebelumnya yang terkait dengan kontak ini"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Ya",
+ "NO": "Tidak",
+ "TRIGGER": {
+ "SELECT": "Pilih nilai",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Nilai yang valid diperlukan",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "URL tidak valid",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Tidak ditemukan atribut",
+ "API": {
+ "SUCCESS_MESSAGE": "Atribut berhasil diperbarui",
+ "DELETE_SUCCESS_MESSAGE": "Atribut berhasil dihapus",
+ "UPDATE_ERROR": "Tidak dapat memperbarui atribut, Silakan coba lagi nanti",
+ "DELETE_ERROR": "Tidak dapat menghapus atribut. Silakan coba lagi nanti"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Gabungkan Kontak",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Kontak Utama",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Akan dihapus",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Cari kontak",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Kontak berhasil digabungkan",
+ "ERROR_MESSAGE": "Tidak dapat menggabungkan kontak, coba lagi!",
+ "IS_SEARCHING": "Sedang mencari...",
+ "BUTTONS": {
+ "CANCEL": "Batalkan",
+ "CONFIRM": "Gabungkan Kontak"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Tambahkan Catatan",
+ "WROTE": "menulis",
+ "YOU": "Anda",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No contacts found in this account",
+ "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 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Tugaskan Label",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Label berhasil ditugaskan.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Hapus",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Hapus kontak"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Lihat",
+ "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": "Kepada:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Masukkan subjek :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Tulis pesan Anda di sini..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variabel",
+ "BACK": "Kembali",
+ "SEND_MESSAGE": "Kirim Pesan"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Kembali",
+ "SEND_MESSAGE": "Kirim Pesan"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/contactFilters.json b/app/javascript/dashboard/i18n/locale/id/contactFilters.json
index b4bc13c1c..8360a0639 100644
--- a/app/javascript/dashboard/i18n/locale/id/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/id/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Lebih kecil dari",
"days_before": "X hari sebelum"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nilai dibutuhkan"
+ },
"ATTRIBUTES": {
"NAME": "Nama",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Kotak Centang Kustom",
"CREATED_AT": "Dibuat pada",
"LAST_ACTIVITY": "Aktivitas Terakhir",
- "REFERER_LINK": "Tautan Referrer"
+ "REFERER_LINK": "Tautan Referrer",
+ "BLOCKED": "Blocked",
+ "LABELS": "Label"
},
"GROUPS": {
"STANDARD_FILTERS": "Filter Standar",
diff --git a/app/javascript/dashboard/i18n/locale/id/contentTemplates.json b/app/javascript/dashboard/i18n/locale/id/contentTemplates.json
new file mode 100644
index 000000000..7745a365b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cari Templat",
+ "NO_TEMPLATES_FOUND": "Tidak ditemukan templat untuk",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategori",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Bahasa",
+ "TEMPLATE_BODY": "Isi Templat",
+ "CATEGORY": "Kategori"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Teks"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabel",
+ "LANGUAGE": "Bahasa",
+ "CATEGORY": "Kategori",
+ "VARIABLE_PLACEHOLDER": "Masukkan nilai {variable}",
+ "GO_BACK_LABEL": "Kembali",
+ "SEND_MESSAGE_LABEL": "Kirim Pesan",
+ "FORM_ERROR_MESSAGE": "Harap isi semua variabel sebelum mengirim",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Kembali",
+ "SEND_MESSAGE_BUTTON": "Kirim Pesan"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/conversation.json b/app/javascript/dashboard/i18n/locale/id/conversation.json
index aca542baa..e69d656da 100644
--- a/app/javascript/dashboard/i18n/locale/id/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/id/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " untuk memulai",
"NO_INBOX_AGENT": "Aduh! Sepertinya Anda bukan bagian dari kotak masuk mana pun. Silakan hubungi administrator Anda",
"SEARCH_MESSAGES": "Mencari pesan dalam percakapan",
+ "VIEW_ORIGINAL": "Lihat asli",
+ "VIEW_TRANSLATED": "Lihat terjemahan",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Memuat Percakapan",
"CANNOT_REPLY": "Anda tidak dapat membalas karena",
"24_HOURS_WINDOW": "Pembatasan jendela pesan 24 jam",
+ "48_HOURS_WINDOW": "Pembatasan jendela pesan 48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Jenis Berkas Tidak Dikenal",
- "SAVE_CONTACT": "Simpan",
+ "SAVE_CONTACT": "Simpan Kontak",
+ "NO_CONTENT": "Tidak ada konten untuk ditampilkan",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} membagikan sebuah kontak",
+ "LOCATION": "{sender} membagikan lokasi",
+ "FILE": "{sender} membagikan sebuah berkas",
+ "MEETING": "{sender} memulai percakapan"
+ },
"UPLOADING_ATTACHMENTS": "Mengunggah lampiran...",
"REPLIED_TO_STORY": "Membalas cerita Anda",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Pesan berhasil dihapus",
"FAIL_DELETE_MESSSAGE": "Tidak dapat menghapus pesan! Coba lagi",
"NO_RESPONSE": "Tidak ada respon",
+ "RESPONSE": "Response",
"RATING_TITLE": "Penilaian",
"FEEDBACK_TITLE": "Umpan Balik",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Tampilkan label",
- "HIDE_LABELS": "Sembunyikan label"
+ "HIDE_LABELS": "Sembunyikan label",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Menyelesaikan",
"REOPEN_ACTION": "Buka Kembali",
"OPEN_ACTION": "Terbuka",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Selebihnya",
"CLOSE": "Tutup",
"DETAILS": "detail",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Ditunda hingga",
"SNOOZED_UNTIL_TOMORROW": "Ditunda hingga besok",
"SNOOZED_UNTIL_NEXT_WEEK": "Ditunda hingga minggu depan",
- "SNOOZED_UNTIL_NEXT_REPLY": "Ditunda hingga balasan selanjutnya"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Ditunda hingga balasan selanjutnya",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Tandai sebagai tertunda",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Minggu depan"
}
},
+ "MENTION": {
+ "AGENTS": "Agen",
+ "TEAMS": "Tim"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Tunda hingga",
"APPLY": "Tunda",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Tidak ada",
"INPUT_PLACEHOLDER": "Pilih prioritas",
"NO_RESULTS": "Tidak ada hasil ditemukan",
- "SUCCESSFUL": "Berhasil mengubah prioritas percakapan dengan ID %{conversationId} menjadi %{priority}",
+ "SUCCESSFUL": "Berhasil mengubah prioritas percakapan dengan ID {conversationId} menjadi {priority}",
"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",
"MARK_AS_UNREAD": "Tandai sebagai belum terbaca",
+ "MARK_AS_READ": "Tanda telah dibaca",
"REOPEN": "Buka kembali percakapan",
"SNOOZE": {
"TITLE": "Tunda",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Tugaskan label",
"AGENTS_LOADING": "Sedang memuat agen...",
"ASSIGN_TEAM": "Tugaskan tim",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Id percakapan %{conversationId} ditugaskan ke \"%{agentName}\"",
+ "SUCCESFUL": "Id percakapan {conversationId} ditugaskan ke \"{agentName}\"",
"FAILED": "Tidak dapat menugaskan agen. Silakan coba lagi."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Label #%{labelName} ditugaskan ke id percakapan %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Tidak dapat menugaskan label. Silakan coba lagi."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Tim \"%{team}\" ditugaskan ke id percakapan %{conversationId}",
+ "SUCCESFUL": "Tim \"{team}\" ditugaskan ke id percakapan {conversationId}",
"FAILED": "Tidak dapat menugaskan tim. Silakan coba lagi."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Nonaktifkan tanda tangan",
"MSG_INPUT": "Shift + enter untuk baris baru. Mulailah dengan '/' untuk memilih Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter untuk baris baru. Ini hanya akan terlihat oleh Agen",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Tanda tangan pesan tidak dikonfigurasi, harap konfigurasikan di pengaturan profil.",
- "CLICK_HERE": "Klik di sini untuk memperbarui"
+ "COPILOT_MSG_INPUT": "Berikan copilot perintah tambahan, atau tanyakan hal lain... Tekan enter untuk mengirim tindak lanjut",
+ "CLICK_HERE": "Klik di sini untuk memperbarui",
+ "WHATSAPP_TEMPLATES": "Templat Whatsapp"
},
"REPLYBOX": {
"REPLY": "Balas",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Baca lebih lanjut",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Tampilkan editor teks",
"TIP_EMOJI_ICON": "Tampilkan pemilih emoji",
"TIP_ATTACH_ICON": "Lampirkan file",
"TIP_AUDIORECORDER_ICON": "Rekam audio",
"TIP_AUDIORECORDER_PERMISSION": "Izinkan akses ke audio",
"TIP_AUDIORECORDER_ERROR": "Tidak dapat membuka audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Seret dan letakkan di sini untuk melampirkan",
"START_AUDIO_RECORDING": "Mulai merekam audio",
"STOP_AUDIO_RECORDING": "Berhenti merekam audio",
- "": "",
+ "COPILOT_THINKING": "Copilot sedang berpikir",
"EMAIL_HEAD": {
"TO": "KEPADA",
"ADD_BCC": "Tambahkan bcc",
@@ -176,6 +257,13 @@
"YES": "Kirim",
"CANCEL": "Batalkan"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Catatan Pribadi: Hanya terlihat oleh Anda dan tim Anda",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Tidak dapat mengirim pesan ini, mohon coba lagi nanti",
"SENT_BY": "Dikirim oleh:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Tidak dapat mengirim pesan! Coba lagi",
"TRY_AGAIN": "coba lagi",
"ASSIGNMENT": {
@@ -199,7 +292,7 @@
},
"CONTEXT_MENU": {
"COPY": "Salin",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "Balas pesan ini",
"DELETE": "Hapus",
"CREATE_A_CANNED_RESPONSE": "Tambahkan ke respon siap pakai",
"TRANSLATE": "Terjemahkan",
@@ -211,6 +304,25 @@
"DELETE": "Hapus",
"CANCEL": "Batalkan"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontak",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Tutup",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Batalkan",
"SEND_EMAIL_SUCCESS": "Transkrip percakapan berhasil terkirim",
"SEND_EMAIL_ERROR": "Terjadi kesalahan, mohon coba lagi",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Kirim transkrip ke pelanggan",
"SEND_TO_AGENT": "Kirim transkrip dari agen yang ditugaskan",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hai 👋, Selamat datang di %{installationName}!",
- "DESCRIPTION": "Terima kasih telah mendaftar. Kami ingin Anda mendapatkan hasil maksimal dari %{installationName}. Berikut beberapa hal yang dapat Anda lakukan di %{installationName} untuk membuat pengalaman menyenangkan.",
+ "TITLE": "Hai 👋, Selamat datang di {installationName}!",
+ "DESCRIPTION": "Terima kasih telah mendaftar. Kami ingin Anda mendapatkan hasil maksimal dari {installationName}. Berikut beberapa hal yang dapat Anda lakukan di {installationName} untuk membuat pengalaman menyenangkan.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Baca pembaruan terbaru kami",
"ALL_CONVERSATION": {
"TITLE": "Semua percakapan Anda di satu tempat",
- "DESCRIPTION": "Lihat semua percakapan dari pelanggan Anda dalam satu dasbor. Anda dapat memfilter percakapan berdasarkan saluran masuk, label, dan status."
+ "DESCRIPTION": "Lihat semua percakapan dari pelanggan Anda dalam satu dasbor. Anda dapat memfilter percakapan berdasarkan saluran masuk, label, dan status.",
+ "NEW_LINK": "Klik di sini untuk membuat kotak masuk"
},
"TEAM_MEMBERS": {
"TITLE": "Undang anggota tim Anda",
"DESCRIPTION": "Karena Anda bersiap untuk berbicara dengan pelanggan Anda, ajak rekan tim Anda untuk membantu Anda. Anda dapat mengundang rekan tim Anda dengan menambahkan alamat email mereka ke daftar agen.",
"NEW_LINK": "Klik di sini untuk mengundang anggota tim"
},
- "INBOXES": {
- "TITLE": "Hubungkan Kotak Masuk",
- "DESCRIPTION": "Hubungkan berbagai saluran yang akan digunakan pelanggan untuk berbicara dengan Anda. Ini bisa berupa obrolan langsung situs web, halaman Facebook atau Twitter Anda atau bahkan nomor WhatsApp Anda.",
- "NEW_LINK": "Klik di sini untuk membuat kotak masuk"
- },
"LABELS": {
"TITLE": "Atur percakapan dengan label",
"DESCRIPTION": "Label memberikan cara yang lebih mudah untuk mengkategorikan percakapan Anda. Buat beberapa label seperti #support-inquiry, #billing-question, dll., Sehingga Anda dapat menggunakannya dalam percakapan nanti.",
"NEW_LINK": "Klik di sini untuk membuat label"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Makro",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Ditunda",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Buat atribut",
+ "NO_RECORDS_FOUND": "Tidak ditemukan atribut",
"UPDATE": {
"SUCCESS": "Atribut berhasil diperbarui",
"ERROR": "Tidak dapat memperbarui atribut. Silakan coba lagi nanti"
@@ -297,17 +449,18 @@
"TO": "Ke",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subjek"
+ "SUBJECT": "Subjek",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Berpartisipasi",
"SIDEBAR_TITLE": "Peserta Percakapan",
"NO_RECORDS_FOUND": "Tidak ada hasil ditemukan",
"ADD_PARTICIPANTS": "Pilih peserta",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} lainnya",
- "REMANING_PARTICIPANT_TEXT": "+%{count} lainnya",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} orang berpartisipasi.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} orang berpartisipasi.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} lainnya",
+ "REMANING_PARTICIPANT_TEXT": "+{count} lainnya",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} orang berpartisipasi.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} orang berpartisipasi.",
"NO_PARTICIPANTS_TEXT": "Tidak ada yang berpartisipasi!.",
"WATCH_CONVERSATION": "Gabung dalam percakapan",
"YOU_ARE_WATCHING": "Anda berpartisipasi",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Konten Asli",
"TRANSLATED_CONTENT": "Konten Terjemahan",
"NO_TRANSLATIONS_AVAILABLE": "Tidak ada terjemahan yang tersedia untuk konten ini"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/customRole.json b/app/javascript/dashboard/i18n/locale/id/customRole.json
new file mode 100644
index 000000000..4c9a7f38b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Tidak ada item yang cocok dengan kueri ini.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Deskripsi",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Aksi"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Nama dibutuhkan."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Deskripsi dibutuhkan."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "API": {
+ "ERROR_MESSAGE": "Tidak dapat terhubung ke Server Woot, Silahkan coba lagi nanti"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Kirim",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Perbarui",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Hapus",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Tidak dapat terhubung ke Server Woot, Silahkan coba lagi nanti"
+ },
+ "CONFIRM": {
+ "TITLE": "Konfirmasi penghapusan",
+ "MESSAGE": "Apakah Anda yakin untuk menghapus ",
+ "YES": "Ya, hapus ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/datePicker.json b/app/javascript/dashboard/i18n/locale/id/datePicker.json
new file mode 100644
index 000000000..1ea450d80
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Terapkan",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "7 hari terakhir",
+ "LAST_30_DAYS": "30 hari terakhir",
+ "LAST_3_MONTHS": "3 bulan terakhir",
+ "LAST_6_MONTHS": "6 bulan terakhir",
+ "LAST_YEAR": "Tahun terakhir",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Rentang tanggal kustom"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/general.json b/app/javascript/dashboard/i18n/locale/id/general.json
new file mode 100644
index 000000000..e540bd3b9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Cari",
+ "EMPTY_STATE": "Tidak ada hasil ditemukan"
+ },
+ "CLOSE": "Tutup",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Ya",
+ "NO": "Tidak"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/generalSettings.json b/app/javascript/dashboard/i18n/locale/id/generalSettings.json
index b4ac1cacf..f058a8d11 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Anda dapat menerima email di domain kustom Anda sekarang."
}
},
- "UPDATE_CHATWOOT": "Pembaharuan Chatwoot %{latestChatwootVersion} telah tersedia. Silahkan lakukan pembaharuan instance Anda.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Tekan enter untuk memilih",
"ENTER_TO_REMOVE": "Tekan enter untuk menghapus",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Pilih satu",
"SELECT": "Pilih"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Percakapan ditugaskan",
"assigned_conversation_new_message": "Pesan Baru",
"participating_conversation_new_message": "Pesan Baru",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Segarkan"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Cari atau loncat ke",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Umum",
"REPORTS": "Laporan",
"CONVERSATION": "Percakapan",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Ubah Penerima Tugas",
"CHANGE_PRIORITY": "Ubah Prioritas",
"CHANGE_TEAM": "Ubah Tim",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Hingga besok",
"UNTIL_NEXT_MONTH": "Hingga bulan depan",
"AN_HOUR_FROM_NOW": "Hingga satu jam dari sekarang",
- "CUSTOM": "Kustom...",
+ "UNTIL_CUSTOM_TIME": "Kustom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/id/helpCenter.json b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
index a51a30a14..827bfe632 100644
--- a/app/javascript/dashboard/i18n/locale/id/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/id/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Pusat Bantuan",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Buat Portal"
+ },
"HEADER": {
"FILTER": "Filter berdasarkan",
"SORT": "Urutkan berdasarkan",
@@ -41,6 +46,7 @@
"UPLOADING": "Mengunggah...",
"SUCCESS": "Gambar berhasil diunggah",
"ERROR": "Terjadi kesalahan saat mengunggah gambar",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Ukuran gambar harus kurang dari {size}MB",
"ERROR_FILE_FORMAT": "Format gambar harus jpg, jpeg, atau png",
"ERROR_FILE_DIMENSIONS": "Dimensi gambar harus kurang dari 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Tanpa Kategori",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Sedang mencari...",
"INSERT_ARTICLE": "Sisipkan",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal berhasil dihapus",
"DELETE_ERROR": "Terjadi kesalahan saat menghapus portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informasi pusat bantuan",
- "route": "new_portal_information",
- "body": "Informasi dasar tentang portal",
- "CREATE_BASIC_SETTING_BUTTON": "Buat pengaturan dasar portal"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informasi Pusat Bantuan",
+ "BODY": "Informasi dasar tentang portal"
},
- {
- "title": "Kustomisasi pusat bantuan",
- "route": "portal_customization",
- "body": "Kustomisasi portal",
- "UPDATE_PORTAL_BUTTON": "Perbarui pengaturan portal"
+ "CUSTOMIZATION": {
+ "TITLE": "Kustomisasi Pusat Bantuan",
+ "BODY": "Kustomisasi portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "Semuanya siap!",
- "FINISH": "Selesai"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "Semuanya siap!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Kembali",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Domain Kustom",
"PLACEHOLDER": "Domain kustom portal",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Masukkan URL domain yang valid"
},
"HOME_PAGE_LINK": {
"LABEL": "Tautan Halaman Utama",
"PLACEHOLDER": "Tautan halaman utama portal",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Masukkan URL halaman utama yang valid"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Bahasa dihapus dari portal berhasil",
"ERROR_MESSAGE": "Tidak dapat menghapus bahasa dari portal. Coba lagi."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Artikel berhasil diarsipkan"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Terjadi kesalahan saat menghapus artikel"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Harap tambahkan tajuk artikel dan konten maka hanya Anda yang dapat memperbarui pengaturan"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Terjemahkan",
+ "DELETE": "Hapus"
+ },
+ "STATUS": {
+ "DRAFT": "Draf",
+ "PUBLISHED": "Diterbitkan",
+ "ARCHIVED": "Diarsipkan"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Milikku",
+ "DRAFT": "Draf",
+ "PUBLISHED": "Diterbitkan",
+ "ARCHIVED": "Diarsipkan"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Terjemahkan",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Terjemahkan",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Terjemahkan",
+ "MOVE_TO_CATEGORY": "Kategori",
+ "DELETE": "Hapus",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Hapus",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Kategori Baru",
+ "EDIT_CATEGORY": "Edit kategori",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Tidak ditemukan kategori",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori telah berhasil dibuat",
+ "ERROR_MESSAGE": "Tidak dapat membuat kategori"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori berhasil diperbarui",
+ "ERROR_MESSAGE": "Tidak dapat memperbarui kategori"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori berhasil dihapus",
+ "ERROR_MESSAGE": "Tidak dapat menghapus kategori"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Buat kategori",
+ "EDIT": "Edit kategori",
+ "DESCRIPTION": "Mengedit kategori akan memperbarui kategori di portal menghadap publik.",
+ "PORTAL": "Portal",
+ "LOCALE": "Bahasa"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Nama kategori",
+ "ERROR": "Nama dibutuhkan"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug kategori untuk url",
+ "ERROR": "Slug diperlukan",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Berikan deskripsi singkat tentang kategori tersebut.",
+ "ERROR": "Deskripsi dibutuhkan"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Buat",
+ "EDIT": "Perbarui",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draf",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Hapus"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Tambahkan bahasa baru",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Diterbitkan",
+ "DRAFT": "Draf"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Bahasa berhasil ditambahkan",
+ "ERROR_MESSAGE": "Tidak dapat menambahkan bahasa. Coba lagi."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Menyimpan...",
+ "SAVED": "Tersimpan"
+ },
+ "PREVIEW": "Pratinjau",
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Tanpa Kategori",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Deskripsi Meta",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Judul Meta",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Tag Meta",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Terjadi kesalahan saat menyimpan artikel"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portal",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "artikel",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Nama portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Buat",
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Nama dibutuhkan"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug diperlukan",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Ukuran gambar harus kurang dari {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Nama portal",
+ "ERROR": "Nama dibutuhkan"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Teks header portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Judul halaman portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Tautan halaman utama portal",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domain kustom",
+ "LABEL": "Domain kustom:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Domain kustom portal",
+ "EDIT_BUTTON": "Edit",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Langsung",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Domain kustom",
+ "PLACEHOLDER": "Domain kustom portal",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Kirim"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Hapus Portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Hapus"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Hapus"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal berhasil dibuat",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal berhasil diperbarui",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Mengunggah...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Batalkan",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Menghasilkan...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Selesai",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/inbox.json b/app/javascript/dashboard/i18n/locale/id/inbox.json
index 3461e90c1..3ff74b9da 100644
--- a/app/javascript/dashboard/i18n/locale/id/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/id/inbox.json
@@ -1,43 +1,60 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Kotak masuk",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
+ "TITLE": "Kotak Masuk Saya",
+ "DISPLAY_DROPDOWN": "Tampilan",
+ "LOADING": "Memuat notifikasi",
+ "404": "Tidak ada percakapan aktif di grup ini.",
+ "NO_NOTIFICATIONS": "Tidak Ada Notifikasi",
+ "NOTE": "Notifikasi dari semua kotak masuk yang Anda langgani",
+ "NO_MESSAGES_AVAILABLE": "Aduh! Tidak dapat mengambil pesan",
"SNOOZED_UNTIL": "Ditunda hingga",
"SNOOZED_UNTIL_TOMORROW": "Ditunda hingga besok",
"SNOOZED_UNTIL_NEXT_WEEK": "Ditunda hingga minggu depan"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "Tunda notifikasi",
+ "DELETE": "Hapus notifikasi",
+ "BACK": "Kembali"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
+ "CONVERSATION_MENTION": "Anda telah disebut dalam sebuah percakapan",
+ "CONVERSATION_CREATION": "Percakapan dibuat",
+ "CONVERSATION_ASSIGNMENT": "Sebuah percakapan telah ditugaskan kepada Anda",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "Target penyelesaian SLA terlewatkan untuk percakapan"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Disebutkan",
+ "CONVERSATION_ASSIGNMENT": "Ditugaskan kepada Anda",
+ "CONVERSATION_CREATION": "Percakapan baru",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Pesan baru",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Pesan baru",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Tidak ada konten yang tersedia",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
+ "MARK_AS_READ": "Tanda telah dibaca",
"MARK_AS_UNREAD": "Tandai sebagai belum terbaca",
"SNOOZE": "Tunda",
"DELETE": "Hapus",
- "MARK_ALL_READ": "Mark all as read",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "MARK_ALL_READ": "Tandai semua telah dibaca",
+ "DELETE_ALL": "Hapus semua",
+ "DELETE_ALL_READ": "Hapus semua telah dibaca"
},
"DISPLAY_MENU": {
"SORT": "Sort",
"DISPLAY": "Display :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "Terbaru",
+ "OLDEST": "Terlama",
"PRIORITY": "Prioritas"
},
"DISPLAY_OPTIONS": {
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
index c7176a250..e0929b473 100644
--- a/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Kotak masuk",
- "SIDEBAR_TXT": "Kotak Masuk
Saat Anda menghubungkan website atau Halaman Facebook ke Chatwoot, itu disebut Kotak Masuk. Anda dapat memiliki kotak masuk tak terbatas di akun Chatwoot Anda.
Klik pada Tambah Kotak masuk untuk menghubungkan situs web atau Halaman Facebook.
Di Dasbor, Anda dapat melihat semua percakapan dari semua kotak masuk Anda di satu tempat dan menanggapinya di bawah tab `Percakapan`.
Anda juga dapat melihat percakapan khusus untuk kotak masuk dengan mengklik nama kotak masuk di panel kiri dasbor.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Tidak ada kotak masuk yang dilampirkan ke akun ini."
},
- "CREATE_FLOW": [
- {
- "title": "Pilih Channel",
- "route": "settings_inbox_new",
- "body": "Pilih penyedia yang ingin Anda integrasikan dengan Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Pilih Channel",
+ "BODY": "Pilih penyedia yang ingin Anda integrasikan dengan Chatwoot."
},
- {
- "title": "Buat Kotak Masuk",
- "route": "settings_inboxes_page_channel",
- "body": "Otentikasi akun Anda dan buat kotak masuk."
+ "INBOX": {
+ "TITLE": "Buat Kotak Masuk",
+ "BODY": "Otentikasi akun Anda dan buat kotak masuk."
},
- {
- "title": "Tambahkan Agen",
- "route": "settings_inboxes_add_agents",
- "body": "Tambahkan agen ke kotak masuk yang dibuat."
+ "AGENT": {
+ "TITLE": "Tambahkan Agen",
+ "BODY": "Tambahkan agen ke kotak masuk yang dibuat."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Kotak masuk Anda sudah siap!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Sekarang kotak masuk Anda sudah siap!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nama Kotak Masuk",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Pilih halaman dari daftar",
"INBOX_NAME": "Nama Kotak Masuk",
"ADD_NAME": "Tambahkan nama untuk kotak masuk Anda",
- "PICK_NAME": "Pilih Nama Kotak Masuk Anda",
- "PICK_A_VALUE": "Pilih"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Untuk menambahkan profil Twitter Anda sebagai saluran, Anda perlu mengautentikasi Profil Twitter Anda dengan mengklik 'Masuk dengan Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL Webhook",
- "PLACEHOLDER": "Masukkan URL Webhook Anda",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Harap masukkan URL yang valid"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domain Website",
"PLACEHOLDER": "Masukkan domain situs web Anda (misalnya: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "Bagian ini diperlukan"
},
"PHONE_NUMBER": {
- "LABEL": "Nomor Telpon",
+ "LABEL": "Nomor Telepon",
"PLACEHOLDER": "Silakan masukkan nomor telepon dari mana pesan akan dikirim.",
"ERROR": "Berikan nomor telepon yang valid yang dimulai dengan tanda `+` dan tidak mengandung spasi."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Masukkan Kunci API Bandwith Anda",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Bagian ini diperlukan"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Masukkan Bandwith API Secret Anda",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Bagian ini diperlukan"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Mulailah mendukung pelanggan Anda melalui WhatsApp.",
"PROVIDERS": {
"LABEL": "Penyedia API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Nama Kotak Masuk",
"PLACEHOLDER": "Masukkan nama kotak masuk",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Token Verifikasi Webhook",
- "PLACEHOLDER": "Masukkan token verifikasi yang ingin Anda konfigurasikan untuk webhook facebook.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Harap masukkan nilai yang valid."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Token Verifikasi Webhook"
},
"SUBMIT_BUTTON": "Buat Saluran WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Kami tidak dapat menyimpan saluran WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Nomor Telepon",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Account SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token Auth",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Integrasikan dengan saluran API dan mulai dukung pelanggan Anda.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "URL Webhook",
- "SUBTITLE": "Konfigurasikan URL tempat Anda ingin menerima Callback.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "URL Webhook"
},
"SUBMIT_BUTTON": "Buat Channel API",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Channel Email",
- "DESC": "Integrasikan kotak masuk email Anda.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Nama Channel",
"PLACEHOLDER": "Harap masukkan nama channel",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Kami tidak dapat menyimpan channel email"
},
- "FINISH_MESSAGE": "Mulailah meneruskan email Anda ke alamat email berikut."
+ "FINISH_MESSAGE": "Mulailah meneruskan email Anda ke alamat email berikut.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klik disini",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Channel LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Pilih sebuah channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agen",
"DESC": "Di sini Anda dapat menambahkan agen untuk mengelola kotak masuk yang baru Anda buat. Hanya agen terpilih ini yang akan memiliki akses ke kotak masuk Anda. Agen yang bukan bagian dari kotak masuk ini tidak akan dapat melihat atau menanggapi pesan di kotak masuk ini saat mereka masuk.
Keterangan: Sebagai administrator, jika Anda memerlukan akses ke semua kotak masuk, Anda harus menambahkan diri Anda sebagai agen ke semua kotak masuk yang Anda buat.",
- "VALIDATION_ERROR": "Tambahkan setidaknya satu agen ke Kotak Masuk baru Anda",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pilih agen untuk kotak masuk"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Klik tombol Masuk dengan Microsoft untuk memulai. Anda akan dialihkan ke halaman masuk email. Setelah Anda menerima izin yang diminta, Anda akan diarahkan kembali ke langkah pembuatan kotak masuk.",
"EMAIL_PLACEHOLDER": "Masukkan alamat email",
- "HELP": "Untuk menambahkan akun Microsoft Anda sebagai saluran, Anda perlu mengotentikasi akun Microsoft Anda dengan mengeklik 'Masuk dengan Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "Terjadi kesalahan saat menghubungkan ke Microsoft, harap coba lagi"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Masukkan alamat email",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Mengautentikasi Anda dengan Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Ada yang tidak beres, Harap refresh halaman...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Anda sekarang dapat menangani pelanggan Anda melalui Channel baru Anda. Selamat mendukung",
"BUTTON_TEXT": "Pergi ke Kotak Masuk",
"MORE_SETTINGS": "Pengaturan lebih lengkap",
- "WEBSITE_SUCCESS": "Anda telah berhasil menyelesaikan pembuatan channel website. Salin kode yang ditunjukkan di bawah ini dan tempelkan di website Anda. Saat pelanggan menggunakan live chat, percakapan tersebut secara otomatis akan muncul di kotak masuk Anda."
+ "WEBSITE_SUCCESS": "Anda telah berhasil menyelesaikan pembuatan channel website. Salin kode yang ditunjukkan di bawah ini dan tempelkan di website Anda. Saat pelanggan menggunakan live chat, percakapan tersebut secara otomatis akan muncul di kotak masuk Anda.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Otorisasi ulang",
"VIEW": "Lihat",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Ramah",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Simpan"
}
@@ -432,8 +606,10 @@
"DISABLED": "Nonaktif"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Diaktifkan",
- "DISABLED": "Nonaktif"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Aktifkan"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Formulir Pra Obrolan",
"BUSINESS_HOURS": "Jam Kerja",
"WIDGET_BUILDER": "Pembuat Widget",
- "BOT_CONFIGURATION": "Konfigurasi Bot"
+ "BOT_CONFIGURATION": "Konfigurasi Bot",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Langsung"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Pengaturan",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Tempatkan tombol ini di dalam tag Anda",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agen",
"INBOX_AGENTS_SUB_TEXT": "Tambahkan atau hapus agen dari kotak masuk ini",
"AGENT_ASSIGNMENT": "Tugas Percakapan",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Kunci ke satu percakapan",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Aktifkan atau nonaktifkan beberapa percakapan untuk kontak yang sama di kotak masuk ini",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Pengaturan Kotak Masuk",
"INBOX_UPDATE_SUB_TEXT": "Perbarui pengaturan kotak masuk Anda",
"AUTO_ASSIGNMENT_SUB_TEXT": "Mengaktifkan atau menonaktifkan penugasan otomatis percakapan baru ke agen yang ditambahkan ke kotak masuk ini.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Gunakan token inbox_identifier` yang terlihat disini untuk mengautentikasi klien API Anda.",
"FORWARD_EMAIL_TITLE": "Teruskan ke Email",
"FORWARD_EMAIL_SUB_TEXT": "Mulailah meneruskan email Anda ke alamat email berikut.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Izinkan pesan setelah percakapan diselesaikan",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Izinkan pengguna akhir mengirim pesan bahkan setelah percakapan diselesaikan.",
"WHATSAPP_SECTION_SUBHEADER": "Kunci API ini digunakan untuk integrasi dengan API WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Masukkan kunci yang diperbarui untuk digunakan untuk integrasi dengan API WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Perbarui Kunci API",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Masukkan Kunci API baru di sini",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Perbarui",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Sambungkan",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
"WHATSAPP_WEBHOOK_TITLE": "Token Verifikasi Webhook",
"WHATSAPP_WEBHOOK_SUBHEADER": "Token ini digunakan untuk memverifikasi keaslian titik akhir webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Perbarui Pengaturan Formulir Pra Obrolan"
},
"HELP_CENTER": {
"LABEL": "Pusat Bantuan",
"PLACEHOLDER": "Pilih Pusat Bantuan",
"SELECT_PLACEHOLDER": "Pilih Pusat Bantuan",
+ "NONE": "Tidak ada",
"REMOVE": "Hapus Pusat Bantuan",
"SUB_TEXT": "Lampirkan Pusat Bantuan dengan kotak masuk"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Harap masukkan nilai yang lebih besar dari 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Batasi jumlah maksimum percakapan dari kotak masuk ini yang dapat ditetapkan secara otomatis ke agen"
},
+ "ASSIGNMENT": {
+ "TITLE": "Tugas Percakapan",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Batalkan",
+ "CONFIRM_DELETE": "Hapus",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Otorisasi ulang",
"SUBTITLE": "Koneksi Facebook Anda telah kedaluwarsa, hubungkan kembali halaman Facebook Anda untuk melanjutkan layanan",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Bahasa",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Kembali"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Pesan tidak tersedia untuk pengunjung",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Hari",
+ "AVAILABILITY": "Ketersediaan",
+ "HOURS": "Hours",
"ENABLE": "Aktifkan ketersediaan untuk hari ini",
"UNAVAILABLE": "Tidak tersedia",
- "HOURS": "jam",
"VALIDATION_ERROR": "Waktu mulai harus sebelum waktu tutup.",
"CHOOSE": "Pilih"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Untuk mengaktifkan SMTP, konfigurasikan IMAP.",
"UPDATE": "Perbarui setelan IMAP",
"TOGGLE_AVAILABILITY": "Aktifkan konfigurasi IMAP untuk kotak masuk ini",
- "TOGGLE_HELP": "Mengaktifkan IMAP akan membantu pengguna menerima email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "Setelan IMAP berhasil diperbarui",
"ERROR_MESSAGE": "Tidak dapat memperbarui setelan IMAP"
@@ -606,7 +1042,8 @@
"LABEL": "Kata Sandi",
"PLACE_HOLDER": "Kata Sandi"
},
- "ENABLE_SSL": "Aktifkan SSL"
+ "ENABLE_SSL": "Aktifkan SSL",
+ "AUTH_MECHANISM": "Autentikasi"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Dalam sehari"
},
"WIDGET_COLOR_LABEL": "Warna Widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posisi Widget Gelembung",
- "WIDGET_BUBBLE_TYPE_LABEL": "Jenis Gelembung Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipe:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat dengan kami",
- "LABEL": "Judul Widget Gelembung Launcher",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat dengan kami"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Biasanya membalas dalam beberapa menit",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Penyedia Lain"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Penyedia Lain",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/index.js b/app/javascript/dashboard/i18n/locale/id/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/id/index.js
+++ b/app/javascript/dashboard/i18n/locale/id/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/id/integrationApps.json b/app/javascript/dashboard/i18n/locale/id/integrationApps.json
index a30b5d7bd..2773de940 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Mengambil Integrasi",
- "NO_HOOK_CONFIGURED": "Tidak ada integrasi %{integrationId} yang dikonfigurasi di akun ini.",
+ "NO_HOOK_CONFIGURED": "Tidak ada integrasi {integrationId} yang dikonfigurasi di akun ini.",
"HEADER": "Aplikasi",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Diaktifkan",
"DISABLED": "Nonaktif"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Mengambil hook integrasi",
"INBOX": "Kotak masuk",
+ "ACTIONS": "Aksi",
"DELETE": {
"BUTTON_TEXT": "Hapus"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Pilih Kotak Masuk"
},
"SUBMIT": "Buat",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Batalkan"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Putuskan"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow adalah platform pemahaman bahasa alami yang memungkinkan Anda merancang dan mengintegrasikan antarmuka pengguna percakapan ke aplikasi seluler, aplikasi web, perangkat, bot, sistem respons suara interaktif, dan lain-lain.
Integrasi Dialogflow dengan %{installationName} memungkinkan Anda mengkonfigurasi bot Dialogflow dengan kotak masuk Anda, sehingga bot menangani pertanyaan awal dan menyerahkannya ke agen jika diperlukan. Dialogflow dapat digunakan untuk memfilter prospek, mengurangi beban kerja agen dengan memberikan pertanyaan yang sering diajukan, dan sebagainya.
Untuk menambahkan Dialogflow, Anda perlu membuat Akun Layanan di konsol proyek Google Anda dan berbagi kredensialnya. Silakan lihat dokumen Dialogflow untuk informasi lebih lanjut."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/integrations.json b/app/javascript/dashboard/i18n/locale/id/integrations.json
index 9b2a9b367..0d12f77a0 100644
--- a/app/javascript/dashboard/i18n/locale/id/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/id/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Batalkan",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrasi",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Acara Berlangganan",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Batalkan",
"DESC": "Acara Webhook memberi Anda informasi realtime tentang apa yang terjadi di akun Chatwoot Anda. Harap masukkan URL yang valid untuk mengkonfigurasi callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "URL Webhook",
- "PLACEHOLDER": "Contoh: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Harap masukkan URL yang valid"
},
"EDIT_SUBMIT": "Perbarui webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Tidak ada webhook yang dikonfigurasi untuk akun ini.",
"TITLE": "Kelola webhook",
- "TABLE_HEADER": [
- "Endpoint webhook",
- "Aksi"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Endpoint webhook",
+ "ACTIONS": "Aksi"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Edit",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Konfirmasi Penghapusan",
- "MESSAGE": "Apakah Anda yakin ingin menghapus webhook? (%{webhookURL})",
+ "MESSAGE": "Apakah Anda yakin ingin menghapus webhook? ({webhookURL})",
"YES": "Ya, Hapus ",
"NO": "Tidak, Simpan"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Hapus",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Ramah"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Tambahkan aplikasi dasbor baru",
"SIDEBAR_TXT": "Aplikasi Dasbor
Aplikasi Dasbor memungkinkan organisasi untuk menyematkan aplikasi di dalam dasbor Chatwoot untuk menyediakan konteks bagi agen dukungan pelanggan. Fitur ini memungkinkan Anda membuat aplikasi secara independen dan menyematkannya di dalam dasbor untuk menyediakan informasi pengguna, pesanan, atau riwayat pembayaran sebelumnya.
Ketika Anda menyematkan aplikasi Anda menggunakan dasbor di Chatwoot, aplikasi Anda akan mendapatkan konteks percakapan dan kontak sebagai acara window. Implementasikan penerima untuk acara pesan di halaman Anda untuk menerima konteks.
Untuk menambahkan aplikasi dasbor baru, klik tombol 'Tambahkan aplikasi dasbor baru'.
",
"DESCRIPTION": "Aplikasi Dasbor memungkinkan organisasi untuk menyematkan aplikasi di dalam dasbor untuk menyediakan konteks bagi agen dukungan pelanggan. Fitur ini memungkinkan Anda membuat aplikasi secara independen dan menyematkannya untuk menyediakan informasi pengguna, pesanan, atau riwayat pembayaran sebelumnya.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Belum ada aplikasi dasbor yang dikonfigurasi untuk akun ini",
"LOADING": "Mengambil aplikasi dasbor...",
- "TABLE_HEADER": [
- "Nama",
- "Titik akhir"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "ENDPOINT": "Titik akhir",
+ "ACTIONS": "Aksi"
+ },
"EDIT_TOOLTIP": "Edit aplikasi",
"DELETE_TOOLTIP": "Hapus aplikasi"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Ya, hapus",
"CONFIRM_NO": "Tidak, simpan",
"TITLE": "Konfirmasi Penghapusan",
- "MESSAGE": "Apakah Anda yakin ingin menghapus aplikasi - %{appName}?",
+ "MESSAGE": "Apakah Anda yakin ingin menghapus aplikasi - {appName}?",
"API_SUCCESS": "Aplikasi dasbor berhasil dihapus",
"API_ERROR": "Kami tidak dapat menghapus aplikasi. Harap coba lagi nanti"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Buat",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Tautan",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Judul",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Judul wajib diisi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Tim",
+ "PLACEHOLDER": "Pilih tim",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritas",
+ "PLACEHOLDER": "Pilih prioritas",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Prioritas",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Label",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Ya, hapus",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Pelajari lebih lanjut",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asisten",
+ "SWITCH_ASSISTANT": "Beralih antar asisten",
+ "NEW_ASSISTANT": "Buat Asisten",
+ "EMPTY_LIST": "Tidak ada asisten ditemukan, silakan buat satu untuk memulai"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Mulai dengan Copilot",
+ "KICK_OFF_MESSAGE": "Butuh ringkasan cepat, ingin memeriksa percakapan sebelumnya, atau menyusun balasan yang lebih baik? Copilot hadir untuk mempercepat semuanya.",
+ "SEND_MESSAGE": "Kirim Pesan...",
+ "EMPTY_MESSAGE": "Terjadi kesalahan saat menghasilkan respons. Silakan coba lagi.",
+ "LOADER": "Captain sedang berpikir",
+ "YOU": "Anda",
+ "USE": "Gunakan ini",
+ "RESET": "Setel ulang",
+ "SHOW_STEPS": "Tampilkan langkah-langkah",
+ "SELECT_ASSISTANT": "Pilih Asisten",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Ringkas percakapan ini",
+ "CONTENT": "Ringkas poin-poin utama yang dibahas antara pelanggan dan agen dukungan, termasuk kekhawatiran, pertanyaan pelanggan, dan solusi atau tanggapan yang diberikan oleh agen dukungan"
+ },
+ "SUGGEST": {
+ "LABEL": "Sarankan jawaban",
+ "CONTENT": "Analisis pertanyaan pelanggan, dan buat draf jawaban yang secara efektif menangani kekhawatiran atau pertanyaan mereka. Pastikan balasan jelas, singkat, dan memberikan informasi yang berguna."
+ },
+ "RATE": {
+ "LABEL": "Nilai percakapan ini",
+ "CONTENT": "Tinjau percakapan untuk melihat seberapa baik memenuhi kebutuhan pelanggan. Berikan penilaian dari 5 berdasarkan nada, kejelasan, dan efektivitas."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Percakapan prioritas tinggi",
+ "CONTENT": "Beri saya ringkasan semua percakapan terbuka prioritas tinggi. Sertakan ID percakapan, nama pelanggan (jika tersedia), isi pesan terakhir, dan agen yang ditugaskan. Kelompokkan berdasarkan status jika relevan."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Daftar kontak",
+ "CONTENT": "Tampilkan daftar 10 kontak teratas. Sertakan nama, email atau nomor telepon (jika tersedia), waktu terakhir terlihat, tag (jika ada)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Anda",
+ "ASSISTANT": "Asisten",
+ "MESSAGE_PLACEHOLDER": "Ketik pesan Anda...",
+ "HEADER": "Area pengujian",
+ "DESCRIPTION": "Gunakan playground ini untuk mengirim pesan ke asisten Anda dan periksa apakah ia merespons dengan akurat, cepat, dan dengan nada yang Anda harapkan.",
+ "CREDIT_NOTE": "Pesan yang dikirim di sini akan dihitung sebagai kredit Captain Anda."
+ },
+ "PAYWALL": {
+ "TITLE": "Tingkatkan untuk menggunakan Captain AI",
+ "AVAILABLE_ON": "Captain tidak tersedia di paket gratis.",
+ "UPGRADE_PROMPT": "Tingkatkan paket Anda untuk mendapatkan akses ke asisten kami, copilot, dan lainnya.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI hanya tersedia di paket Enterprise.",
+ "UPGRADE_PROMPT": "Tingkatkan paket Anda untuk mendapatkan akses ke asisten kami, copilot, dan lainnya.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Anda telah menggunakan lebih dari 80% batas respons Anda. Untuk terus menggunakan Captain AI, silakan tingkatkan.",
+ "DOCUMENTS": "Batas dokumen telah tercapai. Tingkatkan untuk terus menggunakan Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Batalkan",
+ "CREATE": "Buat",
+ "EDIT": "Perbarui"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Deskripsi",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Pengaturan",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Hapus"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Hapus"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Hapus"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Judul",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Batalkan",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Hapus",
+ "BULK_SYNC_BUTTON": "Segarkan",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Buka tagihan",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Tidak ada",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Kata Sandi",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipe"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Nomor",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Diperlukan"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Hapus",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Semua"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Ditunda",
+ "APPROVED": "Approved",
+ "ALL": "Semua"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edit",
+ "DELETE_RESPONSE": "Hapus"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Putuskan koneksi"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ya, hapus",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Kotak masuk",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
index 7db3157ad..fa2dd52d9 100644
--- a/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/id/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Label",
"HEADER_BTN_TXT": "Tambah label",
"LOADING": "Mengambil label",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Cari label...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Tidak ada item yang cocok dengan kueri ini",
- "SIDEBAR_TXT": "Label
Label membantu Anda mengkategorikan percakapan dan memprioritaskannya. Anda dapat menetapkan label ke percakapan dari panel samping.
Label terikat ke akun dan bisa digunakan untuk membuat alur kerja kustom di organisasi Anda. Anda dapat menetapkan warna khusus ke label, ini membuatnya lebih mudah untuk mengidentifikasi label. Anda akan dapat menampilkan label di sidebar untuk memfilter percakapan dengan mudah.
",
"LIST": {
"404": "Tidak ada label yang tersedia di akun ini.",
"TITLE": "Kelola label",
"DESC": "Label memungkinkan Anda mengelompokkan percakapan menjadi satu.",
- "TABLE_HEADER": [
- "Nama",
- "Deskripsi",
- "Warna"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Deskripsi",
+ "COLOR": "Warna",
+ "ACTION": "Aksi"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Tutup",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Tambah label",
diff --git a/app/javascript/dashboard/i18n/locale/id/login.json b/app/javascript/dashboard/i18n/locale/id/login.json
index 32c45965e..1b86fbabb 100644
--- a/app/javascript/dashboard/i18n/locale/id/login.json
+++ b/app/javascript/dashboard/i18n/locale/id/login.json
@@ -3,7 +3,7 @@
"TITLE": "Masuk ke Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "contoh@perusahan-mu.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Harap masukkan alamat email yang valid"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Lupa kata sandi Anda?",
"CREATE_NEW_ACCOUNT": "Buat akun baru",
- "SUBMIT": "Masuk"
+ "SUBMIT": "Masuk",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/macros.json b/app/javascript/dashboard/i18n/locale/id/macros.json
index 831b41fac..21fb6279b 100644
--- a/app/javascript/dashboard/i18n/locale/id/macros.json
+++ b/app/javascript/dashboard/i18n/locale/id/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Makro",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Tambahkan makro baru",
"HEADER_BTN_TXT_SAVE": "Simpan makro",
"LOADING": "Mengambil makro",
- "SIDEBAR_TXT": "Makro
Makro adalah kumpulan tindakan yang disimpan yang membantu agen layanan pelanggan menyelesaikan tugas dengan mudah. Para agen dapat menentukan serangkaian tindakan seperti memberi tanda pada percakapan dengan label, mengirim transkrip email, memperbarui atribut kustom, dll., dan mereka dapat menjalankan tindakan-tindakan ini dengan sekali klik. Ketika para agen menjalankan makro, tindakan-tindakan tersebut akan dilaksanakan secara berurutan sesuai dengan urutan yang ditentukan. Makro meningkatkan produktivitas dan meningkatkan konsistensi dalam tindakan-tindakan.
Satu makro dapat membantu dalam dua cara.
Sebagai bantuan bagi agen: Jika seorang agen melakukan serangkaian tindakan berulang kali, mereka dapat menyimpannya sebagai makro dan menjalankan semua tindakan tersebut dengan sekali klik.
Sebagai opsi untuk melatih anggota tim baru: Setiap agen harus melakukan banyak pemeriksaan/tindakan yang berbeda selama setiap percakapan. Pelatihan anggota tim pendukung baru akan menjadi lebih mudah jika makro yang telah ditentukan sebelumnya tersedia dalam akun. Alih-alih menjelaskan setiap langkah secara rinci, manajer/kepala tim dapat menunjukkan makro yang digunakan dalam skenario berbeda.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Terjadi kesalahan. Silakan coba lagi",
"ORDER_INFO": "Makro akan dijalankan sesuai dengan urutan penambahan tindakan-tindakan Anda. Anda dapat mengatur ulang tindakan-tindakan tersebut dengan menggesernya menggunakan pegangan di sebelah setiap node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Dibuat oleh",
- "Terakhir diperbarui oleh",
- "Visibilitas"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "CREATED BY": "Dibuat oleh",
+ "LAST_UPDATED_BY": "Terakhir diperbarui oleh",
+ "VISIBILITY": "Visibilitas",
+ "ACTIONS": "Aksi"
+ },
"404": "Tidak ditemukan makro"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Terjadi kesalahan saat menghapus makro. Silakan coba lagi nanti"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit makro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Visibilitas Makro",
"GLOBAL": {
"LABEL": "Publik",
- "DESCRIPTION": "Makro ini tersedia secara publik untuk semua agen dalam akun ini."
+ "DESCRIPTION": "Makro ini tersedia secara publik untuk semua agen dalam akun ini.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Pribadi",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Jalankan",
"PREVIEW": "Pratinjau Makro",
"EXECUTED_SUCCESSFULLY": "Makro berhasil dijalankan"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Nilai dibutuhkan",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Tidak ada",
+ "LOW": "Rendah",
+ "MEDIUM": "Sedang",
+ "HIGH": "Tinggi",
+ "URGENT": "Penting"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/mfa.json b/app/javascript/dashboard/i18n/locale/id/mfa.json
new file mode 100644
index 000000000..b592f28ec
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Diaktifkan",
+ "DISABLED": "Nonaktif",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Salin",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Batalkan",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Unduh",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Kata Sandi",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Batalkan",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Batalkan",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/onboarding.json b/app/javascript/dashboard/i18n/locale/id/onboarding.json
new file mode 100644
index 000000000..db8c74476
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Bahasa",
+ "TIMEZONE": "Zona Waktu",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Pilih zona waktu",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Menyimpan...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/report.json b/app/javascript/dashboard/i18n/locale/id/report.json
index 872af13a3..bee3aa28b 100644
--- a/app/javascript/dashboard/i18n/locale/id/report.json
+++ b/app/javascript/dashboard/i18n/locale/id/report.json
@@ -3,7 +3,7 @@
"HEADER": "Percakapan",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
- "DOWNLOAD_AGENT_REPORTS": "Unduh laporan agen",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Gagal mengambil data, silakan coba lagi nanti.",
"SUMMARY_FETCHING_FAILED": "Gagal mengambil ringkasan, silakan coba lagi nanti.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Waktu Respon Pertama",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Respon Pertama adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Respon Pertama adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_TIME": {
"NAME": "Waktu Penyelesaian",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Penyelesaian adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Penyelesaian adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_COUNT": {
"NAME": "Jumlah Terselesaikan",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Jumlah Terselesaikan",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "7 hari terakhir",
+ "LAST_14_DAYS": "14 hari terakhir",
"LAST_30_DAYS": "30 hari terakhir",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "3 bulan terakhir",
"LAST_6_MONTHS": "6 bulan terakhir",
"LAST_YEAR": "Tahun terakhir",
"CUSTOM_DATE_RANGE": "Rentang tanggal kustom"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "7 hari terakhir"
- },
- {
- "id": 1,
- "name": "30 hari terakhir"
- },
- {
- "id": 2,
- "name": "3 bulan terakhir"
- },
- {
- "id": 3,
- "name": "6 bulan terakhir"
- },
- {
- "id": 4,
- "name": "Tahun terakhir"
- },
- {
- "id": 5,
- "name": "Rentang tanggal kustom"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Terapkan",
"PLACEHOLDER": "Pilih rentang tanggal"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Jam Kerja"
+ "BUSINESS_HOURS": "Jam Kerja",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tidak ada hasil ditemukan"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Gambaran Agen",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_AGENT_REPORTS": "Unduh laporan agen",
"FILTER_DROPDOWN_LABEL": "Pilih Agen",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Mencari Agen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -155,13 +155,13 @@
"NAME": "Waktu Respon Pertama",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Respon Pertama adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Respon Pertama adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_TIME": {
"NAME": "Waktu Penyelesaian",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Penyelesaian adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Penyelesaian adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_COUNT": {
"NAME": "Jumlah Terselesaikan",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Pilih label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cari label"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -222,13 +228,13 @@
"NAME": "Waktu Respon Pertama",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Respon Pertama adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Respon Pertama adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_TIME": {
"NAME": "Waktu Penyelesaian",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Penyelesaian adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Penyelesaian adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_COUNT": {
"NAME": "Jumlah Terselesaikan",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Gambaran kontak masuk",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_INBOX_REPORTS": "Unduh laporan kotak masuk",
"FILTER_DROPDOWN_LABEL": "Pilih kotak masuk",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -289,13 +303,13 @@
"NAME": "Waktu Respon Pertama",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Respon Pertama adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Respon Pertama adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_TIME": {
"NAME": "Waktu Penyelesaian",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Penyelesaian adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Penyelesaian adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_COUNT": {
"NAME": "Jumlah Terselesaikan",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Gambaran Tim",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Memuat data grafik...",
"NO_ENOUGH_DATA": "Kami belum menerima cukup data untuk membuat laporan, Silakan coba lagi nanti.",
"DOWNLOAD_TEAM_REPORTS": "Unduh laporan tim",
"FILTER_DROPDOWN_LABEL": "Pilih Tim",
+ "FILTERS": {
+ "ADD_FILTER": "Tambah filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Mencari tim"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Percakapan",
@@ -356,13 +379,13 @@
"NAME": "Waktu Respon Pertama",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Respon Pertama adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Respon Pertama adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_TIME": {
"NAME": "Waktu Penyelesaian",
"DESC": "( Rata-Rata )",
"INFO_TEXT": "Total jumlah percakapan yang digunakan untuk perhitungan:",
- "TOOLTIP_TEXT": "Waktu Penyelesaian adalah %{metricValue} (berdasarkan %{conversationCount} percakapan)"
+ "TOOLTIP_TEXT": "Waktu Penyelesaian adalah {metricValue} (berdasarkan {conversationCount} percakapan)"
},
"RESOLUTION_COUNT": {
"NAME": "Jumlah Terselesaikan",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Laporan CSAT",
- "NO_RECORDS": "Tidak ada respons survey CSAT yang tersedia.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Unduh Laporan CSAT",
"DOWNLOAD_FAILED": "Gagal mengunduh Laporan CSAT",
"FILTERS": {
+ "ADD_FILTER": "Tambah filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Mencari Agen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Mencari tim",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Pilih Agen"
+ "LABEL": "Agen"
+ },
+ "INBOXES": {
+ "LABEL": "Kotak masuk"
+ },
+ "TEAMS": {
+ "LABEL": "Tim"
+ },
+ "RATINGS": {
+ "LABEL": "Penilaian"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontak",
- "AGENT_NAME": "Agen yang ditugaskan",
+ "AGENT_NAME": "Agen",
"RATING": "Peringkat",
- "FEEDBACK_TEXT": "Komentar umpan balik"
- }
+ "FEEDBACK_TEXT": "Komentar umpan balik",
+ "CONVERSATION": "Percakapan",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total respons",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Peringkat respons",
"TOOLTIP": "Total jumlah respons / Total jumlah pesan survey CSAT yang terkirim * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Simpan",
+ "CANCEL": "Batalkan",
+ "SAVING": "Menyimpan...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Lalu Lintas Percakapan",
"NO_CONVERSATIONS": "Tidak ada percakapan",
- "CONVERSATION": "%{count} percakapan",
- "CONVERSATIONS": "%{count} percakapan"
+ "CONVERSATION": "{count} percakapan",
+ "CONVERSATIONS": "{count} percakapan",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Tidak ada percakapan",
+ "CONVERSATION": "{count} percakapan",
+ "CONVERSATIONS": "{count} percakapan",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Percakapan oleh Agen",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Tidak ada percakapan oleh agen",
"TABLE_HEADER": {
"AGENT": "Agen",
- "OPEN": "TERBUKA",
+ "OPEN": "Terbuka",
+ "UNATTENDED": "Tidak Ditangani",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Tim",
+ "OPEN": "Terbuka",
"UNATTENDED": "Tidak Ditangani",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Kamis",
"FRIDAY": "Jumat",
"SATURDAY": "Sabtu"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Tambah filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tidak ada hasil ditemukan",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Nama agen",
+ "INBOXES": "Nama kotak masuk",
+ "LABELS": "Nama label",
+ "TEAMS": "Nama Tim"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Kotak masuk",
+ "AGENTS": "Agen",
+ "LABELS": "Label",
+ "TEAMS": "Tim"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Percakapan",
+ "AGENT": "Agen"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Jumlah Terselesaikan",
+ "CONVERSATIONS": "Jumlah percakapan"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/search.json b/app/javascript/dashboard/i18n/locale/id/search.json
index ca5ab205d..467781adc 100644
--- a/app/javascript/dashboard/i18n/locale/id/search.json
+++ b/app/javascript/dashboard/i18n/locale/id/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Semua",
+ "ALL": "All results",
"CONTACTS": "Kontak",
"CONVERSATIONS": "Percakapan",
- "MESSAGES": "Pesan"
+ "MESSAGES": "Pesan",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontak",
"CONVERSATIONS": "Percakapan",
- "MESSAGES": "Pesan"
+ "MESSAGES": "Pesan",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "Tidak ada %{item} ditemukan untuk kueri '%{query}'",
- "EMPTY_STATE_FULL": "Tidak ada hasil ditemukan untuk kueri '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ untuk fokus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Sedang mencari",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Tidak ada {item} ditemukan untuk kueri '{query}'",
+ "EMPTY_STATE_FULL": "Tidak ada hasil ditemukan untuk kueri '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/untuk fokus",
"INPUT_PLACEHOLDER": "Cari pesan, kontak, atau percakapan",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Cari dengan ID percakapan, email, nomor telepon, atau pesan untuk hasil pencarian yang lebih baik.",
"BOT_LABEL": "Bot",
"READ_MORE": "Baca lebih lanjut",
+ "READ_LESS": "Read less",
"WROTE": "menulis:",
- "FROM": "dari",
- "EMAIL": "email"
+ "FROM": "Dari",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subjek",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "7 hari terakhir",
+ "LAST_30_DAYS": "30 hari terakhir",
+ "LAST_60_DAYS": "60 hari terakhir",
+ "LAST_90_DAYS": "90 hari terakhir",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Terapkan",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Pengirim",
+ "IN": "Kotak masuk",
+ "AGENTS": "Agen",
+ "CONTACTS": "Kontak",
+ "INBOXES": "Kotak masuk",
+ "NO_AGENTS": "Tidak ada agen",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/settings.json b/app/javascript/dashboard/i18n/locale/id/settings.json
index a652d9aae..3a04f306c 100644
--- a/app/javascript/dashboard/i18n/locale/id/settings.json
+++ b/app/javascript/dashboard/i18n/locale/id/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Kata sandi Anda berhasil diubah",
"AFTER_EMAIL_CHANGED": "Profil Anda telah berhasil diperbarui, silakan masuk lagi dengan data akun yang baru diubah",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Foto Profil",
"ERROR": "Perbaiki kesalahan formulir",
"REMOVE_IMAGE": "Hapus",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Tanda tangan pesan pribadi",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Tanda tangan berhasil disimpan",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Ukuran gambar harus kurang dari {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Ukuran gambar harus kurang dari {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Tanda Tangan Pesan",
@@ -54,15 +81,45 @@
"NOTE": "Memperbarui kata sandi Anda akan mengatur ulang login Anda di beberapa perangkat.",
"BTN_TEXT": "Ubah Kata Sandi"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Token Akses",
- "NOTE": "Token ini dapat digunakan jika Anda sedang membangun integrasi berbasis API"
+ "NOTE": "Token ini dapat digunakan jika Anda sedang membangun integrasi berbasis API",
+ "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": "Pemberitahuan Audio",
- "NOTE": "Aktifkan pemberitahuan audio di dashboard untuk pesan dan percakapan baru.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Tidak ada",
+ "MINE": "Assigned",
+ "ALL": "Semua",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Jenis pemberitahuan:",
+ "TITLE": "Alert events for conversations",
"NONE": "Tidak ada",
"ASSIGNED": "Percakapan yang ditetapkan",
"ALL_CONVERSATIONS": "Semua Percakapan"
@@ -74,7 +131,9 @@
"TITLE": "Kondisi pemberitahuan:",
"CONDITION_ONE": "Kirim pemberitahuan audio hanya jika jendela browser tidak aktif",
"CONDITION_TWO": "Kirim pemberitahuan setiap 30 detik hingga semua percakapan yang ditetapkan dibaca"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Baca lebih lanjut"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notifikasi Email",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Kirim notifikasi email ketika percakapan baru dibuat",
"CONVERSATION_MENTION": "Kirim notifikasi email saat Anda disebut dalam percakapan",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Kirim notifikasi email ketika pesan baru dibuat dalam percakapan yang telah ditugaskan",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kirim notifikasi email ketika pesan baru dibuat dalam percakapan yang Anda ikuti"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kirim notifikasi email ketika pesan baru dibuat dalam percakapan yang Anda ikuti",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Preferensi notifikasi Anda berhasil diperbarui",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Kirim notifikasi push ketika pesan baru dibuat dalam percakapan yang telah ditugaskan",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Kirim notifikasi push ketika pesan baru dibuat dalam percakapan yang Anda ikuti",
"HAS_ENABLED_PUSH": "Anda telah mengaktifkan notifikasi push untuk browser ini.",
- "REQUEST_PUSH": "Aktifkan notifikasi push"
+ "REQUEST_PUSH": "Aktifkan notifikasi push",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Foto Profil"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Ketersediaan",
- "STATUSES_LIST": [
- "Online",
- "Sibuk",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Sibuk",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Ubah",
- "CHANGE_ACCOUNTS": "Ganti Akun",
- "CONTACT_SUPPORT": "Hubungi Dukungan",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Pilih akun dari daftar berikut",
- "PROFILE_SETTINGS": "Pengaturan Profil",
- "KEYBOARD_SHORTCUTS": "Pintasan Keyboard",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Konsol Super Admin",
- "LOGOUT": "Keluar"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "hari percobaan tersisa.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Akun Ditangguhkan",
"MESSAGE": "Akun Anda ditangguhkan. Silakan hubungi tim dukungan untuk informasi lebih lanjut."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Unduh",
"UPLOADING": "Mengunggah...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Cerita ini tidak lagi tersedia."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Cerita ini tidak lagi tersedia.",
+ "INSTAGRAM_STORY_REPLY": "Membalas cerita Anda:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Lihat di peta"
},
"FORM_BUBBLE": {
"SUBMIT": "Kirim"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Memverifikasi...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Saat ini dilihat:",
"SWITCH": "Ganti",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Percakapan",
- "INBOX": "Kotak masuk",
+ "INBOX": "Kotak Masuk Saya",
"ALL_CONVERSATIONS": "Semua Percakapan",
"MENTIONED_CONVERSATIONS": "Disebutkan",
"PARTICIPATING_CONVERSATIONS": "Berpartisipasi",
@@ -208,6 +308,18 @@
"REPORTS": "Laporan",
"SETTINGS": "Pengaturan",
"CONTACTS": "Kontak",
+ "ACTIVE": "Aktif",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Kotak masuk",
+ "CAPTAIN_SETTINGS": "Pengaturan",
"HOME": "Beranda",
"AGENTS": "Agen",
"AGENT_BOTS": "Bot Agen",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Kotak Masuk Baru",
"REPORTS_CONVERSATION": "Percakapan",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampanye",
"ONGOING": "Berlangsung",
"ONE_OFF": "Sekali",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agen",
"REPORTS_LABEL": "Label",
"REPORTS_INBOX": "Kotak Masuk",
"REPORTS_TEAM": "Tim",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Atur diri anda sebagai",
+ "SET_YOUR_AVAILABILITY": "Atur ketersediaan Anda",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Gambaran",
- "FACEBOOK_REAUTHORIZE": "Koneksi Facebook Anda telah kedaluwarsa, hubungkan kembali halaman Facebook Anda untuk melanjutkan layanan",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Pusat Bantuan",
- "ALL_ARTICLES": "Semua Artikel",
- "MY_ARTICLES": "Artikel Saya",
- "DRAFT": "Konsep",
- "ARCHIVED": "Arsip",
- "CATEGORY": "Kategori",
- "SETTINGS": "Pengaturan",
- "CATEGORY_EMPTY_MESSAGE": "Tidak ada kategori ditemukan"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategori",
+ "LOCALES": "Bahasa",
+ "SETTINGS": "Pengaturan"
},
+ "CHANNELS": "Channel",
"SET_AUTO_OFFLINE": {
"TEXT": "Tandai offline secara otomatis",
- "INFO_TEXT": "Biarkan sistem secara otomatis menandai Anda offline saat Anda tidak menggunakan aplikasi atau dasbor."
+ "INFO_TEXT": "Biarkan sistem secara otomatis menandai Anda offline saat Anda tidak menggunakan aplikasi atau dasbor.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Baca dokumen"
+ "DOCS": "Baca dokumen",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fitur",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Pembayaran",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Paket Saat Ini",
- "PLAN_NOTE": "Anda saat ini berlangganan paket **%{plan}** dengan **%{quantity}** lisensi"
+ "PLAN_NOTE": "Anda saat ini berlangganan paket **{plan}** dengan **{quantity}** lisensi",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Kelola langganan Anda",
"DESCRIPTION": "Lihat faktur sebelumnya, edit rincian pembayaran, atau batalkan langganan Anda.",
"BUTTON_TXT": "Buka portal pembayaran"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Segarkan"
+ },
"CHAT_WITH_US": {
"TITLE": "Butuh bantuan?",
"DESCRIPTION": "Mengalami masalah dalam pembayaran? Kami di sini untuk membantu.",
"BUTTON_TXT": "Chat dengan kami"
},
- "NO_BILLING_USER": "Akun pembayaran Anda sedang dikonfigurasi. Silakan segarkan halaman dan coba lagi."
+ "NO_BILLING_USER": "Akun pembayaran Anda sedang dikonfigurasi. Silakan segarkan halaman dan coba lagi.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Catatan:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Batalkan",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Kembali",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Kode berhasil disalin ke clipboard",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Cari atribut"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Selesaikan percakapan",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Selesaikan percakapan",
+ "CANCEL": "Batalkan"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Ya",
+ "NO": "Tidak"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Kami tidak dapat menemukan akun Chatwoot apa pun. Harap buat akun baru untuk melanjutkan.",
@@ -294,7 +624,8 @@
"LABEL": "Nama Perusahaan",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Kirim"
+ "SUBMIT": "Kirim",
+ "CANCEL": "Batalkan"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Buka sidebar Laporan",
"MOVE_TO_NEXT_TAB": "Pindah ke tab berikutnya dalam daftar percakapan",
"GO_TO_SETTINGS": "Buka Pengaturan",
- "SWITCH_CONVERSATION_STATUS": "Beralih ke status percakapan berikutnya",
"SWITCH_TO_PRIVATE_NOTE": "Beralih ke Catatan Pribadi",
"SWITCH_TO_REPLY": "Beralih ke Balasan",
"TOGGLE_SNOOZE_DROPDOWN": "Buka/Tutup dropdown penundaan"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritas",
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Tambahkan"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Deskripsi:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Tambahkan"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Hapus",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/signup.json b/app/javascript/dashboard/i18n/locale/id/signup.json
index 02ecfd008..bc1f3ab84 100644
--- a/app/javascript/dashboard/i18n/locale/id/signup.json
+++ b/app/javascript/dashboard/i18n/locale/id/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Buat akun",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Daftar",
"TESTIMONIAL_HEADER": "Hanya butuh satu langkah untuk maju",
"TESTIMONIAL_CONTENT": "Anda hanya tinggal selangkah lagi untuk berinteraksi dengan pelanggan Anda, mempertahankan mereka, dan menemukan yang baru.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Email kantor",
- "PLACEHOLDER": "Masukkan alamat email kantor Anda. contoh: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Harap masukkan alamat email kantor yang valid"
},
"PASSWORD": {
"LABEL": "Kata Sandi",
"PLACEHOLDER": "Kata Sandi",
"ERROR": "Kata sandi terlalu pendek",
- "IS_INVALID_PASSWORD": "Kata sandi harus mengandung setidaknya 1 huruf kapital, 1 huruf kecil, 1 angka, dan 1 karakter khusus"
+ "IS_INVALID_PASSWORD": "Kata sandi harus mengandung setidaknya 1 huruf kapital, 1 huruf kecil, 1 angka, dan 1 karakter khusus",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Konfirmasi Kata Sandi",
"PLACEHOLDER": "Konfirmasi Kata Sandi",
- "ERROR": "Kata Sandi tidak cocok"
+ "ERROR": "Kata Sandi tidak cocok."
},
"API": {
- "SUCCESS_MESSAGE": "Pendaftaran Berhasil",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Tidak dapat terhubung ke Server Woot, Silahkan coba lagi nanti"
},
"SUBMIT": "Buat akun",
- "HAVE_AN_ACCOUNT": "Sudah punya akun?"
+ "HAVE_AN_ACCOUNT": "Sudah punya akun?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/sla.json b/app/javascript/dashboard/i18n/locale/id/sla.json
index 6b399bf87..2635f7bab 100644
--- a/app/javascript/dashboard/i18n/locale/id/sla.json
+++ b/app/javascript/dashboard/i18n/locale/id/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Tidak ada item yang cocok dengan kueri ini",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nama",
- "Deskripsi",
- "FRT",
- "NRT",
- "RT",
- "Jam Kerja"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Terjadi kesalahan, harap coba lagi"
+ },
+ "CONFIRM": {
+ "TITLE": "Konfirmasi Penghapusan",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ya, Hapus ",
+ "NO": "Tidak, Simpan "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Waktu respons pertama",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/id/snooze.json b/app/javascript/dashboard/i18n/locale/id/snooze.json
new file mode 100644
index 000000000..7b6703a08
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "jam",
+ "DAY": "hari",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "besok",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "minggu depan",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "hari"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/id/teamsSettings.json b/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
index 1f3775673..dbcaaa64f 100644
--- a/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/id/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Buat tim baru",
"HEADER": "Tim",
- "SIDEBAR_TXT": "Tim
Tim memungkinkan Anda mengorganisir agen-agen Anda ke dalam kelompok berdasarkan tanggung jawab mereka.
Seorang agen dapat menjadi bagian dari beberapa tim. Anda dapat mengalokasikan percakapan kepada sebuah tim saat bekerja secara kolaboratif.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Mencari tim...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Belum ada tim yang dibuat pada akun ini.",
- "EDIT_TEAM": "Edit Tim"
+ "EDIT_TEAM": "Edit Tim",
+ "NONE": "Tidak ada"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Tambahkan agen ke tim Anda",
- "TITLE": "Tambahkan agen ke tim - %{teamName}",
+ "TITLE": "Tambahkan agen ke tim - {teamName}",
"DESC": "Tambahkan agen pada tim baru Anda. Ini memungkinkan Anda berkolaborasi sebagai sebuah tim pada percakapan, mendapatkan notifikasi atas peristiwa baru dalam percakapan yang sama."
},
- "WIZARD": [
- {
- "title": "Buat",
- "route": "pengaturan_tim_baru",
- "body": "Buat tim baru dari agen-agen."
- },
- {
- "title": "Tambahkan Agen",
- "route": "pengaturan_tim_tambahkan_agen",
- "body": "Tambahkan agen-agen ke dalam tim."
- },
- {
- "title": "Selesai",
- "route": "pengaturan_tim_selesai",
- "body": "Sekarang kotak masuk Anda sudah siap!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Buat",
+ "BODY": "Buat tim baru dari agen-agen."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Tambahkan Agen",
+ "BODY": "Tambahkan agen-agen ke dalam tim."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Selesai",
+ "BODY": "Sekarang kotak masuk Anda sudah siap!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,26 +44,24 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agen dalam tim",
- "TITLE": "Tambahkan agen ke tim - %{teamName}",
+ "TITLE": "Tambahkan agen ke tim - {teamName}",
"DESC": "Tambahkan agen-agen pada tim baru Anda. Semua agen yang telah ditambahkan akan mendapatkan notifikasi ketika sebuah percakapan dialokasikan pada tim ini."
},
- "WIZARD": [
- {
- "title": "Detil tim",
- "route": "pengaturan_tim_edit",
- "body": "Ubah nama, deskripsi, dan detil lainnya."
- },
- {
- "title": "Edit Agen",
- "route": "pengaturan_tim_edit_anggota",
- "body": "Edit agen-agen dalam tim Anda."
- },
- {
- "title": "Selesai",
- "route": "pengaturan_tim_edit_selesai",
- "body": "Sekarang kotak masuk Anda sudah siap!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Detil tim",
+ "ROUTE": "pengaturan_tim_edit",
+ "BODY": "Ubah nama, deskripsi, dan detil lainnya."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agen",
+ "ROUTE": "pengaturan_tim_edit_anggota",
+ "BODY": "Edit agen-agen dalam tim Anda."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Selesai",
+ "ROUTE": "pengaturan_tim_edit_selesai",
+ "BODY": "Sekarang kotak masuk Anda sudah siap!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Tidak dapat menyimpan detil tim. Coba lagi."
@@ -74,14 +73,14 @@
"ADD_AGENTS": "Menambahkan Agen ke Tim Anda...",
"SELECT": "pilih",
"SELECT_ALL": "pilih semua agen",
- "SELECTED_COUNT": "%{selected} dari %{total} agen terpilih."
+ "SELECTED_COUNT": "{selected} dari {total} agen terpilih."
},
"ADD": {
- "TITLE": "Tambahkan agen ke tim - %{teamName}",
+ "TITLE": "Tambahkan agen ke tim - {teamName}",
"DESC": "Tambahkan agen-agen pada tim baru Anda. Ini memungkinkan Anda berkolaborasi sebagai sebuah tim pada percakapan, mendapatkan notifikasi atas peristiwa baru dalam percakapan yang sama.",
"SELECT": "pilih",
"SELECT_ALL": "pilih semua agen",
- "SELECTED_COUNT": "%{selected} dari %{total} agen terpilih.",
+ "SELECTED_COUNT": "{selected} dari {total} agen terpilih.",
"BUTTON_TEXT": "Tambahkan Agen",
"AGENT_VALIDATION_ERROR": "Pilih setidaknya satu agen."
},
@@ -97,8 +96,8 @@
"ERROR_MESSAGE": "Tidak dapat menghapus tim. Coba lagi."
},
"CONFIRM": {
- "TITLE": "Anda yakin akan menghapus - %{teamName}",
- "PLACE_HOLDER": "Silakan ketik %{teamName} untuk konfirmasi",
+ "TITLE": "Are you sure you want to delete the team?",
+ "PLACE_HOLDER": "Silakan ketik {teamName} untuk konfirmasi",
"MESSAGE": "Menghapus tim akan menghilangkan alokasi tim dari percakapan yang telah ditetapkan terhadap tim ini.",
"YES": "Hapus ",
"NO": "Batalkan"
diff --git a/app/javascript/dashboard/i18n/locale/id/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/id/whatsappTemplates.json
index 907f8659c..06a911929 100644
--- a/app/javascript/dashboard/i18n/locale/id/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/id/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Templat Whatsapp",
- "SUBTITLE": "Pilih templat Whatsapp yang ingin Anda kirim",
- "TEMPLATE_SELECTED_SUBTITLE": "Proses %{templatName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Cari Templat",
- "NO_TEMPLATES_FOUND": "Tidak ditemukan templat untuk",
- "LABELS": {
- "LANGUAGE": "Bahasa",
- "TEMPLATE_BODY": "Isi Templat",
- "CATEGORY": "Kategori"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variabel",
- "VARIABLE_PLACEHOLDER": "Masukkan nilai %{variable}",
- "GO_BACK_LABEL": "Kembali",
- "SEND_MESSAGE_LABEL": "Kirim Pesan",
- "FORM_ERROR_MESSAGE": "Harap isi semua variabel sebelum mengirim"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Templat Whatsapp",
+ "SUBTITLE": "Pilih templat Whatsapp yang ingin Anda kirim",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cari Templat",
+ "NO_TEMPLATES_FOUND": "Tidak ditemukan templat untuk",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategori",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Bahasa",
+ "TEMPLATE_BODY": "Isi Templat",
+ "CATEGORY": "Kategori"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabel",
+ "LANGUAGE": "Bahasa",
+ "CATEGORY": "Kategori",
+ "VARIABLE_PLACEHOLDER": "Masukkan nilai {variable}",
+ "GO_BACK_LABEL": "Kembali",
+ "SEND_MESSAGE_LABEL": "Kirim Pesan",
+ "FORM_ERROR_MESSAGE": "Harap isi semua variabel sebelum mengirim",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/id/yearInReview.json b/app/javascript/dashboard/i18n/locale/id/yearInReview.json
new file mode 100644
index 000000000..43606bb27
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/id/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Tutup",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "Percakapan",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Unduh",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/advancedFilters.json b/app/javascript/dashboard/i18n/locale/is/advancedFilters.json
index bb883b0f0..6b1a17efa 100644
--- a/app/javascript/dashboard/i18n/locale/is/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/is/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/is/agentBots.json b/app/javascript/dashboard/i18n/locale/is/agentBots.json
index 4ab49218c..d35d26597 100644
--- a/app/javascript/dashboard/i18n/locale/is/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/is/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Aðgerðir"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
index 8836f13ac..8eb017f11 100644
--- a/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Þjónustufulltrúar",
"HEADER_BTN_TXT": "Bæta við þjónustufulltrúa",
"LOADING": "Sækja lista yfir þjónustufulltrúa",
- "SIDEBAR_TXT": "Þjónustufulltrúar
Þjónustufulltrúi er meðlimur í þjónustuverinu þínu.
Þjónustufulltrúar munu geta skoðað og svarað skilaboðum frá notendum þínum. Listinn sýnir alla þjónustufulltrúa sem eru á reikningnum þínum.
Smelltu á Bæta við þjónustufulltrúa til að bæta við nýjum þjónustufulltrúa. þjónustufulltrúi sem þú bætir við mun fá tölvupóst með staðfestingartengli til að virkja reikninginn sinn, eftir það getur hann fengið aðgang að Chatwoot og svarað skilaboðum.
Aðgangur að eiginleikum Chatwoot byggist á eftirfarandi hlutverkum.
Þjónustufulltrúi - Þjónustufulltrúi með þetta hlutverk hafa aðeins aðgang að innhólfum, skýrslur og samtöl. Þeir geta úthlutað samtölum til annarra umboðsmanna eða á sjálfa sig og leyst samtöl.
Stjórnandi - Stjórnandi mun hafa aðgang að öllum Chatwoot eiginleikum sem eru virkjaðir fyrir reikninginn þinn, þar á meðal stillingar, ásamt öllum venjulegum réttindum þjónustufulltrúa.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Stjórnandi",
"AGENT": "Þjónustufulltrúi"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Það eru engir þjónustufulltrúar tengdir við þennan reikning",
"TITLE": "Umsýsla þjónustufulltrúa í þínu teymi",
@@ -17,7 +19,8 @@
"STATUS": "Staða",
"ACTIONS": "Aðgerðir",
"VERIFIED": "Staðfest",
- "VERIFICATION_PENDING": "Bíður staðfestingar"
+ "VERIFICATION_PENDING": "Bíður staðfestingar",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Bæta þjónustufulltrúa við teymið",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Náði ekki að tengjast við netþjóna Woot, vinsamlegast reynið aftur"
}
},
+ "SEARCH_PLACEHOLDER": "Leita að þjónustufulltrúum...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Engar niðurstöður fundust."
},
@@ -103,6 +108,9 @@
"AGENT": "Velja þjónustufulltrúa",
"TEAM": "Velja teymi"
},
+ "LIST": {
+ "NONE": "Enginn"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Engir þjónustufulltrúar fundust",
diff --git a/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
index 176e94ea7..3e46e5109 100644
--- a/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Sérsniðin eiginleiki
Sérsniðin eiginleiki fylgist með staðreyndum um tengiliðina/samtalið þitt - eins og áskriftaráætlunina, eða þegar þeir pöntuðu fyrsta hlutinn osfrv.
Til að búa til sérsniðna eigind, smelltu bara á Bæta við sérsniðinni eigind. Þú getur líka breytt eða eytt núverandi sérsniðinni eigind með því að smella á Breyta eða Eyða hnappinn.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Leita í eiginleikum...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Fyrirtæki"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Ekki tókst að eyða sérsniðnu eigindinni. Reyndu aftur."
},
"CONFIRM": {
- "TITLE": "Ertu viss um að þú viljir eyða - %{attributeName}",
+ "TITLE": "Ertu viss um að þú viljir eyða - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Fyrirtæki"
},
"LIST": {
- "TABLE_HEADER": [
- "Nafn",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Breyta",
"DELETE": "Eyða"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/auditLogs.json b/app/javascript/dashboard/i18n/locale/is/auditLogs.json
index df05b2995..d2d53719c 100644
--- a/app/javascript/dashboard/i18n/locale/is/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/is/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Aðgerðaskrá",
"HEADER_BTN_TXT": "Bæta við Aðgerðaskrá",
"LOADING": "Hleð Aðgerðaskrá",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn",
"SIDEBAR_TXT": "Aðgerðaskrá
Aðgerðaskrá heldur utan um alla atburði og aðgerðir í Chatwoot.
",
"LIST": {
"404": "Það eru engar aðgerðaskrár tiltækar á þessum reikning.",
"TITLE": "Stjórna Aðgerðaskrám",
"DESC": "Aðgerðaskrár heldur utan um alla atburði og aðgerðir í Chatwoot.",
- "TABLE_HEADER": [
- "Notandi",
- "Aðgerð",
- "IP tala"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Notandi",
+ "TIME": "Aðgerð",
+ "IP_ADDRESS": "IP tala"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Aðgerðaskrá sótt",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 49815e07c..6c3ccc39a 100644
--- a/app/javascript/dashboard/i18n/locale/is/automation.json
+++ b/app/javascript/dashboard/i18n/locale/is/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Sjálfvirknireglur
Sjálfvirkni getur komið í stað og sjálfvirkt núverandi ferli sem krefjast handvirkrar áreynslu. Þú getur gert margt með sjálfvirkni, þar á meðal að bæta við merkimiðum og úthluta samtali á besta þjónustufulltrúann. Þannig að teymið einbeitir sér að því sem það gerir best og eyðir minni tíma í handvirk verkefni.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nafn",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Aðgerðir"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Þú þarft að hafa að minnsta kosti eina aðgerð til að vista",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Hleður upp...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Enginn",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Opna samtal",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Enginn",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Private Note",
+ "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",
+ "COMPANY_NAME": "Fyrirtæki",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/bulkActions.json b/app/javascript/dashboard/i18n/locale/is/bulkActions.json
index dbdb2d970..08eeaf66e 100644
--- a/app/javascript/dashboard/i18n/locale/is/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/is/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} samtöl valin",
- "AGENT_SELECT_LABEL": "Velja þjónustufulltrúa",
- "ASSIGN_CONFIRMATION_LABEL": "Ertu viss um að úthluta %{conversationCount} %{conversationLabel} á",
- "UNASSIGN_CONFIRMATION_LABEL": "Ertu viss um að hætta við úthlutun %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Úthluta",
+ "CONVERSATIONS_SELECTED": "{conversationCount} samtöl valin",
+ "NONE": "Enginn",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Já",
+ "CANCEL": "Hætta við",
+ "SEARCH_INPUT_PLACEHOLDER": "Leit",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Samtöl sem sjást á þessari síðu eru aðeins valin.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Velja teymi",
"NONE": "Enginn",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/campaign.json b/app/javascript/dashboard/i18n/locale/is/campaign.json
index 476c11fc3..9e12d7d4c 100644
--- a/app/javascript/dashboard/i18n/locale/is/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/is/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Herferð",
- "SIDEBAR_TXT": "Fyrirbyggjandi skilaboð gera viðskiptavinum kleift að senda skilaboð á útleið til tengiliða sinna sem myndu kalla fram fleiri samtöl. Smelltu á Bæta við herferð til að búa til nýja herferð. Þú getur líka breytt eða eytt núverandi herferð með því að smella á Breyta eða Eyða hnappinn.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Búa til einkvæma herðferð",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Fyrirbyggjandi skilaboð gera viðskiptavinum kleift að senda skilaboð á útleið til tengiliða sinna sem myndu kalla fram fleiri samtöl.",
- "CANCEL_BUTTON_TEXT": "Hætta við",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Virkt",
+ "DISABLED": "Slökkt"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Skilaboð",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent af",
+ "BOT": "Bot",
+ "FROM": "frá",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Hætta við",
+ "CREATE_BUTTON_TEXT": "Stofna",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Skilaboð",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent af",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Vinsamlega skráðu gilt URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Stofna",
+ "CANCEL": "Hætta við"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Eyða",
- "CONFIRM": {
- "TITLE": "Staðfesta eyðingu",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Já, eyða",
- "NO": "Nei, hætta við eyðingu"
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Hætta við",
+ "CREATE_BUTTON_TEXT": "Stofna",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Skilaboð",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Stofna",
+ "CANCEL": "Hætta við"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Hætta við",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Hætta við"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Eyða",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Ekki tókst að eyða herferðinni. Vinsamlegast reyndu aftur síðar."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Uppfæra",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "Engar herferðir eru til fyrir þetta pósthólf.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Skilaboð",
- "INBOX": "Innhólf",
- "STATUS": "Staða",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Bæta við",
- "EDIT": "Breyta",
- "DELETE": "Eyða"
- },
- "STATUS": {
- "ENABLED": "Virkt",
- "DISABLED": "Slökkt",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Vinsamlegast búðu til sms innhólf og byrjaðu að bæta við herferðum"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Vinsamlegast búðu til innhólf á vefsíðu og byrjaðu að bæta við herferðum"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
index 433fa04bc..b6a783711 100644
--- a/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Stöðluð svör",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Það eru engin stöðluð svör aðgengileg á þessum reikning.",
"TITLE": "Stjórna stöðluðum svörum",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Efnistexti",
- "Aðgerðir"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Efnistexti",
+ "ACTIONS": "Aðgerðir"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/is/chatlist.json b/app/javascript/dashboard/i18n/locale/is/chatlist.json
index 70c59841a..8f4dd73af 100644
--- a/app/javascript/dashboard/i18n/locale/is/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/is/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Það eru engin virk spjöll í þessum hóp."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Samtöl",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Staðsetning"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "hefur deilt vefslóð"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Ekkert efni fannst",
"HIDE_QUOTED_TEXT": "Fela tilvitnaðan texta",
"SHOW_QUOTED_TEXT": "Sýna tilvitnaðan texta",
- "MESSAGE_READ": "Lesið"
+ "MESSAGE_READ": "Lesið",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/companies.json b/app/javascript/dashboard/i18n/locale/is/companies.json
new file mode 100644
index 000000000..b6777173f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nafn",
+ "DOMAIN": "Lén",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Tengiliðir",
+ "HISTORY": "History",
+ "NOTES": "Athugasemdir"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Leita í eiginleikum...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Hleð tengiliðum...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Fyrirtæki",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Hætta við"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nafn",
+ "DOMAIN": "Lén"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/components.json b/app/javascript/dashboard/i18n/locale/is/components.json
new file mode 100644
index 000000000..d610aba4a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Engar niðurstöður fundust.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Engar niðurstöður fundust.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Hætta við",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Vinsamlegast veldu landsnúmer úr listanum"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Læra meira",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/contact.json b/app/javascript/dashboard/i18n/locale/is/contact.json
index e609a754a..cd92ed805 100644
--- a/app/javascript/dashboard/i18n/locale/is/contact.json
+++ b/app/javascript/dashboard/i18n/locale/is/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP tala",
"CREATED_AT_LABEL": "Skráð",
"NEW_MESSAGE": "Ný skilaboð",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Engin fyrri samtöl eru tengd þessum tengilið.",
"TITLE": "Fyrri samtöl"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Sérsniðnir Eiginleikar",
"CONTACT_LABELS": "Merkingar Tengiliða",
- "PREVIOUS_CONVERSATIONS": "Fyrri samtöl"
+ "PREVIOUS_CONVERSATIONS": "Fyrri samtöl",
+ "NO_RECORDS_FOUND": "Engir eiginleikar fundust"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Breyta tengilið",
"DESC": "Breyta smáatriðum tengiliðs"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nýr tengiliður",
- "TITLE": "Bæta við nýjum tengilið",
- "DESC": "Bættu við grunnupplýsingum um tengiliðinn."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Hlaða inn",
- "TITLE": "Hlaða inn tengiliðum",
- "DESC": "Hlaða inn tengiliðum með CSV skrá.",
- "DOWNLOAD_LABEL": "Sækja csv sýnishorn.",
- "FORM": {
- "LABEL": "CSV skrá",
- "SUBMIT": "Hlaða inn",
- "CANCEL": "Hætta við"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndur aftur"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndu aftur",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Staðfesta eyðingu",
- "MESSAGE": "Ertu viss um að þú viljir eyða þessari glósu?",
- "YES": "Já, eyða",
- "NO": "Nei, hætta við eyðingu"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Eyða tengilið",
"TITLE": "Eyða tengilið",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Tengiliðir",
- "FIELDS": "Tengiliðs reitir",
- "SEARCH_BUTTON": "Leit",
- "SEARCH_INPUT_PLACEHOLDER": "Leita að tengiliðum",
- "FILTER_CONTACTS": "Sía",
- "FILTER_CONTACTS_SAVE": "Vista síu",
- "FILTER_CONTACTS_DELETE": "Eyða síu",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Hleð tengiliðum...",
- "404": "Engir tengiliðir fundust",
- "NO_CONTACTS": "Það eru engir tengiliðir til staðar",
"TABLE_HEADER": {
- "NAME": "Nafn",
- "PHONE_NUMBER": "Símanúmer",
- "CONVERSATIONS": "Samtöl",
- "LAST_ACTIVITY": "Seinasta virkni",
- "CREATED_AT": "Skráð",
- "COUNTRY": "Land",
- "CITY": "Borg",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Fyrirtæki",
- "EMAIL_ADDRESS": "Netfang"
- },
- "VIEW_DETAILS": "Sjá smáatriði"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Tengiliðir",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Bæta við",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Sækir athugasemdir...",
- "NOT_AVAILABLE": "Engar athugasemdir hafa verið gerðar fyrir þennan tengilið",
- "HEADER": {
- "TITLE": "Athugasemdir"
- },
- "LIST": {
- "LABEL": "bæta við athugasemd"
- },
- "ADD": {
- "BUTTON": "Bæta við",
- "PLACEHOLDER": "Bæta við athugasemd",
- "TITLE": "Shift + Enter til þess að bæta við athugasemd"
- },
- "CONTENT_HEADER": {
- "DELETE": "Eyða athugasemd"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "atburðir",
- "PILL_BUTTON_CONVO": "samtöl"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Bæta við eiginleikum",
"BUTTON": "Bæta við sérsniðnum eiginleika",
- "NOT_AVAILABLE": "Engir sérsniðnir eiginleikar eru tiltækir fyrir þennan tengilið.",
"COPY_SUCCESSFUL": "Afritað á klemmuspjald",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Afrita eiginleika",
"DELETE": "Eyða eiginleika",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Samantekt",
- "DELETE_WARNING": "Tengilið %{primaryContactName} verður eytt.",
- "ATTRIBUTE_WARNING": "Samskiptaupplýsingar %{primaryContactName} verða afritaðar á %{parentContactName}."
+ "DELETE_WARNING": "Tengilið {primaryContactName} verður eytt.",
+ "ATTRIBUTE_WARNING": "Samskiptaupplýsingar {primaryContactName} verða afritaðar á {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Sameina tengiliði",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Tengiliður sameinaður",
"ERROR_MESSAGE": "Tókst ekki að sameina tengiliði, reyndu aftur!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Tengiliðir",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Skilaboð",
+ "SEND_MESSAGE": "Senda skilaboð",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Tengiliðir"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Þetta netfang er í notkun fyrir annan tengilið.",
+ "PHONE_NUMBER_DUPLICATE": "Þetta símanúmer er í notkun fyrir annan tengilið.",
+ "SUCCESS_MESSAGE": "Tengiliðurinn var vistaður",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Hlaða inn tengiliðum með CSV skrá.",
+ "DOWNLOAD_LABEL": "Sækja csv sýnishorn.",
+ "LABEL": "CSV skrá:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Breyta",
+ "CANCEL": "Hætta við",
+ "IMPORT": "Hlaða inn",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndu aftur"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndu aftur"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nafn",
+ "EMAIL": "Tölvupóstfang",
+ "PHONE_NUMBER": "Símanúmer",
+ "COMPANY": "Fyrirtæki",
+ "COUNTRY": "Land",
+ "CITY": "Borg",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Vista síu",
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Staðfesta eyðingu",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Já, eyða",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nafn",
+ "EMAIL": "Tölvupóstfang",
+ "PHONE_NUMBER": "Símanúmer",
+ "IDENTIFIER": "Einkenni",
+ "COUNTRY": "Land",
+ "CITY": "Borg",
+ "COMPANY": "Fyrirtæki",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Sjá smáatriði",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Breyta smáatriðum tengiliðs",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Þetta netfang er í notkun fyrir annan tengilið."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Þetta símanúmer er í notkun fyrir annan tengilið."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Sláðu inn nafn borgar"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Sláðu inn nafn fyrirtækis"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Eyða tengilið",
+ "DELETE_DIALOG": {
+ "TITLE": "Staðfesta eyðingu",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Já, eyða",
+ "API": {
+ "SUCCESS_MESSAGE": "Tengilið eytt",
+ "ERROR_MESSAGE": "Gat ekki eytt tengilið. Vinsamlegast reyndu aftur síðar."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Vefsíðumynd eytt",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Athugasemdir",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Engin fyrri samtöl eru tengd þessum tengilið"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Já",
+ "NO": "Nei",
+ "TRIGGER": {
+ "SELECT": "Veldu gildi",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Það þarf að slá inn gilt gildi",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Ógilt URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Engir eiginleikar fundust",
+ "API": {
+ "SUCCESS_MESSAGE": "Eiginleika breytt",
+ "DELETE_SUCCESS_MESSAGE": "Eiginleika eytt",
+ "UPDATE_ERROR": "Ekki er hægt að uppfæra eigindina. Vinsamlegast reyndu aftur síðar",
+ "DELETE_ERROR": "Ekki er hægt að eyða eigindinni. Vinsamlegast reyndu aftur síðar"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Sameina tengilið",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Aðaltengiliður",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Eyða",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Leita að tengilið",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Tengiliður sameinaður",
+ "ERROR_MESSAGE": "Tókst ekki að sameina tengiliði, reyndu aftur!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Hætta við",
+ "CONFIRM": "Sameina tengilið"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Bæta við athugasemd",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Engir tengiliðir fundust",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Eyða",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Eyða tengilið"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Skoða",
+ "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": "Til:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Viðfangsefni :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Skrifaðu skilaboðin þín hér..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Senda skilaboð"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Senda skilaboð"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/contactFilters.json b/app/javascript/dashboard/i18n/locale/is/contactFilters.json
index d75ece619..3231afa4c 100644
--- a/app/javascript/dashboard/i18n/locale/is/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/is/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Nafn",
"EMAIL": "Tölvupóstfang",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Seinasta virkni",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/is/contentTemplates.json b/app/javascript/dashboard/i18n/locale/is/contentTemplates.json
new file mode 100644
index 000000000..138505458
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Til baka",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/conversation.json b/app/javascript/dashboard/i18n/locale/is/conversation.json
index 0668df006..3c99a01b6 100644
--- a/app/javascript/dashboard/i18n/locale/is/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/is/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " til að byrja",
"NO_INBOX_AGENT": "Uh Ó! Þú virðist ekki vera hluti af neinu innhólfi. Vinsamlegast hafðu samband við kerfisstjóra",
"SEARCH_MESSAGES": "Leita að skilaboðum í samtölum",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Óþekkt skrá",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Hleður upp viðhengi...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Skilaboðum eytt",
"FAIL_DELETE_MESSSAGE": "Gat ekki eytt skilaboðum! Reynið aftur",
"NO_RESPONSE": "Ekkert svar",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Endurgjöf",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Þjónustufulltrúar",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Enginn",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "Engar niðurstöður fundust",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Enduropna samtal",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Samtalsauðkenni %{conversationId} úthlutað á „%{agentName}“",
+ "SUCCESFUL": "Samtalsauðkenni {conversationId} úthlutað á „{agentName}“",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Úthlutaði flokki #%{labelName} á samtalsauðkenni %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Úthlutaði teymi #%{team} á samtalsauðkenni %{conversationId}",
+ "SUCCESFUL": "Úthlutaði teymi \"{team}\" á samtalsauðkenni {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter fyrir nýja línu. Byrjaðu á '/' til að velja tilbúið svar.",
"PRIVATE_MSG_INPUT": "Shift + enter fyrir nýja línu. Þetta verður aðeins sýnilegt fyrir þjónustufulltrúa",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Skilaboðundirskrift er ekki stillt, vinsamlegast stilltu hana í prófílstillingum.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Gefðu copilot viðbótarspurningar, eða spurðu hvað sem er annað... Ýttu á enter til að senda framhaldsskilaboð",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Reply",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Bæta við viðhengjum",
"TIP_AUDIORECORDER_ICON": "Taka upp hljóð",
"TIP_AUDIORECORDER_PERMISSION": "Leyfa aðgang að hljóði",
"TIP_AUDIORECORDER_ERROR": "Tókst ekki að opna hljóðið",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Dragðu og slepptu viðhenginu hingað",
"START_AUDIO_RECORDING": "Hefja hljóðupptöku",
"STOP_AUDIO_RECORDING": "Stoppa hljóðupptöku",
- "": "",
+ "COPILOT_THINKING": "Copilot er að hugsa",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Bæta við bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Hætta við"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Einkaglósa: Aðeins sýnilegt þér og teymi þínu",
@@ -186,10 +274,15 @@
"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})",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Ekki er hægt að senda þessi skilaboð, vinsamlegast reyndu aftur síðar",
"SENT_BY": "Sent af:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Tókst ekki að senda skilaboð! Reyndu aftur",
"TRY_AGAIN": "reyna aftur",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Eyða",
"CANCEL": "Hætta við"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Hætta við",
"SEND_EMAIL_SUCCESS": "Afritið af samtalinu var sent",
"SEND_EMAIL_ERROR": "Það kom villa, vinsamlegas reyndu aftur",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Senda afritið á viðskiptavinin",
"SEND_TO_AGENT": "Sendu afritið til úthlutaðs þjónustufulltrúa",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Velkomin/n á %{installationName}!",
- "DESCRIPTION": "Takk fyrir að skrá þig. Við viljum að þú fáir sem mest út úr %{installationName}. Hér eru nokkur atriði sem þú getur gert í %{installationName} til að gera upplifunina ánægjulega.",
+ "TITLE": "Velkomin/n á {installationName}!",
+ "DESCRIPTION": "Takk fyrir að skrá þig. Við viljum að þú fáir sem mest út úr {installationName}. Hér eru nokkur atriði sem þú getur gert í {installationName} til að gera upplifunina ánægjulega.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Sjáðu nýjustu uppfærslurnar okkar",
"ALL_CONVERSATION": {
"TITLE": "Öll samtölin þin á einum stað",
- "DESCRIPTION": "Skoðaðu öll samtöl viðskiptavina þinna á einu mælaborði. Þú getur síað samtölin eftir innkominni rás, merkingu og stöðu."
+ "DESCRIPTION": "Skoðaðu öll samtöl viðskiptavina þinna á einu mælaborði. Þú getur síað samtölin eftir innkominni rás, merkingu og stöðu.",
+ "NEW_LINK": "Smelltu hér til að bæta við innhólfi"
},
"TEAM_MEMBERS": {
"TITLE": "Bjóða í teymið",
"DESCRIPTION": "Þar sem þú ert að búa þig undir að tala við viðskiptavini þína skaltu fá samstarfsfélaga þína til að aðstoða þig. Þú getur boðið samstarfsfélögum þínum með því að bæta netföngum þeirra við þjónustufulltrúalistann.",
"NEW_LINK": "Smelltu hér til að bjóða meðlim í teymið"
},
- "INBOXES": {
- "TITLE": "Tengja Innhólf",
- "DESCRIPTION": "Tengdu ýmsar rásir þar sem viðskiptavinir þínir myndu tala við þig. Það getur verið netspjall á vefsíðu, Facebook eða Twitter síðan þín eða jafnvel WhatsApp númerið þitt.",
- "NEW_LINK": "Smelltu hér til að bæta við innhólfi"
- },
"LABELS": {
"TITLE": "Flokkaðu samtöl með merkjum",
"DESCRIPTION": "Merkingar eru auðveldari leið til að flokka samtalið þitt. Búðu til merki eins og #support-enquiry, #billing-question o.s.frv., svo þú getir notað þau í samtali síðar.",
"NEW_LINK": "Smelltu hér til að búa til merki"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Í bið",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "Engir eiginleikar fundust",
"UPDATE": {
"SUCCESS": "Eiginleika breytt",
"ERROR": "Ekki er hægt að uppfæra eigindina. Vinsamlegast reyndu aftur síðar"
@@ -297,17 +449,18 @@
"TO": "Til",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Engar niðurstöður fundust",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/customRole.json b/app/javascript/dashboard/i18n/locale/is/customRole.json
new file mode 100644
index 000000000..93b5c2e44
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Aðgerðir"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Hætta við",
+ "API": {
+ "ERROR_MESSAGE": "Náði ekki að tengjast við netþjóna Woot, vinsamlegast reynið aftur"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Senda",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Breyta",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Uppfæra",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Eyða",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Náði ekki að tengjast við netþjóna Woot, vinsamlegast reynið aftur"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Ertu viss um að þú viljir eyða",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/datePicker.json b/app/javascript/dashboard/i18n/locale/is/datePicker.json
new file mode 100644
index 000000000..11844dcc7
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Síðustu 7 daga",
+ "LAST_30_DAYS": "Síðustu 30 daga",
+ "LAST_3_MONTHS": "Síðustu 3 mánuði",
+ "LAST_6_MONTHS": "Síðustu 6 mánuði",
+ "LAST_YEAR": "Síðasta ár",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/general.json b/app/javascript/dashboard/i18n/locale/is/general.json
new file mode 100644
index 000000000..f9dfc99e4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Leit",
+ "EMPTY_STATE": "Engar niðurstöður fundust"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Já",
+ "NO": "Nei"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/generalSettings.json b/app/javascript/dashboard/i18n/locale/is/generalSettings.json
index 0c26e98ac..4ba79e75c 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Þú getur fengið tölvupóst á þitt lén núna."
}
},
- "UPDATE_CHATWOOT": "Uppfærsla %{latestChatwootVersion} fyrir Chatwoot er fáanleg. Vinsamlegast uppfærðu tilvikið þitt.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Enter til þess að velja",
"ENTER_TO_REMOVE": "Enter til þess að fjarlægja",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Veldu eitt",
"SELECT": "Velja"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Samtali úthlutað",
"assigned_conversation_new_message": "Nýtt skilaboð",
"participating_conversation_new_message": "Nýtt skilaboð",
- "conversation_mention": "Nefna"
+ "conversation_mention": "Nefna",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Uppfæra"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Leita eða stökkva til",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Almennar",
"REPORTS": "Skýrslur",
"CONVERSATION": "Samtal",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Breyta úthlutun",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Breyta Teymi",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Þar til á morgun",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/is/helpCenter.json b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
index 41fc6ebdc..88f7830c5 100644
--- a/app/javascript/dashboard/i18n/locale/is/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/is/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Hleður upp...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Til baka",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Ekki tókst að fjarlægja landstaðli úr gáttinni. Reyndu aftur."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Vinsamlegast bættu við fyrirsögn greinarinnar og innihaldi þá er aðeins þú sem getur uppfært stillingarnar"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Eyða"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mitt",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Eyða",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Eyða",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Breyting á flokki mun uppfæra flokkinn í opinberu gáttinni.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Gefðu stutta lýsingu á flokknum.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Stofna",
+ "EDIT": "Uppfæra",
+ "CANCEL": "Hætta við"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Eyða"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Staða",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "lén",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Stofna",
+ "NAME": {
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nafn",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Breyta",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Eyða"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Fjarlægja"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Hleður upp...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Hætta við",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/inbox.json b/app/javascript/dashboard/i18n/locale/is/inbox.json
index cbc16a010..116bb3c31 100644
--- a/app/javascript/dashboard/i18n/locale/is/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/is/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Innhólf",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Til baka"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Ný skilaboð",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Ný skilaboð",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Ekkert efni fannst",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
index bf624f7e5..11a47f468 100644
--- a/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Innhólf",
- "SIDEBAR_TXT": "Innhólf
Þegar þú tengir vefsíðu eða Facebook-síðu við Chatwoot er það kallað Innhólf. Þú getur haft ótakmörkuð innhólf á Chatwoot reikningnum þínum.
Smelltu á Bæta við innhólfi til að tengja vefsíðu eða Facebook-síðu.
Í stjórnborðinu geturðu séð öll samtölin úr öllum innhólfunum þínum á einum stað og svarað þeim undir flipanum 'Samtöl'.
Þú getur líka séð samtöl sem eru sértæk fyrir innhólf með því að smella á innhólfsnafnið í vinstri glugganum á mælaborðinu.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Það eru engin innhólf tengd við þennan reikning."
},
- "CREATE_FLOW": [
- {
- "title": "Veldu rás",
- "route": "settings_inbox_new",
- "body": "Veldu þjónustuveituna sem þú vilt samþætta við Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Veldu rás",
+ "BODY": "Veldu þjónustuveituna sem þú vilt samþætta við Chatwoot."
},
- {
- "title": "Nýtt innhólf",
- "route": "settings_inboxes_page_channel",
- "body": "Staðfestu reikninginn þinn og búðu til pósthólf."
+ "INBOX": {
+ "TITLE": "Nýtt innhólf",
+ "BODY": "Staðfestu reikninginn þinn og búðu til pósthólf."
},
- {
- "title": "Bæta við þjónustufulltrúa",
- "route": "settings_inboxes_add_agents",
- "body": "Bæta þjónustufulltrúum á nýja innhólfið."
+ "AGENT": {
+ "TITLE": "Bæta við þjónustufulltrúa",
+ "BODY": "Bæta þjónustufulltrúum á nýja innhólfið."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Þú ert tilbúin til að halda áfram!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Þú ert tilbúin til að halda áfram!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nafn Innhólfs",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Veldu síðu úr listanum",
"INBOX_NAME": "Nafn Innhólfs",
"ADD_NAME": "Bættu við nafni á innhólfið",
- "PICK_NAME": "Veldu nafn fyrir innhólfið",
- "PICK_A_VALUE": "Veldu gildi"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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'",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Vefkróks URL",
- "PLACEHOLDER": "Sláðu inn URL Vefkróks",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Vinsamlega skráðu gilt URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Lén Vefsíðu",
"PLACEHOLDER": "Sláðu lénið á vefsíðunni þinni (dæmi: acme.is)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Lykill",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Það er nauðsynlegt að fylla út þennan reit"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Það er nauðsynlegt að fylla út þennan reit"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Byrjaðu að þjónusta viðskiptavini þína í gegnum WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Nafn Innhólfs",
"PLACEHOLDER": "Vinsamlegast sláðu inn nafn innhólfs",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Sláðu inn staðfestingartákn sem þú vilt stilla fyrir Facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Vinsamlegast sláðu inn gilt gildi."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Við gátum ekki vistað WhatsApp rásina"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Símanúmer",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID Aðgangs",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auðkenningar token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Channel",
"DESC": "Samþættu við API rásina og byrjaðu að þjónusta viðskiptavini þína.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Stilltu slóðina þar sem þú vilt fá svarhringingar á atburði.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "URL Vefkróks"
},
"SUBMIT_BUTTON": "Skrá API Rás",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Tölvupóst Rás",
- "DESC": "Innleiða tölvupósthólfið þitt.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Nafn Rásar",
"PLACEHOLDER": "Vinsamlegast sláðu inn nafn rásar",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Við gátum ekki vistað tölvupóstrásina"
},
- "FINISH_MESSAGE": "Byrja að áframsenda tölvupóstinn þinn á eftirfarandi netfang."
+ "FINISH_MESSAGE": "Byrja að áframsenda tölvupóstinn þinn á eftirfarandi netfang.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Smelltu hér",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Rás",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Veldu rás",
- "DESC": "Chatwoot styður vefspjall, Facebook Messenger, Twitter prófíla, WhatsApp, tölvupóst osfrv., Sem rásir. Ef þú vilt búa til sérsniðna rás geturðu búið hana til með því að nota API rásina. Til að byrja skaltu velja eina af rásunum hér að neðan."
+ "DESC": "Chatwoot styður vefspjall, Facebook Messenger, Twitter prófíla, WhatsApp, tölvupóst osfrv., Sem rásir. Ef þú vilt búa til sérsniðna rás geturðu búið hana til með því að nota API rásina. Til að byrja skaltu velja eina af rásunum hér að neðan.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Tölvupóstfang",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Þjónustufulltrúar",
"DESC": "Hér geturðu bætt við þjónustufulltrúum til að hafa umsjón með nýstofnuða innhólfinu þínu. Aðeins þessir völdu Þjónustufulltrúar munu hafa aðgang að innhólfinu þínu. Þjónustufulltrúar sem eru ekki hluti af þessu innhólfi munu ekki geta séð eða svarað skilaboðum í þessu innhólfi þegar þeir skrá sig inn.
PS: Sem stjórnandi, ef þú þarft aðgang að öllum pósthólfum, ættir þú að bæta sjálfum þér sem þjónustufulltrúa við öll innhólf sem þú býrð til.",
- "VALIDATION_ERROR": "Bættu við að minnsta kosti einum þjónustufulltrúa á innhólfið",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Veldu þjónustufulltrúa fyrir innhólfið"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Auðkenni við Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Eitthvað fór úrskeiðis, vinsamlegast endurnýjaðu síðuna...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Þú getur nú átt samskipti við viðskiptavini þína í gegnum nýju rásina þína. Gangi þér vel við þjónustuna",
"BUTTON_TEXT": "Taktu mig þangað",
"MORE_SETTINGS": "Fleiri stillingar",
- "WEBSITE_SUCCESS": "Þú hefur lokið við að búa til vefsíðurás. Afritaðu kóðann sem sýndur er hér að neðan og límdu hann á vefsíðuna þína. Næst þegar viðskiptavinur notar spjallið birtist samtalið sjálfkrafa í innhólfinu þínu."
+ "WEBSITE_SUCCESS": "Þú hefur lokið við að búa til vefsíðurás. Afritaðu kóðann sem sýndur er hér að neðan og límdu hann á vefsíðuna þína. Næst þegar viðskiptavinur notar spjallið birtist samtalið sjálfkrafa í innhólfinu þínu.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Endurauðkenna",
"VIEW": "Skoða",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Slökkt"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Virkt",
- "DISABLED": "Slökkt"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Virkja"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot stillingar"
+ "BOT_CONFIGURATION": "Bot stillingar",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Stillingar",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Þjónustufulltrúar",
"INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Kveikja eða slökkva á samtíma samtölum fyrir sama tengilið í þessu innhólfi",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Inbox Settings",
"INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
"AUTO_ASSIGNMENT_SUB_TEXT": "Virkja eða slökkva á sjálfvirkri úthlutun nýrra samtöla til umboðsmanna sem bætt er við þetta innhólf.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Notaðu `inbox_identifier` táknið sem sýnt er hér til að auðkenna API biðlara.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Byrja að áframsenda tölvupóstinn þinn á eftirfarandi netfang.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Leyfa skilaboð eftir að samtal hefur verið leyst",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Leyfa endanotendum að senda skilaboð jafnvel eftir að samtalið er leyst.",
"WHATSAPP_SECTION_SUBHEADER": "Þessi API lykill er notaður fyrir samþættingu við WhatsApp API.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Lykill",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Uppfæra",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Connect",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Enginn",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Takmarkaðu hámarksfjölda samtala úr þessu innhólfi sem hægt er að úthluta sjálfkrafa á þjónustufulltrúa"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Hætta við",
+ "CONFIRM_DELETE": "Eyða",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Endurauðkenna",
"SUBTITLE": "Facebook tengingin þín er útrunnin, vinsamlegast tengdu Facebook síðuna þína aftur til að halda áfram þjónustu",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dagur",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Upphafstími ætti að vera fyrir lokunartíma.",
"CHOOSE": "Velja"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Vinsamlegast tilltu IMAP til að virkja SMTP.",
"UPDATE": "Uppfæra IMAP stilingar",
"TOGGLE_AVAILABILITY": "Virkja IMAP stillingar fyrir þetta innhólf",
- "TOGGLE_HELP": "Að virkja IMAP mun hjálpa notandanum að fá tölvupóst",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP stillingar voru uppfærðar",
"ERROR_MESSAGE": "Tókst ekki að uppfæra IMAP stillingar"
@@ -606,7 +1042,8 @@
"LABEL": "Lykilorð",
"PLACE_HOLDER": "Lykilorð"
},
- "ENABLE_SSL": "Virkja SSL"
+ "ENABLE_SSL": "Virkja SSL",
+ "AUTH_MECHANISM": "Auðkenning"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Eftir sólarhring"
},
"WIDGET_COLOR_LABEL": "Litur Widgets",
- "WIDGET_BUBBLE_POSITION_LABEL": "Staðsetning Widget Blöðru",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tegund Widget Blöðru",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Spjallaðu við okkur",
- "LABEL": "Titill Widget Blöðru",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Spjallaðu við okkur"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarar iðulega innan nokkura mínútna",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Tölvupóstfang",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Channel",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/index.js b/app/javascript/dashboard/i18n/locale/is/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/is/index.js
+++ b/app/javascript/dashboard/i18n/locale/is/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/is/integrationApps.json b/app/javascript/dashboard/i18n/locale/is/integrationApps.json
index 2cdb42fe2..5ea1dcb41 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "Það eru engar %{integrationId} samþættingar stilltar á þessum reikningi.",
+ "NO_HOOK_CONFIGURED": "Það eru engar {integrationId} samþættingar stilltar á þessum reikningi.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Virkt",
"DISABLED": "Slökkt"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Innhólf",
+ "ACTIONS": "Aðgerðir",
"DELETE": {
"BUTTON_TEXT": "Eyða"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Hætta við"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow er náttúrulegur málskilningsvettvangur sem gerir það auðvelt að hanna og samþætta samtalsnotendaviðmót í farsímaforritið þitt, vefforrit, tæki, vélmenni, gagnvirkt raddsvörunarkerfi og svo framvegis.
Dialogflow samþætting við %{installationName} gerir þér kleift að stilla Dialogflow spjallmenni við innhólfin þín sem gerir spjallmenninu kleift að sjá um fyrirspurnir í upphafi og afhenda þær þjónustufulltrúa þegar þörf krefur. Dialogflow er hægt að nota til að hæfa sölumönnunum, draga úr vinnuálagi þjónustufulltrúa með því að leggja fram algengar spurningar o.s.frv.
Til að bæta Dialogflow við þarftu að búa til þjónustureikning í Google verkefnaborðinu þínu og deila aðgangsupplýsingum. Vinsamlegast skoðaðu Dialogflow skjölin fyrir frekari upplýsingar."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/integrations.json b/app/javascript/dashboard/i18n/locale/is/integrations.json
index 09c9abd7b..23a65ea4a 100644
--- a/app/javascript/dashboard/i18n/locale/is/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/is/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Hætta við",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrations",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Hætta við",
"DESC": "Vefkróks (e. Webhook) viðburðir veita þér rauntíma upplýsingar um hvað er að gerast á Chatwoot reikningnum þínum. Vinsamlega sláðu inn gilda vefslóð til að stilla svarhringingu (e. callback).",
@@ -16,13 +55,20 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
+ "ERROR": "Vinsamlega skráðu gilt URL"
},
"EDIT_SUBMIT": "Update webhook",
"ADD_SUBMIT": "Create webhook"
@@ -37,10 +83,10 @@
"LIST": {
"404": "Það eru engir webhooks stilltir á þessum reikningi.",
"TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Aðgerðir"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Aðgerðir"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Breyta",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Staðfesta eyðingu",
- "MESSAGE": "Ertu viss um að eyða webhook? (%{webhookURL})",
+ "MESSAGE": "Ertu viss um að eyða webhook? ({webhookURL})",
"YES": "Já, eyða",
"NO": "No, Keep it"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Eyða",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot mun nú samstilla öll innkomin samtöl inn á customer-conversations á Slack vinnusvæðinu þínu.
Að svara samtalsþræði í customer-conversations Slack rás mun senda svar til viðskiptavinar í gegnum chatwoot.
Byrjaðu svörin með note: til að búa til einkaglósur í stað svara.
Ef svarandinn á Slack er með skráðann þjónustufulltrúa í chatwoot undir sama netfangi verða svörin tengd í samræmi við það.
Þegar svarandinn er ekki með tengdan þjónustufulltrúa verða svörin gerð úr spjallmanna prófílnum.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Mælaborðsforrit
Mælaborðsforrit gera fyrirtækjum kleift að innsteypa (e. embed) forrit inn í Chatwoot mælaborðið til að veita þjónustufulltrúum samhengi. Þessi eiginleiki gerir þér kleift að búa til forrit sjálfstætt og innsteypa það inn í mælaborðið til að veita notendaupplýsingar, pantanir þeirra eða fyrri greiðsluferla.
Þegar þú innsteypir forritið þitt með því að nota mælaborðið í Chatwoot mun forritið þitt fáðu samhengi samtalsins og sambandsins sem gluggaviðburð (e. window event). Settu upp hlustanda fyrir skilaboðaviðburðinn á síðunni þinni til að fá samhengið.
Til að bæta við nýju stjórnborðsforriti skaltu smella á hnappinn 'Bæta við nýju stjórnborðsforriti'.
",
"DESCRIPTION": "Mælaborðsforrit gera fyrirtækjum kleift að innsteypa (e. embed) forrit inn í mælaborðið til að veita þjónustufulltrúa samhengi. Þessi eiginleiki gerir þér kleift að búa til forrit sjálfstætt og innsteypa það inn til að veita notendaupplýsingar, pantanir þeirra eða fyrri greiðsluferil.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Engin mælaborðsforrit eru stillt á þessum reikningi ennþá",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Nafn",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Aðgerðir"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Ertu viss um að eyða appinu - %{appName}?",
+ "MESSAGE": "Ertu viss um að eyða appinu - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "Ekki tókst að eyða forriti. Vinsamlegast reyndu aftur síðar"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Stofna",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Velja teymi",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Staða",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Stofna",
+ "CANCEL": "Hætta við",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Staða",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Labels",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Hætta við"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Fáðu meiri upplýsingar",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Aðstoðarmenn",
+ "SWITCH_ASSISTANT": "Skiptu á milli aðstoðarmanna",
+ "NEW_ASSISTANT": "Búa til aðstoðarmann",
+ "EMPTY_LIST": "Engir aðstoðarmenn fundust, vinsamlegast búðu til einn til að byrja"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Byrjaðu með Copilot",
+ "KICK_OFF_MESSAGE": "Vantar stutta yfirlit, viltu athuga fyrri samtöl eða semja betri svar? Copilot er hér til að flýta fyrir.",
+ "SEND_MESSAGE": "Senda skilaboð...",
+ "EMPTY_MESSAGE": "Villa við að búa til svar. Reyndu aftur.",
+ "LOADER": "Captain er að hugsa",
+ "YOU": "You",
+ "USE": "Nota þetta",
+ "RESET": "Endurstilla",
+ "SHOW_STEPS": "Sýna skref",
+ "SELECT_ASSISTANT": "Veldu aðstoðarmann",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Yfirlit yfir þetta samtal",
+ "CONTENT": "Yfirlit yfir lykilatriði sem rædd voru milli viðskiptavinar og þjónustumanns, þar með talin áhyggjur, spurningar og lausnir eða svör frá þjónustumanninum"
+ },
+ "SUGGEST": {
+ "LABEL": "Leggðu til svar",
+ "CONTENT": "Greindu fyrirspurn viðskiptavinarins og semdu svar sem tekur á áhyggjum eða spurningum þeirra. Gakktu úr skugga um að svarið sé skýrt, hnitmiðað og veiti gagnlegar upplýsingar."
+ },
+ "RATE": {
+ "LABEL": "Gefðu einkunn fyrir þetta samtal",
+ "CONTENT": "Skoðaðu samtalið til að meta hversu vel það uppfyllir þarfir viðskiptavinarins. Gefðu einkunn frá 1 til 5 byggða á tóni, skýrleika og árangri."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Samtöl með háum forgangi",
+ "CONTENT": "Gefðu mér yfirlit yfir öll opnu samtöl með háum forgang. Hafðu með samtalsnúmerið, nafn viðskiptavinar (ef fáanlegt er), síðasta skilaboð og úthlutaða umboðsmanninn. Flokkaðu eftir stöðu ef við á."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Listi yfir tengiliði",
+ "CONTENT": "Sýndu mér lista yfir 10 efstu tengiliði. Hafðu með nafn, netfang eða símanúmer (ef fáanlegt), síðasta sýnnt tímabil, merki (ef einhver eru)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Aðstoðarmaður",
+ "MESSAGE_PLACEHOLDER": "Skrifaðu skilaboðin hér...",
+ "HEADER": "Leikvöllur",
+ "DESCRIPTION": "Notaðu þennan leikvöll til að senda skilaboð til aðstoðarmannsins þíns og athuga hvort hann svarar rétt, fljótt og í þeirri stemmingu sem þú væntir.",
+ "CREDIT_NOTE": "Skilaboð sem send eru hér munu teljast til Captain inneigna þinna."
+ },
+ "PAYWALL": {
+ "TITLE": "Uppfærðu til að nota Captain AI",
+ "AVAILABLE_ON": "Captain er ekki fáanlegur á ókeypis áætlun.",
+ "UPGRADE_PROMPT": "Uppfærðu áætlun þína til að fá aðgang að aðstoðarmönnum, copilot og fleiru.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI er aðeins fáanlegt í Enterprise áætlunum.",
+ "UPGRADE_PROMPT": "Uppfærðu áætlun þína til að fá aðgang að aðstoðarmönnum, copilot og fleiru.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Þú hefur notað yfir 80% af svörunarmörkum þínum. Til að halda áfram að nota Captain AI, vinsamlegast uppfærðu.",
+ "DOCUMENTS": "Skjalið miðað hámark náð. Uppfærðu til að halda áfram að nota Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Hætta við",
+ "CREATE": "Stofna",
+ "EDIT": "Uppfæra"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Description",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Stillingar",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eyða"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Create",
+ "CANCEL": "Hætta við",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eyða"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Create",
+ "CANCEL": "Hætta við",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eyða"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Create",
+ "CANCEL": "Hætta við"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Hætta við",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Eyða",
+ "BULK_SYNC_BUTTON": "Uppfæra",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Enginn",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Lykill"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Lykilorð",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Nauðsynlegt"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Eyða",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Allt"
+ },
+ "STATUS": {
+ "TITLE": "Staða",
+ "PENDING": "Í bið",
+ "APPROVED": "Approved",
+ "ALL": "Allt"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Breyta",
+ "DELETE_RESPONSE": "Eyða"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Innhólf",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
index 55c76ef38..74990673b 100644
--- a/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/is/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Leita að merkingum...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn",
- "SIDEBAR_TXT": "Flokkar
Flokkar hjálpa þér að flokka samtöl og forgangsraða þeim. Þú getur úthlutað flokk á samtal frá hliðarborðinu.
Flokkar eru tengdir við reikninginn og hægt er að nota þau til að búa til sérsniðin verkflæði í fyrirtækinu þínu. Þú getur úthlutað sérsniðnum lit á merkimiðann, það gerir það auðveldara að bera kennsl á merkimiðann. Þú munt geta birt merkimiðann á hliðarstikunni til að sía samtölin auðveldlega.
",
"LIST": {
"404": "Engar merkingar eru tiltækir á þessum reikningi.",
"TITLE": "Manage labels",
"DESC": "Merkingar gera þér kleift að flokka samtölin saman.",
- "TABLE_HEADER": [
- "Nafn",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Aðgerðir"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/is/login.json b/app/javascript/dashboard/i18n/locale/is/login.json
index f77dc09e1..744847871 100644
--- a/app/javascript/dashboard/i18n/locale/is/login.json
+++ b/app/javascript/dashboard/i18n/locale/is/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Tölvupóstfang",
- "PLACEHOLDER": "Tölvupóstfang t.d. someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Vinsamlegast skrifaðu gilt netfang"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Gleymt lykilorð?",
"CREATE_NEW_ACCOUNT": "Stofna nýjan aðgang",
- "SUBMIT": "Innskráning"
+ "SUBMIT": "Innskráning",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/macros.json b/app/javascript/dashboard/i18n/locale/is/macros.json
index 6896ea953..cf7541877 100644
--- a/app/javascript/dashboard/i18n/locale/is/macros.json
+++ b/app/javascript/dashboard/i18n/locale/is/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Fjölvi
Fjölvi er safn vistaðra aðgerða sem auðvelda þjónustufulltrúa að klára verkefni auðveldlega. Þjónustufulltrúarnir geta skilgreint mengi aðgerða eins og að merkja samtal með merkimiða, senda tölvupóstafrit, uppfæra sérsniðna eiginleika o.s.frv., og þeir geta keyrt þessar aðgerðir með einum smelli. Þegar þjónustufulltrúar keyra fjölva, yrðu aðgerðirnar framkvæmdar í þeirri röð sem þær eru skilgreindar. Fjölvi bæta framleiðni og auka samræmi í aðgerðum.
Fjölvi getur verið gagnlegt á tvo vegu.
Sem aðstoð fyrir þjónustufulltrúa: Ef þjónustufulltrúi framkvæmir sett af aðgerðum mörgum sinnum, getur hann vistað það sem fjölva og framkvæmt allar aðgerðir saman með einum smelli. p>
Sem valmöguleiki til þess að bæta við liðsmanni: Sérhver þjónustufulltrúi þarf að framkvæma margar mismunandi athuganir/aðgerðir í hverju samtali. Auðvelt verður að taka inn nýjan teymismeðlim ef fyrirfram skilgreind fjölvi eru tiltæk á reikningnum. Í stað þess að lýsa hverju skrefi í smáatriðum getur stjórnandinn/teymisstjórinn bent á fjölva sem notuð eru við mismunandi aðstæður.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Fjölvi mun keyra í þeirri röð sem þú bætir við aðgerðum þínum. Þú getur endurraðað þeim með því að draga þau í handfangið við hlið hverrar nóðu.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nafn",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nafn",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Aðgerðir"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Villa kom upp við að eyða fjölva. Vinsamlegast reyndu aftur síðar"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "Þessi fjölvi er aðgengileg opinberlega fyrir alla þjónustufulltrúa á þessum reikningi."
+ "DESCRIPTION": "Þessi fjölvi er aðgengileg opinberlega fyrir alla þjónustufulltrúa á þessum reikningi.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Enginn",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/mfa.json b/app/javascript/dashboard/i18n/locale/is/mfa.json
new file mode 100644
index 000000000..739714e5c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Virkt",
+ "DISABLED": "Slökkt",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Hætta við",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Sækja",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Lykilorð",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Hætta við",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Hætta við",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/onboarding.json b/app/javascript/dashboard/i18n/locale/is/onboarding.json
new file mode 100644
index 000000000..1c479d931
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Tölvupóstfang",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/report.json b/app/javascript/dashboard/i18n/locale/is/report.json
index c00428e51..f6bd509b2 100644
--- a/app/javascript/dashboard/i18n/locale/is/report.json
+++ b/app/javascript/dashboard/i18n/locale/is/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtöl",
"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_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Fyrsti viðbragðstími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Fyrsti viðbragðstími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Lausnartími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Lausnartími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Resolution Count",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Síðustu 7 daga",
+ "LAST_14_DAYS": "Síðustu 14 daga",
"LAST_30_DAYS": "Síðustu 30 daga",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Síðustu 3 mánuði",
"LAST_6_MONTHS": "Síðustu 6 mánuði",
"LAST_YEAR": "Síðasta ár",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Síðustu 7 daga"
- },
- {
- "id": 1,
- "name": "Síðustu 30 daga"
- },
- {
- "id": 2,
- "name": "Síðustu 3 mánuði"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Mánuður"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Engar niðurstöður fundust"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Veldu Þjónustufulltrúa",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Leita að þjónustufulltrúum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Fyrsti viðbragðstími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Fyrsti viðbragðstími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Lausnartími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Lausnartími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Leita að merkingum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Fyrsti viðbragðstími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Fyrsti viðbragðstími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Lausnartími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Lausnartími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -250,11 +256,11 @@
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "Síðustu 6 mánuði"
},
{
"id": 4,
- "name": "Last year"
+ "name": "Síðasta ár"
},
{
"id": 5,
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Fyrsti viðbragðstími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Fyrsti viðbragðstími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Lausnartími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Lausnartími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Leita að teymum"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtöl",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Fyrsti viðbragðstími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Fyrsti viðbragðstími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Heildarfjöldi samtala sem notuð eru við útreikning:",
- "TOOLTIP_TEXT": "Lausnartími er %{metricValue} (byggt á %{conversationCount} samtölum)"
+ "TOOLTIP_TEXT": "Lausnartími er {metricValue} (byggt á {conversationCount} samtölum)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "Engin svör við CSAT könnun eru fáanleg.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Leita að þjónustufulltrúum",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Leita að teymum",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Þjónustufulltrúi"
+ },
+ "INBOXES": {
+ "LABEL": "Innhólf"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Þjónustufulltrúi",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Heildarfjöldi svara / Heildarfjöldi sendra CSAT könnunarskilaboða * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Hætta við",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Þjónustufulltrúi",
- "OPEN": "OPEN",
+ "OPEN": "Opin",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Staða"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Opin",
"UNATTENDED": "Unattended",
"STATUS": "Staða"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Engar niðurstöður fundust",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Innhólf",
+ "AGENTS": "Þjónustufulltrúi",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Samtal",
+ "AGENT": "Þjónustufulltrúi"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/search.json b/app/javascript/dashboard/i18n/locale/is/search.json
index 53dc6abec..20231817c 100644
--- a/app/javascript/dashboard/i18n/locale/is/search.json
+++ b/app/javascript/dashboard/i18n/locale/is/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Allt",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Search messages, contacts or conversations",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results.",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "frá",
- "EMAIL": "tölvupóstfang"
+ "FROM": "From",
+ "EMAIL": "Tölvupóstfang",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Síðustu 7 daga",
+ "LAST_30_DAYS": "Síðustu 30 daga",
+ "LAST_60_DAYS": "Síðustu 60 daga",
+ "LAST_90_DAYS": "Síðustu 90 daga",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Innhólf",
+ "AGENTS": "Þjónustufulltrúar",
+ "CONTACTS": "Tengiliðir",
+ "INBOXES": "Innhólf",
+ "NO_AGENTS": "Engir þjónustufulltrúar fundust",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/settings.json b/app/javascript/dashboard/i18n/locale/is/settings.json
index 892639af1..a317e5195 100644
--- a/app/javascript/dashboard/i18n/locale/is/settings.json
+++ b/app/javascript/dashboard/i18n/locale/is/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Lykilorðinu þínu hefur verið breytt",
"AFTER_EMAIL_CHANGED": "Prófíllinn þinn hefur verið uppfærður, vinsamlegast skráðu þig inn aftur þar sem innskráningarskilríkjum þínum er breytt",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Prófílmynd",
"ERROR": "Vinsamlegast lagfærðu villurnar",
"REMOVE_IMAGE": "Fjarlægja",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Persónuleg undirskrift á skilaboðum",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Undirskrift var vistuð",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Undirskrift skilaboða",
@@ -54,15 +81,45 @@
"NOTE": "Að uppfæra lykilorðið þitt myndi endurstilla innskráningar þínar í mörgum tækjum.",
"BTN_TEXT": "Breyta lykilorði"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Aðgangslykill",
- "NOTE": "Þetta token er hægt að nota ef þú ert að byggja upp API byggða samþættingu"
+ "NOTE": "Þetta token er hægt að nota ef þú ert að byggja upp API byggða samþættingu",
+ "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": "Hljóðtilkynningar",
- "NOTE": "Virkjaðu hljóðtilkynningar á mælaborðinu fyrir ný skilaboð og samtöl.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Enginn",
+ "MINE": "Assigned",
+ "ALL": "Allt",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "Enginn",
"ASSIGNED": "Úthlutuð Samtöl",
"ALL_CONVERSATIONS": "Öll Samtöl"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Senda hljóðviðvaranir aðeins ef vafraglugginn er ekki virkur",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Tilkynningar í tölvupósti",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Senda tilkynningar í tölvupósti þegar nýtt samtal er stofnað",
"CONVERSATION_MENTION": "Sendu tilkynningar í tölvupósti þegar minnst er á þig í samtali",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Sendu tilkynningar í tölvupósti þegar ný skilaboð eru búin til í úthlutuðu samtali",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Tölvupóstfang",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Tilkynningarstillingarnar þínar hafa verið uppfærðar",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Sendu push tilkynningar þegar ný skilaboð eru búin til í úthlutuðu samtali",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "REQUEST_PUSH": "Enable push notifications",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Prófílmynd"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Upptekinn",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Upptekinn",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Breyta",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Veldu reikning úr eftirfarandi lista",
- "PROFILE_SETTINGS": "Stillingar Prófíls",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "days trial remaining.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Reikningnum þínum er lokað. Vinsamlegast hafðu samband við þjónustusviðið okkar til að fá frekari upplýsingar."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Sækja",
"UPLOADING": "Hleður upp...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Senda"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifying...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Samtöl",
- "INBOX": "Innhólf",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Öll Samtöl",
"MENTIONED_CONVERSATIONS": "Mentions",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Reports",
"SETTINGS": "Stillingar",
"CONTACTS": "Tengiliðir",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Innhólf",
+ "CAPTAIN_SETTINGS": "Stillingar",
"HOME": "Home",
"AGENTS": "Þjónustufulltrúar",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Samtöl",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Herferð",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Þjónustufulltrúar",
"REPORTS_LABEL": "Labels",
"REPORTS_INBOX": "Innhólf",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Facebook tengingin þín er útrunnin, vinsamlegast tengdu Facebook síðuna þína aftur til að halda áfram þjónustu",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Stillingar",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Stillingar"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Fídusar",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "Þú ert áskrifandi að **%{plan}** áætluninni með **%{quantity}** leyfi"
+ "PLAN_NOTE": "Þú ert áskrifandi að **{plan}** áætluninni með **{quantity}** leyfi",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "Skoðaðu fyrri reikninga þína, breyttu innheimtuupplýsingum þínum eða sagði upp áskriftinni þinni.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Uppfæra"
+ },
"CHAT_WITH_US": {
"TITLE": "Vantar þig aðstoð?",
"DESCRIPTION": "Stendur þú frammi fyrir einhverjum vandamálum í innheimtu? Við erum hér til að hjálpa.",
"BUTTON_TXT": "Spjallaðu við okkur"
},
- "NO_BILLING_USER": "Verið er að stilla innheimtureikninginn þinn. Endurnýjaðu síðuna og reyndu aftur."
+ "NO_BILLING_USER": "Verið er að stilla innheimtureikninginn þinn. Endurnýjaðu síðuna og reyndu aftur.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Merkimiði:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Hætta við",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Leita í eiginleikum"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Leysa samtal",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Leysa samtal",
+ "CANCEL": "Hætta við"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Já",
+ "NO": "Nei"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh ó! Við fundum enga Chatwoot reikninga. Vinsamlegast búðu til nýjan reikning til að halda áfram.",
@@ -294,7 +624,8 @@
"LABEL": "Nafn fyrirtækis",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Senda"
+ "SUBMIT": "Senda",
+ "CANCEL": "Hætta við"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Breyta"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Hætta við"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Staða:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Bæta við"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Breyta"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Hætta við"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Bæta við"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Eyða",
+ "CANCEL_BUTTON_LABEL": "Hætta við"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/signup.json b/app/javascript/dashboard/i18n/locale/is/signup.json
index 7aeb485eb..8f5b408cb 100644
--- a/app/javascript/dashboard/i18n/locale/is/signup.json
+++ b/app/javascript/dashboard/i18n/locale/is/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Nýskráning",
"TESTIMONIAL_HEADER": "Það þarf aðeins eitt skref framávið",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Vinnu netfang",
- "PLACEHOLDER": "Sláðu inn vinnunetfangið þitt. td: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Vinsamlegast sláðu inn gilt vinnu netfang"
},
"PASSWORD": {
"LABEL": "Lykilorð",
"PLACEHOLDER": "Lykilorð",
"ERROR": "Lykilorið er of stutt",
- "IS_INVALID_PASSWORD": "Lykilorð ætti að innihalda að minnsta kosti 1 hástaf, 1 lágstaf, 1 tölustaf og 1 tákn"
+ "IS_INVALID_PASSWORD": "Lykilorð ætti að innihalda að minnsta kosti 1 hástaf, 1 lágstaf, 1 tölustaf og 1 tákn",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Staðfesta Lykilorð",
"PLACEHOLDER": "Staðfesta Lykilorð",
- "ERROR": "Lykilorðin stemma ekki"
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Nýskráning tókst",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Náði ekki að tengjast við netþjóna Woot, vinsamlegast reynið aftur"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Ertu nú þegar með aðgang?"
+ "HAVE_AN_ACCOUNT": "Ertu nú þegar með aðgang?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/sla.json b/app/javascript/dashboard/i18n/locale/is/sla.json
index 4d6c9d2b3..f24c8793c 100644
--- a/app/javascript/dashboard/i18n/locale/is/sla.json
+++ b/app/javascript/dashboard/i18n/locale/is/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Það eru engin atriði sem passa við þessa fyrirspurn",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nafn",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndu aftur"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Það kom upp villa, vinsamlegast reyndu aftur"
+ },
+ "CONFIRM": {
+ "TITLE": "Staðfesta eyðingu",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Já, eyða",
+ "NO": "Nei, hætta við eyðingu"
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/is/snooze.json b/app/javascript/dashboard/i18n/locale/is/snooze.json
new file mode 100644
index 000000000..4a26b8809
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "dagur",
+ "WEEKS": "weeks",
+ "MONTH": "vika",
+ "MONTHS": "months",
+ "YEAR": "mánuður",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "dagur",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/is/teamsSettings.json b/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
index 6bb916df0..ba151639c 100644
--- a/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/is/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Stofna nýtt teymi",
"HEADER": "Teymi",
- "SIDEBAR_TXT": "Teymi
Teymi leyfa þér að skipuleggja þjónustufulltrúa þína í hópa út frá ábyrgð þeirra.
Þjónustufulltrúi getur verið hluti af mörgum teymum. Þú getur úthlutað samtölum á teymi þegar þú ert að vinna í samvinnu.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Leita að teymum...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Það eru engin teymi til á þessum reikningi.",
- "EDIT_TEAM": "Breyta teymi"
+ "EDIT_TEAM": "Breyta teymi",
+ "NONE": "Enginn"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Bæta þjónustufulltrúum við teymið",
- "TITLE": "Bæta þjónustufulltrúa við teymið - %{teamName}",
+ "TITLE": "Bæta þjónustufulltrúa við teymið - {teamName}",
"DESC": "Bættu þjónustufullrtúum við nýstofnað teymið þitt. Þetta gerir þér kleift að vinna sem teymi í samtölum, fá tilkynningu um nýja atburði í sama samtali."
},
- "WIZARD": [
- {
- "title": "Stofna",
- "route": "settings_teams_new",
- "body": "Stofna nýtt teymi af þjónustufulltrúum."
- },
- {
- "title": "Bæta við þjónustufulltrúa",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Þú ert tilbúin til að halda áfram!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Stofna",
+ "BODY": "Stofna nýtt teymi af þjónustufulltrúum."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Bæta við þjónustufulltrúa",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "Þú ert tilbúin til að halda áfram!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Bæta þjónustufulltrúa við teymið - %{teamName}",
+ "TITLE": "Bæta þjónustufulltrúa við teymið - {teamName}",
"DESC": "Bættu þjónustufulltrúum við nýstofnaða teymið þitt. Allir þjónustufulltrúar sem bætt er við verða látnir vita þegar samtali er úthlutað þessu teymi."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Breyttu nafni, lýsingu og öðrum upplýsingum."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Þú ert tilbúin til að halda áfram!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Breyttu nafni, lýsingu og öðrum upplýsingum."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Þú ert tilbúin til að halda áfram!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Ekki tókst að vista teymisupplýsingarnar. Reyndu aftur."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "NETFANG",
+ "AGENT": "Þjónustufulltrúi",
+ "EMAIL": "Tölvupóstfang",
"BUTTON_TEXT": "Bæta við þjónustufulltrúum",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} af %{total} þjónustufulltrúum valdir."
+ "SELECTED_COUNT": "{selected} af {total} þjónustufulltrúum valdir."
},
"ADD": {
- "TITLE": "Bæta þjónustufulltrúa við teymið - %{teamName}",
+ "TITLE": "Bæta þjónustufulltrúa við teymið - {teamName}",
"DESC": "Bættu þjónustufullrtúum við nýstofnað teymið þitt. Þetta gerir þér kleift að vinna sem teymi í samtölum, fá tilkynningu um nýja atburði í sama samtali.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} af %{total} þjónustufulltrúum valdir.",
+ "SELECTED_COUNT": "{selected} af {total} þjónustufulltrúum valdir.",
"BUTTON_TEXT": "Bæta við þjónustufulltrúum",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Ef teyminu er eytt verður liðsúthlutunin fjarlægð úr samtölunum sem þessu teymi hefur verið úthlutað.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/is/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/is/whatsappTemplates.json
index 25af2d82e..1f030beed 100644
--- a/app/javascript/dashboard/i18n/locale/is/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/is/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Veldu WhatsApp sniðmátið sem þú vilt senda",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Veldu WhatsApp sniðmátið sem þú vilt senda",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/is/yearInReview.json b/app/javascript/dashboard/i18n/locale/is/yearInReview.json
new file mode 100644
index 000000000..0301ca546
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/is/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "samtöl",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Sækja",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json
index ce0790853..fe968cf1e 100644
--- a/app/javascript/dashboard/i18n/locale/it/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/it/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
"TITLE": "Filtra conversazioni",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "Aggiungi i filtri qui sotto e clicca su “Applica filtri” per trovare subito le conversazioni che ti interessano.",
+ "EDIT_CUSTOM_FILTER": "Modifica Cartella",
+ "CUSTOM_VIEWS_SUBTITLE": "Aggiungi o rimuovi filtri e aggiorna la cartella.",
+ "ADD_NEW_FILTER": "Aggiungi filtro",
+ "FILTER_DELETE_ERROR": "Impossibile salvare: aggiungi almeno un filtro per continuare.",
"SUBMIT_BUTTON_LABEL": "Applica filtri",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "Aggiorna cartella",
"CANCEL_BUTTON_LABEL": "Annulla",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "Il valore è obbligatorio.",
+ "CLEAR_BUTTON_LABEL": "Rimuovi filtri",
+ "FOLDER_LABEL": "Nome Cartella",
+ "FOLDER_QUERY_LABEL": "Query Cartella",
+ "EMPTY_VALUE_ERROR": "Valore richiesto.",
"TOOLTIP_LABEL": "Filtra conversazioni",
"QUERY_DROPDOWN_LABELS": {
"AND": "E",
"OR": "O"
},
+ "INPUT_PLACEHOLDER": "Inserisci valore",
"OPERATOR_LABELS": {
"equal_to": "Uguale a",
"not_equal_to": "Non uguale a",
- "contains": "Contiene",
"does_not_contain": "Non contiene",
"is_present": "È presente",
"is_not_present": "Non è presente",
"is_greater_than": "È maggiore di",
"is_less_than": "È minore di",
"days_before": "È x giorni prima",
- "starts_with": "Inizia con"
+ "starts_with": "Inizia con",
+ "equalTo": "Uguale a",
+ "notEqualTo": "Non uguale a",
+ "contains": "Contiene",
+ "doesNotContain": "Non contiene",
+ "isPresent": "È presente",
+ "isNotPresent": "Non è presente",
+ "isGreaterThan": "È maggiore di",
+ "isLessThan": "È minore di",
+ "daysBefore": "È x giorni prima",
+ "startsWith": "Inizia con"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Vero",
@@ -36,15 +46,15 @@
},
"ATTRIBUTES": {
"STATUS": "Stato",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Nome casella",
- "TEAM_NAME": "Nome del team",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "ASSIGNEE_NAME": "Nome assegnatario",
+ "INBOX_NAME": "Nome Inbox",
+ "TEAM_NAME": "Nome team",
+ "CONVERSATION_IDENTIFIER": "Identificativo conversazione",
+ "CAMPAIGN_NAME": "Nome campagna",
"LABELS": "Etichette",
- "BROWSER_LANGUAGE": "Browser language",
+ "BROWSER_LANGUAGE": "Lingua del browser",
"PRIORITY": "Priorità",
- "COUNTRY_NAME": "Country name",
+ "COUNTRY_NAME": "Nome del Paese",
"REFERER_LINK": "Link referente",
"CUSTOM_ATTRIBUTE_LIST": "Elenco",
"CUSTOM_ATTRIBUTE_TEXT": "Testo",
@@ -52,19 +62,25 @@
"CUSTOM_ATTRIBUTE_LINK": "Link",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Creato il",
- "LAST_ACTIVITY": "Last activity"
+ "LAST_ACTIVITY": "Ultima attività"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "Valore richiesto",
+ "ATTRIBUTE_KEY_REQUIRED": "Chiave attributo richiesta",
+ "FILTER_OPERATOR_REQUIRED": "Operatore di filtro richiesto",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Il valore deve essere compreso tra 1 e 998"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "Filtri standard",
+ "ADDITIONAL_FILTERS": "Filtri aggiuntivi",
+ "CUSTOM_ATTRIBUTES": "Attributi personalizzati"
},
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "Vuoi salvare questo filtro?",
"LABEL": "Dai un nome a questo filtro",
- "PLACEHOLDER": "Name your filter to refer it later.",
- "ERROR_MESSAGE": "Il nome è obbligatorio.",
+ "PLACEHOLDER": "Dai un nome al filtro per poterlo richiamare in seguito.",
+ "ERROR_MESSAGE": "Nome richiesto.",
"SAVE_BUTTON": "Salva filtro",
"CANCEL_BUTTON": "Annulla",
"API_FOLDERS": {
@@ -77,7 +93,7 @@
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "Modifica cartella"
},
"DELETE": {
"DELETE_BUTTON": "Elimina filtro",
@@ -85,7 +101,7 @@
"CONFIRM": {
"TITLE": "Conferma eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare il filtro ",
- "YES": "Yes, delete",
+ "YES": "Sì, elimina",
"NO": "No, mantienilo"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/it/agentBots.json b/app/javascript/dashboard/i18n/locale/it/agentBots.json
index 26941d22e..3b800bc12 100644
--- a/app/javascript/dashboard/i18n/locale/it/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/it/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "Bots",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "LOADING_EDITOR": "Caricamento editor...",
+ "DESCRIPTION": "Gli Agent Bot sono membri virtuali del tuo team: gestiscono le attività di routine, lasciandoti più tempo per ciò che conta. Puoi gestirli da questa pagina o crearne di nuovi con il pulsante “Aggiungi Bot”.",
+ "LEARN_MORE": "Informazioni sugli agent bot",
+ "COUNT": "{n} bot | {n} bot",
+ "SEARCH_PLACEHOLDER": "Cerca bot...",
+ "NO_RESULTS": "Nessun bot trovato corrispondente alla tua ricerca",
+ "GLOBAL_BOT": "System bot",
+ "GLOBAL_BOT_BADGE": "System",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Avatar del bot eliminato con successo",
+ "ERROR_DELETE": "Errore nell'eliminare l'avatar del bot, riprova"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "DESC": "Assegna un agent bot alla tua inbox. Potrà gestire le nuove conversazioni e trasferirle a un operatore umano quando necessario.",
"SUBMIT": "Aggiorna",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "Disconnetti bot",
+ "SUCCESS_MESSAGE": "Agent bot aggiornato con successo.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "Agent bot disconnesso con successo.",
+ "ERROR_MESSAGE": "Impossibile aggiornare agent bot. Riprova.",
+ "DISCONNECTED_ERROR_MESSAGE": "Impossibile disconnettere agent bot. Riprova.",
+ "SELECT_PLACEHOLDER": "Seleziona bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Aggiungi Bot",
"CANCEL_BUTTON_TEXT": "Annulla",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "Bot aggiunto correttamente.",
+ "ERROR_MESSAGE": "Impossibile aggiungere bot. Riprova più tardi."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "Nessun bot trovato. Puoi creare un bot cliccando sul pulsante 'Aggiungi Bot'.",
+ "LOADING": "Caricamento bot...",
+ "TABLE_HEADER": {
+ "DETAILS": "Dettagli Bot",
+ "URL": "URL Webhook",
+ "ACTIONS": "Azioni"
+ }
},
"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.",
+ "TITLE": "Elimina bot",
+ "CONFIRM": {
+ "TITLE": "Conferma Eliminazione",
+ "MESSAGE": "Sei sicuro di voler eliminare {name}?",
+ "YES": "Sì, elimina",
+ "NO": "No, Mantieni"
+ },
"API": {
- "SUCCESS_MESSAGE": "Bot deleted successfully.",
- "ERROR_MESSAGE": "Could not delete bot. Please try again."
+ "SUCCESS_MESSAGE": "Bot eliminato con successo.",
+ "ERROR_MESSAGE": "Impossibile eliminare il bot. Riprova."
}
},
"EDIT": {
"BUTTON_TEXT": "Modifica",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "Annulla",
+ "TITLE": "Modifica bot",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "Bot aggiornato con successo.",
+ "ERROR_MESSAGE": "Impossibile aggiornare il bot. Riprova."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copia secret negli appunti",
+ "COPY_SUCCESS": "Secret copiato negli appunti",
+ "TOGGLE": "Cambia visibilità secret",
+ "CREATED_DESC": "Usa il secret qui sotto per verificare le signature dei webhook. Per favore copialo ora, puoi anche trovarlo in seguito nelle impostazioni del bot.",
+ "DONE": "Fatto",
+ "RESET_SUCCESS": "Webhook secret rigenerato con successo",
+ "RESET_ERROR": "Impossibile rigenerare il webhook secret. Riprova"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Token di Accesso",
+ "DESCRIPTION": "Copia il token di accesso e salvalo in un luogo sicuro",
+ "COPY_SUCCESSFUL": "Token di accesso copiato negli appunti",
+ "RESET_SUCCESS": "Token di accesso rigenerato correttamente",
+ "RESET_ERROR": "Impossibile rigenerare il token di accesso. Riprova"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Avatar del Bot"
+ },
+ "NAME": {
+ "LABEL": "Nome Bot",
+ "PLACEHOLDER": "Inserisci il nome del Bot",
+ "REQUIRED": "Nome Bot richiesto"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Cosa fa questo Bot?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "URL Webhook",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "L'URL del Webhook è richiesto"
+ },
+ "ERRORS": {
+ "NAME": "Nome Bot richiesto",
+ "URL": "L'URL del Webhook è richiesto",
+ "VALID_URL": "Inserisci un URL valido che inizi con http:// o https://"
+ },
+ "CANCEL": "Annulla",
+ "CREATE": "Crea Bot",
+ "UPDATE": "Aggiorna Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configura un Bot Webhook per integrarlo con i tuoi servizi. Il Bot riceverà e gestirà gli eventi delle conversazioni e potrà rispondere automaticamente."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Bot Webhook"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
index 01385d110..55437209f 100644
--- a/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/agentMgmt.json
@@ -1,117 +1,125 @@
{
"AGENT_MGMT": {
- "HEADER": "Agenti",
- "HEADER_BTN_TXT": "Aggiungi agente",
- "LOADING": "Recupero elenco agenti",
- "SIDEBAR_TXT": "Agenti
Un agente è membro del tuo team di assistenza clienti.
Gli agenti saranno in grado di visualizzare e rispondere ai messaggi dei tuoi utenti. L'elenco mostra tutti gli agenti attualmente presenti nel tuo account.
Clicca su Aggiungi agente per aggiungere un nuovo agente. Ogni agente che aggiungi riceverà un'email con un link di conferma per attivare il loro account, dopo di che possono accedere a Chatwoot e rispondere ai messaggi.
L'accesso alle funzionalità di Chatwoot si basa sui seguenti ruoli.
Agente - Gli agenti con questo ruolo possono accedere solo a messaggi, report e conversazioni. Possono assegnare conversazioni ad altri agenti o a se stessi e risolvere le conversazioni.
Amministratore - L'amministratore avrà accesso a tutte le funzionalità di Chatwoot abilitate per il tuo account, comprese le impostazioni, insieme a tutti i privilegi di un agente normale.
",
+ "HEADER": "Operatori",
+ "HEADER_BTN_TXT": "Aggiungi Operatore",
+ "LOADING": "Recupero Operatori",
+ "DESCRIPTION": "Un operatore è un membro del tuo team di assistenza clienti che può visualizzare e rispondere ai messaggi degli utenti. L’elenco qui sotto mostra tutti gli operatori presenti nel tuo account.",
+ "LEARN_MORE": "Scopri i ruoli utente",
"AGENT_TYPES": {
"ADMINISTRATOR": "Amministratore",
- "AGENT": "Agente"
+ "AGENT": "Operatore"
},
+ "COUNT": "{n} operatore | {n} operatori",
"LIST": {
- "404": "Non ci sono agenti associati a questo account",
- "TITLE": "Gestisci gli agenti nel tuo team",
- "DESC": "Puoi aggiungere/rimuovere agenti da/nel tuo team.",
+ "404": "Non ci sono operatori associati a questo account",
+ "TITLE": "Gestisci gli operatori nel tuo team",
+ "DESC": "Puoi aggiungere/rimuovere operatori dal tuo team.",
"NAME": "Nome",
"EMAIL": "EMAIL",
"STATUS": "Stato",
"ACTIONS": "Azioni",
"VERIFIED": "Verificato",
- "VERIFICATION_PENDING": "Verifica in sospeso"
+ "VERIFICATION_PENDING": "Verifica in Sospeso",
+ "AVAILABLE_CUSTOM_ROLE": "Permessi di ruolo personalizzati disponibili"
},
"ADD": {
- "TITLE": "Aggiungi agente al tuo team",
- "DESC": "Puoi aggiungere persone che saranno in grado di gestire il supporto per la tua casella.",
+ "TITLE": "Aggiungi operatore al tuo team",
+ "DESC": "Puoi aggiungere persone per gestire il supporto nelle tue Inbox.",
"CANCEL_BUTTON_TEXT": "Annulla",
"FORM": {
"NAME": {
- "LABEL": "Nome dell'agente",
- "PLACEHOLDER": "Inserisci un nome dell'agente"
+ "LABEL": "Nome Operatore",
+ "PLACEHOLDER": "Inserisci un nome operatore"
},
"AGENT_TYPE": {
"LABEL": "Ruolo",
"PLACEHOLDER": "Seleziona un ruolo",
- "ERROR": "Il ruolo è obbligatorio"
+ "ERROR": "Ruolo richiesto"
},
"EMAIL": {
- "LABEL": "Indirizzo email",
- "PLACEHOLDER": "Si prega di inserire un indirizzo email dell'agente"
+ "LABEL": "Indirizzo Email",
+ "PLACEHOLDER": "Inserisci un indirizzo email dell'operatore"
},
- "SUBMIT": "Aggiungi agente"
+ "SUBMIT": "Aggiungi Operatore"
},
"API": {
- "SUCCESS_MESSAGE": "Agente aggiunto correttamente",
- "EXIST_MESSAGE": "Email dell'agente già in uso, prova un altro indirizzo email",
+ "SUCCESS_MESSAGE": "Operatore aggiunto correttamente",
+ "EXIST_MESSAGE": "Email dell'operatore già in uso, prova con un altro indirizzo email",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
}
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
"API": {
- "SUCCESS_MESSAGE": "Agente eliminato con successo",
+ "SUCCESS_MESSAGE": "Operatore eliminato correttamente",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
},
"CONFIRM": {
- "TITLE": "Conferma eliminazione",
+ "TITLE": "Conferma Eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
- "YES": "Sì, elimina ",
- "NO": "No, Conserva "
+ "YES": "Sì, Elimina ",
+ "NO": "No, Mantieni "
}
},
"EDIT": {
- "TITLE": "Modifica agente",
+ "TITLE": "Modifica operatore",
"FORM": {
"NAME": {
- "LABEL": "Nome dell'agente",
- "PLACEHOLDER": "Inserisci un nome dell'agente"
+ "LABEL": "Nome Operatore",
+ "PLACEHOLDER": "Inserisci un nome operatore"
},
"AGENT_TYPE": {
"LABEL": "Ruolo",
"PLACEHOLDER": "Seleziona un ruolo",
- "ERROR": "Il ruolo è obbligatorio"
+ "ERROR": "Ruolo richiesto"
},
"EMAIL": {
- "LABEL": "Indirizzo email",
- "PLACEHOLDER": "Si prega di inserire un indirizzo email dell'agente"
+ "LABEL": "Indirizzo Email",
+ "PLACEHOLDER": "Inserisci un indirizzo email dell'operatore"
},
"AGENT_AVAILABILITY": {
"LABEL": "Disponibilità",
- "PLACEHOLDER": "Please select an availability status",
- "ERROR": "Availability is required"
+ "PLACEHOLDER": "Seleziona uno stato di disponibilità",
+ "ERROR": "Disponibilità richiesta"
},
- "SUBMIT": "Modifica agente"
+ "SUBMIT": "Modifica Operatore"
},
"BUTTON_TEXT": "Modifica",
- "CANCEL_BUTTON_TEXT": "annulla",
+ "CANCEL_BUTTON_TEXT": "Annulla",
"API": {
- "SUCCESS_MESSAGE": "Agente aggiornato correttamente",
+ "SUCCESS_MESSAGE": "Operatore aggiornato correttamente",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
},
"PASSWORD_RESET": {
"ADMIN_RESET_BUTTON": "Reimposta la password",
- "ADMIN_SUCCESS_MESSAGE": "Un'email con le istruzioni per reimpostare la password è stata inviata all'agente",
- "SUCCESS_MESSAGE": "Password dell'agente reimpostata correttamente",
+ "ADMIN_SUCCESS_MESSAGE": "Un'email con le istruzioni per reimpostare la password è stata inviata all'operatore",
+ "SUCCESS_MESSAGE": "Password dell'operatore reimpostata correttamente",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
}
},
+ "SEARCH_PLACEHOLDER": "Cerca operatori...",
+ "NO_RESULTS": "Nessun operatore trovato corrispondente alla tua ricerca",
"SEARCH": {
"NO_RESULTS": "Nessun risultato trovato."
},
"MULTI_SELECTOR": {
"PLACEHOLDER": "Nessuno",
"TITLE": {
- "AGENT": "Seleziona un'agente",
+ "AGENT": "Seleziona operatore",
"TEAM": "Seleziona team"
},
+ "LIST": {
+ "NONE": "Nessuno"
+ },
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "Nessun agente trovato",
+ "AGENT": "Nessun operatore trovato",
"TEAM": "Nessun team trovato"
},
"PLACEHOLDER": {
- "AGENT": "Cerca agenti",
+ "AGENT": "Cerca operatori",
"TEAM": "Cerca team",
- "INPUT": "Search for agents"
+ "INPUT": "Cerca operatori"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
index 1a8d3bb68..107c2720b 100644
--- a/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/attributesMgmt.json
@@ -1,70 +1,91 @@
{
"ATTRIBUTES_MGMT": {
- "HEADER": "Attributi personalizzati",
- "HEADER_BTN_TXT": "Aggiungi attributo personalizzato",
- "LOADING": "Recupero degli attributi personalizzati",
- "SIDEBAR_TXT": "Attributi personalizzati
Un attributo personalizzato tiene traccia dei dati relativi ai tuoi contatti/conversazioni — come il piano di abbonamento, o quando hanno ordinato il primo oggetto, ecc.
Per creare un attributo personalizzato, basta cliccare sul pulsante Aggiungi attributo personalizzato. Puoi anche modificare o eliminare un attributo personalizzato esistente facendo clic sul pulsante Modifica o Elimina.
",
+ "HEADER": "Attributi Personalizzati",
+ "HEADER_BTN_TXT": "Aggiungi Attributo Personalizzato",
+ "LOADING": "Caricamento attributi personalizzati",
+ "DESCRIPTION": "Un attributo personalizzato tiene traccia di informazioni aggiuntive sui tuoi contatti o sulle conversazioni — ad esempio il piano di abbonamento o la data del primo acquisto. Puoi aggiungere diversi tipi di attributi personalizzati, come testo, elenchi o numeri, per raccogliere le informazioni specifiche di cui hai bisogno.",
+ "LEARN_MORE": "Scopri di più sugli attributi personalizzati",
+ "COUNT": "{n} attributo | {n} attributi",
+ "SEARCH_PLACEHOLDER": "Cerca attributi...",
+ "NO_RESULTS": "Nessun attributo trovato corrispondente alla tua ricerca",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversazione",
+ "CONTACT": "Contatto",
+ "COMPANY": "Azienda"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Testo",
+ "NUMBER": "Numero",
+ "LINK": "Link",
+ "DATE": "Data",
+ "LIST": "Elenco",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
- "TITLE": "Aggiungi attributo personalizzato",
+ "TITLE": "Aggiungi Attributo Personalizzato",
"SUBMIT": "Crea",
"CANCEL_BUTTON_TEXT": "Annulla",
"FORM": {
"NAME": {
- "LABEL": "Nome visualizzato",
- "PLACEHOLDER": "Inserisci il nome di visualizzazione dell'attributo personalizzato",
- "ERROR": "Il nome è obbligatorio"
+ "LABEL": "Nome Visualizzato",
+ "PLACEHOLDER": "Inserisci il nome da mostrare per l’attributo personalizzato",
+ "ERROR": "Nome richiesto"
},
"DESC": {
"LABEL": "Descrizione",
"PLACEHOLDER": "Inserisci una descrizione dell'attributo personalizzato",
- "ERROR": "La descrizione è obbligatoria"
+ "ERROR": "Descrizione richiesta"
},
"MODEL": {
"LABEL": "Si applica a",
- "PLACEHOLDER": "Si prega di selezionarne uno",
- "ERROR": "Il modello è obbligatorio"
+ "PLACEHOLDER": "Selezionane uno",
+ "ERROR": "Modello richiesto"
},
"TYPE": {
"LABEL": "Tipo",
- "PLACEHOLDER": "Seleziona un tipo",
- "ERROR": "Il tipo è obbligatorio",
+ "PLACEHOLDER": "Seleziona un tipo di attributo",
+ "ERROR": "Tipo richiesto",
"LIST": {
- "LABEL": "Elenco valori",
- "PLACEHOLDER": "Inserisci il valore e premi il tasto Invio",
+ "LABEL": "Valori dell’elenco",
+ "PLACEHOLDER": "Inserisci un valore da aggiungere all'elenco e premi il tasto invio",
"ERROR": "Deve avere almeno un valore"
}
},
"KEY": {
"LABEL": "Chiave",
"PLACEHOLDER": "Inserisci la chiave dell'attributo personalizzato",
- "ERROR": "La chiave è obbligatoria",
+ "ERROR": "Chiave richiesta",
"IN_VALID": "Chiave non valida"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Espressione regolare",
+ "PLACEHOLDER": "Inserisci un'espressione regolare per validare gli attributi personalizzati. (Opzionale)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Suggerimento espressione regolare",
+ "PLACEHOLDER": "Inserisci un suggerimento per l'espressione regolare. (Opzionale)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Abilita convalida espressione regolare"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Risoluzione"
}
},
"API": {
"SUCCESS_MESSAGE": "Attributo personalizzato aggiunto con successo!",
- "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ "ERROR_MESSAGE": "Impossibile creare un Attributo Personalizzato. Riprova più tardi."
}
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
"API": {
- "SUCCESS_MESSAGE": "Attributo personalizzato eliminato con successo.",
+ "SUCCESS_MESSAGE": "Attributo Personalizzato eliminato con successo.",
"ERROR_MESSAGE": "Impossibile eliminare l'attributo personalizzato. Riprova."
},
"CONFIRM": {
- "TITLE": "Sei sicuro di voler eliminare - %{attributeName}",
+ "TITLE": "Sei sicuro di voler eliminare - {attributeName}",
"PLACE_HOLDER": "Digita {attributeName} per confermare",
"MESSAGE": "L'eliminazione rimuoverà l'attributo personalizzato",
"YES": "Elimina ",
@@ -72,31 +93,32 @@
}
},
"EDIT": {
- "TITLE": "Modifica attributo personalizzato",
+ "TITLE": "Modifica Attributo Personalizzato",
"UPDATE_BUTTON_TEXT": "Aggiorna",
"TYPE": {
"LIST": {
- "LABEL": "Elenco valori",
- "PLACEHOLDER": "Inserire i valori e premere il tasto Invio"
+ "LABEL": "Valori dell’elenco",
+ "PLACEHOLDER": "Inserisci i valori da aggiungere all'elenco e premi il tasto invio"
}
},
"API": {
- "SUCCESS_MESSAGE": "Attributo personalizzato aggiornato con successo",
- "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento dell'attributo personalizzato, si prega di riprovare"
+ "SUCCESS_MESSAGE": "Attributo Personalizzato aggiornato correttamente",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento dell'attributo personalizzato, riprova"
}
},
"TABS": {
- "HEADER": "Attributi personalizzati",
- "CONVERSATION": "Conversazioni",
- "CONTACT": "Contatto"
+ "HEADER": "Attributi Personalizzati",
+ "CONVERSATION": "Conversazione",
+ "CONTACT": "Contatto",
+ "COMPANY": "Azienda"
},
"LIST": {
- "TABLE_HEADER": [
- "Nome",
- "Descrizione",
- "Tipo",
- "Chiave"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "DESCRIPTION": "Descrizione",
+ "TYPE": "Tipo",
+ "KEY": "Chiave"
+ },
"BUTTONS": {
"EDIT": "Modifica",
"DELETE": "Elimina"
@@ -106,16 +128,20 @@
"NOT_FOUND": "Non ci sono attributi personalizzati configurati"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "Espressione regolare",
+ "PLACEHOLDER": "Inserisci un'espressione regolare per validare gli attributi personalizzati. (Opzionale)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "Suggerimento espressione regolare",
+ "PLACEHOLDER": "Inserisci un suggerimento per l'espressione regolare. (Opzionale)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "Abilita convalida espressione regolare"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Risoluzione"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/auditLogs.json b/app/javascript/dashboard/i18n/locale/it/auditLogs.json
index b8f46fc6c..730365a0e 100644
--- a/app/javascript/dashboard/i18n/locale/it/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/it/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
"HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
+ "HEADER_BTN_TXT": "Aggiungi Audit Logs",
+ "LOADING": "Caricamento Audit Logs",
+ "DESCRIPTION": "Gli Audit Logs mantengono un registro di tutte le attività del tuo account, consentendoti di monitorare il tuo account, team o servizi.",
+ "LEARN_MORE": "Scopri di più sugli audit logs",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta",
- "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "SIDEBAR_TXT": "Audit Logs
Gli Audit Logs sono registri di eventi e azioni eseguite in un sistema Chatwoot.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Indirizzo IP"
- ]
+ "404": "Non ci sono Audit Logs disponibili in questo account.",
+ "TITLE": "Gestisci Audit Logs",
+ "DESC": "Gli Audit Logs sono registri di eventi e azioni eseguite in un sistema Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "Attività",
+ "TIME": "Orario",
+ "IP_ADDRESS": "Indirizzo IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
+ "SUCCESS_MESSAGE": "Audit Logs caricati correttamente",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} ha creato una nuova regola di automazione (#{id})",
+ "EDIT": "{agentName} ha aggiornato una regola di automazione (#{id})",
+ "DELETE": "{agentName} ha eliminato una regola di automazione (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} ha invitato {invitee} nell'account come {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} ha cambiato il suo {attributes} in {values}",
+ "OTHER": "{agentName} ha cambiato {attributes} di {user} in {values}",
+ "DELETED": "{agentName} ha cambiato {attributes} di un utente eliminato in {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} ha creato una nuova inbox (#{id})",
+ "EDIT": "{agentName} ha aggiornato una inbox (#{id})",
+ "DELETE": "{agentName} ha eliminato una inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} ha creato un nuovo webhook (#{id})",
+ "EDIT": "{agentName} ha aggiornato un webhook (#{id})",
+ "DELETE": "{agentName} ha eliminato un webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} ha eseguito l'accesso",
+ "SIGN_OUT": "{agentName} si è disconnesso"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} ha creato un nuovo team (#{id})",
+ "EDIT": "{agentName} ha aggiornato un team (#{id})",
+ "DELETE": "{agentName} ha eliminato un team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} ha creato una nuova macro (#{id})",
+ "EDIT": "{agentName} ha aggiornato una macro (#{id})",
+ "DELETE": "{agentName} ha eliminato una macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} ha aggiunto {user} alla inbox (#{inbox_id})",
+ "REMOVE": "{agentName} ha rimosso {user} dalla inbox (#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} ha aggiunto {user} al team (#{team_id})",
+ "REMOVE": "{agentName} ha rimosso {user} dal team (#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "EDIT": "{agentName} ha aggiornato la configurazione dell'account (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} ha eliminato la conversazione #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/automation.json b/app/javascript/dashboard/i18n/locale/it/automation.json
index 222089f44..3f4484908 100644
--- a/app/javascript/dashboard/i18n/locale/it/automation.json
+++ b/app/javascript/dashboard/i18n/locale/it/automation.json
@@ -1,28 +1,32 @@
{
"AUTOMATION": {
"HEADER": "Automazioni",
- "HEADER_BTN_TXT": "Aggiungi regola di automazione",
- "LOADING": "Recupero delle regole di automazione",
- "SIDEBAR_TXT": "Regole di automazione
L'automazione può sostituire e automatizzare i processi esistenti che richiedono uno sforzo manuale. È possibile fare molte cose con l'automazione, tra cui l'aggiunta di etichette e l'assegnazione di una conversazione al miglior agente. Così il team si concentra su quello che fanno meglio e spende meno tempo per le attività manuali.
",
+ "DESCRIPTION": "Le automazioni possono sostituire e semplificare i processi esistenti che richiedono azioni manuale, ad esempio l'aggiunta di etichette e l'assegnazione di conversazioni all'operatore più adatto. Grazie alle automazioni i team possono concentrarsi sui propri punti di forza e ridurre il tempo dedicato alle attività ripetitive.",
+ "LEARN_MORE": "Scopri di più sulle automazioni",
+ "COUNT": "{n} automazione | {n} automazioni",
+ "HEADER_BTN_TXT": "Crea Automazione",
+ "LOADING": "Caricamento regole di automazione",
+ "SEARCH_PLACEHOLDER": "Cerca regole di automazione...",
+ "NO_RESULTS": "Nessuna regola di automazione trovata corrispondente alla tua ricerca",
"ADD": {
- "TITLE": "Aggiungi regola di automazione",
+ "TITLE": "Aggiungi Regola di Automazione",
"SUBMIT": "Crea",
"CANCEL_BUTTON_TEXT": "Annulla",
"FORM": {
"NAME": {
- "LABEL": "Nome regola",
+ "LABEL": "Nome Regola",
"PLACEHOLDER": "Inserisci il nome della regola",
- "ERROR": "Il nome è obbligatorio"
+ "ERROR": "Nome richiesto"
},
"DESC": {
"LABEL": "Descrizione",
"PLACEHOLDER": "Inserisci la descrizione della regola",
- "ERROR": "La descrizione è obbligatoria"
+ "ERROR": "Descrizione richiesta"
},
"EVENT": {
"LABEL": "Evento",
- "PLACEHOLDER": "Si prega di selezionarne uno",
- "ERROR": "L'evento è obbligatorio"
+ "PLACEHOLDER": "Selezionane uno",
+ "ERROR": "Evento richiesto"
},
"CONDITIONS": {
"LABEL": "Condizioni"
@@ -31,39 +35,39 @@
"LABEL": "Azioni"
}
},
- "CONDITION_BUTTON_LABEL": "Aggiungi condizione",
- "ACTION_BUTTON_LABEL": "Aggiungi azione",
+ "CONDITION_BUTTON_LABEL": "Aggiungi Condizione",
+ "ACTION_BUTTON_LABEL": "Aggiungi Azione",
"API": {
"SUCCESS_MESSAGE": "Regola di automazione aggiunta con successo",
"ERROR_MESSAGE": "Impossibile creare una regola di automazione, riprova più tardi"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nome",
- "Descrizione",
- "Attivo",
- "Creato il"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "ACTIVE": "Attiva",
+ "CREATED_ON": "Creata il",
+ "ACTIONS": "Azioni"
+ },
"404": "Nessuna regola di automazione trovata"
},
"DELETE": {
- "TITLE": "Elimina regola di automazione",
+ "TITLE": "Elimina Regola Di Automazione",
"SUBMIT": "Elimina",
"CANCEL_BUTTON_TEXT": "Annulla",
"CONFIRM": {
- "TITLE": "Conferma eliminazione",
+ "TITLE": "Conferma Eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
- "YES": "Sì, elimina ",
- "NO": "No, conserva "
+ "YES": "Sì, Elimina ",
+ "NO": "No, Mantienila "
},
"API": {
"SUCCESS_MESSAGE": "Regola di automazione eliminata con successo",
- "ERROR_MESSAGE": "Impossibile eliminare una regola di automazione, riprova più tardi"
+ "ERROR_MESSAGE": "Impossibile eliminare la regola di automazione, riprova più tardi"
}
},
"EDIT": {
- "TITLE": "Modifica regola di automazione",
+ "TITLE": "Modifica Regola Di Automazione",
"SUBMIT": "Aggiorna",
"CANCEL_BUTTON_TEXT": "Annulla",
"API": {
@@ -86,18 +90,20 @@
"RESET_MESSAGE": "Cambiare il tipo di evento resetterà le condizioni e gli eventi che hai aggiunto di seguito"
},
"CONDITION": {
- "DELETE_MESSAGE": "È necessario avere almeno una condizione per salvare",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "DELETE_MESSAGE": "È necessaria almeno una condizione per salvare",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Attributi Personalizzati Contatti",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Attributi Personalizzati Conversazioni"
},
"ACTION": {
"DELETE_MESSAGE": "È necessario avere almeno una azione da salvare",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Inserisci qui il tuo messaggio",
- "TEAM_DROPDOWN_PLACEHOLDER": "Seleziona i team"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Seleziona i team",
+ "EMAIL_INPUT_PLACEHOLDER": "Inserisci email",
+ "URL_INPUT_PLACEHOLDER": "Inserisci URL"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Attiva regola di automazione",
- "DEACTIVATION_TITLE": "Disattiva regola di automazione",
+ "ACTIVATION_TITLE": "Attiva Regola di Automazione",
+ "DEACTIVATION_TITLE": "Disattiva Regola di Automazione",
"ACTIVATION_DESCRIPTION": "Questa azione attiverà la regola di automazione '{automationName}'. Sei sicuro di voler procedere?",
"DEACTIVATION_DESCRIPTION": "Questa azione disattiverà la regola di automazione '{automationName}'. Sei sicuro di voler procedere?",
"ACTIVATION_SUCCESFUL": "Regola di automazione attivata con successo",
@@ -108,11 +114,80 @@
"CANCEL_LABEL": "No"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Impossibile caricare l'allegato, si prega di riprovare",
- "LABEL_IDLE": "Carica allegato",
+ "UPLOAD_ERROR": "Impossibile caricare l'allegato, riprova",
+ "LABEL_IDLE": "Carica Allegato",
"LABEL_UPLOADING": "Caricamento...",
- "LABEL_UPLOADED": "Successfully Uploaded",
- "LABEL_UPLOAD_FAILED": "Caricamento fallito"
+ "LABEL_UPLOADED": "Caricato Con Successo",
+ "LABEL_UPLOAD_FAILED": "Caricamento Fallito"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Chiave dell'attributo richiesta",
+ "FILTER_OPERATOR_REQUIRED": "Operatore di filtro richiesto",
+ "VALUE_REQUIRED": "Valore richiesto",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Il valore deve essere compreso tra 1 e 998",
+ "ACTION_PARAMETERS_REQUIRED": "Parametri di azione richiesti",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "È richiesta almeno una condizione",
+ "ATLEAST_ONE_ACTION_REQUIRED": "È necessaria almeno un'azione"
+ },
+ "NONE_OPTION": "Nessuno",
+ "LAST_RESPONDING_AGENT": "Ultimo Operatore che ha risposto",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversazione Creata",
+ "CONVERSATION_UPDATED": "Conversazione Aggiornata",
+ "MESSAGE_CREATED": "Messaggio Creato",
+ "CONVERSATION_RESOLVED": "Conversazione Risolta",
+ "CONVERSATION_OPENED": "Conversazione Aperta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assegna a un Operatore",
+ "ASSIGN_TEAM": "Assegna a un Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Rimuovi Team Assegnato",
+ "ADD_LABEL": "Aggiungi Etichetta",
+ "REMOVE_LABEL": "Rimuovi Etichetta",
+ "SEND_EMAIL_TO_TEAM": "Invia un'email al Team",
+ "SEND_EMAIL_TRANSCRIPT": "Invia una Trascrizione Email",
+ "MUTE_CONVERSATION": "Silenzia Conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa Conversazione",
+ "RESOLVE_CONVERSATION": "Risolvi Conversazione",
+ "SEND_WEBHOOK_EVENT": "Invia Evento Webhook",
+ "SEND_ATTACHMENT": "Invia Allegato",
+ "SEND_MESSAGE": "Invia un Messaggio",
+ "ADD_PRIVATE_NOTE": "Aggiungi una Nota Privata",
+ "CHANGE_PRIORITY": "Modifica Priorità",
+ "ADD_SLA": "Aggiungi SLA",
+ "OPEN_CONVERSATION": "Riapri conversazione",
+ "PENDING_CONVERSATION": "Segna conversazione come in sospeso"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Messaggio in Arrivo",
+ "OUTGOING": "Messaggio in Uscita"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nessuna",
+ "LOW": "Bassa",
+ "MEDIUM": "Media",
+ "HIGH": "Alta",
+ "URGENT": "Urgente"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Tipo di Messaggio",
+ "PRIVATE_NOTE": "Nota Privata",
+ "MESSAGE_CONTAINS": "Il Messaggio Contiene",
+ "EMAIL": "Email",
+ "INBOX": "Inbox",
+ "CONVERSATION_LANGUAGE": "Lingua Conversazione",
+ "PHONE_NUMBER": "Numero di Telefono",
+ "STATUS": "Stato",
+ "BROWSER_LANGUAGE": "Lingua del Browser",
+ "MAIL_SUBJECT": "Oggetto Email",
+ "COUNTRY_NAME": "Paese",
+ "COMPANY_NAME": "Azienda",
+ "REFERER_LINK": "Link Referrer",
+ "ASSIGNEE_NAME": "Assegnatario",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priorità",
+ "LABELS": "Etichette"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/bulkActions.json b/app/javascript/dashboard/i18n/locale/it/bulkActions.json
index 5a4465ac5..0399afad0 100644
--- a/app/javascript/dashboard/i18n/locale/it/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/it/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversazioni selezionate",
- "AGENT_SELECT_LABEL": "Seleziona un'agente",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Torna indietro",
- "ASSIGN_LABEL": "Assegna",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversazioni selezionate",
+ "NONE": "Nessuno",
+ "CLEAR_SELECTION": "Rimuovi",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Sei sicuro di voler assegnare {n} conversazione a {agentName}? | Sei sicuro di voler assegnare {n} conversazioni a {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Sei sicuro di voler disassegnare {n} conversazione? | Sei sicuro di voler disassegnare {n} conversazioni?",
"YES": "Sì",
- "ASSIGN_AGENT_TOOLTIP": "Assegna agente",
+ "CANCEL": "Annulla",
+ "SEARCH_INPUT_PLACEHOLDER": "Cerca",
+ "ASSIGN_AGENT_TOOLTIP": "Assegna operatore",
"ASSIGN_TEAM_TOOLTIP": "Assegna team",
"ASSIGN_SUCCESFUL": "Conversazioni assegnate correttamente.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
+ "ASSIGN_FAILED": "Impossibile assegnare le conversazioni. Riprova.",
"RESOLVE_SUCCESFUL": "Conversazioni risolte correttamente.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Le conversazioni visibili in questa pagina sono selezionate.",
- "AGENT_LIST_LOADING": "Caricamento agenti",
+ "RESOLVE_FAILED": "Impossibile risolvere le conversazioni. Riprova.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "Solo le conversazioni visibili in questa pagina sono selezionate.",
"UPDATE": {
"CHANGE_STATUS": "Cambia stato",
- "SNOOZE_UNTIL_NEXT_REPLY": "Posticipa fino alla prossima risposta.",
- "UPDATE_SUCCESFUL": "Stato della conversazione aggiornata correttamente.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "SNOOZE_UNTIL": "Posticipa",
+ "UPDATE_SUCCESFUL": "Stato della conversazione aggiornato correttamente.",
+ "UPDATE_FAILED": "Impossibile aggiornare le conversazioni. Riprova."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Impossibile risolvere le conversazioni a causa di attributi richiesti mancanti",
+ "PARTIAL_SUCCESS": "Alcune conversazioni necessitano di attributi richiesti per essere risolte, perciò sono state saltate"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Nessuna etichetta trovata per",
+ "ASSIGN_LABELS": "Assegna etichette",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assegna etichette selezeionate",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etichette assegnate correttamente.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Impossibile assegnare le etichette. Riprova.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Seleziona team",
"NONE": "Nessuno",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Sei sicuro di voler assegnare {n} conversazione a {teamName}? | Sei sicuro di voler assegnare {n} conversazioni a {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Sei sicuro di voler disassegnare {n} conversazione? | Sei sicuro di voler disassegnare {n} conversazioni?",
+ "ASSIGN_SUCCESFUL": "Team assegnati con successo.",
+ "ASSIGN_FAILED": "Impossibile assegnare il team. Riprova."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/campaign.json b/app/javascript/dashboard/i18n/locale/it/campaign.json
index 0253a6544..0b42e5b73 100644
--- a/app/javascript/dashboard/i18n/locale/it/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/it/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campagne",
- "SIDEBAR_TXT": "I messaggi proattivi consentono al cliente di inviare messaggi in uscita ai propri contatti che attiverebbero più conversazioni. Clicca su Aggiungi campagna per creare una nuova campagna. Puoi anche modificare o eliminare una campagna esistente facendo clic sul pulsante Modifica o Elimina.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Crea una campagna una tantum",
- "ONGOING": "Crea una campagna in corso"
- },
- "ADD": {
- "TITLE": "Crea una campagna",
- "DESC": "I messaggi proattivi consentono al cliente di inviare messaggi in uscita ai propri contatti che attiverebbero più conversazioni.",
- "CANCEL_BUTTON_TEXT": "Annulla",
- "CREATE_BUTTON_TEXT": "Crea",
- "FORM": {
- "TITLE": {
- "LABEL": "Titolo",
- "PLACEHOLDER": "Inserisci il titolo della campagna",
- "ERROR": "Il titolo è obbligatorio"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Campagne live chat",
+ "NEW_CAMPAIGN": "Crea campagna",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Attiva",
+ "DISABLED": "Inattiva"
},
- "SCHEDULED_AT": {
- "LABEL": "Orario previsto",
- "PLACEHOLDER": "Seleziona l'orario",
- "CONFIRM": "Conferma",
- "ERROR": "È richiesto un orario programmato"
- },
- "AUDIENCE": {
- "LABEL": "Pubblico",
- "PLACEHOLDER": "Seleziona le etichette dei clienti",
- "ERROR": "Il pubblico è obbligatorio"
- },
- "INBOX": {
- "LABEL": "Seleziona Casella",
- "PLACEHOLDER": "Seleziona Casella",
- "ERROR": "La casella è obbligatoria"
- },
- "MESSAGE": {
- "LABEL": "Messaggio",
- "PLACEHOLDER": "Inserisci il messaggio della campagna",
- "ERROR": "Il messaggio è obbligatorio"
- },
- "SENT_BY": {
- "LABEL": "Inviato da",
- "PLACEHOLDER": "Seleziona il contenuto della campagna",
- "ERROR": "Il mittente è obbligatorio"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Inserisci un URL valido",
- "ERROR": "Inserisci un URL valido"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Tempo sulla pagina (Secondi)",
- "PLACEHOLDER": "Inserisci l'ora",
- "ERROR": "Il tempo sulla pagina è richiesto"
- },
- "ENABLED": "Abilita campagna",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Attiva solo durante l'orario lavorativo",
- "SUBMIT": "Aggiungi campagna"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Inviata da",
+ "BOT": "Bot",
+ "FROM": "da",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campagna creata con successo",
- "ERROR_MESSAGE": "Si è verificato un errore, riprova."
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna campagna live chat disponibile",
+ "SUBTITLE": "Connettiti con i tuoi clienti usando messaggi proattivi. Clicca su 'Crea campagna' per iniziare."
+ },
+ "CREATE": {
+ "TITLE": "Crea una campagna live chat",
+ "CANCEL_BUTTON_TEXT": "Annulla",
+ "CREATE_BUTTON_TEXT": "Crea",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titolo",
+ "PLACEHOLDER": "Inserisci il titolo della campagna",
+ "ERROR": "Titolo richiesto"
+ },
+ "MESSAGE": {
+ "LABEL": "Messaggio",
+ "PLACEHOLDER": "Inserisci il messaggio della campagna",
+ "ERROR": "Messaggio richiesto"
+ },
+ "INBOX": {
+ "LABEL": "Seleziona Inbox",
+ "PLACEHOLDER": "Seleziona Inbox",
+ "ERROR": "Inbox richiesta"
+ },
+ "SENT_BY": {
+ "LABEL": "Inviata da",
+ "PLACEHOLDER": "Seleziona mittente",
+ "ERROR": "Mittente richiesto"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Inserisci un URL valido",
+ "ERROR": "Inserisci un URL valido"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Tempo sulla pagina (secondi)",
+ "PLACEHOLDER": "Inserisci il tempo in secondi",
+ "ERROR": "Tempo sulla pagina richiesto"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Altre preferenze",
+ "ENABLED": "Attiva campagna",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Attiva solo durante l'orario lavorativo"
+ },
+ "BUTTONS": {
+ "CREATE": "Crea",
+ "CANCEL": "Annulla"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campagna live chat creata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore, riprova."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Modifica campagna live chat",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Campagna live chat aggiornata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore, riprova."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Elimina",
- "CONFIRM": {
- "TITLE": "Conferma eliminazione",
- "MESSAGE": "Sei sicuro di voler eliminare?",
- "YES": "Sì, elimina ",
- "NO": "No, conserva "
+ "SMS": {
+ "HEADER_TITLE": "Campagne SMS",
+ "NEW_CAMPAIGN": "Crea campagna",
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna campagna SMS disponibile",
+ "SUBTITLE": "Avvia una campagna SMS per raggiungere direttamente i tuoi clienti. Invia offerte o fai annunci con facilità. Clicca su 'Crea campagna' per iniziare."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Elaborazione",
+ "COMPLETED": "Completata",
+ "SCHEDULED": "Programmata"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Inviata da",
+ "ON": "il"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Crea campagna SMS",
+ "CANCEL_BUTTON_TEXT": "Annulla",
+ "CREATE_BUTTON_TEXT": "Crea",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titolo",
+ "PLACEHOLDER": "Inserisci il titolo della campagna",
+ "ERROR": "Titolo richiesto"
+ },
+ "MESSAGE": {
+ "LABEL": "Messaggio",
+ "PLACEHOLDER": "Inserisci il messaggio della campagna",
+ "ERROR": "Messaggio richiesto"
+ },
+ "INBOX": {
+ "LABEL": "Seleziona Inbox",
+ "PLACEHOLDER": "Seleziona Inbox",
+ "ERROR": "Inbox richiesta"
+ },
+ "AUDIENCE": {
+ "LABEL": "Pubblico",
+ "PLACEHOLDER": "Seleziona le etichette dei clienti",
+ "ERROR": "Pubblico richiesto"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Orario programmato",
+ "PLACEHOLDER": "Seleziona l'orario",
+ "ERROR": "È richiesto un orario programmato"
+ },
+ "BUTTONS": {
+ "CREATE": "Crea",
+ "CANCEL": "Annulla"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campagna SMS creata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore. Riprova."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "Campagne WhatsApp",
+ "NEW_CAMPAIGN": "Crea campagna",
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna campagna WhatsApp disponibile",
+ "SUBTITLE": "Avvia una campagna WhatsApp per raggiungere direttamente i tuoi clienti. Invia offerte o fai annunci con facilità. Clicca su 'Crea campagna' per iniziare."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Elaborazione",
+ "COMPLETED": "Completata",
+ "SCHEDULED": "Programmata"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Inviata da",
+ "ON": "il"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Crea campagna WhatsApp",
+ "CANCEL_BUTTON_TEXT": "Annulla",
+ "CREATE_BUTTON_TEXT": "Crea",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titolo",
+ "PLACEHOLDER": "Inserisci il titolo della campagna",
+ "ERROR": "Titolo richiesto"
+ },
+ "INBOX": {
+ "LABEL": "Seleziona Inbox",
+ "PLACEHOLDER": "Seleziona Inbox",
+ "ERROR": "Inbox richiesta"
+ },
+ "TEMPLATE": {
+ "LABEL": "Modello WhatsApp",
+ "PLACEHOLDER": "Seleziona un modello",
+ "INFO": "Seleziona un modello da utilizzare per questa campagna.",
+ "ERROR": "Modello richiesto",
+ "PREVIEW_TITLE": "Elabora {templateName}",
+ "LANGUAGE": "Lingua",
+ "CATEGORY": "Categoria",
+ "VARIABLES_LABEL": "Variabili",
+ "VARIABLE_PLACEHOLDER": "Inserisci il valore per {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Pubblico",
+ "PLACEHOLDER": "Seleziona le etichette dei clienti",
+ "ERROR": "Pubblico richiesto"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Orario programmato",
+ "PLACEHOLDER": "Seleziona l'orario",
+ "ERROR": "È richiesto un orario programmato"
+ },
+ "BUTTONS": {
+ "CREATE": "Crea",
+ "CANCEL": "Annulla"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campagna WhatsApp creata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore. Riprova."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare?",
+ "DESCRIPTION": "L'azione di eliminazione è permanente e non può essere annullata.",
+ "CONFIRM": "Elimina",
"API": {
"SUCCESS_MESSAGE": "Campagna eliminata con successo",
- "ERROR_MESSAGE": "Impossibile eliminare la campagna. Per favore riprova più tardi."
+ "ERROR_MESSAGE": "Si è verificato un errore. Riprova."
}
- },
- "EDIT": {
- "TITLE": "Modifica campagna",
- "UPDATE_BUTTON_TEXT": "Aggiorna",
- "API": {
- "SUCCESS_MESSAGE": "Campagna aggiornata con successo",
- "ERROR_MESSAGE": "Si è verificato un errore, riprova"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Caricamento campagne...",
- "404": "Non ci sono campagne create per questa casella.",
- "TABLE_HEADER": {
- "TITLE": "Titolo",
- "MESSAGE": "Messaggio",
- "INBOX": "Casella",
- "STATUS": "Stato",
- "SENDER": "Mittente",
- "URL": "URL",
- "SCHEDULED_AT": "Orario previsto",
- "TIME_ON_PAGE": "Tempo (Secondi)",
- "CREATED_AT": "Creato il"
- },
- "BUTTONS": {
- "ADD": "Aggiungi",
- "EDIT": "Modifica",
- "DELETE": "Elimina"
- },
- "STATUS": {
- "ENABLED": "Abilitato",
- "DISABLED": "Disabilitato",
- "COMPLETED": "Completato",
- "ACTIVE": "Attivo"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Campagne una tantum",
- "404": "Non ci sono campagne una tantum create",
- "INBOXES_NOT_FOUND": "Crea una casella sms e inizia ad aggiungere campagne"
- },
- "ONGOING": {
- "HEADER": "Campagne in corso",
- "404": "Non ci sono campagne in corso create",
- "INBOXES_NOT_FOUND": "Crea un canale sito web e inizia ad aggiungere campagne"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
index 97d4dd0df..3927203d9 100644
--- a/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
- "HEADER": "Risposte predefinite",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "HEADER": "Risposte Predefinite",
+ "LEARN_MORE": "Scopri di più sulle risposte predefinite",
+ "DESCRIPTION": "Le Risposte Predefinite sono modelli di risposte preparate che ti aiutano a rispondere rapidamente alle conversazioni. Gli operatori possono digitare il carattere '/' seguito dallo shortcode per inserire una risposta predefinita durante una conversazione. ",
+ "COUNT": "{n} risposta predefinita | {n} risposte predefinite",
+ "HEADER_BTN_TXT": "Aggiungi risposta predefinita",
+ "LOADING": "Caricamento risposte predefinite...",
+ "SEARCH_PLACEHOLDER": "Cerca Risposte Predefinite...",
+ "NO_RESULTS": "Nessuna Risposta Predefinita trovata corrispondente alla tua ricerca",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Non ci sono risposte predefinite disponibili in questo account.",
"TITLE": "Gestisci le risposte predefinite",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Contenuto",
- "Azioni"
- ]
+ "DESC": "Le risposte predefinite sono modelli di risposte preparate che possono essere utilizzate per rispondere rapidamente alle conversazioni.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Contenuto",
+ "ACTIONS": "Azioni"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "Aggiungi risposta predefinita",
+ "DESC": "Le risposte predefinite sono modelli di risposte preparate che possono essere utilizzate per rispondere rapidamente alle conversazioni.",
"CANCEL_BUTTON_TEXT": "Annulla",
"FORM": {
"SHORT_CODE": {
"LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "PLACEHOLDER": "Inserisci uno short code.",
+ "ERROR": "Short Code richiesto."
},
"CONTENT": {
"LABEL": "Messaggio",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Scrivi il messaggio che vuoi salvare come modello da usare più tardi.",
+ "ERROR": "Messaggio richiesto."
},
"SUBMIT": "Invia"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "Risposta predefinita aggiunta correttamente.",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "Modifica risposta predefinita",
"CANCEL_BUTTON_TEXT": "Annulla",
"FORM": {
"SHORT_CODE": {
"LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "PLACEHOLDER": "Inserisci uno shortcode.",
+ "ERROR": "Short code richiesto."
},
"CONTENT": {
"LABEL": "Messaggio",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Il messaggio è obbligatorio."
+ "PLACEHOLDER": "Scrivi il messaggio che vuoi salvare come modello da usare più tardi.",
+ "ERROR": "Messaggio richiesto."
},
"SUBMIT": "Invia"
},
"BUTTON_TEXT": "Modifica",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "Risposta predefinita aggiornata correttamente.",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
}
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "Risposta predefinita eliminata correttamente.",
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
},
"CONFIRM": {
"TITLE": "Conferma eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "Sì, elimina ",
+ "NO": "No, mantieni "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/chatlist.json b/app/javascript/dashboard/i18n/locale/it/chatlist.json
index 838efacf6..c6a46be73 100644
--- a/app/javascript/dashboard/i18n/locale/it/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/it/chatlist.json
@@ -1,80 +1,84 @@
{
"CHAT_LIST": {
- "LOADING": "Recupero delle conversazioni",
+ "LOADING": "Caricamento conversazioni",
"LOAD_MORE_CONVERSATIONS": "Carica altre conversazioni",
"EOF": "Tutte le conversazioni caricate 🎉",
"LIST": {
"404": "Non ci sono conversazioni attive in questo gruppo."
},
+ "FAILED_TO_SEND": "Invio non riuscito",
"TAB_HEADING": "Conversazioni",
"MENTION_HEADING": "Menzioni",
- "UNATTENDED_HEADING": "Non partecipate",
+ "UNATTENDED_HEADING": "Non Partecipate",
"SEARCH": {
- "INPUT": "Cerca persone, Chat, risposte salvate .."
+ "INPUT": "Cerca persone, chat, risposte salvate .."
},
- "FILTER_ALL": "Tutti",
+ "FILTER_ALL": "Tutte",
"ASSIGNEE_TYPE_TABS": {
"me": "Mie",
- "unassigned": "Non assegnate",
- "all": "Tutti"
+ "unassigned": "Non Assegnate",
+ "all": "Tutte"
},
"CHAT_STATUS_FILTER_ITEMS": {
"open": {
"TEXT": "Aperte"
},
"resolved": {
- "TEXT": "Risolti"
+ "TEXT": "Risolte"
},
"pending": {
- "TEXT": "In sospeso"
+ "TEXT": "In Sospeso"
},
"snoozed": {
- "TEXT": "Posticipato"
+ "TEXT": "Posticipate"
},
"all": {
- "TEXT": "Tutti"
+ "TEXT": "Tutte"
}
},
"VIEW_FILTER": "Visualizza",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "Ordina conversazioni",
"CHAT_SORT": {
"STATUS": "Stato",
- "ORDER_BY": "Order by"
+ "ORDER_BY": "Ordina per"
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "Created",
- "OLDEST": "Creato il:"
+ "LATEST": "Creata",
+ "OLDEST": "Creata il:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "Ultima attività:",
+ "ACTIVE": "Ultima attività"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "Ultima attività: prima le più vecchie"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "Ultima attività: prima le più recenti"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "Data creazione: prima le più recenti"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "Data creazione: prima le più vecchie"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "Priorità: prima le più importanti"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "Priorità: prima le meno importanti"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "In attesa di risposta: prima più tempo in attesa"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "In attesa di risposta: prima meno tempo in attesa"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priorità: prima le più importanti, Data creazione: prima le più vecchie"
}
},
"ATTACHMENTS": {
@@ -88,44 +92,55 @@
"CONTENT": "Messaggio video"
},
"file": {
- "CONTENT": "File allegato"
+ "CONTENT": "File Allegato"
},
"location": {
"CONTENT": "Posizione"
},
+ "ig_reel": {
+ "CONTENT": "Reel Instagram"
+ },
"fallback": {
"CONTENT": "ha condiviso un url"
+ },
+ "contact": {
+ "CONTENT": "Contatto condiviso"
+ },
+ "embed": {
+ "CONTENT": "Contenuto embeddato"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
+ "TITLE": "Ordina conversazione",
"DROPDOWN_TITLE": "Ordina per",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
- "LABEL": "Last activity"
+ "NAME": "Ultima attività",
+ "LABEL": "Ultima attività"
},
"CREATED_AT": {
- "NAME": "Creato il",
- "LABEL": "Creato il"
+ "NAME": "Creata alle",
+ "LABEL": "Creata alle"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "Ultimo messaggio dell'utente alle",
+ "LABEL": "Ultimo messaggio"
}
}
},
"RECEIVED_VIA_EMAIL": "Ricevuto via email",
"VIEW_TWEET_IN_TWITTER": "Visualizza tweet su Twitter",
"REPLY_TO_TWEET": "Rispondi a questo tweet",
- "LINK_TO_STORY": "Vai alla storia di instagram",
+ "LINK_TO_STORY": "Vai alla storia di Instagram",
"SENT": "Inviato correttamente",
- "READ": "Read successfully",
- "DELIVERED": "Delivered successfully",
- "NO_MESSAGES": "Nessun messaggio",
+ "READ": "Letto correttamente",
+ "DELIVERED": "Consegnato correttamente",
+ "NO_MESSAGES": "Nessun Messaggio",
"NO_CONTENT": "Nessun contenuto disponibile",
- "HIDE_QUOTED_TEXT": "Nascondi testo citato",
- "SHOW_QUOTED_TEXT": "Mostra testo citato",
- "MESSAGE_READ": "Leggi"
+ "HIDE_QUOTED_TEXT": "Nascondi Testo Citato",
+ "SHOW_QUOTED_TEXT": "Mostra Testo Citato",
+ "MESSAGE_READ": "Letto",
+ "SENDING": "Invio",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/companies.json b/app/javascript/dashboard/i18n/locale/it/companies.json
new file mode 100644
index 000000000..e929dafcd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Aziende",
+ "SORT_BY": {
+ "LABEL": "Ordina per",
+ "OPTIONS": {
+ "NAME": "Nome",
+ "DOMAIN": "Dominio",
+ "CREATED_AT": "Creata alle",
+ "LAST_ACTIVITY_AT": "Ultima attività",
+ "CONTACTS_COUNT": "Numero contatti"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordina",
+ "OPTIONS": {
+ "ASCENDING": "Ascendente",
+ "DESCENDING": "Discendente"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Cerca aziende...",
+ "LOADING": "Caricamento aziende...",
+ "UNNAMED": "Azienda Senza Nome",
+ "CONTACTS_COUNT": "{n} contatto | {n} contatti",
+ "ACTIONS": {
+ "CREATE": "Aggiungi azienda"
+ },
+ "CREATE": {
+ "TITLE": "Aggiungi dettagli azienda",
+ "ACTIONS": {
+ "SAVE": "Aggiungi azienda"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Azienda creata.",
+ "ERROR": "Impossibile creare l'azienda."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Caricamento dettagli dell'azienda...",
+ "EMPTY_STATE": {
+ "TITLE": "Azienda non trovata",
+ "SUBTITLE": "Questa azienda potrebbe essere stata rimossa o non è più disponibile in questo account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributi",
+ "CONTACTS": "Contatti",
+ "HISTORY": "Cronologia",
+ "NOTES": "Note"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "Nessuna conversazione trovata per i contatti di questa azienda."
+ },
+ "NOTES": {
+ "EMPTY": "Nessuna nota trovata per i contatti di questa azienda."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Cerca attributi...",
+ "EMPTY_STATE": "Non ci sono ancora attributi personalizzati per le aziende configurati.",
+ "NO_ATTRIBUTES": "Nessun attributo corrispondente trovato.",
+ "UNUSED_ATTRIBUTES": "{count} attributo inutilizzato | {count} attributi inutilizzati",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Attributo azienda aggiornato.",
+ "UPDATE_ERROR": "Impossibile aggiornare l'attributo azienda.",
+ "DELETE_SUCCESS": "Attributo azienda rimosso.",
+ "DELETE_ERROR": "Impossibile rimuovere l'attributo azienda."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Caricamento contatti...",
+ "EMPTY": "Nessun contatto è ancora collegato a questa azienda.",
+ "UNNAMED_CONTACT": "Contatto senza nome",
+ "ACTIONS": {
+ "ADD": "Aggiungi contatto",
+ "REMOVE": "Rimuovi contatto"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Cerca un contatto esistente e collegalo a questa azienda.",
+ "SEARCH_PLACEHOLDER": "Cerca contatti...",
+ "INITIAL": "Inizia a digitare per cercare i contatti.",
+ "EMPTY": "Nessun contatto trovato.",
+ "CONFIRM_TITLE": "Collega contatto",
+ "CONFIRM_DESCRIPTION": "Confermare l'azienda e il contatto prima di collegarli.",
+ "COMPANY_LABEL": "Azienda",
+ "CONTACT_LABEL": "Contatto",
+ "CURRENT_COMPANY": "Attualmente collegato a {companyName}",
+ "ADD": "Collega contatto",
+ "CANCEL": "Annulla"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contatto collegato all'azienda.",
+ "ADD_ERROR": "Impossibile collegare il contatto all'azienda.",
+ "REASSIGN_SUCCESS": "Contatto riassegnato all'azienda.",
+ "REASSIGN_ERROR": "Impossibile riassegnare il contatto all'azienda.",
+ "REMOVE_SUCCESS": "Contatto rimosso dall'azienda.",
+ "REMOVE_ERROR": "Impossibile rimuovere il contatto dall'azienda."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Aggiornamento avatar azienda...",
+ "UPLOAD_SUCCESS": "Avatar dell'azienda aggiornato.",
+ "UPLOAD_ERROR": "Impossibile aggiornare l'avatar dell'azienda.",
+ "DELETE_SUCCESS": "Avatar dell'azienda rimosso.",
+ "DELETE_ERROR": "Impossibile rimuovere l'avatar dell'azienda."
+ },
+ "PROFILE": {
+ "TITLE": "Modifica dettagli azienda",
+ "CREATED_AT": "Creato {date}",
+ "LAST_ACTIVE": "Ultima attività {date}",
+ "DESCRIPTION_PLACEHOLDER": "Aggiungi una breve descrizione per questa azienda",
+ "ACTIONS": {
+ "SAVE": "Aggiorna azienda"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Azienda aggiornata.",
+ "UPDATE_ERROR": "Impossibile aggiornare l'azienda."
+ },
+ "FIELDS": {
+ "NAME": "Nome",
+ "DOMAIN": "Dominio"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Zona pericolosa",
+ "SECTION_DESCRIPTION": "Elimina questa azienda e scollega i suoi contatti. I contatti rimarranno nell'account.",
+ "BUTTON": "Elimina azienda",
+ "TITLE": "Eliminare l'azienda?",
+ "DESCRIPTION": "Questo rimuoverà l'azienda e scollegherà tutti i contatti associati. I contatti stessi verranno conservati.",
+ "DESCRIPTION_WITH_NAME": "Questo rimuoverà {companyName} e scollegherà tutti i contatti associati. I contatti stessi verranno conservati.",
+ "CONFIRM": "Elimina azienda",
+ "MESSAGES": {
+ "SUCCESS": "Azienda eliminata.",
+ "ERROR": "Impossibile eliminare l'azienda."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna azienda trovata"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} – {endItem} di {totalItems} azienda | Mostrando {startItem} – {endItem} di {totalItems} aziende"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/components.json b/app/javascript/dashboard/i18n/locale/it/components.json
new file mode 100644
index 000000000..bb2aafe5e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} - {endItem} di {totalItems} elementi",
+ "CURRENT_PAGE_INFO": "{currentPage} di {totalPages} pagine"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Seleziona un'opzione...",
+ "EMPTY_SEARCH_RESULTS": "Nessun elemento trovato per il termine di ricerca `{searchTerm}`",
+ "EMPTY_STATE": "Nessun risultato trovato.",
+ "SEARCH_PLACEHOLDER": "Cerca...",
+ "MORE": "+{count} altre"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Cerca...",
+ "EMPTY_STATE": "Nessun risultato trovato.",
+ "SEARCHING": "Ricerca..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Annulla",
+ "CONFIRM": "Conferma"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Cerca Paese",
+ "ERROR": "Il numero di telefono deve essere vuoto o in formato E.164",
+ "DIAL_CODE_ERROR": "Seleziona un codice di chiamata dalla lista"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Autore non disponibile"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Scopri di più",
+ "WATCH_VIDEO": "Guarda video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minuti",
+ "HOURS": "Ore",
+ "DAYS": "Giorni",
+ "PLACEHOLDER": "Inserisci durata"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/contact.json b/app/javascript/dashboard/i18n/locale/it/contact.json
index f17386475..504b8e877 100644
--- a/app/javascript/dashboard/i18n/locale/it/contact.json
+++ b/app/javascript/dashboard/i18n/locale/it/contact.json
@@ -1,109 +1,80 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Non disponibile",
- "EMAIL_ADDRESS": "Indirizzo email",
+ "NOT_AVAILABLE": "Non Disponibile",
+ "EMAIL_ADDRESS": "Indirizzo Email",
"PHONE_NUMBER": "Numero di telefono",
"IDENTIFIER": "Identificatore",
- "COPY_SUCCESSFUL": "Copiato negli appunti con successo",
+ "COPY_SUCCESSFUL": "Copiato negli appunti",
"COMPANY": "Azienda",
"LOCATION": "Posizione",
- "BROWSER_LANGUAGE": "Lingua del browser",
- "CONVERSATION_TITLE": "Dettagli conversazione",
- "VIEW_PROFILE": "Visualizza profilo",
+ "BROWSER_LANGUAGE": "Lingua del Browser",
+ "CONVERSATION_TITLE": "Dettagli Conversazione",
+ "VIEW_PROFILE": "Visualizza Profilo",
"BROWSER": "Browser",
- "OS": "Sistema operativo",
+ "OS": "Sistema Operativo",
"INITIATED_FROM": "Iniziato da",
- "INITIATED_AT": "Iniziato alle",
+ "INITIATED_AT": "Avviata alle",
"IP_ADDRESS": "Indirizzo IP",
- "CREATED_AT_LABEL": "Created",
+ "CREATED_AT_LABEL": "Creato il",
"NEW_MESSAGE": "Nuovo messaggio",
+ "CALL": "Chiama",
+ "CALL_INITIATED": "Chiamando il contatto…",
+ "CALL_FAILED": "Impossibile avviare la chiamata. Riprova.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Clicca per modificare",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Scegli una inbox vocale"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Non ci sono precedenti conversazioni associate a questo contatto.",
- "TITLE": "Conversazioni precedenti"
+ "TITLE": "Conversazioni Precedenti"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Etichette di contatto",
+ "TITLE": "Etichette di Contatto",
"ERROR": "Impossibile aggiornare le etichette"
},
"CONVERSATION": {
- "TITLE": "Etichette di conversazione",
- "ADD_BUTTON": "Aggiungi etichette"
+ "TITLE": "Etichette di Conversazione",
+ "ADD_BUTTON": "Aggiungi Etichette"
},
"LABEL_SELECT": {
- "TITLE": "Aggiungi etichette",
+ "TITLE": "Aggiungi Etichette",
"PLACEHOLDER": "Cerca etichette",
"NO_RESULT": "Nessuna etichetta trovata",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "Crea nuova etichetta"
}
},
"MERGE_CONTACT": "Unisci contatto",
"CONTACT_ACTIONS": "Azioni contatto",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "Invia trascrizione",
+ "MUTE_CONTACT": "Blocca Contatto",
+ "UNMUTE_CONTACT": "Sblocca Contatto",
+ "MUTED_SUCCESS": "Questo contatto è stato bloccato. Non sarai avvisato di nessuna conversazione futura.",
+ "UNMUTED_SUCCESS": "Questo contatto è stato sbloccato.",
+ "SEND_TRANSCRIPT": "Invia Trascrizione",
"EDIT_LABEL": "Modifica",
"SIDEBAR_SECTIONS": {
- "CUSTOM_ATTRIBUTES": "Attributi personalizzati",
- "CONTACT_LABELS": "Etichette di contatto",
- "PREVIOUS_CONVERSATIONS": "Conversazioni precedenti"
+ "CUSTOM_ATTRIBUTES": "Attributi Personalizzati",
+ "CONTACT_LABELS": "Etichette di Contatto",
+ "PREVIOUS_CONVERSATIONS": "Conversazioni Precedenti",
+ "NO_RECORDS_FOUND": "Nessun attributo trovato"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Modifica contatto",
- "TITLE": "Modifica contatto",
+ "BUTTON_LABEL": "Modifica Contatto",
+ "TITLE": "Modifica Contatto",
"DESC": "Modifica dettagli contatto"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nuovo contatto",
- "TITLE": "Crea nuovo contatto",
- "DESC": "Aggiungi informazioni di base sul contatto."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importa",
- "TITLE": "Importa contatti",
- "DESC": "Importa contatti attraverso un file CSV.",
- "DOWNLOAD_LABEL": "Scarica un csv di esempio.",
- "FORM": {
- "LABEL": "File CSV",
- "SUBMIT": "Importa",
- "CANCEL": "Annulla"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Si è verificato un errore, riprova"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Si è verificato un errore, riprova",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Conferma eliminazione",
- "MESSAGE": "Sei sicuro di voler eliminare questa nota?",
- "YES": "Sì, eliminala",
- "NO": "No, conserva"
- }
- },
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Elimina contatto",
+ "BUTTON_LABEL": "Elimina Contatto",
"TITLE": "Elimina contatto",
"DESC": "Elimina dettagli contatto",
"CONFIRM": {
"TITLE": "Conferma eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
- "YES": "Sì, elimina",
- "NO": "No, conserva"
+ "YES": "Sì, Elimina",
+ "NO": "No, Mantieni"
},
"API": {
"SUCCESS_MESSAGE": "Contatto eliminato con successo",
@@ -115,28 +86,28 @@
"SUBMIT": "Invia",
"CANCEL": "Annulla",
"AVATAR": {
- "LABEL": "Immagine del contatto"
+ "LABEL": "Avatar del contatto"
},
"NAME": {
"PLACEHOLDER": "Inserisci il nome completo del contatto",
- "LABEL": "Nome completo"
+ "LABEL": "Nome Completo"
},
"BIO": {
- "PLACEHOLDER": "Inserisci la biografia del contatto",
- "LABEL": "Biografia"
+ "PLACEHOLDER": "Inserisci la bio del contatto",
+ "LABEL": "Bio"
},
"EMAIL_ADDRESS": {
"PLACEHOLDER": "Inserisci l'indirizzo email del contatto",
- "LABEL": "Indirizzo email",
+ "LABEL": "Indirizzo Email",
"DUPLICATE": "Questo indirizzo email è in uso per un altro contatto.",
"ERROR": "Inserisci un indirizzo email valido."
},
"PHONE_NUMBER": {
"PLACEHOLDER": "Inserisci il numero di telefono del contatto",
- "LABEL": "Numero di telefono",
+ "LABEL": "Numero di Telefono",
"HELP": "Il numero di telefono dovrebbe essere di formato E.164 es.: +3915555555 [+][codice nazione][codice zona][numero di telefono locale]",
"ERROR": "Il numero di telefono deve essere vuoto o di formato E.164",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
+ "DIAL_CODE_ERROR": "Seleziona un codice di chiamata dalla lista",
"DUPLICATE": "Questo numero di telefono è in uso per un altro contatto."
},
"LOCATION": {
@@ -145,18 +116,18 @@
},
"COMPANY_NAME": {
"PLACEHOLDER": "Inserisci il nome dell'azienda",
- "LABEL": "Nome azienda"
+ "LABEL": "Nome Azienda"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
- "LABEL": "Nome del paese",
- "SELECT_PLACEHOLDER": "Select",
+ "PLACEHOLDER": "Inserisci il nome del Paese",
+ "LABEL": "Nome Paese",
+ "SELECT_PLACEHOLDER": "Seleziona",
"REMOVE": "Rimuovi",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "Seleziona Paese"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "Inserisci il nome della città",
+ "LABEL": "Nome Città"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
@@ -190,15 +161,15 @@
"BUTTON_LABEL": "Avvia conversazione",
"TITLE": "Nuova conversazione",
"DESC": "Avvia una nuova conversazione inviando un nuovo messaggio.",
- "NO_INBOX": "Impossibile trovare una casella per inizializzare una nuova conversazione con questo contatto.",
+ "NO_INBOX": "Impossibile trovare una Inbox per avviare una nuova conversazione con questo contatto.",
"FORM": {
"TO": {
"LABEL": "A"
},
"INBOX": {
- "LABEL": "Casella",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Seleziona una casella"
+ "LABEL": "Via Inbox",
+ "PLACEHOLDER": "Seleziona una inbox di origine",
+ "ERROR": "Seleziona una Inbox"
},
"SUBJECT": {
"LABEL": "Oggetto",
@@ -211,8 +182,8 @@
"ERROR": "Il messaggio non può essere vuoto"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "Seleziona file",
+ "HELP_TEXT": "Trascina qui i file o seleziona i file da allegare"
},
"SUBMIT": "Invia messaggio",
"CANCEL": "Annulla",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contatti",
- "FIELDS": "Campi di contatto",
- "SEARCH_BUTTON": "Cerca",
- "SEARCH_INPUT_PLACEHOLDER": "Cerca contatti",
- "FILTER_CONTACTS": "Filtro",
- "FILTER_CONTACTS_SAVE": "Salva filtro",
- "FILTER_CONTACTS_DELETE": "Elimina filtro",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Caricamento contatti...",
- "404": "Nessun contatto corrisponde alla tua ricerca 🔍",
- "NO_CONTACTS": "Non ci sono contatti disponibili",
"TABLE_HEADER": {
- "NAME": "Nome",
- "PHONE_NUMBER": "Numero di telefono",
- "CONVERSATIONS": "Conversazioni",
- "LAST_ACTIVITY": "Ultima attività",
- "CREATED_AT": "Creato il",
- "COUNTRY": "Paese",
- "CITY": "Città",
- "SOCIAL_PROFILES": "Profili social",
- "COMPANY": "Azienda",
- "EMAIL_ADDRESS": "Indirizzo email"
- },
- "VIEW_DETAILS": "Visualizza dettagli"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contatti",
- "LOADING": "Caricamento profilo contatto..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Aggiungi",
- "TITLE": "Maiusc + Invio per creare un'attività"
- },
- "FOOTER": {
- "DUE_DATE": "Data di scadenza",
- "LABEL_TITLE": "Imposta tipo"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Recupero delle note...",
- "NOT_AVAILABLE": "Non ci sono note create per questo contatto",
- "HEADER": {
- "TITLE": "Note"
- },
- "LIST": {
- "LABEL": "ha aggiunto una nota"
- },
- "ADD": {
- "BUTTON": "Aggiungi",
- "PLACEHOLDER": "Aggiungi una nota",
- "TITLE": "Maiusc + Invio per creare una nota"
- },
- "CONTENT_HEADER": {
- "DELETE": "Elimina nota"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Attività"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "note",
- "PILL_BUTTON_EVENTS": "eventi",
- "PILL_BUTTON_CONVO": "conversazioni"
+ "SOCIAL_PROFILES": "Profili Social"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Aggiungi attributi",
"BUTTON": "Aggiungi attributo personalizzato",
- "NOT_AVAILABLE": "Non sono disponibili attributi personalizzati per questo contatto.",
- "COPY_SUCCESSFUL": "Copiato negli appunti con successo",
+ "COPY_SUCCESSFUL": "Copiato negli appunti",
+ "SHOW_MORE": "Mostra tutti gli attributi",
+ "SHOW_LESS": "Mostra meno attributi",
"ACTIONS": {
"COPY": "Copia attributo",
"DELETE": "Elimina attributo",
@@ -344,9 +252,9 @@
}
},
"VALIDATIONS": {
- "REQUIRED": "Valore valido richiesto",
+ "REQUIRED": "È richiesto un valore valido",
"INVALID_URL": "URL non valido",
- "INVALID_INPUT": "Invalid Input"
+ "INVALID_INPUT": "Input non valido"
}
},
"MERGE_CONTACTS": {
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Riepilogo",
- "DELETE_WARNING": "Il contatto di %{primaryContactName} verrà eliminato.",
- "ATTRIBUTE_WARNING": "I dettagli del contatto di %{primaryContactName} verranno copiati in %{parentContactName}."
+ "DELETE_WARNING": "Il contatto di {primaryContactName} verrà eliminato.",
+ "ATTRIBUTE_WARNING": "I dettagli del contatto di {primaryContactName} verranno copiati in {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Qualcosa è andato storto. Riprova più tardi."
},
"FORM": {
"SUBMIT": " Unisci contatti",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contatto unito con successo",
"ERROR_MESSAGE": "Impossibile unire i contatti, riprova!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contatti",
+ "SEARCH_TITLE": "Cerca contatti",
+ "ACTIVE_TITLE": "Contatti attivi",
+ "SEARCH_PLACEHOLDER": "Cerca...",
+ "MESSAGE_BUTTON": "Messaggio",
+ "SEND_MESSAGE": "Invia messaggio",
+ "BLOCK_CONTACT": "Blocca contatto",
+ "UNBLOCK_CONTACT": "Sblocca contatto",
+ "BREADCRUMB": {
+ "CONTACTS": "Contatti"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Aggiungi contatto",
+ "EXPORT_CONTACT": "Esporta contatti",
+ "IMPORT_CONTACT": "Importa contatti",
+ "SAVE_CONTACT": "Salva contatto",
+ "EMAIL_ADDRESS_DUPLICATE": "Questo indirizzo email è in uso per un altro contatto.",
+ "PHONE_NUMBER_DUPLICATE": "Questo numero di telefono è in uso per un altro contatto.",
+ "SUCCESS_MESSAGE": "Contatto salvato con successo",
+ "ERROR_MESSAGE": "Impossibile salvare il contatto. Riprova più tardi."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "Questo contatto è stato bloccato correttamente",
+ "BLOCK_ERROR_MESSAGE": "Impossibile bloccare il contatto. Riprova più tardi.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Questo contatto è stato sbloccato correttamente",
+ "UNBLOCK_ERROR_MESSAGE": "Impossibile sbloccare il contatto. Riprova più tardi.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Importa contatti",
+ "DESCRIPTION": "Importa contatti da un file CSV.",
+ "DOWNLOAD_LABEL": "Scarica un csv di esempio.",
+ "LABEL": "File CSV:",
+ "CHOOSE_FILE": "Seleziona file",
+ "CHANGE": "Cambia",
+ "CANCEL": "Annulla",
+ "IMPORT": "Importa",
+ "SUCCESS_MESSAGE": "Riceverai una notifica via email quando l'importazione sarà completata.",
+ "ERROR_MESSAGE": "Si è verificato un errore, riprova"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Esporta contatti",
+ "DESCRIPTION": "Esporta rapidamente un file csv con i dettagli completi dei tuoi contatti",
+ "CONFIRM": "Esporta",
+ "SUCCESS_MESSAGE": "Esportazione in corso. Riceverai una notifica via email quando il file di esportazione sarà pronto per essere scaricato.",
+ "ERROR_MESSAGE": "Si è verificato un errore, riprova"
+ },
+ "SORT_BY": {
+ "LABEL": "Ordina per",
+ "OPTIONS": {
+ "NAME": "Nome",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Numero di telefono",
+ "COMPANY": "Azienda",
+ "COUNTRY": "Paese",
+ "CITY": "Città",
+ "LAST_ACTIVITY": "Ultima attività",
+ "CREATED_AT": "Data creazione"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordinamento",
+ "OPTIONS": {
+ "ASCENDING": "Ascendente",
+ "DESCENDING": "Discendente"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Vuoi salvare questo filtro?",
+ "CONFIRM": "Salva filtro",
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Inserisci il nome del filtro",
+ "ERROR": "Inserisci un nome valido",
+ "SUCCESS_MESSAGE": "Filtro salvato correttamente",
+ "ERROR_MESSAGE": "Impossibile salvare il filtro. Riprova più tardi."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Conferma Eliminazione",
+ "DESCRIPTION": "Sei sicuro di voler eliminare questo filtro?",
+ "CONFIRM": "Sì, Elimina",
+ "CANCEL": "No, Annulla",
+ "SUCCESS_MESSAGE": "Filtro eliminato con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare il filtro. Riprova più tardi."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} - {endItem} di {totalItems} contatti"
+ },
+ "FILTER": {
+ "NAME": "Nome",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Numero di telefono",
+ "IDENTIFIER": "Identificatore",
+ "COUNTRY": "Paese",
+ "CITY": "Città",
+ "COMPANY": "Azienda",
+ "CREATED_AT": "Data creazione",
+ "LAST_ACTIVITY": "Ultima attività",
+ "REFERER_LINK": "Link referente",
+ "BLOCKED": "Bloccato",
+ "BLOCKED_TRUE": "Vero",
+ "BLOCKED_FALSE": "Falso",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Rimuovi filtri",
+ "UPDATE_SEGMENT": "Aggiorna segmento",
+ "APPLY_FILTERS": "Applica filtri",
+ "ADD_FILTER": "Aggiungi filtro"
+ },
+ "TITLE": "Filtra contatti",
+ "EDIT_SEGMENT": "Modifica segmento",
+ "SEGMENT": {
+ "LABEL": "Nome segmento",
+ "INPUT_PLACEHOLDER": "Inserisci il nome del segmento"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} altri filtri",
+ "CLEAR_FILTERS": "Rimuovi filtri"
+ }
+ },
+ "CARD": {
+ "OF": "di",
+ "VIEW_DETAILS": "Visualizza dettagli",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Modifica dettagli contatto",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Inserisci il nome"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Inserisci il cognome"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Inserisci l'indirizzo email",
+ "DUPLICATE": "Questo indirizzo email è in uso per un altro contatto."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Inserisci il numero di telefono",
+ "DUPLICATE": "Questo numero di telefono è in uso per un altro contatto."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Inserisci il nome della città"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Seleziona Paese"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Inserisci la bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Inserisci il nome dell'azienda"
+ }
+ },
+ "UPDATE_BUTTON": "Aggiorna contatto",
+ "SUCCESS_MESSAGE": "Contatto aggiornato correttamente",
+ "ERROR_MESSAGE": "Impossibile aggiornare il contatto. Riprova più tardi."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Modifica link social",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Aggiungi Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Aggiungi Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Aggiungi Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Aggiungi Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Aggiungi TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Aggiungi LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Aggiungi Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Questa azione è permanente e irreversibile.",
+ "BUTTON": "Elimina ora"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Creato {date}",
+ "LAST_ACTIVITY": "Ultima attività {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Elimina definitivamente questo contatto. Questa azione è irreversibile",
+ "DELETE_CONTACT": "Elimina contatto",
+ "DELETE_DIALOG": {
+ "TITLE": "Conferma eliminazione",
+ "DESCRIPTION": "Sei sicuro di voler eliminare questo contatto?",
+ "CONFIRM": "Sì, Elimina",
+ "API": {
+ "SUCCESS_MESSAGE": "Contatto eliminato con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare il contatto. Riprova più tardi."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Impossibile caricare l'avatar. Riprova più tardi.",
+ "SUCCESS_MESSAGE": "Avatar caricato con successo"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar eliminato con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare l'avatar. Riprova più tardi."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributi",
+ "HISTORY": "Cronologia",
+ "NOTES": "Note",
+ "MERGE": "Unisci"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Non ci sono precedenti conversazioni associate a questo contatto"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Cerca attributi",
+ "UNUSED_ATTRIBUTES": "{count} Attributi utilizzati | {count} Attributi inutilizzati",
+ "EMPTY_STATE": "Non ci sono attributi personalizzati dei contatti disponibili in questo account. Puoi creare un attributo personalizzato nelle impostazioni.",
+ "YES": "Sì",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Seleziona valore",
+ "INPUT": "Inserisci valore"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Numero non valido",
+ "REQUIRED": "È richiesto un valore valido",
+ "INVALID_INPUT": "Input non valido",
+ "INVALID_URL": "URL non valido",
+ "INVALID_DATE": "Data non valida"
+ },
+ "NO_ATTRIBUTES": "Nessun attributo trovato",
+ "API": {
+ "SUCCESS_MESSAGE": "Attributo aggiornato con successo",
+ "DELETE_SUCCESS_MESSAGE": "Attributo eliminato con successo",
+ "UPDATE_ERROR": "Impossibile aggiornare l'attributo. Riprova più tardi",
+ "DELETE_ERROR": "Impossibile eliminare l'attributo. Riprova più tardi"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Unisci contatto",
+ "DESCRIPTION": "Unisci due profili in uno solo, inclusi tutti gli attributi e le conversazioni. In caso di conflitti, gli attributi del contatto primario avranno la precedenza.",
+ "PRIMARY": "Contatto primario",
+ "PRIMARY_HELP_LABEL": "Da salvare",
+ "PRIMARY_REQUIRED_ERROR": "Seleziona un contatto da unire prima di procedere",
+ "PARENT": "Da unire",
+ "PARENT_HELP_LABEL": "Da eliminare",
+ "EMPTY_STATE": "Nessun contatto trovato",
+ "PLACEHOLDER": "Cerca contatto primario",
+ "SEARCH_PLACEHOLDER": "Cerca un contatto",
+ "SEARCH_ERROR_MESSAGE": "Impossibile cercare i contatti. Riprova più tardi.",
+ "SUCCESS_MESSAGE": "Contatto unito con successo",
+ "ERROR_MESSAGE": "Impossibile unire i contatti, riprova!",
+ "IS_SEARCHING": "Ricerca...",
+ "BUTTONS": {
+ "CANCEL": "Annulla",
+ "CONFIRM": "Unisci contatto"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Aggiungi una nota",
+ "WROTE": "ha scritto",
+ "YOU": "Tu",
+ "SAVE": "Salva nota",
+ "ADD_NOTE": "Aggiungi nota contatto",
+ "EXPAND": "Espandi",
+ "COLLAPSE": "Comprimi",
+ "NO_NOTES": "Nessuna nota, puoi aggiungere note dalla pagina dei dettagli del contatto.",
+ "EMPTY_STATE": "Non ci sono note associate a questo contatto. Puoi aggiungere una nota digitando nella casella sopra.",
+ "CONVERSATION_EMPTY_STATE": "Non ci sono ancora note. Usa il pulsante Aggiungi nota per crearne una."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessun contatto trovato in questo account",
+ "SUBTITLE": "Inizia ad aggiungere nuovi contatti cliccando sul pulsante qui sotto",
+ "BUTTON_LABEL": "Aggiungi contatto",
+ "SEARCH_EMPTY_STATE_TITLE": "Nessun contatto corrisponde alla tua ricerca 🔍",
+ "LIST_EMPTY_STATE_TITLE": "Nessun contatto disponibile in questa vista 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Nessun contatto attivo al momento 🌙"
+ },
+ "LOAD_MORE": "Carica altro"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assegna Etichette",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etichette assegnate correttamente.",
+ "ASSIGN_LABELS_FAILED": "Assegnazione delle etichette non riuscita",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Selezionare le etichette da aggiungere ai contatti selezionati.",
+ "NO_LABELS_FOUND": "Nessuna etichetta disponibile.",
+ "SELECTED_COUNT": "{count} selezionate",
+ "CLEAR_SELECTION": "Annulla selezione",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "DELETE_CONTACTS": "Elimina",
+ "DELETE_SUCCESS": "Contatti eliminati con successo.",
+ "DELETE_FAILED": "Impossibile eliminare i contatti.",
+ "DELETE_DIALOG": {
+ "TITLE": "Elimina i contatti selezionati",
+ "SINGULAR_TITLE": "Elimina il contatto selezionato",
+ "DESCRIPTION": "Questo eliminerà definitivamente i {count} contatti selezionati. Questa azione non può essere annullata.",
+ "SINGULAR_DESCRIPTION": "Questo eliminerà definitivamente il contatto selezionato. Questa azione non può essere annullata.",
+ "CONFIRM_MULTIPLE": "Elimina contatti",
+ "CONFIRM_SINGLE": "Elimina contatto"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Non siamo riusciti a completare la ricerca. Riprova."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Visualizza",
+ "SUCCESS_MESSAGE": "Messaggio inviato con successo!",
+ "ERROR_MESSAGE": "Si è verificato un errore durante la creazione della conversazione. Riprova più tardi.",
+ "NO_INBOX_ALERT": "Non ci sono inbox disponibili per avviare una conversazione con questo contatto.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "A:",
+ "TAG_INPUT_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare per nome, email o numero di telefono",
+ "CONTACT_CREATING": "Creazione contatto..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Mostra inbox"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Oggetto :",
+ "SUBJECT_PLACEHOLDER": "Inserisci qui l'oggetto email",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare via email",
+ "BCC_LABEL": "Ccn:",
+ "BCC_PLACEHOLDER": "Inserisci almeno 2 caratteri per cercare via email",
+ "BCC_BUTTON": "Ccn"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Scrivi qui il tuo messaggio..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Seleziona modello",
+ "SEARCH_PLACEHOLDER": "Cerca modelli",
+ "EMPTY_STATE": "Nessun modello trovato",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "Modello WhatsApp: {templateName}",
+ "VARIABLES": "Variabili",
+ "BACK": "Torna indietro",
+ "SEND_MESSAGE": "Invia messaggio"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Seleziona modello",
+ "SEARCH_PLACEHOLDER": "Cerca modelli",
+ "EMPTY_STATE": "Nessun modello trovato",
+ "TEMPLATE_PARSER": {
+ "BACK": "Torna indietro",
+ "SEND_MESSAGE": "Invia messaggio"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Annulla",
+ "SEND": "Invia ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/contactFilters.json b/app/javascript/dashboard/i18n/locale/it/contactFilters.json
index 72dcfa237..61c3ddad9 100644
--- a/app/javascript/dashboard/i18n/locale/it/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/it/contactFilters.json
@@ -1,6 +1,6 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filtra contatti",
+ "TITLE": "Filtra Contatti",
"SUBTITLE": "Aggiungi filtri qui sotto e premi 'Invia' per filtrare i contatti.",
"EDIT_CUSTOM_SEGMENT": "Edit Segment",
"CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
@@ -8,12 +8,12 @@
"CLEAR_ALL_FILTERS": "Cancella tutti i filtri",
"FILTER_DELETE_ERROR": "Dovresti avere almeno un filtro da salvare",
"SUBMIT_BUTTON_LABEL": "Invia",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "Aggiorna Segmento",
"CANCEL_BUTTON_LABEL": "Annulla",
- "CLEAR_BUTTON_LABEL": "Cancella filtri",
- "EMPTY_VALUE_ERROR": "Il valore è obbligatorio",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
+ "CLEAR_BUTTON_LABEL": "Rimuovi Filtri",
+ "EMPTY_VALUE_ERROR": "Valore richiesto",
+ "SEGMENT_LABEL": "Nome Segmento",
+ "SEGMENT_QUERY_LABEL": "Query Segmento",
"TOOLTIP_LABEL": "Filtra contatti",
"QUERY_DROPDOWN_LABELS": {
"AND": "E",
@@ -30,6 +30,9 @@
"is_lesser_than": "È minore di",
"days_before": "È x giorni prima"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Il valore è obbligatorio"
+ },
"ATTRIBUTES": {
"NAME": "Nome",
"EMAIL": "Email",
@@ -43,13 +46,15 @@
"CUSTOM_ATTRIBUTE_LINK": "Link",
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Creato il",
- "LAST_ACTIVITY": "Ultima attività",
- "REFERER_LINK": "Link di riferimento"
+ "LAST_ACTIVITY": "Ultima Attività",
+ "REFERER_LINK": "Link referente",
+ "BLOCKED": "Bloccato",
+ "LABELS": "Etichette"
},
"GROUPS": {
- "STANDARD_FILTERS": "Filtri standard",
- "ADDITIONAL_FILTERS": "Filtri addizionali",
- "CUSTOM_ATTRIBUTES": "Attributi personalizzati"
+ "STANDARD_FILTERS": "Filtri Standard",
+ "ADDITIONAL_FILTERS": "Filtri Aggiuntivi",
+ "CUSTOM_ATTRIBUTES": "Attributi Personalizzati"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/contentTemplates.json b/app/javascript/dashboard/i18n/locale/it/contentTemplates.json
new file mode 100644
index 000000000..57c5ce52b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Modelli Twilio",
+ "SUBTITLE": "Seleziona il modello Twilio che vuoi inviare",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configura modello: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cerca Modelli",
+ "NO_TEMPLATES_FOUND": "Nessun modello trovato per",
+ "NO_CONTENT": "Nessun contenuto",
+ "HEADER": "Intestazione",
+ "BODY": "Corpo",
+ "FOOTER": "Piè",
+ "BUTTONS": "Pulsanti",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Contenuto Multimediale",
+ "MEDIA_CONTENT_FALLBACK": "contenuto multimediale",
+ "NO_TEMPLATES_AVAILABLE": "Nessun modello Twilio disponibile. Fai clic su aggiorna per sincronizzare i modelli da Twilio.",
+ "REFRESH_BUTTON": "Aggiorna modelli",
+ "REFRESH_SUCCESS": "Aggiornamento modelli iniziato. Potrebbe volerci qualche minuto per aggiornare.",
+ "REFRESH_ERROR": "Impossibile aggiornare i modelli. Per favore riprova.",
+ "LABELS": {
+ "LANGUAGE": "Lingua",
+ "TEMPLATE_BODY": "Corpo Modello",
+ "CATEGORY": "Categoria"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Risposta Rapida",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Testo"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabili",
+ "LANGUAGE": "Lingua",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Inserisci il valore di {variable}",
+ "GO_BACK_LABEL": "Torna Indietro",
+ "SEND_MESSAGE_LABEL": "Invia Messaggio",
+ "FORM_ERROR_MESSAGE": "Inserisci tutte le variabili prima di inviare",
+ "MEDIA_HEADER_LABEL": "Intestazione {type}",
+ "MEDIA_URL_LABEL": "Inserisci l'URL completo del media",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Indietro",
+ "SEND_MESSAGE_BUTTON": "Invia Messaggio"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/conversation.json b/app/javascript/dashboard/i18n/locale/it/conversation.json
index 3769641e2..663e1e902 100644
--- a/app/javascript/dashboard/i18n/locale/it/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/it/conversation.json
@@ -1,70 +1,128 @@
{
"CONVERSATION": {
- "SELECT_A_CONVERSATION": "Si prega di selezionare una conversazione dal pannello sinistro",
+ "SELECT_A_CONVERSATION": "Seleziona una conversazione dal pannello a sinistra",
"CSAT_REPLY_MESSAGE": "Valuta la conversazione",
"404": "Siamo spiacenti, non siamo riusciti a trovare la conversazione. Riprova",
- "SWITCH_VIEW_LAYOUT": "Cambia il layout",
+ "SWITCH_VIEW_LAYOUT": "Cambia layout",
"DASHBOARD_APP_TAB_MESSAGES": "Messaggi",
"UNVERIFIED_SESSION": "L'identità di questo utente non è verificata",
- "NO_MESSAGE_1": "Oh oh! Sembra che non ci siano messaggi da parte dei clienti nella tua casella.",
+ "NO_MESSAGE_1": "Oh oh! Sembra che non ci siano messaggi dai clienti nella tua inbox.",
"NO_MESSAGE_2": " per inviare un messaggio alla tua pagina!",
- "NO_INBOX_1": "Hola! Sembra che tu non abbia ancora aggiunto nessuna casella.",
+ "NO_INBOX_1": "Ciao! Sembra che tu non abbia ancora aggiunto nessuna inbox.",
"NO_INBOX_2": " per iniziare",
- "NO_INBOX_AGENT": "Uh Oh! Sembra che tu non faccia parte di nessuna casella. Per favore contatta il tuo amministratore",
+ "NO_INBOX_AGENT": "Oh oh! Sembra che tu non faccia parte di nessuna inbox. Per favore contatta il tuo amministratore",
"SEARCH_MESSAGES": "Cerca messaggi nelle conversazioni",
+ "VIEW_ORIGINAL": "Visualizza originale",
+ "VIEW_TRANSLATED": "Visualizza traduzione",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "per aprire il menu dei comandi",
+ "KEYBOARD_SHORTCUTS": "per visualizzare le scorciatoie da tastiera"
},
"SEARCH": {
"TITLE": "Cerca messaggi",
- "RESULT_TITLE": "Risultati della ricerca",
- "LOADING_MESSAGE": "Elaborazione dei dati...",
+ "RESULT_TITLE": "Risultati di Ricerca",
+ "LOADING_MESSAGE": "Elaborazione...",
"PLACEHOLDER": "Digita qualsiasi testo per cercare i messaggi",
"NO_MATCHING_RESULTS": "Nessun risultato trovato."
},
- "UNREAD_MESSAGES": "Messaggi non letti",
- "UNREAD_MESSAGE": "Messaggio non letto",
+ "UNREAD_MESSAGES": "Messaggi Non Letti",
+ "UNREAD_MESSAGE": "Messaggio Non Letto",
"CLICK_HERE": "Clicca qui",
- "LOADING_INBOXES": "Caricamento casella",
- "LOADING_CONVERSATIONS": "Caricamento conversazioni",
+ "LOADING_INBOXES": "Caricamento inbox",
+ "LOADING_CONVERSATIONS": "Caricamento Conversazioni",
"CANNOT_REPLY": "Non puoi rispondere a causa di",
- "24_HOURS_WINDOW": "Restrizione della finestra del messaggio a 24 ore",
+ "24_HOURS_WINDOW": "Restrizione finestra messaggio 24 ore",
+ "48_HOURS_WINDOW": "Restrizione finestra messaggio 48 ore",
+ "API_HOURS_WINDOW": "Puoi rispondere a questa conversazione solo entro {hours} ore",
"NOT_ASSIGNED_TO_YOU": "Questa conversazione non è assegnata. Vuoi assegnare questa conversazione a te stesso?",
"ASSIGN_TO_ME": "Assegna a me",
+ "BOT_HANDOFF_MESSAGE": "Si sta rispondendo a una conversazione che è attualmente gestita da un assistente o un bot.",
+ "BOT_HANDOFF_ACTION": "Segna aperta e assegna a te",
+ "BOT_HANDOFF_REOPEN_ACTION": "Segna conversazione aperta",
+ "BOT_HANDOFF_SUCCESS": "La conversazione ti è stata assegnata",
+ "BOT_HANDOFF_ERROR": "Impossibile prendere la conversazione. Riprova.",
"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",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "Restrizione finestra messaggio 24 ore",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Questo account Instagram è stato migrato alla nuova Inbox del canale Instagram. Tutti i nuovi messaggi verranno visualizzati lì. Non sarà più possibile inviare messaggi da questa conversazione.",
"REPLYING_TO": "Stai rispondendo a:",
- "REMOVE_SELECTION": "Rimuovi selezione",
+ "REMOVE_SELECTION": "Rimuovi Selezione",
"DOWNLOAD": "Scarica",
- "UNKNOWN_FILE_TYPE": "File sconosciuto",
- "SAVE_CONTACT": "Save",
+ "UNKNOWN_FILE_TYPE": "File Sconosciuto",
+ "SAVE_CONTACT": "Salva Contatto",
+ "NO_CONTENT": "Nessun contenuto da visualizzare",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} ha condiviso un contatto",
+ "LOCATION": "{sender} ha condiviso una posizione",
+ "FILE": "{sender} ha condiviso un file",
+ "MEETING": "{sender} ha avviato una riunione"
+ },
"UPLOADING_ATTACHMENTS": "Caricamento allegati...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "REPLIED_TO_STORY": "Ha risposto alla tua storia",
+ "UNSUPPORTED_MESSAGE": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Facebook / Instagram.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Facebook Messenger.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Questo messaggio non è supportato. Puoi visualizzare questo messaggio sull'app TikTok.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Messaggio eliminato con successo",
"FAIL_DELETE_MESSSAGE": "Impossibile eliminare il messaggio! Riprova",
"NO_RESPONSE": "Nessuna risposta",
+ "RESPONSE": "Risposta",
"RATING_TITLE": "Valutazione",
"FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "REPLY_MESSAGE_NOT_FOUND": "Messaggio non disponibile",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "Mostra etichette",
+ "HIDE_LABELS": "Nascondi etichette",
+ "LABELS_COUNT": "{count} etichette"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Chiamata in arrivo",
+ "OUTGOING_CALL": "Chiamata in uscita",
+ "CALL_IN_PROGRESS": "Chiamata in corso",
+ "NO_ANSWER": "Nessuna risposta",
+ "NO_ANSWER_OUTBOUND_LABEL": "Nessuna risposta",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Chiamata persa",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Chiamata terminata",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Non ancora risposta",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Hanno risposto",
+ "YOU_ANSWERED": "Hai risposto",
+ "AGENT_ANSWERED": "{agentName} ha risposto",
+ "JOIN_CALL": "Entra nella chiamata",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Mostra meno"
},
"HEADER": {
"RESOLVE_ACTION": "Risolvi",
"REOPEN_ACTION": "Riapri",
"OPEN_ACTION": "Apri",
+ "MORE_ACTIONS": "Più azioni",
"OPEN": "Altro",
"CLOSE": "Chiudi",
- "DETAILS": "Dettagli",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Posticipato fino a domani",
- "SNOOZED_UNTIL_NEXT_WEEK": "Posticipato fino alla prossima settimana",
- "SNOOZED_UNTIL_NEXT_REPLY": "Posticipato fino alla prossima risposta"
+ "DETAILS": "dettagli",
+ "COPY_ID_SUCCESS": "ID conversazione copiato negli appunti",
+ "SNOOZED_UNTIL": "Posticipata fino a",
+ "SNOOZED_UNTIL_TOMORROW": "Posticipata fino a domani",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Posticipata fino alla prossima settimana",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Posticipata fino alla prossima risposta",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "persa",
+ "DUE": "in scadenza"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Segna come in sospeso",
@@ -76,32 +134,42 @@
"NEXT_WEEK": "Prossima settimana"
}
},
+ "MENTION": {
+ "AGENTS": "Operatori",
+ "TEAMS": "Team"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Posticipa fino a",
"APPLY": "Posticipa",
- "CANCEL": "annulla"
+ "CANCEL": "Annulla"
},
"PRIORITY": {
"TITLE": "Priorità",
"OPTIONS": {
- "NONE": "Nessuno",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "NONE": "Nessuna",
+ "URGENT": "Urgente",
+ "HIGH": "Alta",
+ "MEDIUM": "Media",
+ "LOW": "Bassa"
},
"CHANGE_PRIORITY": {
- "SELECT_PLACEHOLDER": "Nessuno",
- "INPUT_PLACEHOLDER": "Select priority",
+ "SELECT_PLACEHOLDER": "Nessuna",
+ "INPUT_PLACEHOLDER": "Seleziona priorità",
"NO_RESULTS": "Nessun risultato trovato",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "Cambiata priorità della conversazione id {conversationId} in {priority}",
+ "FAILED": "Impossibile cambiare la priorità. Riprova."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Elimina conversazione #{conversationId}",
+ "DESCRIPTION": "Sei sicuro di voler eliminare questa conversazione?",
+ "CONFIRM": "Elimina"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Segna come in sospeso",
- "RESOLVED": "Contrassegna come risolto",
- "MARK_AS_UNREAD": "Mark as unread",
+ "RESOLVED": "Segna come risolta",
+ "MARK_AS_UNREAD": "Segna come da leggere",
+ "MARK_AS_READ": "Segna come letta",
"REOPEN": "Riapri la conversazione",
"SNOOZE": {
"TITLE": "Posticipa",
@@ -109,76 +177,96 @@
"TOMORROW": "Fino a domani",
"NEXT_WEEK": "Fino alla prossima settimana"
},
- "ASSIGN_AGENT": "Assegna agente",
+ "ASSIGN_AGENT": "Assegna operatore",
"ASSIGN_LABEL": "Assegna etichetta",
- "AGENTS_LOADING": "Caricamento agenti...",
+ "AGENTS_LOADING": "Caricamento operatori...",
"ASSIGN_TEAM": "Assegna team",
+ "DELETE": "Elimina conversazione",
+ "OPEN_IN_NEW_TAB": "Apri in una nuova scheda",
+ "COPY_LINK": "Copia link conversazione",
+ "COPY_LINK_SUCCESS": "Link conversazione copiato negli appunti",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "ID conversazione %{conversationId} assegnato a \"%{agentName}\"",
- "FAILED": "Impossibile assegnare l'agente. Per favore riprova."
+ "SUCCESFUL": "Conversazione id {conversationId} assegnata a \"{agentName}\"",
+ "FAILED": "Impossibile assegnare l'operatore. Per favore riprova."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Etichetta #%{labelName} assegnata all'ID conversazione %{conversationId}",
+ "SUCCESFUL": "Assegnata etichetta #{labelName} alla conversazione id {conversationId}",
"FAILED": "Impossibile assegnare l'etichetta. Per favore riprova."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Rimossa etichetta #{labelName} dalla conversazione id {conversationId}",
+ "FAILED": "Impossibile rimuovere l'etichetta. Riprova."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assegnato il team \"%{team}\" all'id conversazione %{conversationId}",
+ "SUCCESFUL": "Assegnato il team \"{team}\" alla conversazione id {conversationId}",
"FAILED": "Impossibile assegnare il team. Riprova."
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Firma del messaggio",
+ "MESSAGE_SIGN_TOOLTIP": "Firma messaggio",
"ENABLE_SIGN_TOOLTIP": "Abilita firma",
"DISABLE_SIGN_TOOLTIP": "Disabilita firma",
- "MSG_INPUT": "MAIUSC + INVIO per la nuova linea. Inizia con '/' per selezionare una risposta predefinita.",
- "PRIVATE_MSG_INPUT": "MAIUSC + INVIO per nuova linea. Questo sarà visibile solo agli agenti",
+ "MSG_INPUT": "Premi MAIUSC + INVIO per andare a capo. Digita '/' per inserire una Risposta Predefinita.",
+ "PRIVATE_MSG_INPUT": "Premi MAIUSC + INVIO per andare a capo. Sarà visibile solo agli Operatori",
+ "MESSAGING_RESTRICTED": "Non è possibile rispondere a questa conversazione",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Puoi rispondere solamente con un messaggio modello: la finestra di 24 ore di WhatsApp è scaduta",
+ "MESSAGING_RESTRICTED_API": "Puoi rispondere solamente con un messaggio modello: la finestra di messaggistica è scaduta",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "La firma del messaggio non è configurata, configurala nelle impostazioni del profilo.",
- "CLICK_HERE": "Clicca qui per aggiornare"
+ "COPILOT_MSG_INPUT": "Dai ulteriori istruzioni a Copilot o fai un’altra richiesta. Premi Invio per inviare il messaggio successivo",
+ "CLICK_HERE": "Clicca qui per aggiornare",
+ "WHATSAPP_TEMPLATES": "Modelli Whatsapp"
},
"REPLYBOX": {
"REPLY": "Rispondi",
- "PRIVATE_NOTE": "Nota privata",
+ "PRIVATE_NOTE": "Nota Privata",
"SEND": "Invia",
- "CREATE": "Aggiungi nota",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Mostra editor di testo ricco",
+ "CREATE": "Aggiungi Nota",
+ "INSERT_READ_MORE": "Leggi di più",
+ "DISMISS_REPLY": "Ignora risposta",
+ "REPLYING_TO": "Rispondendo a:",
"TIP_EMOJI_ICON": "Mostra selettore emoji",
"TIP_ATTACH_ICON": "Allega file",
"TIP_AUDIORECORDER_ICON": "Registra audio",
"TIP_AUDIORECORDER_PERMISSION": "Consenti l'accesso all'audio",
"TIP_AUDIORECORDER_ERROR": "Impossibile aprire l'audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Trascina qui per allegare",
"START_AUDIO_RECORDING": "Avvia registrazione audio",
"STOP_AUDIO_RECORDING": "Interrompi registrazione audio",
- "": "",
+ "COPILOT_THINKING": "Copilot sta pensando",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Aggiungi bcc",
+ "TO": "A",
+ "ADD_BCC": "Aggiungi Ccn",
"CC": {
- "LABEL": "CC",
+ "LABEL": "Cc",
"PLACEHOLDER": "Email separate da virgole",
"ERROR": "Inserisci indirizzi email validi"
},
"BCC": {
- "LABEL": "CCN",
+ "LABEL": "Ccn",
"PLACEHOLDER": "Email separate da virgole",
"ERROR": "Inserisci indirizzi email validi"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
- "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "TITLE": "Variabili non definite",
+ "MESSAGE": "Hai {undefinedVariablesCount} variabili non definite nel tuo messaggio: {undefinedVariables}. Vuoi inviare il messaggio comunque?",
"CONFIRM": {
"YES": "Invia",
- "CANCEL": "annulla"
+ "CANCEL": "Annulla"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Includi discussione email citata",
+ "DISABLE_TOOLTIP": "Non includere discussione email citata",
+ "REMOVE_PREVIEW": "Rimuovi discussione email citata",
+ "COLLAPSE": "Comprimi anteprima",
+ "EXPAND": "Espandi anteprima"
}
},
- "VISIBLE_TO_AGENTS": "Nota privata: visibile solo a te e al tuo team",
+ "VISIBLE_TO_AGENTS": "Nota Privata: visibile solo a te e al tuo team",
"CHANGE_STATUS": "Stato conversazione cambiato",
"CHANGE_STATUS_FAILED": "Cambio di stato conversazione non riuscito",
"CHANGE_AGENT": "Modifica assegnatario conversazione",
@@ -186,31 +274,55 @@
"ASSIGN_LABEL_SUCCESFUL": "Etichetta assegnata correttamente",
"ASSIGN_LABEL_FAILED": "Assegnazione etichetta non riuscita",
"CHANGE_TEAM": "Team conversazione cambiato",
+ "SUCCESS_DELETE_CONVERSATION": "Conversazione eliminata con successo",
+ "FAIL_DELETE_CONVERSATION": "Impossibile eliminare la conversazione! Riprova",
"FILE_SIZE_LIMIT": "Il file supera il limite di {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB per l'allegato",
+ "FILE_TYPE_NOT_SUPPORTED": "I file di tipo {fileName} non sono supportati in questa conversazione",
"MESSAGE_ERROR": "Impossibile inviare questo messaggio, riprova più tardi",
"SENT_BY": "Inviato da:",
"BOT": "Bot",
+ "NATIVE_APP": "App nativa",
+ "NATIVE_APP_ADVISORY": "Questo messaggio è stato inviato da un'app nativa. Rispondi da qui per mantenere la finestra del messaggio.",
"SEND_FAILED": "Impossibile inviare il messaggio! Riprova",
"TRY_AGAIN": "riprova",
"ASSIGNMENT": {
- "SELECT_AGENT": "Seleziona agente",
+ "SELECT_AGENT": "Seleziona Operatore",
"REMOVE": "Rimuovi",
"ASSIGN": "Assegna"
},
"CONTEXT_MENU": {
"COPY": "Copia",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "Rispondi a questo messaggio",
"DELETE": "Elimina",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "Aggiungi alle Risposte Predefinite",
+ "TRANSLATE": "Traduci",
+ "COPY_PERMALINK": "Copia il link al messaggio",
+ "LINK_COPIED": "URL del messaggio copiato negli appunti",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "Sei sicuro di voler eliminare questo messaggio?",
+ "MESSAGE": "Non puoi annullare questa azione",
"DELETE": "Elimina",
"CANCEL": "Annulla"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contatto",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Chiamata in arrivo",
+ "OUTGOING_CALL": "Chiamata in uscita",
+ "CALL_IN_PROGRESS": "Chiamata in corso",
+ "NOT_ANSWERED_YET": "Non ancora risposta",
+ "HANDLED_IN_ANOTHER_TAB": "Gestita in un'altra scheda",
+ "REJECT_CALL": "Rifiuta",
+ "DISMISS_CALL": "Ignora",
+ "JOIN_CALL": "Entra nella chiamata",
+ "END_CALL": "Termina chiamata",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,9 +332,10 @@
"CANCEL": "Annulla",
"SEND_EMAIL_SUCCESS": "La trascrizione della chat è stata inviata con successo",
"SEND_EMAIL_ERROR": "Si è verificato un errore, riprova",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "La trascrizione email non è disponibile sul tuo piano attuale. Per favore aggiorna per utilizzare questa funzionalità.",
"FORM": {
"SEND_TO_CONTACT": "Invia la trascrizione al cliente",
- "SEND_TO_AGENT": "Invia la trascrizione all'agente assegnato",
+ "SEND_TO_AGENT": "Invia la trascrizione all'operatore assegnato",
"SEND_TO_OTHER_EMAIL_ADDRESS": "Invia la trascrizione a un altro indirizzo email",
"EMAIL": {
"PLACEHOLDER": "Inserisci un indirizzo email",
@@ -231,48 +344,87 @@
}
},
"ONBOARDING": {
- "TITLE": "Ehi 👋, Benvenuto in %{installationName}!",
- "DESCRIPTION": "Grazie per esserti registrato. Vogliamo che tu ottenga il massimo da %{installationName}. Ecco alcune cose che puoi fare in %{installationName} per rendere l'esperienza deliziosa.",
+ "TITLE": "Ciao👋 Benvenuto in {installationName}!",
+ "DESCRIPTION": "Grazie per averci scelto! Vogliamo che tu ottenga il massimo da {installationName}. Ecco alcune cose che puoi fare in {installationName} per massimizzare la tua esperienza.",
+ "GREETING_MORNING": "👋 Buongiorno, {name}. Benvenuto in {installationName}.",
+ "GREETING_AFTERNOON": "👋 Buon pomeriggio, {name}. Benvenuto in {installationName}.",
+ "GREETING_EVENING": "👋 Buona sera, {name}. Benvenuto su {installationName}.",
"READ_LATEST_UPDATES": "Leggi gli ultimi aggiornamenti",
"ALL_CONVERSATION": {
- "TITLE": "Tutte le conversazioni in un unico luogo",
- "DESCRIPTION": "Visualizza tutte le conversazioni dai tuoi clienti in una singola dashboard. È possibile filtrare le conversazioni in base al canale, all'etichetta e allo stato in arrivo."
+ "TITLE": "Tutte le tue conversazioni in un unico luogo",
+ "DESCRIPTION": "Visualizza tutte le conversazioni con i clienti in una singola dashboard. Puoi filtrare le conversazioni in base al canale, all'etichetta e allo stato.",
+ "NEW_LINK": "Clicca qui per creare una Inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invita i membri del tuo team",
- "DESCRIPTION": "Dal momento che siete sempre pronti a parlare con il vostro cliente, portare nei vostri compagni di squadra per assistervi. Puoi invitare i tuoi compagni di squadra aggiungendo i loro indirizzi email alla lista degli agenti.",
+ "DESCRIPTION": "Dato che ti stai preparando a parlare con i tuoi clienti, invita i tuoi colleghi ad aiutarti. Puoi invitarli aggiungendo i loro indirizzi email all’elenco degli operatori.",
"NEW_LINK": "Clicca qui per invitare un membro del team"
},
- "INBOXES": {
- "TITLE": "Connetti Inbox",
- "DESCRIPTION": "Collegare vari canali attraverso i quali i vostri clienti sarebbero parlare con voi. Può essere un sito web live-chat, la tua pagina Facebook o Twitter o anche il tuo numero WhatsApp.",
- "NEW_LINK": "Clicca qui per creare una casella di posta"
- },
"LABELS": {
"TITLE": "Organizza le conversazioni con etichette",
- "DESCRIPTION": "Le etichette forniscono un modo più semplice per categorizzare la conversazione. Crea alcune etichette come #support-enquiry, #billing-question ecc., in modo da poterle usare in una conversazione più tardi.",
+ "DESCRIPTION": "Le etichette offrono un modo semplice per categorizzare le conversazioni. Crea etichette come #supporto, #pagamenti ecc., così da poterle usare successivamente.",
"NEW_LINK": "Clicca qui per creare etichette"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Crea Risposte Predefinite",
+ "DESCRIPTION": "I modelli di risposta rapida predefiniti ti aiutano a rispondere rapidamente alle conversazioni. Gli operatori possono digitare il carattere '/' seguito dallo shortcode per inserire una risposta.",
+ "NEW_LINK": "Clicca qui per creare una Risposta Predefinita"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Agente assegnato",
+ "ASSIGNEE_LABEL": "Operatore Assegnato",
"SELF_ASSIGN": "Assegna a me",
- "TEAM_LABEL": "Team assegnato",
+ "TEAM_LABEL": "Team Assegnato",
"SELECT": {
"PLACEHOLDER": "Nessuno"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Dettagli contatto",
- "CONVERSATION_ACTIONS": "Azioni conversazione",
- "CONVERSATION_LABELS": "Etichette conversazione",
- "CONVERSATION_INFO": "Informazioni conversazione",
- "CONTACT_ATTRIBUTES": "Attributi contatti",
- "PREVIOUS_CONVERSATION": "Conversazioni precedenti",
- "MACROS": "Macros"
+ "CONTACT_DETAILS": "Dettagli Contatto",
+ "CONVERSATION_ACTIONS": "Azioni Conversazione",
+ "CONVERSATION_LABELS": "Etichette Conversazione",
+ "CONVERSATION_INFO": "Informazioni Conversazione",
+ "CONTACT_NOTES": "Note del Contatto",
+ "CONTACT_ATTRIBUTES": "Attributi Contatto",
+ "PREVIOUS_CONVERSATION": "Conversazioni Precedenti",
+ "MACROS": "Macro",
+ "LINEAR_ISSUES": "Issue Linear Connessi",
+ "SHOPIFY_ORDERS": "Ordini Shopify",
+ "SHARED_FILES": "Allegati"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "Nessun allegato",
+ "DOWNLOAD": "Scarica file",
+ "DOWNLOAD_ERROR": "Impossibile scaricare il file. Riprova.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "File",
+ "VIEW_ALL": "Vedi tutti",
+ "SHOW_LESS": "Mostra meno",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "File senza titolo"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Ordine #{id}",
+ "ERROR": "Errore nel caricamento degli ordini",
+ "NO_SHOPIFY_ORDERS": "Nessun ordine trovato",
+ "FINANCIAL_STATUS": {
+ "PENDING": "In Sospeso",
+ "AUTHORIZED": "Autorizzato",
+ "PARTIALLY_PAID": "Parzialmente Pagato",
+ "PAID": "Pagato",
+ "PARTIALLY_REFUNDED": "Parzialmente Rimborsato",
+ "REFUNDED": "Rimborsato",
+ "VOIDED": "Annullato"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Completato",
+ "PARTIALLY_FULFILLED": "Parzialmente Completato",
+ "UNFULFILLED": "Non Completato"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Crea attributo",
+ "NO_RECORDS_FOUND": "Nessun attributo trovato",
"UPDATE": {
"SUCCESS": "Attributo aggiornato con successo",
"ERROR": "Impossibile aggiornare l'attributo. Riprova più tardi"
@@ -295,32 +447,44 @@
"EMAIL_HEADER": {
"FROM": "Da",
"TO": "A",
- "BCC": "CCN",
+ "BCC": "Ccn",
"CC": "Cc",
- "SUBJECT": "Oggetto"
+ "SUBJECT": "Oggetto",
+ "EXPAND": "Espandi email"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
+ "SIDEBAR_MENU_TITLE": "Partecipate",
+ "SIDEBAR_TITLE": "Partecipanti alla conversazione",
"NO_RECORDS_FOUND": "Nessun risultato trovato",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
- "NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "ADD_PARTICIPANTS": "Seleziona partecipanti",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} altri",
+ "REMANING_PARTICIPANT_TEXT": "+{count} altro",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} persone stanno partecipando.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} persona sta partecipando.",
+ "NO_PARTICIPANTS_TEXT": "Nessuno sta partecipando!",
+ "WATCH_CONVERSATION": "Unisciti alla conversazione",
+ "YOU_ARE_WATCHING": "Stai partecipando",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "Impossibile aggiornare, riprova!",
+ "SUCCESS_MESSAGE": "Partecipanti aggiornati!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
- "DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "TITLE": "Visualizza contenuto tradotto",
+ "DESC": "Puoi visualizzare il contenuto tradotto in ogni lingua.",
+ "ORIGINAL_CONTENT": "Contenuto Originale",
+ "TRANSLATED_CONTENT": "Contenuto Tradotto",
+ "NO_TRANSLATIONS_AVAILABLE": "Nessuna traduzione disponibile per questo contenuto"
+ },
+ "TYPING": {
+ "ONE": "{user} sta scrivendo",
+ "TWO": "{user} e {secondUser} stanno scrivendo",
+ "MULTIPLE": "{user} e altri {count} stanno scrivendo"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Prova questi prompt"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Impossibile scaricare l'allegato. Riprova"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/csatMgmt.json b/app/javascript/dashboard/i18n/locale/it/csatMgmt.json
index ad1244ecd..7d6e5566f 100644
--- a/app/javascript/dashboard/i18n/locale/it/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/csatMgmt.json
@@ -3,11 +3,11 @@
"TITLE": "Valuta la conversazione",
"PLACEHOLDER": "Dicci di più...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 Scarsa",
+ "FAIR": "😑 Sufficiente",
+ "AVERAGE": "😐 Nella Media",
+ "GOOD": "😀 Buona",
+ "EXCELLENT": "😍 Eccellente"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/customRole.json b/app/javascript/dashboard/i18n/locale/it/customRole.json
new file mode 100644
index 000000000..6c883f8ea
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Ruoli Personalizzati",
+ "LEARN_MORE": "Scopri di più sui ruoli personalizzati",
+ "DESCRIPTION": "I ruoli personalizzati sono ruoli creati dal proprietario o amministratore dell'account. Questi ruoli possono essere assegnati agli operatori per definire i loro accessi e i loro permessi all'interno dell'account. I ruoli personalizzati possono essere creati con permessi e livelli di accesso specifici per soddisfare le esigenze dell'organizzazione.",
+ "COUNT": "{n} ruolo personalizzato | {n} ruoli personalizzati",
+ "HEADER_BTN_TXT": "Aggiungi ruolo personalizzato",
+ "LOADING": "Caricamento ruoli personalizzati...",
+ "SEARCH_PLACEHOLDER": "Cerca ruoli personalizzati...",
+ "NO_RESULTS": "Nessun ruolo personalizzato trovato corrispondente alla tua ricerca",
+ "SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta.",
+ "PAYWALL": {
+ "TITLE": "Aggiorna per creare ruoli personalizzati",
+ "AVAILABLE_ON": "La funzionalità ruoli personalizzati è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso a funzionalità avanzate come gestione del team, automazioni, attributi personalizzati e altro ancora.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funzionalità ruoli personalizzati è disponibile solo nei piani a pagamento.",
+ "UPGRADE_PROMPT": "Passa a un piano a pagamento per accedere a funzionalità avanzate come audit logs, capacità degli operatori e altro ancora.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ },
+ "LIST": {
+ "404": "Non ci sono ruoli personalizzati disponibili in questo account.",
+ "TITLE": "Gestisci ruoli personalizzati",
+ "DESC": "I ruoli personalizzati sono ruoli creati dal proprietario o amministratore dell'account. Questi ruoli possono essere assegnati agli operatori per definire i loro accessi e i loro permessi all'interno dell'account. I ruoli personalizzati possono essere creati con permessi e livelli di accesso specifici per soddisfare le esigenze dell'organizzazione.",
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "DESCRIPTION": "Descrizione",
+ "PERMISSIONS": "Permessi",
+ "ACTIONS": "Azioni"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Gestisci tutte le conversazioni",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Gestisci le conversazioni non assegnate e quelle a loro assegnate",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Gestisci le conversazioni partecipanti e quelle a loro assegnate",
+ "CONTACT_MANAGE": "Gestisci contatti",
+ "REPORT_MANAGE": "Gestisci report",
+ "KNOWLEDGE_BASE_MANAGE": "Gestisci knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Inserisci un nome.",
+ "ERROR": "Il nome è obbligatorio."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Inserisci una descrizione.",
+ "ERROR": "La descrizione è obbligatoria."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permessi",
+ "ERROR": "I permessi sono obbligatori."
+ },
+ "CANCEL_BUTTON_TEXT": "Annulla",
+ "API": {
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova."
+ }
+ },
+ "ADD": {
+ "TITLE": "Aggiungi ruolo personalizzato",
+ "DESC": " I ruoli personalizzati consentono di creare ruoli con permessi e livelli di accesso specifici per soddisfare le esigenze dell'organizzazione.",
+ "SUBMIT": "Invia",
+ "API": {
+ "SUCCESS_MESSAGE": "Ruolo personalizzato aggiunto con successo."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Modifica",
+ "TITLE": "Modifica ruolo personalizzato",
+ "DESC": " I ruoli personalizzati consentono di creare ruoli con permessi e livelli di accesso specifici per soddisfare le esigenze dell'organizzazione.",
+ "SUBMIT": "Aggiorna",
+ "API": {
+ "SUCCESS_MESSAGE": "Ruolo personalizzato aggiornato con successo."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Elimina",
+ "API": {
+ "SUCCESS_MESSAGE": "Ruolo personalizzato eliminato con successo.",
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova."
+ },
+ "CONFIRM": {
+ "TITLE": "Conferma eliminazione",
+ "MESSAGE": "Sei sicuro di voler eliminare ",
+ "YES": "Sì, elimina ",
+ "NO": "No, mantieni "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/datePicker.json b/app/javascript/dashboard/i18n/locale/it/datePicker.json
new file mode 100644
index 000000000..7af7f7a7d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Periodo precedente",
+ "NEXT_PERIOD": "Periodo successivo",
+ "WEEK_NUMBER": "Settimana #{weekNumber}",
+ "APPLY_BUTTON": "Applica",
+ "CLEAR_BUTTON": "Rimuovi",
+ "DATE_RANGE_INPUT": {
+ "START": "Data di Inizio",
+ "END": "Data di Fine"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "RANGE DATE",
+ "LAST_7_DAYS": "Ultimi 7 giorni",
+ "LAST_30_DAYS": "Ultimi 30 giorni",
+ "LAST_3_MONTHS": "Ultimi 3 mesi",
+ "LAST_6_MONTHS": "Ultimi 6 mesi",
+ "LAST_YEAR": "Ultimo anno",
+ "THIS_WEEK": "Questa settimana",
+ "MONTH_TO_DATE": "Questo mese",
+ "CUSTOM_RANGE": "Intervallo di date personalizzato"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/emoji.json b/app/javascript/dashboard/i18n/locale/it/emoji.json
index 4b6fa58ca..bd9cb3a4b 100644
--- a/app/javascript/dashboard/i18n/locale/it/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/it/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "Cerca emoji",
+ "NOT_FOUND": "Nessuna emoji corrisponde alla tua ricerca",
"REMOVE": "Rimuovi"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/general.json b/app/javascript/dashboard/i18n/locale/it/general.json
new file mode 100644
index 000000000..e052fef78
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Mostrando {firstIndex}-{lastIndex} di {totalCount} elementi",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Cerca",
+ "EMPTY_STATE": "Nessun risultato trovato"
+ },
+ "CLOSE": "Chiudi",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "Questa funzione è in beta e può subire variazioni mentre la miglioriamo.",
+ "ACCEPT": "Accetta",
+ "DISCARD": "Annulla",
+ "PREFERRED": "Preferito"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sì",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/generalSettings.json b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
index dd3f74cc0..5b12db78b 100644
--- a/app/javascript/dashboard/i18n/locale/it/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/it/generalSettings.json
@@ -1,13 +1,39 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Hai superato il limite di conversazioni. Il piano Hacker consente fino a 500 conversazioni.",
+ "INBOXES": "Hai superato il limite di Inbox. Il piano Hacker supporta solo la live-chat sul sito web. Ulteriori Inbox come e-mail, WhatsApp ecc. richiedono un piano a pagamento.",
+ "AGENTS": "Hai superato il limite di operatori. Il tuo piano consente solo {allowedAgents} operatori.",
+ "NON_ADMIN": "Contatta l'amministratore per aggiornare il piano e continuare a utilizzare tutte le funzionalità."
+ },
"TITLE": "Impostazioni account",
- "SUBMIT": "Aggiorna le impostazioni",
+ "SUBMIT": "Aggiorna impostazioni",
"BACK": "Indietro",
- "DISMISS": "Dismiss",
+ "DISMISS": "Ignora",
"UPDATE": {
"ERROR": "Impossibile aggiornare le impostazioni, riprova!",
"SUCCESS": "Impostazioni account aggiornate con successo"
},
+ "ACCOUNT_DELETE_SECTION": {
+ "TITLE": "Elimina il tuo Account",
+ "NOTE": "Una volta eliminato il tuo account, tutti i tuoi dati verranno eliminati.",
+ "BUTTON_TEXT": "Elimina il tuo Account",
+ "CONFIRM": {
+ "TITLE": "Elimina Account",
+ "MESSAGE": "L'eliminazione del tuo account è irreversibile. Inserisci il nome del tuo account qui sotto per confermare che vuoi eliminarlo in modo permanente.",
+ "BUTTON_TEXT": "Elimina",
+ "DISMISS": "Annulla",
+ "PLACE_HOLDER": "Digita {accountName} per confermare"
+ },
+ "SUCCESS": "Account contrassegnato per l'eliminazione",
+ "FAILURE": "Impossibile eliminare l'account, riprova!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Account pianificato per l'eliminazione",
+ "MESSAGE_MANUAL": "Questo account è pianificato per la cancellazione il {deletionDate}. Questo è stato richiesto da un amministratore. Puoi annullare la cancellazione prima di questa data.",
+ "MESSAGE_INACTIVITY": "Questo account è programmato per la cancellazione il {deletionDate} a causa dell'inattività dell'account. Puoi annullare la cancellazione prima di questa data.",
+ "CLEAR_BUTTON": "Annulla Eliminazione Pianificata"
+ }
+ },
"FORM": {
"ERROR": "Correggi gli errori del modulo",
"GENERAL_SECTION": {
@@ -16,7 +42,35 @@
},
"ACCOUNT_ID": {
"TITLE": "ID Account",
- "NOTE": "Questo ID è richiesto se si sta costruendo un'integrazione basata su API"
+ "NOTE": "Questo ID è utile per costruire integrazioni basate su API"
+ },
+ "AUTO_RESOLVE": {
+ "TITLE": "Risoluzione automatica delle conversazioni",
+ "NOTE": "Questa configurazione consente di risolvere automaticamente la conversazione dopo un certo periodo d'inattività.",
+ "DURATION": {
+ "LABEL": "Durata inattività",
+ "HELP": "Periodo d'inattività dopo il quale la conversazione è risolta automaticamente",
+ "PLACEHOLDER": "30",
+ "ERROR": "La durata della risoluzione automatica deve essere compresa tra 10 minuti e 999 giorni",
+ "API": {
+ "SUCCESS": "Impostazioni di risoluzione automatica aggiornate con successo",
+ "ERROR": "Impossibile aggiornare le impostazioni di risoluzione automatica"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Messaggio di risoluzione automatica personalizzato",
+ "PLACEHOLDER": "La conversazione è stata contrassegnata come risolta dal sistema a causa di 15 giorni d'inattività",
+ "HELP": "Messaggio inviato al cliente dopo che la conversazione è stata risolta automaticamente"
+ },
+ "PREFERENCES": "Preferenze",
+ "LABEL": {
+ "LABEL": "Aggiungi etichetta dopo la risoluzione automatica",
+ "PLACEHOLDER": "Seleziona un'etichetta"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Salta le conversazioni in attesa di risposta dell'operatore"
+ },
+ "UPDATE_BUTTON": "Salva Modifiche"
},
"NAME": {
"LABEL": "Nome account",
@@ -24,42 +78,65 @@
"ERROR": "Inserisci un nome account valido"
},
"LANGUAGE": {
- "LABEL": "Site language",
+ "LABEL": "Lingua del sito",
"PLACEHOLDER": "Nome del tuo account",
"ERROR": ""
},
"DOMAIN": {
- "LABEL": "Dominio email in entrata",
+ "LABEL": "Dominio Email In Arrivo",
"PLACEHOLDER": "Il dominio in cui riceverai le email",
"ERROR": ""
},
"SUPPORT_EMAIL": {
- "LABEL": "Email di supporto",
+ "LABEL": "Email di Supporto",
"PLACEHOLDER": "Email di supporto della tua azienda",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Escludi conversazioni non partecipate",
+ "HELP": "Se abilitato, il sistema salterà la risoluzione delle conversazioni che sono ancora in attesa della risposta di un operatore."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Trascrizione Messaggi Audio",
+ "NOTE": "Trascrivi automaticamente i messaggi audio nelle conversazioni. Genera una trascrizione di testo ogni volta che un messaggio audio viene inviato o ricevuto, mostrandolo accanto al messaggio.",
+ "API": {
+ "SUCCESS": "Impostazioni di trascrizione audio aggiornate con successo",
+ "ERROR": "Aggiornamento delle impostazioni di trascrizione audio non riuscito"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Numero di giorni dopo che un ticket dovrebbe risolvere automaticamente se non c'è attività",
+ "LABEL": "Durata dell'inattività per la risoluzione",
+ "HELP": "Durata dopo la quale una conversazione si risolve automaticamente se non c'è attività",
"PLACEHOLDER": "30",
- "ERROR": "Inserisci una durata di risoluzione automatica valida (minimo 1 giorno e massimo 999 giorni)"
+ "ERROR": "La durata della risoluzione automatica deve essere compresa tra 10 minuti e 999 giorni",
+ "API": {
+ "SUCCESS": "Impostazioni di risoluzione automatica aggiornate con successo",
+ "ERROR": "Impossibile aggiornare le impostazioni di risoluzione automatica"
+ },
+ "UPDATE_BUTTON": "Aggiorna",
+ "MESSAGE_LABEL": "Messaggio di risoluzione personalizzato",
+ "MESSAGE_PLACEHOLDER": "La conversazione è stata contrassegnata come risolta dal sistema a causa di 15 giorni d'inattività",
+ "MESSAGE_HELP": "Questo messaggio viene inviato al cliente quando una conversazione viene risolta automaticamente dal sistema a causa di inattività."
},
"FEATURES": {
- "INBOUND_EMAIL_ENABLED": "La continuità della conversazione con le email è abilitata per il tuo account.",
+ "INBOUND_EMAIL_ENABLED": "La continuità della conversazione via email è abilitata per il tuo account.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Puoi ricevere email nel tuo dominio personalizzato ora."
}
},
- "UPDATE_CHATWOOT": "È disponibile un aggiornamento %{latestChatwootVersion} per Chatwoot. Aggiorna la tua istanza.",
+ "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",
- "LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
- "OPEN_BILLING": "Open billing"
+ "PAYMENT_PENDING": "Il tuo pagamento è in sospeso. Aggiorna le informazioni di pagamento per continuare a utilizzare Chatwoot",
+ "UPGRADE": "Aggiorna per continuare a usare Chatwoot",
+ "LIMITS_UPGRADE": "Il tuo account ha superato i limiti di utilizzo, aggiorna il tuo piano per continuare a utilizzare Chatwoot",
+ "OPEN_BILLING": "Apri fatturazione"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "Premi Invio per selezionare",
"ENTER_TO_REMOVE": "Premi Invio per rimuovere",
+ "NO_OPTIONS": "L'elenco è vuoto",
"SELECT_ONE": "Selezionane uno",
- "SELECT": "Select"
+ "SELECT": "Seleziona"
}
},
"NOTIFICATIONS_PAGE": {
@@ -70,73 +147,80 @@
"TITLE": "Notifiche non lette",
"ALL_NOTIFICATIONS": "Visualizza tutte le notifiche",
"LOADING_UNREAD_MESSAGE": "Caricamento notifiche non lette...",
- "EMPTY_MESSAGE": "Non hai notifiche non lette"
+ "EMPTY_MESSAGE": "Non hai nessuna nuova notifica"
},
"LIST": {
"LOADING_MESSAGE": "Caricamento notifiche...",
"404": "Nessuna notifica",
"TABLE_HEADER": [
"Nome",
- "Numero di telefono",
+ "Numero di Telefono",
"Conversazioni",
- "Ultimo contattato"
+ "Ultimo Contatto"
]
},
"TYPE_LABEL": {
"conversation_creation": "Nuova conversazione",
"conversation_assignment": "Conversazione assegnata",
- "assigned_conversation_new_message": "Nuovo messaggio",
- "participating_conversation_new_message": "Nuovo messaggio",
- "conversation_mention": "Menzione"
+ "assigned_conversation_new_message": "Nuovo Messaggio",
+ "participating_conversation_new_message": "Nuovo Messaggio",
+ "conversation_mention": "Menzione",
+ "sla_missed_first_response": "SLA Mancata",
+ "sla_missed_next_response": "SLA Mancata",
+ "sla_missed_resolution": "SLA Mancata"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Riconnessione...",
+ "RECONNECT_SUCCESS": "Riconnesso"
},
"BUTTON": {
"REFRESH": "Aggiorna"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Cerca o salta a",
+ "SEARCH_PLACEHOLDER": "Cerca o vai a",
+ "SNOOZE_PLACEHOLDER": "Digita un momento, ad esempio domani, tra 2 ore, venerdì prossimo, il 15 gennaio, ecc...",
"SECTIONS": {
"GENERAL": "Generale",
- "REPORTS": "Rapporti",
- "CONVERSATION": "Conversazioni",
+ "REPORTS": "Report",
+ "CONVERSATION": "Conversazione",
+ "BULK_ACTIONS": "Azioni Bulk",
"CHANGE_ASSIGNEE": "Cambia assegnatario",
- "CHANGE_PRIORITY": "Change Priority",
+ "CHANGE_PRIORITY": "Cambia Priorità",
"CHANGE_TEAM": "Cambia Team",
- "SNOOZE_CONVERSATION": "Posticipa conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa Conversazione",
"ADD_LABEL": "Aggiungi etichetta alla conversazione",
"REMOVE_LABEL": "Rimuovi etichetta dalla conversazione",
"SETTINGS": "Impostazioni",
"AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "APPEARANCE": "Aspetto",
+ "SNOOZE_NOTIFICATION": "Posticipa Notifica"
},
"COMMANDS": {
- "GO_TO_CONVERSATION_DASHBOARD": "Vai alla dashboard Conversazioni",
- "GO_TO_CONTACTS_DASHBOARD": "Vai alla dashboard Contatti",
- "GO_TO_REPORTS_OVERVIEW": "Vai alla panoramica dei report",
- "GO_TO_CONVERSATION_REPORTS": "Vai ai report della conversazione",
- "GO_TO_AGENT_REPORTS": "Vai ai report degli agenti",
- "GO_TO_LABEL_REPORTS": "Vai ai report delle etichette",
- "GO_TO_INBOX_REPORTS": "Vai ai report delle caselle",
- "GO_TO_TEAM_REPORTS": "Vai ai report dei team",
- "GO_TO_SETTINGS_AGENTS": "Vai alle impostazioni dell'agente",
- "GO_TO_SETTINGS_TEAMS": "Vai alle impostazioni del team",
- "GO_TO_SETTINGS_INBOXES": "Vai alle impostazioni delle caselle",
- "GO_TO_SETTINGS_LABELS": "Vai alle impostazioni delle etichette",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Vai alle impostazioni delle risposte predefinite",
- "GO_TO_SETTINGS_APPLICATIONS": "Vai alle impostazioni dell'applicazione",
- "GO_TO_SETTINGS_ACCOUNT": "Vai alle impostazioni dell'account",
- "GO_TO_SETTINGS_PROFILE": "Vai alle impostazioni del profilo",
+ "GO_TO_CONVERSATION_DASHBOARD": "Vai alla Dashboard Conversazioni",
+ "GO_TO_CONTACTS_DASHBOARD": "Vai alla Dashboard Contatti",
+ "GO_TO_REPORTS_OVERVIEW": "Vai alla Panoramica dei Report",
+ "GO_TO_CONVERSATION_REPORTS": "Vai ai Report delle Conversazioni",
+ "GO_TO_AGENT_REPORTS": "Vai ai Report degli Operatori",
+ "GO_TO_LABEL_REPORTS": "Vai ai Report delle Etichette",
+ "GO_TO_INBOX_REPORTS": "Vai ai Report delle Inbox",
+ "GO_TO_TEAM_REPORTS": "Vai ai Report dei Team",
+ "GO_TO_SETTINGS_AGENTS": "Vai alle Impostazioni Operatore",
+ "GO_TO_SETTINGS_TEAMS": "Vai alle Impostazioni Team",
+ "GO_TO_SETTINGS_INBOXES": "Vai alle Impostazioni Inbox",
+ "GO_TO_SETTINGS_LABELS": "Vai alle Impostazioni Etichette",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Vai alle Impostazioni delle Risposte Predefinite",
+ "GO_TO_SETTINGS_APPLICATIONS": "Vai alle Impostazioni Applicazione",
+ "GO_TO_SETTINGS_ACCOUNT": "Vai alle Impostazioni Account",
+ "GO_TO_SETTINGS_PROFILE": "Vai alle Impostazioni Profilo",
"GO_TO_NOTIFICATIONS": "Vai alle notifiche",
"ADD_LABELS_TO_CONVERSATION": "Aggiungi etichetta alla conversazione",
- "ASSIGN_AN_AGENT": "Assegna un agente",
+ "ASSIGN_AN_AGENT": "Assegna un operatore",
"AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
+ "ASSIGN_PRIORITY": "Assegna priorità",
"ASSIGN_A_TEAM": "Assegna un team",
"MUTE_CONVERSATION": "Silenzia conversazione",
"UNMUTE_CONVERSATION": "Riattiva conversazione",
@@ -144,25 +228,25 @@
"REOPEN_CONVERSATION": "Riapri la conversazione",
"RESOLVE_CONVERSATION": "Risolvi la conversazione",
"SEND_TRANSCRIPT": "Invia una trascrizione email",
- "SNOOZE_CONVERSATION": "Posticipa conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa Conversazione",
"UNTIL_NEXT_REPLY": "Fino alla prossima risposta",
"UNTIL_NEXT_WEEK": "Fino alla prossima settimana",
"UNTIL_TOMORROW": "Fino a domani",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "UNTIL_NEXT_MONTH": "Fino al prossimo mese",
+ "AN_HOUR_FROM_NOW": "Fino a un'ora da adesso",
+ "UNTIL_CUSTOM_TIME": "Personalizza...",
+ "CHANGE_APPEARANCE": "Modifica Aspetto",
+ "LIGHT_MODE": "Chiaro",
+ "DARK_MODE": "Scuro",
+ "SYSTEM_MODE": "Sistema",
+ "SNOOZE_NOTIFICATION": "Posticipa Notifica"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Loading Dashboard App..."
+ "LOADING_MESSAGE": "Caricamento Dashboard App..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "Oppure",
"CLICK_HERE": "clicca qui"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/helpCenter.json b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
index d86288338..e2ebb85d5 100644
--- a/app/javascript/dashboard/i18n/locale/it/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/it/helpCenter.json
@@ -1,31 +1,36 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Crea portali di assistenza self-service per i tuoi clienti. Aiutali a trovare rapidamente le risposte che cercano, senza attese. Semplifica le richieste, migliora l'efficienza degli operatori e migliora l'assistenza clienti.",
+ "CREATE_PORTAL_BUTTON": "Crea Portale"
+ },
"HEADER": {
"FILTER": "Filtra per",
"SORT": "Ordina per",
- "LOCALE": "Locale",
+ "LOCALE": "Lingua",
"SETTINGS_BUTTON": "Impostazioni",
- "NEW_BUTTON": "Nuovo articolo",
+ "NEW_BUTTON": "Nuovo Articolo",
"DROPDOWN_OPTIONS": {
"PUBLISHED": "Pubblicato",
"DRAFT": "Bozza",
"ARCHIVED": "Archiviato"
},
"TITLES": {
- "ALL_ARTICLES": "Tutti gli articoli",
- "MINE": "I miei articoli",
- "DRAFT": "Articoli in bozza",
- "ARCHIVED": "Articoli archiviati"
+ "ALL_ARTICLES": "Tutti Gli Articoli",
+ "MINE": "I Miei Articoli",
+ "DRAFT": "Articoli in Bozza",
+ "ARCHIVED": "Articoli Archiviati"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Seleziona lingua",
+ "PLACEHOLDER": "Seleziona lingua",
+ "NO_RESULT": "Nessuna lingua trovata",
+ "SEARCH_PLACEHOLDER": "Cerca lingua"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "Tutti gli articoli",
+ "ALL_ARTICLES": "Tutti gli Articoli",
"PUBLISH_BUTTON": "Pubblica",
"MOVE_TO_ARCHIVE_BUTTON": "Sposta nell'archivio",
"PREVIEW": "Anteprima",
@@ -39,15 +44,16 @@
"IMAGE_UPLOAD": {
"TITLE": "Carica immagine",
"UPLOADING": "Caricamento...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "Immagine caricata correttamente",
+ "ERROR": "Errore nel caricamento dell'immagine",
+ "UN_AUTHORIZED_ERROR": "Non sei autorizzato a caricare immagini",
+ "ERROR_FILE_SIZE": "La dimensione dell'immagine deve essere inferiore a {size}MB",
+ "ERROR_FILE_FORMAT": "Il formato immagine deve essere jpg, jpeg o png",
+ "ERROR_FILE_DIMENSIONS": "Le dimensioni dell'immagine dovrebbero essere inferiori a 2000 x 2000"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Impostazioni articolo",
+ "TITLE": "Impostazioni Articolo",
"FORM": {
"CATEGORY": {
"LABEL": "Categoria",
@@ -82,29 +88,29 @@
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "Senza categoria",
+ "SEARCH_RESULTS": "Risultati ricerca per {query}",
+ "EMPTY_TEXT": "Cerca articoli da inserire nelle risposte.",
+ "SEARCH_LOADER": "Ricerca...",
+ "INSERT_ARTICLE": "Inserisci",
+ "NO_RESULT": "Nessun articolo trovato",
+ "COPY_LINK": "Copia il link dell'articolo negli appunti",
+ "OPEN_LINK": "Apri articolo in una nuova scheda",
+ "PREVIEW_LINK": "Anteprima articolo"
},
"PORTAL": {
"HEADER": "Portali",
"DEFAULT": "Predefinito",
- "NEW_BUTTON": "Nuovo portale",
+ "NEW_BUTTON": "Nuovo Portale",
"ACTIVE_BADGE": "attivo",
"CHOOSE_LOCALE_LABEL": "Scegli una lingua",
- "LOADING_MESSAGE": "Caricamento dei portali...",
+ "LOADING_MESSAGE": "Caricamento portali...",
"ARTICLES_LABEL": "articoli",
"NO_PORTALS_MESSAGE": "Non ci sono portali disponibili",
"ADD_NEW_LOCALE": "Aggiungi una nuova lingua",
"POPOVER": {
"TITLE": "Portali",
- "PORTAL_SETTINGS": "Impostazioni del portale",
+ "PORTAL_SETTINGS": "Impostazioni Portale",
"SUBTITLE": "Hai più portali e puoi avere diverse lingue per ogni portale.",
"CANCEL_BUTTON_LABEL": "Annulla",
"CHOOSE_LOCALE_BUTTON": "Scegli lingua"
@@ -135,7 +141,7 @@
"NAME": "Nome lingua",
"CODE": "Codice lingua",
"ARTICLE_COUNT": "N° di articoli",
- "CATEGORIES": "N. di categorie",
+ "CATEGORIES": "N° di categorie",
"SWAP": "Scambia",
"DELETE": "Elimina",
"DEFAULT_LOCALE": "Predefinito"
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portale eliminato con successo",
"DELETE_ERROR": "Errore durante l'eliminazione del portale"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "Istruzioni CNAME inviate correttamente",
+ "ERROR_MESSAGE": "Errore nell'invio delle istruzioni CNAME"
+ }
}
},
"EDIT": {
@@ -175,7 +187,7 @@
"TABLE": {
"NAME": "Nome",
"DESCRIPTION": "Descrizione",
- "LOCALE": "Locale",
+ "LOCALE": "Lingua",
"ARTICLE_COUNT": "N° di articoli",
"ACTION_BUTTON": {
"EDIT": "Modifica categoria",
@@ -189,36 +201,30 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informazioni del centro assistenza",
- "route": "new_portal_information",
- "body": "Informazioni di base sul portale",
- "CREATE_BASIC_SETTING_BUTTON": "Crea impostazioni di base del portale"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informazioni del centro assistenza",
+ "BODY": "Informazioni di base sul portale"
},
- {
- "title": "Personalizzazione del centro assistenza",
- "route": "portal_customization",
- "body": "Personalizza portale",
- "UPDATE_PORTAL_BUTTON": "Aggiorna impostazioni del portale"
+ "CUSTOMIZATION": {
+ "TITLE": "Personalizzazione del centro assistenza",
+ "BODY": "Personalizza portale"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "È tutto pronto!",
- "FINISH": "Termina"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "È tutto pronto!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Indietro",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Crea portale",
- "TITLE": "Informazioni del centro assistenza",
+ "HEADER": "Crea Portale",
+ "TITLE": "Informazioni Help Center",
"CREATE_BASIC_SETTING_BUTTON": "Crea impostazioni di base del portale"
},
"CUSTOMIZATION_PAGE": {
"HEADER": "Personalizzazione del portale",
- "TITLE": "Personalizzazione del centro assistenza",
+ "TITLE": "Personalizzazione help center",
"UPDATE_PORTAL_BUTTON": "Aggiorna impostazioni del portale"
},
"FINISH_PAGE": {
@@ -231,9 +237,9 @@
"LABEL": "Logo",
"UPLOAD_BUTTON": "Carica logo",
"HELP_TEXT": "Questo logo verrà visualizzato nell'intestazione del portale.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "IMAGE_UPLOAD_SUCCESS": "Logo caricato correttamente",
+ "IMAGE_UPLOAD_ERROR": "Logo eliminato correttamente",
+ "IMAGE_DELETE_ERROR": "Errore durante l'eliminazione del logo"
},
"NAME": {
"LABEL": "Nome",
@@ -249,14 +255,14 @@
"DOMAIN": {
"LABEL": "Dominio personalizzato",
"PLACEHOLDER": "Dominio personalizzato del portale",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "HELP_TEXT": "Aggiungi solo se vuoi usare un dominio personalizzato per i tuoi portali. Per es.: {exampleURL}",
+ "ERROR": "Inserisci un URL di dominio valido"
},
"HOME_PAGE_LINK": {
- "LABEL": "Link pagina iniziale",
+ "LABEL": "Link Pagina Iniziale",
"PLACEHOLDER": "Link della pagina iniziale del portale",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "HELP_TEXT": "Il link utilizzato per tornare dal portale alla home page. Per es.: {exampleURL}",
+ "ERROR": "Inserisci un URL valido per la pagina iniziale"
},
"THEME_COLOR": {
"LABEL": "Colore tema del portale",
@@ -286,7 +292,7 @@
"SUB_TITLE": "Questo aggiunge un nuova lingua alla tua lista di traduzioni disponibili.",
"PORTAL": "Portale",
"LOCALE": {
- "LABEL": "Locale",
+ "LABEL": "Lingua",
"PLACEHOLDER": "Scegli una lingua",
"ERROR": "Lingua richiesta"
},
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Lingua rimossa dal portale con successo",
"ERROR_MESSAGE": "Impossibile rimuovere la lingua dal portale. Riprova."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -319,13 +337,13 @@
"HEADERS": {
"TITLE": "Titolo",
"CATEGORY": "Categoria",
- "READ_COUNT": "Views",
+ "READ_COUNT": "Visualizzazioni",
"STATUS": "Stato",
"LAST_EDITED": "Ultima modifica"
},
"COLUMNS": {
"BY": "di",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "AUTHOR_NOT_AVAILABLE": "Autore non disponibile"
}
},
"EDIT_ARTICLE": {
@@ -339,7 +357,7 @@
"PUBLISH_ARTICLE": {
"API": {
"ERROR": "Errore durante la pubblicazione dell'articolo",
- "SUCCESS": "Article published successfully"
+ "SUCCESS": "Articolo pubblicato correttamente"
}
},
"ARCHIVE_ARTICLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Articolo archiviato con successo"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Errore durante il salvataggio in bozza dell'articolo",
+ "SUCCESS": "Articolo salvato in bozza"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Errore durante l'eliminazione dell'articolo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Impossibile riordinare gli articoli. Riprova."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Impossibile riordinare le categorie. Riprova."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Si prega di aggiungere l'intestazione e il contenuto dell'articolo quindi solo è possibile aggiornare le impostazioni"
},
@@ -379,7 +413,7 @@
"NAME": {
"LABEL": "Nome",
"PLACEHOLDER": "Nome categoria",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Il nome e l'icona della categoria saranno usati nel portale pubblico per categorizzare gli articoli.",
"ERROR": "Il nome è obbligatorio"
},
"SLUG": {
@@ -410,7 +444,7 @@
"NAME": {
"LABEL": "Nome",
"PLACEHOLDER": "Nome categoria",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "HELP_TEXT": "Il nome e l'icona della categoria saranno usati nel portale pubblico per categorizzare gli articoli.",
"ERROR": "Il nome è obbligatorio"
},
"SLUG": {
@@ -441,46 +475,484 @@
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
+ "TITLE": "Cerca articoli",
+ "PLACEHOLDER": "Cerca articoli",
+ "NO_RESULT": "Nessun articolo trovato",
+ "SEARCHING": "Ricerca...",
"SEARCH_BUTTON": "Cerca",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "Inserisci link",
+ "IFRAME_ERROR": "URL vuoto o non valido. Impossibile visualizzare il contenuto.",
+ "OPEN_ARTICLE_SEARCH": "Inserisci articolo dall'Help Center",
+ "SUCCESS_ARTICLE_INSERTED": "Articolo inserito correttamente",
+ "PREVIEW_LINK": "Anteprima articolo",
"CANCEL": "Chiudi",
"BACK": "Indietro",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "Torna ai risultati"
},
"UPGRADE_PAGE": {
"TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "DESCRIPTION": "Crea portali self-service user-friendly. Aiuta i tuoi utenti ad accedere agli articoli e ottieni supporto 24/7. Aggiorna il tuo abbonamento per abilitare questa funzionalità.",
+ "SELF_HOSTED_DESCRIPTION": "Crea portali self-service user-friendly. Aiuta i tuoi utenti ad accedere agli articoli e ottieni supporto 24/7. Contatta l'amministratore per abilitare questa funzione.",
"BUTTON": {
"LEARN_MORE": "Scopri di più",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "Aggiorna"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Più portali",
+ "DESCRIPTION": "Crea più portali help center per diversi prodotti utilizzando lo stesso account."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Supporto completo per le lingue",
+ "DESCRIPTION": "Localizza il portale nella tua lingua. Supportiamo tutte le lingue e permettiamo traduzioni per ogni articolo."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "Design SEO-friendly",
+ "DESCRIPTION": "Personalizza i tuoi meta tag per migliorare la tua visibilità sui motori di ricerca con le nostre pagine SEO-friendly."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "Supporto API completo",
+ "DESCRIPTION": "Utilizzare il portale come un headless CMS con front-end di terze parti utilizzando le nostre API."
}
}
+ },
+ "LOADING": "Caricamento...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} visualizzazione | {count} visualizzazioni",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Pubblica",
+ "DRAFT": "Bozza",
+ "ARCHIVE": "Archivia",
+ "TRANSLATE": "Traduci",
+ "DELETE": "Elimina"
+ },
+ "STATUS": {
+ "DRAFT": "Bozza",
+ "PUBLISHED": "Pubblicato",
+ "ARCHIVED": "Archiviato"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Senza categoria"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Tutti gli articoli",
+ "MINE": "Mie",
+ "DRAFT": "Bozza",
+ "PUBLISHED": "Pubblicato",
+ "ARCHIVED": "Archiviato"
+ },
+ "CATEGORY": {
+ "ALL": "Tutte le categorie"
+ },
+ "LOCALE": {
+ "ALL": "Tutte le lingue"
+ },
+ "NEW_ARTICLE": "Nuovo articolo"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Scrivi un articolo",
+ "SUBTITLE": "Scrivi un articolo, iniziamo!",
+ "BUTTON_LABEL": "Nuovo articolo"
+ },
+ "MINE": {
+ "TITLE": "Non hai scritto nessun articolo qui",
+ "SUBTITLE": "Tutti gli articoli scritti da te appaiono qui per un rapido accesso."
+ },
+ "DRAFT": {
+ "TITLE": "Non ci sono articoli nelle bozze",
+ "SUBTITLE": "Gli articoli in bozza appariranno qui"
+ },
+ "PUBLISHED": {
+ "TITLE": "Non ci sono articoli pubblicati",
+ "SUBTITLE": "Gli articoli pubblicati appariranno qui"
+ },
+ "ARCHIVED": {
+ "TITLE": "Non ci sono articoli nell'archivio",
+ "SUBTITLE": "Gli articoli archiviati non vengono visualizzati sul portale, puoi usarli per contrassegnare pagine obsolete o deprecate"
+ },
+ "CATEGORY": {
+ "TITLE": "Non ci sono articoli in questa categoria",
+ "SUBTITLE": "Gli articoli in questa categoria appariranno qui"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Traduci articolo | Traduci {count} articoli",
+ "DESCRIPTION": "Traduci l'articolo selezionato in un'altra lingua. | Traduci gli articoli selezionati in un'altra lingua.",
+ "LOCALE_LABEL": "Lingua di destinazione",
+ "LOCALE_PLACEHOLDER": "Seleziona una lingua",
+ "CATEGORY_LABEL": "Categoria di destinazione",
+ "CATEGORY_PLACEHOLDER": "Seleziona una categoria",
+ "OPTIONAL": "(opzionale)",
+ "CONFIRM": "Traduci",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "SELECTED_COUNT": "{count} selezionate",
+ "CLEAR_SELECTION": "Annulla selezione",
+ "TRANSLATE_BUTTON": "Traduci",
+ "CONFIRM_OVERWRITE": "Sovrascrivi e traduci",
+ "DUPLICATE_WARNING": "Esiste già una traduzione per questo articolo nella lingua selezionata. | Esistono già delle traduzioni per {count} articoli nella lingua selezionata.",
+ "DUPLICATE_CONFIRM_HINT": "Clicca Traduci di nuovo per sovrascrivere la traduzione esistente.",
+ "API": {
+ "SUCCESS_MESSAGE": "Traduzione in corso. L'articolo apparirà in bozza una volta pronto.",
+ "ERROR_MESSAGE": "Impossibile avviare la traduzione. Riprova."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Pubblica",
+ "DRAFT": "Bozza",
+ "ARCHIVE": "Archivia",
+ "TRANSLATE": "Traduci",
+ "MOVE_TO_CATEGORY": "Categoria",
+ "DELETE": "Elimina",
+ "STATUS_SUCCESS": "Articoli aggiornati correttamente",
+ "STATUS_ERROR": "Impossibile aggiornare gli articoli",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Elimina articolo | Elimina {count} articoli",
+ "DELETE_CONFIRM_DESCRIPTION": "Questo eliminerà definitivamente l'articolo selezionato. Questa azione non può essere annullata. | Questo eliminerà definitivamente {count} articoli selezionati. Questa azione non può essere annullata.",
+ "DELETE_CONFIRM": "Elimina",
+ "DELETE_SUCCESS": "Articoli eliminati correttamente",
+ "DELETE_ERROR": "Impossibile eliminare gli articoli"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nuova categoria",
+ "EDIT_CATEGORY": "Modifica categoria",
+ "CATEGORIES_COUNT": "{n} categoria | {n} categorie",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categorie ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articoli) | {categoryName} ({categoryCount} articolo)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nessuna categoria trovata",
+ "SUBTITLE": "Le categorie appariranno qui. Puoi aggiungere una categoria cliccando sul pulsante 'Nuova Categoria'."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} articolo | {count} articoli"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria creata con successo",
+ "ERROR_MESSAGE": "Impossibile creare la categoria"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria aggiornata con successo",
+ "ERROR_MESSAGE": "Impossibile aggiornare la categoria"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria eliminata con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare la categoria"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Crea categoria",
+ "EDIT": "Modifica categoria",
+ "DESCRIPTION": "Modificare una categoria aggiornerà la categoria nel portale pubblico.",
+ "PORTAL": "Portale",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Nome categoria",
+ "ERROR": "Il nome è obbligatorio"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug categoria per url",
+ "ERROR": "Slug è obbligatorio",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Fornisci una breve descrizione della categoria.",
+ "ERROR": "La descrizione è obbligatoria"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Crea",
+ "EDIT": "Aggiorna",
+ "CANCEL": "annulla"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Nessuna lingua disponibile | {n} lingua | {n} lingue",
+ "NEW_LOCALE_BUTTON_TEXT": "Nuova lingua",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} articolo | {count} articoli",
+ "CATEGORIES_COUNT": "{count} categoria | {count} categorie",
+ "DEFAULT": "Predefinito",
+ "DRAFT": "Bozza",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Imposta predefinito",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Elimina"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Aggiungi una nuova lingua",
+ "DESCRIPTION": "Seleziona la lingua in cui questo articolo verrà scritto. Questo sarà aggiunto alla tua lista di traduzioni e puoi aggiungerne di più in seguito.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Seleziona lingua..."
+ },
+ "STATUS": {
+ "LABEL": "Stato",
+ "OPTIONS": {
+ "LIVE": "Pubblicato",
+ "DRAFT": "Bozza"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Lingua aggiunta con successo",
+ "ERROR_MESSAGE": "Impossibile aggiungere la lingua. Riprova."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Salvataggio...",
+ "SAVED": "Salvato"
+ },
+ "PREVIEW": "Anteprima",
+ "PUBLISH": "Pubblica",
+ "DRAFT": "Bozza",
+ "ARCHIVE": "Archivia",
+ "BACK_TO_ARTICLES": "Torna agli articoli"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Altre proprietà",
+ "UNCATEGORIZED": "Senza categoria",
+ "EDITOR_PLACEHOLDER": "Scrivi qualcosa..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Proprietà articolo",
+ "META_DESCRIPTION": "Descrizione meta",
+ "META_DESCRIPTION_PLACEHOLDER": "Aggiungi descrizione meta",
+ "META_TITLE": "Titolo meta",
+ "META_TITLE_PLACEHOLDER": "Aggiungi titolo meta",
+ "META_TAGS": "Tag meta",
+ "META_TAGS_PLACEHOLDER": "Aggiungi tag meta"
+ },
+ "API": {
+ "ERROR": "Errore durante il salvataggio dell'articolo"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Nuovo portale",
+ "PORTALS": "Portali",
+ "CREATE_PORTAL": "Crea e gestisci più portali",
+ "ARTICLES": "articoli",
+ "DOMAIN": "dominio",
+ "PORTAL_NAME": "Nome del portale"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Crea nuovo portale",
+ "DESCRIPTION": "Dai un nome al tuo portale e crea uno slug URL user-friendly. Puoi modificare entrambi in seguito nelle impostazioni.",
+ "CONFIRM_BUTTON_LABEL": "Crea",
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Guida Utente | Chatwoot",
+ "MESSAGE": "Scegli un nome per il tuo portale.",
+ "ERROR": "Nome richiesto"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug è obbligatorio",
+ "FORMAT_ERROR": "Inserisci uno slug valido, ad esempio: guida-utente"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Impossibile caricare l'immagine! Riprova",
+ "IMAGE_UPLOAD_SUCCESS": "Immagine aggiunta con successo. Clicca su salva le modifiche per salvare il logo",
+ "IMAGE_DELETE_SUCCESS": "Logo eliminato correttamente",
+ "IMAGE_DELETE_ERROR": "Impossibile eliminare il logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "La dimensione dell'immagine deve essere inferiore a {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Nome del portale",
+ "ERROR": "Nome richiesto"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Testo intestazione",
+ "PLACEHOLDER": "Testo intestazione del portale"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Titolo della pagina",
+ "PLACEHOLDER": "Titolo pagina del portale"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Link pagina iniziale",
+ "PLACEHOLDER": "Link della pagina iniziale del portale",
+ "ERROR": "Inserisci un URL valido. Il link della Home page deve iniziare con 'http://' o 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug del portale"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Widget live chat",
+ "PLACEHOLDER": "Seleziona widget live chat",
+ "HELP_TEXT": "Seleziona un widget di live chat che apparirà nel tuo help center",
+ "NONE_OPTION": "Nessun widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Colore del brand"
+ },
+ "SAVE_CHANGES": "Salva modifiche"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Dominio personalizzato",
+ "LABEL": "Dominio personalizzato:",
+ "DESCRIPTION": "Puoi ospitare il tuo portale su un dominio personalizzato. Per esempio, se il tuo sito web è tuodominio.com e vuoi che il tuo portale sia disponibile su docs.tuodominio.com, semplicemente inseriscilo in questo campo.",
+ "STATUS_DESCRIPTION": "Il tuo portale personalizzato inizierà a funzionare non appena verrà verificato.",
+ "PLACEHOLDER": "Dominio personalizzato del portale",
+ "EDIT_BUTTON": "Modifica",
+ "ADD_BUTTON": "Aggiungi dominio personalizzato",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "In attesa di verifica",
+ "ERROR": "Verifica non riuscita"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Aggiungi dominio personalizzato",
+ "EDIT_HEADER": "Modifica dominio personalizzato",
+ "ADD_CONFIRM_BUTTON_LABEL": "Aggiungi dominio",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Aggiorna dominio",
+ "LABEL": "Dominio personalizzato",
+ "PLACEHOLDER": "Dominio personalizzato del portale",
+ "ERROR": "Il dominio personalizzato è obbligatorio",
+ "FORMAT_ERROR": "Inserisci un URL di dominio valido, ad esempio: docs.tuodominio.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "Configurazione DNS",
+ "DESCRIPTION": "Accedi al tuo provider DNS e aggiungi un record CNAME per subdominio che punta a chatwoot.help",
+ "COPY": "CNAME copiato",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Invia istruzioni",
+ "DESCRIPTION": "Se preferisci avere qualcuno dal tuo team di sviluppo per gestire questo passaggio, puoi inserire l'indirizzo email qui sotto, e invieremo loro le istruzioni richieste.",
+ "PLACEHOLDER": "Inserisci il loro indirizzo email",
+ "ERROR": "Inserisci un indirizzo email valido",
+ "SEND_BUTTON": "Invia"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Elimina {portalName}",
+ "HEADER": "Elimina portale",
+ "DESCRIPTION": "Elimina definitivamente questo portale. Questa azione è irreversibile",
+ "DIALOG": {
+ "HEADER": "Sei sicuro di voler eliminare {portalName}?",
+ "DESCRIPTION": "Si tratta di un'azione permanente che non può essere annullata.",
+ "CONFIRM_BUTTON_LABEL": "Elimina"
+ }
+ },
+ "EDIT_CONFIGURATION": "Modifica configurazione"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Aspetto",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Rimuovi"
+ },
+ "SAVE": "Salva modifiche"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portale creato con successo",
+ "ERROR_MESSAGE": "Impossibile creare il portale"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portale aggiornato con successo",
+ "ERROR_MESSAGE": "Impossibile aggiornare il portale"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Carica Documento PDF",
+ "DESCRIPTION": "Carica un documento PDF per generare automaticamente FAQ utilizzando AI",
+ "DRAG_DROP_TEXT": "Trascina il tuo file PDF qui, o fai clic per selezionare",
+ "SELECT_FILE": "Seleziona File PDF",
+ "ADDITIONAL_CONTEXT_LABEL": "Contesto Aggiuntivo (Opzionale)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Fornisci contesto o istruzioni aggiuntive per la generazione delle FAQ...",
+ "UPLOADING": "Caricamento...",
+ "UPLOAD": "Carica ed elabora",
+ "CANCEL": "Annulla",
+ "ERROR_INVALID_TYPE": "Seleziona un file PDF valido",
+ "ERROR_FILE_TOO_LARGE": "La dimensione del file deve essere inferiore a 512MB",
+ "ERROR_UPLOAD_FAILED": "Impossibile caricare il PDF. Riprova."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "Documenti PDF",
+ "DESCRIPTION": "Gestisci i documenti PDF caricati e genera FAQ da essi",
+ "UPLOAD_PDF": "Carica PDF",
+ "UPLOAD_FIRST_PDF": "Carica il tuo primo PDF",
+ "UPLOADED_BY": "Caricato da",
+ "GENERATE_FAQS": "Genera FAQ",
+ "GENERATING": "Generazione...",
+ "CONFIRM_DELETE": "Sei sicuro di voler eliminare {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "Nessun documento PDF",
+ "DESCRIPTION": "Carica documenti PDF per generare automaticamente FAQ utilizzando AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Pronto",
+ "PROCESSING": "Elaborazione",
+ "PROCESSED": "Completata",
+ "FAILED": "Non Riuscito"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Generazione Contenuti",
+ "DESCRIPTION": "Carica documenti PDF per generare automaticamente contenuti FAQ utilizzando AI",
+ "UPLOAD_TITLE": "Carica Documento PDF",
+ "DRAG_DROP": "Trascina il tuo file PDF qui, o fai clic per selezionare",
+ "SELECT_FILE": "Seleziona File PDF",
+ "UPLOADING": "Elaborazione documento...",
+ "UPLOAD_SUCCESS": "Documento elaborato con successo!",
+ "UPLOAD_ERROR": "Impossibile caricare il documento. Riprova.",
+ "INVALID_FILE_TYPE": "Seleziona un file PDF valido",
+ "FILE_TOO_LARGE": "La dimensione del file deve essere inferiore a 512MB",
+ "GENERATED_CONTENT": "Contenuti FAQ Generati",
+ "PUBLISH_SELECTED": "Pubblica Selezionati",
+ "PUBLISHING": "Pubblicazione...",
+ "FROM_DOCUMENT": "Dal documento",
+ "NO_CONTENT": "Nessun contenuto generato disponibile. Carica un documento PDF per iniziare.",
+ "LOADING": "Caricamento contenuti generati..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/inbox.json b/app/javascript/dashboard/i18n/locale/it/inbox.json
index 42c15b093..997f34f8d 100644
--- a/app/javascript/dashboard/i18n/locale/it/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/it/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Casella",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "Tutte le notifiche caricate 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Posticipato fino a domani",
- "SNOOZED_UNTIL_NEXT_WEEK": "Posticipato fino alla prossima settimana"
+ "TITLE": "La mia Inbox",
+ "DISPLAY_DROPDOWN": "Visualizza",
+ "LOADING": "Caricamento notifiche",
+ "404": "Non ci sono notifiche attive in questo gruppo.",
+ "NO_NOTIFICATIONS": "Nessuna notifica",
+ "NOTE": "Notifiche da tutte le Inbox",
+ "NO_MESSAGES_AVAILABLE": "Oops! Impossibile recuperare i messaggi",
+ "SNOOZED_UNTIL": "Posticipata fino a",
+ "SNOOZED_UNTIL_TOMORROW": "Posticipata fino a domani",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Posticipata fino alla prossima settimana"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "Posticipa notifica",
+ "DELETE": "Elimina notifica",
+ "BACK": "Indietro"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "Sei stato menzionato in una conversazione",
+ "CONVERSATION_CREATION": "Nuova conversazione creata",
+ "CONVERSATION_ASSIGNMENT": "Ti è stata assegnata una conversazione",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nuovo messaggio in una conversazione assegnata",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nuovo messaggio in una conversazione a cui partecipi",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Menzioni",
+ "CONVERSATION_ASSIGNMENT": "Assegnate a te",
+ "CONVERSATION_CREATION": "Nuova Conversazione",
+ "SLA_MISSED_FIRST_RESPONSE": "Violazione SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Violazione SLA",
+ "SLA_MISSED_RESOLUTION": "Violazione SLA",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nuovo messaggio",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nuovo messaggio",
+ "SNOOZED_UNTIL": "Posticipata per {time}",
+ "SNOOZED_ENDS": "Posticipo terminato"
+ },
+ "NO_CONTENT": "Nessun contenuto disponibile",
"MENU_ITEM": {
- "MARK_AS_READ": "Segna come letto",
- "MARK_AS_UNREAD": "Segna come non letto",
+ "MARK_AS_READ": "Segna come letta",
+ "MARK_AS_UNREAD": "Segna come da leggere",
"SNOOZE": "Posticipa",
"DELETE": "Elimina",
- "MARK_ALL_READ": "Segna tutto come letto",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "MARK_ALL_READ": "Segna tutte come lette",
+ "DELETE_ALL": "Elimina tutte",
+ "DELETE_ALL_READ": "Elimina tutte le lette"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "Ordina",
+ "DISPLAY": "Visualizza:",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
+ "NEWEST": "Più Recenti",
+ "OLDEST": "Meno Recenti",
"PRIORITY": "Priorità"
},
"DISPLAY_OPTIONS": {
- "SNOOZED": "Posticipato",
- "READ": "Leggi",
+ "SNOOZED": "Posticipate",
+ "READ": "Lette",
"LABELS": "Etichette",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "ID Conversazione"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "Notifica segnata come letta",
+ "MARK_AS_UNREAD": "Notifica segnata come non letta",
+ "SNOOZE": "Notifica posticipata",
+ "DELETE": "Notifica eliminata",
+ "MARK_ALL_READ": "Tutte le notifiche segnate come lette",
+ "DELETE_ALL": "Tutte le notifiche eliminate",
+ "DELETE_ALL_READ": "Tutte le notifiche lette cancellate"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Riautorizzazione Necessaria",
+ "DESCRIPTION": "La tua connessione a WhatsApp è scaduta. Ti preghiamo di riconnetterti per continuare a ricevere e inviare messaggi.",
+ "BUTTON_TEXT": "Riconnetti WhatsApp",
+ "LOADING_FACEBOOK": "Caricamento del Facebook SDK...",
+ "SUCCESS": "WhatsApp riconnesso correttamente",
+ "ERROR": "Impossibile riconnettere WhatsApp. Per favore riprova.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID non è configurato. Si prega di contattare l'amministratore.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID non è configurato. Si prega di contattare l'amministratore.",
+ "CONFIGURATION_ERROR": "Errore di configurazione durante la riautorizzazione.",
+ "FACEBOOK_LOAD_ERROR": "Impossibile caricare Facebook SDK. Per favore riprova.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Risoluzione Problemi",
+ "POPUP_BLOCKED": "Assicurati che i pop-up siano permessi per questo sito",
+ "COOKIES": "I cookie di terze parti devono essere abilitati",
+ "ADMIN_ACCESS": "Hai bisogno di accesso amministratore all'account WhatsApp Business"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
index b83dbb547..cbe0960a3 100644
--- a/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/inboxMgmt.json
@@ -1,50 +1,71 @@
{
"INBOX_MGMT": {
- "HEADER": "Posta",
- "SIDEBAR_TXT": "Casella
Quando colleghi un sito web o una pagina facebook a Chatwoot, si chiama Casella. Puoi avere caselle illimitate nel tuo account Chatwoot.
Clicca su Aggiungi Casella per collegare un sito web o una pagina Facebook.
Nella Dashboard, puoi vedere tutte le conversazioni da tutte le tue caselle di posta in un unico posto e rispondere ad esse nella scheda `Conversazioni`.
È anche possibile visualizzare le conversazioni specifiche di una casella facendo clic sul nome della casella nel riquadro sinistro del cruscotto.
",
+ "HEADER": "Inbox",
+ "DESCRIPTION": "Un canale è il mezzo di comunicazione che il cliente usa per interagire con te. Una Inbox è lo spazio in cui gestisci le interazioni di uno specifico canale. Può includere comunicazioni provenienti da diverse fonti, come email, live chat e social media.",
+ "LEARN_MORE": "Scopri di più sulle Inbox",
+ "COUNT": "{n} inbox | {n} inbox",
+ "SEARCH_PLACEHOLDER": "Ricerca Inbox...",
+ "NO_RESULTS": "Nessuna inbox trovata corrispondente alla tua ricerca",
+ "RECONNECTION_REQUIRED": "La tua Inbox è disconnessa. Non riceverai nuovi messaggi finché non la autorizzerai nuovamente.",
+ "CLICK_TO_RECONNECT": "Clicca qui per riconnetterti.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "La registrazione di WhatsApp Business non è completa. Si prega di controllare lo stato del nome visualizzato in Meta Business Manager prima di riconnettersi.",
+ "COMPLETE_REGISTRATION": "Completa Registrazione",
"LIST": {
- "404": "Non ci sono caselle allegate a questo account."
+ "404": "Non ci sono inbox allegate a questo account."
},
- "CREATE_FLOW": [
- {
- "title": "Scegli il canale",
- "route": "Nuovo",
- "body": "Scegli il provider che vuoi integrare con Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Scegli il canale",
+ "BODY": "Scegli il provider che vuoi integrare con Chatwoot."
},
- {
- "title": "Crea casella",
- "route": "Canale",
- "body": "Autentica il tuo account e creare una casella."
+ "INBOX": {
+ "TITLE": "Crea Inbox",
+ "BODY": "Autentica il tuo account e crea una inbox."
},
- {
- "title": "Aggiungi agenti",
- "route": "Inboxes_add_agenti",
- "body": "Aggiungi agenti alla casella creata."
+ "AGENT": {
+ "TITLE": "Aggiungi Operatori",
+ "BODY": "Aggiungi operatori alla inbox creata."
},
- {
- "title": "Voila!",
- "route": "Finitura",
- "body": "Sei pronto per iniziare!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Sei pronto per iniziare!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Nome casella",
- "PLACEHOLDER": "Inserisci il nome della tua casella di posta (ad esempio: Acme Inc)",
- "ERROR": "Inserisci un nome per la casella valido"
+ "LABEL": "Nome Inbox",
+ "PLACEHOLDER": "Inserisci il nome della tua Inbox (ad esempio: Acme Srl)",
+ "ERROR": "Inserisci un nome Inbox valido"
},
"WEBSITE_NAME": {
- "LABEL": "Nome sito web",
- "PLACEHOLDER": "Inserisci il nome del tuo sito web (ad esempio: Acme Inc)"
+ "LABEL": "Nome Sito Web",
+ "PLACEHOLDER": "Inserisci il nome del tuo sito web (ad esempio: Acme Srl)"
},
"FB": {
- "HELP": "PS: Accedendo, abbiamo accesso solo ai messaggi della tua pagina. Chatwoot, non potrà accedere ai tuoi messaggi privati.",
- "CHOOSE_PAGE": "Scegli una pagina",
+ "HELP": "PS: Accedendo, abbiamo accesso solo ai messaggi della tua pagina. Chatwoot non potrà accedere ai tuoi messaggi privati.",
+ "CHOOSE_PAGE": "Scegli una Pagina",
"CHOOSE_PLACEHOLDER": "Seleziona una pagina dalla lista",
- "INBOX_NAME": "Nome casella",
- "ADD_NAME": "Aggiungi un nome per la tua casella",
- "PICK_NAME": "Scegli un nome per la tua casella",
- "PICK_A_VALUE": "Scegli un valore"
+ "INBOX_NAME": "Nome Inbox",
+ "ADD_NAME": "Aggiungi un nome per la tua inbox",
+ "PICK_NAME": "Scegli un nome per la tua Inbox",
+ "PICK_A_VALUE": "Scegli un valore",
+ "CREATE_INBOX": "Crea Inbox"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continua con Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Collega il tuo profilo Instagram",
+ "HELP": "Per aggiungere il tuo profilo Instagram come canale, devi autenticare il tuo profilo Instagram cliccando su 'Continua con Instagram' ",
+ "ERROR_MESSAGE": "Si è verificato un errore nella connessione a Instagram, riprova",
+ "ERROR_AUTH": "Si è verificato un errore nella connessione a Instagram, riprova",
+ "NEW_INBOX_SUGGESTION": "Questo account Instagram era precedentemente collegato a una Inbox diversa ed è stato ora migrato qui. Tutti i nuovi messaggi appariranno qui. La vecchia Inbox non sarà più in grado di inviare o ricevere messaggi per questo account.",
+ "DUPLICATE_INBOX_BANNER": "Questo account Instagram è stato migrato alla nuova Inbox del canale Instagram. Non sarai più in grado di inviare/ricevere messaggi Instagram da questa Inbox."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continua con TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connetti il tuo profilo TikTok",
+ "HELP": "Per aggiungere il tuo profilo TikTok come canale, devi autenticare il tuo profilo TikTok cliccando su 'Continua con TikTok' ",
+ "ERROR_MESSAGE": "Si è verificato un errore nella connessione a TikTok, riprova",
+ "ERROR_AUTH": "Si è verificato un errore nella connessione a TikTok, riprova"
},
"TWITTER": {
"HELP": "Per aggiungere il tuo profilo Twitter come canale, devi autenticare il tuo profilo Twitter cliccando su 'Accedi con Twitter' ",
@@ -55,18 +76,26 @@
},
"WEBSITE_CHANNEL": {
"TITLE": "Canale sito web",
- "DESC": "Crea un canale per il tuo sito web ed inizia a sostenere i tuoi clienti tramite il nostro widget per siti web.",
- "LOADING_MESSAGE": "Creazione del canale di supporto sito web",
+ "DESC": "Crea un canale per il tuo sito web ed inizia a dare supporto ai tuoi clienti tramite il nostro widget per siti web.",
+ "LOADING_MESSAGE": "Creazione del Canale di Supporto Sito Web",
"CHANNEL_AVATAR": {
"LABEL": "Avatar del canale"
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL del webhook",
- "PLACEHOLDER": "Inserisci l'URL del Webhook",
+ "PLACEHOLDER": "Inserisci il tuo URL Webhook",
"ERROR": "Inserisci un URL valido"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copia secret negli appunti",
+ "COPY_SUCCESS": "Secret copiato negli appunti",
+ "TOGGLE": "Cambia visibilità secret",
+ "RESET_SUCCESS": "Webhook secret rigenerato con successo",
+ "RESET_ERROR": "Impossibile rigenerare il webhook secret. Riprova"
+ },
"CHANNEL_DOMAIN": {
- "LABEL": "Dominio del sito",
+ "LABEL": "Dominio del Sito",
"PLACEHOLDER": "Inserisci il dominio del tuo sito web (es: acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
@@ -75,15 +104,15 @@
},
"CHANNEL_WELCOME_TAGLINE": {
"LABEL": "Titolo di benvenuto",
- "PLACEHOLDER": "Rendiamo semplice connetterci con noi. Chiedete qualsiasi cosa o condividete il vostro feedback."
+ "PLACEHOLDER": "Siamo qui per aiutarti. Facci una domanda o condividi il tuo feedback."
},
"CHANNEL_GREETING_MESSAGE": {
"LABEL": "Messaggio di saluto del canale",
- "PLACEHOLDER": "Acme Inc, in genere, risponde in poche ore."
+ "PLACEHOLDER": "Acme Srl generalmente risponde in poche ore."
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "Abilita messaggio di benvenuto sul canale",
- "HELP_TEXT": "Invia automaticamente un messaggio di benvenuto quando viene creata una nuova conversazione.",
+ "HELP_TEXT": "Invia automaticamente un messaggio di benvenuto quando un cliente avvia una nuova conversazione.",
"ENABLED": "Abilitato",
"DISABLED": "Disabilitato"
},
@@ -92,15 +121,15 @@
"IN_A_FEW_MINUTES": "In pochi minuti",
"IN_A_FEW_HOURS": "In poche ore",
"IN_A_DAY": "In un giorno",
- "HELP_TEXT": "Questo tempo di risposta verrà visualizzato sul widget della live chat"
+ "HELP_TEXT": "Questo tempo di risposta verrà mostrato sul widget della live chat"
},
"WIDGET_COLOR": {
"LABEL": "Colore del widget",
"PLACEHOLDER": "Aggiorna il colore del widget utilizzato nel widget"
},
- "SUBMIT_BUTTON": "Crea casella",
+ "SUBMIT_BUTTON": "Crea Inbox",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di creare un canale del sito web, si prega di riprovare"
+ "ERROR_MESSAGE": "Impossibile creare il canale sito web, riprova"
}
},
"TWILIO": {
@@ -112,19 +141,19 @@
"ERROR": "Questo campo è obbligatorio"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "Usa l’autenticazione con chiave API",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "Inserisci la tua API Key SID",
"ERROR": "Questo campo è obbligatorio"
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "PLACEHOLDER": "Inserisci la tua API Key Secret",
"ERROR": "Questo campo è obbligatorio"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Servizio messaggi SID",
- "PLACEHOLDER": "Inserisci il tuo servizio di messaggistica SID di Twilio",
+ "LABEL": "SID Servizio Messaggi",
+ "PLACEHOLDER": "Inserisci il SID Servizio Messaggi di Twilio",
"ERROR": "Questo campo è obbligatorio",
"USE_MESSAGING_SERVICE": "Usa un servizio di messaggistica Twilio"
},
@@ -134,18 +163,18 @@
},
"AUTH_TOKEN": {
"LABEL": "Token di autenticazione",
- "PLACEHOLDER": "Inserisci il tuo token di autenticazione Twilio",
+ "PLACEHOLDER": "Inserisci il tuo Token Autenticazione Twilio",
"ERROR": "Questo campo è obbligatorio"
},
"CHANNEL_NAME": {
- "LABEL": "Nome casella",
- "PLACEHOLDER": "Inserisci un nome della casella",
+ "LABEL": "Nome Inbox",
+ "PLACEHOLDER": "Inserisci un nome della Inbox",
"ERROR": "Questo campo è obbligatorio"
},
"PHONE_NUMBER": {
- "LABEL": "Numero di telefono",
+ "LABEL": "Numero di Telefono",
"PLACEHOLDER": "Inserisci il numero di telefono dal quale verrà inviato il messaggio.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Inserisci un numero di telefono valido che inizi con un `+` e non contenga spazi."
},
"API_CALLBACK": {
"TITLE": "URL di callback",
@@ -162,45 +191,45 @@
"PROVIDERS": {
"LABEL": "Provider API",
"TWILIO": "Twilio",
- "BANDWIDTH": "Larghezza di banda"
+ "BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale SMS"
+ "ERROR_MESSAGE": "Impossibile salvare il canale SMS"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
"LABEL": "ID Account",
- "PLACEHOLDER": "Inserisci l'id del tuo account di Bandwidth",
+ "PLACEHOLDER": "Inserisci il tuo Account ID Bandwidth",
"ERROR": "Questo campo è obbligatorio"
},
"API_KEY": {
"LABEL": "Chiave API",
- "PLACEHOLDER": "Inserisci la tua chiave di Bandwith API",
+ "PLACEHOLDER": "Inserisci la tua chiave API di Bandwidth",
"ERROR": "Questo campo è obbligatorio"
},
"API_SECRET": {
"LABEL": "Chiave API segreta",
- "PLACEHOLDER": "Inserisci la tua chiave segreta di Bandwith API",
+ "PLACEHOLDER": "Inserisci la tua API Secret di Bandwidth",
"ERROR": "Questo campo è obbligatorio"
},
"APPLICATION_ID": {
- "LABEL": "ID applicazione",
- "PLACEHOLDER": "Inserisci l'id della tua applicazione di Bandwidth",
+ "LABEL": "ID Applicazione",
+ "PLACEHOLDER": "Inserisci il tuo ID Applicazione di Bandwidth",
"ERROR": "Questo campo è obbligatorio"
},
"INBOX_NAME": {
- "LABEL": "Nome casella",
- "PLACEHOLDER": "Inserisci un nome della casella",
+ "LABEL": "Nome Inbox",
+ "PLACEHOLDER": "Inserisci un nome della Inbox",
"ERROR": "Questo campo è obbligatorio"
},
"PHONE_NUMBER": {
"LABEL": "Numero di telefono",
"PLACEHOLDER": "Inserisci il numero di telefono dal quale verrà inviato il messaggio.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Inserisci un numero di telefono valido che inizi con un `+` e non contenga spazi."
},
- "SUBMIT_BUTTON": "Crea un canale Bandwidth",
+ "SUBMIT_BUTTON": "Crea un Canale Bandwidth",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di autenticare le credenziali di Bandwidth, riprova"
+ "ERROR_MESSAGE": "Impossibile autenticare le credenziali di Bandwidth, riprova"
},
"API_CALLBACK": {
"TITLE": "URL di callback",
@@ -213,19 +242,26 @@
"DESC": "Inizia a supportare i tuoi clienti tramite WhatsApp.",
"PROVIDERS": {
"LABEL": "Provider API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Configurazione rapida tramite Meta",
+ "TWILIO_DESC": "Connetti tramite credenziali Twilio",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Seleziona il tuo API provider",
+ "DESCRIPTION": "Scegli il tuo provider WhatsApp. Puoi connetterti direttamente tramite Meta che non richiede alcuna configurazione o connetterti tramite Twilio utilizzando le credenziali del tuo account."
+ },
"INBOX_NAME": {
- "LABEL": "Nome casella",
- "PLACEHOLDER": "Inserisci un nome della casella",
+ "LABEL": "Nome Inbox",
+ "PLACEHOLDER": "Inserisci un nome della Inbox",
"ERROR": "Questo campo è obbligatorio"
},
"PHONE_NUMBER": {
"LABEL": "Numero di telefono",
"PLACEHOLDER": "Inserisci il numero di telefono dal quale verrà inviato il messaggio.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "Inserisci un numero di telefono valido che inizi con un `+` e non contenga spazi."
},
"PHONE_NUMBER_ID": {
"LABEL": "ID numero di telefono",
@@ -233,13 +269,13 @@
"ERROR": "Inserisci un valore valido."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "ID account business",
- "PLACEHOLDER": "Si prega di inserire l'ID dell'account business ottenuto dalla dashboard sviluppatore di Facebook.",
+ "LABEL": "ID Account Business",
+ "PLACEHOLDER": "Inserisci l'ID dell'Account Business ottenuto dalla dashboard sviluppatore di Facebook.",
"ERROR": "Inserisci un valore valido."
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook verifica token",
- "PLACEHOLDER": "Inserisci un token di verifica che vuoi configurare peri webhook di facebook.",
+ "PLACEHOLDER": "Inserisci un token di verifica che vuoi configurare per i webhook Facebook.",
"ERROR": "Inserisci un valore valido."
},
"API_KEY": {
@@ -250,57 +286,132 @@
},
"API_CALLBACK": {
"TITLE": "URL di callback",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "SUBTITLE": "È necessario configurare l'URL del webhook e il token di verifica nel portale Facebook Developer con i valori mostrati di seguito.",
"WEBHOOK_URL": "URL del webhook",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "Token Di Verifica Webhook"
+ },
+ "SUBMIT_BUTTON": "Crea Canale WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Configurazione rapida tramite Meta",
+ "DESC": "Utilizza il WhatsApp Embedded Signup per collegare rapidamente nuovi numeri. Sarai reindirizzato a Meta per accedere al tuo account WhatsApp Business. Avere accesso amministratore aiuterà a rendere la configurazione semplice e facile.",
+ "BENEFITS": {
+ "TITLE": "Vantaggi della registrazione integrata:",
+ "EASY_SETUP": "Nessuna configurazione manuale richiesta",
+ "SECURE_AUTH": "Autenticazione sicura basata su OAuth",
+ "AUTO_CONFIG": "Configurazione automatica del webhook e del numero di telefono"
+ },
+ "LEARN_MORE": {
+ "TEXT": "Per saperne di più su embedded signup, prezzi e limitazioni, visita {link}.",
+ "LINK_TEXT": "questo link"
+ },
+ "SUBMIT_BUTTON": "Connetti con WhatsApp Business",
+ "AUTH_PROCESSING": "Autenticazione con Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Completa la configurazione aziendale nella finestra Meta...",
+ "PROCESSING": "Configurazione del tuo account WhatsApp Business",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Caricamento del Facebook SDK...",
+ "CANCELLED": "Registrazione WhatsApp annullata",
+ "SUCCESS_TITLE": "Account WhatsApp Business connesso!",
+ "WAITING_FOR_AUTH": "In attesa dell'autenticazione...",
+ "INVALID_BUSINESS_DATA": "Dati aziendali non validi ricevuti da Facebook. Riprova.",
+ "SIGNUP_ERROR": "Errore di registrazione",
+ "AUTH_NOT_COMPLETED": "Autenticazione non completata. Riavvia il processo.",
+ "SUCCESS_FALLBACK": "Account WhatsApp Business è stato configurato con successo",
+ "MANUAL_FALLBACK": "Se il tuo numero è già connesso alla WhatsApp Business Platform (API), o se sei un provider tecnologico, si prega di utilizzare il {link}",
+ "MANUAL_LINK_TEXT": "flow di registrazione manuale",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Crea un canale WhatsApp",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale WhatsApp"
+ "ERROR_MESSAGE": "Impossibile salvare il canale WhatsApp"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Canale Vocale",
+ "DESC": "Integra Twilio Voice e inizia a supportare i tuoi clienti tramite telefonate.",
+ "PHONE_NUMBER": {
+ "LABEL": "Numero di Telefono",
+ "PLACEHOLDER": "Inserisci il tuo numero di telefono (es. +1234567890)",
+ "ERROR": "Fornisci un numero di telefono valido in formato E.164 (ad es. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID dell'account",
+ "PLACEHOLDER": "Inserisci il tuo Account SID Twilio",
+ "REQUIRED": "Account SID richiesto"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token di autenticazione",
+ "PLACEHOLDER": "Inserisci il tuo Auth Token Twilio",
+ "REQUIRED": "Auth Token richiesto"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Inserisci il tuo SID API Twilio",
+ "REQUIRED": "API Key SID richiesto"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Inserisci il tuo API Key Secret Twilio",
+ "REQUIRED": "API Key Secret richiesto"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configura questo URL come Voice URL sul tuo numero di telefono Twilio e TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configurare questo URL come URL di Callback di Stato sul tuo numero di telefono Twilio."
+ },
+ "SUBMIT_BUTTON": "Crea Canale Vocale",
+ "API": {
+ "ERROR_MESSAGE": "Non siamo stati in grado di creare il canale vocale"
}
},
"API_CHANNEL": {
"TITLE": "Canale API",
"DESC": "Integra con il canale API e inizia a supportare i tuoi clienti.",
"CHANNEL_NAME": {
- "LABEL": "Nome canale",
+ "LABEL": "Nome Canale",
"PLACEHOLDER": "Inserisci un nome del canale",
"ERROR": "Questo campo è obbligatorio"
},
"WEBHOOK_URL": {
"LABEL": "URL del webhook",
- "SUBTITLE": "Configurare l'URL in cui si desidera ricevere i callback sugli eventi.",
+ "SUBTITLE": "Configura l'URL in cui ricevere i callback sugli eventi.",
"PLACEHOLDER": "URL del webhook"
},
- "SUBMIT_BUTTON": "Crea un canale API",
+ "SUBMIT_BUTTON": "Crea Canale API",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale api"
+ "ERROR_MESSAGE": "Impossibile salvare il Canale API"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Canale email",
- "DESC": "Integra la casella di posta in arrivo.",
+ "TITLE": "Canale Email",
+ "DESC": "Integra la tua casella di posta elettronica.",
"CHANNEL_NAME": {
- "LABEL": "Nome canale",
+ "LABEL": "Nome Canale",
"PLACEHOLDER": "Inserisci un nome del canale",
"ERROR": "Questo campo è obbligatorio"
},
"EMAIL": {
- "LABEL": "email",
+ "LABEL": "Email",
"SUBTITLE": "Email dove i tuoi clienti inviano i ticket di supporto.",
- "PLACEHOLDER": "email"
+ "PLACEHOLDER": "Email"
},
- "SUBMIT_BUTTON": "Crea un canale email",
+ "SUBMIT_BUTTON": "Crea Canale Email",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale email"
+ "ERROR_MESSAGE": "Impossibile salvare il canale email"
},
- "FINISH_MESSAGE": "Inizia a inoltrare le tue email al seguente indirizzo email."
+ "FINISH_MESSAGE": "Inizia a inoltrare le tue email al seguente indirizzo email.",
+ "FINISH_MESSAGE_NO_FORWARDING": "La tua Inbox email è stata creata con successo! Devi configurare le credenziali SMTP e IMAP per inviare e ricevere e-mail. Senza queste impostazioni non sarà possibile gestire le email.",
+ "FORWARDING_ADDRESS_LABEL": "Inoltra le email a questo indirizzo:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Clicca qui",
+ "CONFIGURE_SMTP_IMAP_TEXT": " per configurare le impostazioni IMAP e SMTP"
},
"LINE_CHANNEL": {
"TITLE": "Canale LINE",
"DESC": "Integra con il canale LINE e inizia a supportare i tuoi clienti.",
"CHANNEL_NAME": {
- "LABEL": "Nome canale",
+ "LABEL": "Nome Canale",
"PLACEHOLDER": "Inserisci un nome del canale",
"ERROR": "Questo campo è obbligatorio"
},
@@ -329,72 +440,135 @@
"TITLE": "Canale Telegram",
"DESC": "Integra con il canale Telegram e inizia a supportare i tuoi clienti.",
"BOT_TOKEN": {
- "LABEL": "Token bot",
+ "LABEL": "Token Bot",
"SUBTITLE": "Configura il token del bot che hai ottenuto da Telegram BotFather.",
- "PLACEHOLDER": "Token bot"
+ "PLACEHOLDER": "Token Bot"
},
- "SUBMIT_BUTTON": "Crea canale Telegram",
+ "SUBMIT_BUTTON": "Crea Canale Telegram",
"API": {
- "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale telegram"
+ "ERROR_MESSAGE": "Non siamo stati in grado di salvare il canale Telegram"
}
},
"AUTH": {
"TITLE": "Scegli un canale",
- "DESC": "Chatwoot supporta i widget di chat live, Facebook Messenger, profili Twitter, WhatsApp, Email, ecc., come canali. Se vuoi costruire un canale personalizzato, puoi crearlo usando il canale API. Per iniziare, scegli uno dei canali qui sotto."
+ "DESC": "Chatwoot supporta widget di live chat, Facebook Messenger, WhatsApp, Email e altro, come canali di comunicazione. Se vuoi creare un canale personalizzato, puoi farlo tramite il canale API. Per iniziare, scegli uno dei canali qui sotto.",
+ "TITLE_NEXT": "Completa la configurazione",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Sito Web",
+ "DESCRIPTION": "Crea un widget live-chat"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connetti la tua pagina Facebook"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Supporta i tuoi clienti su WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "Chiamata WhatsApp",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "Connettiti con Gmail, Outlook, o altri provider"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integra il canale SMS con Twilio o Bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Crea un canale personalizzato utilizzando le nostre API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configura canale Telegram utilizzando il token Bot"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integra il tuo canale Line"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connetti il tuo account Instagram"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Collega il tuo account TikTok"
+ },
+ "VOICE": {
+ "TITLE": "Voce",
+ "DESCRIPTION": "Integra con Twilio Voice"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agenti",
- "DESC": "Qui puoi aggiungere agenti per gestire la tua casella appena creata. Solo questi agenti selezionati avranno accesso alla tua casella. Gli operatori che non fanno parte di questa casella non saranno in grado di vedere o rispondere ai messaggi in questa casella quando effettuano il login.
PS: come amministratore, se hai bisogno di accedere a tutte le caselle, dovresti aggiungerti come agente a tutte le caselle che crei.",
- "VALIDATION_ERROR": "Aggiungi almeno un agente alla tua nuova casella",
- "PICK_AGENTS": "Scegli gli agenti per la casella"
+ "TITLE": "Operatori",
+ "DESC": "Qui puoi aggiungere operatori per gestire la tua inbox appena creata. Solo questi operatori selezionati avranno accesso alla tua inbox. Gli operatori che non fanno parte di questa inbox non saranno in grado di vedere o rispondere ai messaggi in questa inbox quando effettuano il login.
PS: come amministratore, se hai bisogno di accedere a tutte le inbox, devi aggiungerti come operatore a tutte le inbox che crei.",
+ "VALIDATION_ERROR": "Aggiungi almeno un operatore alla tua nuova Inbox",
+ "PICK_AGENTS": "Scegli gli operatori per la Inbox"
},
"DETAILS": {
- "TITLE": "Dettagli casella",
- "DESC": "Dal menu a tendina qui sotto, seleziona la pagina Facebook che vuoi collegare a Chatwoot. Puoi anche assegnare un nome personalizzato alla tua casella per una migliore identificazione."
+ "TITLE": "Dettagli Inbox",
+ "DESC": "Dal menu a tendina qui sotto, seleziona la pagina Facebook che vuoi collegare a Chatwoot. Puoi anche assegnare un nome personalizzato alla tua inbox per una migliore identificazione."
},
"FINISH": {
"TITLE": "Azzeccato!",
- "DESC": "Hai completato con successo l'integrazione della tua pagina Facebook con il Chatwoot. La prossima volta che un cliente invia un messaggio alla tua pagina, la conversazione apparirà automaticamente nella tua casella.
Ti forniamo anche uno script per widget che puoi facilmente aggiungere al tuo sito web. Una volta dal vivo sul tuo sito web, i clienti possono inviarti messaggi direttamente dal tuo sito web senza l'aiuto di alcuno strumento esterno e la conversazione apparirà proprio qui, su Chatwoot.
Bello, eh? Beh, cerchiamo di esserlo :)"
+ "DESC": "Hai completato con successo l'integrazione della tua pagina Facebook con Chatwoot. La prossima volta che un cliente invia un messaggio alla tua pagina, la conversazione apparirà automaticamente nella tua inbox.
Ti forniamo anche uno script per widget che puoi facilmente aggiungere al tuo sito web. Una volta dal vivo sul tuo sito web, i clienti possono inviarti messaggi direttamente dal tuo sito web senza l'aiuto di alcuno strumento esterno e la conversazione apparirà proprio qui, su Chatwoot.
Bello, eh? Beh, ce la mettiamo tutta :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "Seleziona il tuo provider email",
+ "DESCRIPTION": "Seleziona un provider email dalla lista qui sotto. Se non vedi il tuo provider di posta elettronica nella lista, puoi selezionare l'opzione altro provider e fornire le credenziali IMAP e SMTP."
},
"MICROSOFT": {
"TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "DESCRIPTION": "Clicca sul pulsante Accedi con Microsoft per iniziare. Sarai reindirizzato alla pagina di accesso. Una volta accettati i permessi richiesti, verrai reindirizzato alla creazione della Inbox.",
+ "EMAIL_PLACEHOLDER": "Inserisci indirizzo email",
+ "SIGN_IN": "Accedi con Microsoft",
+ "ERROR_MESSAGE": "Si è verificato un errore nella connessione a Microsoft, riprova"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Clicca sul pulsante Accedi con Google per iniziare. Sarai reindirizzato alla pagina di accesso. Una volta accettati i permessi richiesti, verrai reindirizzato alla creazione della Inbox.",
+ "SIGN_IN": "Accedi con Google",
+ "EMAIL_PLACEHOLDER": "Inserisci indirizzo email",
+ "ERROR_MESSAGE": "Si è verificato un errore nella connessione a Google, riprova"
}
},
"DETAILS": {
"LOADING_FB": "Autenticazione con Facebook...",
+ "ERROR_FB_LOADING": "Errore nel caricamento di Facebook SDK. Disabilita eventuali ad-blocker e riprova da un browser diverso.",
"ERROR_FB_AUTH": "Qualcosa è andato storto, per favore aggiorna la pagina...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creazione della casella...",
- "TITLE": "Configura dettagli casella",
+ "ERROR_FB_UNAUTHORIZED": "Non sei autorizzato ad eseguire questa azione. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Assicurati di avere accesso alla pagina Facebook con pieno controllo. Puoi leggere di più sui ruoli di Facebook qui.",
+ "CREATING_CHANNEL": "Creazione Inbox...",
+ "TITLE": "Configura Dettagli Inbox",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Aggiungi agenti",
- "ADD_AGENTS": "Aggiunta di agenti alla tua casella..."
+ "BUTTON_TEXT": "Aggiungi operatori",
+ "ADD_AGENTS": "Aggiungendo Operatori alla Inbox..."
},
"FINISH": {
- "TITLE": "La casella è pronta!",
+ "TITLE": "L'Inbox è pronta!",
"MESSAGE": "Ora puoi interagire con i tuoi clienti attraverso il nuovo canale. Buona assistenza",
- "BUTTON_TEXT": "Portami lì",
- "MORE_SETTINGS": "Altre impostazioni",
- "WEBSITE_SUCCESS": "Hai completato la creazione di un canale sito web. Copia il codice mostrato qui sotto e incollalo sul tuo sito. La prossima volta che un cliente usa la live chat, la conversazione apparirà automaticamente nella tua casella."
+ "BUTTON_TEXT": "Fatto",
+ "MORE_SETTINGS": "Impostazioni Aggiuntive",
+ "WEBSITE_SUCCESS": "Hai completato la creazione di un canale sito web. Copia il codice mostrato qui sotto e incollalo sul tuo sito. La prossima volta che un cliente usa la live chat, la conversazione apparirà automaticamente nella tua inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox WhatsApp",
+ "MESSENGER_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox Facebook Messenger",
+ "TELEGRAM_QR_INSTRUCTION": "Scansiona il QR Code qui sopra per testare rapidamente la tua Inbox Telegram"
},
"REAUTH": "Riautorizza",
"VIEW": "Visualizza",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Impostazioni della casella, aggiornate con successo",
+ "SUCCESS_MESSAGE": "Impostazioni della Inbox aggiornate con successo",
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Assegnazione automatica aggiornata correttamente",
- "ERROR_MESSAGE": "Impossibile aggiornare le impostazioni della casella. Riprova più tardi."
+ "ERROR_MESSAGE": "Impossibile aggiornare le impostazioni della Inbox. Riprova più tardi."
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "Abilitato",
@@ -405,22 +579,22 @@
"DISABLED": "Disabilitato"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "Nome mittente",
+ "SUB_TEXT": "Seleziona il nome mostrato ai tuoi clienti quando ricevono email dai tuoi operatori.",
+ "FOR_EG": "Per es.:",
"FRIENDLY": {
- "TITLE": "Friendly",
+ "TITLE": "Amichevole",
"FROM": "da",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "Aggiungi il nome dell'operatore che ha inviato la risposta nel nome mittente, per renderla amichevole."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "Professionale",
+ "SUBTITLE": "Utilizza solo il nome dell'azienda come nome mittente nell'intestazione dell'email."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "Configura il tuo nome azienda",
+ "PLACEHOLDER": "Inserisci il nome della tua azienda",
+ "SAVE_BUTTON_TEXT": "Salva"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -432,8 +606,10 @@
"DISABLED": "Disabilitato"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Abilitato",
- "DISABLED": "Disabilitato"
+ "ENABLED": "Riapri la stessa conversazione",
+ "DISABLED": "Crea una nuova conversazione",
+ "ENABLED_DESCRIPTION": "Quando un contatto invia un nuovo messaggio, la conversazione precedente viene riaperta.",
+ "DISABLED_DESCRIPTION": "Viene creata una nuova conversazione ogni volta dopo la risoluzione della precedente."
},
"ENABLE_HMAC": {
"LABEL": "Abilita"
@@ -441,7 +617,7 @@
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
- "AVATAR_DELETE_BUTTON_TEXT": "Elimina avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "Elimina Avatar",
"CONFIRM": {
"TITLE": "Conferma eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
@@ -450,10 +626,10 @@
"NO": "No, conserva "
},
"API": {
- "SUCCESS_MESSAGE": "Casella eliminata con successo",
- "ERROR_MESSAGE": "Impossibile eliminare la casella. Riprova più tardi.",
- "AVATAR_SUCCESS_MESSAGE": "Avatar casella eliminata con successo",
- "AVATAR_ERROR_MESSAGE": "Impossibile eliminare l'avatar della casella. Riprova più tardi."
+ "SUCCESS_MESSAGE": "Inbox eliminata con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare l'inbox. Riprova più tardi.",
+ "AVATAR_SUCCESS_MESSAGE": "Avatar Inbox eliminata con successo",
+ "AVATAR_ERROR_MESSAGE": "Impossibile eliminare l'avatar della Inbox. Riprova più tardi."
}
},
"TABS": {
@@ -462,73 +638,261 @@
"CONFIGURATION": "Configurazione",
"CAMPAIGN": "Campagne",
"PRE_CHAT_FORM": "Modulo pre-chat",
- "BUSINESS_HOURS": "Ore di lavoro",
+ "BUSINESS_HOURS": "Orario Di Lavoro",
"WIDGET_BUILDER": "Costruttore Widget",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Configurazione Bot",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voce",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Abilita Chiamate Vocali",
+ "DESCRIPTION": "Abilita le chiamate vocali su questa inbox. Gli operatori saranno in grado di effettuare e ricevere chiamate."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Le chiamate vocali richiedono credenziali API di Twilio. Queste vengono usate per generare token per le connessioni voce."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "Vorremmo chiamarti riguardo alla tua conversazione."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Preferenze Canali",
+ "WIDGET_FEATURES": "Funzionalità Widget",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Gestisci il tuo account WhatsApp",
+ "DESCRIPTION": "Controlla lo stato del tuo account WhatsApp, i limiti di messaggi e la qualità. Aggiorna le impostazioni o risolvi i problemi se necessario",
+ "GO_TO_SETTINGS": "Vai a Meta Business Manager",
+ "NO_DATA": "Health Data non disponibile",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Numero di telefono visualizzato",
+ "TOOLTIP": "Numero di telefono mostrato ai clienti"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Nome Business",
+ "TOOLTIP": "Nome Business verificato da WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Stato nome visualizzato",
+ "TOOLTIP": "Stato della verifica del nome business"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "Valutazione qualità di WhatsApp per il tuo account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Livello limite messaggi",
+ "TOOLTIP": "Limite giornaliero di messaggi per il tuo account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Modalità account",
+ "TOOLTIP": "Modalità operativa attuale del tuo account WhatsApp"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 clienti ogni 24h",
+ "TIER_1000": "1K clienti ogni 24h",
+ "TIER_1K": "1K clienti ogni 24h",
+ "TIER_10K": "10K clienti ogni 24h",
+ "TIER_100K": "100K clienti ogni 24h",
+ "TIER_UNLIMITED": "Clienti illimitati ogni 24h",
+ "UNKNOWN": "Valutazione non disponibile"
+ },
+ "STATUSES": {
+ "APPROVED": "Approvato",
+ "PENDING_REVIEW": "In Attesa di Revisione",
+ "AVAILABLE_WITHOUT_REVIEW": "Disponibile Senza Revisione",
+ "REJECTED": "Rifiutato",
+ "DECLINED": "Declinato",
+ "NON_EXISTS": "Non esiste"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Configurazione Webhook",
+ "DESCRIPTION": "L'URL Webhook è necessario per il tuo account WhatsApp Business per ricevere messaggi dai clienti",
+ "ACTION_REQUIRED": "Webhook non configurato",
+ "REGISTER_BUTTON": "Registra Webhook",
+ "REGISTER_SUCCESS": "Webhook registrato correttamente",
+ "REGISTER_ERROR": "Impossibile registrare il webhook. Riprova.",
+ "CONFIGURED_SUCCESS": "Webhook configurato correttamente",
+ "URL_MISMATCH": "URL Webhook non corrisponde"
+ }
},
"SETTINGS": "Impostazioni",
"FEATURES": {
"LABEL": "Funzionalità",
- "DISPLAY_FILE_PICKER": "Visualizza il selettore di file sul widget",
- "DISPLAY_EMOJI_PICKER": "Visualizza il selettore emoji sul widget",
+ "DISPLAY_FILE_PICKER": "Mostra il selettore file sul widget",
+ "DISPLAY_EMOJI_PICKER": "Mostra il selettore emoji sul widget",
"ALLOW_END_CONVERSATION": "Consenti agli utenti di terminare la conversazione dal widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "USE_INBOX_AVATAR_FOR_BOT": "Usa il nome e l'avatar della Inbox per il bot"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Script Messenger",
- "MESSENGER_SUB_HEAD": "Posiziona questo pulsante all'interno del tuo tag body",
- "INBOX_AGENTS": "Agenti",
- "INBOX_AGENTS_SUB_TEXT": "Aggiungi o rimuovi agenti da questa casella",
- "AGENT_ASSIGNMENT": "Assegnazione conversazione",
+ "MESSENGER_SUB_HEAD": "Incolla questo script alla fine del tag body",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Domini Consentiti",
+ "DESCRIPTION": "Limita quali siti web possono incorporare il widget di chat. Per sicurezza, aggiungi solo domini che possiedi e di cui ti puoi fidare. Aggiungi uno o più domini separati da virgole. Lascia vuoto per consentire tutti i domini (sconsigliato in produzione).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Abilita il widget nelle app mobile",
+ "SUBTITLE": "Spunta questa opzione se hai incorporato il widget nelle app iOS o Android. Le app mobile non inviano informazioni di dominio, quindi sarebbero bloccate da restrizioni di dominio a meno che questa opzione non sia abilitata."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Convalida Identità",
+ "DESCRIPTION": "Verifica l'autenticità dell'utente generando token sicuri. Questo impedisce agli utenti non autorizzati di impersonare altri nella tua chat.",
+ "SECRET_KEY": "Chiave Segreta",
+ "VIEW_DOCS": "Visualizza documentazione",
+ "REQUIRE_LABEL": "Richiedi la convalida dell'identità per tutte le conversazioni",
+ "REQUIRE_DESCRIPTION": "Se abilitato, gli utenti devono fornire un token di identità valido per avviare le conversazioni. Le richieste senza token validi verranno respinte."
+ },
+ "INBOX_AGENTS": "Operatori",
+ "INBOX_AGENTS_SUB_TEXT": "Aggiungi o rimuovi operatori da questa inbox",
+ "AGENT_ASSIGNMENT": "Assegnazione Conversazione",
"AGENT_ASSIGNMENT_SUB_TEXT": "Aggiorna le impostazioni di assegnazione della conversazione",
"UPDATE": "Aggiorna",
- "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",
+ "ENABLE_EMAIL_COLLECT_BOX": "Abilita raccolta indirizzi email",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Abilita o disabilita una casella/modulo di raccolta indirizzi email nelle nuove conversazioni",
"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",
+ "SENDER_NAME_SECTION": "Abilita il Nome Operatore nelle Email",
+ "SENDER_NAME_SECTION_TEXT": "Abilita/Disabilita la visualizzazione del nome dell'Operatore nelle email. Se disabilitato, verrà mostrato il nome dell'azienda",
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Impostazioni della casella",
- "INBOX_UPDATE_SUB_TEXT": "Aggiorna le impostazioni della casella",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "Questa funzione è disponibile sui piani a pagamento. Aggiorna per abilitare la continuità della conversazione via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Routing Conversazioni",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Gestisci come vengono create le conversazioni per i contatti esistenti",
+ "INBOX_UPDATE_TITLE": "Impostazioni Inbox",
+ "INBOX_UPDATE_SUB_TEXT": "Aggiorna le impostazioni inbox",
"AUTO_ASSIGNMENT_SUB_TEXT": "Abilita o disabilita l'assegnazione automatica di nuove conversazioni agli agenti aggiunti a questa casella.",
- "HMAC_VERIFICATION": "Convalida identità utente",
- "HMAC_DESCRIPTION": "Al fine di convalidare l'identità dell'utente, è possibile passare un `identifier_hash` per ogni utente. Puoi generare un hash HMAC sha256 usando il `identificatore` con la chiave mostrata qui.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Forza la convalida identità utente",
- "HMAC_MANDATORY_DESCRIPTION": "Se abilitata, le richieste mancanti del file `identifier_hash` saranno respinte.",
- "INBOX_IDENTIFIER": "Identificatore casella",
+ "HMAC_VERIFICATION": "Convalida Identità Utente",
+ "HMAC_DESCRIPTION": "Con questa chiave è possibile generare un token segreto che può essere utilizzato per verificare l'identità degli utenti.",
+ "HMAC_LINK_TO_DOCS": "Leggi di più qui.",
+ "HMAC_MANDATORY_VERIFICATION": "Forza Convalida Identità Utente",
+ "HMAC_MANDATORY_DESCRIPTION": "Se abilitata, le richieste che non possono essere verificate saranno respinte.",
+ "INBOX_IDENTIFIER": "Identificatore Inbox",
"INBOX_IDENTIFIER_SUB_TEXT": "Usa il token `inbox_identifier` mostrato qui per l'autenticazione dei tuoi client API.",
- "FORWARD_EMAIL_TITLE": "Inoltra all'email",
+ "FORWARD_EMAIL_TITLE": "Inoltra a Email",
"FORWARD_EMAIL_SUB_TEXT": "Inizia a inoltrare le tue email al seguente indirizzo email.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "L'inoltro delle email alla tua Inbox è attualmente disabilitato su questa installazione. Per utilizzare questa funzione, deve essere abilitata dal tuo amministratore, contattalo per procedere.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Consenti messaggi dopo la risoluzione della conversazione",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Consenti agli utenti finali di inviare messaggi anche dopo la risoluzione della conversazione.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Consenti agli utenti finali di inviare messaggi anche dopo che la conversazione è stata risolta.",
"WHATSAPP_SECTION_SUBHEADER": "Questa chiave API viene utilizzata per l'integrazione con le API WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Inserisci la nuova chiave API da utilizzare per l'integrazione con le API WhatsApp.",
"WHATSAPP_SECTION_TITLE": "Chiave API",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Aggiorna Chiave API",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Inserisci qui la nuova chiave API",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Aggiorna",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook verifica token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "Questa Inbox è connessa tramite WhatsApp Embedded Signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "Puoi riconfigurare questa Inbox per aggiornare le impostazioni WhatsApp Business.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Riconfigura",
+ "WHATSAPP_CONNECT_TITLE": "Connetti a WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Passa alla WhatsApp Embedded Signup per una gestione più semplice.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Collega questa Inbox a WhatsApp Business per avere funzionalità avanzate e una gestione più semplice.",
+ "WHATSAPP_CONNECT_BUTTON": "Connetti",
+ "WHATSAPP_CONNECT_SUCCESS": "Connesso correttamente a WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Impossibile connettersi a WhatsApp Business. Riprova.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business riconfigurata con successo!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Impossibile riconfigurare WhatsApp Business. Riprova.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID non è configurato. Si prega di contattare l'amministratore.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID non è configurato. Si prega di contattare l'amministratore.",
+ "WHATSAPP_LOGIN_CANCELLED": "Il login WhatsApp è stato annullato. Riprova.",
+ "WHATSAPP_WEBHOOK_TITLE": "Token Di Verifica Webhook",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "Questo token viene utilizzato per verificare l'autenticità dell'endpoint webhook.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sincronizza Modelli",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Sincronizza manualmente i modelli di messaggi da WhatsApp per aggiornare i modelli disponibili.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sincronizza Modelli",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Sincronizzazione modelli iniziata. Potrebbe volerci qualche minuto per aggiornare.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Aggiorna le Impostazioni del Modulo Pre Chat"
},
"HELP_CENTER": {
"LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "PLACEHOLDER": "Seleziona Help Center",
+ "SELECT_PLACEHOLDER": "Seleziona Help Center",
+ "NONE": "Nessuno",
+ "REMOVE": "Rimuovi Help Center",
+ "SUB_TEXT": "Allega un Help Center con la Inbox"
},
"AUTO_ASSIGNMENT": {
"MAX_ASSIGNMENT_LIMIT": "Limite assegnazione automatica",
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Inserisci un valore maggiore di 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limita il numero massimo di conversazioni da questa casella di posta che possono essere assegnate automaticamente ad un agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Assegnazione Conversazione",
+ "DESCRIPTION": "Assegna automaticamente le conversazioni in entrata agli operatori disponibili in base ai criteri di assegnazione",
+ "ENABLE_AUTO_ASSIGNMENT": "Abilita assegnazione automatica delle conversazioni",
+ "DEFAULT_RULES_TITLE": "Regole di assegnazione predefinite",
+ "DEFAULT_RULES_DESCRIPTION": "Usa il comportamento di assegnazione predefinito per tutte le conversazioni",
+ "DEFAULT_RULE_1": "Prima le conversazioni create per prime",
+ "DEFAULT_RULE_2": "Distribuzione round robin",
+ "CUSTOMIZE_WITH_POLICY": "Personalizza con policy di assegnazione",
+ "USING_POLICY": "Policy di assegnazione personalizzata in uso per questa inbox",
+ "CUSTOMIZE_POLICY": "Personalizza con policy di assegnazione",
+ "DELETE_POLICY": "Elimina policy",
+ "POLICY_LABEL": "Policy di assegnazione",
+ "ASSIGNMENT_ORDER_LABEL": "Ordine di assegnazione",
+ "ASSIGNMENT_METHOD_LABEL": "Metodo di assegnazione",
+ "POLICY_STATUS": {
+ "ACTIVE": "Attiva",
+ "INACTIVE": "Inattive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Creata prima",
+ "LONGEST_WAITING": "Attesa più lunga"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Assegnazione bilanciata"
+ },
+ "UPGRADE_PROMPT": "Le policy di assegnazione personalizzate sono disponibili nel piano Business",
+ "UPGRADE_TO_BUSINESS": "Aggiorna a Business",
+ "DEFAULT_POLICY_LINKED": "Policy predefinita collegata",
+ "DEFAULT_POLICY_DESCRIPTION": "Collega una policy di assegnazione personalizzata per impostare come le conversazioni devono essere assegnate agli operatori in questa inbox.",
+ "LINK_EXISTING_POLICY": "Collega policy esistente",
+ "CREATE_NEW_POLICY": "Crea nuova policy",
+ "NO_POLICIES": "Nessuna policy di assegnazione trovata",
+ "VIEW_ALL_POLICIES": "Mostra tutte le policy",
+ "CURRENT_BEHAVIOR": "Stai utilizzando le regole di assegnazione predefinite:",
+ "LINK_SUCCESS": "Policy di assegnazione collegata correttamente",
+ "LINK_ERROR": "Impossibile collegare la policy di assegnazione"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Eliminare la policy di assegnazione?",
+ "DELETE_CONFIRM_MESSAGE": "Vuoi davvero rimuovere questa policy di assegnazione da questa inbox? La inbox tornerà alle regole di assegnazione predefinite.",
+ "CANCEL": "Annulla",
+ "CONFIRM_DELETE": "Elimina",
+ "DELETE_SUCCESS": "Policy di assegnazione rimossa correttamente",
+ "DELETE_ERROR": "Impossibile rimuovere la policy di assegnazione"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Riautorizza",
"SUBTITLE": "La tua connessione a Facebook è scaduta, ricollegati alla tua pagina Facebook per continuare i servizi",
@@ -536,29 +900,99 @@
"MESSAGE_ERROR": "Si è verificato un errore, riprova"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "I moduli di chat predefiniti consentono di acquisire le informazioni dell'utente prima di iniziare la conversazione con te.",
- "SET_FIELDS": "Campi del modulo Pre chat",
+ "DESCRIPTION": "I moduli pre-chat consentono di acquisire le informazioni degli utenti prima che inizino la conversazione.",
+ "SET_FIELDS": "Campi del modulo pre-chat",
"SET_FIELDS_HEADER": {
"FIELDS": "Campi",
"LABEL": "Etichetta",
- "PLACE_HOLDER": "Segnaposto",
+ "PLACE_HOLDER": "Placeholder",
"KEY": "Chiave",
"TYPE": "Tipo",
- "REQUIRED": "Obbligatorio"
+ "REQUIRED": "Richiesto"
},
"ENABLE": {
- "LABEL": "Abilita il modulo pre chat",
+ "LABEL": "Abilita il modulo pre-chat",
"OPTIONS": {
"ENABLED": "Sì",
"DISABLED": "No"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Messaggio pre chat",
- "PLACEHOLDER": "Questo messaggio sarebbe visibile agli utenti insieme al modulo"
+ "LABEL": "Messaggio pre-chat",
+ "PLACEHOLDER": "Questo messaggio sarà mostrato agli utenti insieme al modulo"
},
"REQUIRE_EMAIL": {
- "LABEL": "I visitatori devono fornire il proprio nome e indirizzo email prima di iniziare la chat"
+ "LABEL": "Gli utenti dovranno fornire il proprio nome e indirizzo email prima di iniziare la chat"
+ }
+ },
+ "CSAT": {
+ "TITLE": "Abilita CSAT",
+ "SUBTITLE": "Invia automaticamente i sondaggi CSAT alla fine delle conversazioni per capire cosa pensano i clienti della loro esperienza di supporto. Segui le tendenze e individua le aree di miglioramento nel tempo.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Tipo di visualizzazione"
+ },
+ "MESSAGE": {
+ "LABEL": "Messaggio",
+ "PLACEHOLDER": "Inserisci un messaggio per mostrare gli utenti con il modulo"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Testo pulsante",
+ "PLACEHOLDER": "Lascia una valutazione"
+ },
+ "LANGUAGE": {
+ "LABEL": "Lingua",
+ "PLACEHOLDER": "Seleziona la lingua del modello"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Anteprima messaggio",
+ "TOOLTIP": "Può variare leggermente quando visualizzato sulle app di WhatsApp."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approvato da WhatsApp",
+ "PENDING": "In attesa di approvazione da WhatsApp",
+ "REJECTED": "Meta ha rifiutato il modello",
+ "DEFAULT": "Richiede l'approvazione di WhatsApp",
+ "NOT_FOUND": "Il modello non esiste nella piattaforma Meta."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "Modello WhatsApp creato con successo e inviato per l'approvazione",
+ "ERROR_MESSAGE": "Creazione del modello WhatsApp non riuscita"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Modifica dettagli sondaggio",
+ "DESCRIPTION": "Elimineremo il modello precedente e ne creeremo uno nuovo che verrà inviato di nuovo per l'approvazione da WhatsApp",
+ "CONFIRM": "Crea nuovo modello",
+ "CANCEL": "Torna indietro"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Verifica idoneità Utility",
+ "HELPER_NOTE": "Verifica questo messaggio prima di inviare la richiesta per aumentare le probabilità che venga classificato come Utility.\nIl sistema crea un template CSAT dedicato con pulsanti per la raccolta feedback e lo invia come Utility; Meta potrebbe comunque riclassificarlo come Marketing in base al contenuto.",
+ "RESULT_LABEL": "Previsione categoria Meta",
+ "GUIDANCE_NOTE": "Si tratta di una verifica orientativa, non di una garanzia di approvazione da parte di Meta.",
+ "SUGGESTION_LABEL": "Suggerisci riscrittura conforme a Utility",
+ "APPLY": "Usa questa versione",
+ "ERROR_MESSAGE": "Impossibile analizzare il messaggio. Riprova.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Probabile Utility",
+ "LIKELY_MARKETING": "Probabile Marketing",
+ "UNCLEAR": "Classificazione incerta"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Regola sondaggio",
+ "DESCRIPTION_PREFIX": "Invia il sondaggio se la conversazione",
+ "DESCRIPTION_SUFFIX": "una qualsiasi delle etichette",
+ "OPERATOR": {
+ "CONTAINS": "contiene",
+ "DOES_NOT_CONTAINS": "non contiene"
+ },
+ "SELECT_PLACEHOLDER": "seleziona etichette"
+ },
+ "NOTE": "Nota: I sondaggi CSAT vengono inviati solo una volta per conversazione",
+ "WHATSAPP_NOTE": "Nota: al salvataggio, il sistema crea un template CSAT dedicato in WhatsApp (utilizzato per raccogliere valutazioni e feedback nei report) e lo invia come Utility per l’approvazione. Meta potrebbe comunque classificarlo come Marketing in base al contenuto. Dopo l’approvazione, il sondaggio viene inviato una sola volta per conversazione, secondo la regola impostata.",
+ "API": {
+ "SUCCESS_MESSAGE": "Impostazioni CSAT aggiornate correttamente",
+ "ERROR_MESSAGE": "Impossibile aggiornare le impostazioni CSAT. Riprova più tardi."
}
},
"BUSINESS_HOURS": {
@@ -567,31 +1001,33 @@
"WEEKLY_TITLE": "Imposta le ore settimanali",
"TIMEZONE_LABEL": "Seleziona fuso orario",
"UPDATE": "Aggiorna le impostazioni dell'orario di lavoro",
- "TOGGLE_AVAILABILITY": "Abilita la disponibilità aziendale per questa casella",
+ "TOGGLE_AVAILABILITY": "Abilita la disponibilità aziendale per questa Inbox",
"UNAVAILABLE_MESSAGE_LABEL": "Messaggio non disponibile per i visitatori",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TOGGLE_HELP": "Abilitare la disponibilità aziendale mostrerà le ore disponibili sul widget live chat anche se tutti gli operatori sono offline. Al di fuori delle ore di disponibilità gli utenti possono essere avvisati con un messaggio ed un modulo pre-chat.",
"DAY": {
+ "DAY": "Giorno",
+ "AVAILABILITY": "Disponibilità",
+ "HOURS": "Ore",
"ENABLE": "Abilita disponibilità per questo giorno",
"UNAVAILABLE": "Non disponibile",
- "HOURS": "ore",
"VALIDATION_ERROR": "L'orario di inizio deve essere prima dell'orario di chiusura.",
"CHOOSE": "Scegli"
},
- "ALL_DAY": "Tutti i giorni"
+ "ALL_DAY": "Tutto il giorno"
},
"IMAP": {
"TITLE": "IMAP",
"SUBTITLE": "Imposta i dettagli IMAP",
- "NOTE_TEXT": "Per abilitare SMTP, configurare IMAP.",
+ "NOTE_TEXT": "Prima di abilitare SMTP, configura IMAP.",
"UPDATE": "Aggiorna impostazioni IMAP",
- "TOGGLE_AVAILABILITY": "Abilita la configurazione IMAP per questa casella",
+ "TOGGLE_AVAILABILITY": "Abilita la configurazione IMAP per questa Inbox",
"TOGGLE_HELP": "Abilitare IMAP aiuterà l'utente a ricevere email",
"EDIT": {
"SUCCESS_MESSAGE": "Impostazioni IMAP aggiornate con successo",
"ERROR_MESSAGE": "Impossibile aggiornare le impostazioni IMAP"
},
"ADDRESS": {
- "LABEL": "Indirizzo",
+ "LABEL": "Indirizzo server IMAP",
"PLACE_HOLDER": "Indirizzo (ad esempio: imap.gmail.com)"
},
"PORT": {
@@ -599,31 +1035,32 @@
"PLACE_HOLDER": "Porta"
},
"LOGIN": {
- "LABEL": "Accedi",
- "PLACE_HOLDER": "Accedi"
+ "LABEL": "Indirizzo email",
+ "PLACE_HOLDER": "Indirizzo email"
},
"PASSWORD": {
"LABEL": "Password",
"PLACE_HOLDER": "Password"
},
- "ENABLE_SSL": "Abilita SSL"
+ "ENABLE_SSL": "Abilita SSL",
+ "AUTH_MECHANISM": "Autenticazione"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Riautorizza il tuo account MICROSOFT"
},
"SMTP": {
"TITLE": "SMTP",
"SUBTITLE": "Imposta i dettagli SMTP",
"UPDATE": "Aggiorna impostazioni SMTP",
- "TOGGLE_AVAILABILITY": "Abilita la configurazione SMTP per questa casella",
+ "TOGGLE_AVAILABILITY": "Abilita la configurazione SMTP per questa Inbox",
"TOGGLE_HELP": "Abilitare SMTP aiuterà l'utente a inviare email",
"EDIT": {
"SUCCESS_MESSAGE": "Impostazioni SMTP aggiornate con successo",
"ERROR_MESSAGE": "Impossibile aggiornare le impostazioni SMTP"
},
"ADDRESS": {
- "LABEL": "Indirizzo",
+ "LABEL": "Indirizzo server SMTP",
"PLACE_HOLDER": "Indirizzo (ad esempio: smtp.gmail.com)"
},
"PORT": {
@@ -631,8 +1068,8 @@
"PLACE_HOLDER": "Porta"
},
"LOGIN": {
- "LABEL": "Accedi",
- "PLACE_HOLDER": "Accedi"
+ "LABEL": "Indirizzo email",
+ "PLACE_HOLDER": "Indirizzo email"
},
"PASSWORD": {
"LABEL": "Password",
@@ -645,14 +1082,14 @@
"ENCRYPTION": "Cifratura",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Apri modalità di verifica SSL",
+ "OPEN_SSL_VERIFY_MODE": "Modalità di verifica SSL",
"AUTH_MECHANISM": "Autenticazione"
},
"NOTE": "Nota: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Avatar sito web",
+ "LABEL": "Avatar Sito Web",
"DELETE": {
"API": {
"SUCCESS_MESSAGE": "Avatar eliminato con successo",
@@ -661,9 +1098,9 @@
}
},
"WEBSITE_NAME": {
- "LABEL": "Nome sito web",
- "PLACE_HOLDER": "Inserisci il nome del tuo sito web (ad esempio: Acme Inc)",
- "ERROR": "Inserisci un nome di sito valido"
+ "LABEL": "Nome Sito Web",
+ "PLACE_HOLDER": "Inserisci il nome del tuo sito web (ad esempio: Acme Srl)",
+ "ERROR": "Inserisci un nome sito web valido"
},
"WELCOME_HEADING": {
"LABEL": "Intestazione di benvenuto",
@@ -671,7 +1108,7 @@
},
"WELCOME_TAGLINE": {
"LABEL": "Titolo di benvenuto",
- "PLACE_HOLDER": "Rendiamo semplice connetterci con noi. Chiedete qualsiasi cosa o condividete il vostro feedback."
+ "PLACE_HOLDER": "Siamo qui per aiutarti. Facci una domanda o condividi il tuo feedback."
},
"REPLY_TIME": {
"LABEL": "Tempo di risposta",
@@ -680,15 +1117,16 @@
"IN_A_DAY": "In un giorno"
},
"WIDGET_COLOR_LABEL": "Colore del widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posizione bolla del widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo bolla del widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Posizione:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chatta con noi",
- "LABEL": "Titolo del launcher della bolla del widget",
+ "LABEL": "Titolo del Launcher",
"PLACE_HOLDER": "Chatta con noi"
},
"UPDATE": {
- "BUTTON_TEXT": "Aggiorna impostazioni widget",
+ "BUTTON_TEXT": "Aggiorna Impostazioni Widget",
"API": {
"SUCCESS_MESSAGE": "Impostazioni widget aggiornate con successo",
"ERROR_MESSAGE": "Impossibile aggiornare le impostazioni del widget"
@@ -704,12 +1142,12 @@
},
"WIDGET_BUBBLE_TYPE": {
"STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Bolla espansa"
+ "EXPANDED_BUBBLE": "Bubble espansa"
}
},
"WIDGET_SCREEN": {
"DEFAULT": "Predefinito",
- "CHAT": "Chat"
+ "CHAT": "Modalità Chat"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "In genere risponde in pochi minuti",
@@ -717,7 +1155,7 @@
"IN_A_DAY": "In genere risponde in un giorno"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Avvia conversazione",
+ "START_CONVERSATION_BUTTON_TEXT": "Avvia Conversazione",
"CHAT_INPUT_PLACEHOLDER": "Scrivi il tuo messaggio"
},
"BODY": {
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connetti con Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connetti con Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Altri Provider",
+ "DESCRIPTION": "Connetti con Altri Provider"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Sito Web",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Canale API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voce"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/index.js b/app/javascript/dashboard/i18n/locale/it/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/it/index.js
+++ b/app/javascript/dashboard/i18n/locale/it/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/it/integrationApps.json b/app/javascript/dashboard/i18n/locale/it/integrationApps.json
index fe2fd77b3..58eec7080 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Recupero delle integrazioni",
- "NO_HOOK_CONFIGURED": "Non ci sono integrazioni %{integrationId} configurate in questo account.",
+ "FETCHING": "Caricamento Integrazioni",
+ "NO_HOOK_CONFIGURED": "Non ci sono integrazioni {integrationId} configurate in questo account.",
"HEADER": "Applicazioni",
+ "COUNT": "{n} integrazione | {n} integrazioni",
+ "SEARCH_PLACEHOLDER": "Cerca...",
+ "NO_RESULTS": "Nessun risultato trovato corrispondente alla tua ricerca",
"STATUS": {
"ENABLED": "Abilitato",
"DISABLED": "Disabilitato"
@@ -29,8 +32,9 @@
}
},
"LIST": {
- "FETCHING": "Recupero degli hook di integrazione",
- "INBOX": "Casella",
+ "FETCHING": "Caricamento hook integrazioni",
+ "INBOX": "Inbox",
+ "ACTIONS": "Azioni",
"DELETE": {
"BUTTON_TEXT": "Elimina"
}
@@ -38,10 +42,11 @@
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Seleziona casella",
- "PLACEHOLDER": "Seleziona casella"
+ "LABEL": "Seleziona Inbox",
+ "PLACEHOLDER": "Seleziona Inbox"
},
"SUBMIT": "Crea",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Annulla"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnetti"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow è una piattaforma di comprensione del linguaggio naturale che rende facile progettare e integrare un'interfaccia utente conversazionale nella tua app mobile, applicazione web, dispositivo, bot, sistema di risposta vocale interattivo e così via.
L'integrazione di Dialogflow con %{installationName} ti permette di configurare un bot Dialogflow con le tue caselle che consente al bot di gestire le query inizialmente e consegnarle ad un agente quando necessario. Dialogflow può essere utilizzato per qualificare i lead, ridurre il carico di lavoro degli agenti fornendo domande frequenti, ecc.
Per aggiungere Dialogflow, è necessario creare un account di servizio nella console del progetto Google e condividere le credenziali. Fare riferimento ai documenti di Dialogflow per ulteriori informazioni."
+ "DIALOGFLOW": "Dialogflow è una piattaforma di elaborazione del linguaggio naturale per la costruzione di interfacce conversazionali. L'integrazione con {installationName} permette ai bot di gestire le richieste prima e trasferirle agli operatori solo quando necessario. Aiuta a qualificare i lead e ridurre il carico di lavoro dell'agente rispondendo alle domande frequenti. Per aggiungere Dialogflow, crea un Service Account in Google Console e inserisci le credenziali. Consulta i documenti per dettagli"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/integrations.json b/app/javascript/dashboard/i18n/locale/it/integrations.json
index fca21ca3a..96f6bd0c0 100644
--- a/app/javascript/dashboard/i18n/locale/it/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/it/integrations.json
@@ -1,27 +1,73 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Elimina Integrazione Shopify",
+ "MESSAGE": "Sei sicuro di voler eliminare l'integrazione Shopify?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connetti Store Shopify",
+ "LABEL": "URL Store",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Inserisci l'URL del tuo store Shopify myshopify.com",
+ "CANCEL": "Annulla",
+ "SUBMIT": "Connetti Store"
+ },
+ "ERROR": "Si è verificato un errore nella connessione a Shopify. Si prega di riprovare o contattare il supporto se il problema persiste."
+ },
"HEADER": "Integrazioni",
+ "DESCRIPTION": "Chatwoot si integra con più strumenti e servizi per migliorare l'efficienza del tuo team. Esplora l'elenco qui sotto per configurare le tue app preferite.",
+ "LEARN_MORE": "Scopri di più sulle integrazioni",
+ "LOADING": "Caricamento integrazioni",
+ "SEARCH_PLACEHOLDER": "Cerca integrazioni...",
+ "NO_RESULTS": "Nessuna integrazione trovata corrispondente alla tua ricerca",
+ "CAPTAIN": {
+ "DISABLED": "Captain non è abilitato sul tuo account.",
+ "CLICK_HERE_TO_CONFIGURE": "Clicca qui per configurare",
+ "LOADING_CONSOLE": "Caricamento Console Captain...",
+ "FAILED_TO_LOAD_CONSOLE": "Caricamento della Console Captain non riuscito. Aggiorna e riprova."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Eventi iscritti",
+ "SUBSCRIBED_EVENTS": "Eventi Sottoscritti",
+ "LEARN_MORE": "Scopri di più sui webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copia secret negli appunti",
+ "COPY_SUCCESS": "Secret copiato negli appunti",
+ "TOGGLE": "Cambia visibilità secret",
+ "CREATED_DESC": "Il tuo webhook è stato creato. Usa il secret qui sotto per verificare le signature del webhook. Per favore copialo ora — lo puoi ritrovare più tardi nel modulo di modifica webhook.",
+ "DONE": "Fatto"
+ },
+ "COUNT": "{n} webhook | {n} webhook",
+ "SEARCH_PLACEHOLDER": "Cerca webhook...",
+ "NO_RESULTS": "Nessun webhook trovato corrispondente alla tua ricerca",
"FORM": {
"CANCEL": "Annulla",
"DESC": "Gli eventi Webhook ti forniscono le informazioni in tempo reale su ciò che sta accadendo nel tuo account Chatwoot. Per favore inserisci un URL valido per configurare un callback.",
"SUBSCRIPTIONS": {
"LABEL": "Eventi",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversazione creata",
+ "CONVERSATION_CREATED": "Conversazione Creata",
"CONVERSATION_STATUS_CHANGED": "Stato conversazione cambiato",
"CONVERSATION_UPDATED": "Conversazione aggiornata",
"MESSAGE_CREATED": "Messaggio creato",
"MESSAGE_UPDATED": "Messaggio aggiornato",
"WEBWIDGET_TRIGGERED": "Widget live chat aperto dall'utente",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONTACT_CREATED": "Contatto creato",
+ "CONTACT_UPDATED": "Contatto aggiornato",
+ "CONVERSATION_TYPING_ON": "Digitazione conversazione attiva",
+ "CONVERSATION_TYPING_OFF": "Digitazione conversazione disattiva",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Nome Webhook",
+ "PLACEHOLDER": "Inserisci un nome per il webhook"
+ },
"END_POINT": {
"LABEL": "URL del webhook",
- "PLACEHOLDER": "Esempio: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Inserisci un URL valido"
},
"EDIT_SUBMIT": "Aggiorna webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Non ci sono webhook configurati per questo account.",
"TITLE": "Gestisci webhook",
- "TABLE_HEADER": [
- "Endpoint Webhook",
- "Azioni"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Endpoint Webhook",
+ "ACTIONS": "Azioni"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Modifica",
@@ -65,95 +111,118 @@
"ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
},
"CONFIRM": {
- "TITLE": "Conferma eliminazione",
- "MESSAGE": "Sei sicuro di voler eliminare il webhook? (%{webhookURL})",
- "YES": "Sì, elimina ",
- "NO": "No, conserva"
+ "TITLE": "Conferma Eliminazione",
+ "MESSAGE": "Sei sicuro di voler eliminare il webhook? ({webhookURL})",
+ "YES": "Sì, Elimina ",
+ "NO": "No, Conserva"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Elimina",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "Elimina l'integrazione",
+ "MESSAGE": "Sei sicuro di voler eliminare l'integrazione? Così facendo si perderà l'accesso alle conversazioni nel tuo workspace Slack."
},
"HELP_TEXT": {
"TITLE": "Stai utilizzando l'integrazione Slack",
- "BODY": "
Chatwoot ora sincronizzerà tutte le conversazioni in arrivo nel canale conversazioni dei clienti all'interno del tuo spazio di lavoro Slack.
Rispondendo a un thread di conversazione nel canale Slack conversazioni dei clienti verrà creata una risposta al cliente attraverso chatwoot.
Inizia le risposte con nota: per creare note private invece che risposte.
Se il replicante su slack ha un profilo agente in chatwoot sotto la stessa email, le risposte saranno associate di conseguenza.
Quando il replicante non ha un profilo di agente associato, le risposte saranno fatte dal profilo del bot.
",
- "SELECTED": "selected"
+ "BODY": "Con questa integrazione, tutte le conversazioni in arrivo verranno sincronizzate nel canale ***{selectedChannelName}*** del tuo workspace Slack. Potrai gestire tutte le conversazioni con i clienti direttamente dal canale e non perderai mai un messaggio.\n\nEcco le principali funzionalità dell’integrazione:\n\n**Rispondi alle conversazioni direttamente da Slack:** Per rispondere a una conversazione nel canale Slack ***{selectedChannelName}***, ti basta scrivere il tuo messaggio e inviarlo come thread. Questo invierà automaticamente la risposta al cliente tramite Chatwoot. Semplice!\n\n**Crea note private:** Se vuoi aggiungere note private invece di risposte, inizia il messaggio con ***`note:`***. In questo modo il messaggio resterà privato e non sarà visibile al cliente.\n\n**Associa un profilo operatore:** Se la persona che risponde su Slack ha un profilo operatore in app con lo stesso indirizzo email, le risposte verranno associate automaticamente a quel profilo. In questo modo potrai sapere facilmente chi ha risposto e quando. Se invece chi risponde non ha un profilo operatore associato, le risposte verranno inviate al cliente dal profilo del bot.",
+ "SELECTED": "selezionato"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "Seleziona un canale",
"UPDATE": "Aggiorna",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "Connetti canale",
+ "DESCRIPTION": "Il tuo workspace Slack è ora collegato a Chatwoot. Tuttavia, l'integrazione è attualmente inattiva. Per attivare l'integrazione e collegare un canale a Chatwoot, fare clic sul pulsante qui sotto.\n\n**Nota:** Se stai tentando di collegare un canale privato, aggiungi l'app Chatwoot al canale Slack prima di procedere con questo passaggio.",
+ "ATTENTION_REQUIRED": "Attenzione richiesta",
+ "EXPIRED": "La tua integrazione con Slack è scaduta. Per continuare a ricevere messaggi su Slack, elimina l'integrazione e connetti nuovamente il tuo workspace."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "Si è verificato un errore durante l'aggiornamento dell'integrazione, riprova",
+ "UPDATE_SUCCESS": "Il canale è connesso con successo",
+ "FAILED_TO_FETCH_CHANNELS": "Si è verificato un errore nel recupero dei canali da Slack, per favore riprova"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "Clicca qui per unirti",
+ "LEAVE_THE_ROOM": "Lascia la stanza",
+ "START_VIDEO_CALL_HELP_TEXT": "Avvia una nuova videochiamata con il cliente",
+ "JOIN_ERROR": "Si è verificato un errore nell'unirsi alla chiamata, riprova",
+ "CREATE_ERROR": "Si è verificato un errore durante la creazione di un link alla riunione, riprova"
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} con l'AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "Suggerimenti di Risposta",
+ "SUMMARIZE": "Riassumi",
+ "REPHRASE": "Migliora la Scrittura",
+ "FIX_SPELLING_GRAMMAR": "Correggi ortografia e grammatica",
+ "SHORTEN": "Abbrevia",
+ "EXPAND": "Espandi",
+ "MAKE_FRIENDLY": "Cambia il tono del messaggio in amichevole",
+ "MAKE_FORMAL": "Usa un tono formale",
+ "SIMPLIFY": "Semplifica",
+ "CONFIDENT": "Usa un tono sicuro",
+ "PROFESSIONAL": "Usa un tono professionale",
+ "CASUAL": "Usa un tono informale",
+ "STRAIGHTFORWARD": "Usa un tono diretto"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Migliora la risposta",
+ "IMPROVE_REPLY_SELECTION": "Migliora il testo selezionato",
+ "CHANGE_TONE": {
+ "TITLE": "Cambia tono",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professionale",
+ "CASUAL": "Informale",
+ "STRAIGHTFORWARD": "Diretto",
+ "CONFIDENT": "Sicuro",
+ "FRIENDLY": "Amichevole"
+ }
+ },
+ "GRAMMAR": "Correggi grammatica e ortografia",
+ "SUGGESTION": "Suggerisci una risposta",
+ "SUMMARIZE": "Riassumi la conversazione",
+ "ASK_COPILOT": "Chiedi a Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "Contenuti in bozza",
+ "GENERATED_TITLE": "Contenuti generati",
+ "AI_WRITING": "L'AI sta scrivendo",
"BUTTONS": {
- "APPLY": "Use this suggestion",
- "CANCEL": "annulla"
+ "APPLY": "Usa questo suggerimento",
+ "CANCEL": "Annulla"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "Integra con OpenAI",
+ "DESC": "Porta funzionalità AI avanzate nella tua dashboard con i modelli GPT di OpenAI. Per iniziare, inserisci la chiave API dal tuo account OpenAI.",
+ "KEY_PLACEHOLDER": "Inserisci la tua chiave API OpenAI",
"BUTTONS": {
"NEED_HELP": "Hai bisogno di aiuto?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "DISMISS": "Ignora",
+ "FINISH": "Completa Setup"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "Puoi configurare l'integrazione di OpenAI più tardi quando vuoi.",
+ "SUCCESS_MESSAGE": "Setup integrazione OpenAI completato con successo"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "Migliora con AI",
+ "SUMMARY_TITLE": "Riassunto con AI",
+ "REPLY_TITLE": "Suggerimenti di risposta con AI",
+ "SUBTITLE": "Una risposta migliorata verrà generata utilizzando l'AI, in base alla tua bozza attuale.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "Tono",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "Professionale",
+ "FRIENDLY": "Amichevole"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "Genera",
+ "GENERATING": "Generazione...",
"CANCEL": "Annulla"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "Si è verificato un errore nell'elaborazione del contenuto, verifica la tua chiave API OpenAI e riprova"
},
"DELETE": {
"BUTTON_TEXT": "Elimina",
@@ -165,17 +234,22 @@
"BUTTON_TEXT": "Connetti"
},
"DASHBOARD_APPS": {
- "TITLE": "App dashboard",
- "HEADER_BTN_TXT": "Aggiungi una nuova app dashboard",
- "SIDEBAR_TXT": "App dashboard
Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno del cruscotto Chatwoot per fornire il contesto per gli agenti di assistenza clienti. Questa funzione consente di creare un'applicazione in modo indipendente e incorporata all'interno della dashboard per fornire informazioni all'utente, i loro ordini, o la loro cronologia di pagamento precedente.
Quando hai incorporato la tua applicazione usando il cruscotto in Chatwoot, la tua applicazione avrà il contesto della conversazione e del contatto come evento finestra. Implementa un ascoltatore per l'evento del messaggio sulla tua pagina per ricevere il contesto.
Per aggiungere una nuova app dashboard, clicca sul pulsante 'Aggiungi una nuova app dashboard'.
",
- "DESCRIPTION": "Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno della dashboard per fornire il contesto per gli agenti di assistenza clienti. Questa funzione consente di creare un'applicazione in modo indipendente e incorporare che per fornire informazioni sull'utente, i suoi ordini o la loro cronologia di pagamento precedente.",
+ "TITLE": "App Dashboard",
+ "HEADER_BTN_TXT": "Aggiungi una nuova App Dashboard",
+ "SIDEBAR_TXT": "App dashboard
Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno di Chatwoot per fornire informazioni aggiuntive agli operatorii. Questa funzione consente di creare un'applicazione in modo indipendente e incorporata all'interno della dashboard per fornire informazioni degli utenti, ad esempio ordini o pagamenti effettuati.
Quando integri la tua applicazione usando la dashboard Chatwoot, la tua applicazione avrà il context della conversazione e del contatto come evento window. Implementa un listener per l'evento del messaggio sulla tua pagina per ricevere i dati.
Per aggiungere una nuova app dashboard, clicca sul pulsante 'Aggiungi una nuova app dashboard'.
",
+ "DESCRIPTION": "Le app dashboard consentono alle organizzazioni di incorporare un'applicazione all'interno della dashboard per fornire dati aggiuntivi agli operatori. Questa funzione consente di creare un'applicazione in modo indipendente e incorporarla per fornire informazioni sull'utente, i suoi ordini o la loro cronologia di pagamento precedente.",
+ "LEARN_MORE": "Scopri di più sulle App Dashboard",
+ "COUNT": "{n} app dashboard | {n} app dashboard",
+ "SEARCH_PLACEHOLDER": "Cerca app dashboard...",
+ "NO_RESULTS": "Nessuna app dashboard trovata corrispondente alla tua ricerca",
"LIST": {
"404": "Non ci sono ancora app dashboard configurate su questo account",
- "LOADING": "Recupero delle app dashboard...",
- "TABLE_HEADER": [
- "Nome",
- "Endpoint"
- ],
+ "LOADING": "Caricamento app dashboard...",
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Azioni"
+ },
"EDIT_TOOLTIP": "Modifica app",
"DELETE_TOOLTIP": "Elimina app"
},
@@ -184,11 +258,11 @@
"TITLE_PLACEHOLDER": "Inserisci un nome per la tua app dashboard",
"TITLE_ERROR": "È richiesto un nome per l'app dashboard",
"URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Inserisci l'URL dell'endpoint dove la tua app è ospitata",
+ "URL_PLACEHOLDER": "Inserisci l'URL dell'endpoint dove la tua app è hostata",
"URL_ERROR": "È richiesto un URL valido"
},
"CREATE": {
- "HEADER": "Aggiungi una nuova app dashboard",
+ "HEADER": "Aggiungi una nuova App Dashboard",
"FORM_SUBMIT": "Invia",
"FORM_CANCEL": "Annulla",
"API_SUCCESS": "App dashboard configurata con successo",
@@ -202,13 +276,829 @@
"API_ERROR": "Non è stato possibile aggiornare l'app. Riprova più tardi"
},
"DELETE": {
- "CONFIRM_YES": "Sì, eliminalo",
- "CONFIRM_NO": "No, mantienilo",
+ "CONFIRM_YES": "Sì, elimina",
+ "CONFIRM_NO": "No, mantieni",
"TITLE": "Conferma eliminazione",
- "MESSAGE": "Sei sicuro di voler eliminare l'app - %{appName}?",
+ "MESSAGE": "Sei sicuro di voler eliminare l'app - {appName}?",
"API_SUCCESS": "App dashboard cancellata con successo",
"API_ERROR": "Non è stato possibile eliminare l'app. Riprova più tardi"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Crea/collega issue Linear",
+ "LOADING": "Caricamento issue Linear...",
+ "LOADING_ERROR": "Si è verificato un errore nel recupero delle issue Linear, si prega di riprovare",
+ "CREATE": "Crea",
+ "LINK": {
+ "SEARCH": "Cerca issue",
+ "SELECT": "Seleziona issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "Nessuna issue Linear trovata",
+ "LOADING": "Caricamento",
+ "ERROR": "Si è verificato un errore nel recupero delle issue Linear, si prega di riprovare",
+ "LINK_SUCCESS": "Issue collegata con successo",
+ "LINK_ERROR": "Si è verificato un errore durante il collegamento della issue, per favore riprova",
+ "LINK_TITLE": "Conversazione (#{conversationId}) con {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Crea/collega issue Linear",
+ "DESCRIPTION": "Creare issue Linear dalle conversazioni, o collega quelle esistenti per un monitoraggio costante.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titolo",
+ "PLACEHOLDER": "Inserisci titolo",
+ "REQUIRED_ERROR": "Titolo richiesto"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Inserisci descrizione"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Seleziona team",
+ "SEARCH": "Cerca team",
+ "REQUIRED_ERROR": "Team richiesto"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assegnatario",
+ "PLACEHOLDER": "Seleziona assegnatario",
+ "SEARCH": "Cerca assegnatario"
+ },
+ "PRIORITY": {
+ "LABEL": "Priorità",
+ "PLACEHOLDER": "Seleziona priorità",
+ "SEARCH": "Cerca priorità"
+ },
+ "LABEL": {
+ "LABEL": "Etichetta",
+ "PLACEHOLDER": "Seleziona etichetta",
+ "SEARCH": "Cerca etichetta"
+ },
+ "STATUS": {
+ "LABEL": "Stato",
+ "PLACEHOLDER": "Seleziona stato",
+ "SEARCH": "Cerca stato"
+ },
+ "PROJECT": {
+ "LABEL": "Progetto",
+ "PLACEHOLDER": "Seleziona progetto",
+ "SEARCH": "Cerca progetto"
+ }
+ },
+ "CREATE": "Crea",
+ "CANCEL": "Annulla",
+ "CREATE_SUCCESS": "Issue creata con successo",
+ "CREATE_ERROR": "Si è verificato un errore durante la creazione della issue, per favore riprova",
+ "LOADING_TEAM_ERROR": "Si è verificato un errore nel caricamento dei team, riprova",
+ "LOADING_TEAM_ENTITIES_ERROR": "Si è verificato un errore nel caricamento delle entità dei team, riprova"
+ },
+ "ISSUE": {
+ "STATUS": "Stato",
+ "PRIORITY": "Priorità",
+ "ASSIGNEE": "Assegnatario",
+ "LABELS": "Etichette",
+ "CREATED_AT": "Creato {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Disconnetti",
+ "SUCCESS": "Issue scollegata con successo",
+ "ERROR": "Si è verificato un errore durante lo scollegamento della issue, riprova"
+ },
+ "NO_LINKED_ISSUES": "Nessuna issue collegata trovata",
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare l'integrazione?",
+ "MESSAGE": "Sei sicuro di voler eliminare l'integrazione?",
+ "CONFIRM": "Sì, elimina",
+ "CANCEL": "Annulla"
+ },
+ "CTA": {
+ "TITLE": "Connetti a Linear",
+ "AGENT_DESCRIPTION": "Il workspace di Linear non è connesso. Richiedi all'amministratore di connettere un workspace per utilizzare questa integrazione.",
+ "DESCRIPTION": "Il workspace di Linear non è connesso. Fai clic sul pulsante qui sotto per collegare il workspace per utilizzare questa integrazione.",
+ "BUTTON_TEXT": "Connetti workspace Linear"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare l'integrazione di Notion?",
+ "MESSAGE": "L'eliminazione di questa integrazione rimuoverà l'accesso al tuo workspace Notion e interromperà tutte le funzionalità correlate.",
+ "CONFIRM": "Sì, elimina",
+ "CANCEL": "Annulla"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Scopri di più",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistenti",
+ "SWITCH_ASSISTANT": "Cambia assistenti",
+ "NEW_ASSISTANT": "Crea Assistente",
+ "EMPTY_LIST": "Nessun assistente trovato, creane uno per iniziare"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Prova questi prompt",
+ "PANEL_TITLE": "Inizia a usare Copilot",
+ "KICK_OFF_MESSAGE": "Hai bisogno di un riassunto rapido, vuoi controllare le conversazioni passate o vuoi scrivere risposte migliori? Copilot è qui per te.",
+ "SEND_MESSAGE": "Invia messaggio...",
+ "EMPTY_MESSAGE": "Si è verificato un errore durante la generazione della risposta. Riprova.",
+ "LOADER": "Captain sta pensando",
+ "YOU": "Tu",
+ "USE": "Usa questo",
+ "RESET": "Reimposta",
+ "SHOW_STEPS": "Mostra i passaggi",
+ "SELECT_ASSISTANT": "Seleziona Assistente",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Riassumi questa conversazione",
+ "CONTENT": "Riassumi i punti chiave discussi tra il cliente e l'operatore, compresi i dubbi, le domande del cliente e le soluzioni o risposte fornite dall'operatore"
+ },
+ "SUGGEST": {
+ "LABEL": "Suggerisci una risposta",
+ "CONTENT": "Analizzare la richiesta del cliente e prepara una risposta che risponda efficacemente ai suoi dubbi o domande. Assicurati che la risposta sia chiara, concisa e fornisca informazioni utili."
+ },
+ "RATE": {
+ "LABEL": "Valuta questa conversazione",
+ "CONTENT": "Valuta la conversazione per vedere quanto soddisfa le esigenze del cliente. Dai una valutazione da 1 a 5 in base al tono, alla chiarezza e all'efficacia."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Conversazioni ad alta priorità",
+ "CONTENT": "Dammi un riassunto di tutte le conversazioni aperte ad alta priorità. Includi l'ID della conversazione, il nome del cliente (se disponibile), il contenuto dell'ultimo messaggio e l'operatore assegnato. Raggruppa per stato se pertinente."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Elenca contatti",
+ "CONTENT": "Mostrami l'elenco dei primi 10 contatti. Includi nome, email o numero di telefono (se disponibile), orario di ultima lettura, tag (se presenti)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Tu",
+ "ASSISTANT": "Assistente",
+ "MESSAGE_PLACEHOLDER": "Scrivi il tuo messaggio...",
+ "HEADER": "Area di prova",
+ "DESCRIPTION": "Usa questo playground per inviare messaggi al tuo assistente e controllare se risponde correttamente, rapidamente e con il tono che ti aspetti.",
+ "CREDIT_NOTE": "I messaggi inviati qui vengono scalati dai crediti Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per usare Captain AI",
+ "AVAILABLE_ON": "Captain non è disponibile sul piano gratuito.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso ai nostri assistenti, copilot e altro ancora.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI è disponibile solo nei piani Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso ai nostri assistenti, copilot e altro ancora.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ },
+ "BANNER": {
+ "RESPONSES": "Hai usato oltre l'80% del tuo limite di risposte. Per continuare a utilizzare Captain AI, per favore aggiorna.",
+ "DOCUMENTS": "Raggiunto il limite di documenti. Aggiorna per continuare a usare Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Annulla",
+ "CREATE": "Crea",
+ "EDIT": "Aggiorna"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Assistenti",
+ "NO_ASSISTANTS_AVAILABLE": "Non ci sono assistenti disponibili nel tuo account.",
+ "ADD_NEW": "Crea un nuovo assistente",
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare l'assistente?",
+ "DESCRIPTION": "Questa azione è permanente. L'eliminazione di questo assistente la rimuoverà da tutte le inbox connesse e cancellerà definitivamente tutte le knowledge generate.",
+ "CONFIRM": "Sì, elimina",
+ "SUCCESS_MESSAGE": "L'assistente è stato eliminato con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione dell'assistente, riprova."
+ },
+ "FORM_DESCRIPTION": "Compila i dettagli qui sotto per dare un nome al tuo assistente, descriverne lo scopo e specificare il prodotto per cui offirà supporto.",
+ "CREATE": {
+ "TITLE": "Crea un assistente",
+ "SUCCESS_MESSAGE": "L'assistente è stato creato correttamente",
+ "ERROR_MESSAGE": "Si è verificato un errore durante la creazione dell'assistente, riprova."
+ },
+ "FORM": {
+ "UPDATE": "Aggiorna",
+ "SECTIONS": {
+ "BASIC_INFO": "Informazioni di Base",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Istruzioni",
+ "FEATURES": "Funzionalità",
+ "TOOLS": "Strumenti "
+ },
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Inserisci il nome dell'assistente",
+ "ERROR": "Il nome è richiesto"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Temperatura della Risposta",
+ "DESCRIPTION": "Regola quanto dovrebbero essere creative o restrittive le risposte dell'assistente. I valori più bassi producono risposte più mirate e deterministiche, mentre i valori più elevati consentono di ottenere risultati più creativi e variegati."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Inserisci la descrizione dell'assistente",
+ "ERROR": "La descrizione è richiesta"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Nome Prodotto",
+ "PLACEHOLDER": "Inserisci il nome del prodotto",
+ "ERROR": "Il nome del prodotto è richiesto"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Messaggio di Benvenuto",
+ "PLACEHOLDER": "Inserisci il messaggio di benvenuto"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Messaggio di Handoff",
+ "PLACEHOLDER": "Inserisci messaggio di handoff"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Messaggio di Risoluzione",
+ "PLACEHOLDER": "Inserisci il messaggio di risoluzione"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Istruzioni",
+ "PLACEHOLDER": "Inserisci le istruzioni per l'assistente"
+ },
+ "FEATURES": {
+ "TITLE": "Funzionalità",
+ "ALLOW_CONVERSATION_FAQS": "Genera FAQ dalle conversazioni risolte",
+ "ALLOW_MEMORIES": "Salva memorie e dettagli chiave dalle interazioni con i clienti.",
+ "ALLOW_CITATIONS": "Includi citazioni alle fonti nelle risposte",
+ "ALLOW_CONTACT_ATTRIBUTES": "Consenti accesso alle informazioni di contatto"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Aggiorna l'assistente",
+ "SUCCESS_MESSAGE": "L'assistente è stato aggiornato correttamente",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento dell'assistente, riprova.",
+ "NOT_FOUND": "Impossibile trovare l'assistente. Riprova."
+ },
+ "SETTINGS": {
+ "HEADER": "Impostazioni",
+ "BASIC_SETTINGS": {
+ "TITLE": "Impostazioni di base",
+ "DESCRIPTION": "Personalizza ciò che l'assistente dice quando termina una conversazione o la trasferisce a un umano."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "Impostazioni di sistema",
+ "DESCRIPTION": "Personalizza ciò che l'assistente dice quando termina una conversazione o la trasferisce a un umano."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "Impostazioni avanzate",
+ "DESCRIPTION": "Aggiungi maggiore controllo all’assistente. (Funziona come un flusso: guardrails → scenari → output) Incoraggia a sfruttare al meglio queste impostazioni.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrail",
+ "DESCRIPTION": "Mantieni l’assistente concentrato: risponde solo ai tipi di domande che desideri, evitando argomenti fuori tema o non consentiti."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Linee guida per le risposte",
+ "DESCRIPTION": "Imposta il tono e la struttura delle risposte del tuo assistente: chiare e amichevoli? Brevi e dirette? Dettagliate e formali?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Elimina Assistente",
+ "DESCRIPTION": "Questa azione è permanente. L'eliminazione di questo assistente la rimuoverà da tutte le inbox connesse e cancellerà definitivamente tutte le knowledge generate.",
+ "BUTTON_TEXT": "Elimina {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Modifica Assistente",
+ "DELETE_ASSISTANT": "Elimina Assistente",
+ "VIEW_CONNECTED_INBOXES": "Visualizza inbox connesse"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessun assistente disponibile",
+ "SUBTITLE": "Crea un assistente per fornire risposte rapide e accurate agli utenti. Può imparare dagli articoli dell'Help Center e dalle conversazioni passate.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Assistant",
+ "NOTE": "Captain Assistant interagisce direttamente con i clienti, impara dai documenti e dalle conversazioni passate e fornisce risposte rapide e accurate. Gestisce le richieste iniziali, fornendo risoluzioni rapide prima di trasferire ad un operatore quando necessario."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrail",
+ "DESCRIPTION": "Mantieni l’assistente concentrato: risponde solo ai tipi di domande che desideri, evitando argomenti fuori tema o non consentiti.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} elemento selezionato | {count} elementi selezionati",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "UNSELECT_ALL": "Deseleziona tutto ({count})",
+ "BULK_DELETE_BUTTON": "Elimina"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Guardrail di esempio",
+ "ADD": "Aggiungi tutto",
+ "ADD_SINGLE": "Aggiungi questo",
+ "SAVE": "Aggiungi e salva (↵)",
+ "PLACEHOLDER": "Digita un altro guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Aggiungi un guardrail",
+ "CREATE": "Crea",
+ "CANCEL": "Annulla",
+ "PLACEHOLDER": "Digita un altro guardrail...",
+ "TEST_ALL": "Testa tutto"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cerca..."
+ },
+ "EMPTY_MESSAGE": "Nessun guardrail trovato. Crea o aggiungi esempi per iniziare.",
+ "SEARCH_EMPTY_MESSAGE": "Nessun guardrail trovato per questa ricerca.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrail aggiunti correttamente",
+ "ERROR": "Si è verificato un errore nell'aggiunta di guardrail, riprova."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrail aggiornati con successo",
+ "ERROR": "Si è verificato un errore durante l'aggiornamento dei guardrail, riprova."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrail eliminati con successo",
+ "ERROR": "Si è verificato un errore nell'eliminazione dei guardrail, riprova."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Linee Guida per le Risposte",
+ "DESCRIPTION": "Imposta il tono e la struttura delle risposte del tuo assistente: chiare e amichevoli? Brevi e dirette? Dettagliate e formali?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} elemento selezionato | {count} elementi selezionati",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "UNSELECT_ALL": "Deseleziona tutto ({count})",
+ "BULK_DELETE_BUTTON": "Elimina"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Esempio di Linee Guida per le Risposte",
+ "ADD": "Aggiungi tutto",
+ "ADD_SINGLE": "Aggiungi questo",
+ "SAVE": "Aggiungi e salva (↵)",
+ "PLACEHOLDER": "Digita un'altra linea guida di risposta..."
+ },
+ "NEW": {
+ "TITLE": "Aggiungi una linea guida per le risposte",
+ "CREATE": "Crea",
+ "CANCEL": "Annulla",
+ "PLACEHOLDER": "Digita un'altra linea guida di risposta...",
+ "TEST_ALL": "Testa tutto"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cerca..."
+ },
+ "EMPTY_MESSAGE": "Nessuna linea guida per le risposte trovata. Crea o aggiungi esempi per iniziare.",
+ "SEARCH_EMPTY_MESSAGE": "Nessuna linea guida per le risposte trovata per questa ricerca.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Linee guida per le risposte aggiunte correttamente",
+ "ERROR": "Si è verificato un errore nell'aggiunta delle linee guida, riprova."
+ },
+ "UPDATE": {
+ "SUCCESS": "Linee guida aggiornate correttamente",
+ "ERROR": "Si è verificato un errore durante l'aggiornamento delle linee guida, riprova."
+ },
+ "DELETE": {
+ "SUCCESS": "Linee guida eliminate correttamente",
+ "ERROR": "Si è verificato un errore durante l'eliminazione delle linee guida, riprova."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenari",
+ "DESCRIPTION": "Fornisci contesto aggiuntivo al tuo assistente, ad esempio “cosa fare quando un utente è bloccato” o “come comportarsi durante una richiesta di rimborso”.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} elemento selezionato | {count} elementi selezionati",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "UNSELECT_ALL": "Deseleziona tutto ({count})",
+ "BULK_DELETE_BUTTON": "Elimina"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Scenari di esempio",
+ "ADD": "Aggiungi tutto",
+ "ADD_SINGLE": "Aggiungi questo",
+ "TOOLS_USED": "Strumenti utilizzati:"
+ },
+ "NEW": {
+ "CREATE": "Aggiungi uno scenario",
+ "TITLE": "Crea uno scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titolo",
+ "PLACEHOLDER": "Inserisci un nome per lo scenario",
+ "ERROR": "Nome dello scenario richiesto"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Descrivi come e dove questo scenario verrà utilizzato",
+ "ERROR": "Descrizione dello scenario richiesta"
+ },
+ "INSTRUCTION": {
+ "LABEL": "Come gestire",
+ "PLACEHOLDER": "Descrivere come e dove sarà gestito questo scenario",
+ "ERROR": "Il contenuto dello scenario è richiesto"
+ },
+ "CREATE": "Crea",
+ "CANCEL": "Annulla"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Annulla",
+ "UPDATE": "Aggiorna le modifiche"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cerca..."
+ },
+ "EMPTY_MESSAGE": "Nessun scenario trovato. Crea o aggiungi esempi per iniziare.",
+ "SEARCH_EMPTY_MESSAGE": "Nessun scenario trovato per questa ricerca.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenari aggiunti correttamente",
+ "ERROR": "Si è verificato un errore durante l'aggiunta degli scenari, riprova."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenari aggiornati correttamente",
+ "ERROR": "Si è verificato un errore durante l'aggiornamento degli scenari, riprova."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenari eliminati correttamente",
+ "ERROR": "Si è verificato un errore durante l'eliminazione degli scenari, riprova."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documenti",
+ "ADD_NEW": "Crea un nuovo documento",
+ "SELECTED": "{count} selezionate",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "UNSELECT_ALL": "Deseleziona tutto ({count})",
+ "BULK_DELETE_BUTTON": "Elimina",
+ "BULK_SYNC_BUTTON": "Aggiorna",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Sì, elimina tutte",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Riaggiornamento in coda per 1 documento",
+ "SUCCESS_MESSAGE": "Riaggiornamento in coda per {count} documenti",
+ "ZERO_MESSAGE": "Nessun documento contrassegnato per il riaggiornamento.",
+ "ERROR_MESSAGE": "Si è verificato un errore nella coda di riaggiornamento, riprova."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Riaggiornamento in coda. Il documento verrà aggiornato a breve.",
+ "ERROR_MESSAGE": "Impossibile avviare la coda di riaggiornamento, riprova."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "Tutte le fonti",
+ "WEB": "Pagine web",
+ "PDF": "PDF"
+ },
+ "STATUS": {
+ "ANY": "Tutti gli stati",
+ "UPDATED": "Aggiornato",
+ "NEEDS_UPDATE": "Richiede aggiornamento",
+ "UPDATING": "Aggiornamento in corso",
+ "FAILED": "Non Riuscito"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Aggiornato di recente",
+ "RECENTLY_CREATED": "Creato di recente"
+ },
+ "SEARCH_PLACEHOLDER": "Cerca..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "ultimo aggiornamento {time}",
+ "SYNCING": "aggiornamento...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Sincronizzazione fallita",
+ "NEVER_SYNCED": "non ancora aggiornato"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Pagina non trovata",
+ "ACCESS_DENIED": "Accesso negato",
+ "TIMEOUT": "La pagina ha impiegato troppo tempo per rispondere",
+ "CONTENT_EMPTY": "La pagina ha restituito contenuto vuoto",
+ "FETCH_FAILED": "Impossibile recuperare la pagina",
+ "SYNC_ERROR": "Errore imprevisto",
+ "DEFAULT": "Errore di sincronizzazione"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "FAQ Correlate",
+ "DESCRIPTION": "Queste FAQ vengono generate direttamente dai Documenti."
+ },
+ "FORM_DESCRIPTION": "Inserisci l'URL del documento per aggiungerlo come fonte e scegli l'assistente con cui associarlo.",
+ "CREATE": {
+ "TITLE": "Aggiungi un documento",
+ "SUCCESS_MESSAGE": "Il documento è stato creato correttamente",
+ "ERROR_MESSAGE": "Si è verificato un errore durante la creazione del documento, riprova."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Tipo di Documento",
+ "URL": "URL",
+ "PDF": "File PDF"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Inserisci l'URL del documento",
+ "ERROR": "Inserisci un URL valido per il documento"
+ },
+ "PDF_FILE": {
+ "LABEL": "File PDF",
+ "CHOOSE_FILE": "Seleziona file PDF",
+ "ERROR": "Seleziona un file PDF",
+ "HELP_TEXT": "Dimensione massima del file: 10MB",
+ "INVALID_TYPE": "Seleziona un file PDF valido",
+ "TOO_LARGE": "La dimensione del file supera il limite di 10MB"
+ },
+ "NAME": {
+ "LABEL": "Nome Documento (Opzionale)",
+ "PLACEHOLDER": "Inserisci un nome per il documento"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare il documento?",
+ "DESCRIPTION": "Questa azione è permanente. L'eliminazione di questo documento cancellerà definitivamente tutte le conoscenze generate.",
+ "CONFIRM": "Sì, elimina",
+ "SUCCESS_MESSAGE": "Il documento è stato eliminato con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione del documento, riprova."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Visualizza FAQ Correlate",
+ "SYNC_NOW": "Aggiorna ora",
+ "RETRY_SYNC": "Riprova ad aggiornare",
+ "DELETE_DOCUMENT": "Elimina Documento"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessun documento disponibile",
+ "SUBTITLE": "I documenti sono utilizzati dal tuo assistente per generare FAQ. Puoi importare documenti per fornire contesto al tuo assistente.",
+ "FILTERED_TITLE": "Nessun documento corrispondente",
+ "FILTERED_SUBTITLE": "Prova a cambiare fonte, stato o chiave di ricerca.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Documento Captain",
+ "NOTE": "Un documento in Captain serve come risorsa di knowledge base per l'assistente. Collegando documenti help center e guide, Captain può analizzare il contenuto e fornire risposte accurate per le richieste dei clienti."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Strumenti",
+ "ADD_NEW": "Crea un nuovo strumento",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "Nessuno strumento personalizzato disponibile",
+ "SUBTITLE": "Crea strumenti personalizzati per collegare il tuo assistente con API e servizi esterni, consentendogli di recuperare dati ed eseguire azioni per tuo conto.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Strumenti Personalizzati",
+ "NOTE": "Gli strumenti personalizzati consentono all'assistente di interagire con API e servizi esterni. Crea strumenti per recuperare dati, eseguire azioni o integrare con i sistemi esistenti per migliorare le capacità del tuo assistente."
+ }
+ },
+ "FORM_DESCRIPTION": "Configura il tuo strumento personalizzato per connetterti con API esterne",
+ "OPTIONS": {
+ "EDIT_TOOL": "Modifica strumento",
+ "DELETE_TOOL": "Elimina strumento"
+ },
+ "CREATE": {
+ "TITLE": "Crea Strumento Personalizzato",
+ "SUCCESS_MESSAGE": "Strumento personalizzato creato correttamente",
+ "ERROR_MESSAGE": "Impossibile creare uno strumento personalizzato"
+ },
+ "EDIT": {
+ "TITLE": "Modifica Strumento Personalizzato",
+ "SUCCESS_MESSAGE": "Strumento personalizzato aggiornato correttamente",
+ "ERROR_MESSAGE": "Impossibile aggiornare strumento personalizzato"
+ },
+ "DELETE": {
+ "TITLE": "Elimina Strumento Personalizzato",
+ "DESCRIPTION": "Sei sicuro di voler eliminare questo strumento personalizzato? Questa azione non può essere annullata.",
+ "CONFIRM": "Sì, elimina",
+ "SUCCESS_MESSAGE": "Strumento personalizzato eliminato correttamente",
+ "ERROR_MESSAGE": "Impossibile eliminare lo strumento personalizzato"
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per utilizzare gli strumenti con Captain",
+ "AVAILABLE_ON": "Gli strumenti Captain sono disponibili solo nei piani Business e Enterprise. Si prega di aggiornare al piano Business per utilizzare la funzionalità.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Apri fatturazione",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Gli strumenti Captain sono disponibili solo nei piani a pagamento.",
+ "UPGRADE_PROMPT": "Aggiorna a un piano a pagamento per utilizzare questa funzione.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nome Strumento",
+ "PLACEHOLDER": "Ricerca Ordini",
+ "ERROR": "Nome strumento richiesto",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione",
+ "PLACEHOLDER": "Cerca i dettagli di un ordine tramite l'ID ordine"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Metodo"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "È richiesto un URL valido"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Tipo di Autenticazione"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nessuno",
+ "BEARER": "Bearer Token",
+ "BASIC": "Autenticazione Base",
+ "API_KEY": "Chiave API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Inserisci il tuo Bearer Token",
+ "USERNAME": "Nome Utente",
+ "USERNAME_PLACEHOLDER": "Inserisci il nome utente",
+ "PASSWORD": "Password",
+ "PASSWORD_PLACEHOLDER": "Inserire la password",
+ "API_KEY": "Nome Header",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Valore Header",
+ "API_VALUE_PLACEHOLDER": "Inserisci valore chiave API"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parametri",
+ "HELP_TEXT": "Definisci i parametri che verranno estratti dalle query utente"
+ },
+ "ADD_PARAMETER": "Aggiungi Parametro",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Nome del parametro (es. order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "Stringa",
+ "NUMBER": "Numero",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Oggetto"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Descrizione del parametro"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Richiesto"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Opzionale)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Opzionale)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Nome del parametro richiesto"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "FAQ In Attesa",
+ "ADD_NEW": "Crea nuova FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversazione #{id}"
+ },
+ "SELECTED": "{count} selezionate",
+ "SELECT_ALL": "Seleziona tutto ({count})",
+ "UNSELECT_ALL": "Deseleziona tutto ({count})",
+ "SEARCH_PLACEHOLDER": "Cerca FAQ...",
+ "BULK_APPROVE_BUTTON": "Approva",
+ "BULK_DELETE_BUTTON": "Elimina",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQ approvate con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore nell'approvazione delle FAQ, riprova."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Eliminare FAQ?",
+ "DESCRIPTION": "Sei sicuro di voler eliminare le FAQ selezionate? Questa azione non può essere annullata.",
+ "CONFIRM": "Sì, elimina tutte",
+ "SUCCESS_MESSAGE": "FAQ eliminate con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione delle FAQ, riprova."
+ },
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler eliminare la FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sì, elimina",
+ "SUCCESS_MESSAGE": "FAQ eliminata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione della FAQ, riprova."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistente: {selected}",
+ "STATUS": "Stato: {selected}",
+ "ALL_ASSISTANTS": "Tutti"
+ },
+ "STATUS": {
+ "TITLE": "Stato",
+ "PENDING": "In Sospeso",
+ "APPROVED": "Approvate",
+ "ALL": "Tutte"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain ha trovato delle FAQ tra le domande dei tuoi clienti.",
+ "ACTION": "Clicca qui per rivedere"
+ },
+ "FORM_DESCRIPTION": "Aggiungi una domanda e la sua risposta corrispondente alla knowledge base e seleziona l'assistente con cui dovrebbe essere associata.",
+ "CREATE": {
+ "TITLE": "Aggiungi una FAQ",
+ "SUCCESS_MESSAGE": "La risposta è stata aggiunta con successo.",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiunta della risposta. Riprova."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Domanda",
+ "PLACEHOLDER": "Inserisci qui la domanda",
+ "ERROR": "Inserisci una domanda valida."
+ },
+ "ANSWER": {
+ "LABEL": "Risposta",
+ "PLACEHOLDER": "Inserisci qui la risposta",
+ "ERROR": "Inserisci una risposta valida."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Aggiorna FAQ",
+ "SUCCESS_MESSAGE": "Le FAQ sono state aggiornate correttamente",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'aggiornamento delle FAQ, riprova",
+ "APPROVE_SUCCESS_MESSAGE": "La FAQ è stata contrassegnata come approvata"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approva",
+ "EDIT_RESPONSE": "Modifica",
+ "DELETE_RESPONSE": "Elimina"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna FAQ Trovata",
+ "NO_PENDING_TITLE": "Non ci sono più FAQ in attesa da rivedere",
+ "SUBTITLE": "Le FAQ aiutano il tuo assistente a fornire risposte rapide e accurate alle domande dei tuoi clienti. Possono essere generate automaticamente dai tuoi contenuti o possono essere aggiunte manualmente.",
+ "CLEAR_SEARCH": "Rimuovi filtri attivi",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain FAQ",
+ "NOTE": "Captain FAQ rileva le domande più frequenti dei clienti, anche se mancano dalla tua knowledge base, e suggerisce delle FAQ per migliorare il supporto. È possibile rivedere ogni suggerimento e decidere se approvarlo o rifiutarlo."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Inbox Connesse",
+ "ADD_NEW": "Collega una nuova inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnetti"
+ },
+ "DELETE": {
+ "TITLE": "Sei sicuro di voler disconnettere la inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sì, elimina",
+ "SUCCESS_MESSAGE": "Inbox disconnessa con successo.",
+ "ERROR_MESSAGE": "Si è verificato un errore durante la disconnessione della inbox, riprova."
+ },
+ "FORM_DESCRIPTION": "Scegli una inbox da connettere all'assistente.",
+ "CREATE": {
+ "TITLE": "Connetti una Inbox",
+ "SUCCESS_MESSAGE": "Inbox connessa con successo.",
+ "ERROR_MESSAGE": "Si è verificato un errore durante la connessione della inbox. Riprova."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Inbox",
+ "PLACEHOLDER": "Scegli la inbox in cui deployare l'assistente.",
+ "ERROR": "È richiesta una inbox."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nessuna Inbox Connessa",
+ "SUBTITLE": "Connettendo una inbox, l'assistente potrà gestire le richieste iniziali dei clienti, ed eventualmente trasferirle a voi."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
index cee675b33..751ba027e 100644
--- a/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/it/labelsMgmt.json
@@ -3,29 +3,34 @@
"HEADER": "Etichette",
"HEADER_BTN_TXT": "Aggiungi etichetta",
"LOADING": "Recupero etichette",
+ "DESCRIPTION": "Le etichette aiutano a categorizzare e dare priorità alle conversazioni e ai lead. È possibile assegnare un'etichetta a una conversazione o a un contatto utilizzando il pannello laterale.",
+ "LEARN_MORE": "Maggiori informazioni sulle etichette",
+ "COUNT": "{n} etichetta | {n} etichette",
+ "SEARCH_PLACEHOLDER": "Cerca etichette...",
+ "NO_RESULTS": "Nessuna etichetta trovata corrispondente alla tua ricerca",
"SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta",
- "SIDEBAR_TXT": "Etichette
Le etichette ti aiutano a categorizzare le conversazioni e a dargli una priorità. È possibile assegnare l'etichetta a una conversazione dal pannello laterale.
Le etichette sono legate all'account e possono essere utilizzate per creare flussi di lavoro personalizzati nell'organizzazione. È possibile assegnare un colore personalizzato a un'etichetta, così da rendere più facile identificare l'etichetta. Potrai visualizzare l'etichetta sulla barra laterale per filtrare facilmente le conversazioni.
",
"LIST": {
"404": "Non ci sono etichette disponibili in questo account.",
"TITLE": "Gestisci etichette",
"DESC": "Le etichette consentono di raggruppare le conversazioni insieme.",
- "TABLE_HEADER": [
- "Nome",
- "Descrizione",
- "Colore"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "DESCRIPTION": "Descrizione",
+ "COLOR": "Colore",
+ "ACTION": "Azioni"
+ }
},
"FORM": {
"NAME": {
- "LABEL": "Nome etichetta",
+ "LABEL": "Nome Etichetta",
"PLACEHOLDER": "Nome etichetta",
"REQUIRED_ERROR": "Nome etichetta obbligatorio",
"MINIMUM_LENGTH_ERROR": "È richiesta una lunghezza minima di 2",
- "VALID_ERROR": "Sono ammessi solo lettere, numeri, trattino e sottolineatura"
+ "VALID_ERROR": "Sono ammessi solo lettere, numeri, trattino e underscore"
},
"DESCRIPTION": {
"LABEL": "Descrizione",
- "PLACEHOLDER": "Descrizione etichetta"
+ "PLACEHOLDER": "Descrizione Etichetta"
},
"COLOR": {
"LABEL": "Colore"
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "Aggiungi etichetta alla conversazione",
+ "MULTIPLE_SUGGESTION": "Seleziona questa etichetta",
+ "DESELECT": "Deseleziona etichetta",
+ "DISMISS": "Ignora suggerimento"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "Ignora",
+ "ADD_SELECTED_LABELS": "Aggiungi etichette selezionate",
+ "ADD_SELECTED_LABEL": "Aggiungi etichetta selezionata",
+ "ADD_ALL_LABELS": "Aggiungi tutte le etichette",
+ "SUGGESTED_LABELS": "Etichette suggerite"
},
"ADD": {
"TITLE": "Aggiungi etichetta",
@@ -62,7 +68,7 @@
"EDIT": {
"TITLE": "Modifica etichetta",
"API": {
- "SUCCESS_MESSAGE": "Campagna aggiornata con successo",
+ "SUCCESS_MESSAGE": "Etichetta aggiornata con successo",
"ERROR_MESSAGE": "Si è verificato un errore, riprova"
}
},
@@ -73,10 +79,10 @@
"ERROR_MESSAGE": "Si è verificato un errore, riprova"
},
"CONFIRM": {
- "TITLE": "Conferma eliminazione",
+ "TITLE": "Conferma Eliminazione",
"MESSAGE": "Sei sicuro di voler eliminare ",
- "YES": "Sì, elimina ",
- "NO": "No, conserva "
+ "YES": "Sì, Elimina ",
+ "NO": "No, Mantieni "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/login.json b/app/javascript/dashboard/i18n/locale/it/login.json
index 8e7ed71a9..75c9d1f35 100644
--- a/app/javascript/dashboard/i18n/locale/it/login.json
+++ b/app/javascript/dashboard/i18n/locale/it/login.json
@@ -3,7 +3,7 @@
"TITLE": "Accedi a Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "Email es.: qualcuno@esempio.com",
+ "PLACEHOLDER": "esempio{'@'}nomeazienda.com",
"ERROR": "Inserisci un indirizzo email valido"
},
"PASSWORD": {
@@ -12,16 +12,30 @@
},
"API": {
"SUCCESS_MESSAGE": "Accesso riuscito",
- "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi",
- "UNAUTH": "Nome utente / Password errati. Riprova"
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova.",
+ "UNAUTH": "Nome utente o password errati. Riprova."
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "Accedi tramite Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Utilizza il tuo indirizzo email aziendale per effettuare il login",
+ "NO_ACCOUNT_FOUND": "Non siamo riusciti a trovare un account per il tuo indirizzo email."
},
"FORGOT_PASSWORD": "Password dimenticata?",
"CREATE_NEW_ACCOUNT": "Crea un nuovo account",
- "SUBMIT": "Accedi"
+ "SUBMIT": "Accedi",
+ "SAML": {
+ "LABEL": "Accedi tramite SSO",
+ "TITLE": "Avvia Single Sign-on (SSO)",
+ "SUBTITLE": "Inserisci la tua email di lavoro per accedere alla tua organizzazione",
+ "BACK_TO_LOGIN": "Accedi tramite Password",
+ "WORK_EMAIL": {
+ "LABEL": "Email di Lavoro",
+ "PLACEHOLDER": "Inserisci la tua email di lavoro"
+ },
+ "SUBMIT": "Prosegui con SSO",
+ "API": {
+ "ERROR_MESSAGE": "Autenticazione SSO fallita. Verifica le credenziali e riprova."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/macros.json b/app/javascript/dashboard/i18n/locale/it/macros.json
index 6f1f6c84a..3dff9cced 100644
--- a/app/javascript/dashboard/i18n/locale/it/macros.json
+++ b/app/javascript/dashboard/i18n/locale/it/macros.json
@@ -1,78 +1,121 @@
{
"MACROS": {
- "HEADER": "Macros",
- "HEADER_BTN_TXT": "Add a new macro",
- "HEADER_BTN_TXT_SAVE": "Save macro",
- "LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
- "ERROR": "Something went wrong. Please try again",
- "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "HEADER": "Macro",
+ "DESCRIPTION": "Una macro è un insieme di azioni salvate che aiutano gli operatori del servizio clienti a completare facilmente le attività. Gli operatori possono definire un insieme di azioni, come l'aggiunta di un'etichetta a una converazione, l'invio di una trascrizione e-mail, l'aggiornamento di un attributo personalizzato, ecc. e possono eseguire queste azioni in un solo clic.",
+ "LEARN_MORE": "Scopri di più sulle macro",
+ "COUNT": "{n} macro | {n} macro",
+ "HEADER_BTN_TXT": "Aggiungi una nuova macro",
+ "HEADER_BTN_TXT_SAVE": "Salva macro",
+ "LOADING": "Caricamento macro",
+ "SEARCH_PLACEHOLDER": "Cerca macro...",
+ "NO_RESULTS": "Nessuna macro trovata corrispondente alla tua ricerca",
+ "ERROR": "Qualcosa è andato storto. Riprova",
+ "ORDER_INFO": "Le macro verranno eseguite nell'ordine in cui aggiungi le azioni. Puoi riordinarle trascinandole con la maniglia accanto ad ogni nodo.",
"ADD": {
"FORM": {
"NAME": {
- "LABEL": "Macro name",
- "PLACEHOLDER": "Enter a name for your macro",
- "ERROR": "Name is required for creating a macro"
+ "LABEL": "Nome macro",
+ "PLACEHOLDER": "Inserisci un nome per la tua macro",
+ "ERROR": "Il nome è richiesto per creare una macro"
},
"ACTIONS": {
"LABEL": "Azioni"
}
},
"API": {
- "SUCCESS_MESSAGE": "Macro added successfully",
- "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ "SUCCESS_MESSAGE": "Macro aggiunta correttamente",
+ "ERROR_MESSAGE": "Impossibile creare macro, riprova più tardi"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nome",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
- "404": "No macros found"
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "CREATED BY": "Creata da",
+ "LAST_UPDATED_BY": "Ultimo aggiornamento di",
+ "VISIBILITY": "Visibilità",
+ "ACTIONS": "Azioni"
+ },
+ "404": "Nessuna macro trovata"
},
"DELETE": {
- "TOOLTIP": "Delete macro",
+ "TOOLTIP": "Elimina macro",
"CONFIRM": {
"MESSAGE": "Sei sicuro di voler eliminare ",
"YES": "Sì, elimina",
"NO": "No"
},
"API": {
- "SUCCESS_MESSAGE": "Macro deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ "SUCCESS_MESSAGE": "Macro eliminata con successo",
+ "ERROR_MESSAGE": "Si è verificato un errore durante l'eliminazione della macro. Riprova più tardi"
}
},
+ "VIEW": {
+ "TOOLTIP": "Visualizza macro"
+ },
"EDIT": {
- "TOOLTIP": "Edit macro",
+ "TOOLTIP": "Modifica macro",
"API": {
- "SUCCESS_MESSAGE": "Macro updated successfully",
- "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ "SUCCESS_MESSAGE": "Macro aggiornato con successo",
+ "ERROR_MESSAGE": "Impossibile aggiornare la macro, riprova più tardi"
}
},
"EDITOR": {
- "START_FLOW": "Start Flow",
+ "START_FLOW": "Inizia Flow",
"END_FLOW": "End Flow",
- "LOADING": "Fetching macro",
- "ADD_BTN_TOOLTIP": "Add new action",
- "DELETE_BTN_TOOLTIP": "Delete Action",
+ "LOADING": "Recupero macro",
+ "ADD_BTN_TOOLTIP": "Aggiungi nuova azione",
+ "DELETE_BTN_TOOLTIP": "Rimuovi Azione",
"VISIBILITY": {
- "LABEL": "Macro Visibility",
+ "LABEL": "Visibilità Macro",
"GLOBAL": {
- "LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "LABEL": "Pubblica",
+ "DESCRIPTION": "Questa macro è disponibile pubblicamente per tutti gli operatori di questo account.",
+ "CREATE_DISABLED_DESCRIPTION": "Solo gli amministratori possono creare macro pubbliche.",
+ "EDIT_DISABLED_DESCRIPTION": "Solo gli amministratori possono modificare le macro pubbliche."
},
"PERSONAL": {
- "LABEL": "Private",
- "DESCRIPTION": "This macro will be private to you and not be available to others."
+ "LABEL": "Privata",
+ "DESCRIPTION": "Questa macro sarà privata per te e non sarà disponibile ad altri."
}
}
},
"EXECUTE": {
- "BUTTON_TOOLTIP": "Execute",
- "PREVIEW": "Preview Macro",
- "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ "BUTTON_TOOLTIP": "Esegui",
+ "PREVIEW": "Anteprima Macro",
+ "EXECUTED_SUCCESSFULLY": "Macro eseguita correttamente"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Chiave dell'attributo richiesta",
+ "FILTER_OPERATOR_REQUIRED": "Operatore di filtro richiesto",
+ "VALUE_REQUIRED": "Il valore è richiesto",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Il valore deve essere compreso tra 1 e 998",
+ "ACTION_PARAMETERS_REQUIRED": "Parametri di azione richiesti",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "È richiesta almeno una condizione",
+ "ATLEAST_ONE_ACTION_REQUIRED": "È richiesta almeno un'azione"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "Assegna a un Team",
+ "ASSIGN_AGENT": "Assegna un Operatore",
+ "ADD_LABEL": "Aggiungi Etichetta",
+ "REMOVE_LABEL": "Rimuovi Etichetta",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Rimuovi Team Assegnato",
+ "SEND_EMAIL_TRANSCRIPT": "Invia una Trascrizione Email",
+ "MUTE_CONVERSATION": "Silenzia Conversazione",
+ "SNOOZE_CONVERSATION": "Posticipa Conversazione",
+ "RESOLVE_CONVERSATION": "Risolvi Conversazione",
+ "SEND_ATTACHMENT": "Invia Allegato",
+ "SEND_MESSAGE": "Invia un Messaggio",
+ "CHANGE_PRIORITY": "Cambia Priorità",
+ "ADD_PRIVATE_NOTE": "Aggiungi una Nota Privata",
+ "SEND_WEBHOOK_EVENT": "Invia Evento Webhook"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nessuna",
+ "LOW": "Bassa",
+ "MEDIUM": "Media",
+ "HIGH": "Alta",
+ "URGENT": "Urgente"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/mfa.json b/app/javascript/dashboard/i18n/locale/it/mfa.json
new file mode 100644
index 000000000..9b3989261
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Autenticazione a Due Fattori",
+ "SUBTITLE": "Proteggi il tuo account da accessi non autorizzati con l'autenticazione TOTP. Questa aggiunge un ulteriore livello di sicurezza al tuo account.",
+ "DESCRIPTION": "Aggiungi un ulteriore livello di sicurezza al tuo account utilizzando una password monouso a tempo (TOTP)",
+ "STATUS_TITLE": "Stato dell'Autenticazione",
+ "STATUS_DESCRIPTION": "Gestisci le impostazioni di autenticazione a due fattori e i codici di recupero di backup",
+ "ENABLED": "Abilitato",
+ "DISABLED": "Disabilitato",
+ "STATUS_ENABLED": "L'autenticazione a due fattori è attiva",
+ "STATUS_ENABLED_DESC": "Il tuo account è protetto con un ulteriore livello di sicurezza",
+ "ENABLE_BUTTON": "Attiva Autenticazione A Due Fattori",
+ "ENHANCE_SECURITY": "Migliora La Sicurezza Del Tuo Account",
+ "ENHANCE_SECURITY_DESC": "L'autenticazione a due fattori aggiunge un ulteriore livello di sicurezza richiedendo un codice di verifica dalla tua app di autenticazione in aggiunta alla password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scansiona il QR Code con la tua app di autenticazione",
+ "STEP1_DESCRIPTION": "Utilizza Google Authenticator, Authy, o qualsiasi app compatibile con TOTP",
+ "LOADING_QR": "Caricamento...",
+ "MANUAL_ENTRY": "Non riesci a scansionare? Inserisci il codice manualmente",
+ "SECRET_KEY": "Chiave Segreta",
+ "COPY": "Copia",
+ "ENTER_CODE": "Inserisci il codice a 6 cifre dalla tua app di autenticazione",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verifica e Continua",
+ "CANCEL": "Annulla",
+ "ERROR_STARTING": "MFA non abilitata. Contatta l'amministratore.",
+ "INVALID_CODE": "Codice di verifica non valido",
+ "SECRET_COPIED": "Chiave segreta copiata negli appunti",
+ "SUCCESS": "L'autenticazione a due fattori è stata attivata con successo"
+ },
+ "BACKUP": {
+ "TITLE": "Salva i tuoi Codici Di Backup",
+ "DESCRIPTION": "Mantieni questi codici al sicuro. Ognuno può essere utilizzato una sola volta se perdi l'accesso alla tua app di autenticazione",
+ "IMPORTANT": "Importante:",
+ "IMPORTANT_NOTE": " Salva questi codici in un luogo sicuro. Non sarai in grado di visualizzarli ancora.",
+ "DOWNLOAD": "Scarica",
+ "COPY_ALL": "Copia Tutto",
+ "CONFIRM": "Ho salvato i miei codici di backup in un luogo sicuro e comprendo che non sarò in grado di visualizzarli ancora",
+ "COMPLETE_SETUP": "Completa Configurazione",
+ "CODES_COPIED": "Codici di backup copiati negli appunti"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Codici di Backup",
+ "BACKUP_CODES_DESC": "Genera nuovi codici se hai perso o utilizzato quelli esistenti",
+ "REGENERATE": "Rigenera Codici di Backup",
+ "DISABLE_MFA": "Disattiva 2FA",
+ "DISABLE_MFA_DESC": "Rimuovi l'autenticazione a due fattori dal tuo account",
+ "DISABLE_BUTTON": "Disattiva Autenticazione A Due Fattori"
+ },
+ "DISABLE": {
+ "TITLE": "Disattiva Autenticazione A Due Fattori",
+ "DESCRIPTION": "Dovrai inserire la tua password e un codice di verifica per disabilitare l'autenticazione a due fattori.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Codice Di Verifica",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Codice di Backup",
+ "BACKUP_CODE_PLACEHOLDER": "Inserisci uno dei tuoi codici di backup",
+ "USE_BACKUP_CODE": "Hai perso l'accesso al tuo sistema di autenticazione? Usa un codice di backup",
+ "USE_OTP_CODE": "Usa un codice di verifica dalla tua app di autenticazione",
+ "CONFIRM": "Disattiva 2FA",
+ "CANCEL": "Annulla",
+ "SUCCESS": "L'autenticazione a due fattori è stata disattivata",
+ "ERROR": "Impossibile disattivare MFA. Verifica le tue credenziali."
+ },
+ "REGENERATE": {
+ "TITLE": "Rigenera Codici di Backup",
+ "DESCRIPTION": "Questo invaliderà i tuoi codici di backup esistenti e ne genererà di nuovi. Inserisci il tuo codice di verifica per continuare.",
+ "OTP_CODE": "Codice Di Verifica",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Genera Nuovi Codici",
+ "CANCEL": "Annulla",
+ "NEW_CODES_TITLE": "Nuovi Codici di Backup Generati",
+ "NEW_CODES_DESC": "I tuoi vecchi codici di backup sono stati invalidati. Salva questi nuovi codici in un luogo sicuro.",
+ "CODES_IMPORTANT": "Importante:",
+ "CODES_IMPORTANT_NOTE": "Ogni codice può essere usato solo una volta. Salvali prima di chiudere questa finestra.",
+ "DOWNLOAD_CODES": "Scarica Codici",
+ "COPY_ALL_CODES": "Copia Tutti i Codici",
+ "CODES_SAVED": "Ho Salvato i Miei Codici",
+ "SUCCESS": "Nuovi codici di backup sono stati generati",
+ "ERROR": "Impossibile rigenerare i codici di backup"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Autenticazione a Due Fattori",
+ "DESCRIPTION": "Inserisci il tuo codice di verifica per continuare",
+ "AUTHENTICATOR_APP": "App di Autenticazione",
+ "BACKUP_CODE": "Codice di Backup",
+ "ENTER_OTP_CODE": "Inserisci il codice a 6 cifre dalla tua app di autenticazione",
+ "ENTER_BACKUP_CODE": "Inserisci uno dei tuoi codici di backup",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verifica",
+ "TRY_ANOTHER_METHOD": "Prova un altro metodo di verifica",
+ "CANCEL_LOGIN": "Annulla e torna al login",
+ "HELP_TEXT": "Hai problemi ad accedere?",
+ "LEARN_MORE": "Maggiori informazioni su 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Aiuto Autenticazione A Due Fattori",
+ "AUTHENTICATOR_TITLE": "Utilizzando un'app di autenticazione",
+ "AUTHENTICATOR_DESC": "Apri la tua app di autenticazione (Google Authenticator, Authy, ecc.) e inserisci il codice a 6 cifre mostrato per il tuo account.",
+ "BACKUP_TITLE": "Utilizzando un Codice di Backup",
+ "BACKUP_DESC": "Se non hai accesso alla tua app di autenticazione, puoi usare uno dei codici di backup salvati durante la configurazione 2FA. Ogni codice può essere utilizzato una sola volta.",
+ "CONTACT_TITLE": "Serve Più Aiuto?",
+ "CONTACT_DESC_CLOUD": "Se hai perso l'accesso sia alla tua app di autenticazione che ai codici di backup, contatta il supporto di Chatwoot per ricevere assistenza.",
+ "CONTACT_DESC_SELF_HOSTED": "Se hai perso l'accesso sia alla tua app di autenticazione che ai codici di backup, contatta il tuo amministratore per ricevere assistenza."
+ },
+ "VERIFICATION_FAILED": "Verifica non riuscita. Riprova."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/onboarding.json b/app/javascript/dashboard/i18n/locale/it/onboarding.json
new file mode 100644
index 000000000..33db70c63
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Ciao {name}!",
+ "SUBTITLE": "Verifica i seguenti dettagli per favore",
+ "YOUR_DETAILS": "I tuoi dati",
+ "COMPANY_DETAILS": "Dati dell'azienda",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Il tuo Ruolo",
+ "WEBSITE": "Sito Web",
+ "LANGUAGE": "Lingua",
+ "TIMEZONE": "Fuso Orario",
+ "COMPANY_SIZE": "Dimensione Azienda",
+ "INDUSTRY": "Settore",
+ "REFERRAL_SOURCE": "Come ci hai trovati?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Seleziona il tuo ruolo",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Seleziona lingua",
+ "SELECT_TIMEZONE": "Seleziona fuso orario",
+ "SELECT_COMPANY_SIZE": "Seleziona dimensione azienda",
+ "SELECT_INDUSTRY": "Seleziona settore",
+ "SELECT_REFERRAL_SOURCE": "Seleziona origine"
+ },
+ "EMAIL_VERIFIED": "Email verificata",
+ "SETTING_UP": "Configurazione del tuo account...",
+ "CONTINUE": "Continua",
+ "SAVING": "Salvataggio...",
+ "VALIDATION_ERROR": "Per favore compila tutti i campi obbligatori",
+ "SUCCESS": "Dati salvati correttamente",
+ "ERROR": "Impossibile salvare i dati. Per favore riprova."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/report.json b/app/javascript/dashboard/i18n/locale/it/report.json
index 53572bfb2..f00e65df8 100644
--- a/app/javascript/dashboard/i18n/locale/it/report.json
+++ b/app/javascript/dashboard/i18n/locale/it/report.json
@@ -1,11 +1,11 @@
{
"REPORT": {
"HEADER": "Conversazioni",
- "LOADING_CHART": "Caricamento dati del grafico...",
- "NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
- "DOWNLOAD_AGENT_REPORTS": "Scarica rapporti agente",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "LOADING_CHART": "Caricamento dati grafici...",
+ "NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Scarica report conversazioni",
+ "DATA_FETCHING_FAILED": "Impossibile recuperare i dati, riprova più tardi.",
+ "SUMMARY_FETCHING_FAILED": "Impossibile recuperare il riepilogo, riprova più tardi.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -23,57 +23,43 @@
"NAME": "Tempo di prima risposta",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di prima risposta è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di prima risposta è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_TIME": {
- "NAME": "Tempo di risoluzione",
+ "NAME": "Tempo di Risoluzione",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di risoluzione è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di risoluzione è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_COUNT": {
"NAME": "Conteggio risoluzioni",
"DESC": "( Totale )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Conteggio risoluzioni",
+ "DESC": "( Totale )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Conteggio Handoff",
+ "DESC": "( Totale )"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "Tempo di attesa del cliente",
+ "TOOLTIP_TEXT": "Il tempo di attesa è {metricValue} (basato su {conversationCount} risposte)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Ultimi 7 giorni",
+ "LAST_14_DAYS": "Ultimi 14 giorni",
"LAST_30_DAYS": "Ultimi 30 giorni",
+ "THIS_MONTH": "Questo mese",
+ "LAST_MONTH": "Il mese scorso",
"LAST_3_MONTHS": "Ultimi 3 mesi",
"LAST_6_MONTHS": "Ultimi 6 mesi",
"LAST_YEAR": "Ultimo anno",
"CUSTOM_DATE_RANGE": "Intervallo di date personalizzato"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Ultimi 7 giorni"
- },
- {
- "id": 1,
- "name": "Ultimi 30 giorni"
- },
- {
- "id": 2,
- "name": "Ultimi 3 mesi"
- },
- {
- "id": 3,
- "name": "Ultimi 6 mesi"
- },
- {
- "id": 4,
- "name": "Ultimo anno"
- },
- {
- "id": 5,
- "name": "Intervallo di date personalizzato"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Applica",
"PLACEHOLDER": "Seleziona intervallo di date"
@@ -84,7 +70,7 @@
"DAY": "Giorno",
"WEEK": "Settimana",
"MONTH": "Mese",
- "YEAR": "Anno"
+ "YEAR": "Mese"
},
"GROUP_BY_DAY_OPTIONS": [
{
@@ -117,10 +103,6 @@
}
],
"GROUP_BY_YEAR_OPTIONS": [
- {
- "id": 1,
- "groupBy": "Giorno"
- },
{
"id": 2,
"groupBy": "Settimana"
@@ -128,16 +110,34 @@
{
"id": 3,
"groupBy": "Mese"
+ },
+ {
+ "id": 4,
+ "groupBy": "Mese"
}
],
- "BUSINESS_HOURS": "Ore di lavoro"
+ "BUSINESS_HOURS": "Orario Di Lavoro",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Rimuovi filtro",
+ "EMPTY_LIST": "Nessun risultato trovato"
+ },
+ "PAGINATION": {
+ "RESULTS": "Mostrando da {start} a {end} di {total} risultati",
+ "PER_PAGE_TEMPLATE": "{size} / pagina"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Panoramica degli agenti",
- "LOADING_CHART": "Caricamento dati del grafico...",
- "NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
- "DOWNLOAD_AGENT_REPORTS": "Scarica rapporti agente",
- "FILTER_DROPDOWN_LABEL": "Seleziona agente",
+ "HEADER": "Panoramica degli Operatori",
+ "DESCRIPTION": "Monitora la performance degli operatori con metriche chiave, tra cui conversazioni, tempi di risposta, tempi di risoluzione e casi risolti. Fai clic sul nome di un operatore per saperne di più.",
+ "LOADING_CHART": "Caricamento dati grafici...",
+ "NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
+ "DOWNLOAD_AGENT_REPORTS": "Scarica report operatori",
+ "FILTER_DROPDOWN_LABEL": "Seleziona Operatore",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca operatori"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -155,13 +155,13 @@
"NAME": "Tempo di prima risposta",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di prima risposta è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di prima risposta è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo di risoluzione",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di risoluzione è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di risoluzione è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_COUNT": {
"NAME": "Conteggio risoluzioni",
@@ -200,11 +200,17 @@
}
},
"LABEL_REPORTS": {
- "HEADER": "Panoramica etichette",
- "LOADING_CHART": "Caricamento dati del grafico...",
- "NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
+ "HEADER": "Panoramica Etichette",
+ "DESCRIPTION": "Monitora la performance delle etichette con metriche chiave, tra cui conversazioni, tempi di risposta, tempi di risoluzione e casi risolti. Fai clic sul nome di un'etichetta per approfondimenti dettagliati.",
+ "LOADING_CHART": "Caricamento dati grafici...",
+ "NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
"DOWNLOAD_LABEL_REPORTS": "Scarica report etichette",
"FILTER_DROPDOWN_LABEL": "Seleziona etichetta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Cerca etichette"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -222,13 +228,13 @@
"NAME": "Tempo di prima risposta",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di prima risposta è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di prima risposta è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_TIME": {
- "NAME": "Tempo di risoluzione",
+ "NAME": "Tempo di Risoluzione",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di risoluzione è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di risoluzione è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_COUNT": {
"NAME": "Conteggio risoluzioni",
@@ -267,11 +273,19 @@
}
},
"INBOX_REPORTS": {
- "HEADER": "Panoramica casella",
- "LOADING_CHART": "Caricamento dati del grafico...",
- "NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
- "DOWNLOAD_INBOX_REPORTS": "Scarica report casella",
- "FILTER_DROPDOWN_LABEL": "Seleziona Casella",
+ "HEADER": "Panoramica Inbox",
+ "DESCRIPTION": "Visualizza rapidamente le performance della tua inbox con metriche chiave come conversazioni, tempi di risposta, tempi di risoluzione e casi risolti — tutto in un unico posto. Fai clic su una inbox per maggiori dettagli.",
+ "LOADING_CHART": "Caricamento dati grafici...",
+ "NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
+ "DOWNLOAD_INBOX_REPORTS": "Scarica report Inbox",
+ "FILTER_DROPDOWN_LABEL": "Seleziona Inbox",
+ "ALL_INBOXES": "Tutte le Inbox",
+ "SEARCH_INBOX": "Ricerca Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Ricerca Inbox"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -289,13 +303,13 @@
"NAME": "Tempo di prima risposta",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di prima risposta è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di prima risposta è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo di risoluzione",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di risoluzione è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di risoluzione è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_COUNT": {
"NAME": "Conteggio risoluzioni",
@@ -334,11 +348,20 @@
}
},
"TEAM_REPORTS": {
- "HEADER": "Panoramica team",
- "LOADING_CHART": "Caricamento dati del grafico...",
- "NO_ENOUGH_DATA": "Non abbiamo ricevuto abbastanza punti dati per generare il rapporto, riprova più tardi.",
+ "HEADER": "Panoramica Team",
+ "DESCRIPTION": "Ottieni un'istantanea delle performance dei tuo team con metriche essenziali, tra cui conversazioni, tempi di risposta, tempi di risoluzione e casi risolti. Fai clic su un team per maggiori dettagli.",
+ "LOADING_CHART": "Caricamento dati grafici...",
+ "NO_ENOUGH_DATA": "Non ci sono abbastanza dati per generare il report, riprova più tardi.",
"DOWNLOAD_TEAM_REPORTS": "Scarica report del team",
- "FILTER_DROPDOWN_LABEL": "Seleziona team",
+ "FILTER_DROPDOWN_LABEL": "Seleziona Team",
+ "FILTERS": {
+ "ADD_FILTER": "Aggiungi filtro",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "NO_FILTER": "Nessun filtro disponibile",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cerca team"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversazioni",
@@ -356,13 +379,13 @@
"NAME": "Tempo di prima risposta",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di prima risposta è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di prima risposta è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo di risoluzione",
"DESC": "( Media )",
"INFO_TEXT": "Numero totale di conversazioni utilizzate per il calcolo:",
- "TOOLTIP_TEXT": "Il tempo di risoluzione è %{metricValue} (basato su %{conversationCount} conversazioni)"
+ "TOOLTIP_TEXT": "Il tempo di risoluzione è {metricValue} (basato su {conversationCount} conversazioni)"
},
"RESOLUTION_COUNT": {
"NAME": "Conteggio risoluzioni",
@@ -401,23 +424,49 @@
}
},
"CSAT_REPORTS": {
- "HEADER": "Rapporti CSAT",
- "NO_RECORDS": "Non ci sono risposte al sondaggio CSAT disponibili.",
+ "HEADER": "Report CSAT",
+ "NO_RECORDS": "Ancora nessuna risposta",
+ "NO_RECORDS_DESCRIPTION": "Le risposte dei sondaggi CSAT appariranno qui appena i clienti inizieranno a fornire feedback.",
"DOWNLOAD": "Scarica report CSAT",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "DOWNLOAD_FAILED": "Download dei report CSAT non riuscito",
"FILTERS": {
+ "ADD_FILTER": "Aggiungi filtro",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "NO_FILTER": "Nessun filtro disponibile",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cerca operatori",
+ "INBOXES": "Ricerca Inbox",
+ "TEAMS": "Cerca team",
+ "RATINGS": "Cerca valutazioni"
+ },
"AGENTS": {
- "PLACEHOLDER": "Scegli agenti"
+ "LABEL": "Operatore"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Valutazione"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contatto",
- "AGENT_NAME": "Agente assegnato",
+ "AGENT_NAME": "Operatore",
"RATING": "Valutazione",
- "FEEDBACK_TEXT": "Commento del feedback"
- }
+ "FEEDBACK_TEXT": "Commento del feedback",
+ "CONVERSATION": "Conversazione",
+ "CUSTOMER": "Cliente",
+ "RESPONSE": "Risposta",
+ "HANDLED_BY": "Gestito da"
+ },
+ "UNKNOWN_CUSTOMER": "Cliente sconosciuto"
},
+ "NO_AGENT": "Nessun operatore assegnato",
+ "NO_FEEDBACK": "Nessun feedback fornito",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Risposte totali",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Tasso di risposta",
"TOOLTIP": "Numero totale di risposte / Numero totale di messaggi di sondaggio CSAT inviati * 100"
+ },
+ "RATING_DISTRIBUTION": "Distribuzione del rating"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Note revisione",
+ "PLACEHOLDER": "Aggiungi note revisione su questa valutazione...",
+ "SAVE": "Salva",
+ "CANCEL": "Annulla",
+ "SAVING": "Salvataggio...",
+ "SAVED": "Note salvate correttamente",
+ "SAVE_ERROR": "Impossibile salvare le note",
+ "UPDATED_BY": "Aggiornato da {name} {time}",
+ "UPDATED_BY_LABEL": "Aggiornato da",
+ "PAYWALL": {
+ "TITLE": "Aggiorna per aggiungere note revisione",
+ "AVAILABLE_ON": "La funzionalità note revisione è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiungi note di revisione interne a ogni risposta CSAT. Comprendi meglio cosa è successo davvero, individua i pattern più rapidamente e prendi decisioni migliori a partire dal feedback.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Report Bot",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Numero di Conversazioni",
+ "TOOLTIP": "Numero totale di conversazioni gestite dal bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Risposte totali",
+ "TOOLTIP": "Numero totale di risposte inviate dal bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Tasso Di Risoluzione",
+ "TOOLTIP": "Numero totale di conversazioni risolte dal bot / Numero totale di conversazioni gestite dal bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Tasso di Handoff",
+ "TOOLTIP": "Numero totale di conversazioni passate agli agenti / Numero totale di conversazioni gestite dal bot * 100"
}
}
},
@@ -439,42 +528,123 @@
"ACCOUNT_CONVERSATIONS": {
"HEADER": "Conversazioni aperte",
"LOADING_MESSAGE": "Caricamento metriche conversazioni...",
- "OPEN": "Apri",
+ "OPEN": "Aperte",
"UNATTENDED": "Non partecipate",
- "UNASSIGNED": "Non assegnato",
- "PENDING": "In sospeso"
+ "UNASSIGNED": "Non assegnate",
+ "PENDING": "In Sospeso"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "Traffico delle Conversazioni",
+ "NO_CONVERSATIONS": "Nessuna conversazione",
+ "CONVERSATION": "{count} conversazione",
+ "CONVERSATIONS": "{count} conversazioni",
+ "DOWNLOAD_REPORT": "Scarica report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Risoluzioni",
+ "NO_CONVERSATIONS": "Nessuna conversazione",
+ "CONVERSATION": "{count} conversazione",
+ "CONVERSATIONS": "{count} conversazioni",
+ "DOWNLOAD_REPORT": "Scarica report"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversazioni degli agenti",
- "LOADING_MESSAGE": "Caricamento metriche agenti...",
- "NO_AGENTS": "Non ci sono conversazioni da parte degli agenti",
+ "HEADER": "Conversazioni per operatore",
+ "LOADING_MESSAGE": "Caricamento metriche operatori...",
+ "NO_AGENTS": "Non ci sono conversazioni per operatore",
"TABLE_HEADER": {
- "AGENT": "Agente",
- "OPEN": "APERTE",
+ "AGENT": "Operatore",
+ "OPEN": "Aperte",
+ "UNATTENDED": "Non partecipate",
+ "STATUS": "Stato"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "Tutti i Team",
+ "HEADER": "Conversazioni per team",
+ "LOADING_MESSAGE": "Caricamento metriche team...",
+ "NO_TEAMS": "Nessun dato disponibile",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Aperte",
"UNATTENDED": "Non partecipate",
"STATUS": "Stato"
}
},
"AGENT_STATUS": {
- "HEADER": "Stato agente",
+ "HEADER": "Stato operatore",
"ONLINE": "Online",
"BUSY": "Occupato",
"OFFLINE": "Offline"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "Domenica",
+ "MONDAY": "Lunedì",
+ "TUESDAY": "Martedì",
+ "WEDNESDAY": "Mercoledì",
+ "THURSDAY": "Giovedì",
+ "FRIDAY": "Venerdì",
+ "SATURDAY": "Sabato"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "Report SLA",
+ "NO_RECORDS": "Conversazioni SLA non disponibili.",
+ "LOADING": "Caricamento dati SLA...",
+ "DOWNLOAD_SLA_REPORTS": "Scarica report SLA",
+ "DOWNLOAD_FAILED": "Impossibile scaricare i report SLA",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Aggiungi filtro",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "CLEAR_FILTER": "Rimuovi filtro",
+ "EMPTY_LIST": "Nessun risultato trovato",
+ "NO_FILTER": "Nessun filtro disponibile",
+ "SEARCH": "Filtro ricerca",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "Nome SLA",
+ "AGENTS": "Nome operatore",
+ "INBOXES": "Nome inbox",
+ "LABELS": "Nome etichetta",
+ "TEAMS": "Nome del team"
+ },
+ "SLA": "Policy SLA",
+ "INBOXES": "Inbox",
+ "AGENTS": "Operatore",
+ "LABELS": "Etichetta",
+ "TEAMS": "Team"
+ },
+ "WITH": "con",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentuale di SLA creati completata con successo"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Numero di Mancate",
+ "TOOLTIP": "Totale SLA mancate in un determinato periodo"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Numero di Conversazioni",
+ "TOOLTIP": "Numero totale di conversazioni con SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversazione",
+ "AGENT": "Operatore"
+ },
+ "VIEW_DETAILS": "Visualizza Dettagli"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "Inbox",
+ "AGENT": "Operatore",
+ "TEAM": "Team",
+ "LABEL": "Etichetta",
+ "AVG_RESOLUTION_TIME": "Tempo Medio Di Risoluzione",
+ "AVG_FIRST_RESPONSE_TIME": "Tempo Medio Di Prima Risposta",
+ "AVG_REPLY_TIME": "Tempo Medio Di Attesa Del Cliente",
+ "RESOLUTION_COUNT": "Conteggio risoluzioni",
+ "CONVERSATIONS": "Numero di conversazioni"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/resetPassword.json b/app/javascript/dashboard/i18n/locale/it/resetPassword.json
index 8bf54bdaf..b2a4da74c 100644
--- a/app/javascript/dashboard/i18n/locale/it/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/it/resetPassword.json
@@ -1,8 +1,8 @@
{
"RESET_PASSWORD": {
"TITLE": "Reimposta password",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "Inserisci l'indirizzo email che usi per accedere a Chatwoot per ottenere le istruzioni per reimpostare la password.",
+ "GO_BACK_TO_LOGIN": "Se vuoi tornare alla pagina di login,",
"EMAIL": {
"LABEL": "Email",
"PLACEHOLDER": "Inserisci il tuo indirizzo email.",
@@ -10,7 +10,7 @@
},
"API": {
"SUCCESS_MESSAGE": "Il link per reimpostare la password è stato inviato alla tua email.",
- "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova."
},
"SUBMIT": "Invia"
}
diff --git a/app/javascript/dashboard/i18n/locale/it/search.json b/app/javascript/dashboard/i18n/locale/it/search.json
index be8994196..f5ae0f026 100644
--- a/app/javascript/dashboard/i18n/locale/it/search.json
+++ b/app/javascript/dashboard/i18n/locale/it/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Tutti",
+ "ALL": "Tutti i risultati",
"CONTACTS": "Contatti",
"CONVERSATIONS": "Conversazioni",
- "MESSAGES": "Messaggi"
+ "MESSAGES": "Messaggi",
+ "ARTICLES": "Articoli"
},
"SECTION": {
"CONTACTS": "Contatti",
"CONVERSATIONS": "Conversazioni",
- "MESSAGES": "Messaggi"
+ "MESSAGES": "Messaggi",
+ "ARTICLES": "Articoli"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
- "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "VIEW_MORE": "Mostra di più",
+ "LOAD_MORE": "Carica altro",
+ "SEARCHING_DATA": "Ricerca",
+ "LOADING_DATA": "Caricamento",
+ "EMPTY_STATE": "Nessun {item} trovato per la ricerca '{query}'",
+ "EMPTY_STATE_FULL": "Nessun risultato trovato per la ricerca '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/per evidenziare",
+ "INPUT_PLACEHOLDER": "Digita 3 o più caratteri da cercare",
+ "RECENT_SEARCHES": "Ricerche recenti",
+ "CLEAR_ALL": "Rimuovi tutto",
+ "MOST_RECENT": "Più recenti",
+ "EMPTY_STATE_DEFAULT": "Ricerca per id conversazione, email, numero di telefono, messaggi per risultati di ricerca migliori. ",
"BOT_LABEL": "Bot",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
- "FROM": "da",
- "EMAIL": "email"
+ "READ_MORE": "Leggi di più",
+ "READ_LESS": "Leggi meno",
+ "WROTE": "ha scritto:",
+ "FROM": "Da",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Oggetto",
+ "PRIVATE": "Nota Privata",
+ "TRANSCRIPT": "Trascrizione",
+ "CREATED_AT": "creato {time}",
+ "UPDATED_AT": "aggiornato {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Rilevanza"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Ultimi 7 giorni",
+ "LAST_30_DAYS": "Ultimi 30 giorni",
+ "LAST_60_DAYS": "Ultimi 60 giorni",
+ "LAST_90_DAYS": "Ultimi 90 giorni",
+ "CUSTOM_RANGE": "Range personalizzato:",
+ "CREATED_BETWEEN": "Creato tra",
+ "AND": "e",
+ "APPLY": "Applica",
+ "BEFORE_DATE": "Prima del {date}",
+ "AFTER_DATE": "Dopo il {date}",
+ "TIME_RANGE": "Filtra per orario",
+ "CLEAR_FILTER": "Rimuovi filtro"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filtra i messaggi per:",
+ "FROM": "Mittente",
+ "IN": "Inbox",
+ "AGENTS": "Operatori",
+ "CONTACTS": "Contatti",
+ "INBOXES": "Inbox",
+ "NO_AGENTS": "Nessun operatore trovato",
+ "NO_CONTACTS": "Avvia una ricerca per vedere risultati",
+ "NO_INBOXES": "Nessuna Inbox trovata"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/setNewPassword.json b/app/javascript/dashboard/i18n/locale/it/setNewPassword.json
index 2d8765627..134356144 100644
--- a/app/javascript/dashboard/i18n/locale/it/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/it/setNewPassword.json
@@ -7,13 +7,13 @@
"ERROR": "Password troppo corta."
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
- "PLACEHOLDER": "Conferma password",
+ "LABEL": "Conferma password",
+ "PLACEHOLDER": "Conferma Password",
"ERROR": "Le password non corrispondono."
},
"API": {
"SUCCESS_MESSAGE": "Password cambiata con successo.",
- "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi"
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova."
},
"CAPTCHA": {
"ERROR": "Verifica scaduta. Si prega di risolvere nuovamente il captcha."
diff --git a/app/javascript/dashboard/i18n/locale/it/settings.json b/app/javascript/dashboard/i18n/locale/it/settings.json
index a3020ddcf..c210c8872 100644
--- a/app/javascript/dashboard/i18n/locale/it/settings.json
+++ b/app/javascript/dashboard/i18n/locale/it/settings.json
@@ -1,16 +1,17 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Impostazioni profilo",
- "TITLE": "Impostazioni profilo",
- "BTN_TEXT": "Aggiorna profilo",
- "DELETE_AVATAR": "Elimina avatar",
+ "LINK": "Impostazioni Profilo",
+ "TITLE": "Impostazioni Profilo",
+ "BTN_TEXT": "Aggiorna Profilo",
+ "DELETE_AVATAR": "Elimina Avatar",
"AVATAR_DELETE_SUCCESS": "L'avatar è stato eliminato con successo",
"AVATAR_DELETE_FAILED": "C'è un errore durante l'eliminazione dell'avatar, si prega di riprovare",
"UPDATE_SUCCESS": "Il tuo profilo è stato aggiornato con successo",
"PASSWORD_UPDATE_SUCCESS": "La tua password è stata modificata con successo",
- "AFTER_EMAIL_CHANGED": "Il tuo profilo è stato aggiornato correttamente, effettua nuovamente l'accesso, siccome le tue credenziali di accesso sono state modificate",
+ "AFTER_EMAIL_CHANGED": "Il tuo profilo è stato aggiornato correttamente, effettua nuovamente l'accesso visto che le credenziali di accesso sono state modificate",
"FORM": {
- "AVATAR": "Immagine del profilo",
+ "PICTURE": "Immagine del Profilo",
+ "AVATAR": "Immagine del Profilo",
"ERROR": "Correggi gli errori del modulo",
"REMOVE_IMAGE": "Rimuovi",
"UPLOAD_IMAGE": "Carica immagine",
@@ -20,29 +21,55 @@
"NOTE": "Il tuo indirizzo email è la tua identità e viene utilizzato per l'accesso."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "Tasto per inviare messaggi",
+ "NOTE": "Puoi selezionare un tasto di scelta rapida (Invio o Cmd/Ctrl+Invio) in base alle tue preferenze di scrittura.",
+ "UPDATE_SUCCESS": "Impostazioni aggiornate con successo",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "Invio (↵)",
+ "CONTENT": "Invia messaggi premendo il tasto Invio invece di fare clic sul pulsante Invia."
},
"CMD_ENTER_KEY": {
- "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "HEADING": "Cmd/Ctrl + Invio (⌘ + ↵)",
+ "CONTENT": "Invia messaggi premendo Cmd/Ctrl + Invio invece di dover cliccare sul pulsante Invia."
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interfaccia",
+ "NOTE": "Personalizza l'aspetto della tua dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Grandezza font",
+ "NOTE": "Regola la dimensione del testo sulla dashboard in base alle tue preferenze.",
+ "UPDATE_SUCCESS": "Le impostazioni del font sono state aggiornate con successo",
+ "UPDATE_ERROR": "C'è stato un errore durante l'aggiornamento del font, si prega di riprovare",
+ "OPTIONS": {
+ "SMALLER": "Più piccolo",
+ "SMALL": "Piccolo",
+ "DEFAULT": "Predefinito",
+ "LARGE": "Grande",
+ "LARGER": "Più Grande",
+ "EXTRA_LARGE": "Molto Grande"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Lingua Preferita",
+ "NOTE": "Scegli la lingua che vuoi utilizzare.",
+ "UPDATE_SUCCESS": "Le impostazioni della lingua sono state aggiornate con successo",
+ "UPDATE_ERROR": "C'è stato un errore durante l'aggiornamento della lingua, si prega di riprovare",
+ "USE_ACCOUNT_DEFAULT": "Predefinita account"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Firma del messaggio personale",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
+ "TITLE": "Firma del messaggio",
+ "NOTE": "Crea una firma di messaggio univoca da visualizzare alla fine di ogni messaggio che invii da qualsiasi Inbox. È anche possibile includere un'immagine inline, che è supportata in live-chat, e-mail e API.",
"BTN_TEXT": "Salva firma del messaggio",
"API_ERROR": "Impossibile salvare la firma! Riprova",
"API_SUCCESS": "Firma salvata con successo",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_ERROR": "Impossibile caricare l'immagine! Riprova",
+ "IMAGE_UPLOAD_SUCCESS": "Immagine aggiunta con successo. Clicca su Salva per salvare la firma",
+ "IMAGE_UPLOAD_SIZE_ERROR": "La dimensione dell'immagine deve essere inferiore a {size}MB",
+ "INLINE_IMAGE_WARNING": "Le immagini in linea non possono più essere incollate. Si prega di utilizzare il pulsante di caricamento dell'immagine per aggiungere immagini alla firma."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Firma del messaggio",
@@ -54,27 +81,59 @@
"NOTE": "Aggiornare la tua password reimposterà i tuoi accessi in più dispositivi.",
"BTN_TEXT": "Cambia password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Sicurezza",
+ "NOTE": "Gestisci funzionalità di sicurezza aggiuntive per il tuo account.",
+ "MFA_BUTTON": "Gestisci Autenticazione A Due Fattori"
+ },
"ACCESS_TOKEN": {
"TITLE": "Token di accesso",
- "NOTE": "Questo token può essere usato se stai costruendo un'integrazione basata su API"
+ "NOTE": "Questo token può essere usato se stai costruendo un'integrazione basata su API",
+ "COPY": "Copia",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Sei sicuro?",
+ "CONFIRM_HINT": "Clicca di nuovo per confermare",
+ "RESET_SUCCESS": "Token di accesso rigenerato correttamente",
+ "RESET_ERROR": "Impossibile rigenerare il token di accesso. Riprova"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Notifiche audio",
- "NOTE": "Abilita le notifiche audio nella dashboard per nuovi messaggi e conversazioni.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Avvisi Audio",
+ "NOTE": "Abilita gli avvisi audio nella dashboard per nuovi messaggi e conversazioni.",
+ "PLAY": "Riproduci suono",
+ "ALERT_TYPES": {
"NONE": "Nessuno",
- "ASSIGNED": "Conversazioni assegnate",
- "ALL_CONVERSATIONS": "Tutte le conversazioni"
+ "MINE": "Assegnate",
+ "ALL": "Tutti",
+ "ASSIGNED": "Le conversazioni assegnate a me",
+ "UNASSIGNED": "Conversazioni non assegnate",
+ "NOTME": "Conversazioni aperte assegnate ad altri"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Non hai selezionato nessuna opzione, non riceverai alcun avviso audio.",
+ "ASSIGNED": "Riceverai avvisi per le conversazioni assegnate a te.",
+ "UNASSIGNED": "Riceverai avvisi per qualsiasi conversazione non assegnata.",
+ "NOTME": "Riceverai avvisi per le conversazioni assegnate ad altri.",
+ "ASSIGNED+UNASSIGNED": "Riceverai avvisi per le conversazioni assegnate a te e per quelle non risposte.",
+ "ASSIGNED+NOTME": "Riceverai avvisi per le conversazioni assegnate a te e agli altri, ma non per quelle non assegnate.",
+ "NOTME+UNASSIGNED": "Riceverai avvisi per conversazioni non risposte e per quelle assegnate ad altri.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Riceverai avvisi per tutte le conversazioni."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Eventi di avviso per le conversazioni",
+ "NONE": "Nessuno",
+ "ASSIGNED": "Conversazioni Assegnate",
+ "ALL_CONVERSATIONS": "Tutte le Conversazioni"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "Tono avviso:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "Condizioni di avviso:",
+ "CONDITION_ONE": "Invia avvisi audio solo se la finestra del browser non è attiva",
+ "CONDITION_TWO": "Invia avvisi ogni 30s fino alla lettura di tutte le conversazioni assegnate"
+ },
+ "SOUND_PERMISSION_ERROR": "La riproduzione automatica è disabilitata nel tuo browser. Per sentire gli avvisi automaticamente, abilita i permessi audio nelle impostazioni del tuo browser o interagisci con la pagina.",
+ "READ_MORE": "Leggi di più"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notifiche email",
@@ -83,50 +142,74 @@
"CONVERSATION_CREATION": "Invia notifiche email quando viene creata una nuova conversazione",
"CONVERSATION_MENTION": "Invia notifiche email quando sei menzionato in una conversazione",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Invia notifiche email quando viene creato un nuovo messaggio in una conversazione assegnata",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Invia notifiche email quando un nuovo messaggio viene creato in una conversazione partecipata",
+ "SLA_MISSED_FIRST_RESPONSE": "Invia notifiche email quando una conversazione manca il tempo di risposta SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Invia notifiche email quando una conversazione manca il tempo di prossima risposta SLA",
+ "SLA_MISSED_RESOLUTION": "Invia notifiche email quando una conversazione manca il tempo di risoluzione SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Preferenze di notifica",
+ "TYPE_TITLE": "Tipo di notifica",
+ "EMAIL": "Email",
+ "PUSH": "Notifica push",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Una nuova conversazione è stata creata",
+ "CONVERSATION_ASSIGNED": "Una conversazione ti viene assegnata",
+ "CONVERSATION_MENTION": "Vieni menzionato in una conversazione",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Un nuovo messaggio è stato creato in una conversazione assegnata",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Un nuovo messaggio è stato creato in una conversazione partecipata",
+ "SLA_MISSED_FIRST_RESPONSE": "Una conversazione manca il tempo di prima risposta SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Una conversazione manca il tempo di risposta successiva SLA",
+ "SLA_MISSED_RESOLUTION": "Una conversazione manca il tempo di risoluzione SLA"
+ },
+ "BROWSER_PERMISSION": "Abilita le notifiche push per il browser"
},
"API": {
"UPDATE_SUCCESS": "Le preferenze per le notifiche sono state aggiornate con successo",
"UPDATE_ERROR": "C'è stato un errore durante l'aggiornamento delle preferenze, si prega di riprovare"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Notifiche push",
+ "TITLE": "Notifiche Push",
"NOTE": "Aggiorna qui le tue preferenze di notifiche push",
"CONVERSATION_ASSIGNMENT": "Invia notifiche push quando una conversazione mi viene assegnata",
- "CONVERSATION_CREATION": "Invia notifiche push quando una conversazione mi viene assegnata",
+ "CONVERSATION_CREATION": "Invia notifiche push quando viene creata una nuova conversazione",
"CONVERSATION_MENTION": "Invia notifiche push quando sei menzionato in una conversazione",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Invia notifiche push quando viene creato un nuovo messaggio in una conversazione assegnata",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Invia notifiche push quando viene creato un nuovo messaggio in una conversazione partecipata",
"HAS_ENABLED_PUSH": "Hai abilitato notifiche push per questo browser.",
- "REQUEST_PUSH": "Abilita notifiche push"
+ "REQUEST_PUSH": "Abilita notifiche push",
+ "SLA_MISSED_FIRST_RESPONSE": "Invia notifiche push quando una conversazione manca il tempo di prima risposta SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Invia notifiche push quando una conversazione manca il tempo di risposta successiva SLA",
+ "SLA_MISSED_RESOLUTION": "Invia notifiche push quando una conversazione manca il tempo di risoluzione SLA"
},
"PROFILE_IMAGE": {
- "LABEL": "Immagine del profilo"
+ "LABEL": "Immagine del Profilo"
},
"NAME": {
"LABEL": "Il tuo nome completo",
- "ERROR": "Per favore inserisci il nome completo",
- "PLACEHOLDER": "Per favore inserisci il nome completo"
+ "ERROR": "Inserisci un nome completo valido",
+ "PLACEHOLDER": "Inserisci il tuo nome completo"
},
"DISPLAY_NAME": {
"LABEL": "Nome visualizzato",
- "ERROR": "Inserisci un nome di visualizzazione valido",
- "PLACEHOLDER": "Inserisci un nome di visualizzazione, questo verrà visualizzato nelle conversazioni"
+ "ERROR": "Inserisci un nome visualizzato valido",
+ "PLACEHOLDER": "Inserisci un nome visualizzato, questo verrà mostrato nelle conversazioni"
},
"AVAILABILITY": {
"LABEL": "Disponibilità",
- "STATUSES_LIST": [
- "Online",
- "Occupato",
- "Offline"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Occupato",
+ "OFFLINE": "Offline"
+ },
+ "SET_AVAILABILITY_SUCCESS": "Disponibilità impostata correttamente",
+ "SET_AVAILABILITY_ERROR": "Impossibile impostare la disponibilità, riprova",
+ "IMPERSONATING_ERROR": "Impossibile modificare la disponibilità durante l'impersonazione di un utente"
},
"EMAIL": {
"LABEL": "Il tuo indirizzo email",
"ERROR": "Inserisci un indirizzo email valido",
- "PLACEHOLDER": "Inserisci il tuo indirizzo email, che verrà visualizzato nelle conversazioni"
+ "PLACEHOLDER": "Inserisci il tuo indirizzo email, questo verrà mostrato nelle conversazioni"
},
"CURRENT_PASSWORD": {
"LABEL": "Password attuale",
@@ -148,31 +231,41 @@
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Cambia",
"CHANGE_ACCOUNTS": "Cambia account",
+ "SWITCH_ACCOUNT": "Cambia account",
"CONTACT_SUPPORT": "Contatta il supporto",
- "SELECTOR_SUBTITLE": "Seleziona un account dal seguente elenco",
+ "SELECTOR_SUBTITLE": "Seleziona un account dall'elenco",
"PROFILE_SETTINGS": "Impostazioni profilo",
+ "YEAR_IN_REVIEW": "Year in Review",
"KEYBOARD_SHORTCUTS": "Scorciatoie da tastiera",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Disconnettiti"
+ "APPEARANCE": "Personalizza aspetto",
+ "SUPER_ADMIN_CONSOLE": "Console SuperAdmin",
+ "DOCS": "Leggi la documentazione",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Disconnetti"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "giorni di prova rimanenti.",
- "TRAIL_BUTTON": "Acquista ora",
- "DELETED_USER": "Utente eliminato",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "TRAIL_BUTTON": "Acquista Ora",
+ "DELETED_USER": "Utente Eliminato",
+ "EMAIL_VERIFICATION_PENDING": "Sembra che tu non abbia ancora verificato il tuo indirizzo email. Controlla la tua casella di posta per l'email di verifica.",
+ "RESEND_VERIFICATION_MAIL": "Invia nuovamente email di verifica",
+ "EMAIL_VERIFICATION_SENT": "L'email di verifica è stata inviata. Controlla la tua casella di posta.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account sospeso",
+ "TITLE": "Account Sospeso",
"MESSAGE": "Il tuo account è sospeso. Contatta il team di supporto per ulteriori informazioni."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "Nessun account trovato",
+ "MESSAGE_CLOUD": "Non fai parte di nessun account al momento. Se pensi che sia un errore, contatta il nostro team di supporto.",
+ "MESSAGE_SELF_HOSTED": "Non fai parte di nessun account al momento. Per favore contatta il tuo amministratore.",
+ "LOGOUT": "Disconnetti"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "Copia",
- "CODEPEN": "Open in CodePen",
- "COPY_SUCCESSFUL": "Codice copiato negli appunti correttamente"
+ "CODEPEN": "Apri in CodePen",
+ "COPY_SUCCESSFUL": "Copiato negli appunti"
},
"SHOW_MORE_BLOCK": {
"SHOW_MORE": "Mostra di più",
@@ -181,104 +274,341 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Scarica",
"UPLOADING": "Caricamento...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Questa storia non è più disponibile."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Questa storia non è più disponibile.",
+ "INSTAGRAM_STORY_REPLY": "Ha risposto alla tua storia:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "Vedi sulla mappa"
},
"FORM_BUBBLE": {
"SUBMIT": "Invia"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Questa immagine non è più disponibile.",
+ "LOADING_FAILED": "Caricamento non riuscito"
}
},
"CONFIRM_EMAIL": "Verifica...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Aggiungi Casella"
+ "NEW_INBOX": "Aggiungi Inbox"
}
},
"SIDEBAR": {
+ "NO_ITEMS": "Nessun elemento",
"CURRENTLY_VIEWING_ACCOUNT": "Visualizzazione attuale:",
- "SWITCH": "Scambia",
+ "SWITCH": "Cambia",
+ "INBOX_VIEW": "Vista Inbox",
"CONVERSATIONS": "Conversazioni",
- "INBOX": "Casella",
- "ALL_CONVERSATIONS": "Tutte le conversazioni",
+ "INBOX": "La mia Inbox",
+ "ALL_CONVERSATIONS": "Tutte le Conversazioni",
"MENTIONED_CONVERSATIONS": "Menzioni",
- "PARTICIPATING_CONVERSATIONS": "Participating",
+ "PARTICIPATING_CONVERSATIONS": "Partecipate",
"UNATTENDED_CONVERSATIONS": "Non partecipate",
- "REPORTS": "Segnalazioni",
+ "REPORTS": "Report",
"SETTINGS": "Impostazioni",
"CONTACTS": "Contatti",
+ "ACTIVE": "Attivi",
+ "COMPANIES": "Aziende",
+ "ALL_COMPANIES": "Tutte le Aziende",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistenti",
+ "CAPTAIN_DOCUMENTS": "Documenti",
+ "CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "Strumenti",
+ "CAPTAIN_SCENARIOS": "Scenari",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inbox",
+ "CAPTAIN_SETTINGS": "Impostazioni",
"HOME": "Home",
- "AGENTS": "Agenti",
+ "AGENTS": "Operatori",
"AGENT_BOTS": "Bots",
"AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Posta",
+ "INBOXES": "Inbox",
"NOTIFICATIONS": "Notifiche",
- "CANNED_RESPONSES": "Risposte predefinite",
+ "CANNED_RESPONSES": "Risposte Predefinite",
"INTEGRATIONS": "Integrazioni",
- "PROFILE_SETTINGS": "Impostazioni profilo",
- "ACCOUNT_SETTINGS": "Impostazioni account",
+ "PROFILE_SETTINGS": "Impostazioni Profilo",
+ "ACCOUNT_SETTINGS": "Impostazioni Account",
"APPLICATIONS": "Applicazioni",
"LABELS": "Etichette",
- "CUSTOM_ATTRIBUTES": "Attributi personalizzati",
- "AUTOMATION": "Automazione",
- "MACROS": "Macros",
- "TEAMS": "Teams",
+ "CUSTOM_ATTRIBUTES": "Attributi Personalizzati",
+ "AUTOMATION": "Automazioni",
+ "MACROS": "Macro",
+ "TEAMS": "Team",
"BILLING": "Fatturazione",
"CUSTOM_VIEWS_FOLDER": "Cartelle",
"CUSTOM_VIEWS_SEGMENTS": "Segmenti",
- "ALL_CONTACTS": "Tutti i contatti",
+ "ALL_CONTACTS": "Tutti i Contatti",
"TAGGED_WITH": "Etichettato con",
"NEW_LABEL": "Nuova etichetta",
"NEW_TEAM": "Nuovo team",
- "NEW_INBOX": "Nuova casella di posta",
+ "NEW_INBOX": "Nuova Inbox",
"REPORTS_CONVERSATION": "Conversazioni",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campagne",
"ONGOING": "In corso",
- "ONE_OFF": "Uno fuori",
- "REPORTS_AGENT": "Agenti",
+ "ONE_OFF": "Una-tantum",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
+ "REPORTS_AGENT": "Operatori",
"REPORTS_LABEL": "Etichette",
- "REPORTS_INBOX": "Posta",
+ "REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Imposta te stesso come",
+ "AGENT_ASSIGNMENT": "Assegnazione Operatori",
+ "SET_AVAILABILITY_TITLE": "Impostati come",
+ "SET_YOUR_AVAILABILITY": "Imposta la tua disponibilità",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Ruoli Personalizzati",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Panoramica",
- "FACEBOOK_REAUTHORIZE": "La tua connessione a Facebook è scaduta, ricollegati alla tua pagina Facebook per continuare i servizi",
+ "REAUTHORIZE": "La tua connessione alla Inbox è scaduta, ricollegati per continuare a ricevere e inviare messaggi",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "Tutti gli articoli",
- "MY_ARTICLES": "I miei articoli",
- "DRAFT": "Bozza",
- "ARCHIVED": "Archiviato",
- "CATEGORY": "Categoria",
- "SETTINGS": "Impostazioni",
- "CATEGORY_EMPTY_MESSAGE": "Nessuna categoria trovata"
+ "ARTICLES": "Articoli",
+ "CATEGORIES": "Categorie",
+ "LOCALES": "Lingue",
+ "SETTINGS": "Impostazioni"
},
+ "CHANNELS": "Canali",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "Imposta offline automaticamente",
+ "INFO_TEXT": "Consenti al sistema di impostarti automaticamente offline quando non utilizzi l'app o la dashboard.",
+ "INFO_SHORT": "Imposta automaticamente offline quando non stai usando l'app."
},
- "DOCS": "Leggi i documenti"
+ "DOCS": "Leggi i documenti",
+ "SECURITY": "Sicurezza",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Workflow Conversazione"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Impostazioni Captain",
+ "DESCRIPTION": "Configura i tuoi modelli AI e le funzionalità di Captain. La fatturazione di Captain si basa sui crediti, che ti verranno scalati per ogni azione di Captain in base al modello selezionato.",
+ "LOADING": "Caricamento configurazione Captain...",
+ "LINK_TEXT": "Scopri di più sui Crediti Captain",
+ "NOT_ENABLED": "Captain non è abilitato per il tuo account. Aggiorna il tuo piano per accedere alle funzionalità Captain.",
+ "MODEL_CONFIG": {
+ "TITLE": "Configurazione Modello",
+ "DESCRIPTION": "Seleziona modelli AI per le varie funzionalità.",
+ "SELECT_MODEL": "Seleziona modello",
+ "CREDITS_PER_MESSAGE": "{credits} crediti/messaggio",
+ "COMING_SOON": "In arrivo",
+ "EDITOR": {
+ "TITLE": "Funzionalità Editor",
+ "DESCRIPTION": "Permette smart compose, correzioni grammaticali, gestione del tono di voce e miglioramento del contenuto nell'editor dei messaggi."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistente",
+ "DESCRIPTION": "Gestisce risposte automatizzate, riassunti delle conversazioni e suggerimenti di risposta intelligenti per le interazioni con i clienti."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Fornisce suggerimenti contestuali in tempo reale, consigli sulla knowledge base e insight proattivi durante le conversazioni."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funzionalità",
+ "DESCRIPTION": "Abilita o disabilita le funzionalità AI.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Trascrizione Audio",
+ "DESCRIPTION": "Converte automaticamente i messaggi vocali e le registrazioni delle chiamate in trascrizioni di testo ricercabili."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Indicizzazione Ricerca Help Center",
+ "DESCRIPTION": "Usa l'AI per effettuare una ricerca contestualizzata tra gli articoli dell'help center."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Suggerimento Etichette",
+ "DESCRIPTION": "Suggerisce automaticamente etichette e tag rilevanti per le conversazioni in base all'analisi e al contesto dei contenuti.",
+ "MODEL_TITLE": "Modello Di Suggerimento Etichette",
+ "MODEL_DESCRIPTION": "Seleziona il modello AI da utilizzare per analizzare le conversazioni e suggerire etichette appropriate"
+ }
+ },
+ "API": {
+ "SUCCESS": "Impostazioni Captain aggiornate con successo.",
+ "ERROR": "Impossibile aggiornare le impostazioni Captain. Per favore riprova."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Fatturazione",
+ "DESCRIPTION": "Gestisci qui il tuo abbonamento, aggiorna il tuo piano e ottieni di più per il tuo team.",
"CURRENT_PLAN": {
"TITLE": "Piano attuale",
- "PLAN_NOTE": "Sei attualmente abbonato al piano **%{plan}** con **%{quantity}** licenze"
+ "PLAN_NOTE": "Sei attualmente abbonato al piano **{plan}** con **{quantity}** licenze",
+ "SEAT_COUNT": "Numero di seat",
+ "RENEWS_ON": "Si rinnova il"
},
+ "VIEW_PRICING": "Visualizza Prezzi",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Gestisci il tuo abbonamento",
"DESCRIPTION": "Visualizza le tue fatture precedenti, modifica i tuoi dati di fatturazione o annulla il tuo abbonamento.",
"BUTTON_TXT": "Vai al portale di fatturazione"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Gestisci utilizzo e crediti per Captain AI.",
+ "BUTTON_TXT": "Acquista più crediti",
+ "DOCUMENTS": "Documenti",
+ "RESPONSES": "Risposte",
+ "UPGRADE": "Captain non è disponibile sul piano gratuito, aggiorna ora per ottenere l'accesso agli assistenti, copilot e altro ancora.",
+ "REFRESH_CREDITS": "Aggiorna"
+ },
"CHAT_WITH_US": {
"TITLE": "Hai bisogno di aiuto?",
"DESCRIPTION": "Hai qualche problema di fatturazione? Siamo qui per aiutarti.",
"BUTTON_TXT": "Chatta con noi"
},
- "NO_BILLING_USER": "Il tuo account di fatturazione è in fase di configurazione. Per favore aggiorna la pagina e riprova."
+ "NO_BILLING_USER": "Il tuo account di fatturazione è in fase di configurazione. Per favore aggiorna la pagina e riprova.",
+ "TOPUP": {
+ "BUY_CREDITS": "Acquista più crediti",
+ "MODAL_TITLE": "Acquista Crediti AI",
+ "MODAL_DESCRIPTION": "Acquista crediti aggiuntivi per Captain AI.",
+ "CREDITS": "CREDITI",
+ "ONE_TIME": "una tantum",
+ "POPULAR": "Più Popolare",
+ "NOTE_TITLE": "Nota:",
+ "NOTE_DESCRIPTION": "I crediti vengono aggiunti immediatamente e scadono in 6 mesi. È necessario un abbonamento attivo per utilizzare i crediti. I crediti acquistati vengono consumati dopo i crediti mensili del piano.",
+ "CANCEL": "Annulla",
+ "PURCHASE": "Acquista Crediti",
+ "LOADING": "Caricamento opzioni...",
+ "FETCH_ERROR": "Impossibile caricare le opzioni crediti. Riprova.",
+ "PURCHASE_ERROR": "Impossibile elaborare l'acquisto. Riprova.",
+ "PURCHASE_SUCCESS": "{credits} crediti aggiunti correttamente al tuo account",
+ "CONFIRM": {
+ "TITLE": "Conferma Acquisto",
+ "DESCRIPTION": "Stai per acquistare {credits} crediti per {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "L'importo verrà addebitato immediatamente sulla tua carta salvata al momento della conferma.",
+ "GO_BACK": "Torna Indietro",
+ "CONFIRM_PURCHASE": "Conferma Acquisto"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Sicurezza",
+ "DESCRIPTION": "Gestisci le impostazioni di sicurezza del tuo account.",
+ "LINK_TEXT": "Ulteriori informazioni su SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO è attualmente disabilitato. Contatta l'amministratore per abilitare questa funzionalità.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configura SAML single sign-on per il tuo account. Gli utenti si autenticeranno tramite il tuo provider di identità invece di utilizzare email/password.",
+ "ACS_URL": {
+ "LABEL": "URL ACS",
+ "TOOLTIP": "URL Assertion Consumer Service - Configura questo URL nel tuo IdP come destinazione per le risposte SAML"
+ },
+ "SSO_URL": {
+ "LABEL": "URL SSO",
+ "HELP": "L'URL dove verranno inviate le richieste di autenticazione SAML",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Certificato di firma in formato PEM",
+ "HELP": "Il certificato pubblico del provider di identità utilizzato per verificare le risposte SAML",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "Fingerprint SHA-1 del certificato — utilizzala per verificare il certificato nella configurazione del tuo IdP"
+ },
+ "COPY_SUCCESS": "Copiato negli appunti",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Identificatore univoco per questa applicazione come Service Provider (generato automaticamente).",
+ "TOOLTIP": "Identificatore univoco di Chatwoot come Service Provider — configuralo nelle impostazioni del tuo IdP"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Identificatore univoco del tuo Identity Provider (di solito presente nella configurazione dell’IdP)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Aggiorna Impostazioni SAML",
+ "API": {
+ "SUCCESS": "Impostazioni SAML aggiornate correttamente",
+ "ERROR": "Impossibile aggiornare le impostazioni SAML",
+ "ERROR_LOADING": "Impossibile caricare le impostazioni SAML",
+ "DISABLED": "Impostazioni SAML disabilitate correttamente"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID e Certificate sono campi obbligatori",
+ "SSO_URL_ERROR": "Inserisci un URL SSO valido",
+ "CERTIFICATE_ERROR": "Certificato richiesto",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID è richiesto"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funzionalità SAML SSO è disponibile solo nei piani Enterprise.",
+ "UPGRADE_PROMPT": "Passa a un piano Enterprise per accedere a SAML single sign-on e ad altre funzionalità di sicurezza avanzate.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per abilitare SAML SSO",
+ "AVAILABLE_ON": "La funzionalità SAML SSO è disponibile solo nei piani Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso a SAML single sign-on e altre funzionalità avanzate.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "Impostazioni Attributi SAML",
+ "DESCRIPTION": "I seguenti mapping degli attributi devono essere configurati nel tuo Identity Provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Informazioni sul Service Provider",
+ "TOOLTIP": "Copia questi valori e configurali nel tuo Identity Provider per stabilire la connessione SAML"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Workflow Conversazione",
+ "DESCRIPTION": "Configura regole e campi obbligatori per la risoluzione delle conversazioni."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributi richiesti per la risoluzione",
+ "DESCRIPTION": "Quando si risolve una conversazione, agli operatori verrà chiesto di compilare questi attributi se non sono ancora stati compilati.",
+ "NO_ATTRIBUTES": "Nessun attributo aggiunto",
+ "ADD": {
+ "TITLE": "Aggiungi Attributi",
+ "SEARCH_PLACEHOLDER": "Cerca attributi"
+ },
+ "SAVE": {
+ "SUCCESS": "Attributi richiesti aggiornati",
+ "ERROR": "Impossibile aggiornare gli attributi richiesti, riprova"
+ },
+ "MODAL": {
+ "TITLE": "Risolvi la conversazione",
+ "DESCRIPTION": "Inserisci i seguenti attributi personalizzati prima di risolvere questa conversazione",
+ "ACTIONS": {
+ "RESOLVE": "Risolvi la conversazione",
+ "CANCEL": "Annulla"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Scrivi una nota...",
+ "NUMBER": "Inserisci un numero",
+ "LINK": "Aggiungi un link",
+ "DATE": "Scegli una data",
+ "LIST": "Seleziona un'opzione"
+ },
+ "CHECKBOX": {
+ "YES": "Sì",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per utilizzare gli attributi richiesti",
+ "AVAILABLE_ON": "La funzionalità Attributi di Conversazione Richiesti è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per chiedere agli operatori di compilare gli attributi richiesti prima della risoluzione della conversazione.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funzionalità Attributi di Conversazione Richiesti è disponibile solo nei piani a pagamento.",
+ "UPGRADE_PROMPT": "Passa a un piano a pagamento per imporre gli attributi richiesti prima della risoluzione della conversazione.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! Non abbiamo trovato alcun account Chatwoot. Si prega di creare un nuovo account per continuare.",
@@ -291,10 +621,11 @@
},
"FORM": {
"NAME": {
- "LABEL": "Nome azienda",
+ "LABEL": "Nome Azienda",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Invia"
+ "SUBMIT": "Invia",
+ "CANCEL": "Annulla"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -303,23 +634,290 @@
"OPEN_CONVERSATION": "Apri conversazione",
"RESOLVE_AND_NEXT": "Risolvi e vai alla prossima",
"NAVIGATE_DROPDOWN": "Naviga con gli elementi a discesa",
- "RESOLVE_CONVERSATION": "Risolvi la conversazione",
- "GO_TO_CONVERSATION_DASHBOARD": "Vai alla dashboard Conversazioni",
+ "RESOLVE_CONVERSATION": "Risolvi Conversazione",
+ "GO_TO_CONVERSATION_DASHBOARD": "Vai alla Dashboard Conversazioni",
"ADD_ATTACHMENT": "Aggiungi allegato",
- "GO_TO_CONTACTS_DASHBOARD": "Vai alla dashboard Contatti",
+ "GO_TO_CONTACTS_DASHBOARD": "Vai alla Dashboard Contatti",
"TOGGLE_SIDEBAR": "Attiva/Disattiva barra laterale",
- "GO_TO_REPORTS_SIDEBAR": "Vai alla barra laterale dei rapporti",
+ "GO_TO_REPORTS_SIDEBAR": "Vai alla barra laterale dei Report",
"MOVE_TO_NEXT_TAB": "Vai alla scheda successiva nell'elenco delle conversazioni",
- "GO_TO_SETTINGS": "Vai alle impostazioni",
- "SWITCH_CONVERSATION_STATUS": "Passa allo stato successivo della conversazione",
- "SWITCH_TO_PRIVATE_NOTE": "Passa alle note private",
+ "GO_TO_SETTINGS": "Vai alle Impostazioni",
+ "SWITCH_TO_PRIVATE_NOTE": "Passa alle Note Private",
"SWITCH_TO_REPLY": "Passa a Risposta",
- "TOGGLE_SNOOZE_DROPDOWN": "Attiva/Disattiva sospensione a discesa"
+ "TOGGLE_SNOOZE_DROPDOWN": "Attiva/Disattiva menu a discesa per la Sospensione"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assegnazione operatori",
+ "DESCRIPTION": "Definisci delle policy per gestire al meglio il carico di lavoro e indirizzare le conversazioni in base alle esigenze delle Inbox e degli operatori. Scopri di più qui"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Policy di assegnazione",
+ "DESCRIPTION": "Gestisci come vengono assegnate le conversazioni nelle Inbox.",
+ "FEATURES": [
+ "Assegna le conversazioni in modo uniforme o in base al limite di conversazioni per operatore",
+ "Aggiungi regole di distribuzione equa per evitare di sovraccaricare gli operatori",
+ "Aggiungi le inbox a una policy — una policy per ogni inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Policy sul limite di conversazioni per operatore",
+ "DESCRIPTION": "Gestisci il carico di lavoro degli operatori.",
+ "FEATURES": [
+ "Definisci il numero massimo di conversazioni per inbox",
+ "Crea eccezioni basate su etichette e tempo",
+ "Aggiungi gli operatori a una policy — una policy per ogni operatore"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Policy di assegnazione",
+ "CREATE_POLICY": "Nuova policy"
+ },
+ "CARD": {
+ "ORDER": "Ordina",
+ "PRIORITY": "Priorità",
+ "ACTIVE": "Attiva",
+ "INACTIVE": "Inattive",
+ "POPOVER": "Inbox aggiunte",
+ "EDIT": "Modifica"
+ },
+ "NO_RECORDS_FOUND": "Nessuna policy di assegnazione trovata"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Crea policy di assegnazione"
+ },
+ "CREATE_BUTTON": "Crea policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Policy di assegnazione creata con successo",
+ "ERROR_MESSAGE": "Impossibile creare la policy di assegnazione",
+ "INBOX_LINKED": "La inbox è stata collegata alla policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Modifica policy di assegnazione"
+ },
+ "EDIT_BUTTON": "Aggiorna policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Aggiungi Inbox",
+ "DESCRIPTION": "La Inbox {inboxName} è già collegata ad un'altra policy. Sei sicuro di volerla collegare a questa policy? Sarà scollegata dall'altra policy.",
+ "CONFIRM_BUTTON_LABEL": "Continua",
+ "CANCEL_BUTTON_LABEL": "Annulla"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Collega inbox alla policy",
+ "DESCRIPTION": "Vuoi collegare questa inbox alla policy di assegnazione?",
+ "LINK_BUTTON": "Collega inbox",
+ "CANCEL_BUTTON": "Salta"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Policy di assegnazione aggiornata con successo",
+ "ERROR_MESSAGE": "Aggiornamento della policy di assegnazione non riuscito"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox aggiunta con successo alla policy",
+ "ERROR_MESSAGE": "Impossibile aggiungere la Inbox alla policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox rimossa dalla policy correttamente",
+ "ERROR_MESSAGE": "Impossibile rimuovere la Inbox dalla policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome policy:",
+ "PLACEHOLDER": "Inserisci il nome della policy"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione:",
+ "PLACEHOLDER": "Inserisci descrizione"
+ },
+ "STATUS": {
+ "LABEL": "Stato:",
+ "PLACEHOLDER": "Seleziona stato",
+ "ACTIVE": "Policy attiva",
+ "INACTIVE": "Policy inattiva"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Ordine di assegnazione",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assegna le conversazioni in modo uniforme tra gli operatori."
+ },
+ "BALANCED": {
+ "LABEL": "Bilanciato",
+ "DESCRIPTION": "Assegna le conversazioni in base alla capacità disponibile.",
+ "PREMIUM_MESSAGE": "Fai l’upgrade per accedere all’assegnazione bilanciata e alla gestione della capacità degli operatori.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Priorità di assegnazione",
+ "EARLIEST_CREATED": {
+ "LABEL": "Creata prima",
+ "DESCRIPTION": "La conversazione che è stata creata per prima viene assegnata per prima."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Attesa più lunga",
+ "DESCRIPTION": "La conversazione con il tempo di attesa più lungo viene assegnata per prima."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Policy di distribuzione equa",
+ "DESCRIPTION": "Imposta il numero massimo di conversazioni che possono essere assegnate per operatore in una finestra temporale per evitare di sovraccaricarlo. Questo campo obbligatorio è impostato di default a 100 conversazioni l'ora.",
+ "INPUT_MAX": "Assegna max",
+ "DURATION": "Conversazioni per operatore ogni"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox aggiunte",
+ "DESCRIPTION": "Aggiungi le inbox a cui applicare questa policy.",
+ "ADD_BUTTON": "Aggiungi Inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cerca e seleziona le inbox da aggiungere",
+ "ADD_BUTTON": "Aggiungi"
+ },
+ "EMPTY_STATE": "Nessuna inbox aggiunta a questa policy, aggiungine una per iniziare",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox aggiunta correttamente alla policy",
+ "ERROR_MESSAGE": "Impossibile aggiungere la Inbox alla policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Policy di assegnazione eliminata correttamente",
+ "ERROR_MESSAGE": "Impossibile eliminare la policy di assegnazione"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Limite di conversazioni per operatore",
+ "CREATE_POLICY": "Nuova policy"
+ },
+ "CARD": {
+ "POPOVER": "Operatori aggiunti",
+ "EDIT": "Modifica"
+ },
+ "NO_RECORDS_FOUND": "Nessuna policy sul limite di conversazioni per operatore trovata"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Crea una policy sul limite di conversazioni per operatore"
+ },
+ "CREATE_BUTTON": "Crea policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Policy sul limite di conversazioni per operatore creata correttamente",
+ "ERROR_MESSAGE": "Impossibile eliminare la policy di assegnazione"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Modifica la policy sul limite di conversazioni per operatore"
+ },
+ "EDIT_BUTTON": "Aggiorna policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Aggiungi operatore",
+ "DESCRIPTION": "{agentName} è già collegato a un’altra policy. Vuoi davvero collegarlo a questa policy? Verrà scollegato dall’altra.",
+ "CONFIRM_BUTTON_LABEL": "Continua",
+ "CANCEL_BUTTON_LABEL": "Annulla"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Policy sul limite conversazioni per operatore aggiornata correttamente",
+ "ERROR_MESSAGE": "Impossibile aggiornare la policy sul limite conversazioni per operatore"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Operatore aggiunto correttamente alla policy",
+ "ERROR_MESSAGE": "Impossibile aggiungere l’operatore alla policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Operatore rimosso correttamente dalla policy",
+ "ERROR_MESSAGE": "Impossibile rimuovere l’operatore dalla policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Limite inbox aggiunto con successo",
+ "ERROR_MESSAGE": "Impossibile aggiungere il limite inbox"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Limite inbox aggiornato con successo",
+ "ERROR_MESSAGE": "Impossibile aggiornare il limite inbox"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Limite inbox eliminato con successo",
+ "ERROR_MESSAGE": "Impossibile eliminare il limite inbox"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome policy:",
+ "PLACEHOLDER": "Inserisci il nome della policy"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrizione:",
+ "PLACEHOLDER": "Inserisci descrizione"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Limiti di conversazioni per inbox",
+ "ADD_BUTTON": "Aggiungi Inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Seleziona Inbox",
+ "MAX_CONVERSATIONS": "Max conversazioni",
+ "SET_LIMIT": "Imposta limite"
+ },
+ "EMPTY_STATE": "Nessun limite Inbox impostato"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Regole di esclusione",
+ "DESCRIPTION": "Le conversazioni che soddisfano le seguenti condizioni non verranno conteggiate nel limite di conversazioni per operatore",
+ "TAGS": {
+ "LABEL": "Escludi conversazioni taggate con etichette specifiche",
+ "ADD_TAG": "aggiungi tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cerca e seleziona i tag da aggiungere"
+ },
+ "EMPTY_STATE": "Nessun tag aggiunto a questa policy."
+ },
+ "DURATION": {
+ "LABEL": "Escludi conversazioni più vecchie di una durata specificata",
+ "PLACEHOLDER": "Imposta tempo"
+ }
+ },
+ "USERS": {
+ "LABEL": "Operatori assegnati",
+ "DESCRIPTION": "Aggiungi operatori per i quali questa policy verrà applicata.",
+ "ADD_BUTTON": "Aggiungi operatore",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cerca e seleziona operatori da aggiungere",
+ "ADD_BUTTON": "Aggiungi"
+ },
+ "EMPTY_STATE": "Nessun operatore aggiunto",
+ "API": {
+ "SUCCESS_MESSAGE": "Operatore aggiunto correttamente alla policy",
+ "ERROR_MESSAGE": "Impossibile aggiungere l’operatore alla policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "La policy sul limite di conversazioni per operatore è stata eliminata correttamente",
+ "ERROR_MESSAGE": "Impossibile eliminare la policy sul limite di conversazioni per operatore"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Elimina policy",
+ "DESCRIPTION": "Sei sicuro di voler eliminare questa policy? Questa azione non può essere annullata.",
+ "CONFIRM_BUTTON_LABEL": "Elimina",
+ "CANCEL_BUTTON_LABEL": "Annulla"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/signup.json b/app/javascript/dashboard/i18n/locale/it/signup.json
index f1700158a..a07e38934 100644
--- a/app/javascript/dashboard/i18n/locale/it/signup.json
+++ b/app/javascript/dashboard/i18n/locale/it/signup.json
@@ -1,15 +1,16 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "Crea un account",
+ "GET_STARTED": "Inizia con Chatwoot",
"TITLE": "Registrati",
- "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
- "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
- "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "TESTIMONIAL_HEADER": "Basta uno step per proseguire",
+ "TESTIMONIAL_CONTENT": "Sei a un passo dal coinvolgere i tuoi clienti, fidelizzarli e trovarne di nuovi.",
+ "TERMS_ACCEPT": "Creando un account, accetti Termini e Condizioni e Privacy policy",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Registrati con Google"
},
"COMPANY_NAME": {
- "LABEL": "Company name",
+ "LABEL": "Nome azienda",
"PLACEHOLDER": "Inserisci il nome della tua azienda. Ad esempio: Wayne Enterprises",
"ERROR": "Il nome dell'azienda è troppo corto."
},
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Email di lavoro",
- "PLACEHOLDER": "Inserisci il tuo indirizzo email di lavoro. es.: bruce@wayne.enterprises",
- "ERROR": "Si prega di inserire un indirizzo email di lavoro valido."
+ "PLACEHOLDER": "Inserisci il tuo indirizzo email di lavoro. es.: bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "Inserisci un indirizzo email di lavoro valido."
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password troppo corta.",
- "IS_INVALID_PASSWORD": "La password dovrebbe contenere almeno 1 lettera maiuscola, 1 lettera minuscola, 1 numero e 1 carattere speciale."
+ "IS_INVALID_PASSWORD": "La password deve contenere almeno 1 lettera maiuscola, 1 lettera minuscola, 1 numero e 1 carattere speciale.",
+ "REQUIREMENTS_LENGTH": "Almeno 6 caratteri",
+ "REQUIREMENTS_UPPERCASE": "Almeno una lettera maiuscola",
+ "REQUIREMENTS_LOWERCASE": "Almeno una lettera minuscola",
+ "REQUIREMENTS_NUMBER": "Almeno un numero",
+ "REQUIREMENTS_SPECIAL": "Almeno un carattere speciale"
},
"CONFIRM_PASSWORD": {
"LABEL": "Conferma password",
"PLACEHOLDER": "Conferma password",
- "ERROR": "La password non corrisponde."
+ "ERROR": "Le password non corrispondono."
},
"API": {
- "SUCCESS_MESSAGE": "Registrazione riuscita",
- "ERROR_MESSAGE": "Impossibile connettersi al server Woot, riprova più tardi."
+ "SUCCESS_MESSAGE": "Registrazione Riuscita",
+ "ERROR_MESSAGE": "Impossibile connettersi al server Woot. Riprova."
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Hai già un account?"
+ "SUBMIT": "Crea account",
+ "HAVE_AN_ACCOUNT": "Hai già un account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Controlla le tue email",
+ "DESCRIPTION": "Abbiamo inviato un link di verifica a {email}. Clicca sul link per verificare la tua email e iniziare.",
+ "RESEND": "Invia nuovamente email di verifica",
+ "RESEND_SUCCESS": "Email di verifica inviata. Controlla la tua casella di posta.",
+ "RESEND_ERROR": "Impossibile inviare l'email di verifica. Riprova."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/sla.json b/app/javascript/dashboard/i18n/locale/it/sla.json
index 8c8a11863..478179c60 100644
--- a/app/javascript/dashboard/i18n/locale/it/sla.json
+++ b/app/javascript/dashboard/i18n/locale/it/sla.json
@@ -1,73 +1,117 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "Non ci sono elementi che corrispondono a questa richiesta",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Aggiungi SLA",
+ "ADD_ACTION_LONG": "Crea una nuova policy SLA",
+ "DESCRIPTION": "I Service Level Agreement (SLA) sono contratti che definiscono chiare aspettative tra il team e i clienti. Stabiliscono norme per i tempi di risposta e di risoluzione, creando un quadro per la responsabilità e garantendo un'esperienza coerente e di alta qualità.",
+ "LEARN_MORE": "Scopri di più su SLA",
+ "COUNT": "{n} SLA | {n} SLA",
+ "LOADING": "Caricamento SLA",
+ "SEARCH_PLACEHOLDER": "Cerca SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "Nessun SLA trovato corrispondente alla tua ricerca"
+ },
+ "PAYWALL": {
+ "TITLE": "Aggiorna per creare SLA",
+ "AVAILABLE_ON": "La funzionalità SLA è disponibile solo nei piani Business e Enterprise.",
+ "UPGRADE_PROMPT": "Aggiorna il tuo piano per ottenere l'accesso a funzionalità avanzate come gestione del team, automazioni, attributi personalizzati e altro ancora.",
+ "UPGRADE_NOW": "Aggiorna ora",
+ "CANCEL_ANYTIME": "Puoi modificare o annullare il tuo piano in qualsiasi momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "La funzionalità SLA è disponibile solo nei piani a pagamento.",
+ "UPGRADE_PROMPT": "Passa a un piano a pagamento per accedere a funzionalità avanzate come audit logs, capacità degli operatori e altro ancora.",
+ "ASK_ADMIN": "Contatta il tuo amministratore per l'aggiornamento."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nome",
- "Descrizione",
- "FRT",
- "NRT",
- "RT",
- "Ore di lavoro"
- ]
+ "404": "Non ci sono SLA disponibili in questo account.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Orario di lavoro"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Problemi sollevati dai clienti enterprise, che richiedono un'attenzione immediata.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Problemi sollevati dai clienti enterprise, che devono essere riconosciuti rapidamente."
+ },
+ "BUSINESS_HOURS_ON": "Abilitato",
+ "BUSINESS_HOURS_OFF": "Disabilitato",
+ "RESPONSE_TYPES": {
+ "FRT": "Soglia tempo di prima risposta",
+ "NRT": "Soglia tempo di risposta successiva",
+ "RT": "Soglia tempo di risoluzione",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
+ "LABEL": "Nome SLA",
+ "PLACEHOLDER": "Nome SLA",
"REQUIRED_ERROR": "SLA name is required",
"MINIMUM_LENGTH_ERROR": "È richiesta una lunghezza minima di 2",
- "VALID_ERROR": "Sono ammessi solo lettere, numeri, trattino e sottolineatura"
+ "VALID_ERROR": "Sono ammessi solo lettere, numeri, trattino e underscore"
},
"DESCRIPTION": {
"LABEL": "Descrizione",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "SLA per clienti premium"
},
"FIRST_RESPONSE_TIME": {
"LABEL": "Tempo di prima risposta",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "Tempo di Risposta Successiva",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
- "LABEL": "Tempo di risoluzione",
+ "LABEL": "Tempo di Risoluzione",
"PLACEHOLDER": "60"
},
"BUSINESS_HOURS": {
- "LABEL": "Ore di lavoro",
- "PLACEHOLDER": "Only during business hours"
+ "LABEL": "Orario Di Lavoro",
+ "PLACEHOLDER": "Solo durante l'orario di lavoro"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "La soglia deve essere un numero e maggiore di zero"
},
"EDIT": "Modifica",
"CREATE": "Crea",
"DELETE": "Elimina",
- "CANCEL": "annulla"
+ "CANCEL": "Annulla"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "Aggiungi SLA",
+ "DESC": "Amichevoli promesse per un grande servizio!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA aggiunta correttamente",
"ERROR_MESSAGE": "Si è verificato un errore, riprova"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Elimina SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA eliminata correttamente",
"ERROR_MESSAGE": "Si è verificato un errore, riprova"
+ },
+ "CONFIRM": {
+ "TITLE": "Conferma Eliminazione",
+ "MESSAGE": "Sei sicuro di voler eliminare ",
+ "YES": "Sì, Elimina ",
+ "NO": "No, Mantieni "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Mancate",
+ "FRT": "Tempo di prima risposta",
+ "NRT": "Tempo di risposta successiva",
+ "RT": "Tempo di risoluzione",
+ "SHOW_MORE": "{count} altre",
+ "HIDE": "Nascondi {count} righe"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/it/snooze.json b/app/javascript/dashboard/i18n/locale/it/snooze.json
new file mode 100644
index 000000000..2abda2fd9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minuto",
+ "MINUTES": "minuti",
+ "HOUR": "ora",
+ "HOURS": "ore",
+ "DAY": "giorno",
+ "DAYS": "giorni",
+ "WEEK": "settimana",
+ "WEEKS": "settimane",
+ "MONTH": "mese",
+ "MONTHS": "mesi",
+ "YEAR": "anno",
+ "YEARS": "anni"
+ },
+ "HALF": "mezza",
+ "NEXT": "prossimo",
+ "THIS": "questo",
+ "AT": "alle",
+ "IN": "in",
+ "FROM_NOW": "da adesso",
+ "NEXT_YEAR": "il prossimo anno",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "domani",
+ "DAY_AFTER_TOMORROW": "dopodomani",
+ "NEXT_WEEK": "prossima settimana",
+ "NEXT_MONTH": "il mese prossimo",
+ "THIS_WEEKEND": "questo fine settimana",
+ "NEXT_WEEKEND": "il prossimo fine settimana"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "mattina",
+ "AFTERNOON": "pomeriggio",
+ "EVENING": "sera",
+ "NIGHT": "notte",
+ "NOON": "mezzogiorno",
+ "MIDNIGHT": "mezzanotte"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "uno",
+ "TWO": "due",
+ "THREE": "tre",
+ "FOUR": "quattro",
+ "FIVE": "cinque",
+ "SIX": "sei",
+ "SEVEN": "sette",
+ "EIGHT": "otto",
+ "NINE": "nove",
+ "TEN": "dieci",
+ "TWELVE": "dodici",
+ "FIFTEEN": "quindici",
+ "TWENTY": "venti",
+ "THIRTY": "trenta"
+ },
+ "ORDINALS": {
+ "FIRST": "primo",
+ "SECOND": "secondo",
+ "THIRD": "terzo",
+ "FOURTH": "quarto",
+ "FIFTH": "quinto"
+ },
+ "OF": "di",
+ "AFTER": "dopo",
+ "WEEK": "settimana",
+ "DAY": "giorno"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/it/teamsSettings.json b/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
index d90df3853..b024117aa 100644
--- a/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/it/teamsSettings.json
@@ -1,11 +1,17 @@
{
"TEAMS_SETTINGS": {
"NEW_TEAM": "Crea un nuovo team",
- "HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams ti permette di organizzare i tuoi agenti in gruppi in base alle loro responsabilità.
Un agente può far parte di più team. È possibile assegnare conversazioni a un team quando si lavora in collaborazione.
",
+ "HEADER": "Team",
+ "LOADING": "Caricamento team",
+ "DESCRIPTION": "I Team ti permettono di organizzare gli operatori in gruppi in base alle loro responsabilità. Un operatore può appartenere a più team. Quando si lavora in collaborazione, è possibile assegnare conversazioni a team specifici.",
+ "LEARN_MORE": "Scopri di più sui team",
+ "COUNT": "{n} team | {n} team",
+ "SEARCH_PLACEHOLDER": "Cerca team...",
+ "NO_RESULTS": "Nessun team trovato corrispondente alla tua ricerca",
"LIST": {
"404": "Non ci sono team creati su questo account.",
- "EDIT_TEAM": "Modifica team"
+ "EDIT_TEAM": "Modifica team",
+ "NONE": "Nessuno"
},
"CREATE_FLOW": {
"CREATE": {
@@ -13,27 +19,22 @@
"DESC": "Aggiungi un titolo e una descrizione al tuo nuovo team."
},
"AGENTS": {
- "BUTTON_TEXT": "Aggiungi agenti al team",
- "TITLE": "Aggiungi agenti al team - %{teamName}",
- "DESC": "Aggiungi agenti al tuo team appena creato. Questo ti permette di collaborare come team alle conversazioni, ricevere una notifica sui nuovi eventi nella stessa conversazione."
+ "BUTTON_TEXT": "Aggiungi operatori al team",
+ "TITLE": "Aggiungi operatori al team - {teamName}",
+ "DESC": "Aggiungi operatori al tuo team appena creato. Questo ti permette di collaborare come team alle conversazioni, ricevere una notifica sui nuovi eventi nella stessa conversazione."
},
- "WIZARD": [
- {
- "title": "Crea",
- "route": "settings_teams_new",
- "body": "Crea un nuovo team di agenti."
- },
- {
- "title": "Aggiungi agenti",
- "route": "settings_teams_add_agents",
- "body": "Aggiungi agenti al team."
- },
- {
- "title": "Termina",
- "route": "settings_teams_finish",
- "body": "Sei pronto per iniziare!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Crea",
+ "BODY": "Crea un nuovo team di operatori."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Aggiungi Operatori",
+ "BODY": "Aggiungi operatori al team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Termina",
+ "BODY": "Sei pronto per iniziare!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -42,48 +43,46 @@
"BUTTON_TEXT": "Aggiorna il team"
},
"AGENTS": {
- "BUTTON_TEXT": "Aggiorna agenti nel team",
- "TITLE": "Aggiungi agenti al team - %{teamName}",
- "DESC": "Aggiungi agenti al tuo team appena creato. Tutti gli agenti aggiunti verranno avvisati quando una conversazione viene assegnata a questo team."
+ "BUTTON_TEXT": "Aggiorna operatori nel team",
+ "TITLE": "Aggiungi operatori al team - {teamName}",
+ "DESC": "Aggiungi operatori al tuo team appena creato. Tutti gli operatori aggiunti verranno avvisati quando una conversazione viene assegnata a questo team."
},
- "WIZARD": [
- {
- "title": "Dettagli del team",
- "route": "settings_teams_edit",
- "body": "Cambia nome, descrizione e altri dettagli."
- },
- {
- "title": "Modifica agenti",
- "route": "settings_teams_edit_members",
- "body": "Modifica agenti nel tuo team."
- },
- {
- "title": "Termina",
- "route": "settings_teams_edit_finisch",
- "body": "Sei pronto per iniziare!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Dettagli del team",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Cambia nome, descrizione e altri dettagli."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Modifica Operatori",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Modifica gli operatori nel tuo team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Termina",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Sei pronto per iniziare!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Impossibile salvare i dettagli del team. Riprova."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "EMAIL",
- "BUTTON_TEXT": "Aggiungi agenti",
- "ADD_AGENTS": "Aggiunta di agenti al tuo team...",
+ "AGENT": "Operatore",
+ "EMAIL": "Email",
+ "BUTTON_TEXT": "Aggiungi operatori",
+ "ADD_AGENTS": "Aggiungendo gli Operatori al tuo Team...",
"SELECT": "seleziona",
- "SELECT_ALL": "seleziona tutti gli agenti",
- "SELECTED_COUNT": "%{selected} su %{total} agenti selezionati."
+ "SELECT_ALL": "seleziona tutti gli operatori",
+ "SELECTED_COUNT": "{selected} su {total} operatori selezionati."
},
"ADD": {
- "TITLE": "Aggiungi agenti al team - %{teamName}",
- "DESC": "Aggiungi agenti al tuo team appena creato. Questo ti permette di collaborare come team alle conversazioni, ricevere una notifica sui nuovi eventi nella stessa conversazione.",
+ "TITLE": "Aggiungi operatori al team - {teamName}",
+ "DESC": "Aggiungi operatori al tuo team appena creato. Questo ti permette di collaborare come team alle conversazioni, ricevere una notifica sui nuovi eventi nella stessa conversazione.",
"SELECT": "seleziona",
- "SELECT_ALL": "seleziona tutti gli agenti",
- "SELECTED_COUNT": "%{selected} su %{total} agenti selezionati.",
- "BUTTON_TEXT": "Aggiungi agenti",
- "AGENT_VALIDATION_ERROR": "Seleziona almeno un agente."
+ "SELECT_ALL": "seleziona tutti gli operatori",
+ "SELECTED_COUNT": "{selected} su {total} operatori selezionati.",
+ "BUTTON_TEXT": "Aggiungi operatori",
+ "AGENT_VALIDATION_ERROR": "Seleziona almeno un operatore."
},
"FINISH": {
"TITLE": "Il tuo team è pronto!",
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Impossibile eliminare il team. Riprova."
},
"CONFIRM": {
- "TITLE": "Sei sicuro di voler eliminare - %{teamName}",
+ "TITLE": "Sei sicuro di voler eliminare il team?",
"PLACE_HOLDER": "Digita {teamName} per confermare",
"MESSAGE": "L'eliminazione del team rimuoverà l'assegnazione del team dalle conversazioni assegnate a questo team.",
"YES": "Elimina ",
@@ -110,10 +109,10 @@
"CREATE": "Crea un nuovo team",
"NAME": {
"LABEL": "Nome del team",
- "PLACEHOLDER": "Esempio: Vendite, Assistenza clienti"
+ "PLACEHOLDER": "Esempio: Vendite, Assistenza Clienti"
},
"DESCRIPTION": {
- "LABEL": "Descrizione team",
+ "LABEL": "Descrizione Team",
"PLACEHOLDER": "Breve descrizione di questo team."
},
"AUTO_ASSIGN": {
diff --git a/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json
index d335fd8b1..1005e8bd5 100644
--- a/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/it/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Modelli Whatsapp",
- "SUBTITLE": "Seleziona il modello whatsapp che vuoi inviare",
- "TEMPLATE_SELECTED_SUBTITLE": "Elabora %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Cerca modelli",
- "NO_TEMPLATES_FOUND": "Nessun modello trovato per",
- "LABELS": {
- "LANGUAGE": "Lingua",
- "TEMPLATE_BODY": "Corpo modello",
- "CATEGORY": "Categoria"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variabili",
- "VARIABLE_PLACEHOLDER": "Inserisci il valore di %{variable}",
- "GO_BACK_LABEL": "Torna indietro",
- "SEND_MESSAGE_LABEL": "Invia messaggio",
- "FORM_ERROR_MESSAGE": "Si prega di compilare tutte le variabili prima di inviare"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Modelli Whatsapp",
+ "SUBTITLE": "Seleziona il modello whatsapp che vuoi inviare",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configura template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Cerca Modelli",
+ "NO_TEMPLATES_FOUND": "Nessun modello trovato per",
+ "HEADER": "Intestazione",
+ "BODY": "Corpo",
+ "FOOTER": "Piè",
+ "BUTTONS": "Pulsanti",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Contenuto Multimediale",
+ "MEDIA_CONTENT_FALLBACK": "contenuto multimediale",
+ "NO_TEMPLATES_AVAILABLE": "Nessun modello WhatsApp disponibile. Fai clic su aggiorna per sincronizzare i modelli da WhatsApp.",
+ "REFRESH_BUTTON": "Aggiorna modelli",
+ "REFRESH_SUCCESS": "Aggiornamento modelli iniziato. Potrebbe volerci qualche minuto per aggiornare.",
+ "REFRESH_ERROR": "Impossibile aggiornare i modelli. Per favore riprova.",
+ "LABELS": {
+ "LANGUAGE": "Lingua",
+ "TEMPLATE_BODY": "Corpo Modello",
+ "CATEGORY": "Categoria"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabili",
+ "LANGUAGE": "Lingua",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Inserisci il valore di {variable}",
+ "GO_BACK_LABEL": "Torna Indietro",
+ "SEND_MESSAGE_LABEL": "Invia Messaggio",
+ "FORM_ERROR_MESSAGE": "Inserisci tutte le variabili prima di inviare",
+ "MEDIA_HEADER_LABEL": "Intestazione {type}",
+ "OTP_CODE": "Inserisci OTP da 4 a 8 cifre",
+ "EXPIRY_MINUTES": "Inserisci minuti di scadenza",
+ "BUTTON_PARAMETERS": "Parametri Pulsanti",
+ "BUTTON_LABEL": "Pulsante {index}",
+ "COUPON_CODE": "Inserisci il codice coupon (max 15 caratteri)",
+ "MEDIA_URL_LABEL": "Inserisci l’URL del {type}",
+ "DOCUMENT_NAME_PLACEHOLDER": "Inserisci il nome del file (es. Fattura_2025.pdf)",
+ "BUTTON_PARAMETER": "Inserisci parametro pulsante"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/it/yearInReview.json b/app/javascript/dashboard/i18n/locale/it/yearInReview.json
new file mode 100644
index 000000000..d1bef2095
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/it/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Caricamento del tuo Year in Review...",
+ "ERROR": "Impossibile caricare lo Year in Review",
+ "CLOSE": "Chiudi",
+ "CONVERSATIONS": {
+ "TITLE": "Hai gestito",
+ "SUBTITLE": "conversazioni",
+ "FALLBACK": "Quest’anno non contavano i numeri. Contava esserci.",
+ "COMPARISON": {
+ "0_50": "Ti sei fatto trovare pronto. È così che nasce ogni inbox che si rispetti.",
+ "50_100": "Hai tenuto le risposte in movimento e le conversazioni ben vive.",
+ "100_500": "Hai gestito un bel po’ di traffico senza perdere il controllo.",
+ "500_2000": "Tutto è andato avanti, anche mentre il volume saliva.",
+ "2000_10000": "Hai fatto passare un traffico da ora di punta senza sudare.",
+ "10000_PLUS": "Una città intera di clienti che bussa alla porta. Tu? Tutto liscio come niente."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Il tuo giorno più intenso è stato",
+ "MESSAGE": "{count} conversazioni quel giorno.",
+ "COMPARISON": {
+ "0_5": "Un giro di riscaldamento. L’inbox quasi non se n’è accorta.",
+ "5_10": "Abbastanza azione da giustificare un secondo caffè.",
+ "10_25": "Il ritmo è salito e l’inbox è rimasta sull’attenti.",
+ "25_50": "Una vera corsa, ma senza neanche sudare.",
+ "50_100": "Caos controllato, gestito come fosse un martedì qualunque.",
+ "100_500": "Un incendio totale. Eppure le risposte continuavano a partire.",
+ "500_PLUS": "L’inbox ha perso ogni calma e non ha mai rallentato."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Il tuo stile di supporto è",
+ "MESSAGES": {
+ "SWIFT_HELPER": "In media hai risposto in {time}. Più veloce della maggior parte delle notifiche.",
+ "QUICK_RESPONDER": "In media hai risposto in {time}. L’inbox non ha quasi mai aspettato.",
+ "STEADY_SUPPORT": "In media hai risposto in {time}. Ritmo tranquillo, risposte solide.",
+ "THOUGHTFUL_ADVISOR": "In media hai risposto in {time}. Il tempo giusto per fare le cose per bene."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulazioni per essere sopravvissuto all’inbox del {year}.",
+ "MESSAGE": "Grazie per la dedizione incredibile con cui hai supportato i clienti durante quest’anno. Il tuo lavoro ha fatto davvero la differenza e siamo felici di averti in questo viaggio. Rendiamo il {nextYear} ancora migliore, insieme!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Condividi il tuo Year in Review",
+ "PREPARING": "Preparazione dell'immagine...",
+ "DOWNLOAD": "Scarica",
+ "SHARE_TITLE": "Il mio Year in Review {year}",
+ "SHARE_TEXT": "Dai un'occhiata al mio Year in Review {year} con Chatwoot!",
+ "BRANDING": "Realizzato con Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Il tuo Year in Review {year} è qui",
+ "BUTTON": "Vedi il tuo impatto"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Precedente",
+ "NEXT": "Successivo",
+ "SHARE": "Condividi conversazione"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json
index 6b1f4d15b..97a2509cd 100644
--- a/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ja/advancedFilters.json
@@ -1,101 +1,117 @@
{
"FILTER": {
"TITLE": "会話をフィルターする",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "フィルターを追加して「フィルターを適用」を押すと、チャットを整理できます。",
+ "EDIT_CUSTOM_FILTER": "フォルダーを編集",
+ "CUSTOM_VIEWS_SUBTITLE": "フィルターを追加または削除し、フォルダーを更新します。",
+ "ADD_NEW_FILTER": "フィルターを追加",
+ "FILTER_DELETE_ERROR": "何も保存できないようです!保存するには、少なくとも1つのフィルターを追加してください。",
"SUBMIT_BUTTON_LABEL": "フィルターを適用",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "フォルダーを更新",
"CANCEL_BUTTON_LABEL": "キャンセル",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "値は必須です.",
+ "CLEAR_BUTTON_LABEL": "フィルターをクリア",
+ "FOLDER_LABEL": "フォルダー名",
+ "FOLDER_QUERY_LABEL": "フォルダーのクエリ",
+ "EMPTY_VALUE_ERROR": "値は必須です。",
"TOOLTIP_LABEL": "会話をフィルターする",
"QUERY_DROPDOWN_LABELS": {
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "値を入力",
"OPERATOR_LABELS": {
"equal_to": "等しい",
"not_equal_to": "等しくない",
- "contains": "含む",
"does_not_contain": "含まない",
"is_present": "存在する",
"is_not_present": "存在しない",
"is_greater_than": "より大きい",
"is_less_than": "より小さい",
"days_before": "x日前",
- "starts_with": "Starts with"
+ "starts_with": "で始まる",
+ "equalTo": "等しい",
+ "notEqualTo": "等しくない",
+ "contains": "含む",
+ "doesNotContain": "含まない",
+ "isPresent": "存在する",
+ "isNotPresent": "存在しない",
+ "isGreaterThan": "より大きい",
+ "isLessThan": "より小さい",
+ "daysBefore": "x日前",
+ "startsWith": "で始まる"
},
"ATTRIBUTE_LABELS": {
- "TRUE": "True",
- "FALSE": "False"
+ "TRUE": "真",
+ "FALSE": "偽"
},
"ATTRIBUTES": {
- "STATUS": "状況",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "Team name",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "STATUS": "ステータス",
+ "ASSIGNEE_NAME": "担当者名",
+ "INBOX_NAME": "受信トレイ名",
+ "TEAM_NAME": "チーム名",
+ "CONVERSATION_IDENTIFIER": "会話識別子",
+ "CAMPAIGN_NAME": "キャンペーン名",
"LABELS": "ラベル",
- "BROWSER_LANGUAGE": "Browser language",
- "PRIORITY": "Priority",
- "COUNTRY_NAME": "Country name",
- "REFERER_LINK": "参照者のリンク",
+ "BROWSER_LANGUAGE": "ブラウザ言語",
+ "PRIORITY": "優先度",
+ "COUNTRY_NAME": "国名",
+ "REFERER_LINK": "参照リンク",
"CUSTOM_ATTRIBUTE_LIST": "リスト",
- "CUSTOM_ATTRIBUTE_TEXT": "Text",
- "CUSTOM_ATTRIBUTE_NUMBER": "Number",
- "CUSTOM_ATTRIBUTE_LINK": "Link",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
- "CREATED_AT": "Created at",
- "LAST_ACTIVITY": "Last activity"
+ "CUSTOM_ATTRIBUTE_TEXT": "テキスト",
+ "CUSTOM_ATTRIBUTE_NUMBER": "数値",
+ "CUSTOM_ATTRIBUTE_LINK": "リンク",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "チェックボックス",
+ "CREATED_AT": "作成日時",
+ "LAST_ACTIVITY": "最終活動日時"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "値は必須です。",
+ "ATTRIBUTE_KEY_REQUIRED": "属性キーは必須です。",
+ "FILTER_OPERATOR_REQUIRED": "フィルター演算子は必須です。",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "値は1から998の間でなければなりません。"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "標準フィルター",
+ "ADDITIONAL_FILTERS": "追加フィルター",
+ "CUSTOM_ATTRIBUTES": "カスタム属性"
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "Do you want to save this filter?",
- "LABEL": "Name this filter",
- "PLACEHOLDER": "Name your filter to refer it later.",
- "ERROR_MESSAGE": "名前が必須です.",
- "SAVE_BUTTON": "フィルターの保存",
+ "TITLE": "このフィルターを保存しますか?",
+ "LABEL": "このフィルターに名前を付けてください",
+ "PLACEHOLDER": "後で参照するためにフィルターに名前を付けてください。",
+ "ERROR_MESSAGE": "名前が必須です。",
+ "SAVE_BUTTON": "フィルターを保存",
"CANCEL_BUTTON": "キャンセル",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "フォルダが正常に作成されました.",
- "ERROR_MESSAGE": "フォルダの作成中にエラーが発生しました."
+ "SUCCESS_MESSAGE": "フォルダーが正常に作成されました。",
+ "ERROR_MESSAGE": "フォルダーの作成中にエラーが発生しました。"
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment created successfully.",
- "ERROR_MESSAGE": "Error while creating segment."
+ "SUCCESS_MESSAGE": "セグメントが正常に作成されました。",
+ "ERROR_MESSAGE": "セグメントの作成中にエラーが発生しました。"
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "フォルダーを編集"
},
"DELETE": {
- "DELETE_BUTTON": "Delete filter",
+ "DELETE_BUTTON": "フィルターを削除",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the filter ",
- "YES": "Yes, delete",
- "NO": "No, keep it"
+ "TITLE": "削除を確認",
+ "MESSAGE": "本当にこのフィルターを削除しますか",
+ "YES": "はい、削除します",
+ "NO": "いいえ、保持します"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting folder."
+ "SUCCESS_MESSAGE": "フォルダーが正常に削除されました。",
+ "ERROR_MESSAGE": "フォルダーの削除中にエラーが発生しました。"
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "Segment deleted successfully.",
- "ERROR_MESSAGE": "Error while deleting segment."
+ "SUCCESS_MESSAGE": "セグメントが正常に削除されました。",
+ "ERROR_MESSAGE": "セグメントの削除中にエラーが発生しました。"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/agentBots.json b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
index b004c6163..5b61845bc 100644
--- a/app/javascript/dashboard/i18n/locale/ja/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ja/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
- "HEADER": "Bots",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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 'Add Bot' button.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "エージェントボットを選択",
+ "DESC": "エージェントボットを受信トレイに割り当てます。初期の会話を処理し、必要に応じてライブエージェントに転送することができます。",
"SUBMIT": "更新",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "ボットを切断",
+ "SUCCESS_MESSAGE": "エージェントボットが正常に更新されました。",
+ "DISCONNECTED_SUCCESS_MESSAGE": "エージェントボットが正常に切断されました。",
+ "ERROR_MESSAGE": "エージェントボットを更新できませんでした。再試行してください。",
+ "DISCONNECTED_ERROR_MESSAGE": "エージェントボットを切断できませんでした。再試行してください。",
+ "SELECT_PLACEHOLDER": "ボットを選択"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "キャンセル",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "ボットが正常に追加されました。",
+ "ERROR_MESSAGE": "ボットを追加できませんでした。後でもう一度お試しください。"
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "No bots found. You can create a bot by clicking the 'Add Bot' button.",
+ "LOADING": "ボットを取得中...",
+ "TABLE_HEADER": {
+ "DETAILS": "Bot Details",
+ "URL": "Webhook URL",
+ "ACTIONS": "操作"
+ }
},
"DELETE": {
"BUTTON_TEXT": "削除",
- "TITLE": "Delete bot",
- "SUBMIT": "削除",
- "CANCEL_BUTTON_TEXT": "キャンセル",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "TITLE": "ボットを削除",
+ "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."
+ "SUCCESS_MESSAGE": "ボットが正常に削除されました。",
+ "ERROR_MESSAGE": "ボットを削除できませんでした。再試行してください。"
}
},
"EDIT": {
"BUTTON_TEXT": "編集",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "キャンセル",
+ "TITLE": "ボットを編集",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "ボットが正常に更新されました。",
+ "ERROR_MESSAGE": "ボットを更新できませんでした。再試行してください。"
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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": "ボット名",
+ "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 bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhookボット"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
index 2d3c7d272..55d1020ed 100644
--- a/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/agentMgmt.json
@@ -2,12 +2,14 @@
"AGENT_MGMT": {
"HEADER": "担当者",
"HEADER_BTN_TXT": "担当者を追加",
- "LOADING": "担当者リストを設定",
- "SIDEBAR_TXT": "担当者
担当者 は、カスタマーサポートチームのメンバーです。
担当者は、ユーザーからのメッセージを閲覧でき、返信することができます。リストに、全担当者が表示されます。
担当者を追加 ボタンを押して、担当者を追加してください。あなたが追加した担当者は、自身のメールアドレスにメールが届き、確認リンクを使ってアカウントを有効化します。その後、Chatwootにアクセスし、メッセージに返信します。
Chatwoot の機能を利用するには、その権限に準じます。
担当者 - 担当者権限では、受信トレイにアクセスする他、会話のデータをレポートできます。担当者間で会話の割り当てが行えるほか、会話を解決済みにすることもできます。
管理者 - 管理者は、すべてのChatwootの機能にアクセスでき、担当者権限もすべて有効です。
",
+ "LOADING": "担当者リストを設定中...",
+ "DESCRIPTION": "担当者は、カスタマーサポートチームのメンバーで、ユーザーからのメッセージを閲覧して返信することができます。以下のリストには、アカウントに登録されている全ての担当者が表示されます。",
+ "LEARN_MORE": "ユーザーのロールについて学ぶ",
"AGENT_TYPES": {
"ADMINISTRATOR": "管理者",
"AGENT": "担当者"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "このアカウントに関連付けられている担当者はありません。",
"TITLE": "チームの担当者を管理する",
@@ -17,7 +19,8 @@
"STATUS": "状況",
"ACTIONS": "操作",
"VERIFIED": "確認済み",
- "VERIFICATION_PENDING": "確認保留中です。"
+ "VERIFICATION_PENDING": "確認保留中",
+ "AVAILABLE_CUSTOM_ROLE": "利用可能なカスタムロール権限"
},
"ADD": {
"TITLE": "チームに担当者を追加",
@@ -29,9 +32,9 @@
"PLACEHOLDER": "担当者の名前を入力してください"
},
"AGENT_TYPE": {
- "LABEL": "Agent Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Agent type is required"
+ "LABEL": "ロール",
+ "PLACEHOLDER": "ロールを選択してください",
+ "ERROR": "ロールは必須です"
},
"EMAIL": {
"LABEL": "Eメールアドレス",
@@ -42,20 +45,20 @@
"API": {
"SUCCESS_MESSAGE": "担当者の追加が完了しました",
"EXIST_MESSAGE": "入力された担当者のEメールアドレスは既に使用されています。別のメールアドレスをお試しください。",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "ERROR_MESSAGE": "サーバーに接続できませんでした。後でもう一度お試しください。"
}
},
"DELETE": {
"BUTTON_TEXT": "削除",
"API": {
"SUCCESS_MESSAGE": "担当者の削除が完了しました",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "ERROR_MESSAGE": "サーバーに接続できませんでした。後でもう一度お試しください。"
},
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "削除してもよろしいですか? ",
- "YES": "削除する ",
- "NO": "いいえ "
+ "MESSAGE": "削除してもよろしいですか?",
+ "YES": "削除する",
+ "NO": "いいえ"
}
},
"EDIT": {
@@ -66,18 +69,18 @@
"PLACEHOLDER": "担当者の名前を入力してください"
},
"AGENT_TYPE": {
- "LABEL": "Agent Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Agent type is required"
+ "LABEL": "ロール",
+ "PLACEHOLDER": "ロールを選択してください",
+ "ERROR": "ロールは必須です"
},
"EMAIL": {
"LABEL": "Eメールアドレス",
"PLACEHOLDER": "担当者のEメールアドレスを入力してください"
},
"AGENT_AVAILABILITY": {
- "LABEL": "利用可能期間",
- "PLACEHOLDER": "Please select an availability status",
- "ERROR": "Availability is required"
+ "LABEL": "利用可能状況",
+ "PLACEHOLDER": "利用可能状況を選択してください",
+ "ERROR": "利用可能状況は必須です"
},
"SUBMIT": "担当者の編集"
},
@@ -88,30 +91,35 @@
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
},
"PASSWORD_RESET": {
- "ADMIN_RESET_BUTTON": "パスワードをリセットします",
+ "ADMIN_RESET_BUTTON": "パスワードをリセット",
"ADMIN_SUCCESS_MESSAGE": "担当者にパスワードをリセットする手順を記載したメールを送信しました",
"SUCCESS_MESSAGE": "担当者のパスワードは正常にリセットされました",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
+ "SEARCH_PLACEHOLDER": "担当者を検索...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
- "NO_RESULTS": "該当結果が見つかりませんでした。"
+ "NO_RESULTS": "該当する結果が見つかりませんでした。"
},
"MULTI_SELECTOR": {
"PLACEHOLDER": "該当なし",
"TITLE": {
- "AGENT": "Select agent",
- "TEAM": "Select team"
+ "AGENT": "担当者を選択",
+ "TEAM": "チームを選択"
+ },
+ "LIST": {
+ "NONE": "なし"
},
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "No agents found",
- "TEAM": "No teams found"
+ "AGENT": "担当者が見つかりません",
+ "TEAM": "チームが見つかりません"
},
"PLACEHOLDER": {
- "AGENT": "Search agents",
- "TEAM": "Search teams",
- "INPUT": "Search for agents"
+ "AGENT": "担当者を検索",
+ "TEAM": "チームを検索",
+ "INPUT": "担当者を検索"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
index 1c4993e4b..bcc53b56f 100644
--- a/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/attributesMgmt.json
@@ -2,120 +2,146 @@
"ATTRIBUTES_MGMT": {
"HEADER": "カスタム属性",
"HEADER_BTN_TXT": "カスタム属性を追加",
- "LOADING": "カスタム属性が取得中",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "LOADING": "カスタム属性を取得中",
+ "DESCRIPTION": "カスタム属性は、連絡先や会話に関する追加の詳細(例:サブスクリプションプランや初回購入日など)を記録します。必要な情報をキャプチャするために、テキスト、リスト、数値など、さまざまなタイプのカスタム属性を追加できます。",
+ "LEARN_MORE": "カスタム属性について詳しく学ぶ",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "属性を検索...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "会話",
+ "CONTACT": "連絡先",
+ "COMPANY": "企業名"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "テキスト",
+ "NUMBER": "数値",
+ "LINK": "リンク",
+ "DATE": "Date",
+ "LIST": "リスト",
+ "CHECKBOX": "チェックボックス"
+ },
"ADD": {
"TITLE": "カスタム属性を追加",
"SUBMIT": "作成",
"CANCEL_BUTTON_TEXT": "キャンセル",
"FORM": {
"NAME": {
- "LABEL": "Display Name",
- "PLACEHOLDER": "Enter custom attribute display name",
+ "LABEL": "表示名",
+ "PLACEHOLDER": "カスタム属性の表示名を入力してください",
"ERROR": "名前が必須です"
},
"DESC": {
"LABEL": "説明",
- "PLACEHOLDER": "Enter custom attribute description",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "カスタム属性の説明を入力してください",
+ "ERROR": "説明は必須です"
},
"MODEL": {
- "LABEL": "Applies to",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Model is required"
+ "LABEL": "適用先",
+ "PLACEHOLDER": "選択してください",
+ "ERROR": "モデルは必須です"
},
"TYPE": {
- "LABEL": "Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Type is required",
+ "LABEL": "タイプ",
+ "PLACEHOLDER": "タイプを選択してください",
+ "ERROR": "タイプは必須です",
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter value and press enter key",
- "ERROR": "Must have at least one value"
+ "LABEL": "リストの値",
+ "PLACEHOLDER": "値を入力してEnterキーを押してください",
+ "ERROR": "少なくとも1つの値が必要です"
}
},
"KEY": {
- "LABEL": "Key",
- "PLACEHOLDER": "Enter custom attribute key",
- "ERROR": "Key is required",
- "IN_VALID": "Invalid key"
+ "LABEL": "キー",
+ "PLACEHOLDER": "カスタム属性のキーを入力してください",
+ "ERROR": "キーは必須です",
+ "IN_VALID": "無効なキー"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "正規表現パターン",
+ "PLACEHOLDER": "カスタム属性の正規表現パターンを入力してください(オプション)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "正規表現のヒント",
+ "PLACEHOLDER": "正規表現パターンのヒントを入力してください(オプション)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "正規表現の検証を有効にする"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
- "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ "SUCCESS_MESSAGE": "カスタム属性が正常に追加されました!",
+ "ERROR_MESSAGE": "カスタム属性を作成できませんでした。後でもう一度お試しください。"
}
},
"DELETE": {
"BUTTON_TEXT": "削除",
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ "SUCCESS_MESSAGE": "カスタム属性が正常に削除されました。",
+ "ERROR_MESSAGE": "カスタム属性を削除できませんでした。再試行してください。"
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
- "PLACE_HOLDER": "Please type {attributeName} to confirm",
- "MESSAGE": "Deleting will remove the custom attribute",
- "YES": "削除 ",
+ "TITLE": "{attributeName} を削除してもよろしいですか?",
+ "PLACE_HOLDER": "確認するために {attributeName} を入力してください",
+ "MESSAGE": "削除するとカスタム属性が削除されます",
+ "YES": "削除",
"NO": "キャンセル"
}
},
"EDIT": {
- "TITLE": "Edit Custom Attribute",
+ "TITLE": "カスタム属性を編集",
"UPDATE_BUTTON_TEXT": "更新",
"TYPE": {
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter values and press enter key"
+ "LABEL": "リストの値",
+ "PLACEHOLDER": "値を入力してEnterキーを押してください"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
- "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ "SUCCESS_MESSAGE": "カスタム属性が正常に更新されました",
+ "ERROR_MESSAGE": "カスタム属性の更新中にエラーが発生しました。再試行してください"
}
},
"TABS": {
"HEADER": "カスタム属性",
- "CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONVERSATION": "会話",
+ "CONTACT": "連絡先",
+ "COMPANY": "企業名"
},
"LIST": {
- "TABLE_HEADER": [
- "名前",
- "説明",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "DESCRIPTION": "説明",
+ "TYPE": "タイプ",
+ "KEY": "キー"
+ },
"BUTTONS": {
"EDIT": "編集",
"DELETE": "削除"
},
"EMPTY_RESULT": {
- "404": "There are no custom attributes created",
- "NOT_FOUND": "There are no custom attributes configured"
+ "404": "作成されたカスタム属性はありません",
+ "NOT_FOUND": "設定されたカスタム属性はありません"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "正規表現パターン",
+ "PLACEHOLDER": "カスタム属性の正規表現パターンを入力してください(オプション)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "正規表現のヒント",
+ "PLACEHOLDER": "正規表現パターンのヒントを入力してください(オプション)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "正規表現の検証を有効にする"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/auditLogs.json b/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
index 9f2cd4f29..60ee3577c 100644
--- a/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ja/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
+ "HEADER": "監査ログ",
+ "HEADER_BTN_TXT": "監査ログを追加",
+ "LOADING": "監査ログを取得中",
+ "DESCRIPTION": "監査ログはアカウント内の活動の記録を保持し、アカウント、チーム、またはサービスを追跡して監査することを可能にします。",
+ "LEARN_MORE": "監査ログについて学ぶ",
"SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした",
- "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "SIDEBAR_TXT": "監査ログ
監査ログは、Chatwootシステム内でのイベントやアクションの履歴を示します。
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "404": "このアカウントに利用可能な監査ログはありません。",
+ "TITLE": "監査ログを管理する",
+ "DESC": "監査ログは、Chatwootシステム内でのイベントやアクションの履歴を示します。",
+ "TABLE_HEADER": {
+ "ACTIVITY": "ユーザー",
+ "TIME": "アクション",
+ "IP_ADDRESS": "IPアドレス"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "SUCCESS_MESSAGE": "監査ログが正常に取得されました",
+ "ERROR_MESSAGE": "Wootサーバーに接続できませんでした。後でもう一度お試しください。"
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "システム",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} が新しい自動化ルール (#{id}) を作成しました",
+ "EDIT": "{agentName} が自動化ルール (#{id}) を更新しました",
+ "DELETE": "{agentName} が自動化ルール (#{id}) を削除しました"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} が {invitee} をアカウントに {role} として招待しました",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} が自分の {attributes} を {values} に変更しました",
+ "OTHER": "{agentName} が {user} の {attributes} を {values} に変更しました",
+ "DELETED": "{agentName} が削除されたユーザーの {attributes} を {values} に変更しました"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} が新しい受信トレイ (#{id}) を作成しました",
+ "EDIT": "{agentName} が受信トレイ (#{id}) を更新しました",
+ "DELETE": "{agentName} が受信トレイ (#{id}) を削除しました"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} が新しいWebhook (#{id}) を作成しました",
+ "EDIT": "{agentName} がWebhook (#{id}) を更新しました",
+ "DELETE": "{agentName} がWebhook (#{id}) を削除しました"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} がサインインしました",
+ "SIGN_OUT": "{agentName} がサインアウトしました"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} が新しいチーム (#{id}) を作成しました",
+ "EDIT": "{agentName} がチーム (#{id}) を更新しました",
+ "DELETE": "{agentName} がチーム (#{id}) を削除しました"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} が新しいマクロ (#{id}) を作成しました",
+ "EDIT": "{agentName} がマクロ (#{id}) を更新しました",
+ "DELETE": "{agentName} がマクロ (#{id}) を削除しました"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} が {user} を受信トレイ (#{inbox_id}) に追加しました",
+ "REMOVE": "{agentName} が {user} を受信トレイ (#{inbox_id}) から削除しました"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} が {user} をチーム (#{team_id}) に追加しました",
+ "REMOVE": "{agentName} が {user} をチーム (#{team_id}) から削除しました"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 29fe5dad2..f89b2728c 100644
--- a/app/javascript/dashboard/i18n/locale/ja/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/automation.json
@@ -1,81 +1,85 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
- "LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "HEADER": "自動化",
+ "DESCRIPTION": "自動化は、ラベルの追加や会話を最適な担当者に割り当てるといった手動で行う必要のある既存のプロセスを置き換え、効率化することができます。これにより、チームは強みを発揮しつつ、ルーチンタスクに費やす時間を削減できます。",
+ "LEARN_MORE": "自動化について学ぶ",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "自動化ルールを取得中",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
- "TITLE": "Add Automation Rule",
+ "TITLE": "自動化ルールを追加",
"SUBMIT": "作成",
"CANCEL_BUTTON_TEXT": "キャンセル",
"FORM": {
"NAME": {
- "LABEL": "Rule Name",
- "PLACEHOLDER": "Enter rule name",
+ "LABEL": "ルール名",
+ "PLACEHOLDER": "ルール名を入力してください",
"ERROR": "名前が必須です"
},
"DESC": {
"LABEL": "説明",
- "PLACEHOLDER": "Enter rule description",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "ルールの説明を入力してください",
+ "ERROR": "説明は必須です"
},
"EVENT": {
- "LABEL": "Event",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Event is required"
+ "LABEL": "イベント",
+ "PLACEHOLDER": "選択してください",
+ "ERROR": "イベントは必須です"
},
"CONDITIONS": {
- "LABEL": "Conditions"
+ "LABEL": "条件"
},
"ACTIONS": {
- "LABEL": "操作"
+ "LABEL": "アクション"
}
},
- "CONDITION_BUTTON_LABEL": "Add Condition",
- "ACTION_BUTTON_LABEL": "Add Action",
+ "CONDITION_BUTTON_LABEL": "条件を追加",
+ "ACTION_BUTTON_LABEL": "アクションを追加",
"API": {
- "SUCCESS_MESSAGE": "Automation rule added successfully",
- "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "自動化ルールが正常に追加されました",
+ "ERROR_MESSAGE": "自動化ルールを作成できませんでした。後でもう一度お試しください"
}
},
"LIST": {
- "TABLE_HEADER": [
- "名前",
- "説明",
- "Active",
- "Created on"
- ],
- "404": "No automation rules found"
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "ACTIVE": "有効",
+ "CREATED_ON": "作成日",
+ "ACTIONS": "操作"
+ },
+ "404": "自動化ルールが見つかりません"
},
"DELETE": {
- "TITLE": "Delete Automation Rule",
+ "TITLE": "自動化ルールを削除",
"SUBMIT": "削除",
"CANCEL_BUTTON_TEXT": "キャンセル",
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "削除してもよろしいですか? ",
- "YES": "削除する ",
- "NO": "いいえ "
+ "MESSAGE": "削除してもよろしいですか?",
+ "YES": "削除する",
+ "NO": "いいえ"
},
"API": {
- "SUCCESS_MESSAGE": "Automation rule deleted successfully",
- "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "自動化ルールが正常に削除されました",
+ "ERROR_MESSAGE": "自動化ルールを削除できませんでした。後でもう一度お試しください"
}
},
"EDIT": {
- "TITLE": "Edit Automation Rule",
+ "TITLE": "自動化ルールを編集",
"SUBMIT": "更新",
"CANCEL_BUTTON_TEXT": "キャンセル",
"API": {
- "SUCCESS_MESSAGE": "Automation rule updated successfully",
- "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "自動化ルールが正常に更新されました",
+ "ERROR_MESSAGE": "自動化ルールを更新できませんでした。後でもう一度お試しください"
}
},
"CLONE": {
- "TOOLTIP": "Clone",
+ "TOOLTIP": "複製",
"API": {
- "SUCCESS_MESSAGE": "Automation cloned successfully",
- "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "自動化ルールが正常に複製されました",
+ "ERROR_MESSAGE": "自動化ルールを複製できませんでした。後でもう一度お試しください"
}
},
"FORM": {
@@ -83,36 +87,107 @@
"CREATE": "作成",
"DELETE": "削除",
"CANCEL": "キャンセル",
- "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ "RESET_MESSAGE": "イベントタイプを変更すると、以下に追加された条件やアクションがリセットされます"
},
"CONDITION": {
- "DELETE_MESSAGE": "You need to have atleast one condition to save",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "DELETE_MESSAGE": "保存するには少なくとも1つの条件が必要です",
+ "CONTACT_CUSTOM_ATTR_LABEL": "連絡先カスタム属性",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "会話カスタム属性"
},
"ACTION": {
- "DELETE_MESSAGE": "You need to have atleast one action to save",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "DELETE_MESSAGE": "保存するには少なくとも1つのアクションが必要です",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "メッセージをここに入力してください",
+ "TEAM_DROPDOWN_PLACEHOLDER": "チームを選択してください",
+ "EMAIL_INPUT_PLACEHOLDER": "メールアドレスを入力してください",
+ "URL_INPUT_PLACEHOLDER": "URLを入力してください"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Activate Automation Rule",
- "DEACTIVATION_TITLE": "Deactivate Automation Rule",
- "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
- "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
- "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
- "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
- "CONFIRMATION_LABEL": "Yes",
- "CANCEL_LABEL": "No"
+ "ACTIVATION_TITLE": "自動化ルールを有効化",
+ "DEACTIVATION_TITLE": "自動化ルールを無効化",
+ "ACTIVATION_DESCRIPTION": "この操作により、自動化ルール『{automationName}』が有効になります。本当に実行しますか?",
+ "DEACTIVATION_DESCRIPTION": "この操作により、自動化ルール『{automationName}』が無効になります。本当に実行しますか?",
+ "ACTIVATION_SUCCESFUL": "自動化ルールが正常に有効化されました",
+ "DEACTIVATION_SUCCESFUL": "自動化ルールが正常に無効化されました",
+ "ACTIVATION_ERROR": "自動化ルールを有効化できませんでした。後でもう一度お試しください",
+ "DEACTIVATION_ERROR": "自動化ルールを無効化できませんでした。後でもう一度お試しください",
+ "CONFIRMATION_LABEL": "はい",
+ "CANCEL_LABEL": "いいえ"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Could not upload attachment, Please try again",
- "LABEL_IDLE": "Upload Attachment",
+ "UPLOAD_ERROR": "添付ファイルをアップロードできませんでした。後でもう一度お試しください",
+ "LABEL_IDLE": "添付ファイルをアップロード",
"LABEL_UPLOADING": "アップロード中...",
- "LABEL_UPLOADED": "Successfully Uploaded",
- "LABEL_UPLOAD_FAILED": "Upload Failed"
+ "LABEL_UPLOADED": "正常にアップロードされました",
+ "LABEL_UPLOAD_FAILED": "アップロードに失敗しました"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "属性キーが必須です",
+ "FILTER_OPERATOR_REQUIRED": "フィルター演算子が必須です",
+ "VALUE_REQUIRED": "値は必須です",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "値は1から998の間である必要があります",
+ "ACTION_PARAMETERS_REQUIRED": "アクションパラメータが必須です",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "少なくとも1つの条件が必要です",
+ "ATLEAST_ONE_ACTION_REQUIRED": "少なくとも1つのアクションが必要です"
+ },
+ "NONE_OPTION": "なし",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "会話が作成されました",
+ "CONVERSATION_UPDATED": "会話が更新されました",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "優先度を変更",
+ "ADD_SLA": "SLAを追加",
+ "OPEN_CONVERSATION": "会話を開く",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "なし",
+ "LOW": "低",
+ "MEDIUM": "中",
+ "HIGH": "高",
+ "URGENT": "緊急"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "非公開メモ",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "Eメール",
+ "INBOX": "受信トレイ",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "電話番号",
+ "STATUS": "状況",
+ "BROWSER_LANGUAGE": "ブラウザの言語",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "国",
+ "COMPANY_NAME": "企業名",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "担当者",
+ "TEAM_NAME": "チーム",
+ "PRIORITY": "優先度",
+ "LABELS": "ラベル"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
index 029b191a9..942b5d298 100644
--- a/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ja/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
- "YES": "Yes",
- "ASSIGN_AGENT_TOOLTIP": "エージェントを割り当てる",
+ "CONVERSATIONS_SELECTED": "{conversationCount} 件の会話が選択されました",
+ "NONE": "なし",
+ "CLEAR_SELECTION": "クリア",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "YES": "はい",
+ "CANCEL": "キャンセル",
+ "SEARCH_INPUT_PLACEHOLDER": "検索",
+ "ASSIGN_AGENT_TOOLTIP": "担当者を割り当てる",
"ASSIGN_TEAM_TOOLTIP": "チームを割り当てる",
- "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
- "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "エージェントを読み込む",
+ "ASSIGN_SUCCESFUL": "会話が正常に割り当てられました。",
+ "ASSIGN_FAILED": "会話の割り当てに失敗しました。再試行してください。",
+ "RESOLVE_SUCCESFUL": "会話が正常に解決されました。",
+ "RESOLVE_FAILED": "会話の解決に失敗しました。再試行してください。",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "このページに表示されている会話のみが選択されています。",
"UPDATE": {
- "CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
- "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "CHANGE_STATUS": "ステータスを変更",
+ "SNOOZE_UNTIL": "スヌーズ",
+ "UPDATE_SUCCESFUL": "会話のステータスが正常に更新されました。",
+ "UPDATE_FAILED": "会話の更新に失敗しました。再試行してください。"
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
- "ASSIGN_SELECTED_LABELS": "Assign selected labels",
- "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_LABELS": "ラベルを割り当てる",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "選択したラベルを割り当てる",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "ラベルが正常に割り当てられました。",
+ "ASSIGN_FAILED": "ラベルの割り当てに失敗しました。再試行してください。",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "該当なし",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "チームが正常に割り当てられました。",
+ "ASSIGN_FAILED": "チームの割り当てに失敗しました。再試行してください。"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/campaign.json b/app/javascript/dashboard/i18n/locale/ja/campaign.json
index c06f7385e..3bedca6ba 100644
--- a/app/javascript/dashboard/i18n/locale/ja/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ja/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "キャンセル",
- "CREATE_BUTTON_TEXT": "作成",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "ライブチャットキャンペーン",
+ "NEW_CAMPAIGN": "キャンペーンを作成",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "有効です",
+ "DISABLED": "無効です"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "メッセージ",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "有効な URL を入力してください"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "送信者",
+ "BOT": "ボット",
+ "FROM": "差出人:",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "利用可能なライブチャットキャンペーンがありません",
+ "SUBTITLE": "積極的なメッセージでお客様とつながりましょう。「キャンペーンを作成」をクリックして開始してください。"
+ },
+ "CREATE": {
+ "TITLE": "ライブチャットキャンペーンを作成",
+ "CANCEL_BUTTON_TEXT": "キャンセル",
+ "CREATE_BUTTON_TEXT": "作成",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "タイトル",
+ "PLACEHOLDER": "キャンペーンのタイトルを入力してください",
+ "ERROR": "タイトルは必須です"
+ },
+ "MESSAGE": {
+ "LABEL": "メッセージ",
+ "PLACEHOLDER": "キャンペーンのメッセージを入力してください",
+ "ERROR": "メッセージは必須です"
+ },
+ "INBOX": {
+ "LABEL": "受信トレイを選択",
+ "PLACEHOLDER": "受信トレイを選択",
+ "ERROR": "受信トレイは必須です"
+ },
+ "SENT_BY": {
+ "LABEL": "送信者",
+ "PLACEHOLDER": "送信者を選択してください",
+ "ERROR": "送信者は必須です"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "URLを入力してください",
+ "ERROR": "有効な URL を入力してください"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "ページ滞在時間(秒)",
+ "PLACEHOLDER": "時間を入力してください",
+ "ERROR": "ページ滞在時間は必須です"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "その他の設定",
+ "ENABLED": "キャンペーンを有効化",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "営業時間中のみトリガー"
+ },
+ "BUTTONS": {
+ "CREATE": "作成",
+ "CANCEL": "キャンセル"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ライブチャットキャンペーンが正常に作成されました",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "ライブチャットキャンペーンを編集",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "ライブチャットキャンペーンが正常に更新されました",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "削除",
- "CONFIRM": {
- "TITLE": "削除の確認",
- "MESSAGE": "Are you sure to delete?",
- "YES": "削除する ",
- "NO": "いいえ "
+ "SMS": {
+ "HEADER_TITLE": "SMSキャンペーン",
+ "NEW_CAMPAIGN": "キャンペーンを作成",
+ "EMPTY_STATE": {
+ "TITLE": "利用可能なSMSキャンペーンがありません",
+ "SUBTITLE": "SMSキャンペーンを開始してお客様に直接連絡しましょう。オファーを送信したり、お知らせを簡単に行うことができます。「キャンペーンを作成」をクリックして開始してください。"
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "完了",
+ "SCHEDULED": "スケジュール済み"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "送信元",
+ "ON": "送信日"
+ }
+ },
+ "CREATE": {
+ "TITLE": "SMSキャンペーンを作成",
+ "CANCEL_BUTTON_TEXT": "キャンセル",
+ "CREATE_BUTTON_TEXT": "作成",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "タイトル",
+ "PLACEHOLDER": "キャンペーンのタイトルを入力してください",
+ "ERROR": "タイトルは必須です"
+ },
+ "MESSAGE": {
+ "LABEL": "メッセージ",
+ "PLACEHOLDER": "キャンペーンのメッセージを入力してください",
+ "ERROR": "メッセージは必須です"
+ },
+ "INBOX": {
+ "LABEL": "受信トレイを選択",
+ "PLACEHOLDER": "受信トレイを選択",
+ "ERROR": "受信トレイは必須です"
+ },
+ "AUDIENCE": {
+ "LABEL": "対象者",
+ "PLACEHOLDER": "顧客ラベルを選択",
+ "ERROR": "対象者は必須です"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "スケジュール時間",
+ "PLACEHOLDER": "時間を選択してください",
+ "ERROR": "スケジュール時間は必須です"
+ },
+ "BUTTONS": {
+ "CREATE": "作成",
+ "CANCEL": "キャンセル"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMSキャンペーンが正常に作成されました",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ }
+ }
}
},
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "更新",
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "キャンペーンを作成",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "完了",
+ "SCHEDULED": "スケジュール済み"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "送信元",
+ "ON": "送信日"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "キャンセル",
+ "CREATE_BUTTON_TEXT": "作成",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "タイトル",
+ "PLACEHOLDER": "キャンペーンのタイトルを入力してください",
+ "ERROR": "タイトルは必須です"
+ },
+ "INBOX": {
+ "LABEL": "受信トレイを選択",
+ "PLACEHOLDER": "受信トレイを選択",
+ "ERROR": "受信トレイは必須です"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "{templateName} を処理中",
+ "LANGUAGE": "言語",
+ "CATEGORY": "カテゴリ",
+ "VARIABLES_LABEL": "変数",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "対象者",
+ "PLACEHOLDER": "顧客ラベルを選択",
+ "ERROR": "対象者は必須です"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "スケジュール時間",
+ "PLACEHOLDER": "時間を選択してください",
+ "ERROR": "スケジュール時間は必須です"
+ },
+ "BUTTONS": {
+ "CREATE": "作成",
+ "CANCEL": "キャンセル"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "削除の確認",
+ "DESCRIPTION": "削除操作は永久的で、元に戻すことはできません。",
+ "CONFIRM": "削除",
"API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
+ "SUCCESS_MESSAGE": "キャンペーンが正常に削除されました",
"ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
}
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "メッセージ",
- "INBOX": "Inbox",
- "STATUS": "状況",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "編集",
- "DELETE": "削除"
- },
- "STATUS": {
- "ENABLED": "有効です",
- "DISABLED": "無効です",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
index 77e43fff4..c2178f610 100644
--- a/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "定型文",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
- "SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
+ "LEARN_MORE": "定型文について詳しく学ぶ",
+ "DESCRIPTION": "定型文は、会話に迅速に返信するための事前に書かれた返信テンプレートです。担当者は '/' 文字の後にショートコードを入力することで、会話中に定型文を挿入できます。",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "定型文を追加",
+ "LOADING": "定型文を取得中...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした。",
"LIST": {
- "404": "このアカウントには、利用可能な定型文の回答はありません",
+ "404": "このアカウントには、利用可能な定型文の回答はありません。",
"TITLE": "定型文回答を管理する",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "内容",
- "操作"
- ]
+ "DESC": "定型文は事前に定義された返信テンプレートで、会話に迅速に返信を送信する際に使用されます。",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "ショートコード",
+ "CONTENT": "内容",
+ "ACTIONS": "操作"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "定型文を追加",
+ "DESC": "定型文は事前に定義された返信テンプレートで、会話に迅速に返信を送信する際に使用されます。",
"CANCEL_BUTTON_TEXT": "キャンセル",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "ショートコード",
+ "PLACEHOLDER": "ショートコードを入力してください。",
+ "ERROR": "ショートコードは必須です。"
},
"CONTENT": {
"LABEL": "メッセージ",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "後でテンプレートとして使用するメッセージを入力してください。",
+ "ERROR": "メッセージは必須です。"
},
"SUBMIT": "送信"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "定型文が正常に追加されました。",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "定型文を編集",
"CANCEL_BUTTON_TEXT": "キャンセル",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "ショートコード",
+ "PLACEHOLDER": "ショートコードを入力してください。",
+ "ERROR": "ショートコードは必須です。"
},
"CONTENT": {
"LABEL": "メッセージ",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "後でテンプレートとして使用するメッセージを入力してください。",
+ "ERROR": "メッセージは必須です。"
},
"SUBMIT": "送信"
},
"BUTTON_TEXT": "編集",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "定型文が正常に更新されました。",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
"DELETE": {
"BUTTON_TEXT": "削除",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "定型文が正常に削除されました。",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "削除してもよろしいですか? ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "TITLE": "削除の確認",
+ "MESSAGE": "削除してもよろしいですか?",
+ "YES": "はい、削除します",
+ "NO": "いいえ、保持します"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/chatlist.json b/app/javascript/dashboard/i18n/locale/ja/chatlist.json
index 7c985b08c..98351d116 100644
--- a/app/javascript/dashboard/i18n/locale/ja/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ja/chatlist.json
@@ -6,9 +6,10 @@
"LIST": {
"404": "このグループには有効な会話データがありません"
},
+ "FAILED_TO_SEND": "送信に失敗しました",
"TAB_HEADING": "会話データ",
- "MENTION_HEADING": "Mentions",
- "UNATTENDED_HEADING": "Unattended",
+ "MENTION_HEADING": "メンション",
+ "UNATTENDED_HEADING": "未対応",
"SEARCH": {
"INPUT": "人物、チャット、保存された返信を検索する"
},
@@ -20,61 +21,64 @@
},
"CHAT_STATUS_FILTER_ITEMS": {
"open": {
- "TEXT": "開く"
+ "TEXT": "オープン"
},
"resolved": {
"TEXT": "解決済み"
},
"pending": {
- "TEXT": "Pending"
+ "TEXT": "保留中"
},
"snoozed": {
- "TEXT": "Snoozed"
+ "TEXT": "スヌーズ中"
},
"all": {
"TEXT": "すべて"
}
},
"VIEW_FILTER": "表示",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "会話を並び替える",
"CHAT_SORT": {
- "STATUS": "状況",
- "ORDER_BY": "Order by"
+ "STATUS": "ステータス",
+ "ORDER_BY": "並び順"
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "Created",
- "OLDEST": "Created at:"
+ "LATEST": "作成",
+ "OLDEST": "作成日時:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "最終アクティビティ:",
+ "ACTIVE": "最終アクティビティ"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "最終アクティビティ: 古い順"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "最終アクティビティ: 新しい順"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "作成日時: 新しい順"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "作成日時: 古い順"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "優先度: 高い順"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "優先度: 低い順"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "保留時間: 長い順"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "保留時間: 短い順"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -85,7 +89,7 @@
"CONTENT": "音声メッセージ"
},
"video": {
- "CONTENT": "ビデオ メッセージ"
+ "CONTENT": "ビデオメッセージ"
},
"file": {
"CONTENT": "添付ファイル"
@@ -93,39 +97,50 @@
"location": {
"CONTENT": "場所"
},
+ "ig_reel": {
+ "CONTENT": "Instagram リール"
+ },
"fallback": {
"CONTENT": "URLを共有しています"
+ },
+ "contact": {
+ "CONTENT": "共有連絡先"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
- "DROPDOWN_TITLE": "Sort by",
+ "TITLE": "会話の並び替え",
+ "DROPDOWN_TITLE": "並び替え",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
- "LABEL": "Last activity"
+ "NAME": "最終アクティビティ日時",
+ "LABEL": "最終アクティビティ"
},
"CREATED_AT": {
- "NAME": "Created at",
- "LABEL": "Created at"
+ "NAME": "作成日時",
+ "LABEL": "作成日時"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "最終ユーザーメッセージ日時",
+ "LABEL": "最終メッセージ"
}
}
},
"RECEIVED_VIA_EMAIL": "メールで受信しました",
"VIEW_TWEET_IN_TWITTER": "ツイートをTwitterで見る",
"REPLY_TO_TWEET": "このつぶやきに返信",
- "LINK_TO_STORY": "Go to instagram story",
- "SENT": "Sent successfully",
- "READ": "Read successfully",
- "DELIVERED": "Delivered successfully",
- "NO_MESSAGES": "No Messages",
- "NO_CONTENT": "No content available",
- "HIDE_QUOTED_TEXT": "Hide Quoted Text",
- "SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "LINK_TO_STORY": "Instagramストーリーに移動",
+ "SENT": "送信成功",
+ "READ": "既読",
+ "DELIVERED": "配信済み",
+ "NO_MESSAGES": "メッセージなし",
+ "NO_CONTENT": "コンテンツが利用できません",
+ "HIDE_QUOTED_TEXT": "引用テキストを非表示",
+ "SHOW_QUOTED_TEXT": "引用テキストを表示",
+ "MESSAGE_READ": "既読",
+ "SENDING": "送信中",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/companies.json b/app/javascript/dashboard/i18n/locale/ja/companies.json
new file mode 100644
index 000000000..e260c2166
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "並び替え",
+ "OPTIONS": {
+ "NAME": "名前",
+ "DOMAIN": "ドメイン",
+ "CREATED_AT": "作成日時",
+ "LAST_ACTIVITY_AT": "最終アクティビティ",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "昇順",
+ "DESCENDING": "降順"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "属性",
+ "CONTACTS": "連絡先",
+ "HISTORY": "履歴",
+ "NOTES": "メモ"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "属性を検索...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "連絡先を追加",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "連絡先を検索...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "企業名",
+ "CONTACT_LABEL": "連絡先",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "キャンセル"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "{date} に作成",
+ "LAST_ACTIVE": "{date} に最後のアクティビティ",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "名前",
+ "DOMAIN": "ドメイン"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/components.json b/app/javascript/dashboard/i18n/locale/ja/components.json
new file mode 100644
index 000000000..b6b732e87
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "{startItem} - {endItem} 件を表示中(全 {totalItems} 件)",
+ "CURRENT_PAGE_INFO": "{currentPage} ページ中 {totalPages} ページ"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "オプションを選択...",
+ "EMPTY_SEARCH_RESULTS": "`{searchTerm}` に該当する項目が見つかりませんでした。",
+ "EMPTY_STATE": "該当結果が見つかりませんでした。",
+ "SEARCH_PLACEHOLDER": "検索...",
+ "MORE": "+{count} 件をさらに表示"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "検索...",
+ "EMPTY_STATE": "該当結果が見つかりませんでした。",
+ "SEARCHING": "検索中..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "キャンセル",
+ "CONFIRM": "確認"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "国を検索",
+ "ERROR": "電話番号は空白または E.164 形式である必要があります。",
+ "DIAL_CODE_ERROR": "リストからダイヤルコードを選択してください。"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "著者情報は利用できません"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "パンくずリスト"
+ },
+ "SWITCH": {
+ "TOGGLE": "スイッチを切り替え"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "タグ"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "詳細を見る",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/contact.json b/app/javascript/dashboard/i18n/locale/ja/contact.json
index 5c8641fad..763edb81b 100644
--- a/app/javascript/dashboard/i18n/locale/ja/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ja/contact.json
@@ -1,54 +1,64 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "利用不可",
+ "NOT_AVAILABLE": "未入力",
"EMAIL_ADDRESS": "Eメールアドレス",
"PHONE_NUMBER": "電話番号",
- "IDENTIFIER": "Identifier",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
- "COMPANY": "企業",
+ "IDENTIFIER": "識別子",
+ "COPY_SUCCESSFUL": "クリップボードに正常にコピーされました",
+ "COMPANY": "企業名",
"LOCATION": "場所",
"BROWSER_LANGUAGE": "ブラウザの言語",
"CONVERSATION_TITLE": "会話の詳細",
- "VIEW_PROFILE": "View Profile",
+ "VIEW_PROFILE": "プロフィールを表示",
"BROWSER": "ブラウザ",
"OS": "OS",
"INITIATED_FROM": "開始元",
- "INITIATED_AT": "開始場所",
- "IP_ADDRESS": "IP Address",
- "CREATED_AT_LABEL": "Created",
- "NEW_MESSAGE": "New message",
+ "INITIATED_AT": "開始日時",
+ "IP_ADDRESS": "IPアドレス",
+ "CREATED_AT_LABEL": "作成日時",
+ "NEW_MESSAGE": "新しいメッセージ",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "この連絡先に関連付けられている以前の会話はありません。",
- "TITLE": "前の会話"
+ "TITLE": "以前の会話"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Contact Labels",
- "ERROR": "Couldn't update labels"
+ "TITLE": "連絡先ラベル",
+ "ERROR": "ラベルを更新できませんでした"
},
"CONVERSATION": {
"TITLE": "会話のラベル",
- "ADD_BUTTON": "Add Labels"
+ "ADD_BUTTON": "ラベルを追加"
},
"LABEL_SELECT": {
- "TITLE": "Add Labels",
- "PLACEHOLDER": "Search labels",
- "NO_RESULT": "No labels found",
- "CREATE_LABEL": "Create new label"
+ "TITLE": "ラベルを追加",
+ "PLACEHOLDER": "ラベルを検索",
+ "NO_RESULT": "ラベルが見つかりません",
+ "CREATE_LABEL": "新しいラベルを作成"
}
},
- "MERGE_CONTACT": "Merge contact",
- "CONTACT_ACTIONS": "Contact actions",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "会話のログを送信",
+ "MERGE_CONTACT": "連絡先をマージ",
+ "CONTACT_ACTIONS": "連絡先アクション",
+ "MUTE_CONTACT": "連絡先をブロック",
+ "UNMUTE_CONTACT": "連絡先のブロックを解除",
+ "MUTED_SUCCESS": "この連絡先は正常にブロックされました。将来の会話に関する通知は受け取れません。",
+ "UNMUTED_SUCCESS": "この連絡先のブロックが正常に解除されました。",
+ "SEND_TRANSCRIPT": "会話ログを送信",
"EDIT_LABEL": "編集",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "カスタム属性",
- "CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "前の会話"
+ "CONTACT_LABELS": "連絡先ラベル",
+ "PREVIOUS_CONVERSATIONS": "以前の会話",
+ "NO_RECORDS_FOUND": "属性が見つかりません"
}
},
"EDIT_CONTACT": {
@@ -56,58 +66,19 @@
"TITLE": "連絡先を編集",
"DESC": "連絡先の詳細を編集"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "キャンセル"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "削除の確認",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "いいえ、保存しておきます"
- }
- },
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Delete Contact",
- "TITLE": "Delete contact",
- "DESC": "Delete contact details",
+ "BUTTON_LABEL": "連絡先を削除",
+ "TITLE": "連絡先を削除",
+ "DESC": "連絡先の詳細を削除",
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "削除してもよろしいですか? ",
+ "MESSAGE": "削除してもよろしいですか?",
"YES": "削除する",
"NO": "いいえ"
},
"API": {
- "SUCCESS_MESSAGE": "Contact deleted successfully",
- "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ "SUCCESS_MESSAGE": "連絡先が正常に削除されました",
+ "ERROR_MESSAGE": "連絡先を削除できませんでした。後でもう一度お試しください。"
}
},
"CONTACT_FORM": {
@@ -129,15 +100,15 @@
"PLACEHOLDER": "連絡先のEメールアドレスを入力してください",
"LABEL": "Eメールアドレス",
"DUPLICATE": "このメールアドレスは別の連絡先に使用されています。",
- "ERROR": "正しいメールアドレスを入力してください."
+ "ERROR": "正しいメールアドレスを入力してください。"
},
"PHONE_NUMBER": {
"PLACEHOLDER": "連絡先の電話番号を入力してください",
"LABEL": "電話番号",
- "HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
- "ERROR": "Phone number should be either empty or of E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
- "DUPLICATE": "This phone number is in use for another contact."
+ "HELP": "電話番号はE.164形式である必要があります (例: +1415555555 [+][国コード][エリアコード][ローカル番号])",
+ "ERROR": "電話番号は空白またはE.164形式である必要があります。",
+ "DIAL_CODE_ERROR": "リストからダイヤルコードを選択してください。",
+ "DUPLICATE": "この電話番号は別の連絡先に使用されています。"
},
"LOCATION": {
"PLACEHOLDER": "連絡先の所在地を入力してください",
@@ -148,15 +119,15 @@
"LABEL": "企業名"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
+ "PLACEHOLDER": "国名を入力",
"LABEL": "国名",
- "SELECT_PLACEHOLDER": "Select",
+ "SELECT_PLACEHOLDER": "選択",
"REMOVE": "削除",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "国を選択"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "都市名を入力",
+ "LABEL": "都市名"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
@@ -179,204 +150,517 @@
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "Contact avatar deleted successfully",
- "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
+ "SUCCESS_MESSAGE": "連絡先のアバターが正常に削除されました",
+ "ERROR_MESSAGE": "連絡先のアバターを削除できませんでした。後でもう一度お試しください。"
}
},
- "SUCCESS_MESSAGE": "Contact saved successfully",
+ "SUCCESS_MESSAGE": "連絡先が正常に保存されました",
"ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Start conversation",
- "TITLE": "New conversation",
- "DESC": "Start a new conversation by sending a new message.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "BUTTON_LABEL": "チャットを開始",
+ "TITLE": "新しい会話",
+ "DESC": "新しいメッセージを送信して会話を開始します。",
+ "NO_INBOX": "この連絡先と新しい会話を開始する受信トレイが見つかりませんでした。",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "宛先"
},
"INBOX": {
- "LABEL": "Inbox",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "LABEL": "受信トレイ",
+ "PLACEHOLDER": "ソース受信トレイを選択",
+ "ERROR": "受信トレイを選択してください"
},
"SUBJECT": {
"LABEL": "件名",
- "PLACEHOLDER": "件名",
- "ERROR": "Subject can't be empty"
+ "PLACEHOLDER": "件名を入力してください",
+ "ERROR": "件名を空にすることはできません"
},
"MESSAGE": {
"LABEL": "メッセージ",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "PLACEHOLDER": "ここにメッセージを入力してください",
+ "ERROR": "メッセージを空にすることはできません"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "ファイルを選択",
+ "HELP_TEXT": "ここにファイルをドラッグアンドドロップするか、添付するファイルを選択してください"
},
- "SUBMIT": "Send message",
+ "SUBMIT": "メッセージを送信",
"CANCEL": "キャンセル",
- "SUCCESS_MESSAGE": "Message sent!",
+ "SUCCESS_MESSAGE": "メッセージが送信されました!",
"GO_TO_CONVERSATION": "表示",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "ERROR_MESSAGE": "送信できませんでした!もう一度お試しください"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "フィルターの保存",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "名前",
- "PHONE_NUMBER": "電話番号",
- "CONVERSATIONS": "会話データ",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "企業",
- "EMAIL_ADDRESS": "Eメールアドレス"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "会話データ"
+ "SOCIAL_PROFILES": "ソーシャルプロファイル"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
- "BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "BUTTON": "カスタム属性を追加",
+ "COPY_SUCCESSFUL": "正常にクリップボードにコピーされました",
+ "SHOW_MORE": "すべての属性を表示",
+ "SHOW_LESS": "属性を少なく表示",
"ACTIONS": {
- "COPY": "Copy attribute",
- "DELETE": "Delete attribute",
- "EDIT": "Edit attribute"
+ "COPY": "属性をコピー",
+ "DELETE": "属性を削除",
+ "EDIT": "属性を編集"
},
"ADD": {
- "TITLE": "Create custom attribute",
- "DESC": "Add custom information to this contact."
+ "TITLE": "カスタム属性を作成",
+ "DESC": "この連絡先にカスタム情報を追加します。"
},
"FORM": {
- "CREATE": "Add attribute",
+ "CREATE": "属性を追加",
"CANCEL": "キャンセル",
"NAME": {
- "LABEL": "Custom attribute name",
- "PLACEHOLDER": "Eg: shopify id",
- "ERROR": "Invalid custom attribute name"
+ "LABEL": "カスタム属性名",
+ "PLACEHOLDER": "例: Shopify ID",
+ "ERROR": "無効なカスタム属性名です"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "属性値",
+ "PLACEHOLDER": "例: 11901"
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "新しい属性を作成",
+ "SUCCESS": "属性が正常に追加されました",
+ "ERROR": "属性を追加できませんでした。後でもう一度お試しください"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "属性が正常に更新されました",
+ "ERROR": "属性を更新できませんでした。後でもう一度お試しください"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "属性が正常に削除されました",
+ "ERROR": "属性を削除できませんでした。後でもう一度お試しください"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "属性を追加",
+ "PLACEHOLDER": "属性を検索",
+ "NO_RESULT": "属性が見つかりません"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
- "NO_RESULT": "No result found"
+ "PLACEHOLDER": "値を選択",
+ "SEARCH_INPUT_PLACEHOLDER": "値を検索",
+ "NO_RESULT": "結果が見つかりません"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "Invalid URL",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "有効な値が必要です",
+ "INVALID_URL": "無効なURLです",
+ "INVALID_INPUT": "無効な入力です"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
- "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
+ "TITLE": "連絡先をマージ",
+ "DESCRIPTION": "連絡先をマージして、2つのプロファイルを1つに統合します。すべての属性と会話が統合されます。競合が発生した場合、プライマリ連絡先の属性が優先されます。",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "プライマリ連絡先",
+ "HELP_LABEL": "削除対象"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "マージする連絡先",
+ "PLACEHOLDER": "連絡先を検索",
+ "HELP_LABEL": "保持対象"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "概要",
+ "DELETE_WARNING": "{primaryContactName} の連絡先が削除されます。",
+ "ATTRIBUTE_WARNING": "{primaryContactName} の連絡先情報が {parentContactName} にコピーされます。"
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "問題が発生しました。もう一度お試しください。"
},
"FORM": {
- "SUBMIT": " Merge contacts",
+ "SUBMIT": "連絡先をマージ",
"CANCEL": "キャンセル",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "マージする子連絡先を選択してください"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "連絡先が正常にマージされました",
+ "ERROR_MESSAGE": "連絡先をマージできませんでした。もう一度お試しください!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "連絡先",
+ "SEARCH_TITLE": "連絡先を検索",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "検索...",
+ "MESSAGE_BUTTON": "メッセージ",
+ "SEND_MESSAGE": "メッセージを送信",
+ "BLOCK_CONTACT": "連絡先をブロック",
+ "UNBLOCK_CONTACT": "連絡先のブロックを解除",
+ "BREADCRUMB": {
+ "CONTACTS": "連絡先"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "連絡先を追加",
+ "EXPORT_CONTACT": "連絡先をエクスポート",
+ "IMPORT_CONTACT": "連絡先をインポート",
+ "SAVE_CONTACT": "連絡先を保存",
+ "EMAIL_ADDRESS_DUPLICATE": "このメールアドレスは別の連絡先に使用されています。",
+ "PHONE_NUMBER_DUPLICATE": "この電話番号は別の連絡先に使用されています。",
+ "SUCCESS_MESSAGE": "連絡先が正常に保存されました",
+ "ERROR_MESSAGE": "連絡先を保存できませんでした。後でもう一度お試しください。"
+ },
+ "BLOCK_SUCCESS_MESSAGE": "この連絡先は正常にブロックされました",
+ "BLOCK_ERROR_MESSAGE": "連絡先をブロックできませんでした。再度お試しください。",
+ "UNBLOCK_SUCCESS_MESSAGE": "この連絡先のブロックが正常に解除されました",
+ "UNBLOCK_ERROR_MESSAGE": "連絡先のブロックを解除できませんでした。再度お試しください。",
+ "IMPORT_CONTACT": {
+ "TITLE": "連絡先をインポート",
+ "DESCRIPTION": "CSVファイルを使用して連絡先をインポートします。",
+ "DOWNLOAD_LABEL": "サンプルCSVをダウンロード",
+ "LABEL": "CSVファイル:",
+ "CHOOSE_FILE": "ファイルを選択",
+ "CHANGE": "ステータスを変更",
+ "CANCEL": "キャンセル",
+ "IMPORT": "インポート",
+ "SUCCESS_MESSAGE": "インポート完了後、メールで通知されます。",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "連絡先をエクスポート",
+ "DESCRIPTION": "連絡先の詳細を含むCSVファイルを迅速にエクスポートします。",
+ "CONFIRM": "エクスポート",
+ "SUCCESS_MESSAGE": "エクスポートが進行中です。完了後にダウンロード可能な状態になるとメールで通知されます。",
+ "ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ },
+ "SORT_BY": {
+ "LABEL": "並び替え",
+ "OPTIONS": {
+ "NAME": "名前",
+ "EMAIL": "Eメール",
+ "PHONE_NUMBER": "電話番号",
+ "COMPANY": "企業名",
+ "COUNTRY": "国",
+ "CITY": "都市",
+ "LAST_ACTIVITY": "最終アクティビティ",
+ "CREATED_AT": "作成日時"
+ }
+ },
+ "ORDER": {
+ "LABEL": "順序",
+ "OPTIONS": {
+ "ASCENDING": "昇順",
+ "DESCENDING": "降順"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "このフィルターを保存しますか?",
+ "CONFIRM": "フィルターを保存",
+ "LABEL": "名前",
+ "PLACEHOLDER": "フィルターの名前を入力",
+ "ERROR": "有効な名前を入力してください",
+ "SUCCESS_MESSAGE": "フィルターが正常に保存されました",
+ "ERROR_MESSAGE": "フィルターを保存できませんでした。後でもう一度お試しください。"
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "削除の確認",
+ "DESCRIPTION": "このフィルターを削除してもよろしいですか?",
+ "CONFIRM": "削除する",
+ "CANCEL": "いいえ、キャンセル",
+ "SUCCESS_MESSAGE": "フィルターが正常に削除されました",
+ "ERROR_MESSAGE": "フィルターを削除できませんでした。後でもう一度お試しください。"
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "{startItem} - {endItem} 件目を表示中(全 {totalItems} 件)"
+ },
+ "FILTER": {
+ "NAME": "名前",
+ "EMAIL": "Eメール",
+ "PHONE_NUMBER": "電話番号",
+ "IDENTIFIER": "識別子",
+ "COUNTRY": "国",
+ "CITY": "都市",
+ "COMPANY": "企業名",
+ "CREATED_AT": "作成日時",
+ "LAST_ACTIVITY": "最終アクティビティ",
+ "REFERER_LINK": "参照リンク",
+ "BLOCKED": "ブロック済み",
+ "BLOCKED_TRUE": "真",
+ "BLOCKED_FALSE": "偽",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "フィルターをクリア",
+ "UPDATE_SEGMENT": "セグメントを更新",
+ "APPLY_FILTERS": "フィルターを適用",
+ "ADD_FILTER": "フィルターを追加"
+ },
+ "TITLE": "連絡先をフィルター",
+ "EDIT_SEGMENT": "セグメントを編集",
+ "SEGMENT": {
+ "LABEL": "セグメント名",
+ "INPUT_PLACEHOLDER": "セグメントの名前を入力"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} 件のフィルターを表示",
+ "CLEAR_FILTERS": "フィルターをクリア"
+ }
+ },
+ "CARD": {
+ "OF": "/",
+ "VIEW_DETAILS": "詳細を表示",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "連絡先の詳細を編集",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "名を入力してください"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "姓を入力してください"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "メールアドレスを入力してください",
+ "DUPLICATE": "このメールアドレスは別の連絡先に使用されています。"
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "電話番号を入力してください",
+ "DUPLICATE": "この電話番号は別の連絡先に使用されています。"
+ },
+ "CITY": {
+ "PLACEHOLDER": "都市名を入力"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "国を選択"
+ },
+ "BIO": {
+ "PLACEHOLDER": "プロフィールを入力"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "企業名を入力"
+ }
+ },
+ "UPDATE_BUTTON": "連絡先を更新",
+ "SUCCESS_MESSAGE": "連絡先が正常に更新されました",
+ "ERROR_MESSAGE": "連絡先を更新できませんでした。後でもう一度お試しください。"
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "ソーシャルリンクを編集",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebookを追加"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Githubを追加"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagramを追加"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedInを追加"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitterを追加"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "{date} に作成",
+ "LAST_ACTIVITY": "{date} に最後のアクティビティ",
+ "DELETE_CONTACT_DESCRIPTION": "この連絡先を完全に削除します。この操作は取り消せません。",
+ "DELETE_CONTACT": "連絡先を削除",
+ "DELETE_DIALOG": {
+ "TITLE": "削除の確認",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "削除する",
+ "API": {
+ "SUCCESS_MESSAGE": "連絡先が正常に削除されました。",
+ "ERROR_MESSAGE": "連絡先を削除できませんでした。後でもう一度お試しください。"
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "アバターをアップロードできませんでした。後でもう一度お試しください。",
+ "SUCCESS_MESSAGE": "アバターが正常にアップロードされました。"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "アバターが正常に削除されました。",
+ "ERROR_MESSAGE": "アバターを削除できませんでした。後でもう一度お試しください。"
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "属性",
+ "HISTORY": "履歴",
+ "NOTES": "メモ",
+ "MERGE": "マージ"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "この連絡先に関連付けられた以前の会話はありません。"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "属性を検索",
+ "UNUSED_ATTRIBUTES": "{count} 件の使用済み属性 | {count} 件の未使用属性",
+ "EMPTY_STATE": "このアカウントに利用可能なカスタム属性はありません。設定でカスタム属性を作成できます。",
+ "YES": "はい",
+ "NO": "いいえ",
+ "TRIGGER": {
+ "SELECT": "値を選択",
+ "INPUT": "値を入力"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "無効な数字です。",
+ "REQUIRED": "有効な値が必要です。",
+ "INVALID_INPUT": "無効な入力です。",
+ "INVALID_URL": "無効なURLです。",
+ "INVALID_DATE": "無効な日付です。"
+ },
+ "NO_ATTRIBUTES": "属性が見つかりません。",
+ "API": {
+ "SUCCESS_MESSAGE": "属性が正常に更新されました。",
+ "DELETE_SUCCESS_MESSAGE": "属性が正常に削除されました。",
+ "UPDATE_ERROR": "属性を更新できませんでした。後でもう一度お試しください。",
+ "DELETE_ERROR": "属性を削除できませんでした。後でもう一度お試しください。"
+ }
+ },
+ "MERGE": {
+ "TITLE": "連絡先をマージ",
+ "DESCRIPTION": "2つのプロファイルを1つに統合し、すべての属性と会話を含めます。競合がある場合、プライマリ連絡先の属性が優先されます。",
+ "PRIMARY": "プライマリ連絡先",
+ "PRIMARY_HELP_LABEL": "保存対象",
+ "PRIMARY_REQUIRED_ERROR": "進行する前にマージする連絡先を選択してください。",
+ "PARENT": "マージ対象",
+ "PARENT_HELP_LABEL": "削除対象",
+ "EMPTY_STATE": "連絡先が見つかりません。",
+ "PLACEHOLDER": "プライマリ連絡先を検索",
+ "SEARCH_PLACEHOLDER": "連絡先を検索",
+ "SEARCH_ERROR_MESSAGE": "連絡先を検索できませんでした。後でもう一度お試しください。",
+ "SUCCESS_MESSAGE": "連絡先が正常にマージされました。",
+ "ERROR_MESSAGE": "連絡先をマージできませんでした。もう一度お試しください!",
+ "IS_SEARCHING": "検索中...",
+ "BUTTONS": {
+ "CANCEL": "キャンセル",
+ "CONFIRM": "連絡先をマージ"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "メモを追加",
+ "WROTE": "が記入しました",
+ "YOU": "あなた",
+ "SAVE": "メモを保存",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "拡張",
+ "COLLAPSE": "Collapse",
+ "NO_NOTES": "No notes, you can add notes from the contact details page.",
+ "EMPTY_STATE": "この連絡先に関連するメモはありません。上記のボックスに入力してメモを追加できます。",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "このアカウントには連絡先が見つかりません。",
+ "SUBTITLE": "以下のボタンをクリックして新しい連絡先を追加してください。",
+ "BUTTON_LABEL": "連絡先を追加",
+ "SEARCH_EMPTY_STATE_TITLE": "検索に一致する連絡先はありません 🔍",
+ "LIST_EMPTY_STATE_TITLE": "このビューには利用可能な連絡先がありません 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "さらに読み込む"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "ラベルが正常に割り当てられました。",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "削除",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "連絡先を削除"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "検索を完了できませんでした。もう一度お試しください。"
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "表示",
+ "SUCCESS_MESSAGE": "メッセージが正常に送信されました!",
+ "ERROR_MESSAGE": "会話の作成中にエラーが発生しました。後でもう一度お試しください。",
+ "NO_INBOX_ALERT": "この連絡先と会話を開始するための利用可能なインボックスがありません。",
+ "CONTACT_SELECTOR": {
+ "LABEL": "宛先:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "連絡先を作成中..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "送信方法:",
+ "BUTTON": "インボックスを表示"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "件名 :",
+ "SUBJECT_PLACEHOLDER": "メールの件名を入力",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "ここにメッセージを入力..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "テンプレートを選択",
+ "SEARCH_PLACEHOLDER": "テンプレートを検索",
+ "EMPTY_STATE": "テンプレートが見つかりません。",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsAppテンプレート: {templateName}",
+ "VARIABLES": "変数",
+ "BACK": "戻る",
+ "SEND_MESSAGE": "メッセージを送信"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "テンプレートを選択",
+ "SEARCH_PLACEHOLDER": "テンプレートを検索",
+ "EMPTY_STATE": "テンプレートが見つかりません。",
+ "TEMPLATE_PARSER": {
+ "BACK": "戻る",
+ "SEND_MESSAGE": "メッセージを送信"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "破棄",
+ "SEND": "送信 ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/contactFilters.json b/app/javascript/dashboard/i18n/locale/ja/contactFilters.json
index bef47b878..58a0963ff 100644
--- a/app/javascript/dashboard/i18n/locale/ja/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ja/contactFilters.json
@@ -1,20 +1,20 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filter Contacts",
- "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "TITLE": "連絡先をフィルター",
+ "SUBTITLE": "以下にフィルターを追加し、「送信」をクリックして連絡先を絞り込みます。",
+ "EDIT_CUSTOM_SEGMENT": "セグメントを編集",
+ "CUSTOM_VIEWS_SUBTITLE": "フィルターを追加または削除し、セグメントを更新します。",
"ADD_NEW_FILTER": "フィルターを追加",
- "CLEAR_ALL_FILTERS": "Clear All Filters",
- "FILTER_DELETE_ERROR": "保存するには少なくとも一つのフィルター選択が必要です。",
+ "CLEAR_ALL_FILTERS": "すべてのフィルターをクリア",
+ "FILTER_DELETE_ERROR": "保存するには少なくとも1つのフィルターが必要です。",
"SUBMIT_BUTTON_LABEL": "送信",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "UPDATE_BUTTON_LABEL": "セグメントを更新",
"CANCEL_BUTTON_LABEL": "キャンセル",
"CLEAR_BUTTON_LABEL": "フィルターをクリア",
"EMPTY_VALUE_ERROR": "値は必須です",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
- "TOOLTIP_LABEL": "Filter contacts",
+ "SEGMENT_LABEL": "セグメント名",
+ "SEGMENT_QUERY_LABEL": "セグメントクエリ",
+ "TOOLTIP_LABEL": "連絡先をフィルター",
"QUERY_DROPDOWN_LABELS": {
"AND": "AND",
"OR": "OR"
@@ -27,28 +27,33 @@
"is_present": "存在する",
"is_not_present": "存在しない",
"is_greater_than": "より大きい",
- "is_lesser_than": "Is lesser than",
+ "is_lesser_than": "より小さい",
"days_before": "x日前"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "値は必須です"
+ },
"ATTRIBUTES": {
"NAME": "名前",
"EMAIL": "Eメール",
"PHONE_NUMBER": "電話番号",
- "IDENTIFIER": "Identifier",
- "CITY": "City",
- "COUNTRY": "Country",
+ "IDENTIFIER": "識別子",
+ "CITY": "都市",
+ "COUNTRY": "国",
"CUSTOM_ATTRIBUTE_LIST": "リスト",
- "CUSTOM_ATTRIBUTE_TEXT": "Text",
- "CUSTOM_ATTRIBUTE_NUMBER": "Number",
- "CUSTOM_ATTRIBUTE_LINK": "Link",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
- "CREATED_AT": "Created At",
- "LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "CUSTOM_ATTRIBUTE_TEXT": "テキスト",
+ "CUSTOM_ATTRIBUTE_NUMBER": "数値",
+ "CUSTOM_ATTRIBUTE_LINK": "リンク",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "チェックボックス",
+ "CREATED_AT": "作成日",
+ "LAST_ACTIVITY": "最終アクティビティ",
+ "REFERER_LINK": "リファラーリンク",
+ "BLOCKED": "ブロック済み",
+ "LABELS": "ラベル"
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard Filters",
- "ADDITIONAL_FILTERS": "Additional Filters",
+ "STANDARD_FILTERS": "標準フィルター",
+ "ADDITIONAL_FILTERS": "追加フィルター",
"CUSTOM_ATTRIBUTES": "カスタム属性"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ja/contentTemplates.json
new file mode 100644
index 000000000..99d2e51a6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "テンプレートを検索",
+ "NO_TEMPLATES_FOUND": "該当するテンプレートが見つかりません:",
+ "NO_CONTENT": "コンテンツなし",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "カテゴリ",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "言語",
+ "TEMPLATE_BODY": "テンプレート本文",
+ "CATEGORY": "カテゴリ"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "テキスト"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "変数",
+ "LANGUAGE": "言語",
+ "CATEGORY": "カテゴリ",
+ "VARIABLE_PLACEHOLDER": "{variable} の値を入力",
+ "GO_BACK_LABEL": "戻る",
+ "SEND_MESSAGE_LABEL": "メッセージを送信",
+ "FORM_ERROR_MESSAGE": "送信前に全ての変数を入力してください",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "戻る",
+ "SEND_MESSAGE_BUTTON": "メッセージを送信"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/conversation.json b/app/javascript/dashboard/i18n/locale/ja/conversation.json
index 56dffecd1..793f00cc8 100644
--- a/app/javascript/dashboard/i18n/locale/ja/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ja/conversation.json
@@ -1,25 +1,27 @@
{
"CONVERSATION": {
"SELECT_A_CONVERSATION": "左のリストから会話を選択してください",
- "CSAT_REPLY_MESSAGE": "Please rate the conversation",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
+ "CSAT_REPLY_MESSAGE": "会話の評価にご協力をお願いいたします。",
+ "404": "会話が見つかりませんでした。もう一度お試しください。",
+ "SWITCH_VIEW_LAYOUT": "レイアウトを変更",
"DASHBOARD_APP_TAB_MESSAGES": "メッセージ",
"UNVERIFIED_SESSION": "このユーザーの身元は確認されていません",
"NO_MESSAGE_1": "おっと!受信トレイに顧客からのメッセージがないようです。",
- "NO_MESSAGE_2": " to send a message to your page!",
+ "NO_MESSAGE_2": " あなたのページにメッセージを送る",
"NO_INBOX_1": "まだ受信トレイを追加していないようです。",
"NO_INBOX_2": " 始めましょう",
"NO_INBOX_AGENT": "あなたに受信トレイが設定されていないようです。管理者に問い合わせてください。",
"SEARCH_MESSAGES": "会話中のメッセージの検索",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "コマンドメニューを開く",
+ "KEYBOARD_SHORTCUTS": "キーボードショートカットを表示する"
},
"SEARCH": {
"TITLE": "メッセージを検索",
"RESULT_TITLE": "検索結果",
- "LOADING_MESSAGE": "Crunching data...",
+ "LOADING_MESSAGE": "データを集めています...",
"PLACEHOLDER": "テキストを入力してメッセージを検索します",
"NO_MATCHING_RESULTS": "該当結果が見つかりませんでした。"
},
@@ -29,83 +31,149 @@
"LOADING_INBOXES": "受信トレイを読み込み中",
"LOADING_CONVERSATIONS": "会話データを読み込んでいます",
"CANNOT_REPLY": "以下の理由で返信できません:",
- "24_HOURS_WINDOW": "24 hour message window restriction",
- "NOT_ASSIGNED_TO_YOU": "This conversation is not assigned to you. Would you like to assign this conversation to yourself?",
+ "24_HOURS_WINDOW": "24時間以内のメッセージウィンドウの制限",
+ "48_HOURS_WINDOW": "48時間以内のメッセージウィンドウの制限",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
+ "NOT_ASSIGNED_TO_YOU": "この会話はあなたに割り当てられていません。自分に割り当てますか?",
"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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
+ "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": "ダウンロード",
"UNKNOWN_FILE_TYPE": "不明なファイル",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "連絡先を保存",
+ "NO_CONTENT": "表示するコンテンツがありません",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} が連絡先を共有しました",
+ "LOCATION": "{sender} が位置情報を共有しました",
+ "FILE": "{sender} がファイルを共有しました",
+ "MEETING": "{sender} がミーティングを開始しました"
+ },
"UPLOADING_ATTACHMENTS": "添付ファイルをアップロード中...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "REPLIED_TO_STORY": "あなたのストーリーに返信",
+ "UNSUPPORTED_MESSAGE": "このメッセージはサポートされていません。Facebook / Instagram で表示できます。",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "このメッセージはサポートされていません。Facebook Messengerでこのメッセージを表示できます。",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "このメッセージはサポートされていません。このメッセージは Instagram で表示できます。",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "メッセージの削除に成功",
"FAIL_DELETE_MESSSAGE": "メッセージを削除できませんでした!もう一度お試しください",
- "NO_RESPONSE": "No response",
+ "NO_RESPONSE": "返信なし",
+ "RESPONSE": "回答",
"RATING_TITLE": "評価",
"FEEDBACK_TITLE": "フィードバック",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "REPLY_MESSAGE_NOT_FOUND": "メッセージは利用できません",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "ラベルを表示",
+ "HIDE_LABELS": "ラベルを隠す",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "解決する",
"REOPEN_ACTION": "再開する",
- "OPEN_ACTION": "開く",
+ "OPEN_ACTION": "再開する",
+ "MORE_ACTIONS": "More actions",
"OPEN": "もっと見る",
"CLOSE": "閉じる",
"DETAILS": "詳細",
- "SNOOZED_UNTIL": "Snoozed until",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "次の時間までスヌーズ",
"SNOOZED_UNTIL_TOMORROW": "明日までスヌーズしました",
"SNOOZED_UNTIL_NEXT_WEEK": "来週までスヌーズ",
- "SNOOZED_UNTIL_NEXT_REPLY": "次の返信までうたた寝。"
+ "SNOOZED_UNTIL_NEXT_REPLY": "次の返信までうたた寝。",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "不在",
+ "DUE": "期限"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "保留としてマークする",
"SNOOZE_UNTIL": "スヌーズ",
"SNOOZE": {
"TITLE": "までスヌーズする",
- "NEXT_REPLY": "Next reply",
+ "NEXT_REPLY": "次の返信",
"TOMORROW": "明日",
"NEXT_WEEK": "次週"
}
},
+ "MENTION": {
+ "AGENTS": "担当者",
+ "TEAMS": "チーム"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "までスヌーズする",
"APPLY": "スヌーズ",
"CANCEL": "キャンセル"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "優先度",
"OPTIONS": {
"NONE": "該当なし",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "URGENT": "緊急",
+ "HIGH": "高",
+ "MEDIUM": "中",
+ "LOW": "低"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "該当なし",
- "INPUT_PLACEHOLDER": "Select priority",
- "NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "INPUT_PLACEHOLDER": "優先度を選択",
+ "NO_RESULTS": "結果が見つかりませんでした",
+ "SUCCESSFUL": "会話ID {conversationId} の優先度を {priority}に変更しました",
+ "FAILED": "優先度を変更できませんでした。もう一度お試しください。"
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Are you sure you want to delete this conversation?",
+ "CONFIRM": "削除"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "保留としてマークする",
"RESOLVED": "解決済みとしてマークする",
- "MARK_AS_UNREAD": "Mark as unread",
- "REOPEN": "Reopen conversation",
+ "MARK_AS_UNREAD": "未読にする",
+ "MARK_AS_READ": "既読にする",
+ "REOPEN": "会話を再開する",
"SNOOZE": {
"TITLE": "スヌーズ",
- "NEXT_REPLY": "Until next reply",
+ "NEXT_REPLY": "次の返信まで",
"TOMORROW": "明日まで",
"NEXT_WEEK": "来週まで"
},
@@ -113,104 +181,148 @@
"ASSIGN_LABEL": "ラベルを割り当てる",
"AGENTS_LOADING": "エージェントを読み込む...",
"ASSIGN_TEAM": "チームを割り当てる",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "会話 ID %{conversationId} が \"%{agentName}\" に割り当てられました",
+ "SUCCESFUL": "会話 ID {conversationId} が \"{agentName}\" に割り当てられました",
"FAILED": "エージェントを割り当てられませんでした。もう一度お試しください。"
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "会話ID {conversationId} に ラベル #{labelName} を割り当てました",
"FAILED": "ラベルを割り当てることができませんでした。もう一度やり直してください。"
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "会話ID {conversationId} に \"{team}\" チームを割り当てました",
+ "FAILED": "チームを割り当てることができませんでした。もう一度お試しください。"
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
+ "MESSAGE_SIGN_TOOLTIP": "メッセージの署名",
+ "ENABLE_SIGN_TOOLTIP": "署名を有効化",
+ "DISABLE_SIGN_TOOLTIP": "署名を無効化",
"MSG_INPUT": "Shift + Enter で新しい行を作成します。「/」で開始すると、定型文回答を選択できます。",
"PRIVATE_MSG_INPUT": "Shift + Enter で新しい行を作成します。これは担当者にのみ表示されます。",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "メッセージ署名が構成されていません。プロフィール設定で構成してください。",
+ "COPILOT_MSG_INPUT": "Copilot に追加のプロンプトを送るか、ほかの質問をしてください… Enter キーでフォローアップを送信",
+ "CLICK_HERE": "ここをクリックして更新",
+ "WHATSAPP_TEMPLATES": "Whatsapp テンプレート"
},
"REPLYBOX": {
"REPLY": "返信",
"PRIVATE_NOTE": "非公開メモ",
"SEND": "送信",
"CREATE": "メモを追加",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
- "TIP_EMOJI_ICON": "Show emoji selector",
- "TIP_ATTACH_ICON": "Attach files",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "INSERT_READ_MORE": "続きを読む",
+ "DISMISS_REPLY": "返信を却下",
+ "REPLYING_TO": "返信対象:",
+ "TIP_EMOJI_ICON": "絵文字セレクタを表示",
+ "TIP_ATTACH_ICON": "ファイルを添付",
+ "TIP_AUDIORECORDER_ICON": "音声を録音",
+ "TIP_AUDIORECORDER_PERMISSION": "音声アクセスを許可",
+ "TIP_AUDIORECORDER_ERROR": "音声を開けませんでした",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "添付するにはここにドラッグ&ドロップ",
+ "START_AUDIO_RECORDING": "音声録音を開始",
+ "STOP_AUDIO_RECORDING": "音声録音を停止",
+ "COPILOT_THINKING": "Copilotが考え中",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Add bcc",
+ "TO": "宛先",
+ "ADD_BCC": "Bcc を追加",
"CC": {
- "LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "LABEL": "Cc",
+ "PLACEHOLDER": "カンマで区切ったメールアドレス",
+ "ERROR": "有効なメールアドレスを入力してください"
},
"BCC": {
- "LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "LABEL": "Bcc",
+ "PLACEHOLDER": "カンマで区切ったメールアドレス",
+ "ERROR": "有効なメールアドレスを入力してください"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
- "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "TITLE": "未定義の変数",
+ "MESSAGE": "メッセージに {undefinedVariablesCount} 個の未定義変数があります:{undefinedVariables}。それでもメッセージを送信しますか?",
"CONFIRM": {
"YES": "送信",
"CANCEL": "キャンセル"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "非公開設定の注意:あなたとあなたのチームのみに表示されます",
"CHANGE_STATUS": "会話の状態が変更されました",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
+ "CHANGE_STATUS_FAILED": "会話の状態変更に失敗しました",
"CHANGE_AGENT": "会話の担当者が変更されました",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "Conversation team changed",
- "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:",
- "BOT": "Bot",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "CHANGE_AGENT_FAILED": "担当者の変更に失敗しました",
+ "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 の添付ファイル制限を超えています",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "このメッセージを送信できません。後でもう一度お試しください",
+ "SENT_BY": "送信者:",
+ "BOT": "ボット",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
+ "SEND_FAILED": "メッセージを送信できませんでした!再試行してください",
+ "TRY_AGAIN": "再試行",
"ASSIGNMENT": {
- "SELECT_AGENT": "Select Agent",
+ "SELECT_AGENT": "担当者を選択",
"REMOVE": "削除",
- "ASSIGN": "Assign"
+ "ASSIGN": "割り当てる"
},
"CONTEXT_MENU": {
"COPY": "コピー",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "このメッセージに返信",
"DELETE": "削除",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "定型文応答に追加",
+ "TRANSLATE": "翻訳",
+ "COPY_PERMALINK": "メッセージへのリンクをコピー",
+ "LINK_COPIED": "メッセージのURLがクリップボードにコピーされました",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "このメッセージを削除してもよろしいですか?",
+ "MESSAGE": "この操作は元に戻せません",
"DELETE": "削除",
"CANCEL": "キャンセル"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "連絡先",
+ "COPILOT": "コパイロット"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "閉じる",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,10 +332,11 @@
"CANCEL": "キャンセル",
"SEND_EMAIL_SUCCESS": "チャットの記録は正常に送信されました",
"SEND_EMAIL_ERROR": "エラーが発生しました。もう一度お試しください。",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "顧客に会話の記録を転送する",
- "SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "会話の記録を別のEメールアドレスに転送する\n",
+ "SEND_TO_AGENT": "担当者に記録を送信する",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "会話の記録を別のメールアドレスに転送する",
"EMAIL": {
"PLACEHOLDER": "メールアドレスを入力する",
"ERROR": "正しいメールアドレスを入力してください"
@@ -231,65 +344,104 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
- "READ_LATEST_UPDATES": "Read our latest updates",
+ "TITLE": "こんにちは 👋, {installationName}へようこそ!",
+ "DESCRIPTION": "ご登録いただきありがとうございます。{installationName} を最大限に活用していただくために、いくつかのヒントをご紹介します。",
+ "GREETING_MORNING": "おはようございます 👋, {name} さん。{installationName} へようこそ。",
+ "GREETING_AFTERNOON": "こんにちは 👋, {name} さん。{installationName} へようこそ。",
+ "GREETING_EVENING": "こんばんは 👋, {name} さん。{installationName} へようこそ。",
+ "READ_LATEST_UPDATES": "最新のアップデートを読む",
"ALL_CONVERSATION": {
- "TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "TITLE": "すべての会話を1箇所で",
+ "DESCRIPTION": "お客様からのすべての会話を1つのダッシュボードで確認できます。受信チャネル、ラベル、ステータスでフィルタリング可能です。",
+ "NEW_LINK": "ここをクリックして受信トレイを作成"
},
"TEAM_MEMBERS": {
- "TITLE": "Invite your team members",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "Click here to invite a team member"
- },
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
+ "TITLE": "チームメンバーを招待",
+ "DESCRIPTION": "お客様と話す準備が整ったら、チームメイトを招待して支援を受けましょう。担当者リストにメールアドレスを追加して、チームメンバーを招待できます。",
+ "NEW_LINK": "ここをクリックしてチームメンバーを招待"
},
"LABELS": {
- "TITLE": "Organize conversations with labels",
- "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
- "NEW_LINK": "Click here to create tags"
+ "TITLE": "ラベルで会話を整理",
+ "DESCRIPTION": "ラベルを使うと、会話を簡単に分類できます。#support-enquiry、#billing-question などのラベルを作成して、後で会話に活用してください。",
+ "NEW_LINK": "ここをクリックしてラベルを作成"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "定型文応答を作成",
+ "DESCRIPTION": "あらかじめ用意されたクイック返信テンプレートで、会話に迅速に対応できます。担当者は '/' を入力し、その後にショートコードを入力して返信を挿入できます。",
+ "NEW_LINK": "ここをクリックして定型文応答を作成"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Assigned Agent",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "Assigned Team",
+ "ASSIGNEE_LABEL": "担当者",
+ "SELF_ASSIGN": "自分に割り当て",
+ "TEAM_LABEL": "担当チーム",
"SELECT": {
- "PLACEHOLDER": "None"
+ "PLACEHOLDER": "なし"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
+ "CONTACT_DETAILS": "連絡先詳細",
+ "CONVERSATION_ACTIONS": "会話のアクション",
"CONVERSATION_LABELS": "会話のラベル",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
- "PREVIOUS_CONVERSATION": "前の会話",
- "MACROS": "Macros"
+ "CONVERSATION_INFO": "会話の情報",
+ "CONTACT_NOTES": "Contact Notes",
+ "CONTACT_ATTRIBUTES": "連絡先属性",
+ "PREVIOUS_CONVERSATION": "以前の会話",
+ "MACROS": "マクロ",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "すべて表示",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "保留中",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
+ "ADD_BUTTON_TEXT": "属性を作成",
+ "NO_RECORDS_FOUND": "属性が見つかりません",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "属性が正常に更新されました",
+ "ERROR": "属性を更新できませんでした。後でもう一度お試しください"
},
"ADD": {
- "TITLE": "Add",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "追加",
+ "SUCCESS": "属性が正常に追加されました",
+ "ERROR": "属性を追加できませんでした。後でもう一度お試しください"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "属性が正常に削除されました",
+ "ERROR": "属性を削除できませんでした。後でもう一度お試しください"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "属性を追加",
+ "PLACEHOLDER": "属性を検索",
+ "NO_RESULT": "属性が見つかりません"
}
},
"EMAIL_HEADER": {
@@ -297,30 +449,42 @@
"TO": "宛先:",
"BCC": "ビーシーシー",
"CC": "シーシー",
- "SUBJECT": "件名"
+ "SUBJECT": "件名",
+ "EXPAND": "メールを展開"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
- "NO_RECORDS_FOUND": "No results found",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
- "NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "SIDEBAR_MENU_TITLE": "参加者",
+ "SIDEBAR_TITLE": "会話の参加者",
+ "NO_RECORDS_FOUND": "結果が見つかりません",
+ "ADD_PARTICIPANTS": "参加者を選択",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} 人のその他",
+ "REMANING_PARTICIPANT_TEXT": "+{count} 人のその他",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} 人が参加しています。",
+ "TOTAL_PARTICIPANT_TEXT": "{count} 人が参加しています。",
+ "NO_PARTICIPANTS_TEXT": "誰も参加していません。",
+ "WATCH_CONVERSATION": "会話に参加",
+ "YOU_ARE_WATCHING": "あなたはこの会話に参加しています",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "更新できませんでした。再試行してください!",
+ "SUCCESS_MESSAGE": "参加者が更新されました!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
- "DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "TITLE": "翻訳されたコンテンツを表示",
+ "DESC": "各言語で翻訳されたコンテンツを表示できます。",
+ "ORIGINAL_CONTENT": "オリジナルコンテンツ",
+ "TRANSLATED_CONTENT": "翻訳されたコンテンツ",
+ "NO_TRANSLATIONS_AVAILABLE": "このコンテンツには翻訳が利用できません"
+ },
+ "TYPING": {
+ "ONE": "{user} が入力中...",
+ "TWO": "{user} と {secondUser} が入力中...",
+ "MULTIPLE": "{user} と他 {count} 人が入力中..."
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "これらのプロンプトを試してください"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "添付ファイルをダウンロードできませんでした。もう一度お試しください。"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/csatMgmt.json b/app/javascript/dashboard/i18n/locale/ja/csatMgmt.json
index 9e16dc2b3..1a782aa3a 100644
--- a/app/javascript/dashboard/i18n/locale/ja/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/csatMgmt.json
@@ -1,13 +1,13 @@
{
"CSAT": {
- "TITLE": "Rate your conversation",
- "PLACEHOLDER": "Tell us more...",
+ "TITLE": "会話を評価する",
+ "PLACEHOLDER": "詳細を教えてください...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 悪かった",
+ "FAIR": "😑 良くなかった",
+ "AVERAGE": "😐 普通",
+ "GOOD": "😀 良かった",
+ "EXCELLENT": "😍 とても良かった"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/customRole.json b/app/javascript/dashboard/i18n/locale/ja/customRole.json
new file mode 100644
index 000000000..8fbabb188
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "カスタムロール",
+ "LEARN_MORE": "カスタムロールについて詳しく学ぶ",
+ "DESCRIPTION": "カスタムロールは、アカウントオーナーまたは管理者によって作成されるロールです。これらのロールは、担当者に割り当てて、アカウント内でのアクセス権と権限を定義できます。カスタムロールは、組織の要件に合わせて特定の権限とアクセスレベルで作成できます。",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "カスタムロールを追加",
+ "LOADING": "カスタムロールを取得中...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした。",
+ "PAYWALL": {
+ "TITLE": "アップグレードしてカスタムロールを作成",
+ "AVAILABLE_ON": "カスタムロール機能はビジネスプランおよびエンタープライズプランでのみ利用可能です。",
+ "UPGRADE_PROMPT": "チーム管理、自動化、カスタム属性などの高度な機能にアクセスするためにプランをアップグレードしてください。",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "カスタムロール機能は有料プランでのみ利用可能です。",
+ "UPGRADE_PROMPT": "監査ログ、担当者キャパシティなどの高度な機能にアクセスするために有料プランにアップグレードしてください。",
+ "ASK_ADMIN": "アップグレードについては管理者にお問い合わせください。"
+ },
+ "LIST": {
+ "404": "このアカウントでは利用可能なカスタムロールはありません。",
+ "TITLE": "カスタムロールの管理",
+ "DESC": "カスタムロールは、アカウントオーナーまたは管理者によって作成されるロールです。これらのロールは、担当者に割り当てて、アカウント内でのアクセス権と権限を定義できます。カスタムロールは、組織の要件に合わせて特定の権限とアクセスレベルで作成できます。",
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "DESCRIPTION": "説明",
+ "PERMISSIONS": "権限",
+ "ACTIONS": "操作"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "すべての会話を管理",
+ "CONVERSATION_UNASSIGNED_MANAGE": "未割り当ての会話と自分に割り当てられた会話を管理",
+ "CONVERSATION_PARTICIPATING_MANAGE": "参加中の会話と自分に割り当てられた会話を管理",
+ "CONTACT_MANAGE": "連絡先を管理",
+ "REPORT_MANAGE": "レポートを管理",
+ "KNOWLEDGE_BASE_MANAGE": "ナレッジベースを管理"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "名前",
+ "PLACEHOLDER": "名前を入力してください。",
+ "ERROR": "名前が必須です。"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "説明を入力してください。",
+ "ERROR": "説明が必須です。"
+ },
+ "PERMISSIONS": {
+ "LABEL": "権限",
+ "ERROR": "権限が必須です。"
+ },
+ "CANCEL_BUTTON_TEXT": "キャンセル",
+ "API": {
+ "ERROR_MESSAGE": "Woot サーバーに接続できませんでした。後でもう一度お試しください。"
+ }
+ },
+ "ADD": {
+ "TITLE": "カスタムロールを追加",
+ "DESC": "カスタムロールは、組織の要件に合わせて特定の権限とアクセスレベルでロールを作成できます。",
+ "SUBMIT": "送信",
+ "API": {
+ "SUCCESS_MESSAGE": "カスタムロールが正常に追加されました。"
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "編集",
+ "TITLE": "カスタムロールを編集",
+ "DESC": "カスタムロールは、組織の要件に合わせて特定の権限とアクセスレベルでロールを作成できます。",
+ "SUBMIT": "更新",
+ "API": {
+ "SUCCESS_MESSAGE": "カスタムロールが正常に更新されました。"
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "削除",
+ "API": {
+ "SUCCESS_MESSAGE": "カスタムロールが正常に削除されました。",
+ "ERROR_MESSAGE": "Woot サーバーに接続できませんでした。後でもう一度お試しください。"
+ },
+ "CONFIRM": {
+ "TITLE": "削除の確認",
+ "MESSAGE": "削除してもよろしいですか?",
+ "YES": "はい、削除します",
+ "NO": "いいえ、保持します"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/datePicker.json b/app/javascript/dashboard/i18n/locale/ja/datePicker.json
new file mode 100644
index 000000000..6f71359d9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "適用",
+ "CLEAR_BUTTON": "クリア",
+ "DATE_RANGE_INPUT": {
+ "START": "開始日",
+ "END": "終了日"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "日付範囲",
+ "LAST_7_DAYS": "過去 7 日間",
+ "LAST_30_DAYS": "過去 30 日間",
+ "LAST_3_MONTHS": "過去 3 ヶ月",
+ "LAST_6_MONTHS": "過去 6 ヶ月",
+ "LAST_YEAR": "過去 1 年",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "カスタム日付範囲"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/emoji.json b/app/javascript/dashboard/i18n/locale/ja/emoji.json
index d0f2965ea..8d37f088c 100644
--- a/app/javascript/dashboard/i18n/locale/ja/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/ja/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "絵文字を検索",
+ "NOT_FOUND": "検索条件に一致する絵文字が見つかりません",
"REMOVE": "削除"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/general.json b/app/javascript/dashboard/i18n/locale/ja/general.json
new file mode 100644
index 000000000..13daf31d8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "{firstIndex}-{lastIndex} の {totalCount} アイテムを表示",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "検索",
+ "EMPTY_STATE": "結果が見つかりませんでした。"
+ },
+ "CLOSE": "閉じる",
+ "BETA": "ベータ版",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "破棄",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "はい",
+ "NO": "いいえ"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
index 65ac7e997..69776169e 100644
--- a/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/generalSettings.json
@@ -1,12 +1,38 @@
{
"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. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Please contact your administrator to upgrade the plan and continue using all features."
+ },
"TITLE": "アカウント設定",
"SUBMIT": "設定を更新",
"BACK": "戻る",
- "DISMISS": "Dismiss",
+ "DISMISS": "閉じる",
"UPDATE": {
"ERROR": "設定を更新できませんでした。もう一度お試しください",
- "SUCCESS": "正常にアカウント設定を更新しました"
+ "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": "正しくフォームに入力してください",
@@ -15,8 +41,36 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Account ID",
- "NOTE": "This ID is required if you are building an API based integration"
+ "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": "アカウント名",
@@ -24,8 +78,8 @@
"ERROR": "正しいアカウント名を入力してください"
},
"LANGUAGE": {
- "LABEL": "Site language",
- "PLACEHOLDER": "あなたのアカウント名",
+ "LABEL": "サイト言語",
+ "PLACEHOLDER": "言語を選択",
"ERROR": ""
},
"DOMAIN": {
@@ -35,134 +89,164 @@
},
"SUPPORT_EMAIL": {
"LABEL": "サポートメール",
- "PLACEHOLDER": "あなたの会社のサポートメール",
+ "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": "あなたのアカウントでは、メールでの会話が継続できるようになっています。",
- "CUSTOM_EMAIL_DOMAIN_ENABLED": "カスタムドメインでメールを受信できるようになりました。"
+ "INBOUND_EMAIL_ENABLED": "あなたのアカウントでは、メールでの会話が継続可能です。",
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "カスタムドメインでのメール受信が有効になりました。"
}
},
- "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",
- "LIMITS_UPGRADE": "Your account has exceeded the usage limits, please upgrade your plan to continue using Chatwoot",
- "OPEN_BILLING": "Open billing"
+ "UPDATE_CHATWOOT": "Chatwootのアップデート {latestChatwootVersion} が利用可能です。インスタンスを更新してください。",
+ "LEARN_MORE": "詳細を見る",
+ "PAYMENT_PENDING": "お支払いが保留中です。支払い情報を更新してChatwootの利用を継続してください。",
+ "UPGRADE": "Upgrade to continue using Chatwoot",
+ "LIMITS_UPGRADE": "アカウントの使用制限を超えました。プランをアップグレードして利用を続けてください。",
+ "OPEN_BILLING": "請求情報を開く"
},
"FORMS": {
"MULTISELECT": {
- "ENTER_TO_SELECT": "Press enter to select",
- "ENTER_TO_REMOVE": "Press enter to remove",
- "SELECT_ONE": "Select one",
- "SELECT": "Select"
+ "ENTER_TO_SELECT": "Enterキーで選択",
+ "ENTER_TO_REMOVE": "Enterキーで削除",
+ "NO_OPTIONS": "List is empty",
+ "SELECT_ONE": "1つを選択",
+ "SELECT": "選択"
}
},
"NOTIFICATIONS_PAGE": {
- "HEADER": "Notifications",
- "MARK_ALL_DONE": "Mark All Done",
- "DELETE_TITLE": "deleted",
+ "HEADER": "通知",
+ "MARK_ALL_DONE": "すべて完了としてマーク",
+ "DELETE_TITLE": "削除済み",
"UNREAD_NOTIFICATION": {
- "TITLE": "Unread Notifications",
- "ALL_NOTIFICATIONS": "View all notifications",
- "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
- "EMPTY_MESSAGE": "You have no unread notifications"
+ "TITLE": "未読通知",
+ "ALL_NOTIFICATIONS": "すべての通知を見る",
+ "LOADING_UNREAD_MESSAGE": "未読通知を読み込み中...",
+ "EMPTY_MESSAGE": "未読通知はありません"
},
"LIST": {
- "LOADING_MESSAGE": "Loading notifications...",
- "404": "No Notifications",
+ "LOADING_MESSAGE": "通知を読み込み中...",
+ "404": "通知なし",
"TABLE_HEADER": [
"名前",
"電話番号",
"会話データ",
- "Last Contacted"
+ "最終連絡日"
]
},
"TYPE_LABEL": {
- "conversation_creation": "New conversation",
- "conversation_assignment": "Conversation Assigned",
- "assigned_conversation_new_message": "New Message",
- "participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_creation": "新しい会話",
+ "conversation_assignment": "会話の割り当て",
+ "assigned_conversation_new_message": "新しいメッセージ",
+ "participating_conversation_new_message": "新しいメッセージ",
+ "conversation_mention": "メンション",
+ "sla_missed_first_response": "SLA未達",
+ "sla_missed_next_response": "SLA未達",
+ "sla_missed_resolution": "SLA未達"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "オフライン"
+ "OFFLINE": "オフライン",
+ "RECONNECTING": "再接続中...",
+ "RECONNECT_SUCCESS": "再接続しました"
},
"BUTTON": {
- "REFRESH": "Refresh"
+ "REFRESH": "再読み込み"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SEARCH_PLACEHOLDER": "検索または移動",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
- "GENERAL": "General",
+ "GENERAL": "全般",
"REPORTS": "レポート",
- "CONVERSATION": "Conversation",
- "CHANGE_ASSIGNEE": "Change Assignee",
- "CHANGE_PRIORITY": "Change Priority",
- "CHANGE_TEAM": "Change Team",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "ADD_LABEL": "Add label to the conversation",
- "REMOVE_LABEL": "Remove label from the conversation",
+ "CONVERSATION": "会話",
+ "BULK_ACTIONS": "一括操作",
+ "CHANGE_ASSIGNEE": "割り当てを変更",
+ "CHANGE_PRIORITY": "優先度を変更",
+ "CHANGE_TEAM": "チームを変更",
+ "SNOOZE_CONVERSATION": "会話をスヌーズ",
+ "ADD_LABEL": "会話にラベルを追加",
+ "REMOVE_LABEL": "会話からラベルを削除",
"SETTINGS": "設定",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "AIアシスト",
+ "APPEARANCE": "外観",
+ "SNOOZE_NOTIFICATION": "通知をスヌーズ"
},
"COMMANDS": {
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
- "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
- "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
- "GO_TO_LABEL_REPORTS": "Go to Label Reports",
- "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
- "GO_TO_TEAM_REPORTS": "Go to Team Reports",
- "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
- "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
- "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
- "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
- "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
- "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
- "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
- "GO_TO_NOTIFICATIONS": "Go to Notifications",
- "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
- "ASSIGN_AN_AGENT": "Assign an agent",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
- "ASSIGN_A_TEAM": "Assign a team",
- "MUTE_CONVERSATION": "Mute conversation",
- "UNMUTE_CONVERSATION": "Unmute conversation",
- "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
- "REOPEN_CONVERSATION": "Reopen conversation",
- "RESOLVE_CONVERSATION": "Resolve conversation",
- "SEND_TRANSCRIPT": "Send an email transcript",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "UNTIL_NEXT_REPLY": "Until next reply",
- "UNTIL_NEXT_WEEK": "Until next week",
- "UNTIL_TOMORROW": "Until tomorrow",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "GO_TO_CONVERSATION_DASHBOARD": "会話ダッシュボードに移動",
+ "GO_TO_CONTACTS_DASHBOARD": "連絡先ダッシュボードに移動",
+ "GO_TO_REPORTS_OVERVIEW": "レポート概要に移動",
+ "GO_TO_CONVERSATION_REPORTS": "会話レポートに移動",
+ "GO_TO_AGENT_REPORTS": "担当者レポートに移動",
+ "GO_TO_LABEL_REPORTS": "ラベルレポートに移動",
+ "GO_TO_INBOX_REPORTS": "受信トレイレポートに移動",
+ "GO_TO_TEAM_REPORTS": "チームレポートに移動",
+ "GO_TO_SETTINGS_AGENTS": "担当者設定に移動",
+ "GO_TO_SETTINGS_TEAMS": "チーム設定に移動",
+ "GO_TO_SETTINGS_INBOXES": "受信トレイ設定に移動",
+ "GO_TO_SETTINGS_LABELS": "ラベル設定に移動",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "定型文設定に移動",
+ "GO_TO_SETTINGS_APPLICATIONS": "アプリ設定に移動",
+ "GO_TO_SETTINGS_ACCOUNT": "アカウント設定に移動",
+ "GO_TO_SETTINGS_PROFILE": "プロフィール設定に移動",
+ "GO_TO_NOTIFICATIONS": "通知に移動",
+ "ADD_LABELS_TO_CONVERSATION": "会話にラベルを追加",
+ "ASSIGN_AN_AGENT": "担当者を割り当て",
+ "AI_ASSIST": "AIアシスト",
+ "ASSIGN_PRIORITY": "優先度を割り当て",
+ "ASSIGN_A_TEAM": "チームを割り当て",
+ "MUTE_CONVERSATION": "会話をミュート",
+ "UNMUTE_CONVERSATION": "会話のミュートを解除",
+ "REMOVE_LABEL_FROM_CONVERSATION": "会話からラベルを削除",
+ "REOPEN_CONVERSATION": "会話を再開",
+ "RESOLVE_CONVERSATION": "会話を解決",
+ "SEND_TRANSCRIPT": "メールで会話記録を送信",
+ "SNOOZE_CONVERSATION": "会話をスヌーズ",
+ "UNTIL_NEXT_REPLY": "次の返信まで",
+ "UNTIL_NEXT_WEEK": "来週まで",
+ "UNTIL_TOMORROW": "明日まで",
+ "UNTIL_NEXT_MONTH": "来月まで",
+ "AN_HOUR_FROM_NOW": "1時間後まで",
+ "UNTIL_CUSTOM_TIME": "カスタム...",
+ "CHANGE_APPEARANCE": "外観を変更",
+ "LIGHT_MODE": "ライトモード",
+ "DARK_MODE": "ダークモード",
+ "SYSTEM_MODE": "システム設定",
+ "SNOOZE_NOTIFICATION": "通知をスヌーズ"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Loading Dashboard App..."
+ "LOADING_MESSAGE": "ダッシュボードアプリを読み込み中..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "または",
"CLICK_HERE": "ここをクリック"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
index 872b16c52..0ef035f64 100644
--- a/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ja/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "ヘルプセンター",
+ "NEW_PAGE": {
+ "DESCRIPTION": "顧客向けのセルフサービスヘルプセンターポータルを作成します。顧客が待たずに迅速に回答を見つけられるようサポートします。問い合わせを効率化し、担当者の生産性を向上させ、顧客サポートを向上させましょう。",
+ "CREATE_PORTAL_BUTTON": "ポータルを作成"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
+ "FILTER": "フィルター",
+ "SORT": "並び替え",
+ "LOCALE": "ロケール",
"SETTINGS_BUTTON": "設定",
- "NEW_BUTTON": "New Article",
+ "NEW_BUTTON": "新しい記事",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "公開済み",
+ "DRAFT": "下書き",
+ "ARCHIVED": "アーカイブ"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "すべての記事",
+ "MINE": "私の記事",
+ "DRAFT": "下書き記事",
+ "ARCHIVED": "アーカイブ記事"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "ロケールを選択",
+ "PLACEHOLDER": "ロケールを選択",
+ "NO_RESULT": "ロケールが見つかりません",
+ "SEARCH_PLACEHOLDER": "ロケールを検索"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "すべての記事",
+ "PUBLISH_BUTTON": "公開",
+ "MOVE_TO_ARCHIVE_BUTTON": "アーカイブに移動",
+ "PREVIEW": "プレビュー",
+ "ADD_TRANSLATION": "翻訳を追加",
+ "OPEN_SIDEBAR": "サイドバーを開く",
+ "CLOSE_SIDEBAR": "サイドバーを閉じる",
+ "SAVING": "保存中...",
+ "SAVED": "保存済み"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
"TITLE": "画像をアップロード",
"UPLOADING": "アップロード中...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "画像が正常にアップロードされました",
+ "ERROR": "画像のアップロード中にエラーが発生しました",
+ "UN_AUTHORIZED_ERROR": "画像をアップロードする権限がありません",
+ "ERROR_FILE_SIZE": "画像サイズは {size}MB 未満である必要があります",
+ "ERROR_FILE_FORMAT": "画像形式は jpg、jpeg または png である必要があります",
+ "ERROR_FILE_DIMENSIONS": "画像の寸法は 2000 x 2000 未満である必要があります"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "記事の設定",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "カテゴリー",
+ "TITLE": "カテゴリーを選択",
+ "PLACEHOLDER": "カテゴリーを選択",
+ "NO_RESULT": "カテゴリーが見つかりません",
+ "SEARCH_PLACEHOLDER": "カテゴリーを検索"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "著者",
+ "TITLE": "著者を選択",
+ "PLACEHOLDER": "著者を選択",
+ "NO_RESULT": "著者が見つかりません",
+ "SEARCH_PLACEHOLDER": "著者を検索"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "メタタイトル",
+ "PLACEHOLDER": "メタタイトルを追加"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "メタ説明",
+ "PLACEHOLDER": "SEO結果を向上させるためにメタ説明を追加してください..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "メタタグ",
+ "PLACEHOLDER": "カンマ区切りでメタタグを追加..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "記事をアーカイブ",
+ "DELETE": "記事を削除"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "未分類",
+ "SEARCH_RESULTS": "{query} の検索結果",
+ "EMPTY_TEXT": "返信に挿入する記事を検索します。",
+ "SEARCH_LOADER": "検索中...",
+ "INSERT_ARTICLE": "挿入",
+ "NO_RESULT": "記事が見つかりません",
+ "COPY_LINK": "記事リンクをクリップボードにコピー",
+ "OPEN_LINK": "新しいタブで記事を開く",
+ "PREVIEW_LINK": "記事をプレビュー"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "ポータル",
+ "DEFAULT": "デフォルト",
+ "NEW_BUTTON": "新しいポータル",
+ "ACTIVE_BADGE": "アクティブ",
+ "CHOOSE_LOCALE_LABEL": "ロケールを選択",
+ "LOADING_MESSAGE": "ポータルを読み込み中...",
+ "ARTICLES_LABEL": "記事",
+ "NO_PORTALS_MESSAGE": "利用可能なポータルがありません",
+ "ADD_NEW_LOCALE": "新しいロケールを追加",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "TITLE": "ポータル",
+ "PORTAL_SETTINGS": "ポータル設定",
+ "SUBTITLE": "複数のポータルを持ち、それぞれに異なるロケールを設定できます。",
"CANCEL_BUTTON_LABEL": "キャンセル",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "ロケールを選択"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
+ "COUNT_LABEL": "記事",
+ "ADD": "ロケールを追加",
+ "VISIT": "サイトを訪問",
"SETTINGS": "設定",
"DELETE": "削除"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "ポータル設定",
"ITEMS": {
"NAME": "名前",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "DOMAIN": "カスタムドメイン",
+ "SLUG": "スラッグ",
+ "TITLE": "ポータルタイトル",
+ "THEME": "テーマカラー",
+ "SUB_TEXT": "ポータルサブテキスト"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "利用可能なロケール",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "ロケール名",
+ "CODE": "ロケールコード",
+ "ARTICLE_COUNT": "記事数",
+ "CATEGORIES": "カテゴリー数",
+ "SWAP": "交換",
"DELETE": "削除",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "デフォルト"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "ポータルを削除",
+ "MESSAGE": "このポータルを削除してもよろしいですか",
+ "YES": "はい、ポータルを削除します",
+ "NO": "いいえ、ポータルを保持します",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "ポータルが正常に削除されました",
+ "DELETE_ERROR": "ポータルの削除中にエラーが発生しました"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "ポータルを編集",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "基本情報"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "ポータルのカスタマイズ"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "カテゴリー"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "ロケール"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "カテゴリー",
+ "NEW_CATEGORY": "新しいカテゴリー",
"TABLE": {
"NAME": "名前",
"DESCRIPTION": "説明",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "LOCALE": "ロケール",
+ "ARTICLE_COUNT": "記事数",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "カテゴリーを編集",
+ "DELETE": "カテゴリーを削除"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "カテゴリーが見つかりません"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "基本設定を更新"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "ヘルプセンター情報",
+ "BODY": "ポータルの基本情報"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "ヘルプセンターのカスタマイズ",
+ "BODY": "ポータルをカスタマイズ"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "完成! 🎉",
+ "BODY": "すべて設定完了です!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "戻る",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "ポータルを作成",
+ "TITLE": "ヘルプセンター情報",
+ "CREATE_BASIC_SETTING_BUTTON": "ポータルの基本設定を作成"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "ポータルのカスタマイズ",
+ "TITLE": "ヘルプセンターのカスタマイズ",
+ "UPDATE_PORTAL_BUTTON": "ポータル設定を更新"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "完成!🎉 すべて設定完了です!",
+ "MESSAGE": "この作成されたポータルはすべてのポータルページで確認できます。",
+ "FINISH": "すべてのポータルページに移動"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "ロゴ",
+ "UPLOAD_BUTTON": "ロゴをアップロード",
+ "HELP_TEXT": "このロゴはポータルのヘッダーに表示されます。",
+ "IMAGE_UPLOAD_SUCCESS": "ロゴが正常にアップロードされました",
+ "IMAGE_UPLOAD_ERROR": "ロゴの削除に成功しました",
+ "IMAGE_DELETE_ERROR": "ロゴの削除中にエラーが発生しました"
},
"NAME": {
"LABEL": "名前",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
+ "PLACEHOLDER": "ポータル名",
+ "HELP_TEXT": "この名前は公開ポータルで内部的に使用されます。",
"ERROR": "名前が必須です"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "URL用のポータルスラッグ",
+ "ERROR": "スラッグが必須です"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "カスタムドメイン",
+ "PLACEHOLDER": "ポータルカスタムドメイン",
+ "HELP_TEXT": "ポータルにカスタムドメインを使用する場合のみ追加してください。例: {exampleURL}",
+ "ERROR": "有効なドメインURLを入力してください"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "ホームページリンク",
+ "PLACEHOLDER": "ポータルホームページリンク",
+ "HELP_TEXT": "ポータルからホームページに戻るためのリンク。例: {exampleURL}",
+ "ERROR": "有効なホームページURLを入力してください"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "ポータルテーマカラー",
+ "HELP_TEXT": "この色はポータルのテーマカラーとして表示されます。"
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "ページタイトル",
+ "PLACEHOLDER": "ポータルページタイトル",
+ "HELP_TEXT": "このページタイトルは公開ポータルで使用されます。",
+ "ERROR": "ページタイトルが必須です"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "ヘッダーテキスト",
+ "PLACEHOLDER": "ポータルヘッダーテキスト",
+ "HELP_TEXT": "このポータルヘッダーテキストは公開ポータルで使用されます。",
+ "ERROR": "ポータルヘッダーテキストが必須です"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "ポータルが正常に作成されました。",
+ "ERROR_MESSAGE_FOR_BASIC": "ポータルを作成できませんでした。再試行してください。",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "ポータルが正常に更新されました。",
+ "ERROR_MESSAGE_FOR_UPDATE": "ポータルを更新できませんでした。再試行してください。"
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "新しいロケールを追加",
+ "SUB_TITLE": "利用可能な翻訳リストに新しいロケールを追加します。",
+ "PORTAL": "ポータル",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "ロケール",
+ "PLACEHOLDER": "ロケールを選択",
+ "ERROR": "ロケールは必須です"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "ロケールを作成",
"CANCEL": "キャンセル"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "ロケールが正常に追加されました",
+ "ERROR_MESSAGE": "ロケールを追加できませんでした。再試行してください。"
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "デフォルトロケールが正常に更新されました",
+ "ERROR_MESSAGE": "デフォルトロケールを更新できませんでした。再試行してください。"
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "ロケールがポータルから正常に削除されました",
+ "ERROR_MESSAGE": "ロケールをポータルから削除できませんでした。再試行してください。"
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "記事を読み込み中...",
+ "404": "検索に一致する記事がありません 🔍",
+ "NO_ARTICLES": "利用可能な記事がありません",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "TITLE": "タイトル",
+ "CATEGORY": "カテゴリー",
+ "READ_COUNT": "閲覧数",
"STATUS": "状況",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "最終編集"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "担当者",
+ "AUTHOR_NOT_AVAILABLE": "担当者が利用できません"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "記事を読み込み中...",
+ "TITLE_PLACEHOLDER": "記事のタイトルをここに入力",
+ "CONTENT_PLACEHOLDER": "ここに記事を書いてください",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "記事の保存中にエラーが発生しました"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "記事の公開中にエラーが発生しました",
+ "SUCCESS": "記事が正常に公開されました"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "記事のアーカイブ中にエラーが発生しました",
+ "SUCCESS": "記事が正常にアーカイブされました"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "記事の下書き保存中にエラーが発生しました",
+ "SUCCESS": "記事が正常に下書き保存されました"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "Are you sure to delete the article?",
+ "MESSAGE": "記事を削除してもよろしいですか?",
"YES": "削除する",
"NO": "いいえ、保存しておきます"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "記事が正常に削除されました",
+ "ERROR_MESSAGE": "記事の削除中にエラーが発生しました"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "記事の見出しと内容を追加してから設定を更新してください"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "記事を検索"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "カテゴリーを作成",
+ "SUB_TITLE": "カテゴリーは公開ポータルで記事を分類するために使用されます。",
+ "PORTAL": "ポータル",
+ "LOCALE": "ロケール",
"NAME": {
"LABEL": "名前",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "カテゴリー名",
+ "HELP_TEXT": "カテゴリー名とアイコンは公開ポータルで記事を分類するために使用されます。",
"ERROR": "名前が必須です"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "URL用のカテゴリーのスラッグ",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "スラッグが必須です"
},
"DESCRIPTION": {
"LABEL": "説明",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "カテゴリーについての簡単な説明を入力してください。",
+ "ERROR": "説明は必須です"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "カテゴリーを作成",
"CANCEL": "キャンセル"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "カテゴリーが正常に作成されました",
+ "ERROR_MESSAGE": "カテゴリーの作成中にエラーが発生しました"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "カテゴリーを編集",
+ "SUB_TITLE": "カテゴリーを編集すると、公開ポータルのカテゴリーが更新されます。",
+ "PORTAL": "ポータル",
+ "LOCALE": "ロケール",
"NAME": {
"LABEL": "名前",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "カテゴリー名",
+ "HELP_TEXT": "カテゴリー名とアイコンは公開ポータルで記事を分類するために使用されます。",
"ERROR": "名前が必須です"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "URL用のカテゴリーのスラッグ",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "スラッグが必須です"
},
"DESCRIPTION": {
"LABEL": "説明",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "PLACEHOLDER": "カテゴリーについての簡単な説明を入力してください。",
+ "ERROR": "説明は必須です"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "カテゴリーを更新",
"CANCEL": "キャンセル"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "カテゴリーが正常に更新されました",
+ "ERROR_MESSAGE": "カテゴリーの更新中にエラーが発生しました"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "カテゴリーが正常に削除されました",
+ "ERROR_MESSAGE": "カテゴリーの削除中にエラーが発生しました"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "TITLE": "記事を検索",
+ "PLACEHOLDER": "記事を検索",
+ "NO_RESULT": "記事が見つかりません",
+ "SEARCHING": "検索中...",
+ "SEARCH_BUTTON": "検索",
+ "INSERT_ARTICLE": "リンクを挿入",
+ "IFRAME_ERROR": "URLが空または無効です。コンテンツを表示できません。",
+ "OPEN_ARTICLE_SEARCH": "ヘルプセンターから記事を挿入",
+ "SUCCESS_ARTICLE_INSERTED": "記事が正常に挿入されました",
+ "PREVIEW_LINK": "記事をプレビュー",
"CANCEL": "閉じる",
"BACK": "戻る",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "結果に戻る"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "ヘルプセンター",
+ "DESCRIPTION": "ユーザーフレンドリーなセルフサービスポータルを作成します。ユーザーが記事にアクセスし、24時間365日サポートを受けられるようにします。この機能を有効にするには、サブスクリプションをアップグレードしてください。",
+ "SELF_HOSTED_DESCRIPTION": "ユーザーフレンドリーなセルフサービスポータルを作成します。ユーザーが記事にアクセスし、24時間365日サポートを受けられるようにします。この機能を有効にするには、管理者に連絡してください。",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "詳細を確認",
+ "UPGRADE": "アップグレード"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "複数のポータル",
+ "DESCRIPTION": "同じアカウントを使用して、異なる製品のために複数のヘルプセンターポータルを作成します。"
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "ロケールの完全サポート",
+ "DESCRIPTION": "ポータルをあなたの言語にローカライズします。すべてのロケールをサポートし、各記事の翻訳を可能にします。"
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEOに優れたデザイン",
+ "DESCRIPTION": "メタタグをカスタマイズして、SEOに優れたページで検索エンジンでの可視性を向上させます。"
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "完全なAPIサポート",
+ "DESCRIPTION": "APIを使用して、サードパーティのフロントエンドフレームワークでポータルをヘッドレスCMSとして使用します。"
}
}
+ },
+ "LOADING": "読み込み中...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} 回の閲覧",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "公開",
+ "DRAFT": "下書き",
+ "ARCHIVE": "アーカイブ",
+ "TRANSLATE": "翻訳",
+ "DELETE": "削除"
+ },
+ "STATUS": {
+ "DRAFT": "下書き",
+ "PUBLISHED": "公開済み",
+ "ARCHIVED": "アーカイブ"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "未分類"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "すべての記事",
+ "MINE": "自分",
+ "DRAFT": "下書き",
+ "PUBLISHED": "公開済み",
+ "ARCHIVED": "アーカイブ"
+ },
+ "CATEGORY": {
+ "ALL": "すべてのカテゴリー"
+ },
+ "LOCALE": {
+ "ALL": "すべてのロケール"
+ },
+ "NEW_ARTICLE": "新しい記事"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "記事を書く",
+ "SUBTITLE": "リッチな記事を書いて、始めましょう!",
+ "BUTTON_LABEL": "新しい記事"
+ },
+ "MINE": {
+ "TITLE": "ここにはまだ記事がありません",
+ "SUBTITLE": "あなたが書いたすべての記事がここに表示されます。"
+ },
+ "DRAFT": {
+ "TITLE": "下書きの記事はありません",
+ "SUBTITLE": "下書きの記事はここに表示されます"
+ },
+ "PUBLISHED": {
+ "TITLE": "公開された記事はありません",
+ "SUBTITLE": "公開された記事はここに表示されます"
+ },
+ "ARCHIVED": {
+ "TITLE": "アーカイブされた記事はありません",
+ "SUBTITLE": "アーカイブされた記事はポータルに表示されません。廃止された記事や古い記事をマークするために使用できます。"
+ },
+ "CATEGORY": {
+ "TITLE": "このカテゴリーには記事がありません",
+ "SUBTITLE": "このカテゴリーの記事はここに表示されます"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "翻訳",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "翻訳",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "公開",
+ "DRAFT": "下書き",
+ "ARCHIVE": "アーカイブ",
+ "TRANSLATE": "翻訳",
+ "MOVE_TO_CATEGORY": "カテゴリ",
+ "DELETE": "削除",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "削除",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "新しいカテゴリー",
+ "EDIT_CATEGORY": "カテゴリーを編集",
+ "CATEGORIES_COUNT": "{n} カテゴリー | {n} カテゴリー",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "カテゴリー ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} 記事) | {categoryName} ({categoryCount} 記事)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "カテゴリーが見つかりません",
+ "SUBTITLE": "カテゴリーはここに表示されます。「新しいカテゴリー」ボタンをクリックしてカテゴリーを追加できます。"
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} 記事 | {count} 記事"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "カテゴリーが正常に作成されました",
+ "ERROR_MESSAGE": "カテゴリーを作成できませんでした"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "カテゴリーが正常に更新されました",
+ "ERROR_MESSAGE": "カテゴリーを更新できませんでした"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "カテゴリーが正常に削除されました",
+ "ERROR_MESSAGE": "カテゴリーを削除できませんでした"
+ }
+ },
+ "HEADER": {
+ "CREATE": "カテゴリーを作成",
+ "EDIT": "カテゴリーを編集",
+ "DESCRIPTION": "カテゴリーを編集すると、公開ポータルのカテゴリーが更新されます。",
+ "PORTAL": "ポータル",
+ "LOCALE": "ロケール"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "名前",
+ "PLACEHOLDER": "カテゴリー名",
+ "ERROR": "名前が必須です"
+ },
+ "SLUG": {
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "URL用のカテゴリーのスラッグ",
+ "ERROR": "スラッグが必須です",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "カテゴリーについての簡単な説明を入力してください。",
+ "ERROR": "説明は必須です"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "作成",
+ "EDIT": "更新",
+ "CANCEL": "キャンセル"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "利用可能なロケールはありません | {n} ロケール | {n} ロケール",
+ "NEW_LOCALE_BUTTON_TEXT": "新しいロケール",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} 記事 | {count} 記事",
+ "CATEGORIES_COUNT": "{count} カテゴリー | {count} カテゴリー",
+ "DEFAULT": "デフォルト",
+ "DRAFT": "下書き",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "デフォルトに設定",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "削除"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "新しいロケールを追加",
+ "DESCRIPTION": "この記事が書かれる言語を選択します。これが翻訳リストに追加され、後でさらに追加できます。",
+ "COMBOBOX": {
+ "PLACEHOLDER": "ロケールを選択..."
+ },
+ "STATUS": {
+ "LABEL": "状況",
+ "OPTIONS": {
+ "LIVE": "公開済み",
+ "DRAFT": "下書き"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ロケールが正常に追加されました",
+ "ERROR_MESSAGE": "ロケールを追加できませんでした。再試行してください。"
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "保存中...",
+ "SAVED": "保存済み"
+ },
+ "PREVIEW": "プレビュー",
+ "PUBLISH": "公開",
+ "DRAFT": "下書き",
+ "ARCHIVE": "アーカイブ",
+ "BACK_TO_ARTICLES": "記事に戻る"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "その他のプロパティ",
+ "UNCATEGORIZED": "未分類",
+ "EDITOR_PLACEHOLDER": "何か書いてください..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "記事のプロパティ",
+ "META_DESCRIPTION": "メタ説明",
+ "META_DESCRIPTION_PLACEHOLDER": "メタ説明を追加",
+ "META_TITLE": "メタタイトル",
+ "META_TITLE_PLACEHOLDER": "メタタイトルを追加",
+ "META_TAGS": "メタタグ",
+ "META_TAGS_PLACEHOLDER": "メタタグを追加"
+ },
+ "API": {
+ "ERROR": "記事の保存中にエラーが発生しました"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "新しいポータル",
+ "PORTALS": "ポータル",
+ "CREATE_PORTAL": "複数のポータルを作成および管理",
+ "ARTICLES": "記事",
+ "DOMAIN": "ドメイン",
+ "PORTAL_NAME": "ポータル名"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "新しいポータルを作成",
+ "DESCRIPTION": "ポータルに名前を付け、ユーザーフレンドリーなURLスラッグを作成します。後で設定で両方を変更できます。",
+ "CONFIRM_BUTTON_LABEL": "作成",
+ "NAME": {
+ "LABEL": "名前",
+ "PLACEHOLDER": "ユーザーガイド | Chatwoot",
+ "MESSAGE": "ポータルの名前を選択してください。",
+ "ERROR": "名前が必須です"
+ },
+ "SLUG": {
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "スラッグが必須です",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "ロゴ",
+ "IMAGE_UPLOAD_ERROR": "画像をアップロードできませんでした!再試行してください",
+ "IMAGE_UPLOAD_SUCCESS": "画像が正常に追加されました。ロゴを保存するには変更を保存をクリックしてください",
+ "IMAGE_DELETE_SUCCESS": "ロゴが正常に削除されました",
+ "IMAGE_DELETE_ERROR": "ロゴを削除できませんでした",
+ "IMAGE_UPLOAD_SIZE_ERROR": "画像サイズは {size}MB 未満である必要があります"
+ },
+ "NAME": {
+ "LABEL": "名前",
+ "PLACEHOLDER": "ポータル名",
+ "ERROR": "名前が必須です"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "ヘッダーテキスト",
+ "PLACEHOLDER": "ポータルヘッダーテキスト"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "ページタイトル",
+ "PLACEHOLDER": "ポータルページタイトル"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "ホームページリンク",
+ "PLACEHOLDER": "ポータルホームページリンク",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "スラッグ",
+ "PLACEHOLDER": "ポータルスラッグ"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "ライブチャットウィジェット",
+ "PLACEHOLDER": "ライブチャットウィジェットを選択",
+ "HELP_TEXT": "ヘルプセンターに表示されるライブチャットウィジェットを選択します",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "ブランドカラー"
+ },
+ "SAVE_CHANGES": "変更を保存"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "カスタムドメイン",
+ "LABEL": "カスタムドメイン:",
+ "DESCRIPTION": "ポータルをカスタムドメインでホストできます。例えば、あなたのウェブサイトがyourdomain.comで、ポータルをdocs.yourdomain.comで利用したい場合、このフィールドに入力してください。",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "ポータルカスタムドメイン",
+ "EDIT_BUTTON": "編集",
+ "ADD_BUTTON": "カスタムドメインを追加",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "カスタムドメインを追加",
+ "EDIT_HEADER": "カスタムドメインを編集",
+ "ADD_CONFIRM_BUTTON_LABEL": "ドメインを追加",
+ "EDIT_CONFIRM_BUTTON_LABEL": "ドメインを更新",
+ "LABEL": "カスタムドメイン",
+ "PLACEHOLDER": "ポータルカスタムドメイン",
+ "ERROR": "カスタムドメインは必須です",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS設定",
+ "DESCRIPTION": "DNSプロバイダーのアカウントにログインし、サブドメインのCNAMEレコードをchatwoot.helpにポイントするように追加してください。",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "送信"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName}を削除",
+ "HEADER": "ポータルを削除",
+ "DESCRIPTION": "このポータルを永久に削除します。この操作は取り消せません。",
+ "DIALOG": {
+ "HEADER": "{portalName}を削除してもよろしいですか?",
+ "DESCRIPTION": "これは取り消せない永久的な操作です。",
+ "CONFIRM_BUTTON_LABEL": "削除"
+ }
+ },
+ "EDIT_CONFIGURATION": "設定を編集"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "外観",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "削除"
+ },
+ "SAVE": "変更を保存"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "ポータルが正常に作成されました",
+ "ERROR_MESSAGE": "ポータルを作成できませんでした"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "ポータルが正常に更新されました",
+ "ERROR_MESSAGE": "ポータルを更新できませんでした"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "アップロード中...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "キャンセル",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "生成中...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "完了",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/inbox.json b/app/javascript/dashboard/i18n/locale/ja/inbox.json
index 8c32799a1..ceec4e009 100644
--- a/app/javascript/dashboard/i18n/locale/ja/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ja/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "明日までスヌーズしました",
+ "TITLE": "My Inbox",
+ "DISPLAY_DROPDOWN": "表示",
+ "LOADING": "通知を取得中",
+ "404": "このグループにはアクティブな通知がありません。",
+ "NO_NOTIFICATIONS": "通知はありません",
+ "NOTE": "すべての購読中のインボックスからの通知",
+ "NO_MESSAGES_AVAILABLE": "おっと!メッセージを取得できませんでした",
+ "SNOOZED_UNTIL": "スヌーズ終了まで:",
+ "SNOOZED_UNTIL_TOMORROW": "明日までスヌーズ",
"SNOOZED_UNTIL_NEXT_WEEK": "来週までスヌーズ"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "通知をスヌーズ",
+ "DELETE": "通知を削除",
+ "BACK": "戻る"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "会話でメンションされました",
+ "CONVERSATION_CREATION": "新しい会話が作成されました",
+ "CONVERSATION_ASSIGNMENT": "会話があなたに割り当てられました",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話に新しいメッセージがあります",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "参加中の会話に新しいメッセージがあります",
+ "SLA_MISSED_FIRST_RESPONSE": "会話でSLA目標の最初の応答が未達です",
+ "SLA_MISSED_NEXT_RESPONSE": "会話でSLA目標の次の応答が未達です",
+ "SLA_MISSED_RESOLUTION": "会話でSLA目標の解決が未達です"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "メンションされました",
+ "CONVERSATION_ASSIGNMENT": "割り当てられました",
+ "CONVERSATION_CREATION": "新しい会話",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA違反",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA違反",
+ "SLA_MISSED_RESOLUTION": "SLA違反",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "新しいメッセージ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "新しいメッセージ",
+ "SNOOZED_UNTIL": "{time}スヌーズ中",
+ "SNOOZED_ENDS": "スヌーズ終了"
+ },
+ "NO_CONTENT": "コンテンツが利用できません",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
- "MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "既読にする",
+ "MARK_AS_UNREAD": "未読にする",
"SNOOZE": "スヌーズ",
"DELETE": "削除",
- "MARK_ALL_READ": "Mark all as read",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "MARK_ALL_READ": "すべて既読にする",
+ "DELETE_ALL": "すべて削除",
+ "DELETE_ALL_READ": "既読をすべて削除"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "並び替え",
+ "DISPLAY": "表示:",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
- "PRIORITY": "Priority"
+ "NEWEST": "最新",
+ "OLDEST": "最古",
+ "PRIORITY": "優先度"
},
"DISPLAY_OPTIONS": {
- "SNOOZED": "Snoozed",
- "READ": "Read",
+ "SNOOZED": "スヌーズ中",
+ "READ": "既読",
"LABELS": "ラベル",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "会話ID"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "通知を既読にしました",
+ "MARK_AS_UNREAD": "通知を未読にしました",
+ "SNOOZE": "通知をスヌーズしました",
+ "DELETE": "通知を削除しました",
+ "MARK_ALL_READ": "すべての通知を既読にしました",
+ "DELETE_ALL": "すべての通知を削除しました",
+ "DELETE_ALL_READ": "すべての既読通知を削除しました"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
index 8f6febead..34834bf90 100644
--- a/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/inboxMgmt.json
@@ -1,37 +1,41 @@
{
"INBOX_MGMT": {
"HEADER": "受信トレイ",
- "SIDEBAR_TXT": "受信トレイ
ウェブサイトと接続した場合、またはFacebookページとChatwootを接続した場合、受信トレイが作成されます。1つのChatwootアカウントにつき、受信トレイは無制限で作成することができます。
受信トレイ作成ボタンをクリックすると、ウェブサイトまたはFacebookと接続できるようになります。
管理画面では、受信トレイ内にあるすべての会話がひとつの場所で確認でき、会話タブにて返信することができます。
管理画面の左パネルから受信トレイの名前をクリックすることでも、特定の会話を見ることができます。
",
+ "DESCRIPTION": "チャンネルは、顧客があなたとやり取りするために選択する通信手段です。受信トレイは、特定のチャンネルのやり取りを管理する場所です。メール、ライブチャット、ソーシャルメディアなど、さまざまなソースからの通信を含むことができます。",
+ "LEARN_MORE": "受信トレイについて詳しく知る",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "受信トレイが切断されました。再認証するまで新しいメッセージを受信できません。",
+ "CLICK_TO_RECONNECT": "再接続するにはここをクリック。",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "このアカウントに紐付けられている受信トレイはありません。"
},
- "CREATE_FLOW": [
- {
- "title": "チャンネルを選択",
- "route": "settings_inbox_new",
- "body": "Chatwootと統合するプロバイダを選択してください。"
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "チャンネルを選択",
+ "BODY": "Chatwootと統合するプロバイダを選択してください。"
},
- {
- "title": "受信トレイを作成",
- "route": "settings_inboxes_page_channel",
- "body": "アカウントを認証し、受信トレイを作成します。"
+ "INBOX": {
+ "TITLE": "受信トレイを作成",
+ "BODY": "アカウントを認証し、受信トレイを作成します。"
},
- {
- "title": "担当者を追加",
- "route": "settings_inboxes_add_agents",
- "body": "作成した受信トレイに担当者を追加します。"
+ "AGENT": {
+ "TITLE": "担当者を追加",
+ "BODY": "作成した受信トレイに担当者を追加します。"
},
- {
- "title": "ほら、",
- "route": "settings_inbox_finish",
- "body": "すべての準備が完了しました!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "すべての準備が完了しました!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "受信トレイ名",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "PLACEHOLDER": "受信トレイ名を入力してください (例: Acme Inc)",
+ "ERROR": "有効な受信トレイ名を入力してください"
},
"WEBSITE_NAME": {
"LABEL": "ウェブサイト名",
@@ -44,13 +48,30 @@
"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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
- "HELP": "Twitterプロフィールをチャンネルとして追加するには、「Twitterでサインイン」をクリックしてTwitterプロフィールを認証する必要があります。 ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "HELP": "Twitterプロフィールをチャンネルとして追加するには、「Twitterでサインイン」をクリックしてTwitterプロフィールを認証する必要があります。",
+ "ERROR_MESSAGE": "Twitterへの接続中にエラーが発生しました。もう一度お試しください。",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "言及されたツイートから会話を作成する"
}
},
"WEBSITE_CHANNEL": {
@@ -62,8 +83,16 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "有効な URL を入力してください"
+ "PLACEHOLDER": "Webhook URLを入力してください",
+ "ERROR": "有効なURLを入力してください"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
"LABEL": "ウェブサイトのドメイン",
@@ -83,16 +112,16 @@
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "チャンネルグリーティングを有効にする",
- "HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
+ "HELP_TEXT": "新しい会話が作成されたときに自動的に挨拶メッセージを送信します。",
"ENABLED": "有効です",
"DISABLED": "無効です"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "返信時間を設定",
+ "IN_A_FEW_MINUTES": "数分以内",
+ "IN_A_FEW_HOURS": "数時間以内",
+ "IN_A_DAY": "1日以内",
+ "HELP_TEXT": "この返信時間はライブチャットウィジェットに表示されます"
},
"WIDGET_COLOR": {
"LABEL": "ウィジェットの色",
@@ -100,33 +129,33 @@
},
"SUBMIT_BUTTON": "受信トレイを作成",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "ウェブサイトチャンネルを作成できませんでした。もう一度お試しください"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp チャンネル",
+ "DESC": "Twilioを統合し、SMSまたはWhatsAppを通じて顧客をサポートし始めましょう。",
"ACCOUNT_SID": {
"LABEL": "アカウント SID",
"PLACEHOLDER": "Twilio アカウント SIDを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "USE_API_KEY": "APIキー認証を使用",
+ "LABEL": "APIキー SID",
+ "PLACEHOLDER": "APIキー SIDを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "LABEL": "APIキーシークレット",
+ "PLACEHOLDER": "APIキーシークレットを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
+ "LABEL": "メッセージングサービス SID",
+ "PLACEHOLDER": "Twilio メッセージングサービス SIDを入力してください",
"ERROR": "このフィールドは必須項目です",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "USE_MESSAGING_SERVICE": "Twilio メッセージングサービスを使用"
},
"CHANNEL_TYPE": {
"LABEL": "チャンネルタイプ",
@@ -139,13 +168,13 @@
},
"CHANNEL_NAME": {
"LABEL": "受信トレイ名",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "受信トレイ名を入力してください",
"ERROR": "このフィールドは必須項目です"
},
"PHONE_NUMBER": {
"LABEL": "電話番号",
"PLACEHOLDER": "送信先の電話番号を入力してください。",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "有効な電話番号を提供してください。`+`記号で始まり、スペースを含まない必要があります。"
},
"API_CALLBACK": {
"TITLE": "コールバック URL",
@@ -157,106 +186,184 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMSチャンネル",
+ "DESC": "SMSを通じて顧客をサポートし始めましょう。",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "APIプロバイダー",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "SMSチャンネルを保存できませんでした"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
+ "LABEL": "アカウントID",
+ "PLACEHOLDER": "BandwidthアカウントIDを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "LABEL": "APIキー",
+ "PLACEHOLDER": "Bandwidth APIキーを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "LABEL": "APIシークレット",
+ "PLACEHOLDER": "Bandwidth APIシークレットを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
+ "LABEL": "アプリケーションID",
+ "PLACEHOLDER": "BandwidthアプリケーションIDを入力してください",
"ERROR": "このフィールドは必須項目です"
},
"INBOX_NAME": {
"LABEL": "受信トレイ名",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "受信トレイ名を入力してください",
"ERROR": "このフィールドは必須項目です"
},
"PHONE_NUMBER": {
"LABEL": "電話番号",
"PLACEHOLDER": "送信先の電話番号を入力してください。",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "有効な電話番号を提供してください。`+`記号で始まり、スペースを含まない必要があります。"
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Bandwidthチャンネルを作成",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "Bandwidthの認証に失敗しました。もう一度お試しください"
},
"API_CALLBACK": {
"TITLE": "コールバック URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "SUBTITLE": "BandwidthでメッセージコールバックURLをここに記載されたURLで設定する必要があります。"
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsAppチャンネル",
+ "DESC": "WhatsAppを通じて顧客をサポートし始めましょう。",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "APIプロバイダー",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "受信トレイ名",
- "PLACEHOLDER": "Please enter an inbox name",
+ "PLACEHOLDER": "受信トレイ名を入力してください",
"ERROR": "このフィールドは必須項目です"
},
"PHONE_NUMBER": {
"LABEL": "電話番号",
"PLACEHOLDER": "送信先の電話番号を入力してください。",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "有効な電話番号を提供してください。`+`記号で始まり、スペースを含まない必要があります。"
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "電話番号ID",
+ "PLACEHOLDER": "Facebook開発者ダッシュボードから取得した電話番号IDを入力してください。",
+ "ERROR": "有効な値を入力してください。"
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ビジネスアカウントID",
+ "PLACEHOLDER": "Facebook開発者ダッシュボードから取得したビジネスアカウントIDを入力してください。",
+ "ERROR": "有効な値を入力してください。"
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Webhook検証トークン",
+ "PLACEHOLDER": "FacebookのWebhookに設定する検証トークンを入力してください。",
+ "ERROR": "有効な値を入力してください。"
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "APIキー",
+ "SUBTITLE": "WhatsApp APIキーを設定してください。",
+ "PLACEHOLDER": "APIキー",
+ "ERROR": "有効な値を入力してください。"
},
"API_CALLBACK": {
"TITLE": "コールバック URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "SUBTITLE": "Facebook開発者ポータルでWebhook URLと検証トークンを以下の値で設定する必要があります。",
"WEBHOOK_URL": "Webhook URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook検証トークン"
+ },
+ "SUBMIT_BUTTON": "WhatsAppチャンネルを作成",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "WhatsAppチャンネルを保存できませんでした"
+ }
+ },
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "電話番号",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "アカウント SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "認証トークン",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "APIキー SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "APIキーシークレット",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
}
},
"API_CHANNEL": {
@@ -269,17 +376,17 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "イベントのコールバックを受信するURLを設定してください。",
+ "SUBTITLE": "イベントのコールバックを受け取りたいURLを設定してください。",
"PLACEHOLDER": "Webhook URL"
},
- "SUBMIT_BUTTON": "API チャンネルを作成",
+ "SUBMIT_BUTTON": "APIチャンネルを作成",
"API": {
"ERROR_MESSAGE": "APIチャンネルを保存できませんでした"
}
},
"EMAIL_CHANNEL": {
"TITLE": "Eメールチャンネル",
- "DESC": "メール受信トレイを連携する",
+ "DESC": "Eメール受信トレイを統合します。",
"CHANNEL_NAME": {
"LABEL": "チャンネル名",
"PLACEHOLDER": "チャンネル名を入力してください",
@@ -287,92 +394,156 @@
},
"EMAIL": {
"LABEL": "Eメール",
- "SUBTITLE": "Email where your customers sends you support tickets",
+ "SUBTITLE": "顧客がサポートチケットを送信するメールアドレス",
"PLACEHOLDER": "Eメール"
},
"SUBMIT_BUTTON": "Eメールチャンネルを作成",
"API": {
"ERROR_MESSAGE": "Eメールチャンネルを保存できませんでした"
},
- "FINISH_MESSAGE": "以下のメールアドレスにメールを転送します。"
+ "FINISH_MESSAGE": "以下のメールアドレスにメールを転送します。",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "ここをクリック",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINEチャンネル",
+ "DESC": "LINEチャンネルと統合し、顧客のサポートを開始します。",
"CHANNEL_NAME": {
"LABEL": "チャンネル名",
"PLACEHOLDER": "チャンネル名を入力してください",
"ERROR": "このフィールドは必須項目です"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINEチャンネルID",
+ "PLACEHOLDER": "LINEチャンネルID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINEチャンネルシークレット",
+ "PLACEHOLDER": "LINEチャンネルシークレット"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINEチャンネルトークン",
+ "PLACEHOLDER": "LINEチャンネルトークン"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINEチャンネルを作成",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINEチャンネルを保存できませんでした"
},
"API_CALLBACK": {
- "TITLE": "コールバック URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "コールバックURL",
+ "SUBTITLE": "LINEアプリケーションでWebhook URLをここに記載されたURLで設定する必要があります。"
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegramチャンネル",
+ "DESC": "Telegramチャンネルと統合し、顧客のサポートを開始します。",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "ボットトークン",
+ "SUBTITLE": "Telegram BotFatherから取得したボットトークンを設定してください。",
+ "PLACEHOLDER": "ボットトークン"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegramチャンネルを作成",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Telegramチャンネルを保存できませんでした"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "チャンネルを選択",
+ "DESC": "Chatwootは、ライブチャットウィジェット、Facebook Messenger、Twitterプロフィール、WhatsApp、Eメールなどのチャンネルをサポートしています。カスタムチャンネルを作成したい場合は、APIチャンネルを使用して作成できます。開始するには、以下のチャンネルのいずれかを選択してください。",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "ウェブサイト",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Eメール",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "担当者",
- "DESC": "ここでは、新しく作成した受信トレイを管理するエージェントを追加できます。選択された担当者のみが受信トレイにアクセスできます。 この受信トレイに割り当てられていない担当者は、ログイン時にこの受信トレイ内のメッセージを表示または応答することができません。
PS: 管理者として、すべての受信ボックスにアクセスする必要がある場合、 あなたが作成したすべての受信トレイに担当者として自分自身を追加する必要があります。",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "DESC": "ここでは、新しく作成した受信トレイを管理する担当者を追加できます。選択された担当者のみが受信トレイにアクセスできます。この受信トレイに割り当てられていない担当者は、ログイン時にこの受信トレイ内のメッセージを表示または応答することができません。
PS: 管理者として、すべての受信トレイにアクセスする必要がある場合、あなたが作成したすべての受信トレイに担当者として自分自身を追加する必要があります。",
+ "VALIDATION_ERROR": "新しい受信トレイに少なくとも1人の担当者を追加してください",
+ "PICK_AGENTS": "受信トレイの担当者を選択"
},
"DETAILS": {
"TITLE": "受信トレイの詳細",
- "DESC": "下のドロップダウンから、Chatwoot に接続する Facebook ページを選択してください。 わかりやすくするために受信トレイの名前をカスタマイズすることもできます。"
+ "DESC": "下のドロップダウンから、Chatwootに接続するFacebookページを選択してください。わかりやすくするために受信トレイの名前をカスタマイズすることもできます。"
},
"FINISH": {
"TITLE": "ばっちりです!",
- "DESC": "FacebookページとChatwootとの統合が正常に完了しました。次回から、あなたのページに送信された顧客からのメッセージや会話は、自動的に受信トレイに表示されます。
また、ウェブサイトに簡単に追加できるウィジェットスクリプトを提供しています。 一度これをあなたのウェブサイトに設定すれば、 顧客は他のツールの助けを借りずにWebサイトから直接メッセージを送信でき、Chatwoot上に会話が表示されます。
素敵でしょ?まあ、私たちはきっとそうしますけどね:)"
+ "DESC": "FacebookページとChatwootとの統合が正常に完了しました。次回から、あなたのページに送信された顧客からのメッセージや会話は、自動的に受信トレイに表示されます。
また、ウェブサイトに簡単に追加できるウィジェットスクリプトを提供しています。一度これをあなたのウェブサイトに設定すれば、顧客は他のツールの助けを借りずにWebサイトから直接メッセージを送信でき、Chatwoot上に会話が表示されます。
素敵でしょ?まあ、私たちはきっとそうしますけどね:)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "メールプロバイダーを選択",
+ "DESCRIPTION": "以下のリストからメールプロバイダーを選択してください。リストにメールプロバイダーが表示されない場合は、他のプロバイダーオプションを選択し、IMAPおよびSMTPの資格情報を提供してください。"
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoftメール",
+ "DESCRIPTION": "開始するには、「Microsoftでサインイン」ボタンをクリックしてください。メールサインインページにリダイレクトされます。要求された権限を承認すると、受信トレイ作成ステップに戻ります。",
+ "EMAIL_PLACEHOLDER": "メールアドレスを入力してください",
+ "SIGN_IN": "Microsoftでサインイン",
+ "ERROR_MESSAGE": "Microsoftへの接続中にエラーが発生しました。もう一度お試しください"
+ },
+ "GOOGLE": {
+ "TITLE": "Googleメール",
+ "DESCRIPTION": "開始するには、「Googleでサインイン」ボタンをクリックしてください。メールサインインページにリダイレクトされます。要求された権限を承認すると、受信トレイ作成ステップに戻ります。",
+ "SIGN_IN": "Googleでサインイン",
+ "EMAIL_PLACEHOLDER": "メールアドレスを入力してください",
+ "ERROR_MESSAGE": "Googleへの接続中にエラーが発生しました。もう一度お試しください"
}
},
"DETAILS": {
- "LOADING_FB": "Facebook を認証中...",
+ "LOADING_FB": "Facebookを認証中...",
+ "ERROR_FB_LOADING": "Facebook SDKの読み込みエラー。広告ブロッカーを無効にして、別のブラウザから再試行してください。",
"ERROR_FB_AUTH": "問題が発生しました。ページを更新してください...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "ERROR_FB_UNAUTHORIZED": "この操作を実行する権限がありません。",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Facebookページへの完全なアクセス権があることを確認してください。Facebookの役割についてはこちらを参照してください。",
"CREATING_CHANNEL": "受信トレイを作成しています...",
"TITLE": "受信トレイの詳細の設定",
"DESC": ""
@@ -383,10 +554,13 @@
},
"FINISH": {
"TITLE": "受信トレイの準備ができました!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "ウェブサイトチャンネルの作成が正常に完了しました。以下のコードをコピーしてウェブサイトに貼り付けてください。 次回、お客様がライブチャットを使用すると、会話は自動的に受信トレイに表示されます。"
+ "MESSAGE": "新しいチャンネルを通じて顧客と交流できます。サポートを楽しんでください",
+ "BUTTON_TEXT": "受信トレイに移動",
+ "MORE_SETTINGS": "その他の設定",
+ "WEBSITE_SUCCESS": "ウェブサイトチャンネルの作成が正常に完了しました。以下のコードをコピーしてウェブサイトに貼り付けてください。次回、お客様がライブチャットを使用すると、会話は自動的に受信トレイに表示されます。",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "再認証",
"VIEW": "表示",
@@ -394,7 +568,7 @@
"API": {
"SUCCESS_MESSAGE": "受信トレイの設定が正常に更新されました",
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "自動割り当ての更新に成功しました",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "ERROR_MESSAGE": "受信トレイの設定を更新できませんでした。後でもう一度お試しください。"
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "有効です",
@@ -405,22 +579,22 @@
"DISABLED": "無効です"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "送信者名",
+ "SUB_TEXT": "担当者からのメールを受け取ったときに顧客に表示される名前を選択してください。",
+ "FOR_EG": "例:",
"FRIENDLY": {
"TITLE": "Friendly",
- "FROM": "差出人:",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "FROM": "from",
+ "SUBTITLE": "返信を送信した担当者の名前を送信者名に追加して、フレンドリーにします。"
},
"PROFESSIONAL": {
"TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "SUBTITLE": "メールヘッダーの送信者名に設定されたビジネス名のみを使用します。"
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "ビジネス名を設定する",
+ "PLACEHOLDER": "ビジネス名を入力してください",
+ "SAVE_BUTTON_TEXT": "保存"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -432,102 +606,292 @@
"DISABLED": "無効です"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "有効です",
- "DISABLED": "無効です"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "有効にする"
}
},
"DELETE": {
"BUTTON_TEXT": "削除",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "アバターを削除",
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "削除してもよろしいですか? ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "削除する ",
- "NO": "いいえ、保存しておきます "
+ "MESSAGE": "削除してもよろしいですか?",
+ "PLACE_HOLDER": "{inboxName}と入力して確認してください",
+ "YES": "削除する",
+ "NO": "いいえ、保存しておきます"
},
"API": {
"SUCCESS_MESSAGE": "受信トレイの削除に成功しました",
- "ERROR_MESSAGE": "受信箱を削除できませんでした。後でもう一度お試しください。",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "ERROR_MESSAGE": "受信トレイを削除できませんでした。後でもう一度お試しください。",
+ "AVATAR_SUCCESS_MESSAGE": "受信トレイのアバターを正常に削除しました",
+ "AVATAR_ERROR_MESSAGE": "受信トレイのアバターを削除できませんでした。後でもう一度お試しください。"
}
},
"TABS": {
"SETTINGS": "設定",
"COLLABORATORS": "共同編集者",
"CONFIGURATION": "設定",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "CAMPAIGN": "キャンペーン",
+ "PRE_CHAT_FORM": "プレチャットフォーム",
+ "BUSINESS_HOURS": "営業時間",
+ "WIDGET_BUILDER": "ウィジェットビルダー",
+ "BOT_CONFIGURATION": "ボット設定",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "顧客満足度",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "承認済み",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "設定",
"FEATURES": {
"LABEL": "機能",
"DISPLAY_FILE_PICKER": "ウィジェットにファイルピッカーを表示する",
"DISPLAY_EMOJI_PICKER": "ウィジェットに絵文字ピッカーを表示する",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "ALLOW_END_CONVERSATION": "ウィジェットからユーザーが会話を終了できるようにする",
+ "USE_INBOX_AVATAR_FOR_BOT": "ボットに受信トレイの名前とアバターを使用する"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messengerスクリプト",
"MESSENGER_SUB_HEAD": "このボタンをbodyタグの中に配置してください。",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "担当者",
"INBOX_AGENTS_SUB_TEXT": "この受信トレイから担当者を追加または削除する",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
+ "AGENT_ASSIGNMENT": "会話の割り当て",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "会話の割り当て設定を更新する",
"UPDATE": "更新",
- "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
+ "ENABLE_EMAIL_COLLECT_BOX": "メール収集ボックスを有効にする",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "新しい会話でメール収集ボックスを有効または無効にする",
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "SENDER_NAME_SECTION": "メールに担当者名を表示する",
+ "SENDER_NAME_SECTION_TEXT": "担当者名をメールに表示するかどうかを設定します。無効にするとビジネス名が表示されます。",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "メールによる会話の継続を有効にする",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "連絡先のメールアドレスが利用可能な場合、会話はメールで継続されます。",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "受信トレイの設定",
"INBOX_UPDATE_SUB_TEXT": "受信トレイの設定を更新する",
"AUTO_ASSIGNMENT_SUB_TEXT": "この受信トレイに追加された担当者への新しい会話の自動割り当てを有効または無効にします。",
- "HMAC_VERIFICATION": "User Identity Validation",
- "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
+ "HMAC_VERIFICATION": "ユーザーIDの検証",
+ "HMAC_DESCRIPTION": "ユーザーのIDを検証するために、各ユーザーに対して`identifier_hash`を渡すことができます。ここに表示されるキーを使用して`identifier`のHMAC sha256ハッシュを生成できます。",
+ "HMAC_LINK_TO_DOCS": "詳細はこちらをご覧ください。",
+ "HMAC_MANDATORY_VERIFICATION": "ユーザーID検証の強制",
+ "HMAC_MANDATORY_DESCRIPTION": "有効にすると、`identifier_hash`が欠落しているリクエストは拒否されます。",
+ "INBOX_IDENTIFIER": "受信トレイ識別子",
+ "INBOX_IDENTIFIER_SUB_TEXT": "ここに表示される`inbox_identifier`トークンを使用してAPIクライアントを認証します。",
+ "FORWARD_EMAIL_TITLE": "メール転送",
"FORWARD_EMAIL_SUB_TEXT": "以下のメールアドレスにメールを転送します。",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "会話解決後のメッセージを許可する",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "会話が解決された後でもエンドユーザーがメッセージを送信できるようにします。",
+ "WHATSAPP_SECTION_SUBHEADER": "このAPIキーはWhatsApp APIとの統合に使用されます。",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp APIとの統合に使用する新しいAPIキーを入力してください。",
+ "WHATSAPP_SECTION_TITLE": "APIキー",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "APIキーを更新する",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "ここに新しいAPIキーを入力してください",
"WHATSAPP_SECTION_UPDATE_BUTTON": "更新",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "接続",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook検証トークン",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "このトークンはWebhookエンドポイントの信頼性を検証するために使用されます。",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "プレチャットフォーム設定を更新する"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "ヘルプセンター",
+ "PLACEHOLDER": "ヘルプセンターを選択",
+ "SELECT_PLACEHOLDER": "ヘルプセンターを選択",
+ "NONE": "なし",
+ "REMOVE": "ヘルプセンターを削除",
+ "SUB_TEXT": "受信トレイにヘルプセンターを添付する"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "自動割り当ての制限",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "0より大きい値を入力してください",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "この受信トレイから担当者に自動割り当てできる会話の最大数を制限します"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "会話の割り当て",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "有効",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "キャンセル",
+ "CONFIRM_DELETE": "削除",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
},
"FACEBOOK_REAUTHORIZE": {
"TITLE": "再認証",
@@ -536,67 +900,139 @@
"MESSAGE_ERROR": "エラーが発生しました。もう一度お試しください。"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "プレチャットフォームを使用すると、ユーザーが会話を開始する前に情報を収集できます。",
+ "SET_FIELDS": "プレチャットフォームのフィールド",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "フィールド",
+ "LABEL": "ラベル",
+ "PLACE_HOLDER": "プレースホルダー",
+ "KEY": "キー",
+ "TYPE": "タイプ",
+ "REQUIRED": "必須"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "プレチャットフォームを有効にする",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "はい",
+ "DISABLED": "いいえ"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "プレチャットメッセージ",
+ "PLACEHOLDER": "このメッセージはフォームと一緒にユーザーに表示されます"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "言語",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "戻る"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "営業時間を設定する",
+ "SUBTITLE": "ライブチャットウィジェットでの利用可能時間を設定します",
+ "WEEKLY_TITLE": "週間営業時間を設定する",
+ "TIMEZONE_LABEL": "タイムゾーンを選択",
+ "UPDATE": "営業時間設定を更新",
+ "TOGGLE_AVAILABILITY": "この受信トレイの営業時間を有効にする",
+ "UNAVAILABLE_MESSAGE_LABEL": "訪問者への不在メッセージ",
+ "TOGGLE_HELP": "営業時間を有効にすると、すべての担当者がオフラインでもライブチャットウィジェットに利用可能時間が表示されます。利用可能時間外には、訪問者にメッセージとプレチャットフォームで警告できます。",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "日",
+ "AVAILABILITY": "利用可能期間",
+ "HOURS": "Hours",
+ "ENABLE": "この日の利用可能時間を有効にする",
+ "UNAVAILABLE": "不在",
+ "VALIDATION_ERROR": "開始時間は終了時間より前でなければなりません。",
+ "CHOOSE": "選択"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "終日"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "IMAPの詳細を設定してください",
+ "NOTE_TEXT": "SMTPを有効にするには、IMAPを設定してください。",
+ "UPDATE": "IMAP設定を更新",
+ "TOGGLE_AVAILABILITY": "この受信トレイのIMAP設定を有効にする",
+ "TOGGLE_HELP": "IMAPを有効にすると、ユーザーがメールを受信できるようになります",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP設定が正常に更新されました",
+ "ERROR_MESSAGE": "IMAP設定を更新できませんでした"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "アドレス",
+ "PLACE_HOLDER": "アドレス (例: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "ポート",
+ "PLACE_HOLDER": "ポート"
},
"LOGIN": {
"LABEL": "ログイン",
@@ -606,29 +1042,30 @@
"LABEL": "パスワード",
"PLACE_HOLDER": "パスワード"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSLを有効にする",
+ "AUTH_MECHANISM": "認証"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Microsoftアカウントを再認証してください"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "SMTPの詳細を設定してください",
+ "UPDATE": "SMTP設定を更新",
+ "TOGGLE_AVAILABILITY": "この受信トレイのSMTP設定を有効にする",
+ "TOGGLE_HELP": "SMTPを有効にすると、ユーザーがメールを送信できるようになります",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP設定が正常に更新されました",
+ "ERROR_MESSAGE": "SMTP設定を更新できませんでした"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "アドレス",
+ "PLACE_HOLDER": "アドレス (例: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "ポート",
+ "PLACE_HOLDER": "ポート"
},
"LOGIN": {
"LABEL": "ログイン",
@@ -639,14 +1076,14 @@
"PLACE_HOLDER": "パスワード"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "ドメイン",
+ "PLACE_HOLDER": "ドメイン"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "暗号化",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL検証モード",
+ "AUTH_MECHANISM": "認証"
},
"NOTE": "Note: ",
"WIDGET_BUILDER": {
@@ -655,7 +1092,7 @@
"LABEL": "Website Avatar",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "SUCCESS_MESSAGE": "アバターを正常に削除しました",
"ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
}
}
@@ -663,53 +1100,54 @@
"WEBSITE_NAME": {
"LABEL": "ウェブサイト名",
"PLACE_HOLDER": "ウェブサイト名を入力してください(例:Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "ERROR": "有効なウェブサイト名を入力してください"
},
"WELCOME_HEADING": {
"LABEL": "冒頭の見出し",
- "PLACE_HOLDER": "Hi there!"
+ "PLACE_HOLDER": "こんにちは!"
},
"WELCOME_TAGLINE": {
"LABEL": "冒頭のタグライン",
"PLACE_HOLDER": "簡単に連絡が取れる状態です。なんでも聞いてください。フィードバックの共有も歓迎です。"
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "返信時間",
+ "IN_A_FEW_MINUTES": "数分以内",
+ "IN_A_FEW_HOURS": "数時間以内",
+ "IN_A_DAY": "1日以内"
},
"WIDGET_COLOR_LABEL": "ウィジェットの色",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "タイプ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "チャットをする",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "チャットをする"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "ウィジェット設定の変更",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "ウィジェット設定の更新に成功しました",
+ "ERROR_MESSAGE": "ウィジェット設定の更新に失敗しました"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
+ "PREVIEW": "プレビュー",
"SCRIPT": "Script"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "左",
+ "RIGHT": "右"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "標準",
+ "EXPANDED_BUBBLE": "拡張バブル"
}
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "通常数分以内にご返信します。",
@@ -722,18 +1160,43 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
+ "ONLINE": "オンラインです",
"OFFLINE": "留守中"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "こんにちは",
+ "AGENT_MESSAGE": "こんにちは"
},
- "BRANDING_TEXT": "Powered by Chatwoot",
+ "BRANDING_TEXT": "提供:Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "ウェブサイト",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Eメール",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "APIチャンネル",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/index.js b/app/javascript/dashboard/i18n/locale/ja/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ja/index.js
+++ b/app/javascript/dashboard/i18n/locale/ja/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
index bb280e287..8f42ec147 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrationApps.json
@@ -1,36 +1,40 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
- "HEADER": "Applications",
+ "FETCHING": "連携情報を取得中",
+ "NO_HOOK_CONFIGURED": "このアカウントには{integrationId}の連携が設定されていません。",
+ "HEADER": "アプリケーション",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "検索...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
- "ENABLED": "有効です",
- "DISABLED": "無効です"
+ "ENABLED": "有効",
+ "DISABLED": "無効"
},
"CONFIGURE": "設定",
- "ADD_BUTTON": "Add a new hook",
+ "ADD_BUTTON": "新しい連携を追加",
"DELETE": {
"TITLE": {
- "INBOX": "Confirm deletion",
- "ACCOUNT": "Disconnect"
+ "INBOX": "削除の確認",
+ "ACCOUNT": "接続解除"
},
"MESSAGE": {
- "INBOX": "Are you sure to delete?",
- "ACCOUNT": "Are you sure to disconnect?"
+ "INBOX": "この設定を本当に削除しますか?",
+ "ACCOUNT": "本当に接続を解除しますか?"
},
"CONFIRM_BUTTON_TEXT": {
"INBOX": "削除する",
- "ACCOUNT": "Yes, Disconnect"
+ "ACCOUNT": "はい、接続解除します"
},
"CANCEL_BUTTON_TEXT": "キャンセル",
"API": {
- "SUCCESS_MESSAGE": "Hook deleted successfully",
+ "SUCCESS_MESSAGE": "連携設定が正常に削除されました",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
"LIST": {
- "FETCHING": "Fetching integration hooks",
- "INBOX": "Inbox",
+ "FETCHING": "連携設定を取得中",
+ "INBOX": "受信トレイ",
+ "ACTIONS": "操作",
"DELETE": {
"BUTTON_TEXT": "削除"
}
@@ -38,14 +42,15 @@
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox"
+ "LABEL": "受信トレイを選択",
+ "PLACEHOLDER": "受信トレイを選択"
},
"SUBMIT": "作成",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "キャンセル"
},
"API": {
- "SUCCESS_MESSAGE": "Integration hook added successfully",
+ "SUCCESS_MESSAGE": "連携設定が正常に追加されました",
"ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
}
},
@@ -53,10 +58,10 @@
"BUTTON_TEXT": "接続"
},
"DISCONNECT": {
- "BUTTON_TEXT": "Disconnect"
+ "BUTTON_TEXT": "接続解除"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/integrations.json b/app/javascript/dashboard/i18n/locale/ja/integrations.json
index edcc20abb..27a67a84b 100644
--- a/app/javascript/dashboard/i18n/locale/ja/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ja/integrations.json
@@ -1,30 +1,76 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "キャンセル",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "連携",
+ "DESCRIPTION": "Chatwootは、チームの効率を向上させるために複数のツールやサービスと連携します。以下のリストを探索して、お気に入りのアプリを設定してください。",
+ "LEARN_MORE": "連携について詳しく知る",
+ "LOADING": "連携を取得中",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captainはあなたのアカウントで有効になっていません。",
+ "CLICK_HERE_TO_CONFIGURE": "設定するにはここをクリック",
+ "LOADING_CONSOLE": "Captainコンソールを読み込み中...",
+ "FAILED_TO_LOAD_CONSOLE": "Captainコンソールの読み込みに失敗しました。リフレッシュしてもう一度お試しください。"
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "購読イベント",
+ "LEARN_MORE": "Webhookについて詳しく知る",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "キャンセル",
"DESC": "Webhookイベントは、Chatwootアカウントで何が起こっているかについてのリアルタイムの情報を提供します。コールバックを設定するには有効なURLを入力してください。",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "イベント",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "会話が作成されました",
+ "CONVERSATION_STATUS_CHANGED": "会話のステータスが変更されました",
+ "CONVERSATION_UPDATED": "会話が更新されました",
+ "MESSAGE_CREATED": "メッセージが作成されました",
+ "MESSAGE_UPDATED": "メッセージが更新されました",
+ "WEBWIDGET_TRIGGERED": "ユーザーによってライブチャットウィジェットが開かれました",
+ "CONTACT_CREATED": "連絡先が作成されました",
+ "CONTACT_UPDATED": "連絡先が更新されました",
+ "CONVERSATION_TYPING_ON": "Conversation Typing On",
+ "CONVERSATION_TYPING_OFF": "Conversation Typing Off",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "例: https://example/api/webhook",
+ "PLACEHOLDER": "例: {webhookExampleURL}",
"ERROR": "有効な URL を入力してください"
},
- "EDIT_SUBMIT": "Update webhook",
+ "EDIT_SUBMIT": "Webhookを更新",
"ADD_SUBMIT": "Webhookを作成"
},
"TITLE": "Webhook",
@@ -37,123 +83,146 @@
"LIST": {
"404": "このアカウントに紐付けされたWebフックはありません。",
"TITLE": "Webhookの管理",
- "TABLE_HEADER": [
- "Webhookエンドポイント",
- "操作"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhookエンドポイント",
+ "ACTIONS": "操作"
+ }
},
"EDIT": {
"BUTTON_TEXT": "編集",
- "TITLE": "Edit webhook",
+ "TITLE": "Webhookを編集",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "SUCCESS_MESSAGE": "Webhookの設定が正常に更新されました",
+ "ERROR_MESSAGE": "Wootサーバーに接続できませんでした。後でもう一度お試しください。"
}
},
"ADD": {
"CANCEL": "キャンセル",
"TITLE": "新しいWebhookを追加",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "SUCCESS_MESSAGE": "Webhookの設定が正常に追加されました",
+ "ERROR_MESSAGE": "Wootサーバーに接続できませんでした。後でもう一度お試しください。"
}
},
"DELETE": {
"BUTTON_TEXT": "削除",
"API": {
"SUCCESS_MESSAGE": "Webhookの削除に成功しました",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "ERROR_MESSAGE": "Wootサーバーに接続できませんでした。後でもう一度お試しください。"
},
"CONFIRM": {
"TITLE": "削除の確認",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Webhookを削除してもよろしいですか? ({webhookURL})",
"YES": "削除する ",
"NO": "いいえ、保存しておきます"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "削除",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "連携の削除",
+ "MESSAGE": "連携を削除してもよろしいですか?削除すると、Slackワークスペースでの会話へのアクセスが失われます。"
},
"HELP_TEXT": {
- "TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "TITLE": "Slack連携の使用方法",
+ "BODY": "この連携を使用すると、すべての受信会話がSlackワークスペースの***{selectedChannelName}***チャンネルに同期されます。チャンネル内で顧客の会話を管理し、メッセージを見逃すことはありません。\n\n連携の主な機能は次のとおりです:\n\n**Slackから会話に返信:** ***{selectedChannelName}*** Slackチャンネルで会話に返信するには、メッセージを入力してスレッドとして送信するだけです。これにより、Chatwootを通じて顧客に返信が作成されます。とても簡単です!\n\n**プライベートノートの作成:** 返信ではなくプライベートノートを作成したい場合は、メッセージの先頭に***`note:`***と入力してください。これにより、メッセージがプライベートに保たれ、顧客には表示されません。\n\n**担当者プロファイルの関連付け:** Slackで返信した人が同じメールアドレスでChatwootに担当者プロファイルを持っている場合、返信は自動的にその担当者プロファイルに関連付けられます。これにより、誰がいつ何を言ったかを簡単に追跡できます。一方、返信者に関連付けられた担当者プロファイルがない場合、返信は顧客に対してボットプロファイルからのものとして表示されます。",
+ "SELECTED": "選択済み"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "チャンネルを選択",
"UPDATE": "更新",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "チャンネルを接続",
+ "DESCRIPTION": "SlackワークスペースはChatwootとリンクされていますが、連携は現在非アクティブです。連携を有効にしてChatwootにチャンネルを接続するには、以下のボタンをクリックしてください。\n\n**注意:** プライベートチャンネルを接続しようとしている場合は、この手順を進める前にChatwootアプリをSlackチャンネルに追加してください。",
+ "ATTENTION_REQUIRED": "注意が必要",
+ "EXPIRED": "Slack連携の有効期限が切れました。Slackでメッセージを受信し続けるには、連携を削除してワークスペースを再接続してください。"
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "連携の更新中にエラーが発生しました。もう一度お試しください",
+ "UPDATE_SUCCESS": "チャンネルが正常に接続されました",
+ "FAILED_TO_FETCH_CHANNELS": "Slackからチャンネルを取得中にエラーが発生しました。もう一度お試しください"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "ここをクリックして参加",
+ "LEAVE_THE_ROOM": "ルームを退出",
+ "START_VIDEO_CALL_HELP_TEXT": "顧客と新しいビデオ通話を開始",
+ "JOIN_ERROR": "通話に参加中にエラーが発生しました。もう一度お試しください",
+ "CREATE_ERROR": "ミーティングリンクの作成中にエラーが発生しました。もう一度お試しください"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AIアシスト",
+ "WITH_AI": "AIで{option}",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "返信の提案",
+ "SUMMARIZE": "要約",
+ "REPHRASE": "文章の改善",
+ "FIX_SPELLING_GRAMMAR": "スペルと文法の修正",
+ "SHORTEN": "短縮",
+ "EXPAND": "拡張",
+ "MAKE_FRIENDLY": "メッセージのトーンをフレンドリーに変更",
+ "MAKE_FORMAL": "フォーマルトーンを使用",
+ "SIMPLIFY": "簡素化",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "プロフェッショナル",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "フレンドリー"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "下書き内容",
+ "GENERATED_TITLE": "生成された内容",
+ "AI_WRITING": "AIが執筆中",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "この提案を使用",
"CANCEL": "キャンセル"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "OpenAIと統合",
+ "DESC": "OpenAIのGPTモデルを使用して、ダッシュボードに高度なAI機能を導入します。始めるには、OpenAIアカウントのAPIキーを入力してください。",
+ "KEY_PLACEHOLDER": "OpenAI APIキーを入力",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "サポートが必要ですか?",
+ "DISMISS": "閉じる",
+ "FINISH": "設定を完了"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "OpenAIの統合は後でいつでも設定できます。",
+ "SUCCESS_MESSAGE": "OpenAIの統合が正常に設定されました"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "AIで改善",
+ "SUMMARY_TITLE": "AIによる要約",
+ "REPLY_TITLE": "AIによる返信提案",
+ "SUBTITLE": "現在の下書きを基に、AIが改善された返信を生成します。",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "トーン",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "プロフェッショナル",
+ "FRIENDLY": "フレンドリー"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "生成",
+ "GENERATING": "生成中...",
"CANCEL": "キャンセル"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "コンテンツの処理中にエラーが発生しました。もう一度お試しください"
},
"DELETE": {
"BUTTON_TEXT": "削除",
@@ -165,49 +234,870 @@
"BUTTON_TEXT": "接続"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "ダッシュボードアプリ",
+ "HEADER_BTN_TXT": "新しいダッシュボードアプリを追加",
+ "SIDEBAR_TXT": "ダッシュボードアプリ
ダッシュボードアプリを使用すると、組織はChatwootダッシュボード内にアプリケーションを埋め込んで、カスタマーサポート担当者にコンテキストを提供できます。この機能により、アプリケーションを独立して作成し、ユーザー情報、注文履歴、または以前の支払い履歴を提供するためにダッシュボード内に埋め込むことができます。
Chatwootのダッシュボードを使用してアプリケーションを埋め込むと、アプリケーションはウィンドウイベントとして会話と連絡先のコンテキストを取得します。ページ上でメッセージイベントのリスナーを実装してコンテキストを受信します。
新しいダッシュボードアプリを追加するには、「新しいダッシュボードアプリを追加」ボタンをクリックしてください。
",
+ "DESCRIPTION": "ダッシュボードアプリを使用すると、組織はダッシュボード内にアプリケーションを埋め込んで、カスタマーサポート担当者にコンテキストを提供できます。この機能により、アプリケーションを独立して作成し、ユーザー情報、注文履歴、または以前の支払い履歴を提供するために埋め込むことができます。",
+ "LEARN_MORE": "ダッシュボードアプリについて詳しく知る",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "名前",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "このアカウントにはまだダッシュボードアプリが設定されていません",
+ "LOADING": "ダッシュボードアプリを取得中...",
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "ENDPOINT": "エンドポイント",
+ "ACTIONS": "操作"
+ },
+ "EDIT_TOOLTIP": "アプリを編集",
+ "DELETE_TOOLTIP": "アプリを削除"
},
"FORM": {
"TITLE_LABEL": "名前",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_PLACEHOLDER": "ダッシュボードアプリの名前を入力",
+ "TITLE_ERROR": "ダッシュボードアプリの名前が必要です",
+ "URL_LABEL": "エンドポイント",
+ "URL_PLACEHOLDER": "アプリがホストされているエンドポイントURLを入力",
+ "URL_ERROR": "有効なURLが必要です"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "新しいダッシュボードアプリを追加",
"FORM_SUBMIT": "送信",
"FORM_CANCEL": "キャンセル",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "ダッシュボードアプリが正常に設定されました",
+ "API_ERROR": "アプリを作成できませんでした。後でもう一度お試しください"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
+ "HEADER": "ダッシュボードアプリを編集",
"FORM_SUBMIT": "更新",
"FORM_CANCEL": "キャンセル",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "ダッシュボードアプリが正常に更新されました",
+ "API_ERROR": "アプリを更新できませんでした。後でもう一度お試しください"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "はい、削除します",
+ "CONFIRM_NO": "いいえ、保持します",
+ "TITLE": "削除の確認",
+ "MESSAGE": "アプリを削除してもよろしいですか - {appName}?",
+ "API_SUCCESS": "ダッシュボードアプリが正常に削除されました",
+ "API_ERROR": "アプリを削除できませんでした。後でもう一度お試しください"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear Issueを作成/リンク",
+ "LOADING": "Linearの課題を取得中...",
+ "LOADING_ERROR": "Linearの課題を取得中にエラーが発生しました。もう一度お試しください",
+ "CREATE": "作成",
+ "LINK": {
+ "SEARCH": "課題を検索",
+ "SELECT": "課題を選択",
+ "TITLE": "リンク",
+ "EMPTY_LIST": "Linearの課題が見つかりません",
+ "LOADING": "読み込み中",
+ "ERROR": "Linearの課題を取得中にエラーが発生しました。もう一度お試しください",
+ "LINK_SUCCESS": "課題が正常にリンクされました",
+ "LINK_ERROR": "課題のリンク中にエラーが発生しました。もう一度お試しください",
+ "LINK_TITLE": "会話 (#{conversationId}) と {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linearの課題を作成/リンク",
+ "DESCRIPTION": "会話からLinearの課題を作成するか、既存の課題をリンクしてシームレスに追跡します。",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "タイトル",
+ "PLACEHOLDER": "タイトルを入力",
+ "REQUIRED_ERROR": "タイトルは必須です"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "説明を入力"
+ },
+ "TEAM": {
+ "LABEL": "チーム",
+ "PLACEHOLDER": "チームを選択",
+ "SEARCH": "チームを検索",
+ "REQUIRED_ERROR": "チームは必須です"
+ },
+ "ASSIGNEE": {
+ "LABEL": "担当者",
+ "PLACEHOLDER": "担当者を選択",
+ "SEARCH": "担当者を検索"
+ },
+ "PRIORITY": {
+ "LABEL": "優先度",
+ "PLACEHOLDER": "優先度を選択",
+ "SEARCH": "優先度を検索"
+ },
+ "LABEL": {
+ "LABEL": "ラベル",
+ "PLACEHOLDER": "ラベルを選択",
+ "SEARCH": "ラベルを検索"
+ },
+ "STATUS": {
+ "LABEL": "状況",
+ "PLACEHOLDER": "状況を選択",
+ "SEARCH": "状況を検索"
+ },
+ "PROJECT": {
+ "LABEL": "プロジェクト",
+ "PLACEHOLDER": "プロジェクトを選択",
+ "SEARCH": "プロジェクトを検索"
+ }
+ },
+ "CREATE": "作成",
+ "CANCEL": "キャンセル",
+ "CREATE_SUCCESS": "課題が正常に作成されました",
+ "CREATE_ERROR": "課題の作成中にエラーが発生しました。もう一度お試しください",
+ "LOADING_TEAM_ERROR": "チームの取得中にエラーが発生しました。もう一度お試しください",
+ "LOADING_TEAM_ENTITIES_ERROR": "チームエンティティの取得中にエラーが発生しました。もう一度お試しください"
+ },
+ "ISSUE": {
+ "STATUS": "状況",
+ "PRIORITY": "優先度",
+ "ASSIGNEE": "担当者",
+ "LABELS": "ラベル",
+ "CREATED_AT": "{createdAt} に作成"
+ },
+ "UNLINK": {
+ "TITLE": "リンク解除",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "はい、削除します",
+ "CANCEL": "キャンセル"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "キャプテン",
+ "HEADER_KNOW_MORE": "詳細を見る",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "アシスタント",
+ "SWITCH_ASSISTANT": "アシスタントを切り替える",
+ "NEW_ASSISTANT": "アシスタントを作成",
+ "EMPTY_LIST": "アシスタントが見つかりません。始めるにはアシスタントを作成してください。"
+ },
+ "COPILOT": {
+ "TITLE": "コパイロット",
+ "TRY_THESE_PROMPTS": "これらのプロンプトを試してください",
+ "PANEL_TITLE": "Copilotの使い始め",
+ "KICK_OFF_MESSAGE": "簡単な要約が欲しい、過去の会話を確認したい、より良い返信を作成したい?Copilotが処理をスピードアップします。",
+ "SEND_MESSAGE": "メッセージを送信...",
+ "EMPTY_MESSAGE": "回答の生成中にエラーが発生しました。もう一度お試しください。",
+ "LOADER": "Captainが考え中",
+ "YOU": "あなた",
+ "USE": "これを使用",
+ "RESET": "リセット",
+ "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": "Type your message...",
+ "HEADER": "プレイグラウンド",
+ "DESCRIPTION": "このプレイグラウンドを使ってアシスタントへメッセージを送り、正確かつ迅速に、期待したトーンで応答するかを確認してください。",
+ "CREDIT_NOTE": "ここで送信したメッセージはCaptainのクレジットにカウントされます。"
+ },
+ "PAYWALL": {
+ "TITLE": "アップグレードしてCaptain AIを利用する",
+ "AVAILABLE_ON": "Captainは無料プランでは利用できません。",
+ "UPGRADE_PROMPT": "アシスタント、Copilotなどにアクセスするには、プランをアップグレードしてください。",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AIはEnterpriseプランでのみ利用可能です。",
+ "UPGRADE_PROMPT": "アシスタント、Copilotなどにアクセスするには、プランをアップグレードしてください。",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ },
+ "BANNER": {
+ "RESPONSES": "利用制限の 80% を超過しました。引き続き Captain AI を利用するには、アップグレードしてください。",
+ "DOCUMENTS": "ドキュメントの上限に達しました。Captain AI を引き続き利用するには、アップグレードしてください。"
+ },
+ "FORM": {
+ "CANCEL": "キャンセル",
+ "CREATE": "作成",
+ "EDIT": "更新"
+ },
+ "ASSISTANTS": {
+ "HEADER": "アシスタント",
+ "NO_ASSISTANTS_AVAILABLE": "There are no assistants available in your account.",
+ "ADD_NEW": "新しいアシスタントを作成",
+ "DELETE": {
+ "TITLE": "アシスタントを削除してもよろしいですか?",
+ "DESCRIPTION": "この操作は永久的です。アシスタントを削除すると、すべての接続された受信トレイから削除され、生成されたすべての知識が永久に消去されます。",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "アシスタントが正常に削除されました",
+ "ERROR_MESSAGE": "アシスタントの削除中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM_DESCRIPTION": "以下の詳細を入力して、アシスタントの名前、その目的を説明し、サポートする製品を指定してください。",
+ "CREATE": {
+ "TITLE": "アシスタントを作成",
+ "SUCCESS_MESSAGE": "アシスタントが正常に作成されました",
+ "ERROR_MESSAGE": "アシスタントの作成中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM": {
+ "UPDATE": "更新",
+ "SECTIONS": {
+ "BASIC_INFO": "Basic Information",
+ "SYSTEM_MESSAGES": "System Messages",
+ "INSTRUCTIONS": "Instructions",
+ "FEATURES": "機能",
+ "TOOLS": "Tools "
+ },
+ "NAME": {
+ "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": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "製品名",
+ "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を生成",
+ "ALLOW_MEMORIES": "顧客とのやり取りから重要な詳細を記憶としてキャプチャ",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "アシスタントを更新",
+ "SUCCESS_MESSAGE": "アシスタントが正常に更新されました",
+ "ERROR_MESSAGE": "アシスタントの更新中にエラーが発生しました。もう一度お試しください。",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "設定",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "アシスタントを削除",
+ "DESCRIPTION": "この操作は永久的です。アシスタントを削除すると、すべての接続された受信トレイから削除され、生成されたすべての知識が永久に消去されます。",
+ "BUTTON_TEXT": "{assistantName}を削除"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "アシスタントを編集",
+ "DELETE_ASSISTANT": "アシスタントを削除",
+ "VIEW_CONNECTED_INBOXES": "接続された受信トレイを表示"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "利用可能なアシスタントがありません",
+ "SUBTITLE": "アシスタントを作成して、お客様に迅速かつ正確な回答を提供します。アシスタントは、ヘルプ記事や過去の会話から学習します。",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "削除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "作成",
+ "CANCEL": "キャンセル",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "検索..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "削除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "作成",
+ "CANCEL": "キャンセル",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "検索..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "削除"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "タイトル",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "作成",
+ "CANCEL": "キャンセル"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "キャンセル",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "検索..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "ドキュメント",
+ "ADD_NEW": "新しいドキュメントを作成",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "削除",
+ "BULK_SYNC_BUTTON": "再読み込み",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "検索..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "ページが見つかりません",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "関連するFAQ",
+ "DESCRIPTION": "これらのFAQはドキュメントから直接生成されます。"
+ },
+ "FORM_DESCRIPTION": "ドキュメントのURLを入力して知識ソースとして追加し、それに関連付けるアシスタントを選択してください。",
+ "CREATE": {
+ "TITLE": "ドキュメントを追加",
+ "SUCCESS_MESSAGE": "ドキュメントが正常に作成されました",
+ "ERROR_MESSAGE": "ドキュメントの作成中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "ドキュメントのURLを入力",
+ "ERROR": "有効なURLを入力してください"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "ドキュメントを削除してもよろしいですか?",
+ "DESCRIPTION": "この操作は永久的です。ドキュメントを削除すると、生成されたすべての知識が永久に消去されます。",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "ドキュメントが正常に削除されました",
+ "ERROR_MESSAGE": "ドキュメントの削除中にエラーが発生しました。もう一度お試しください。"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "関連する応答を表示",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "ドキュメントを削除"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "利用可能なドキュメントがありません",
+ "SUBTITLE": "ドキュメントはアシスタントがFAQを生成するために使用されます。ドキュメントをインポートしてアシスタントにコンテキストを提供できます。",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "請求情報を開く",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "なし",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "APIキー"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "パスワード",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "タイプ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "数値",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "必須"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "新しいFAQを作成",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "会話 #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "削除",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "FAQを削除してもよろしいですか?",
+ "DESCRIPTION": "",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "FAQが正常に削除されました",
+ "ERROR_MESSAGE": "FAQの削除中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FILTER": {
+ "ASSISTANT": "アシスタント: {selected}",
+ "STATUS": "状況: {selected}",
+ "ALL_ASSISTANTS": "すべて"
+ },
+ "STATUS": {
+ "TITLE": "状況",
+ "PENDING": "保留中",
+ "APPROVED": "承認済み",
+ "ALL": "すべて"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "質問とその対応する回答をナレッジベースに追加し、それに関連付けるアシスタントを選択してください。",
+ "CREATE": {
+ "TITLE": "FAQを追加",
+ "SUCCESS_MESSAGE": "応答が正常に追加されました。",
+ "ERROR_MESSAGE": "応答の追加中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "質問",
+ "PLACEHOLDER": "ここに質問を入力",
+ "ERROR": "有効な質問を入力してください。"
+ },
+ "ANSWER": {
+ "LABEL": "回答",
+ "PLACEHOLDER": "ここに回答を入力",
+ "ERROR": "有効な回答を入力してください。"
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQを更新",
+ "SUCCESS_MESSAGE": "FAQが正常に更新されました",
+ "ERROR_MESSAGE": "FAQの更新中にエラーが発生しました。もう一度お試しください",
+ "APPROVE_SUCCESS_MESSAGE": "FAQが承認済みとしてマークされました"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "編集",
+ "DELETE_RESPONSE": "削除"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "FAQが見つかりません",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQは、アシスタントがお客様からの質問に迅速かつ正確に回答するのに役立ちます。コンテンツから自動的に生成することも、手動で追加することもできます。",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "接続された受信トレイ",
+ "ADD_NEW": "新しい受信トレイを接続",
+ "OPTIONS": {
+ "DISCONNECT": "切断"
+ },
+ "DELETE": {
+ "TITLE": "受信トレイを切断してもよろしいですか?",
+ "DESCRIPTION": "",
+ "CONFIRM": "はい、削除します",
+ "SUCCESS_MESSAGE": "受信トレイが正常に切断されました。",
+ "ERROR_MESSAGE": "受信トレイの切断中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM_DESCRIPTION": "アシスタントと接続する受信トレイを選択してください。",
+ "CREATE": {
+ "TITLE": "受信トレイを接続",
+ "SUCCESS_MESSAGE": "受信トレイが正常に接続されました。",
+ "ERROR_MESSAGE": "受信トレイの接続中にエラーが発生しました。もう一度お試しください。"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "受信トレイ",
+ "PLACEHOLDER": "アシスタントを展開する受信トレイを選択",
+ "ERROR": "受信トレイの選択が必要です。"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "接続された受信トレイがありません",
+ "SUBTITLE": "受信トレイに接続すると、アシスタントがお客様からの最初の質問を対応し、その後あなたに引き継ぐことができます。"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
index e7dcb6eda..1af824c19 100644
--- a/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ja/labelsMgmt.json
@@ -3,25 +3,30 @@
"HEADER": "ラベル",
"HEADER_BTN_TXT": "ラベルを追加",
"LOADING": "ラベルを取得中",
+ "DESCRIPTION": "ラベルは会話やリードを分類し、優先順位をつけるのに役立ちます。サイドパネルを使用して会話や連絡先にラベルを割り当てることができます。",
+ "LEARN_MORE": "ラベルについて詳しく知る",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ラベルを検索...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした",
- "SIDEBAR_TXT": "ラベル
ラベルは会話のカテゴリー分けや優先順位づけに便利です。サイドパネルから、会話に対してラベルを設定することができます。
ラベルはアカウントと関連付けられ、組織内のカスタムワークフローにも利用できます。ラベルには個別の色を設定できるので、認識が容易になります。サイドバーにラベルを表示させることによって、会話を絞り込むことが簡単にできます。
",
"LIST": {
"404": "このアカウントには利用可能なラベルがありません。",
"TITLE": "ラベルの管理",
"DESC": "ラベルを使用すると、会話をグループ化できます。",
- "TABLE_HEADER": [
- "名前",
- "説明",
- "色"
- ]
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "DESCRIPTION": "説明",
+ "COLOR": "色",
+ "ACTION": "操作"
+ }
},
"FORM": {
"NAME": {
"LABEL": "ラベル名",
"PLACEHOLDER": "ラベル名",
- "REQUIRED_ERROR": "Label name is required",
- "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
- "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ "REQUIRED_ERROR": "ラベル名は必須です",
+ "MINIMUM_LENGTH_ERROR": "最小2文字が必要です",
+ "VALID_ERROR": "アルファベット、数字、ハイフン、アンダースコアのみ使用可能です"
},
"DESCRIPTION": {
"LABEL": "説明",
@@ -40,16 +45,17 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "会話にラベルを追加",
+ "MULTIPLE_SUGGESTION": "このラベルを選択",
+ "DESELECT": "ラベルの選択を解除",
+ "DISMISS": "提案を無視"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "提案を無視",
+ "ADD_SELECTED_LABELS": "選択したラベルを追加",
+ "ADD_SELECTED_LABEL": "選択したラベルを追加",
+ "ADD_ALL_LABELS": "すべてのラベルを追加",
+ "SUGGESTED_LABELS": "提案されたラベル"
},
"ADD": {
"TITLE": "ラベルを追加",
diff --git a/app/javascript/dashboard/i18n/locale/ja/login.json b/app/javascript/dashboard/i18n/locale/ja/login.json
index 60bc59b13..8eb4a7c4a 100644
--- a/app/javascript/dashboard/i18n/locale/ja/login.json
+++ b/app/javascript/dashboard/i18n/locale/ja/login.json
@@ -3,7 +3,7 @@
"TITLE": "Chatwootにログイン",
"EMAIL": {
"LABEL": "Eメール",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "正しいメールアドレスを入力してください"
},
"PASSWORD": {
@@ -11,17 +11,31 @@
"PLACEHOLDER": "パスワード"
},
"API": {
- "SUCCESS_MESSAGE": "Login successful",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again.",
- "UNAUTH": "Username or password is incorrect. Please try again."
+ "SUCCESS_MESSAGE": "ログインに成功しました",
+ "ERROR_MESSAGE": "Woot Serverに接続できませんでした。もう一度お試しください。",
+ "UNAUTH": "ユーザー名またはパスワードが間違っています。もう一度お試しください。"
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "Googleでログイン",
+ "BUSINESS_ACCOUNTS_ONLY": "会社のメールアドレスを使用してログインしてください",
+ "NO_ACCOUNT_FOUND": "このメールアドレスに該当するアカウントが見つかりませんでした。"
},
"FORGOT_PASSWORD": "パスワードをお忘れですか?",
"CREATE_NEW_ACCOUNT": "新しいアカウントを作成",
- "SUBMIT": "ログイン"
+ "SUBMIT": "ログイン",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/macros.json b/app/javascript/dashboard/i18n/locale/ja/macros.json
index 9e29599d0..a5ea3fb39 100644
--- a/app/javascript/dashboard/i18n/locale/ja/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ja/macros.json
@@ -1,78 +1,121 @@
{
"MACROS": {
- "HEADER": "Macros",
- "HEADER_BTN_TXT": "Add a new macro",
- "HEADER_BTN_TXT_SAVE": "Save macro",
- "LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
- "ERROR": "Something went wrong. Please try again",
- "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "HEADER": "マクロ",
+ "DESCRIPTION": "マクロは、カスタマーサービス担当者がタスクを簡単に完了できるようにする保存されたアクションのセットです。会話にラベルを付ける、メール記録を送信する、カスタム属性を更新するなどのアクションを定義でき、それらのアクションをワンクリックで実行できます。",
+ "LEARN_MORE": "マクロについて詳しく知る",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "新しいマクロを追加",
+ "HEADER_BTN_TXT_SAVE": "マクロを保存",
+ "LOADING": "マクロを取得中",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "問題が発生しました。もう一度お試しください。",
+ "ORDER_INFO": "マクロは追加したアクションの順序で実行されます。各ノード横のハンドルをドラッグして並べ替えることができます。",
"ADD": {
"FORM": {
"NAME": {
- "LABEL": "Macro name",
- "PLACEHOLDER": "Enter a name for your macro",
- "ERROR": "Name is required for creating a macro"
+ "LABEL": "マクロ名",
+ "PLACEHOLDER": "マクロ名を入力してください",
+ "ERROR": "マクロを作成するには名前が必要です"
},
"ACTIONS": {
"LABEL": "操作"
}
},
"API": {
- "SUCCESS_MESSAGE": "Macro added successfully",
- "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ "SUCCESS_MESSAGE": "マクロが正常に追加されました",
+ "ERROR_MESSAGE": "マクロを作成できませんでした。後でもう一度お試しください。"
}
},
"LIST": {
- "TABLE_HEADER": [
- "名前",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
- "404": "No macros found"
+ "TABLE_HEADER": {
+ "NAME": "名前",
+ "CREATED BY": "作成者",
+ "LAST_UPDATED_BY": "最終更新者",
+ "VISIBILITY": "可視性",
+ "ACTIONS": "操作"
+ },
+ "404": "マクロが見つかりませんでした"
},
"DELETE": {
- "TOOLTIP": "Delete macro",
+ "TOOLTIP": "マクロを削除",
"CONFIRM": {
- "MESSAGE": "削除してもよろしいですか? ",
+ "MESSAGE": "削除してもよろしいですか?",
"YES": "削除する",
- "NO": "No"
+ "NO": "いいえ"
},
"API": {
- "SUCCESS_MESSAGE": "Macro deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ "SUCCESS_MESSAGE": "マクロが正常に削除されました",
+ "ERROR_MESSAGE": "マクロを削除する際にエラーが発生しました。後でもう一度お試しください。"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
- "TOOLTIP": "Edit macro",
+ "TOOLTIP": "マクロを編集",
"API": {
- "SUCCESS_MESSAGE": "Macro updated successfully",
- "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ "SUCCESS_MESSAGE": "マクロが正常に更新されました",
+ "ERROR_MESSAGE": "マクロを更新できませんでした。後でもう一度お試しください。"
}
},
"EDITOR": {
- "START_FLOW": "Start Flow",
- "END_FLOW": "End Flow",
- "LOADING": "Fetching macro",
- "ADD_BTN_TOOLTIP": "Add new action",
- "DELETE_BTN_TOOLTIP": "Delete Action",
+ "START_FLOW": "フローの開始",
+ "END_FLOW": "フローの終了",
+ "LOADING": "マクロを取得中",
+ "ADD_BTN_TOOLTIP": "新しいアクションを追加",
+ "DELETE_BTN_TOOLTIP": "アクションを削除",
"VISIBILITY": {
- "LABEL": "Macro Visibility",
+ "LABEL": "マクロの可視性",
"GLOBAL": {
- "LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "LABEL": "公開",
+ "DESCRIPTION": "このマクロは、このアカウント内のすべての担当者に公開されます。",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
- "LABEL": "Private",
- "DESCRIPTION": "This macro will be private to you and not be available to others."
+ "LABEL": "非公開",
+ "DESCRIPTION": "このマクロは自分専用で、他の人には表示されません。"
}
}
},
"EXECUTE": {
- "BUTTON_TOOLTIP": "Execute",
- "PREVIEW": "Preview Macro",
- "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ "BUTTON_TOOLTIP": "実行",
+ "PREVIEW": "マクロをプレビュー",
+ "EXECUTED_SUCCESSFULLY": "マクロが正常に実行されました"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "属性キーが必須です",
+ "FILTER_OPERATOR_REQUIRED": "フィルター演算子が必須です",
+ "VALUE_REQUIRED": "値は必須です",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "値は1から998の間である必要があります",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "なし",
+ "LOW": "低",
+ "MEDIUM": "中",
+ "HIGH": "高",
+ "URGENT": "緊急"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/mfa.json b/app/javascript/dashboard/i18n/locale/ja/mfa.json
new file mode 100644
index 000000000..bb072437b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "有効です",
+ "DISABLED": "無効です",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "3",
+ "STEP_NUMBER_2": "4",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "読み込み中...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "コピー",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "キャンセル",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "ダウンロード",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "パスワード",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "キャンセル",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "キャンセル",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/onboarding.json b/app/javascript/dashboard/i18n/locale/ja/onboarding.json
new file mode 100644
index 000000000..d1891b745
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Eメール",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "ウェブサイト",
+ "LANGUAGE": "言語",
+ "TIMEZONE": "タイムゾーン",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "タイムゾーンを選択",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "保存中...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/report.json b/app/javascript/dashboard/i18n/locale/ja/report.json
index bc99edad9..9811ee1c0 100644
--- a/app/javascript/dashboard/i18n/locale/ja/report.json
+++ b/app/javascript/dashboard/i18n/locale/ja/report.json
@@ -3,9 +3,9 @@
"HEADER": "会話データ",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
+ "DATA_FETCHING_FAILED": "データの取得に失敗しました。後でもう一度お試しください。",
+ "SUMMARY_FETCHING_FAILED": "サマリーの取得に失敗しました。後でもう一度お試しください。",
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -20,124 +20,124 @@
"DESC": "(合計)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "初回応答時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "初回応答時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_TIME": {
"NAME": "処理時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "処理時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_COUNT": {
"NAME": "処理件数",
"DESC": "(合計)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "処理件数",
+ "DESC": "(合計)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "引き継ぎ件数",
+ "DESC": "(合計)"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "顧客の待機時間",
+ "TOOLTIP_TEXT": "待機時間は{metricValue}({conversationCount}件の返信に基づく)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "過去 7 日間",
+ "LAST_14_DAYS": "過去 14 日間",
"LAST_30_DAYS": "過去 30 日間",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
+ "LAST_3_MONTHS": "過去 3 ヶ月",
+ "LAST_6_MONTHS": "過去 6 ヶ月",
+ "LAST_YEAR": "過去 1 年",
+ "CUSTOM_DATE_RANGE": "カスタム日付範囲"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "過去 7 日間"
- },
- {
- "id": 1,
- "name": "過去 30 日間"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "適用",
+ "PLACEHOLDER": "日付範囲を選択"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "グループ化",
+ "DURATION_FILTER_LABEL": "期間",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
- "YEAR": "Month"
+ "DAY": "日",
+ "WEEK": "週",
+ "MONTH": "月",
+ "YEAR": "年"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "日"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "日"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "週"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "日"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "週"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "月"
}
],
"GROUP_BY_YEAR_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "週"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "月"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "年"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "営業時間",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "フィルターをクリア",
+ "EMPTY_LIST": "結果が見つかりません"
+ },
+ "PAGINATION": {
+ "RESULTS": "{start}件から{end}件まで表示中(全{total}件)",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
+ "HEADER": "担当者概要",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "FILTER_DROPDOWN_LABEL": "Select Agent",
+ "DOWNLOAD_AGENT_REPORTS": "担当者レポートをダウンロード",
+ "FILTER_DROPDOWN_LABEL": "担当者を選択",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "担当者を検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -152,16 +152,16 @@
"DESC": "(合計)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "初回応答時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "初回応答時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_TIME": {
"NAME": "処理時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "処理時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_COUNT": {
"NAME": "処理件数",
@@ -169,42 +169,48 @@
}
},
"DATE_RANGE": [
- {
- "id": 0,
- "name": "過去 7 日間"
- },
- {
- "id": 1,
- "name": "過去 30 日間"
- },
{
"id": 2,
- "name": "Last 3 months"
+ "name": "過去3か月"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "過去6か月"
},
{
"id": 4,
- "name": "Last year"
+ "name": "過去 3 ヶ月"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "過去 6 ヶ月"
+ },
+ {
+ "id": 4,
+ "name": "過去1年"
+ },
+ {
+ "id": 5,
+ "name": "カスタム日付範囲"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "適用",
+ "PLACEHOLDER": "日付範囲を選択"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
+ "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": "Download label reports",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "DOWNLOAD_LABEL_REPORTS": "ラベルレポートをダウンロード",
+ "FILTER_DROPDOWN_LABEL": "ラベルを選択",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ラベルを検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -219,16 +225,16 @@
"DESC": "(合計)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "初回応答時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "初回応答時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_TIME": {
"NAME": "処理時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "処理時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_COUNT": {
"NAME": "処理件数",
@@ -246,32 +252,40 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "過去 3 ヶ月"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "過去 6 ヶ月"
},
{
"id": 4,
- "name": "Last year"
+ "name": "過去1年"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "カスタム日付範囲"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "適用",
+ "PLACEHOLDER": "日付範囲を選択"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
+ "HEADER": "受信トレイ概要",
+ "DESCRIPTION": "会話、応答時間、解決までの時間、解決済み案件などの主要な指標を使用して、受信トレイのパフォーマンスをすばやく確認できます。 詳細については、受信トレイ名をクリックしてください。",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "DOWNLOAD_INBOX_REPORTS": "受信トレイレポートをダウンロード",
+ "FILTER_DROPDOWN_LABEL": "受信トレイを選択",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -286,16 +300,16 @@
"DESC": "(合計)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "初回応答時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "初回応答時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_TIME": {
"NAME": "処理時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "処理時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_COUNT": {
"NAME": "処理件数",
@@ -313,32 +327,41 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "過去 3 ヶ月"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "過去 6 ヶ月"
},
{
"id": 4,
- "name": "Last year"
+ "name": "過去1年"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "カスタム日付範囲"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "適用",
+ "PLACEHOLDER": "日付範囲を選択"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
+ "HEADER": "チーム概要",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "グラフデータを読み込んでいます...",
"NO_ENOUGH_DATA": "レポートを生成するための十分なデータポイントを受信していません。後でもう一度お試しください。",
- "DOWNLOAD_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "DOWNLOAD_TEAM_REPORTS": "チームレポートをダウンロード",
+ "FILTER_DROPDOWN_LABEL": "チームを選択",
+ "FILTERS": {
+ "ADD_FILTER": "フィルターを追加",
+ "CLEAR_ALL": "すべてクリア",
+ "NO_FILTER": "利用可能なフィルターがありません",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "チームを検索"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "会話データ",
@@ -353,16 +376,16 @@
"DESC": "(合計)"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "初回応答時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "初回応答時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_TIME": {
"NAME": "処理時間",
"DESC": "(平均)",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "計算に使用された会話の総数:",
+ "TOOLTIP_TEXT": "処理時間は{metricValue}({conversationCount}件の会話に基づく)"
},
"RESOLUTION_COUNT": {
"NAME": "処理件数",
@@ -380,101 +403,248 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "過去 3 ヶ月"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "過去 6 ヶ月"
},
{
"id": 4,
- "name": "Last year"
+ "name": "過去 1 年"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "カスタム日付範囲"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "適用",
+ "PLACEHOLDER": "日付範囲を選択"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "CSATレポート",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
+ "DOWNLOAD": "CSATレポートをダウンロード",
+ "DOWNLOAD_FAILED": "CSATレポートのダウンロードに失敗しました",
"FILTERS": {
+ "ADD_FILTER": "フィルターを追加",
+ "CLEAR_ALL": "すべてクリア",
+ "NO_FILTER": "利用可能なフィルターがありません",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "担当者を検索",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "チームを検索",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "担当者"
+ },
+ "INBOXES": {
+ "LABEL": "受信トレイ"
+ },
+ "TEAMS": {
+ "LABEL": "チーム"
+ },
+ "RATINGS": {
+ "LABEL": "評価"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "CONTACT_NAME": "連絡先",
+ "AGENT_NAME": "担当者",
"RATING": "評価",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "フィードバックコメント",
+ "CONVERSATION": "会話",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "回答",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "総回答数",
+ "TOOLTIP": "収集された回答の総数"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "満足度スコア",
+ "TOOLTIP": "ポジティブな回答数 / 総回答数 × 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "回答率",
+ "TOOLTIP": "回答数 / 送信されたCSATアンケートメッセージ数 × 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "保存",
+ "CANCEL": "キャンセル",
+ "SAVING": "保存中...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "BOTレポート",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "会話数",
+ "TOOLTIP": "ボットが処理した会話の総数"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "総返信数",
+ "TOOLTIP": "ボットが送信した返信の総数"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "解決率",
+ "TOOLTIP": "ボットが解決した会話数 / ボットが処理した会話数 × 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "引き継ぎ率",
+ "TOOLTIP": "エージェントに引き継がれた会話数 / ボットが処理した会話数 × 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
+ "HEADER": "概要",
"LIVE": "Live",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
- "OPEN": "開く",
- "UNATTENDED": "Unattended",
+ "HEADER": "未解決の会話",
+ "LOADING_MESSAGE": "会話のメトリクスを読み込んでいます...",
+ "OPEN": "未解決",
+ "UNATTENDED": "未対応",
"UNASSIGNED": "未割当",
- "PENDING": "Pending"
+ "PENDING": "保留中"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "会話の流量",
+ "NO_CONVERSATIONS": "会話がありません",
+ "CONVERSATION": "{count}件の会話",
+ "CONVERSATIONS": "{count}件の会話",
+ "DOWNLOAD_REPORT": "レポートをダウンロード"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "会話がありません",
+ "CONVERSATION": "{count}件の会話",
+ "CONVERSATIONS": "{count}件の会話",
+ "DOWNLOAD_REPORT": "レポートをダウンロード"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "担当者ごとの会話",
+ "LOADING_MESSAGE": "担当者メトリクスを読み込んでいます...",
+ "NO_AGENTS": "担当者による会話はありません",
"TABLE_HEADER": {
"AGENT": "担当者",
- "OPEN": "OPEN",
- "UNATTENDED": "Unattended",
+ "OPEN": "未解決",
+ "UNATTENDED": "未対応",
+ "STATUS": "状況"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "チーム",
+ "OPEN": "再開する",
+ "UNATTENDED": "未対応",
"STATUS": "状況"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
+ "HEADER": "担当者ステータス",
"ONLINE": "オンライン",
"BUSY": "取り込み中",
"OFFLINE": "オフライン"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "日",
+ "MONDAY": "月",
+ "TUESDAY": "火",
+ "WEDNESDAY": "水",
+ "THURSDAY": "木",
+ "FRIDAY": "金",
+ "SATURDAY": "土"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLAレポート",
+ "NO_RECORDS": "SLAが適用された会話はありません。",
+ "LOADING": "SLAデータを読み込んでいます...",
+ "DOWNLOAD_SLA_REPORTS": "SLAレポートをダウンロード",
+ "DOWNLOAD_FAILED": "SLAレポートのダウンロードに失敗しました",
+ "DROPDOWN": {
+ "ADD_FIlTER": "フィルターを追加",
+ "CLEAR_ALL": "すべてクリア",
+ "CLEAR_FILTER": "フィルターをクリア",
+ "EMPTY_LIST": "結果が見つかりません",
+ "NO_FILTER": "利用可能なフィルターがありません",
+ "SEARCH": "フィルターを検索",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA名",
+ "AGENTS": "担当者名",
+ "INBOXES": "受信トレイ名",
+ "LABELS": "ラベル名",
+ "TEAMS": "チーム名"
+ },
+ "SLA": "SLAポリシー",
+ "INBOXES": "受信トレイ",
+ "AGENTS": "担当者",
+ "LABELS": "ラベル",
+ "TEAMS": "チーム"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "達成率",
+ "TOOLTIP": "設定されたSLAのうち正常に完了した割合"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "未達成数",
+ "TOOLTIP": "指定期間内のSLA未達成件数"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "会話数",
+ "TOOLTIP": "SLAが適用された会話の総数"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "ポリシー",
+ "CONVERSATION": "会話",
+ "AGENT": "担当者"
+ },
+ "VIEW_DETAILS": "詳細を表示"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "受信トレイ",
+ "AGENT": "担当者",
+ "TEAM": "チーム",
+ "LABEL": "ラベル",
+ "AVG_RESOLUTION_TIME": "解決までの平均時間",
+ "AVG_FIRST_RESPONSE_TIME": "初回応答の平均時間",
+ "AVG_REPLY_TIME": "お客様の平均待ち時間",
+ "RESOLUTION_COUNT": "処理件数",
+ "CONVERSATIONS": "会話数"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/resetPassword.json b/app/javascript/dashboard/i18n/locale/ja/resetPassword.json
index 5cdce74fa..9acad4e6e 100644
--- a/app/javascript/dashboard/i18n/locale/ja/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ja/resetPassword.json
@@ -1,16 +1,16 @@
{
"RESET_PASSWORD": {
- "TITLE": "Reset password",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "TITLE": "パスワードをリセット",
+ "DESCRIPTION": "Chatwootにログインする際に使用するメールアドレスを入力して、パスワードリセットの手順を受け取ってください。",
+ "GO_BACK_TO_LOGIN": "ログインページに戻りたい場合は、",
"EMAIL": {
"LABEL": "Eメール",
- "PLACEHOLDER": "Please enter your email.",
+ "PLACEHOLDER": "メールアドレスを入力してください。",
"ERROR": "有効なメールアドレスを入力してください."
},
"API": {
"SUCCESS_MESSAGE": "パスワードリセット用のリンクがあなたのメールアドレス宛に送信されました.",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ "ERROR_MESSAGE": "Woot Serverに接続できませんでした。もう一度お試しください。"
},
"SUBMIT": "送信"
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/search.json b/app/javascript/dashboard/i18n/locale/ja/search.json
index 5c7b2769b..9ad632459 100644
--- a/app/javascript/dashboard/i18n/locale/ja/search.json
+++ b/app/javascript/dashboard/i18n/locale/ja/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "すべて",
- "CONTACTS": "Contacts",
+ "ALL": "All results",
+ "CONTACTS": "連絡先",
"CONVERSATIONS": "会話データ",
- "MESSAGES": "メッセージ"
+ "MESSAGES": "メッセージ",
+ "ARTICLES": "記事"
},
"SECTION": {
- "CONTACTS": "Contacts",
+ "CONTACTS": "連絡先",
"CONVERSATIONS": "会話データ",
- "MESSAGES": "メッセージ"
+ "MESSAGES": "メッセージ",
+ "ARTICLES": "記事"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
- "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
- "BOT_LABEL": "Bot",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
+ "VIEW_MORE": "さらに表示",
+ "LOAD_MORE": "さらに読み込む",
+ "SEARCHING_DATA": "検索中",
+ "LOADING_DATA": "読み込み中",
+ "EMPTY_STATE": "{item} がクエリ '{query}' に対して見つかりませんでした。",
+ "EMPTY_STATE_FULL": "クエリ '{query}' に対して結果が見つかりませんでした。",
+ "PLACEHOLDER_KEYBINDING": "/を押してフォーカス",
+ "INPUT_PLACEHOLDER": "検索するには3文字以上入力してください",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "すべてクリア",
+ "MOST_RECENT": "Most recent",
+ "EMPTY_STATE_DEFAULT": "会話ID、メール、電話番号、メッセージで検索すると、より良い検索結果が得られます。",
+ "BOT_LABEL": "ボット",
+ "READ_MORE": "さらに読む",
+ "READ_LESS": "Read less",
+ "WROTE": "書き込み:",
"FROM": "差出人:",
- "EMAIL": "eメール"
+ "EMAIL": "Eメール",
+ "EMAIL_SUBJECT": "件名",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "{time} に作成",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "過去3か月",
+ "LAST_30_DAYS": "過去6か月",
+ "LAST_60_DAYS": "過去 60 日間",
+ "LAST_90_DAYS": "過去 90 日間",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "と",
+ "APPLY": "適用",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "フィルターをクリア"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "受信トレイ",
+ "AGENTS": "担当者",
+ "CONTACTS": "連絡先",
+ "INBOXES": "受信トレイ",
+ "NO_AGENTS": "担当者が見つかりません",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ja/setNewPassword.json
index 90bdee19d..10f0575ed 100644
--- a/app/javascript/dashboard/i18n/locale/ja/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ja/setNewPassword.json
@@ -1,22 +1,22 @@
{
"SET_NEW_PASSWORD": {
- "TITLE": "Set new password",
+ "TITLE": "新しいパスワードを設定",
"PASSWORD": {
"LABEL": "パスワード",
"PLACEHOLDER": "パスワード",
- "ERROR": "パスワードが短すぎます."
+ "ERROR": "パスワードが短すぎます"
},
"CONFIRM_PASSWORD": {
- "LABEL": "Confirm password",
+ "LABEL": "パスワードの確認",
"PLACEHOLDER": "パスワードの確認",
- "ERROR": "パスワードが一致しません."
+ "ERROR": "パスワードが一致しません"
},
"API": {
"SUCCESS_MESSAGE": "パスワードは正常に変更されました.",
- "ERROR_MESSAGE": "Could not connect to Woot server. Please try again."
+ "ERROR_MESSAGE": "Woot Serverに接続できませんでした。もう一度お試しください。"
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "認証が期限切れです。再度キャプチャを解いてください。"
},
"SUBMIT": "送信"
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/settings.json b/app/javascript/dashboard/i18n/locale/ja/settings.json
index d7e3fba9c..abc8872e2 100644
--- a/app/javascript/dashboard/i18n/locale/ja/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/settings.json
@@ -3,13 +3,14 @@
"LINK": "プロフィール設定",
"TITLE": "プロフィール設定",
"BTN_TEXT": "プロフィールを更新",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "あなたのプロフィールは正常に更新されました。ログイン情報(パスワード等)が変更されたため、再度ログインしてください。",
+ "DELETE_AVATAR": "アバターを削除",
+ "AVATAR_DELETE_SUCCESS": "アバターが正常に削除されました",
+ "AVATAR_DELETE_FAILED": "アバターの削除中にエラーが発生しました。もう一度お試しください",
+ "UPDATE_SUCCESS": "プロフィールが正常に更新されました",
+ "PASSWORD_UPDATE_SUCCESS": "パスワードが正常に変更されました",
+ "AFTER_EMAIL_CHANGED": "プロフィールが正常に更新されました。ログイン情報が変更されたため、再度ログインしてください。",
"FORM": {
+ "PICTURE": "プロフィール写真",
"AVATAR": "プロフィール画像",
"ERROR": "正しくフォームに入力してください",
"REMOVE_IMAGE": "削除",
@@ -20,85 +21,166 @@
"NOTE": "あなたのメールアドレスはあなたのIDであり、ログインに使用されます。"
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "メッセージ送信のホットキー",
+ "NOTE": "好みに応じて、EnterまたはCmd/Ctrl+Enterを選択できます。",
+ "UPDATE_SUCCESS": "設定が正常に更新されました",
"CARD": {
"ENTER_KEY": {
"HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "CONTENT": "送信ボタンをクリックせずにEnterキーでメッセージを送信します。"
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "送信ボタンをクリックせずにCmd/Ctrl+Enterキーでメッセージを送信します。"
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "個人メッセージ署名",
+ "NOTE": "送信するすべてのメッセージの末尾に表示されるユニークな署名を作成します。インライン画像を含めることができ、ライブチャット、メール、API受信トレイでサポートされています。",
+ "BTN_TEXT": "署名を保存",
+ "API_ERROR": "署名を保存できませんでした。もう一度お試しください。",
+ "API_SUCCESS": "署名が正常に保存されました",
+ "IMAGE_UPLOAD_ERROR": "画像をアップロードできませんでした。もう一度お試しください。",
+ "IMAGE_UPLOAD_SUCCESS": "画像が正常に追加されました。保存をクリックして署名を保存してください。",
+ "IMAGE_UPLOAD_SIZE_ERROR": "画像サイズは{size}MB未満である必要があります",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "メッセージ署名",
+ "ERROR": "メッセージ署名を空にすることはできません",
+ "PLACEHOLDER": "ここに個人のメッセージ署名を入力してください。"
},
"PASSWORD_SECTION": {
"TITLE": "パスワード",
"NOTE": "パスワードを更新すると、複数のデバイスでログインがリセットされます。",
- "BTN_TEXT": "Change password"
+ "BTN_TEXT": "パスワードを変更"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
},
"ACCESS_TOKEN": {
"TITLE": "アクセストークン",
- "NOTE": "このトークンは、API 連携を構築する場合に利用します。"
+ "NOTE": "このトークンは、API連携を構築する場合に利用します。",
+ "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": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "オーディオアラート",
+ "NOTE": "ダッシュボードで新しいメッセージや会話の通知音を有効にします。",
+ "PLAY": "音を再生",
+ "ALERT_TYPES": {
"NONE": "該当なし",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "MINE": "割り当て済み",
+ "ALL": "すべて",
+ "ASSIGNED": "自分に割り当てられた会話",
+ "UNASSIGNED": "未割り当ての会話",
+ "NOTME": "他の人に割り当てられた会話"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "オプションが選択されていないため、通知音を受け取りません。",
+ "ASSIGNED": "自分に割り当てられた会話の通知音を受け取ります。",
+ "UNASSIGNED": "未割り当ての会話の通知音を受け取ります。",
+ "NOTME": "他の人に割り当てられた会話の通知音を受け取ります。",
+ "ASSIGNED+UNASSIGNED": "自分に割り当てられた会話と未割り当ての会話の通知音を受け取ります。",
+ "ASSIGNED+NOTME": "自分と他の人に割り当てられた会話の通知音を受け取りますが、未割り当ての会話は含みません。",
+ "NOTME+UNASSIGNED": "未割り当ての会話と他の人に割り当てられた会話の通知音を受け取ります。",
+ "ASSIGNED+NOTME+UNASSIGNED": "すべての会話の通知音を受け取ります。"
+ },
+ "ALERT_TYPE": {
+ "TITLE": "会話の通知イベント",
+ "NONE": "該当なし",
+ "ASSIGNED": "割り当てられた会話",
+ "ALL_CONVERSATIONS": "すべての会話"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "通知音:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "通知条件:",
+ "CONDITION_ONE": "ブラウザウィンドウがアクティブでない場合にのみ通知音を送信",
+ "CONDITION_TWO": "割り当てられたすべての会話が既読になるまで30秒ごとに通知を送信"
+ },
+ "SOUND_PERMISSION_ERROR": "ブラウザで自動再生が無効になっています。通知音を自動で聞くには、ブラウザ設定で音声権限を有効にするか、ページと対話してください。",
+ "READ_MORE": "詳細を読む"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Eメール通知",
- "NOTE": "メール通知設定を更新する",
- "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにメールで通知を送信する",
- "CONVERSATION_CREATION": "新しい会話が作成されたときにメールで通知を送信する",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにメールで通知を送信します",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "NOTE": "メール通知設定を更新します",
+ "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにメール通知を送信",
+ "CONVERSATION_CREATION": "新しい会話が作成されたときにメール通知を送信",
+ "CONVERSATION_MENTION": "会話でメンションされたときにメール通知を送信",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにメール通知を送信",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "参加している会話で新しいメッセージが作成されたときにメール通知を送信",
+ "SLA_MISSED_FIRST_RESPONSE": "会話で最初の応答SLAを逃した場合にメール通知を送信",
+ "SLA_MISSED_NEXT_RESPONSE": "会話で次の応答SLAを逃した場合にメール通知を送信",
+ "SLA_MISSED_RESOLUTION": "会話で解決SLAを逃した場合にメール通知を送信"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "通知設定",
+ "TYPE_TITLE": "通知の種類",
+ "EMAIL": "Eメール通知",
+ "PUSH": "プッシュ通知",
+ "TYPES": {
+ "CONVERSATION_CREATED": "新しい会話が作成された時",
+ "CONVERSATION_ASSIGNED": "会話が自分に割り当てられた時",
+ "CONVERSATION_MENTION": "会話で自分がメンションされた時",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話に新しいメッセージが作成された時",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "参加している会話に新しいメッセージが作成された時",
+ "SLA_MISSED_FIRST_RESPONSE": "会話で最初の応答SLAを逃した",
+ "SLA_MISSED_NEXT_RESPONSE": "会話で次の応答SLAを逃した",
+ "SLA_MISSED_RESOLUTION": "会話で解決SLAを逃した"
+ },
+ "BROWSER_PERMISSION": "プッシュ通知を受け取れるように、ブラウザの通知設定を有効にしてください"
},
"API": {
"UPDATE_SUCCESS": "通知設定が正常に更新されました",
- "UPDATE_ERROR": "設定の更新中にエラーが発生しました。もう一度やり直して下さい。"
+ "UPDATE_ERROR": "設定の更新中にエラーが発生しました。もう一度やり直してください。"
},
"PUSH_NOTIFICATIONS_SECTION": {
"TITLE": "プッシュ通知",
- "NOTE": "ここでプッシュ通知の設定を更新します",
- "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにプッシュ通知を送信する",
- "CONVERSATION_CREATION": "新しい会話が作成されたときにプッシュ通知を送信する",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにプッシュ通知を送信する",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "このブラウザーでプッシュ通知を有効にしました。",
- "REQUEST_PUSH": "プッシュ通知を有効にする"
+ "NOTE": "プッシュ通知の設定をここで更新します",
+ "CONVERSATION_ASSIGNMENT": "会話が自分に割り当てられたときにプッシュ通知を送信",
+ "CONVERSATION_CREATION": "新しい会話が作成されたときにプッシュ通知を送信",
+ "CONVERSATION_MENTION": "会話でメンションされたときにプッシュ通知を送信",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "割り当てられた会話で新しいメッセージが作成されたときにプッシュ通知を送信",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "参加している会話で新しいメッセージが作成されたときにプッシュ通知を送信",
+ "HAS_ENABLED_PUSH": "このブラウザーでプッシュ通知が有効になっています。",
+ "REQUEST_PUSH": "プッシュ通知を有効にする",
+ "SLA_MISSED_FIRST_RESPONSE": "会話で最初の応答SLAを逃したときにプッシュ通知を送信",
+ "SLA_MISSED_NEXT_RESPONSE": "会話で次の応答SLAを逃したときにプッシュ通知を送信",
+ "SLA_MISSED_RESOLUTION": "会話で解決SLAを逃したときにプッシュ通知を送信"
},
"PROFILE_IMAGE": {
"LABEL": "プロフィール画像"
@@ -115,79 +197,95 @@
},
"AVAILABILITY": {
"LABEL": "利用可能期間",
- "STATUSES_LIST": [
- "オンライン",
- "取り込み中",
- "オフライン"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "STATUS": {
+ "ONLINE": "オンライン",
+ "BUSY": "取り込み中",
+ "OFFLINE": "オフライン"
+ },
+ "SET_AVAILABILITY_SUCCESS": "利用可能ステータスが正常に設定されました",
+ "SET_AVAILABILITY_ERROR": "利用可能ステータスを設定できませんでした。もう一度お試しください",
+ "IMPERSONATING_ERROR": "Cannot change availability while impersonating a user"
},
"EMAIL": {
"LABEL": "あなたのメールアドレス",
"ERROR": "正しいメールアドレスを入力してください",
- "PLACEHOLDER": "メールアドレスを入力してください。これは会話に表示されます"
+ "PLACEHOLDER": "メールアドレスを入力してください。これは会話に表示されます。"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "現在のパスワード",
+ "ERROR": "現在のパスワードを入力してください",
+ "PLACEHOLDER": "現在のパスワードを入力してください"
},
"PASSWORD": {
- "LABEL": "New password",
+ "LABEL": "新しいパスワード",
"ERROR": "6文字以上のパスワードを入力してください",
"PLACEHOLDER": "新しいパスワードを入力してください"
},
"PASSWORD_CONFIRMATION": {
"LABEL": "パスワードの確認",
"ERROR": "パスワードは一致している必要があります",
- "PLACEHOLDER": "Please re-enter your new password"
+ "PLACEHOLDER": "新しいパスワードを再度入力してください"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "アカウントの切り替え",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_AVAILABILITY_STATUS": "ステータスを変更",
+ "CHANGE_ACCOUNTS": "アカウントを切り替え",
+ "SWITCH_ACCOUNT": "アカウントを切り替え",
+ "CONTACT_SUPPORT": "サポートに問い合わせる",
"SELECTOR_SUBTITLE": "次のリストからアカウントを選択してください",
"PROFILE_SETTINGS": "プロフィール設定",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "キーボードショートカット",
+ "APPEARANCE": "外観を変更",
+ "SUPER_ADMIN_CONSOLE": "SuperAdminコンソール",
+ "DOCS": "ドキュメントを読む",
+ "CHANGELOG": "Changelog",
"LOGOUT": "ログアウト"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "日、トライアル期間が残っています。",
+ "TRIAL_MESSAGE": "日間のトライアル期間が残っています。",
"TRAIL_BUTTON": "今すぐ購入",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "削除済みユーザー",
+ "EMAIL_VERIFICATION_PENDING": "メールアドレスがまだ認証されていないようです。受信トレイで認証メールを確認してください。",
+ "RESEND_VERIFICATION_MAIL": "認証メールを再送",
+ "EMAIL_VERIFICATION_SENT": "認証メールが送信されました。受信トレイを確認してください。",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "アカウント停止中",
+ "MESSAGE": "アカウントが停止されています。詳細についてはサポートチームにお問い合わせください。"
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "ログアウト"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "コピー",
- "CODEPEN": "Open in CodePen",
+ "CODEPEN": "CodePenで開く",
"COPY_SUCCESSFUL": "コードが正常にクリップボードにコピーされました"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "もっと見る",
+ "SHOW_LESS": "閉じる"
},
"FILE_BUBBLE": {
"DOWNLOAD": "ダウンロード",
"UPLOADING": "アップロード中...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "このストーリーはもう利用できません。",
+ "INSTAGRAM_STORY_REPLY": "あなたのストーリーに返信:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "地図で見る"
},
"FORM_BUBBLE": {
"SUBMIT": "送信"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "この画像はもう利用できません。",
+ "LOADING_FAILED": "読み込みに失敗しました"
}
},
"CONFIRM_EMAIL": "確認中...",
@@ -197,91 +295,323 @@
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
+ "NO_ITEMS": "アイテムがありません",
+ "CURRENTLY_VIEWING_ACCOUNT": "現在表示中のアカウント:",
+ "SWITCH": "切り替え",
+ "INBOX_VIEW": "受信トレイビュー",
"CONVERSATIONS": "会話データ",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
+ "INBOX": "私の受信トレイ",
+ "ALL_CONVERSATIONS": "すべての会話",
+ "MENTIONED_CONVERSATIONS": "メンション",
+ "PARTICIPATING_CONVERSATIONS": "参加中",
+ "UNATTENDED_CONVERSATIONS": "未対応",
"REPORTS": "レポート",
"SETTINGS": "設定",
- "CONTACTS": "Contacts",
+ "CONTACTS": "連絡先",
+ "ACTIVE": "有効",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "キャプテン",
+ "CAPTAIN_ASSISTANTS": "アシスタント",
+ "CAPTAIN_DOCUMENTS": "ドキュメント",
+ "CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "受信トレイ",
+ "CAPTAIN_SETTINGS": "設定",
"HOME": "ホーム",
"AGENTS": "担当者",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
+ "AGENT_BOTS": "ボット",
+ "AUDIT_LOGS": "監査ログ",
"INBOXES": "受信トレイ",
- "NOTIFICATIONS": "Notifications",
+ "NOTIFICATIONS": "通知",
"CANNED_RESPONSES": "定型文",
"INTEGRATIONS": "連携",
"PROFILE_SETTINGS": "プロフィール設定",
"ACCOUNT_SETTINGS": "アカウント設定",
- "APPLICATIONS": "Applications",
+ "APPLICATIONS": "アプリケーション",
"LABELS": "ラベル",
"CUSTOM_ATTRIBUTES": "カスタム属性",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
+ "AUTOMATION": "自動化",
+ "MACROS": "マクロ",
+ "TEAMS": "チーム",
+ "BILLING": "請求",
+ "CUSTOM_VIEWS_FOLDER": "フォルダ",
+ "CUSTOM_VIEWS_SEGMENTS": "セグメント",
+ "ALL_CONTACTS": "すべての連絡先",
+ "TAGGED_WITH": "タグ付け済み",
+ "NEW_LABEL": "新しいラベル",
+ "NEW_TEAM": "新しいチーム",
+ "NEW_INBOX": "新しい受信トレイ",
"REPORTS_CONVERSATION": "会話データ",
- "CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "CSAT": "顧客満足度",
+ "LIVE_CHAT": "ライブチャット",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "キャンペーン",
+ "ONGOING": "進行中",
+ "ONE_OFF": "単発",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "ボット",
"REPORTS_AGENT": "担当者",
"REPORTS_LABEL": "ラベル",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_INBOX": "受信トレイ",
+ "REPORTS_TEAM": "チーム",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
+ "SET_AVAILABILITY_TITLE": "ステータスを設定",
+ "SET_YOUR_AVAILABILITY": "利用可能ステータスを設定",
"SLA": "SLA",
- "BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Facebookの接続が期限切れになりました。サービスを継続するには、Facebookページを再接続してください。",
+ "CUSTOM_ROLES": "カスタムロール",
+ "BETA": "ベータ版",
+ "REPORTS_OVERVIEW": "概要",
+ "REAUTHORIZE": "受信トレイの接続期限が切れました。継続してメッセージを受信および送信するには、再接続してください。",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "設定",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "ヘルプセンター",
+ "ARTICLES": "記事",
+ "CATEGORIES": "カテゴリー",
+ "LOCALES": "言語",
+ "SETTINGS": "設定"
},
+ "CHANNELS": "チャンネル",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "自動的にオフラインに設定",
+ "INFO_TEXT": "アプリやダッシュボードを使用していない場合に、システムが自動的にオフラインに設定します。",
+ "INFO_SHORT": "使用していない場合、自動的にオフラインにします。"
},
- "DOCS": "Read docs"
+ "DOCS": "ドキュメントを読む",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "キャプテン",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "アシスタント",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "機能",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "請求設定",
+ "DESCRIPTION": "ここでサブスクリプションを管理し、プランをアップグレードしてチームにさらに多くの機能を提供しましょう。",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "現在のプラン",
+ "PLAN_NOTE": "現在**{plan}**プランに**{quantity}**ライセンスでご加入中です。",
+ "SEAT_COUNT": "シート数",
+ "RENEWS_ON": "更新日"
},
+ "VIEW_PRICING": "料金を表示",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "サブスクリプションを管理",
+ "DESCRIPTION": "過去の請求書を確認したり、請求情報を編集したり、サブスクリプションをキャンセルしたりできます。",
+ "BUTTON_TXT": "請求ポータルへ"
+ },
+ "CAPTAIN": {
+ "TITLE": "キャプテン",
+ "DESCRIPTION": "Captain AIの使用状況とクレジットを管理する。",
+ "BUTTON_TXT": "クレジットを追加購入する",
+ "DOCUMENTS": "ドキュメント",
+ "RESPONSES": "応答数",
+ "UPGRADE": "Captainは無料プランでは利用できません。アシスタント、Copilotなどの機能を利用するには、プランをアップグレードしてください。",
+ "REFRESH_CREDITS": "再読み込み"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "サポートが必要ですか?",
+ "DESCRIPTION": "請求に関する問題がありますか?お手伝いします。",
"BUTTON_TXT": "チャットをする"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "請求アカウントを設定中です。ページを更新してもう一度お試しください。",
+ "TOPUP": {
+ "BUY_CREDITS": "クレジットを追加購入する",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "キャンセル",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "戻る",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "コードが正常にクリップボードにコピーされました",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "属性を検索"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "会話を解決",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "会話を解決",
+ "CANCEL": "キャンセル"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "オプションを選択"
+ },
+ "CHECKBOX": {
+ "YES": "はい",
+ "NO": "いいえ"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
+ "NO_ACCOUNT_WARNING": "Chatwootアカウントが見つかりませんでした。続行するには新しいアカウントを作成してください。",
"NEW_ACCOUNT": "新規アカウント",
"SELECTOR_SUBTITLE": "新しいアカウントを作成",
"API": {
@@ -292,34 +622,302 @@
"FORM": {
"NAME": {
"LABEL": "企業名",
- "PLACEHOLDER": "Wayne Enterprise"
+ "PLACEHOLDER": "例: Wayne Enterprise"
},
- "SUBMIT": "送信"
+ "SUBMIT": "送信",
+ "CANCEL": "キャンセル"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "すべてのショートカットを表示",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "会話を開く",
+ "RESOLVE_AND_NEXT": "解決して次へ進む",
+ "NAVIGATE_DROPDOWN": "ドロップダウン項目を移動",
+ "RESOLVE_CONVERSATION": "会話を解決",
+ "GO_TO_CONVERSATION_DASHBOARD": "会話ダッシュボードに移動",
+ "ADD_ATTACHMENT": "添付ファイルを追加",
+ "GO_TO_CONTACTS_DASHBOARD": "連絡先ダッシュボードに移動",
+ "TOGGLE_SIDEBAR": "サイドバーを切り替え",
+ "GO_TO_REPORTS_SIDEBAR": "レポートサイドバーに移動",
+ "MOVE_TO_NEXT_TAB": "会話リスト内で次のタブに移動",
+ "GO_TO_SETTINGS": "設定に移動",
+ "SWITCH_TO_PRIVATE_NOTE": "プライベートメモに切り替え",
+ "SWITCH_TO_REPLY": "返信に切り替え",
+ "TOGGLE_SNOOZE_DROPDOWN": "スヌーズドロップダウンを切り替え"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "優先度",
+ "ACTIVE": "有効",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "編集"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "キャンセル"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明:",
+ "PLACEHOLDER": "説明を入力"
+ },
+ "STATUS": {
+ "LABEL": "ステータス:",
+ "PLACEHOLDER": "状況を選択",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "追加"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "編集"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "キャンセル"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "説明:",
+ "PLACEHOLDER": "説明を入力"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "追加"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "削除",
+ "CANCEL_BUTTON_LABEL": "キャンセル"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/signup.json b/app/javascript/dashboard/i18n/locale/ja/signup.json
index 26461ba8e..45bc7d6e9 100644
--- a/app/javascript/dashboard/i18n/locale/ja/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ja/signup.json
@@ -1,33 +1,39 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "アカウントを作成",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "登録",
- "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
- "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
- "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "TESTIMONIAL_HEADER": "前進するために必要なのはたった一歩",
+ "TESTIMONIAL_CONTENT": "顧客と関わり、維持し、新たな顧客を見つけるまであと一歩です。",
+ "TERMS_ACCEPT": "アカウントを作成することで、利用規約およびプライバシーポリシーに同意したものとみなされます。",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Googleで登録"
},
"COMPANY_NAME": {
- "LABEL": "Company name",
- "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
- "ERROR": "Company name is too short"
+ "LABEL": "会社名",
+ "PLACEHOLDER": "会社名を入力してください。例: Wayne Enterprises",
+ "ERROR": "会社名が短すぎます"
},
"FULL_NAME": {
- "LABEL": "Full name",
- "PLACEHOLDER": "Enter your full name. eg: Bruce Wayne",
- "ERROR": "Full name is too short"
+ "LABEL": "氏名",
+ "PLACEHOLDER": "氏名を入力してください。例: Bruce Wayne",
+ "ERROR": "氏名が短すぎます"
},
"EMAIL": {
- "LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
- "ERROR": "Please enter a valid work email address"
+ "LABEL": "勤務先のメールアドレス",
+ "PLACEHOLDER": "勤務先のメールアドレスを入力してください。例: bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "有効な勤務先のメールアドレスを入力してください"
},
"PASSWORD": {
"LABEL": "パスワード",
"PLACEHOLDER": "パスワード",
"ERROR": "パスワードが短すぎます",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "パスワードは少なくとも1つの大文字、1つの小文字、1つの数字、1つの特殊文字を含む必要があります",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "パスワードの確認",
@@ -35,10 +41,17 @@
"ERROR": "パスワードが一致しません"
},
"API": {
- "SUCCESS_MESSAGE": "登録に成功しました",
- "ERROR_MESSAGE": "Woot Serverに接続できませんでした。後でもう一度お試しください。"
+ "SUCCESS_MESSAGE": "Registration Successful",
+ "ERROR_MESSAGE": "Wootサーバーに接続できませんでした。後でもう一度お試しください。"
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "SUBMIT": "アカウントを作成",
+ "HAVE_AN_ACCOUNT": "すでにアカウントをお持ちですか?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "認証メールを再送",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/sla.json b/app/javascript/dashboard/i18n/locale/ja/sla.json
index df3289509..11f42e410 100644
--- a/app/javascript/dashboard/i18n/locale/ja/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ja/sla.json
@@ -1,53 +1,83 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "検索内容(クエリ)に一致する項目はありませんでした",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "Service Level Agreement",
+ "ADD_ACTION": "SLAを追加",
+ "ADD_ACTION_LONG": "新しいSLAポリシーを作成",
+ "DESCRIPTION": "サービス水準合意(SLA)は、チームと顧客間で明確な期待を定義する契約です。応答時間や解決時間の基準を設定し、責任を明確にし、一貫した高品質なサービス体験を提供します。",
+ "LEARN_MORE": "SLAについて詳しく学ぶ",
+ "COUNT": "{n} SLA | {n} SLAs",
+ "LOADING": "SLAを取得中",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "アップグレードしてSLAを作成",
+ "AVAILABLE_ON": "SLA機能はビジネスおよびエンタープライズプランのみで利用可能です。",
+ "UPGRADE_PROMPT": "チーム管理、自動化、カスタム属性などの高度な機能を利用するにはプランをアップグレードしてください。",
+ "UPGRADE_NOW": "今すぐアップグレード",
+ "CANCEL_ANYTIME": "プランはいつでも変更またはキャンセルできます"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SLA機能は有料プランのみで利用可能です。",
+ "UPGRADE_PROMPT": "監査ログ、担当者の稼働状況などの高度な機能を利用するには有料プランにアップグレードしてください。",
+ "ASK_ADMIN": "管理者にアップグレードを依頼してください。"
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "名前",
- "説明",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "404": "このアカウントには利用可能なSLAがありません。",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "エンタープライズ P0",
+ "DESC_1": "即時対応が必要なエンタープライズ顧客からの問題。",
+ "TITLE_2": "エンタープライズ P1",
+ "DESC_2": "迅速な承認が必要なエンタープライズ顧客からの問題。"
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "最初の応答時間の基準",
+ "NRT": "次の応答時間の基準",
+ "RT": "解決時間の基準",
+ "SHORT_HAND": {
+ "FRT": "最初の応答",
+ "NRT": "次の応答",
+ "RT": "解決"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
- "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
- "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ "LABEL": "SLA名",
+ "PLACEHOLDER": "SLA名",
+ "REQUIRED_ERROR": "SLA名は必須です",
+ "MINIMUM_LENGTH_ERROR": "最小2文字が必要です",
+ "VALID_ERROR": "使用可能なのは英字、数字、ハイフン、アンダースコアのみです"
},
"DESCRIPTION": {
"LABEL": "説明",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "プレミアム顧客向けのSLA"
},
"FIRST_RESPONSE_TIME": {
- "LABEL": "First Response Time",
+ "LABEL": "最初の応答時間",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "次の応答時間",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
- "LABEL": "処理時間",
+ "LABEL": "解決時間",
"PLACEHOLDER": "60"
},
"BUSINESS_HOURS": {
- "LABEL": "Business Hours",
- "PLACEHOLDER": "Only during business hours"
+ "LABEL": "営業時間",
+ "PLACEHOLDER": "営業時間内のみ"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "しきい値は数値でゼロより大きい必要があります"
},
"EDIT": "編集",
"CREATE": "作成",
@@ -55,19 +85,33 @@
"CANCEL": "キャンセル"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "SLAを追加",
+ "DESC": "素晴らしいサービスのための友好的な約束!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLAが正常に追加されました",
"ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "SLAを削除",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLAが正常に削除されました",
"ERROR_MESSAGE": "エラーが発生しました。もう一度お試しください。"
+ },
+ "CONFIRM": {
+ "TITLE": "削除の確認",
+ "MESSAGE": "本当に削除してもよろしいですか?",
+ "YES": "削除する",
+ "NO": "いいえ"
}
+ },
+ "EVENTS": {
+ "TITLE": "SLAの逸脱",
+ "FRT": "最初の応答時間",
+ "NRT": "次の応答時間",
+ "RT": "解決時間",
+ "SHOW_MORE": "{count}件以上表示",
+ "HIDE": "{count}行を非表示"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/snooze.json b/app/javascript/dashboard/i18n/locale/ja/snooze.json
new file mode 100644
index 000000000..9a0c0a145
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "時間",
+ "DAY": "日",
+ "DAYS": "days",
+ "WEEK": "週",
+ "WEEKS": "weeks",
+ "MONTH": "月",
+ "MONTHS": "months",
+ "YEAR": "年",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "明日",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "次週",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "/",
+ "AFTER": "after",
+ "WEEK": "週",
+ "DAY": "日"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
index 387f222e5..8e124b527 100644
--- a/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ja/teamsSettings.json
@@ -1,125 +1,124 @@
{
"TEAMS_SETTINGS": {
"NEW_TEAM": "チームを新規作成",
- "HEADER": "チーム一覧",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "HEADER": "チーム",
+ "LOADING": "チームを取得中",
+ "DESCRIPTION": "チームは担当者をその責務に基づいてグループ化することを可能にします。担当者は複数のチームに所属できます。共同作業では、会話を特定のチームに割り当てることができます。",
+ "LEARN_MORE": "チームについて詳しく学ぶ",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "チームを検索...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
- "404": "このアカウントにはまだ作成したチームはありません。",
- "EDIT_TEAM": "チームを編集"
+ "404": "このアカウントにはまだ作成されたチームがありません。",
+ "EDIT_TEAM": "チームを編集",
+ "NONE": "該当なし"
},
"CREATE_FLOW": {
"CREATE": {
"TITLE": "チームを新規作成",
- "DESC": "Add a title and description to your new team."
+ "DESC": "新しいチームにタイトルと説明を追加してください。"
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
+ "BUTTON_TEXT": "チームに担当者を追加",
+ "TITLE": "チームに担当者を追加 - {teamName}",
+ "DESC": "新しく作成したチームに担当者を追加してください。これにより、チームとして会話で協力したり、同じ会話での新しいイベントについて通知を受けたりできます。"
},
- "WIZARD": [
- {
- "title": "作成",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "担当者を追加",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "すべての準備が完了しました!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "作成",
+ "BODY": "新しい担当者チームを作成します。"
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "担当者を追加",
+ "BODY": "チームに担当者を追加します。"
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "完了",
+ "BODY": "すべての準備が完了しました!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
- "TITLE": "Edit your team details",
- "DESC": "Edit title and description to your team.",
- "BUTTON_TEXT": "Update team"
+ "TITLE": "チームの詳細を編集",
+ "DESC": "チームのタイトルや説明を編集します。",
+ "BUTTON_TEXT": "チームを更新"
},
"AGENTS": {
- "BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
+ "BUTTON_TEXT": "チーム内の担当者を更新",
+ "TITLE": "チームに担当者を追加 - {teamName}",
+ "DESC": "新しく作成したチームに担当者を追加してください。追加された担当者は、このチームに割り当てられた会話について通知を受けます。"
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "すべての準備が完了しました!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "チームの詳細",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "名前、説明、その他の詳細を変更します。"
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "担当者を編集",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "チーム内の担当者を編集します。"
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "完了",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "すべての準備が完了しました!"
+ }
},
"TEAM_FORM": {
- "ERROR_MESSAGE": "Couldn't save the team details. Try again."
+ "ERROR_MESSAGE": "チームの詳細を保存できませんでした。もう一度お試しください。"
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "担当者",
"EMAIL": "Eメール",
"BUTTON_TEXT": "担当者を追加",
- "ADD_AGENTS": "Adding Agents to your Team...",
- "SELECT": "select",
- "SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "ADD_AGENTS": "チームに担当者を追加中...",
+ "SELECT": "選択",
+ "SELECT_ALL": "すべての担当者を選択",
+ "SELECTED_COUNT": "{total}人中{selected}人が選択されました。"
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
- "DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
- "SELECT": "select",
- "SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "TITLE": "チームに担当者を追加 - {teamName}",
+ "DESC": "新しく作成したチームに担当者を追加してください。これにより、チームとして会話で協力したり、同じ会話での新しいイベントについて通知を受けたりできます。",
+ "SELECT": "選択",
+ "SELECT_ALL": "すべての担当者を選択",
+ "SELECTED_COUNT": "{total}人中{selected}人が選択されました。",
"BUTTON_TEXT": "担当者を追加",
- "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ "AGENT_VALIDATION_ERROR": "少なくとも1人の担当者を選択してください。"
},
"FINISH": {
- "TITLE": "Your team is ready!",
- "MESSAGE": "You can now collaborate as a team on conversations. Happy supporting ",
- "BUTTON_TEXT": "Finish"
+ "TITLE": "チームの準備ができました!",
+ "MESSAGE": "これで会話においてチームとして協力することができます。サポート活動を楽しんでください!",
+ "BUTTON_TEXT": "完了"
},
"DELETE": {
"BUTTON_TEXT": "削除",
"API": {
- "SUCCESS_MESSAGE": "Team deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the team. Try again."
+ "SUCCESS_MESSAGE": "チームが正常に削除されました。",
+ "ERROR_MESSAGE": "チームを削除できませんでした。もう一度お試しください。"
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
- "PLACE_HOLDER": "Please type {teamName} to confirm",
- "MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
- "YES": "削除 ",
+ "TITLE": "本当にこのチームを削除しますか?",
+ "PLACE_HOLDER": "{teamName}と入力して確認してください",
+ "MESSAGE": "チームを削除すると、このチームに割り当てられた会話のチーム割り当てが削除されます。",
+ "YES": "削除",
"NO": "キャンセル"
}
},
"SETTINGS": "設定",
"FORM": {
- "UPDATE": "Update team",
- "CREATE": "Create team",
+ "UPDATE": "チームを更新",
+ "CREATE": "チームを作成",
"NAME": {
- "LABEL": "Team name",
- "PLACEHOLDER": "Example: Sales, Customer Support"
+ "LABEL": "チーム名",
+ "PLACEHOLDER": "例: 営業、カスタマーサポート"
},
"DESCRIPTION": {
- "LABEL": "Team Description",
- "PLACEHOLDER": "Short description about this team."
+ "LABEL": "チームの説明",
+ "PLACEHOLDER": "このチームに関する簡単な説明。"
},
"AUTO_ASSIGN": {
- "LABEL": "Allow auto assign for this team."
+ "LABEL": "このチームで自動割り当てを許可する"
},
- "SUBMIT_CREATE": "Create team"
+ "SUBMIT_CREATE": "チームを作成"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ja/whatsappTemplates.json
index bbcf28156..a45896070 100644
--- a/app/javascript/dashboard/i18n/locale/ja/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ja/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp テンプレート",
+ "SUBTITLE": "送信したいWhatsappテンプレートを選択してください",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "テンプレートを検索",
+ "NO_TEMPLATES_FOUND": "該当するテンプレートが見つかりません:",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "カテゴリ",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "言語",
+ "TEMPLATE_BODY": "テンプレート本文",
+ "CATEGORY": "カテゴリ"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "変数",
+ "LANGUAGE": "言語",
+ "CATEGORY": "カテゴリ",
+ "VARIABLE_PLACEHOLDER": "{variable} の値を入力",
+ "GO_BACK_LABEL": "戻る",
+ "SEND_MESSAGE_LABEL": "メッセージを送信",
+ "FORM_ERROR_MESSAGE": "送信前に全ての変数を入力してください",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ja/yearInReview.json b/app/javascript/dashboard/i18n/locale/ja/yearInReview.json
new file mode 100644
index 000000000..845ee5e63
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ja/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "閉じる",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "会話データ",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "ダウンロード",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json
index 170f01d7f..a991cb25b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ka/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/ka/agentBots.json b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
index fb744b4a9..099cd276b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ka/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "DESCRIPTION": "აგენტ-ბოტები თქვენი გუნდის ყველაზე გამორჩეული წევრებივით არიან. მათ შეუძლიათ მოაგვარონ წვრილმანები, რათა თქვენ ყურადღება მიაქციოთ ნამდვილად მნიშვნელოვან საკითხებს. სცადეთ. შეგიძლიათ მართოთ თქვენი ბოტები ამ გვერდიდან ან შექმნათ ახალი ღილაკით „ბოტის დამატება“.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "GLOBAL_BOT": "სისტემური ბოტი",
+ "GLOBAL_BOT_BADGE": "სისტემა",
+ "AVATAR": {
+ "SUCCESS_DELETE": "ბოტის ავატარი წარმატებით წაიშალა",
+ "ERROR_DELETE": "ბოტის ავატარის წაშლის დროს მოხდა შეცდომა. სცადეთ ხელახლა"
},
"BOT_CONFIGURATION": {
"TITLE": "Select an agent bot",
@@ -32,7 +25,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "ბოტის დამატება",
"CANCEL_BUTTON_TEXT": "Cancel",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +33,23 @@
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
+ "404": "ბოტები ვერ მოიძებნა. შეგიძლიათ შექმნათ ბოტი ღილაკზე „ბოტის დამატება“ დაჭერით.",
"LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "TABLE_HEADER": {
+ "DETAILS": "ბოტის დეტალები",
+ "URL": "ვებჰუკის URL",
+ "ACTIONS": "Actions"
+ }
},
"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": "წაშლის დადასტურება",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გსურთ {name}-ის წაშლა?",
+ "YES": "დიახ, წაშლა",
+ "NO": "არა, დატოვე"
+ },
"API": {
"SUCCESS_MESSAGE": "Bot deleted successfully.",
"ERROR_MESSAGE": "Could not delete bot. Please try again."
@@ -57,17 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "საიდუმლოს კოპირება კლიპბორდზე",
+ "COPY_SUCCESS": "საიდუმლო კლიპბორდზე გადაწერილია",
+ "TOGGLE": "საიდუმლოს ხილვადობის გადართვა",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "მზადაა",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "წვდომის ტოკენი",
+ "DESCRIPTION": "დააკოპირეთ წვდომის ტოკენი და უსაფრთხოდ შეინახეთ",
+ "COPY_SUCCESSFUL": "წვდომის ტოკენი დაკოპირდა გაცვლის ბუფერში",
+ "RESET_SUCCESS": "წვდომის ტოკენი წარმატებით ხელახლა გენერირდა",
+ "RESET_ERROR": "წვდომის ტოკენის ხელახლა გენერაცია ვერ მოხერხდა. სცადეთ ხელახლა"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "ბოტის ავატარი"
+ },
+ "NAME": {
+ "LABEL": "ბოტის სახელი",
+ "PLACEHOLDER": "შეიყვანეთ ბოტის სახელი",
+ "REQUIRED": "ბოტის სახელი სავალდებულოა"
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "რას აკეთებს ეს ბოტი?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "ვებჰუკის URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "ვებჰუკის URL სავალდებულოა"
+ },
+ "ERRORS": {
+ "NAME": "ბოტის სახელი სავალდებულოა",
+ "URL": "ვებჰუკის URL სავალდებულოა",
+ "VALID_URL": "გთხოვთ მიუთითოთ სწორი URL, რომელიც იწყება http:// ან https://-ით"
+ },
+ "CANCEL": "გაუქმება",
+ "CREATE": "ბოტის შექმნა",
+ "UPDATE": "ბოტის განახლება"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "დააკონფიგურირეთ ვებჰუკ-ბოტი თქვენს საკუთარ სერვისებთან ინტეგრაციისთვის. ბოტი მიიღებს და დაამუშავებს საუბრებიდან ივენთებს და შეძლებს მათზე პასუხის გაცემას."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
index b563de61f..4b66fe864 100644
--- a/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agents",
"HEADER_BTN_TXT": "Add Agent",
"LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
index 64a0e83d6..2bde32367 100644
--- a/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "საუბარი",
+ "CONTACT": "კონტაქტი",
+ "COMPANY": "კომპანია"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "ტექსტი",
+ "NUMBER": "რიცხვი",
+ "LINK": "ბმული",
+ "DATE": "თარიღი",
+ "LIST": "სია",
+ "CHECKBOX": "მონიშვნის ველი"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "კომპანია"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/auditLogs.json b/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
index bb3007975..0cfb45dd0 100644
--- a/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ka/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} წაშალა საუბარი #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/automation.json b/app/javascript/dashboard/i18n/locale/ka/automation.json
index 469df1c24..14a01db3c 100644
--- a/app/javascript/dashboard/i18n/locale/ka/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "საუბარი შეიქმნა",
+ "CONVERSATION_UPDATED": "საუბარი განახლდა",
+ "MESSAGE_CREATED": "შეტყობინება შეიქმნა",
+ "CONVERSATION_RESOLVED": "საუბარი გადაწყდა",
+ "CONVERSATION_OPENED": "საუბარი გაიხსნა"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "აგენტის მინიჭება",
+ "ASSIGN_TEAM": "გუნდის მინიჭება",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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": "შეტყობინების გაგზავნა",
+ "ADD_PRIVATE_NOTE": "პირადი ჩანაწერის დამატება",
+ "CHANGE_PRIORITY": "პრიორიტეტის შეცვლა",
+ "ADD_SLA": "SLA-ის დამატება",
+ "OPEN_CONVERSATION": "საუბრის გახსნა",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "შემომავალი შეტყობინება",
+ "OUTGOING": "გამავალი შეტყობინება"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "არცერთი",
+ "LOW": "დაბალი",
+ "MEDIUM": "საშუალო",
+ "HIGH": "მაღალი",
+ "URGENT": "გადაუდებელი"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "შეტყობინების ტიპი",
+ "PRIVATE_NOTE": "Private Note",
+ "MESSAGE_CONTAINS": "შეტყობინება შეიცავს",
+ "EMAIL": "ელფოსტა",
+ "INBOX": "ინბოქსი",
+ "CONVERSATION_LANGUAGE": "საუბრის ენა",
+ "PHONE_NUMBER": "ტელეფონის ნომერი",
+ "STATUS": "სტატუსი",
+ "BROWSER_LANGUAGE": "ბრაუზერის ენა",
+ "MAIL_SUBJECT": "ელფოსტის თემა",
+ "COUNTRY_NAME": "ქვეყანა",
+ "COMPANY_NAME": "კომპანია",
+ "REFERER_LINK": "რეფერერის ბმული",
+ "ASSIGNEE_NAME": "დავალებული",
+ "TEAM_NAME": "გუნდი",
+ "PRIORITY": "პრიორიტეტი",
+ "LABELS": "იარლიყები"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
index 6af8316e9..6b922bc7b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ka/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/campaign.json b/app/javascript/dashboard/i18n/locale/ka/campaign.json
index bbcc463ee..4977afe06 100644
--- a/app/javascript/dashboard/i18n/locale/ka/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ka/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "მუშავდება",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "მუშავდება",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
index 082afcb84..05c05c0c6 100644
--- a/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/ka/chatlist.json b/app/javascript/dashboard/i18n/locale/ka/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/ka/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ka/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/companies.json b/app/javascript/dashboard/i18n/locale/ka/companies.json
new file mode 100644
index 000000000..604c88fe9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "რიგი",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "კონტაქტები",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "კომპანია",
+ "CONTACT_LABEL": "კონტაქტი",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "დომენი"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/components.json b/app/javascript/dashboard/i18n/locale/ka/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/contact.json b/app/javascript/dashboard/i18n/locale/ka/contact.json
index 5186fda9a..6658c299f 100644
--- a/app/javascript/dashboard/i18n/locale/ka/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ka/contact.json
@@ -1,25 +1,34 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
- "EMAIL_ADDRESS": "Email Address",
- "PHONE_NUMBER": "Phone number",
+ "NOT_AVAILABLE": "მიუწვდომელია",
+ "EMAIL_ADDRESS": "ელ. ფოსტის მისამართი",
+ "PHONE_NUMBER": "ტელეფონის ნომერი",
"IDENTIFIER": "Identifier",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
- "COMPANY": "Company",
- "LOCATION": "Location",
+ "COPY_SUCCESSFUL": "კლიპბორდზე წარმატებით დაკოპირდა",
+ "COMPANY": "კომპანია",
+ "LOCATION": "ლოკაცია",
"BROWSER_LANGUAGE": "Browser Language",
- "CONVERSATION_TITLE": "Conversation Details",
+ "CONVERSATION_TITLE": "საუბრის დეტალები",
"VIEW_PROFILE": "View Profile",
- "BROWSER": "Browser",
- "OS": "Operating System",
- "INITIATED_FROM": "Initiated from",
- "INITIATED_AT": "Initiated at",
- "IP_ADDRESS": "IP Address",
+ "BROWSER": "ბრაუზერი",
+ "OS": "ოპერაციული სისტემა",
+ "INITIATED_FROM": "დაწყებულია",
+ "INITIATED_AT": "დაწყების დრო",
+ "IP_ADDRESS": "IP მისამართი",
"CREATED_AT_LABEL": "Created",
- "NEW_MESSAGE": "New message",
+ "NEW_MESSAGE": "ახალი შეტყობინება",
+ "CALL": "დარეკვა",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "აირჩიეთ ხმოვანი საფოსტო ყუთი"
+ },
"CONVERSATIONS": {
- "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
- "TITLE": "Previous Conversations"
+ "NO_RECORDS_FOUND": "ამ კონტაქტთან დაკავშირებული წინა საუბრები არ მოიძებნა.",
+ "TITLE": "წინა საუბრები"
},
"LABELS": {
"CONTACT": {
@@ -43,57 +52,19 @@
"UNMUTE_CONTACT": "Unblock Contact",
"MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
"UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "SEND_TRANSCRIPT": "ტრანსკრიპტის გაგზავნა",
+ "EDIT_LABEL": "რედაქტირება",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Custom Attributes",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "PREVIOUS_CONVERSATIONS": "Previous Conversations",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Edit Contact",
- "TITLE": "Edit contact",
- "DESC": "Edit contact details"
- },
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
+ "BUTTON_LABEL": "კონტაქტის რედაქტირება",
+ "TITLE": "კონტაქტის რედაქტირება",
+ "DESC": "კონტაქტის დეტალების რედაქტირება"
},
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
@@ -112,40 +83,40 @@
},
"CONTACT_FORM": {
"FORM": {
- "SUBMIT": "Submit",
- "CANCEL": "Cancel",
+ "SUBMIT": "გაგზავნა",
+ "CANCEL": "გაუქმება",
"AVATAR": {
- "LABEL": "Contact Avatar"
+ "LABEL": "კონტაქტის ავატარი"
},
"NAME": {
- "PLACEHOLDER": "Enter the full name of the contact",
- "LABEL": "Full Name"
+ "PLACEHOLDER": "შეიყვანეთ კონტაქტის სრული სახელი",
+ "LABEL": "სრული სახელი"
},
"BIO": {
- "PLACEHOLDER": "Enter the bio of the contact",
- "LABEL": "Bio"
+ "PLACEHOLDER": "შეიყვანეთ კონტაქტის ბიო",
+ "LABEL": "ბიო"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "Email Address",
+ "PLACEHOLDER": "შეიყვანეთ კონტაქტის ელ. ფოსტის მისამართი",
+ "LABEL": "ელ. ფოსტის მისამართი",
"DUPLICATE": "This email address is in use for another contact.",
"ERROR": "Please enter a valid email address."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Enter the phone number of the contact",
- "LABEL": "Phone Number",
+ "PLACEHOLDER": "შეიყვანეთ კონტაქტის ტელეფონის ნომერი",
+ "LABEL": "ტელეფონის ნომერი",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
- "ERROR": "Phone number should be either empty or of E.164 format",
+ "ERROR": "ტელეფონის ნომერი უნდა იყოს ან ცარიელი, ან E.164 ფორმატის",
"DIAL_CODE_ERROR": "Please select a dial code from the list",
"DUPLICATE": "This phone number is in use for another contact."
},
"LOCATION": {
- "PLACEHOLDER": "Enter the location of the contact",
- "LABEL": "Location"
+ "PLACEHOLDER": "შეიყვანეთ კონტაქტის მდებარეობა",
+ "LABEL": "მდებარეობა"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Enter the company name",
- "LABEL": "Company Name"
+ "PLACEHOLDER": "შეიყვანეთ კომპანიის სახელი",
+ "LABEL": "კომპანიის სახელი"
},
"COUNTRY": {
"PLACEHOLDER": "Enter the country name",
@@ -160,19 +131,19 @@
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
- "PLACEHOLDER": "Enter the Facebook username",
+ "PLACEHOLDER": "შეიყვანეთ Facebook-ის მომხმარებლის სახელი",
"LABEL": "Facebook"
},
"TWITTER": {
- "PLACEHOLDER": "Enter the Twitter username",
+ "PLACEHOLDER": "შეიყვანეთ Twitter-ის მომხმარებლის სახელი",
"LABEL": "Twitter"
},
"LINKEDIN": {
- "PLACEHOLDER": "Enter the LinkedIn username",
+ "PLACEHOLDER": "შეიყვანეთ LinkedIn-ის მომხმარებლის სახელი",
"LABEL": "LinkedIn"
},
"GITHUB": {
- "PLACEHOLDER": "Enter the Github username",
+ "PLACEHOLDER": "შეიყვანეთ Github-ის მომხმარებლის სახელი",
"LABEL": "Github"
}
}
@@ -183,22 +154,22 @@
"ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
}
},
- "SUCCESS_MESSAGE": "Contact saved successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "კონტაქტი წარმატებით შენახულია",
+ "ERROR_MESSAGE": "დაფიქსირდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Start conversation",
- "TITLE": "New conversation",
- "DESC": "Start a new conversation by sending a new message.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "BUTTON_LABEL": "საუბრის დაწყება",
+ "TITLE": "ახალი საუბარი",
+ "DESC": "დაიწყეთ ახალი საუბარი ახალი შეტყობინების გაგზავნით.",
+ "NO_INBOX": "ამ კონტაქტთან ახალი საუბრის დასაწყებად ვერ მოიძებნა ინბოქსი.",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "სად"
},
"INBOX": {
"LABEL": "Inbox",
"PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "ERROR": "აირჩიეთ ინბოქსი"
},
"SUBJECT": {
"LABEL": "Subject",
@@ -206,96 +177,33 @@
"ERROR": "Subject can't be empty"
},
"MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "LABEL": "მესიჯი",
+ "PLACEHOLDER": "დაწერეთ თქვენი მესიჯი აქ",
+ "ERROR": "მესიჯი არ შეიძლება იყოს ცარიელი"
},
"ATTACHMENTS": {
"SELECT": "Choose files",
"HELP_TEXT": "Drag and drop files here or choose files to attach"
},
- "SUBMIT": "Send message",
- "CANCEL": "Cancel",
- "SUCCESS_MESSAGE": "Message sent!",
+ "SUBMIT": "გაგზავნე მესიჯი",
+ "CANCEL": "გაუქმება",
+ "SUCCESS_MESSAGE": "მესიჯი გაგზავნილია!",
"GO_TO_CONVERSATION": "View",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "ERROR_MESSAGE": "გაგზავნა ვერ მოხერხდა! სცადეთ თავიდან"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "სოციალური პროფილები"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacts",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "აქტიური კონტაქტები",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacts"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "Cancel",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "COMPANY": "Company",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Name",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Yes, Delete",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Name",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "კომპანია",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Enter the company name"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "ეს ქმედება სამუდამო და შეუქცევადია.",
+ "BUTTON": "წაშლა ახლავე"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirm Deletion",
+ "DESCRIPTION": "ნამდვილად გსურთ ამ კონტაქტის წაშლა?",
+ "CONFIRM": "Yes, Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "კონტაქტის შენიშვნის დამატება",
+ "EXPAND": "Expand",
+ "COLLAPSE": "ჩაკეცვა",
+ "NO_NOTES": "შენიშვნები არ არის, შეგიძლიათ შენიშვნების დამატება კონტაქტის დეტალების გვერდიდან.",
+ "EMPTY_STATE": "There are no notes associated to this contact. You can add a note by typing in the box above.",
+ "CONVERSATION_EMPTY_STATE": "შენიშვნები ჯერ არ არის. შენიშვნის შესაქმნელად გამოიყენეთ შენიშვნის დამატების ღილაკი."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "ამ მომენტისთვის არცერთი კონტაქტი არ არის აქტიური 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Delete",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/contactFilters.json b/app/javascript/dashboard/i18n/locale/ka/contactFilters.json
index 09a543984..4c62f0789 100644
--- a/app/javascript/dashboard/i18n/locale/ka/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ka/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/ka/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ka/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/conversation.json b/app/javascript/dashboard/i18n/locale/ka/conversation.json
index cca1458b9..fbb860750 100644
--- a/app/javascript/dashboard/i18n/locale/ka/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ka/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " to get started",
"NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
"SEARCH_MESSAGES": "Search for messages in conversations",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Loading Conversations",
"CANNOT_REPLY": "You cannot reply due to",
"24_HOURS_WINDOW": "24 hour message window restriction",
+ "48_HOURS_WINDOW": "48 hour message window restriction",
+ "API_HOURS_WINDOW": "ამ საუბარზე პასუხის გაცემა მხოლოდ {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",
+ "BOT_HANDOFF_MESSAGE": "თქვენ პასუხობთ საუბარს, რომელსაც ამჟამად ამუშავებს ასისტენტი ან ბოტი",
+ "BOT_HANDOFF_ACTION": "ღიად მონიშვნა და თქვენთვის მინიჭება",
+ "BOT_HANDOFF_REOPEN_ACTION": "საუბრის ღიად მონიშვნა",
+ "BOT_HANDOFF_SUCCESS": "საუბარი გადმოგეცათ თქვენ",
+ "BOT_HANDOFF_ERROR": "საუბრის გადაბარება ვერ მოხერხდა. გთხოვთ, სცადოთ ხელახლა.",
"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": "ეს Instagram ანგარიში გადატანილია ახალი Instagram არხის საფოსტო ყუთში. ყველა ახალი შეტყობინება გამოჩნდება იქ. თქვენ ვეღარ შეძლებთ შეტყობინებების გაგზავნას ამ საუბრიდან.",
"REPLYING_TO": "You are replying to:",
"REMOVE_SELECTION": "Remove Selection",
"DOWNLOAD": "Download",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "შემომავალი ზარი",
+ "OUTGOING_CALL": "გამავალი ზარი",
+ "CALL_IN_PROGRESS": "ზარი მიმდინარეობს",
+ "NO_ANSWER": "პასუხი არ არის",
+ "NO_ANSWER_OUTBOUND_LABEL": "პასუხი არ არის",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "გამოტოვებული ზარი",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "ზარი დასრულდა",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "ჯერ არ უპასუხიათ",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "მათ უპასუხეს",
+ "YOU_ANSWERED": "თქვენ უპასუხეთ",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolve",
"REOPEN_ACTION": "Reopen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "მეტი მოქმედება",
"OPEN": "More",
"CLOSE": "Close",
"DETAILS": "details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agents",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"FAILED": "Couldn't change priority. Please try again."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "#{conversationId} საუბრის წაშლა",
+ "DESCRIPTION": "ნამდვილად გსურთ ამ საუბრის წაშლა?",
+ "CONFIRM": "Delete"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Mark as pending",
"RESOLVED": "Mark as resolved",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "საუბრის წაშლა",
+ "OPEN_IN_NEW_TAB": "ახალ ჩანართში გახსნა",
+ "COPY_LINK": "საუბრის ბმულის კოპირება",
+ "COPY_LINK_SUCCESS": "საუბრის ბმული კოპირებულია ბუფერში",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
"PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "მოდიე კოპილოტს დამატებითი ბრძნულობები, ან მკითხე რამე კიდევ... დაწექი Enter-მდე გამოგზავნა დასასრულებლად",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Reply",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "კოპილოტი ფიქრობს",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Cancel"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "შეიტანე ციტირებული ელ. ფოსტის ჯაჭვი",
+ "DISABLE_TOOLTIP": "არ შეიტანო ციტირებული ელ. ფოსტის ჯაჭვი",
+ "REMOVE_PREVIEW": "ციტირებული ელ. ფოსტის ჯაჭვის წაშლა",
+ "COLLAPSE": "გადახედვის ჩაკეცვა",
+ "EXPAND": "გადახედვის გაშლა"
}
},
"VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
@@ -186,10 +274,15 @@
"ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
"ASSIGN_LABEL_FAILED": "Label assignment failed",
"CHANGE_TEAM": "Conversation team changed",
+ "SUCCESS_DELETE_CONVERSATION": "საუბარი წარმატებით წაიშალა",
+ "FAIL_DELETE_CONVERSATION": "საუბრის წაშლა ვერ მოხერხდა! სცადეთ ხელახლა",
"FILE_SIZE_LIMIT": "File exceeds the {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB attachment limit",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sent by:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Delete",
"CANCEL": "Cancel"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "შემომავალი ზარი",
+ "OUTGOING_CALL": "გამავალი ზარი",
+ "CALL_IN_PROGRESS": "ზარი მიმდინარეობს",
+ "NOT_ANSWERED_YET": "ჯერ არ უპასუხიათ",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Cancel",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "Conversation Labels",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "კონტაქტის შენიშვნები",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "Previous Conversations",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "დაკავშირებული Linear-ის საკითხები",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pending",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/customRole.json b/app/javascript/dashboard/i18n/locale/ka/customRole.json
new file mode 100644
index 000000000..3bdc371e4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/datePicker.json b/app/javascript/dashboard/i18n/locale/ka/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/general.json b/app/javascript/dashboard/i18n/locale/ka/general.json
new file mode 100644
index 000000000..bdc7cb8a4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/generalSettings.json b/app/javascript/dashboard/i18n/locale/ka/generalSettings.json
index 185d328a5..6651bc6d3 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": "თქვენ გადააჭარბეთ საუბრის ლიმიტს. Hacker პაკეტი მხოლოდ 500 საუბრის საშუალებას იძლევა.",
+ "INBOXES": "თქვენ გადააჭარბეთ საფოსტო ყუთის ლიმიტს. Hacker პაკეტი მხოლოდ ვებსაიტის ლაივ ჩატს უჭერს მხარს. დამატებითი საფოსტო ყუთებისთვის, როგორიცაა ელ. ფოსტა, WhatsApp და ა.შ., საჭიროა ფასიანი პაკეტი.",
+ "AGENTS": "თქვენ გადააჭარბეთ აგენტების ლიმიტს. თქვენი პაკეტი მხოლოდ {allowedAgents} აგენტს ითვალისწინებს.",
+ "NON_ADMIN": "გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს პაკეტის განახლებისთვის და ყველა ფუნქციის გამოყენების გასაგრძელებლად."
+ },
"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": "თქვენი ანგარიშის წაშლა",
+ "NOTE": "ანგარიშის წაშლის შემდეგ, ყველა თქვენი მონაცემი წაიშლება.",
+ "BUTTON_TEXT": "თქვენი ანგარიშის წაშლა",
+ "CONFIRM": {
+ "TITLE": "ანგარიშის წაშლა",
+ "MESSAGE": "თქვენი ანგარიშის წაშლა შეუქცევადია. შეიყვანეთ თქვენი ანგარიშის სახელი ქვემოთ, რათა დაადასტუროთ, რომ გსურთ მისი სამუდამოდ წაშლა.",
+ "BUTTON_TEXT": "Delete",
+ "DISMISS": "Cancel",
+ "PLACE_HOLDER": "Please type {accountName} to confirm"
+ },
+ "SUCCESS": "ანგარიში წაშლისთვის მონიშნულია",
+ "FAILURE": "ანგარიშის წაშლა ვერ მოხერხდა, სცადეთ ხელახლა!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "ანგარიშის წაშლა დაგეგმილია",
+ "MESSAGE_MANUAL": "ეს ანგარიში წაშლისთვის დაგეგმილია {deletionDate}-სთვის. ეს მოითხოვა ადმინისტრატორმა. შეგიძლიათ გააუქმოთ წაშლა ამ თარიღამდე.",
+ "MESSAGE_INACTIVITY": "ეს ანგარიში წაშლისთვის დაგეგმილია {deletionDate}-სთვის ანგარიშის არააქტიურობის გამო. შეგიძლიათ გააუქმოთ წაშლა ამ თარიღამდე.",
+ "CLEAR_BUTTON": "დაგეგმილი წაშლის გაუქმება"
+ }
+ },
"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": "საუბრების ავტომატურად დახურვა",
+ "NOTE": "ეს კონფიგურაცია საშუალებას მოგცემთ, ავტომატურად დახუროთ საუბარი გარკვეული პერიოდის არააქტიურობის შემდეგ.",
+ "DURATION": {
+ "LABEL": "არააქტიურობის ხანგრძლივობა",
+ "HELP": "არააქტიურობის პერიოდი, რის შემდეგაც საუბარი ავტომატურად დაიხურება",
+ "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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
index 467b0def9..6b885b115 100644
--- a/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ka/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "დახმარების ცენტრი",
+ "NEW_PAGE": {
+ "DESCRIPTION": "შექმენით თვითმომსახურების დახმარების ცენტრის პორტალები თქვენი მომხმარებლებისთვის. დაეხმარეთ მათ სწრაფად იპოვონ პასუხები, ლოდინის გარეშე. გაამარტივეთ მოთხოვნები, გაზარდეთ აგენტების ეფექტურობა და აუმჯობესეთ მომხმარებელთა მხარდაჭერა.",
+ "CREATE_PORTAL_BUTTON": "პორტალის შექმნა"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
- "NEW_BUTTON": "New Article",
+ "FILTER": "ფილტრი",
+ "SORT": "სორტირება",
+ "LOCALE": "ლოკალი",
+ "SETTINGS_BUTTON": "პარამეტრები",
+ "NEW_BUTTON": "ახალი სტატია",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "გამოქვეყნებული",
+ "DRAFT": "სავარაუდო",
+ "ARCHIVED": "არქივირებული"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "ყველა სტატია",
+ "MINE": "ჩემი სტატიები",
+ "DRAFT": "სავარაუდო სტატიები",
+ "ARCHIVED": "არქივირებული სტატიები"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "აირჩიეთ ლოკალი",
+ "PLACEHOLDER": "აირჩიეთ ლოკალი",
+ "NO_RESULT": "ლოკალი ვერ მოიძებნა",
+ "SEARCH_PLACEHOLDER": "ლოკალის ძიება"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "ყველა სტატია",
+ "PUBLISH_BUTTON": "გამოქვეყნება",
+ "MOVE_TO_ARCHIVE_BUTTON": "გადატანა არქივში",
+ "PREVIEW": "წინასწარი ნახვა",
+ "ADD_TRANSLATION": "თარგმანის დამატება",
+ "OPEN_SIDEBAR": "გვერდითი პანელის გახსნა",
+ "CLOSE_SIDEBAR": "გვერდითი პანელის დახურვა",
+ "SAVING": "მიმდინარეობს შენახვა...",
+ "SAVED": "შენახულია"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
- "UPLOADING": "Uploading...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "TITLE": "სურათის ატვირთვა",
+ "UPLOADING": "ატვირთვა...",
+ "SUCCESS": "სურათი წარმატებით აიტვირთა",
+ "ERROR": "შეცდომა სურათის ატვირთვისას",
+ "UN_AUTHORIZED_ERROR": "თქვენ არ გაქვთ უფლება სურათების ატვირთვის",
+ "ERROR_FILE_SIZE": "სურათის ზომა უნდა იყოს {size}MB-ზე ნაკლები",
+ "ERROR_FILE_FORMAT": "სურათის ფორმატი უნდა იყოს jpg, jpeg ან png",
+ "ERROR_FILE_DIMENSIONS": "სურათის განზომილებები უნდა იყოს 2000 x 2000-ზე ნაკლები"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "სტატიის პარამეტრები",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "კატეგორია",
+ "TITLE": "აირჩიეთ კატეგორია",
+ "PLACEHOLDER": "აირჩიეთ კატეგორია",
+ "NO_RESULT": "კატეგორია ვერ მოიძებნა",
+ "SEARCH_PLACEHOLDER": "კატეგორიის ძებნა"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "ავტორი",
+ "TITLE": "აირჩიეთ ავტორი",
+ "PLACEHOLDER": "ავტორის არჩევა",
+ "NO_RESULT": "ავტორები ვერ მოიძებნა",
+ "SEARCH_PLACEHOLDER": "ავტორის ძებნა"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "მეტა სათაური",
+ "PLACEHOLDER": "მეტა სათაურის დამატება"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "მეტა აღწერა",
+ "PLACEHOLDER": "დაამატეთ თქვენი მეტა აღწერა უკეთესი SEO შედეგებისთვის..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "მეტა ტეგები",
+ "PLACEHOLDER": "დაამატეთ მეტა ტეგები, ერთმანეთისგან გამიჯნული კომით..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "სტატიის არქივირება",
+ "DELETE": "სტატიის წაშლა"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "უჯგუფო",
+ "SEARCH_RESULTS": "{query}-ის საძიებო შედეგები",
+ "EMPTY_TEXT": "ძებნეთ სტატიები პასუხებში ჩასასმელად.",
+ "SEARCH_LOADER": "ძებნა მიმდინარეობს...",
+ "INSERT_ARTICLE": "ჩასმა",
+ "NO_RESULT": "სტატიები არ მოიძებნა",
+ "COPY_LINK": "სტატიის ბმულის კოპირება კლიპბორდზე",
+ "OPEN_LINK": "სტატიის გახსნა ახალ ჩანართში",
+ "PREVIEW_LINK": "სტატიის წინასწარი ნახვა"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "პორტალები",
+ "DEFAULT": "ნაგულისხმები",
+ "NEW_BUTTON": "ახალი პორტალი",
+ "ACTIVE_BADGE": "აქტიური",
+ "CHOOSE_LOCALE_LABEL": "აირჩიეთ ლოკალი",
+ "LOADING_MESSAGE": "პორტალების ჩატვირთვა...",
+ "ARTICLES_LABEL": "სტატიები",
+ "NO_PORTALS_MESSAGE": "პორტალები არ არის ხელმისაწვდომი",
+ "ADD_NEW_LOCALE": "დაამატეთ ახალი ლოკალი",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
- "CANCEL_BUTTON_LABEL": "Cancel",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "TITLE": "პორტალები",
+ "PORTAL_SETTINGS": "პორტალის პარამეტრები",
+ "SUBTITLE": "თქვენ გაქვთ რამდენიმე პორტალი და თითოეულ პორტალს შეუძლია ჰქონდეს სხვადასხვა ლოკალი.",
+ "CANCEL_BUTTON_LABEL": "გაუქმება",
+ "CHOOSE_LOCALE_BUTTON": "ენის არჩევა"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
- "SETTINGS": "Settings",
- "DELETE": "Delete"
+ "COUNT_LABEL": "სტატიები",
+ "ADD": "ლოკალის დამატება",
+ "VISIT": "საიტზე გადასვლა",
+ "SETTINGS": "პარამეტრები",
+ "DELETE": "წაშლა"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "პორტალის კონფიგურაციები",
"ITEMS": {
- "NAME": "Name",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "NAME": "სახელი",
+ "DOMAIN": "მორგებული დომენი",
+ "SLUG": "სლაგი",
+ "TITLE": "პორტალის სათაური",
+ "THEME": "თემის ფერი",
+ "SUB_TEXT": "პორტალის ქვესათაური"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "ხელმისაწვდომი ლოკალები",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
- "DELETE": "Delete",
- "DEFAULT_LOCALE": "Default"
+ "NAME": "ლოკალის სახელი",
+ "CODE": "ლოკალის კოდი",
+ "ARTICLE_COUNT": "სტატიების რაოდენობა",
+ "CATEGORIES": "კატეგორიების რაოდენობა",
+ "SWAP": "გაცვლა",
+ "DELETE": "წაშლა",
+ "DEFAULT_LOCALE": "ნაგულისხმები"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "პორტალის წაშლა",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ ეს პორტალი წაშალოთ",
+ "YES": "დიახ, პორტალის წაშლა",
+ "NO": "არა, პორტალის შენარჩუნება",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "პორტალი წარმატებით წაიშალა",
+ "DELETE_ERROR": "შეცდომა პორტალის წაშლის დროს"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME ინსტრუქციები წარმატებით გაიგზავნა",
+ "ERROR_MESSAGE": "შეცდომა CNAME ინსტრუქციების გაგზავნისას"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "პორტალის რედაქტირება",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "ძირითადი ინფორმაცია"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "პორტალის მორგება"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "კატეგორიები"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "ლოკალები"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "კატეგორიები შემდეგში",
+ "NEW_CATEGORY": "ახალი კატეგორია",
"TABLE": {
- "NAME": "Name",
- "DESCRIPTION": "Description",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "NAME": "სახელი",
+ "DESCRIPTION": "აღწერა",
+ "LOCALE": "ლოკალი",
+ "ARTICLE_COUNT": "სტატიების რაოდენობა",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "კატეგორიის რედაქტირება",
+ "DELETE": "კატეგორიის წაშლა"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "კატეგორიები არ მოიძებნა"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "ძირითადი პარამეტრების განახლება"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "დახმარების ცენტრის ინფორმაცია",
+ "BODY": "პორტალის ძირითადი ინფორმაცია"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "დახმარების ცენტრის მორგება",
+ "BODY": "პორტალის მორგება"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "ვოილა! 🎉",
+ "BODY": "ყველაფერი მზად არის!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
- "BACK_BUTTON": "Back",
+ "BACK_BUTTON": "უკან",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "პორტალის შექმნა",
+ "TITLE": "დახმარების ცენტრის ინფორმაცია",
+ "CREATE_BASIC_SETTING_BUTTON": "პორტალის ძირითადი პარამეტრების შექმნა"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "პორტალის მორგება",
+ "TITLE": "დახმარების ცენტრის მორგება",
+ "UPDATE_PORTAL_BUTTON": "პორტალის პარამეტრების განახლება"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "ვოილა!🎉 ყველაფერი მზადაა!",
+ "MESSAGE": "ახლა შეგიძლიათ ნახოთ ეს შექმნილი პორტალი თქვენს ყველა პორტალების გვერდზე.",
+ "FINISH": "გადადით ყველა პორტალების გვერდზე"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "ლოგო",
+ "UPLOAD_BUTTON": "ლოგოს ატვირთვა",
+ "HELP_TEXT": "ეს ლოგო გამოჩნდება პორტალის ჰედერზე.",
+ "IMAGE_UPLOAD_SUCCESS": "ლოგო წარმატებით აიტვირთა",
+ "IMAGE_UPLOAD_ERROR": "ლოგო წარმატებით წაიშალა",
+ "IMAGE_DELETE_ERROR": "შეცდომა ლოგოს წაშლისას"
},
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "პორტალის სახელი",
+ "HELP_TEXT": "სახელი გამოყენებული იქნება პორტალის საჯარო და შიდა ნაწილში.",
+ "ERROR": "სახელის შეყვანა აუცილებელია"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "პორტალის სლაგი url-ებისთვის",
+ "ERROR": "სლაგი აუცილებელია"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "მორგებული დომენი",
+ "PLACEHOLDER": "პორტალის მორგებული დომენი",
+ "HELP_TEXT": "დაამატეთ მხოლოდ მაშინ, თუ გსურთ თქვენი პორტალებისთვის კასტომიზებული დომენის გამოყენება. მაგ: {exampleURL}",
+ "ERROR": "შეიყვანეთ ვალიდური დომენის URL"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "მთავარი გვერდის ბმული",
+ "PLACEHOLDER": "პორტალის მთავარი გვერდის ბმული",
+ "HELP_TEXT": "ლინკი, რომელიც გამოიყენება პორტალიდან მთავარი გვერდზე დაბრუნებისთვის. მაგ: {exampleURL}",
+ "ERROR": "შეიყვანეთ ვალიდური მთავარი გვერდის URL"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "პორტალის თემის ფერი",
+ "HELP_TEXT": "ეს ფერი გამოჩნდება პორტალის თემის ფერად."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "გვერდის სათაური",
+ "PLACEHOLDER": "პორტალის გვერდის სათაური",
+ "HELP_TEXT": "გვერდის სათაური გამოყენებული იქნება საჯარო პორტალში.",
+ "ERROR": "გვერდის სათაურის შეყვანა აუცილებელია"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "სათაურის ტექსტი",
+ "PLACEHOLDER": "პორტალის სათაურის ტექსტი",
+ "HELP_TEXT": "პორტალის სათაურის ტექსტი გამოყენებული იქნება საჯარო პორტალში.",
+ "ERROR": "პორტალის სათაურის ტექსტი აუცილებელია"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "პორტალი წარმატებით შეიქმნა.",
+ "ERROR_MESSAGE_FOR_BASIC": "პორტალის შექმნა ვერ მოხერხდა. სცადეთ თავიდან.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "პორტალი წარმატებით განახლდა.",
+ "ERROR_MESSAGE_FOR_UPDATE": "პორტალის განახლება ვერ მოხერხდა. სცადეთ თავიდან."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "ახალი ლოკალის დამატება",
+ "SUB_TITLE": "ეს დაამატებს ახალ ლოკალს თქვენს ხელმისაწვდომ თარგმნების სიაში.",
+ "PORTAL": "პორტალი",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "ლოკალი",
+ "PLACEHOLDER": "აირჩიეთ ლოკალი",
+ "ERROR": "ლოკალი აუცილებელია"
},
"BUTTONS": {
- "CREATE": "Create locale",
- "CANCEL": "Cancel"
+ "CREATE": "ლოკალის შექმნა",
+ "CANCEL": "გაუქმება"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "ლოკალი წარმატებით დაემატა",
+ "ERROR_MESSAGE": "ლოკალის დამატება ვერ მოხერხდა. სცადეთ თავიდან."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "ნაგულისხმევი ლოკალი წარმატებით განახლდა",
+ "ERROR_MESSAGE": "ნაგულისხმევი ლოკალის განახლება ვერ მოხერხდა. სცადეთ ისევ."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "ლოკალი პორტალიდან წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "ლოკალის პორტალიდან წაშლა ვერ მოხერხდა. სცადეთ ისევ."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "სტატიების ჩატვირთვა...",
+ "404": "თქვენი ძიების შესაბამისი სტატიები არ მოიძებნა 🔍",
+ "NO_ARTICLES": "ხელმისაწვდომი სტატიები არ არის",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
- "STATUS": "Status",
- "LAST_EDITED": "Last edited"
+ "TITLE": "სათაური",
+ "CATEGORY": "კატეგორია",
+ "READ_COUNT": "ნახვები",
+ "STATUS": "სტატუსი",
+ "LAST_EDITED": "ბოლო რედაქტირება"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "მიერ",
+ "AUTHOR_NOT_AVAILABLE": "ავტორი მიუწვდომელია"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "სტატიის ჩატვირთვა...",
+ "TITLE_PLACEHOLDER": "სტატიის სათაური აქ",
+ "CONTENT_PLACEHOLDER": "დაწერეთ თქვენი სტატია აქ",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "სტატიის შენახვისას მოხდა შეცდომა"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "სტატიის გამოქვეყნებისას მოხდა შეცდომა",
+ "SUCCESS": "სტატია წარმატებით გამოქვეყნდა"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "შეცდომა სტატიის არქივირებისას",
+ "SUCCESS": "სტატია წარმატებით იქნა არქივირებული"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "შეცდომა სტატიაზე მუშაობის დროს",
+ "SUCCESS": "სტატია წარმატებით შეიქმნა"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
- "NO": "No, Keep it"
+ "TITLE": "წაშლის დადასტურება",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ სტატიის წაშლა?",
+ "YES": "დიახ, წაშლა",
+ "NO": "არა, შენარჩუნება"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "სტატია წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "შეცდომა სტატიის წაშლის დროს"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "სტატიების გადანაწილება შეუძლებელია. გთხოვთ, სცადეთ თავიდან."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "კატეგორიების გადანაწილება შეუძლებელია. გთხოვთ, სცადეთ თავიდან."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "გთხოვთ, დაამატოთ სტატიის სათაური და შინაარსი, მხოლოდ ამის შემდეგ შეგიძლიათ დაარეგულიროთ პარამეტრები"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "სტატიების ძებნა"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "კატეგორიის შექმნა",
+ "SUB_TITLE": "კატეგორია გამოყენებული იქნება საჯარო პორტალში სტატიების კატეგორიზაციისთვის.",
+ "PORTAL": "პორტალი",
+ "LOCALE": "ლოკალი",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "კატეგორიის სახელი",
+ "HELP_TEXT": "კატეგორიის სახელი და აიკონი გამოყენებული იქნება საჯარო პორტალში სტატიების კატეგორიზაციისთვის.",
+ "ERROR": "სახელის შეყვანა აუცილებელია"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
- "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "კატეგორიის slug url-ებისთვის",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/ka-GE/categories/my-slug",
+ "ERROR": "Slug-ის შეყვანა აუცილებელია"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "მოკლე აღწერა კატეგორიის შესახებ.",
+ "ERROR": "აღწერა აუცილებელია"
},
"BUTTONS": {
- "CREATE": "Create category",
- "CANCEL": "Cancel"
+ "CREATE": "კატეგორიის შექმნა",
+ "CANCEL": "გაუქმება"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "კატეგორიის შექმნა ვერ მოხერხდა"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "კატეგორიის რედაქტირება",
+ "SUB_TITLE": "კატეგორიის რედაქტირება განაახლებს კატეგორიას საჯარო პორტალზე.",
+ "PORTAL": "პორტალი",
+ "LOCALE": "ლოკალი",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "კატეგორიის სახელი",
+ "HELP_TEXT": "კატეგორიის სახელი და აიკონი გამოყენებული იქნება საჯარო პორტალში სტატიების კატეგორიზაციისთვის.",
+ "ERROR": "სახელი აუცილებელია"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
- "HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "კატეგორიის სლაგი url-ებისთვის",
+ "HELP_TEXT": "app.chatwoot.com/hc/my-portal/ka-GE/categories/my-slug",
+ "ERROR": "სლაგი აუცილებელია"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "მოკლე აღწერა კატეგორიის შესახებ.",
+ "ERROR": "აღწერა აუცილებელია"
},
"BUTTONS": {
- "CREATE": "Update category",
- "CANCEL": "Cancel"
+ "CREATE": "კატეგორიის განახლება",
+ "CANCEL": "გაუქმება"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით განახლდა",
+ "ERROR_MESSAGE": "კატეგორიის განახლება ვერ მოხერხდა"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "კატეგორიის წაშლა ვერ მოხერხდა"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
- "CANCEL": "Close",
- "BACK": "Back",
- "BACK_RESULTS": "Back to results"
+ "TITLE": "სტატიების ძიება",
+ "PLACEHOLDER": "სტატიების ძიება",
+ "NO_RESULT": "სტატია ვერ მოიძებნა",
+ "SEARCHING": "ძებნა...",
+ "SEARCH_BUTTON": "ძებნა",
+ "INSERT_ARTICLE": "ლინკის ჩასმა",
+ "IFRAME_ERROR": "URL ცარიელია ან არასწორია. კონტენტის ჩვენება შეუძლებელია.",
+ "OPEN_ARTICLE_SEARCH": "ჩასვით სტატია დახმარების ცენტრიდან",
+ "SUCCESS_ARTICLE_INSERTED": "სტატია წარმატებით ჩასმულია",
+ "PREVIEW_LINK": "სტატიის წინასწარი ნახვა",
+ "CANCEL": "დახურვა",
+ "BACK": "უკან",
+ "BACK_RESULTS": "შედეგებზე დაბრუნება"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "დახმარების ცენტრი",
+ "DESCRIPTION": "შექმენით მომხმარებელზე მორგებული თვითმომსახურების პორტალები. დაეხმარეთ მომხმარებლებს სტატიებზე წვდომაში და მიიღონ მხარდაჭერა 24/7. გააუმჯობესეთ თქვენი გამოწერა ამ ფუნქციის ჩართვისთვის.",
+ "SELF_HOSTED_DESCRIPTION": "შექმენით მომხმარებელზე მორგებული თვითმომსახურების პორტალები. დაეხმარეთ თქვენს მომხმარებლებს სტატიების წვდომაში და მიიღონ მხარდაჭერა 24/7. გთხოვთ, დაუკავშირდეთ თქვენს ადმინისტრატორს ამ ფუნქციის ჩართვისთვის.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "გაიგეთ მეტი",
+ "UPGRADE": "განახლება"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "მრავალჯერადი პორტალები",
+ "DESCRIPTION": "შექმენით მრავალჯერადი დახმარების ცენტრის პორტალები სხვადასხვა პროდუქტებისთვის ერთი ანგარიშის გამოყენებით."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "ლოკალების სრული მხარდაჭერა",
+ "DESCRIPTION": "ლოკალიზეთ პორტალი თქვენს ენაზე. ჩვენ ვმხარდაჭერთ ყველა ლოკალს და ვაძლევთ საშუალებას თარგმნოთ თითოეული სტატია."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO-სთვის მეგობრული დიზაინი",
+ "DESCRIPTION": "მორგეთ თქვენი მეტა ტეგები, რათა გააუმჯობესოთ ხილვადობა საძიებო სისტემებში ჩვენი SEO-სთვის მეგობრულ გვერდებზე."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "API-ს სრული მხარდაჭერა",
+ "DESCRIPTION": "გამოიყენეთ პორტალი როგორც headless CMS მესამე მხარის ფრონტენდ ფრეიმვორქებთან ჩვენი API-ების გამოყენებით."
}
}
+ },
+ "LOADING": "იტვირთება...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} ნახვა | {count} ნახვები",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "გამოქვეყნება",
+ "DRAFT": "ჩარჩო",
+ "ARCHIVE": "არქივი",
+ "TRANSLATE": "Translate",
+ "DELETE": "წაშლა"
+ },
+ "STATUS": {
+ "DRAFT": "ჩანაწერი",
+ "PUBLISHED": "გამოქვეყნებული",
+ "ARCHIVED": "არქივირებული"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "კატეგორიის გარეშე"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "ყველა სტატია",
+ "MINE": "ჩემი",
+ "DRAFT": "ჩარჩილი",
+ "PUBLISHED": "გამოქვეყნებული",
+ "ARCHIVED": "არქივირებული"
+ },
+ "CATEGORY": {
+ "ALL": "ყველა კატეგორია"
+ },
+ "LOCALE": {
+ "ALL": "ყველა ლოკაცია"
+ },
+ "NEW_ARTICLE": "ახალი სტატია"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "სტატიის დაწერა",
+ "SUBTITLE": "დაწერეთ მდიდარი სტატია, დავიწყოთ!",
+ "BUTTON_LABEL": "ახალი სტატია"
+ },
+ "MINE": {
+ "TITLE": "აქ არ გაქვთ დაწერილი არცერთი სტატია",
+ "SUBTITLE": "აქ ჩანს ყველა სტატია, რომელიც თქვენ დაწერეთ სწრაფი წვდომისთვის."
+ },
+ "DRAFT": {
+ "TITLE": "სავარაუდო პროექტებში არ არის სტატიები",
+ "SUBTITLE": "საველე სტატიები გამოჩნდება აქ"
+ },
+ "PUBLISHED": {
+ "TITLE": "გამოქვეყნებული სტატიები არ არის",
+ "SUBTITLE": "გამოქვეყნებული სტატიები გამოჩნდება აქ"
+ },
+ "ARCHIVED": {
+ "TITLE": "არქივში სტატიები არ არის",
+ "SUBTITLE": "არქივში არსებული სტატიები პორტალზე არ ჩანს, შეგიძლიათ გამოიყენოთ მოძველებული ან გაუქმებული გვერდების ნიშნად"
+ },
+ "CATEGORY": {
+ "TITLE": "ამ კატეგორიაში სტატიები არ არის",
+ "SUBTITLE": "ამ კატეგორიის სტატიები გამოჩნდება აქ"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "ყველას არჩევა ({count})",
+ "SELECTED_COUNT": "{count} არჩეული",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "გამოქვეყნება",
+ "DRAFT": "სავარაუდო",
+ "ARCHIVE": "არქივი",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "ახალი კატეგორია",
+ "EDIT_CATEGORY": "კატეგორიის რედაქტირება",
+ "CATEGORIES_COUNT": "{n} კატეგორია | {n} კატეგორიები",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "კატეგორიები ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} სტატია) | {categoryName} ({categoryCount} სტატიები)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "კატეგორიები ვერ მოიძებნა",
+ "SUBTITLE": "კატეგორიები აქ გამოჩნდება. შეგიძლიათ დაამატოთ კატეგორია ღილაკზე „ახალი კატეგორია“ დაჭერით."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} სტატია | {count} სტატიები"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "კატეგორიის შექმნა ვერ მოხერხდა"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით განახლდა",
+ "ERROR_MESSAGE": "კატეგორიის განახლება შეუძლებელია"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "კატეგორია წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "კატეგორიის წაშლა შეუძლებელია"
+ }
+ },
+ "HEADER": {
+ "CREATE": "კატეგორიის შექმნა",
+ "EDIT": "კატეგორიის რედაქტირება",
+ "DESCRIPTION": "კატეგორიის რედაქტირება განაახლებს კატეგორიას საჯარო პორტალში.",
+ "PORTAL": "პორტალი",
+ "LOCALE": "ლოკალი"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "კატეგორიის სახელი",
+ "ERROR": "სახელი აუცილებელია"
+ },
+ "SLUG": {
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "კატეგორიის სლაგი url-ებისთვის",
+ "ERROR": "სლაგი აუცილებელია",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "მოკლე აღწერა კატეგორიის შესახებ.",
+ "ERROR": "აღწერა აუცილებელია"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "შექმნა",
+ "EDIT": "განახლება",
+ "CANCEL": "გაუქმება"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "ლოკალები არ არის | {n} ლოკალი | {n} ლოკალები",
+ "NEW_LOCALE_BUTTON_TEXT": "ახალი ლოკალი",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} სტატია | {count} სტატიები",
+ "CATEGORIES_COUNT": "{count} კატეგორია | {count} კატეგორიები",
+ "DEFAULT": "ნაგულისხმები",
+ "DRAFT": "სავარაუდო",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "დაყენება როგორც ნაგულისხმები",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "წაშლა"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "ახალი ლოკალის დამატება",
+ "DESCRIPTION": "აირჩიეთ ენა, რომელშიც ეს სტატია დაიწერება. ეს დაემატება თქვენს თარგმნების სიას და შემდგომ შეგიძლიათ დაამატოთ მეტი.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "აირჩიეთ ლოკალი..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "გამოქვეყნებული",
+ "DRAFT": "სავარაუდო"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ლოკალი წარმატებით დაემატა",
+ "ERROR_MESSAGE": "ლოკალის დამატება ვერ მოხერხდა. სცადეთ თავიდან."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "მიმდინარეობს შენახვა...",
+ "SAVED": "შენახულია"
+ },
+ "PREVIEW": "წინასწარი ნახვა",
+ "PUBLISH": "გამოქვეყნება",
+ "DRAFT": "სავარაუდო ვერსია",
+ "ARCHIVE": "არქივი",
+ "BACK_TO_ARTICLES": "უკან სტატიებთან"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "მეტი თვისებები",
+ "UNCATEGORIZED": "კატეგორიის გარეშე",
+ "EDITOR_PLACEHOLDER": "რაიმე დაწერეთ..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "სტატიის თვისებები",
+ "META_DESCRIPTION": "მეტა აღწერა",
+ "META_DESCRIPTION_PLACEHOLDER": "მეტა აღწერის დამატება",
+ "META_TITLE": "მეტა სათაური",
+ "META_TITLE_PLACEHOLDER": "მეტა სათაურის დამატება",
+ "META_TAGS": "მეტა ტეგები",
+ "META_TAGS_PLACEHOLDER": "მეტა ტეგების დამატება"
+ },
+ "API": {
+ "ERROR": "შეცდომა სტატიას შენახვისას"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "ახალი პორტალი",
+ "PORTALS": "პორტალები",
+ "CREATE_PORTAL": "შექმენით და მართეთ მრავალი პორტალი",
+ "ARTICLES": "სტატიები",
+ "DOMAIN": "დომენი",
+ "PORTAL_NAME": "პორტალის სახელი"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "ახალი პორტალის შექმნა",
+ "DESCRIPTION": "მიანიჭეთ პორტალს სახელი და შექმენით მომხმარებლისთვის მოსახერხებელი URL სლაგი. ორივე მოგვიანებით შეგიძლიათ შეცვალოთ პარამეტრებში.",
+ "CONFIRM_BUTTON_LABEL": "შექმნა",
+ "NAME": {
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "მომხმარებლის სახელმძღვანელო | Chatwoot",
+ "MESSAGE": "აირჩიეთ პორტალის სახელი.",
+ "ERROR": "სახელი აუცილებელია"
+ },
+ "SLUG": {
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "სლაგი აუცილებელია",
+ "FORMAT_ERROR": "გთხოვთ შეიყვანოთ ვალიდური slug, მაგალითად: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "ლოგო",
+ "IMAGE_UPLOAD_ERROR": "სურათის ატვირთვა ვერ მოხერხდა! სცადეთ თავიდან",
+ "IMAGE_UPLOAD_SUCCESS": "სურათი წარმატებით დაემატა. გთხოვთ დააჭიროთ ცვლილებების შენახვას ლოგოს შესანახად",
+ "IMAGE_DELETE_SUCCESS": "ლოგო წარმატებით წაიშალა",
+ "IMAGE_DELETE_ERROR": "ლოგოს წაშლა შეუძლებელია",
+ "IMAGE_UPLOAD_SIZE_ERROR": "სურათის ზომა უნდა იყოს {size}MB-ზე ნაკლები"
+ },
+ "NAME": {
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "პორტალის სახელი",
+ "ERROR": "სახელის შეყვანა აუცილებელია"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "სათაურის ტექსტი",
+ "PLACEHOLDER": "პორტალის სათაურის ტექსტი"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "გვერდის სათაური",
+ "PLACEHOLDER": "პორტალის გვერდის სათაური"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "მთავარი გვერდის ლინკი",
+ "PLACEHOLDER": "პორტალის მთავარი გვერდის ბმული",
+ "ERROR": "შეიყვანეთ ვალიდური URL. მთავარი გვერდის ბმული უნდა იწყებოდეს 'http://' ან 'https://'-ით."
+ },
+ "SLUG": {
+ "LABEL": "სლაგი",
+ "PLACEHOLDER": "პორტალის სლაგი"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "ცოცხალი ჩატის ვიჯეტი",
+ "PLACEHOLDER": "აირჩიეთ ცოცხალი ჩატის ვიჯეტი",
+ "HELP_TEXT": "აირჩიეთ პირდაპირი ჩეთის ვიჯეტი, რომელიც გამოჩნდება თქვენს დახმარების ცენტრში",
+ "NONE_OPTION": "ვიჯეტი არ არის"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "ბრენდის ფერი"
+ },
+ "SAVE_CHANGES": "ცვლილებების შენახვა"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "მორგებული დომენი",
+ "LABEL": "მორგებული დომენი:",
+ "DESCRIPTION": "თქვენ შეგიძლიათ თქვენი პორტალი განათავსოთ კასტომიზებულ დომენზე. მაგალითად, თუ თქვენი ვებგვერდია yourdomain.com და გსურთ პორტალი იყოს ხელმისაწვდომი docs.yourdomain.com-ზე, უბრალოდ შეიყვანეთ ეს ამ ველში.",
+ "STATUS_DESCRIPTION": "თქვენი მორგებული პორტალი დაიწყებს მუშაობას, როგორც კი დადასტურდება.",
+ "PLACEHOLDER": "პორტალის კასტომიზებული დომენი",
+ "EDIT_BUTTON": "რედაქტირება",
+ "ADD_BUTTON": "კასტომიზებული დომენის დამატება",
+ "STATUS": {
+ "LIVE": "აქტიური",
+ "PENDING": "ვერიფიკაციის მოლოდინშია",
+ "ERROR": "ვერიფიკაცია ვერ მოხერხდა"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "კასტომიზებული დომენის დამატება",
+ "EDIT_HEADER": "კასტომიზებული დომენის რედაქტირება",
+ "ADD_CONFIRM_BUTTON_LABEL": "დომენის დამატება",
+ "EDIT_CONFIRM_BUTTON_LABEL": "დომენის განახლება",
+ "LABEL": "მორგებული დომენი",
+ "PLACEHOLDER": "პორტალის მორგებული დომენი",
+ "ERROR": "მორგებული დომენი აუცილებელია",
+ "FORMAT_ERROR": "გთხოვთ, შეიყვანოთ ვალიდური დომენის URL, მაგალითად docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS კონფიგურაცია",
+ "DESCRIPTION": "შესვლა თქვენს DNS პროვაიდერთან დაკავშირებულ ანგარიშში და დაამატეთ CNAME ჩანაწერი ქვედომენისთვის, რომელიც მიუთითებს chatwoot.help-ზე",
+ "COPY": "CNAME წარმატებით კოპირებულია",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "გაგზავნეთ ინსტრუქციები",
+ "DESCRIPTION": "თუ გსურთ, რომ ეს ნაბიჯი თქვენი განვითარების გუნდის რომელიმე წევრმა შეასრულოს, ქვემოთ შეიყვანეთ მათი ელფოსტის მისამართი და ჩვენ მათ საჭირო ინსტრუქციებს გავუგზავნით.",
+ "PLACEHOLDER": "შეიყვანეთ მათი ელფოსტა",
+ "ERROR": "შეიყვანეთ ვალიდური ელფოსტის მისამართი",
+ "SEND_BUTTON": "გაგზავნა"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName}-ის წაშლა",
+ "HEADER": "პორტალის წაშლა",
+ "DESCRIPTION": "ამ პორტალის მუდმივი წაშლა. ეს მოქმედება დაუბრუნებელია",
+ "DIALOG": {
+ "HEADER": "დარწმუნებული ხართ, რომ გინდათ {portalName}-ის წაშლა?",
+ "DESCRIPTION": "ეს არის მუდმივი მოქმედება, რომელიც უკან დაბრუნებას არ ექვემდებარება.",
+ "CONFIRM_BUTTON_LABEL": "წაშლა"
+ }
+ },
+ "EDIT_CONFIGURATION": "კონფიგურაციის რედაქტირება"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "წაშლა"
+ },
+ "SAVE": "ცვლილებების შენახვა"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "პორტალი წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "პორტალის შექმნა შეუძლებელია"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "პორტალი წარმატებით განახლდა",
+ "ERROR_MESSAGE": "პორტალის განახლება შეუძლებელია"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "PDF დოკუმენტის ატვირთვა",
+ "DESCRIPTION": "ატვირთეთ PDF დოკუმენტი, რათა AI-ით ავტომატურად შექმნათ ხშირად დასმული კითხვები",
+ "DRAG_DROP_TEXT": "გადაათრიეთ და ჩამოაგდეთ თქვენი PDF ფაილი აქ, ან დააჭირეთ არჩევისთვის",
+ "SELECT_FILE": "აირჩიეთ PDF ფაილი",
+ "ADDITIONAL_CONTEXT_LABEL": "დამატებითი კონტექსტი (არასავალდებულო)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "მოაწოდეთ დამატებითი კონტექსტი ან ინსტრუქციები FAQ-ის გენერაციისთვის...",
+ "UPLOADING": "იტვირთება...",
+ "UPLOAD": "ატვირთვა და დამუშავება",
+ "CANCEL": "გაუქმება",
+ "ERROR_INVALID_TYPE": "გთხოვთ, აირჩიოთ ვალიდური PDF ფაილი",
+ "ERROR_FILE_TOO_LARGE": "ფაილის ზომა უნდა იყოს 512MB-ზე ნაკლები",
+ "ERROR_UPLOAD_FAILED": "PDF-ის ატვირთვა ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF დოკუმენტები",
+ "DESCRIPTION": "მართეთ ატვირთული PDF დოკუმენტები და შექმენით ხშირად დასმული კითხვები მათგან",
+ "UPLOAD_PDF": "ატვირთეთ PDF",
+ "UPLOAD_FIRST_PDF": "ჩატვირთეთ თქვენი პირველი PDF",
+ "UPLOADED_BY": "ჩატვირთულია",
+ "GENERATE_FAQS": "შექმენით ხშირად დასმული კითხვები",
+ "GENERATING": "შექმნება...",
+ "CONFIRM_DELETE": "დარწმუნებული ხართ, რომ გინდათ წაშალოთ {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "ჯერ არ არის PDF დოკუმენტები",
+ "DESCRIPTION": "ატვირთეთ PDF დოკუმენტები, რათა AI-ით ავტომატურად შეიქმნას ხშირად დასმული კითხვები"
+ },
+ "STATUS": {
+ "UPLOADED": "მზადაა",
+ "PROCESSING": "მუშავდება",
+ "PROCESSED": "დასრულებულია",
+ "FAILED": "შეცდომა"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "კონტენტის გენერაცია",
+ "DESCRIPTION": "ატვირთეთ PDF დოკუმენტები, რათა AI-ის გამოყენებით ავტომატურად შექმნათ FAQ-ის კონტენტი",
+ "UPLOAD_TITLE": "ატვირთეთ PDF დოკუმენტი",
+ "DRAG_DROP": "გადაათრიეთ და ჩამოაგდეთ თქვენი PDF ფაილი აქ, ან დააჭირეთ არჩევისთვის",
+ "SELECT_FILE": "აირჩიეთ PDF ფაილი",
+ "UPLOADING": "დოკუმენტის დამუშავება...",
+ "UPLOAD_SUCCESS": "დოკუმენტი წარმატებით დამუშავდა!",
+ "UPLOAD_ERROR": "დოკუმენტის ატვირთვა ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან.",
+ "INVALID_FILE_TYPE": "გთხოვთ, აირჩიოთ ვალიდური PDF ფაილი",
+ "FILE_TOO_LARGE": "ფაილის ზომა უნდა იყოს 512MB-ზე ნაკლები",
+ "GENERATED_CONTENT": "გენერირებული FAQ შინაარსი",
+ "PUBLISH_SELECTED": "არჩეულის გამოქვეყნება",
+ "PUBLISHING": "გამოქვეყნება...",
+ "FROM_DOCUMENT": "დოკუმენტიდან",
+ "NO_CONTENT": "გენერირებული შინაარსი არ არის. დაიწყეთ PDF დოკუმენტის ატვირთვით.",
+ "LOADING": "გენერირებული შინაარსის ჩატვირთვა..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/inbox.json b/app/javascript/dashboard/i18n/locale/ka/inbox.json
index dcac5459f..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/ka/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ka/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
index ba83549cf..2aa0ad39e 100644
--- a/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/inboxMgmt.json
@@ -1,360 +1,523 @@
{
"INBOX_MGMT": {
- "HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "HEADER": "ინბოქსები",
+ "DESCRIPTION": "არხი არის კომუნიკაციის საშუალება, რომელსაც თქვენი მომხმარებელი იყენებს თქვენთან ურთიერთობისთვის. ინბოქსი არის ადგილი, სადაც მართავთ კონკრეტული არხის ინტერაქციებს. მასში შეიძლება შედიოდეს კომუნიკაციები სხვადასხვა წყაროდან, როგორიცაა ელფოსტა, ცოცხალი ჩატი და სოციალური მედია.",
+ "LEARN_MORE": "გაიგეთ მეტი ინბოქსების შესახებ",
+ "COUNT": "{n} ინბოქსი | {n} ინბოქსი",
+ "SEARCH_PLACEHOLDER": "ინბოქსების ძებნა...",
+ "NO_RESULTS": "ინბოქსები ვერ მოიძებნა თქვენი ძიების მიხედვით",
+ "RECONNECTION_REQUIRED": "თქვენი ინბოქსი გათიშულია. ახალი შეტყობინებები არ მიიღება, სანამ ხელახლა არ დაადასტურებთ მას.",
+ "CLICK_TO_RECONNECT": "დააჭირეთ აქ ხელახლა დასაკავშირებლად.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "თქვენი WhatsApp Business რეგისტრაცია არ არის დასრულებული. გთხოვთ, გადაამოწმოთ თქვენი სახელის სტატუსი Meta Business Manager-ში, სანამ ხელახლა დაუკავშირდებით.",
+ "COMPLETE_REGISTRATION": "რეგისტრაციის დასრულება",
"LIST": {
- "404": "There are no inboxes attached to this account."
+ "404": "ამ ანგარიშს არ აქვს დაკავშირებული ინბოქსები."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "არხის არჩევა",
+ "BODY": "აირჩიეთ პროვაიდერი, რომლის ინტეგრაციაც გსურთ Chatwoot-თან."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "შექმენით ინბოქსი",
+ "BODY": "ავტორიზეთ თქვენი ანგარიში და შექმენით ინბოქსი."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "დაამატეთ აგენტები",
+ "BODY": "დაამატეთ აგენტები შექმნილ ინბოქსში."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "აი, მზადაა!",
+ "BODY": "თქვენ მზად ხართ დაწყებისთვის!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "LABEL": "ინბოქსის სახელი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ინბოქსის სახელი (მაგ: Acme Inc)",
+ "ERROR": "გთხოვთ, შეიყვანოთ ვალიდური ინბოქსის სახელი"
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
+ "LABEL": "ვებგვერდის სახელი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ვებგვერდის სახელი (მაგ: Acme Inc)"
},
"FB": {
- "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.",
- "CHOOSE_PAGE": "Choose Page",
- "CHOOSE_PLACEHOLDER": "Select a page from the list",
- "INBOX_NAME": "Inbox Name",
- "ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "HELP": "PS: შესვლისას, ჩვენ მხოლოდ თქვენს გვერდის შეტყობინებებზე გვაქვს წვდომა. თქვენი პირადი შეტყობინებები არასოდეს იქნება ხელმისაწვდომი Chatwoot-ისთვის.",
+ "CHOOSE_PAGE": "აირჩიეთ გვერდი",
+ "CHOOSE_PLACEHOLDER": "აირჩიეთ გვერდი სიიდან",
+ "INBOX_NAME": "ინბოქსის სახელი",
+ "ADD_NAME": "დაამატეთ სახელი თქვენს ინბოქსს",
+ "PICK_NAME": "აირჩიეთ სახელი თქვენი ინბოქსისთვის",
+ "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 შეტყობინებების გაგზავნა/მიღება აღარ იქნება შესაძლებელი."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "გაგრძელება TikTok-ით",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "დაკავშირეთ თქვენი TikTok პროფილი",
+ "HELP": "თქვენი TikTok პროფილის არხად დასამატებლად, საჭიროა ავთენტიფიცირება TikTok პროფილზე, დააჭირეთ 'გაგრძელება TikTok-ით' ",
+ "ERROR_MESSAGE": "TikTok-თან დაკავშირებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "ERROR_AUTH": "TikTok-თან დაკავშირებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
},
"TWITTER": {
- "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "HELP": "თქვენი Twitter პროფილის არხად დასამატებლად, საჭიროა Twitter პროფილის ავთენტიფიკაცია, დააჭირეთ 'Sign in with Twitter'-ს ",
+ "ERROR_MESSAGE": "Twitter-სთან დაკავშირებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "შექმენით საუბრები აღნიშნული Tweets-ებიდან"
}
},
"WEBSITE_CHANNEL": {
- "TITLE": "Website channel",
- "DESC": "Create a channel for your website and start supporting your customers via our website widget.",
- "LOADING_MESSAGE": "Creating Website Support Channel",
+ "TITLE": "ვებსაიტის არხი",
+ "DESC": "შექმენით არხი თქვენი ვებსაიტისთვის და დაიწყეთ მომხმარებელთა მხარდაჭერა ჩვენი ვებსაიტის ვიჯეტის საშუალებით.",
+ "LOADING_MESSAGE": "ვებგვერდის მხარდაჭერის არხის შექმნა",
"CHANNEL_AVATAR": {
- "LABEL": "Channel Avatar"
+ "LABEL": "არხის ავატარი"
},
"CHANNEL_WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "Please enter a valid URL"
+ "LABEL": "ვებჰუკის URL",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Webhook URL",
+ "ERROR": "გთხოვთ, შეიყვანოთ ვალიდური URL"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "საიდუმლოს კოპირება კლიპბორდზე",
+ "COPY_SUCCESS": "საიდუმლო კლიპბორდზე გადაწერილია",
+ "TOGGLE": "საიდუმლოს ხილვადობის გადართვა",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
- "LABEL": "Website Domain",
- "PLACEHOLDER": "Enter your website domain (eg: acme.com)"
+ "LABEL": "ვებგვერდის დომენი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ვებსაიტის დომენი (მაგ: acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Welcome Heading",
- "PLACEHOLDER": "Hi there !"
+ "LABEL": "მოგესალმებით სათაური",
+ "PLACEHOLDER": "გამარჯობა!"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "მოგესალმების სლოგანი",
+ "PLACEHOLDER": "ჩვენ გაგვიმარტივეთ დაკავშირება. ჰკითხეთ რამე, ან გაგვიზიარეთ თქვენი გამოხმაურება."
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Channel greeting message",
- "PLACEHOLDER": "Acme Inc typically replies in a few hours."
+ "LABEL": "არხის მისალმების შეტყობინება",
+ "PLACEHOLDER": "Acme Inc ჩვეულებრივ პასუხობს რამდენიმე საათში."
},
"CHANNEL_GREETING_TOGGLE": {
- "LABEL": "Enable channel greeting",
+ "LABEL": "ჩართეთ არხის მისალმება",
"HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ჩართულია",
+ "DISABLED": "გამორთულია"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "პასუხის დრო დააყენე",
+ "IN_A_FEW_MINUTES": "რამდენიმე წუთში",
+ "IN_A_FEW_HOURS": "რამდენიმე საათში",
+ "IN_A_DAY": "ერთ დღეში",
+ "HELP_TEXT": "ეს პასუხის დრო გამოჩნდება პირდაპირი ჩეთის ვიჯეტში"
},
"WIDGET_COLOR": {
- "LABEL": "Widget Color",
- "PLACEHOLDER": "Update the widget color used in widget"
+ "LABEL": "ვიჯეტის ფერი",
+ "PLACEHOLDER": "განაახლეთ ვიჯეტის ფერი, რომელიც გამოიყენება ვიჯეტში"
},
- "SUBMIT_BUTTON": "Create inbox",
+ "SUBMIT_BUTTON": "შექმენით ინბოქსი",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "ვებგვერდის არხის შექმნა ვერ მოხერხდა, გთხოვთ, სცადეთ თავიდან"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp არხი",
+ "DESC": "დაერთეთ Twilio და დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა SMS-ით ან WhatsApp-ით.",
"ACCOUNT_SID": {
- "LABEL": "Account SID",
- "PLACEHOLDER": "Please enter your Twilio Account SID",
- "ERROR": "This field is required"
+ "LABEL": "ანგარიშის SID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Twilio ანგარიშის SID",
+ "ERROR": "ეს ველი აუცილებელია"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
- "ERROR": "This field is required"
+ "USE_API_KEY": "გამოიყენეთ API გასაღების ავთენტიფიკაცია",
+ "LABEL": "API გასაღების SID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი API გასაღების SID",
+ "ERROR": "ეს ველი აუცილებელია"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
- "ERROR": "This field is required"
+ "LABEL": "API გასაღების საიდუმლო",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი API გასაღების საიდუმლო",
+ "ERROR": "ეს ველი აუცილებელია"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
- "ERROR": "This field is required",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "LABEL": "მესიჯების სერვისის SID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Twilio Messaging Service SID",
+ "ERROR": "ეს ველი აუცილებელია",
+ "USE_MESSAGING_SERVICE": "გამოიყენეთ Twilio Messaging Service"
},
"CHANNEL_TYPE": {
- "LABEL": "Channel Type",
- "ERROR": "Please select your Channel Type"
+ "LABEL": "არხის ტიპი",
+ "ERROR": "გთხოვთ აირჩიოთ თქვენი არხის ტიპი"
},
"AUTH_TOKEN": {
- "LABEL": "Auth Token",
- "PLACEHOLDER": "Please enter your Twilio Auth Token",
- "ERROR": "This field is required"
+ "LABEL": "ავტორიზაციის ტოკენი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Twilio ავტორიზაციის ტოკენი",
+ "ERROR": "ეს ველი აუცილებელია"
},
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "ინბოქსის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ინბოქსის სახელი",
+ "ERROR": "ეს ველი აუცილებელია"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "ტელეფონის ნომერი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ტელეფონის ნომერი, საიდანაც შეტყობინება გაიგზავნება.",
+ "ERROR": "გთხოვთ მიუთითოთ ვალიდური ტელეფონის ნომერი, რომელიც იწყება `+` ნიშნით და არ შეიცავს სივრცეებს."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
+ "TITLE": "უკავშირზე დაბრუნების URL",
+ "SUBTITLE": "თქვენ უნდა დააყენოთ შეტყობინების callback URL Twilio-ში აქ მითითებული URL-ით."
},
- "SUBMIT_BUTTON": "Create Twilio Channel",
+ "SUBMIT_BUTTON": "შექმენით Twilio არხი",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again"
+ "ERROR_MESSAGE": "Twilio სერთიფიკატების ავთენტიფიცირება ვერ მოხერხდა, გთხოვთ, სცადეთ თავიდან"
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS არხი",
+ "DESC": "დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა SMS-ის საშუალებით.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API მიმწოდებელი",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "SMS არხის შენახვა ვერ მოხერხდა"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
- "ERROR": "This field is required"
+ "LABEL": "ანგარიშის ID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Bandwidth ანგარიშის ID",
+ "ERROR": "ეს ველი აუცილებელია"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
- "ERROR": "This field is required"
+ "LABEL": "API გასაღები",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Bandwidth API გასაღები",
+ "ERROR": "ეს ველი აუცილებელია"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
- "ERROR": "This field is required"
+ "LABEL": "API საიდუმლო",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Bandwidth API საიდუმლო",
+ "ERROR": "ეს ველი აუცილებელია"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
- "ERROR": "This field is required"
+ "LABEL": "აპლიკაციის ID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი Bandwidth აპლიკაციის ID",
+ "ERROR": "ეს ველი აუცილებელია"
},
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "ინბოქსის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ინბოქსის სახელი",
+ "ERROR": "ეს ველი სავალდებულოა"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "ტელეფონის ნომერი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ტელეფონის ნომერი, საიდანაც შეტყობინება გაიგზავნება.",
+ "ERROR": "გთხოვთ მიუთითოთ ვალიდური ტელეფონის ნომერი, რომელიც იწყება `+` ნიშნით და არ შეიცავს სივრცეებს."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Bandwidth არხის შექმნა",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "Bandwidth-ის სერთიფიკატების ავთენტიფიცირება ვერ მოხერხდა, გთხოვთ, სცადეთ თავიდან"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "TITLE": "კოლბექის URL",
+ "SUBTITLE": "თქვენ უნდა დააყენოთ შეტყობინების callback URL Bandwidth-ში აქ მითითებული URL-ით."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp არხი",
+ "DESC": "დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა WhatsApp-ის საშუალებით.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API მიმწოდებელი",
+ "WHATSAPP_EMBEDDED": "WhatsApp ბიზნესისთვის",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "სწრაფი დაყენება Meta-ს საშუალებით",
+ "TWILIO_DESC": "დაკავშირება Twilio-ს მონაცემებით",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "აირჩიეთ თქვენი API მიმწოდებელი",
+ "DESCRIPTION": "აირჩიეთ თქვენი WhatsApp მიმწოდებელი. შეგიძლიათ დაუკავშირდეთ პირდაპირ Meta-სთან, რაც არ საჭიროებს კონფიგურაციას, ან დაუკავშირდეთ Twilio-ს თქვენი ანგარიშის მონაცემების გამოყენებით."
+ },
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter an inbox name",
- "ERROR": "This field is required"
+ "LABEL": "ინბოქსის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ინბოქსის სახელი",
+ "ERROR": "ეს ველი სავალდებულოა"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "ტელეფონის ნომერი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანოთ ტელეფონის ნომერი, საიდანაც შეტყობინება გაიგზავნება.",
+ "ERROR": "გთხოვთ მიუთითოთ ვალიდური ტელეფონის ნომერი, რომელიც იწყება `+` ნიშნით და არ შეიცავს სივრცეებს."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ტელეფონის ნომრის ID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ ტელეფონის ნომრის ID, რომელიც მიღებულია Facebook-ის დეველოპერის დაფიდან.",
+ "ERROR": "გთხოვთ, შეიყვანოთ ვალიდური მნიშვნელობა."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ბიზნეს ანგარიშის ID",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანოთ Facebook-ის დეველოპერის დაფიდან მიღებული ბიზნეს ანგარიშის ID.",
+ "ERROR": "გთხოვთ, შეიყვანოთ ვალიდური მნიშვნელობა."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Webhook-ის შემოწმების ტოკენი",
+ "PLACEHOLDER": "შეიყვანეთ ვერიფიკაციის ტოკენი, რომელსაც გსურთ დააყენოთ Facebook-ის webhook-ებისთვის.",
+ "ERROR": "გთხოვთ, შეიყვანეთ ვალიდური მნიშვნელობა."
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "API გასაღები",
+ "SUBTITLE": "დააყენეთ WhatsApp API გასაღები.",
+ "PLACEHOLDER": "API გასაღები",
+ "ERROR": "გთხოვთ, შეიყვანოთ ვალიდური მნიშვნელობა."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
- "WEBHOOK_URL": "Webhook URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "TITLE": "უკავშირზე დაბრუნების URL",
+ "SUBTITLE": "თქვენ უნდა დააყენოთ webhook URL და შემოწმების ტოკენი Facebook Developer პორტალზე ქვემოთ მოცემული მნიშვნელობებით.",
+ "WEBHOOK_URL": "ვებჰუკის URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook შემოწმების ტოკენი"
+ },
+ "SUBMIT_BUTTON": "შექმენით WhatsApp არხი",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "სწრაფი დაყენება Meta-სთან",
+ "DESC": "გამოიყენეთ WhatsApp Embedded Signup პროცესი ახალი ნომრების სწრაფად დასაკავშირებლად. თქვენ გადამისამართდებით Meta-ში, რათა შეხვიდეთ თქვენს WhatsApp Business ანგარიშში. ადმინისტრატორის წვდომა ხელს შეუწყობს დაყენების მარტივად და სუფთად განხორციელებას.",
+ "BENEFITS": {
+ "TITLE": "ჩაშენებული რეგისტრაციის სარგებელი:",
+ "EASY_SETUP": "ხელით კონფიგურაცია არ არის საჭირო",
+ "SECURE_AUTH": "უსაფრთხო OAuth-ზე დაფუძნებული ავტორიზაცია",
+ "AUTO_CONFIG": "ავტომატური webhook-ის და ტელეფონის ნომრის კონფიგურაცია"
+ },
+ "LEARN_MORE": {
+ "TEXT": "ინტეგრირებული რეგისტრაციის, ფასების და შეზღუდვების შესახებ მეტი ინფორმაციის მისაღებად, ეწვიეთ {link}.",
+ "LINK_TEXT": "ეს ბმული"
+ },
+ "SUBMIT_BUTTON": "დაკავშირება WhatsApp Business-თან",
+ "AUTH_PROCESSING": "ავტორიზაცია Meta-სთან",
+ "WAITING_FOR_BUSINESS_INFO": "გთხოვთ დაასრულოთ ბიზნესის დაყენება Meta ფანჯარაში...",
+ "PROCESSING": "თქვენი WhatsApp Business ანგარიშის დაყენება",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK-ის ჩატვირთვა...",
+ "CANCELLED": "WhatsApp რეგისტრაცია გაუქმდა",
+ "SUCCESS_TITLE": "WhatsApp ბიზნეს ანგარიში დაკავშირებულია!",
+ "WAITING_FOR_AUTH": "ავტორიზაციის მოლოდინში...",
+ "INVALID_BUSINESS_DATA": "Facebook-იდან მიღებული ბიზნესის მონაცემები არასწორია. გთხოვთ, სცადეთ თავიდან.",
+ "SIGNUP_ERROR": "რეგისტრაციის დროს მოხდა შეცდომა",
+ "AUTH_NOT_COMPLETED": "ავტორიზაცია არ დასრულებულა. გთხოვთ, დაიწყეთ პროცესი თავიდან.",
+ "SUCCESS_FALLBACK": "WhatsApp Business ანგარიში წარმატებით კონფიგურირებულია",
+ "MANUAL_FALLBACK": "თუ თქვენი ნომერი უკვე დაკავშირებულია WhatsApp Business Platform (API)-სთან, ან თუ თქვენ ტექნიკური მიმწოდებელი ხართ და საკუთარ ნომერს ამატებთ, გთხოვთ გამოიყენოთ {link} პროცესი",
+ "MANUAL_LINK_TEXT": "მანუალური დაყენების პროცესი",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "ვერ შევძელით WhatsApp არხის შენახვა"
+ }
+ },
+ "VOICE": {
+ "TITLE": "ხმოვანი არხი",
+ "DESC": "დააკავშირეთ Twilio Voice და დაიწყეთ მომხმარებელთა მხარდაჭერა სატელეფონო ზარების საშუალებით.",
+ "PHONE_NUMBER": {
+ "LABEL": "ტელეფონის ნომერი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ტელეფონის ნომერი (მაგ. +1234567890)",
+ "ERROR": "გთხოვთ, მიუთითოთ ვალიდური ტელეფონის ნომერი E.164 ფორმატში (მაგალითად +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "ანგარიშის SID",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი Twilio Account SID",
+ "REQUIRED": "Account SID აუცილებელია"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "ავტორიზაციის ტოკენი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი Twilio ავტორიზაციის ტოკენი",
+ "REQUIRED": "ავტორიზაციის ტოკენი აუცილებელია"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API გასაღების SID",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი Twilio API გასაღების SID",
+ "REQUIRED": "API გასაღების SID აუცილებელია"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API გასაღების საიდუმლო",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი Twilio API გასაღების საიდუმლო",
+ "REQUIRED": "API გასაღების საიდუმლო აუცილებელია"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "დააყენეთ ეს URL როგორც Voice URL თქვენი Twilio ტელეფონის ნომერზე და TwiML აპში.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio სტატუსის Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "დააყენეთ ეს URL როგორც სტატუსის Callback URL თქვენი Twilio ტელეფონის ნომერზე."
+ },
+ "SUBMIT_BUTTON": "ხმის არხის შექმნა",
+ "API": {
+ "ERROR_MESSAGE": "ვერ შევქმენით ხმის არხი"
}
},
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "API არხი",
+ "DESC": "გაერთიანდით API არხთან და დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "არხის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ არხის სახელი",
+ "ERROR": "ეს ველი სავალდებულოა"
},
"WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
- "PLACEHOLDER": "Webhook URL"
+ "LABEL": "ვებჰუკის URL",
+ "SUBTITLE": "დააყენეთ URL, სადაც გსურთ მიიღოთ გამოძახებები მოვლენებზე.",
+ "PLACEHOLDER": "ვებჰუკის URL"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "API არხის შექმნა",
"API": {
- "ERROR_MESSAGE": "We were not able to save the api channel"
+ "ERROR_MESSAGE": "api არხის შენახვა ვერ მოხერხდა"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "ელ. ფოსტის არხი",
+ "DESC": "ინტეგრირეთ თქვენი ელფოსტის ინბოქსი.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "არხის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ არხის სახელი",
+ "ERROR": "ეს ველი აუცილებელია"
},
"EMAIL": {
- "LABEL": "Email",
+ "LABEL": "ელ. ფოსტა",
"SUBTITLE": "Email where your customers sends you support tickets",
- "PLACEHOLDER": "Email"
+ "PLACEHOLDER": "ელ. ფოსტა"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "ელ. ფოსტის არხის შექმნა",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "ელფოსტის არხის შენახვა ვერ მოხერხდა"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "გადამისამართეთ ელფოსტები ამ მისამართზე:",
+ "CONFIGURE_SMTP_IMAP_LINK": "დააჭირეთ აქ",
+ "CONFIGURE_SMTP_IMAP_TEXT": " IMAP და SMTP პარამეტრების კონფიგურაციისთვის"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE არხი",
+ "DESC": "გაითვალისწინეთ LINE არხი და დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "არხის სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ არხის სახელი",
+ "ERROR": "ეს ველი აუცილებელია"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE არხის ID",
+ "PLACEHOLDER": "LINE არხის ID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE არხის საიდუმლო",
+ "PLACEHOLDER": "LINE არხის საიდუმლო"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE არხის ტოკენი",
+ "PLACEHOLDER": "LINE არხის ტოკენი"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE არხის შექმნა",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINE არხის შენახვა ვერ მოხერხდა"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "უკავშირზე დაბრუნების URL",
+ "SUBTITLE": "LINE აპლიკაციაში უნდა დააყენოთ webhook URL, რომელიც აქ არის მითითებული."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram არხი",
+ "DESC": "გაერთიანეთ Telegram არხთან და დაიწყეთ თქვენი მომხმარებლების მხარდაჭერა.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "ბოტის ტოკენი",
+ "SUBTITLE": "დააყენეთ ბოტის ტოკენი, რომელიც მიიღეთ Telegram BotFather-იდან.",
+ "PLACEHOLDER": "ბოტის ტოკენი"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram არხის შექმნა",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "ტელეგრამის არხის შენახვა ვერ მოხერხდა"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "არჩევა არხი",
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "დაასრულეთ კონფიგურაცია",
+ "TITLE_FINISH": "აი, მზადაა!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "ვებგვერდი",
+ "DESCRIPTION": "შექმენით ცოცხალი ჩატის ვიჯეტი"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "დაკავშირეთ თქვენი Facebook გვერდი"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "მხარდაჭერა თქვენი მომხმარებლებისთვის WhatsApp-ზე"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Email",
+ "DESCRIPTION": "დაკავშირება Gmail, Outlook ან სხვა მიმწოდებლებთან"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "SMS არხის ინტეგრაცია Twilio-ს ან bandwidth-თან"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "შექმენით მორგებული არხი ჩვენი API-ის გამოყენებით"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "დააყენეთ Telegram არხი Bot token-ის გამოყენებით"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "გაერთიანეთ თქვენი Line არხი"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "დაკავშირეთ თქვენი Instagram ანგარიში"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "გაერთიანეთ თქვენი TikTok ანგარიში"
+ },
+ "VOICE": {
+ "TITLE": "ხმოვანი",
+ "DESCRIPTION": "გაერთიანეთ Twilio Voice-თან"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agents",
- "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "TITLE": "მომხმარებლები",
+ "DESC": "აქ შეგიძლიათ დაამატოთ მომხმარებლები, რომლებსაც მართვა შეუძლიათ თქვენს ახლად შექმნილ ინბოქსზე. მხოლოდ ამ არჩეულ მომხმარებლებს ექნებათ წვდომა თქვენს ინბოქსზე. მომხმარებლები, რომლებიც არ არიან ამ ინბოქსის ნაწილი, ვერ დაინახავენ ან ვერ უპასუხებენ შეტყობინებებს ამ ინბოქსში, როდესაც შედიან სისტემაში.
PS: როგორც ადმინისტრატორი, თუ გჭირდებათ წვდომა ყველა ინბოქსზე, უნდა დაამატოთ თავი მომხმარებლად ყველა იმ ინბოქსში, რომელსაც ქმნით.",
+ "VALIDATION_ERROR": "დაამატეთ მინიმუმ ერთი აგენტი თქვენს ახალ ინბოქსში",
+ "PICK_AGENTS": "აირჩიეთ აგენტები ინბოქსისთვის"
},
"DETAILS": {
- "TITLE": "Inbox Details",
- "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification."
+ "TITLE": "ინბოქსის დეტალები",
+ "DESC": "ქვემოთ მოცემული ჩამოსაშლელი სიიდან აირჩიეთ Facebook გვერდი, რომელსაც გსურთ დაუკავშირდეთ Chatwoot-ს. ასევე შეგიძლიათ მიანიჭოთ ინბოქსს საკუთარი სახელი უკეთესი იდენტიფიკაციისთვის."
},
"FINISH": {
- "TITLE": "Nailed It!",
- "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)"
+ "TITLE": "შესანიშნავად გააკეთე!",
+ "DESC": "თქვენ წარმატებით დაასრულეთ თქვენი Facebook გვერდის ინტეგრაცია Chatwoot-თან. შემდეგ ჯერზე, როდესაც მომხმარებელი მოგწერთ თქვენს გვერდს, საუბარი ავტომატურად გამოჩნდება თქვენს ინბოქსში.
ჩვენ ასევე გთავაზობთ ვიჯეტის სკრიპტს, რომელსაც მარტივად შეგიძლიათ დაამატოთ თქვენს ვებსაიტზე. როდესაც ეს ვებსაიტზე ჩართული იქნება, მომხმარებლებს შეეძლებათ მოგწერონ პირდაპირ თქვენი ვებსაიტიდან, გარეგანი ხელსაწყოს გარეშე და საუბარი გამოჩნდება აქვე, Chatwoot-ში.
საოცარია, არა? ჩვენ ნამდვილად ვცდილობთ :)"
},
"EMAIL_PROVIDER": {
"TITLE": "Select your email provider",
@@ -362,378 +525,678 @@
},
"MICROSOFT": {
"TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "DESCRIPTION": "დაჭირეთ ღილაკს \"Sign in with Microsoft\", რომ დაიწყოთ. თქვენ გადამისამართდებით ელფოსტის შესვლის გვერდზე. როდესაც დაადასტურებთ მოთხოვნილ უფლებებს, დაბრუნდებით ინბოქსის შექმნის ეტაპზე.",
+ "EMAIL_PLACEHOLDER": "შეიყვანეთ ელფოსტის მისამართი",
+ "SIGN_IN": "შესვლა Microsoft-ით",
+ "ERROR_MESSAGE": "Microsoft-თან დაკავშირებისას მოხდა შეცდომა, გთხოვთ სცადოთ თავიდან"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "დაწკაპეთ ღილაკზე Sign in with Google დასაწყებად. თქვენ გადამისამართდებით ელფოსტის შესვლის გვერდზე. როცა დაადასტურებთ მოთხოვნილ უფლებებს, გადამისამართდებით უკან ინბოქსის შექმნის ეტაპზე.",
+ "SIGN_IN": "შესვლა Google-ით",
+ "EMAIL_PLACEHOLDER": "შეიყვანეთ ელფოსტის მისამართი",
+ "ERROR_MESSAGE": "გაფიქსირდა შეცდომა Google-სთან დაკავშირებისას, გთხოვთ, სცადეთ თავიდან"
}
},
"DETAILS": {
- "LOADING_FB": "Authenticating you with Facebook...",
- "ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creating your Inbox...",
- "TITLE": "Configure Inbox Details",
+ "LOADING_FB": "ფეისბუქით ავტორიზაცია მიმდინარეობს...",
+ "ERROR_FB_LOADING": "შეცდომა Facebook SDK-ის ჩატვირთვისას. გთხოვთ, გამორთეთ ნებისმიერი რეკლამის ბლოკერი და სცადეთ სხვა ბრაუზერიდან.",
+ "ERROR_FB_AUTH": "რაღაც შეცდომა მოხდა, გთხოვთ გვერდი გაახლებინეთ...",
+ "ERROR_FB_UNAUTHORIZED": "თქვენ არ გაქვთ უფლება ამ მოქმედების შესრულებისთვის. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "გთხოვთ დარწმუნდეთ, რომ ფეისბუქ გვერდზე სრული კონტროლის წვდომა გაქვთ. ფეისბუქის როლების შესახებ შეგიძლიათ წაიკითხოთ აქ.",
+ "CREATING_CHANNEL": "თქვენი ინბოქსის შექმნა...",
+ "TITLE": "ინბოქსის დეტალების კონფიგურაცია",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents",
- "ADD_AGENTS": "Adding Agents to your Inbox..."
+ "BUTTON_TEXT": "მომხმარებლების დამატება",
+ "ADD_AGENTS": "მომხმარებლების დამატება თქვენს ინბოქსში..."
},
"FINISH": {
- "TITLE": "Your Inbox is ready!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "TITLE": "თქვენი ინბოქსი მზადაა!",
+ "MESSAGE": "ახლა შეგიძლიათ ურთიერთობა დაამყაროთ თქვენს მომხმარებლებთან ახალი არხის მეშვეობით. წარმატებული მხარდაჭერა",
+ "BUTTON_TEXT": "მიდით იქ",
+ "MORE_SETTINGS": "მეტი პარამეტრები",
+ "WEBSITE_SUCCESS": "თქვენ წარმატებით დაასრულეთ ვებგვერდის არხის შექმნა. დააკოპირეთ ქვემოთ მოცემული კოდი და ჩასვით თქვენს ვებგვერდზე. შემდეგ, როდესაც მომხმარებელი გამოიყენებს პირდაპირ ჩატს, საუბარი ავტომატურად გამოჩნდება თქვენს ინბოქსში.",
+ "WHATSAPP_QR_INSTRUCTION": "დაასკანერეთ ზემოთ მოცემული QR კოდი, რომ სწრაფად შეამოწმოთ თქვენი WhatsApp ინბოქსი",
+ "MESSENGER_QR_INSTRUCTION": "დაასკანერეთ ზემოთ მოცემული QR კოდი, რომ სწრაფად შეამოწმოთ თქვენი Facebook Messenger ინბოქსი",
+ "TELEGRAM_QR_INSTRUCTION": "დაასკანერეთ ზემოთ მოცემული QR კოდი, რომ სწრაფად შეამოწმოთ თქვენი Telegram ინბოქსი"
},
- "REAUTH": "Reauthorize",
- "VIEW": "View",
+ "REAUTH": "გადაიმეორეთ ავტორიზაცია",
+ "VIEW": "ნახვა",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Inbox settings updated successfully",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "ინბოქსის პარამეტრები წარმატებით განახლდა",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "ავტომატური დანიშვნა წარმატებით განახლდა",
+ "ERROR_MESSAGE": "ინბოქსის პარამეტრების განახლება ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით."
},
"EMAIL_COLLECT_BOX": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ჩართულია",
+ "DISABLED": "გამორთულია"
},
"ENABLE_CSAT": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ჩართულია",
+ "DISABLED": "გამორთულია"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "გამგზავნის სახელი",
+ "SUB_TEXT": "აირჩიეთ სახელი, რომელიც გამოჩნდება თქვენს მომხმარებელს, როდესაც ისინი მიიღებენ ელფოსტას თქვენს აგენტებისგან.",
+ "FOR_EG": "მაგალითად:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "მეგობრული",
+ "FROM": "დან",
+ "SUBTITLE": "დაამატეთ აგენტის სახელი, რომელმაც პასუხი გაუგზავნა, გამგზავნის სახელში, რათა იყოს მეგობრული."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "პროფესიონალური",
+ "SUBTITLE": "გამოიყენეთ მხოლოდ კონფიგურირებული ბიზნესის სახელი, როგორც გამგზავნის სახელი ელფოსტის სათაურში."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "დააყენეთ თქვენი ბიზნესის სახელი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ბიზნესის სახელი",
+ "SAVE_BUTTON_TEXT": "შენახვა"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ჩართულია",
+ "DISABLED": "გამორთულია"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "ჩართულია",
+ "DISABLED": "გამორთულია"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "გაიხსნას იგივე საუბარი",
+ "DISABLED": "შექმნას ახალი საუბრები",
+ "ENABLED_DESCRIPTION": "როდესაც კონტაქტი კვლავ მოგვწერს, წინა საუბარი გაიხსნება.",
+ "DISABLED_DESCRIPTION": "ყოველ ჯერზე წინა საუბრის დასრულების შემდეგ ახალი საუბარი შეიქმნება."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "ჩართვა"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "BUTTON_TEXT": "წაშლა",
+ "AVATAR_DELETE_BUTTON_TEXT": "ავატარის წაშლა",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "წაშლის დადასტურება",
+ "MESSAGE": "დარწმუნებული ხართ, რომ წაშალოთ ",
+ "PLACE_HOLDER": "გთხოვთ, დააკრიფეთ {inboxName} დასადასტურებლად",
+ "YES": "დიახ, წაშლა ",
+ "NO": "არა, შეინახე "
},
"API": {
- "SUCCESS_MESSAGE": "Inbox deleted successfully",
- "ERROR_MESSAGE": "Could not delete inbox. Please try again later.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "ინბოქსი წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "ინბოქსის წაშლა ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით.",
+ "AVATAR_SUCCESS_MESSAGE": "ინბოქსის ავატარი წარმატებით წაიშალა",
+ "AVATAR_ERROR_MESSAGE": "ინბოქსის ავატარის წაშლა ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით."
}
},
"TABS": {
- "SETTINGS": "Settings",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "SETTINGS": "პარამეტრები",
+ "COLLABORATORS": "თანამშრომლები",
+ "CONFIGURATION": "კონფიგურაცია",
+ "CAMPAIGN": "კამპანიები",
+ "PRE_CHAT_FORM": "ჩეთის წინ ფორმა",
+ "BUSINESS_HOURS": "სამუშაო საათები",
+ "WIDGET_BUILDER": "ვიჯეტის შემქმნელი",
+ "BOT_CONFIGURATION": "ბოტის კონფიგურაცია",
+ "ACCOUNT_HEALTH": "ანგარიშის ჯანმრთელობა",
+ "CSAT": "CSAT",
+ "VOICE": "ხმოვანი",
+ "CALLS": "Calls"
},
- "SETTINGS": "Settings",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "არხის პარამეტრები",
+ "WIDGET_FEATURES": "ვიჯეტის ფუნქციები",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "მართეთ თქვენი WhatsApp ანგარიში",
+ "DESCRIPTION": "დაათვალიერეთ თქვენი WhatsApp ანგარიშის სტატუსი, შეტყობინებების ლიმიტები და ხარისხი. განაახლეთ პარამეტრები ან მოაგვარეთ პრობლემები საჭიროების შემთხვევაში",
+ "GO_TO_SETTINGS": "გადადით Meta Business Manager-ში",
+ "NO_DATA": "ჯანმრთელობის მონაცემები მიუწვდომელია",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "ტელეფონის ნომრის ჩვენება",
+ "TOOLTIP": "ტელეფონის ნომერი, რომელიც ჩანს მომხმარებლებისთვის"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "ბიზნესის სახელი",
+ "TOOLTIP": "ბიზნესის სახელი, რომელიც დადასტურებულია WhatsApp-ის მიერ"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "ჩვენების სახელის სტატუსი",
+ "TOOLTIP": "თქვენი ბიზნესის სახელის გადამოწმების სტატუსი"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "ხარისხის შეფასება",
+ "TOOLTIP": "WhatsApp-ის ხარისხის შეფასება თქვენი ანგარიშისთვის"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "შეტყობინებების ლიმიტის დონე",
+ "TOOLTIP": "დღიური შეტყობინებების ლიმიტი თქვენი ანგარიშისთვის"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "ანგარიშის რეჟიმი",
+ "TOOLTIP": "WhatsApp ანგარიშის მიმდინარე ოპერაციული რეჟიმი"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 მომხმარებელი დღეში",
+ "TIER_1000": "1K მომხმარებელი დღეში",
+ "TIER_1K": "1K მომხმარებელი დღეში",
+ "TIER_10K": "10K მომხმარებელი დღეში",
+ "TIER_100K": "100K მომხმარებელი დღეში",
+ "TIER_UNLIMITED": "შეუზღუდავი მომხმარებელი დღეში",
+ "UNKNOWN": "რეიტინგი მიუწვდომელია"
+ },
+ "STATUSES": {
+ "APPROVED": "დამტკიცებული",
+ "PENDING_REVIEW": "მიმდინარე გადახედვა",
+ "AVAILABLE_WITHOUT_REVIEW": "ხელმისაწვდომია გადახედვის გარეშე",
+ "REJECTED": "უარყოფილი",
+ "DECLINED": "უარი",
+ "NON_EXISTS": "არ არსებობს"
+ },
+ "MODES": {
+ "SANDBOX": "სანდბოქსი",
+ "LIVE": "ცოცხალი"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook-ის კონფიგურაცია",
+ "DESCRIPTION": "Webhook URL აუცილებელია თქვენი WhatsApp Business ანგარიშისთვის, რათა მიიღოთ შეტყობინებები მომხმარებლებისგან",
+ "ACTION_REQUIRED": "Webhook არ არის კონფიგურირებული",
+ "REGISTER_BUTTON": "Webhook-ის რეგისტრაცია",
+ "REGISTER_SUCCESS": "Webhook წარმატებით დარეგისტრირდა",
+ "REGISTER_ERROR": "Webhook-ის რეგისტრაცია ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან.",
+ "CONFIGURED_SUCCESS": "ვებჰუკი წარმატებით კონფიგურირდა",
+ "URL_MISMATCH": "ვებჰუკის URL არ ემთხვევა"
+ }
+ },
+ "SETTINGS": "პარამეტრები",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "LABEL": "ფუნქციები",
+ "DISPLAY_FILE_PICKER": "ფაილის არჩევანის ჩვენება ვიჯეტზე",
+ "DISPLAY_EMOJI_PICKER": "ემოჯის არჩევანის ჩვენება ვიჯეტზე",
+ "ALLOW_END_CONVERSATION": "მომხმარებლებს შეუძლიათ საუბრის დასრულება ვიჯეტიდან",
+ "USE_INBOX_AVATAR_FOR_BOT": "გამოიყენეთ ინბოქსის სახელი და ავატარი ბოტისთვის"
},
"SETTINGS_POPUP": {
- "MESSENGER_HEADING": "Messenger Script",
- "MESSENGER_SUB_HEAD": "Place this button inside your body tag",
- "INBOX_AGENTS": "Agents",
- "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
- "UPDATE": "Update",
+ "MESSENGER_HEADING": "მესენჯერის სკრიპტი",
+ "MESSENGER_SUB_HEAD": "დამატეთ ეს ღილაკი თქვენი body ტეგის შიგნით",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "ნებადართული დომენები",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "საიდუმლო გასაღები",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "მომხმარებლები",
+ "INBOX_AGENTS_SUB_TEXT": "ამ ინბოქსიდან აგენტების დამატება ან წაშლა",
+ "AGENT_ASSIGNMENT": "შეტყობინების დანიშვნა",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "შეტყობინების დანიშვნის პარამეტრების განახლება",
+ "UPDATE": "განახლება",
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
- "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
- "HMAC_VERIFICATION": "User Identity Validation",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "ჩართეთ ან გამორთეთ ელფოსტის შეგროვების ყუთი ახალ საუბარში",
+ "AUTO_ASSIGNMENT": "ავტომატური დანიშვნის ჩართვა",
+ "SENDER_NAME_SECTION": "ჩართეთ აგენტის სახელი ელფოსტაში",
+ "SENDER_NAME_SECTION_TEXT": "ჩართეთ ან გამორთეთ აგენტის სახელის ჩვენება ელფოსტაში, გამორთვის შემთხვევაში გამოჩნდება ბიზნესის სახელი",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "შეტყობინებების გაგრძელების ჩართვა ელექტრონული ფოსტის საშუალებით",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "საუბრები გაგრძელდება ელფოსტით, თუ კონტაქტის ელფოსტის მისამართი ხელმისაწვდომია.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "საუბრის მარშრუტიზაცია",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "დააყენეთ საუბრის შექმნა არსებული კონტაქტებისთვის",
+ "INBOX_UPDATE_TITLE": "ინბოქსის პარამეტრები",
+ "INBOX_UPDATE_SUB_TEXT": "განაახლეთ თქვენი ინბოქსის პარამეტრები",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "ჩართეთ ან გამორთეთ ახალი საუბრების ავტომატური გადანაწილება ამ ინბოქსში დამატებულ აგენტებზე.",
+ "HMAC_VERIFICATION": "მომხმარებლის იდენტობის გადამოწმება",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "თქვენ შეგიძლიათ მეტი წაიკითხოთ აქ.",
+ "HMAC_MANDATORY_VERIFICATION": "მომხმარებლის იდენტობის ვალიდაციის გამკაცრება",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
- "WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "INBOX_IDENTIFIER": "ინბოქსის იდენტიფიკატორი",
+ "INBOX_IDENTIFIER_SUB_TEXT": "გამოიყენეთ აქ ნაჩვენები `inbox_identifier` ტოკენი თქვენი API კლიენტების ავთენტიფიკაციისთვის.",
+ "FORWARD_EMAIL_TITLE": "გაგზავნა ელფოსტაზე",
+ "FORWARD_EMAIL_SUB_TEXT": "დაიწყეთ თქვენი ელფოსტების გადამისამართება შემდეგ ელფოსტაზე.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "ელფოსტების გადამისამართება თქვენს ინბოქსში ამ ინსტალაციაზე ამჟამად გამორთულია. ამ ფუნქციის გამოყენებისთვის საჭიროა ადმინისტრატორის ჩართვა. გთხოვთ, დაუკავშირდით მათ გაგრძელებისთვის.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "შეტყობინებების დაშვება საუბრის დასრულების შემდეგ",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "მომხმარებლებს შეუძლიათ შეტყობინებების გაგზავნა საუბრის დასრულების შემდეგაც.",
+ "WHATSAPP_SECTION_SUBHEADER": "ეს API გასაღები გამოიყენება WhatsApp API-ებთან ინტეგრაციისთვის.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "შეიყვანეთ ახალი API გასაღები, რომელიც გამოიყენება WhatsApp API-ებთან ინტეგრაციისთვის.",
+ "WHATSAPP_SECTION_TITLE": "API გასაღები",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API გასაღების განახლება",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "შეიყვანეთ ახალი API გასაღები აქ",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "განახლება",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp-ის ჩაშენებული რეგისტრაცია",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "ეს ინბოქსი დაკავშირებულია WhatsApp-ის ჩაშენებული რეგისტრაციის მეშვეობით.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "შეგიძლიათ ხელახლა დააყენოთ ეს ინბოქსი თქვენი WhatsApp Business-ის პარამეტრების განახლებისთვის.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "ხელახლა დააყენე",
+ "WHATSAPP_CONNECT_TITLE": "დაკავშირება WhatsApp Business-თან",
+ "WHATSAPP_CONNECT_SUBHEADER": "გააუმჯობესეთ WhatsApp-ის ჩაშენებული რეგისტრაციით მარტივი მართვისთვის.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "დააკავშირეთ ეს ინბოქსი WhatsApp Business-თან გაფართოებული ფუნქციებისა და მარტივი მართვისთვის.",
+ "WHATSAPP_CONNECT_BUTTON": "დაკავშირება",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp Business-თან წარმატებით დაკავშირებული!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp Business-სთან დაკავშირება ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business წარმატებით გადაკონფიგურირდა!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp Business-ის გადაკონფიგურება ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp აპლიკაციის ID არ არის კონფიგურირებული. გთხოვთ, დაუკავშირდით ადმინისტრატორს.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp კონფიგურაციის ID არ არის კონფიგურირებული. გთხოვთ, დაუკავშირდით ადმინისტრატორს.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp–ში შესვლა გაუქმდა. გთხოვთ, სცადეთ თავიდან.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook-ის გადამოწმების ტოკენი",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "ეს ტოკენი გამოიყენება webhook-ის endpoint-ის ავთენტურობის დასადასტურებლად.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "შაბლონების სინქრონიზაცია",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "ხელით სინქრონიზაცია WhatsApp-ისგან, რათა განაახლოთ ხელმისაწვდომი შაბლონები.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "შაბლონების სინქრონიზაცია",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "შაბლონების სინქრონიზაცია წარმატებით დაიწყო. განახლება შეიძლება რამდენიმე წუთი გაგრძელდეს.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "განაახლეთ წინასწარი ჩატის ფორმის პარამეტრები"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "დახმარების ცენტრი",
+ "PLACEHOLDER": "აირჩიეთ დახმარების ცენტრი",
+ "SELECT_PLACEHOLDER": "აირჩიეთ დახმარების ცენტრი",
+ "NONE": "არცერთი",
+ "REMOVE": "დახმარების ცენტრის წაშლა",
+ "SUB_TEXT": "დამატეთ დახმარების ცენტრი ინბოქსთან"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "ავტომატური დანიშვნის ლიმიტი",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "გთხოვთ, შეიყვანოთ 0-ზე მეტი მნიშვნელობა",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "მოაზღვრე ამ ინბოქსიდან ავტომატურად აგენტზე დანიშვნადი საუბრების მაქსიმალური რაოდენობა"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "შეტყობინებების მინიჭება",
+ "DESCRIPTION": "ავტომატურად მიანიჭეთ შემომავალი შეტყობინებები ხელმისაწვდომ აგენტებს მინიჭების პოლიტიკის მიხედვით",
+ "ENABLE_AUTO_ASSIGNMENT": "ჩართეთ ავტომატური შეტყობინებების მინიჭება",
+ "DEFAULT_RULES_TITLE": "ნაგულისხმევი დანიშვნის წესები",
+ "DEFAULT_RULES_DESCRIPTION": "ყველა საუბრისთვის ნაგულისხმევი დანიშვნის ქცევის გამოყენება",
+ "DEFAULT_RULE_1": "პირველ რიგში ყველაზე ადრინდელი შექმნილი საუბრები",
+ "DEFAULT_RULE_2": "რაუნდ-რობინის პრინციპით განაწილება",
+ "CUSTOMIZE_WITH_POLICY": "დანიშვნის პოლიტიკით მორგება",
+ "USING_POLICY": "ამ ინბოქსისთვის კასტომიზირებული დანიშვნის პოლიტიკის გამოყენება",
+ "CUSTOMIZE_POLICY": "დანიშვნის პოლიტიკის კასტომიზაცია",
+ "DELETE_POLICY": "პოლიტიკის წაშლა",
+ "POLICY_LABEL": "მინიჭების პოლიტიკა",
+ "ASSIGNMENT_ORDER_LABEL": "დანიშვნის თანმიმდევრობა",
+ "ASSIGNMENT_METHOD_LABEL": "დანიშვნის მეთოდი",
+ "POLICY_STATUS": {
+ "ACTIVE": "აქტიური",
+ "INACTIVE": "არააქტიური"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "ყველაზე ადრე შექმნილი",
+ "LONGEST_WAITING": "ყველაზე დიდხანს მოლოდინში"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "რაუნდ-რობინი",
+ "BALANCED": "ბალანსირებული დანიშვნა"
+ },
+ "UPGRADE_PROMPT": "მორგებული დანიშვნის პოლიტიკა ხელმისაწვდომია Business გეგმაზე",
+ "UPGRADE_TO_BUSINESS": "გადაინაცვლეთ Business გეგმაზე",
+ "DEFAULT_POLICY_LINKED": "ნაგულისხმევი პოლიტიკა დაკავშირებულია",
+ "DEFAULT_POLICY_DESCRIPTION": "დააკავშირეთ მორგებული დანიშვნის პოლიტიკა, რათა დაარეგულიროთ როგორ გადანაწილდება საუბრები აგენტებზე ამ ინბოქსში.",
+ "LINK_EXISTING_POLICY": "არსებული პოლიტიკის დაკავშირება",
+ "CREATE_NEW_POLICY": "ახალი პოლიტიკის შექმნა",
+ "NO_POLICIES": "მინიჭების პოლიტიკები ვერ მოიძებნა",
+ "VIEW_ALL_POLICIES": "ყველა პოლიტიკის ნახვა",
+ "CURRENT_BEHAVIOR": "ამჟამად გამოიყენება ნაგულისხმევი დანიშვნის ქცევა:",
+ "LINK_SUCCESS": "დანიშვნის პოლიტიკა წარმატებით დაკავშირებულია",
+ "LINK_ERROR": "მონაწილეობის პოლიტიკის დაკავშირება ვერ მოხერხდა"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "მონაწილეობის პოლიტიკის წაშლა?",
+ "DELETE_CONFIRM_MESSAGE": "დარწმუნებული ხართ, რომ გინდათ ამ მონაწილეობის პოლიტიკის ამოღება ამ ინბოქსიდან? ინბოქსი დაბრუნდება ნაგულისხმევ მონაწილეობის წესებზე.",
+ "CANCEL": "გაუქმება",
+ "CONFIRM_DELETE": "წაშლა",
+ "DELETE_SUCCESS": "დავალების პოლიტიკა წარმატებით წაიშალა",
+ "DELETE_ERROR": "დავალების პოლიტიკის წაშლა ვერ მოხერხდა"
},
"FACEBOOK_REAUTHORIZE": {
- "TITLE": "Reauthorize",
- "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
- "MESSAGE_ERROR": "There was an error, please try again"
+ "TITLE": "გადაიმეორეთ ავტორიზაცია",
+ "SUBTITLE": "თქვენი Facebook კავშირი ვადა გაუვიდა, გთხოვთ, დაუკავშირდეთ თქვენი Facebook გვერდი სერვისების გასაგრძელებლად",
+ "MESSAGE_SUCCESS": "კავშირი წარმატებით აღდგენილია",
+ "MESSAGE_ERROR": "შეცდომა მოხდა, გთხოვთ, სცადეთ თავიდან"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "წინასწარი ჩეთის ფორმები საშუალებას გაძლევთ დააფიქსიროთ მომხმარებლის ინფორმაცია, სანამ ისინი დაიწყებენ თქვენთან საუბარს.",
+ "SET_FIELDS": "ჩატის წინ ფორმის ველები",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "ველები",
+ "LABEL": "ლეიბლი",
+ "PLACE_HOLDER": "ადგილმამა",
+ "KEY": "საკვანძო",
+ "TYPE": "ტიპი",
+ "REQUIRED": "სავალდებულო"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "ჩართეთ წინასწარი ჩეთის ფორმა",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "დიახ",
+ "DISABLED": "არა"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "წინასწარი ჩეთის შეტყობინება",
+ "PLACEHOLDER": "ეს შეტყობინება მომხმარებლებისთვის ფორმასთან ერთად იქნება ხილული"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "მომხმარებლები უნდა მიუთითონ სახელი და ელ.ფოსტის მისამართი ჩეთის დაწყებამდე"
+ }
+ },
+ "CSAT": {
+ "TITLE": "ჩართეთ CSAT",
+ "SUBTITLE": "ავტომატურად გააქტიურეთ CSAT გამოკითხვები საუბრის ბოლოს, რათა გაიგოთ, როგორ აფასებენ მომხმარებლები მხარდაჭერის გამოცდილებას. დააკვირდით კმაყოფილების ტენდენციებს და გამოავლინეთ გაუმჯობესების შესაძლებლობები დროთა განმავლობაში.",
+ "DISPLAY_TYPE": {
+ "LABEL": "გამოსახვის ტიპი"
+ },
+ "MESSAGE": {
+ "LABEL": "მესიჯი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ მესიჯი, რომელიც ფორმასთან ერთად მომხმარებლებს აჩვენებს"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "ღილაკის ტექსტი",
+ "PLACEHOLDER": "გთხოვთ, შეაფასეთ ჩვენ"
+ },
+ "LANGUAGE": {
+ "LABEL": "ენა",
+ "PLACEHOLDER": "აირჩიეთ შაბლონის ენა"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "მესიჯის წინასწარი ნახვა",
+ "TOOLTIP": "ეს შეიძლება ოდნავ განსხვავდებოდეს WhatsApp-ის პლატფორმაზე ჩვენებისას."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "დამტკიცებულია WhatsApp-ის მიერ",
+ "PENDING": "მოლოდინშია WhatsApp-ის დამტკიცება",
+ "REJECTED": "Meta-მ უარყო შაბლონი",
+ "DEFAULT": "საჭიროა WhatsApp-ის დამტკიცება",
+ "NOT_FOUND": "თემპლატი Meta პლატფორმაზე არ არსებობს."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp-ის თემპლატი წარმატებით შეიქმნა და გაგზავნილია დამტკიცებისთვის",
+ "ERROR_MESSAGE": "WhatsApp-ის თემპლატის შექმნა ვერ მოხერხდა"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "გამოკითხვის დეტალების რედაქტირება",
+ "DESCRIPTION": "ჩვენ წავშლით წინა თემპლატს და შევქმნით ახალს, რომელიც კვლავ გაიგზავნება WhatsApp-ის დამტკიცებისთვის",
+ "CONFIRM": "ახალი შაბლონის შექმნა",
+ "CANCEL": "უკან დაბრუნება"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "გამოწერეთ სარგებლიანობის შესაბამისობა",
+ "HELPER_NOTE": "გაგზავნამდე შეამოწმეთ ეს შეტყობინება სარგებლიანობის შესაბამისობის გასაუმჯობესებლად. სისტემა ქმნის სპეციალურ CSAT შაბლონს ანგარიშგებისთვის ღილაკებით და აგზავნის მას როგორც სარგებლიანობას; Meta შესაძლოა კვლავ დაახარისხოს იგი მარკეტინგად შინაარსის მიხედვით.",
+ "RESULT_LABEL": "Meta კატეგორიის პროგნოზი",
+ "GUIDANCE_NOTE": "ეს არის მითითების შემოწმება, არა Meta-ს დამტკიცების გარანტია.",
+ "SUGGESTION_LABEL": "შეთავაზებული უსაფრთხო გადამუშავება",
+ "APPLY": "გამოიყენეთ ეს გადამუშავება",
+ "ERROR_MESSAGE": "შეტყობინების ანალიზი ვერ მოხერხდა. გთხოვთ, სცადეთ თავიდან.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "მომგებიანი გამოყენება",
+ "LIKELY_MARKETING": "მარკეტინგის ალბათობა",
+ "UNCLEAR": "საჭიროა განმარტება"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "საველების წესი",
+ "DESCRIPTION_PREFIX": "გაგზავნეთ სერვეი, თუ საუბარი",
+ "DESCRIPTION_SUFFIX": "ნებისმიერი ლეიბლის",
+ "OPERATOR": {
+ "CONTAINS": "შეიცავს",
+ "DOES_NOT_CONTAINS": "არ შეიცავს"
+ },
+ "SELECT_PLACEHOLDER": "აირჩიეთ ლეიბლები"
+ },
+ "NOTE": "შენიშვნა: CSAT გამოკითხვები იგზავნება მხოლოდ ერთხელ თითო საუბრისთვის",
+ "WHATSAPP_NOTE": "შენიშვნა: შენახვისას სისტემა ქმნის სპეციალურ CSAT შაბლონს WhatsApp-ში (გამოიყენება შეფასებისა და გამოხმაურების აღსაწერად ანგარიშებში) და წარადგენს მას Utility-ს დამტკიცებისთვის. Meta შესაძლოა კვლავ დაახარისხოს როგორც მარკეტინგი კონტენტის მიხედვით. დამტკიცების შემდეგ, გამოკითხვები იგზავნება მხოლოდ ერთხელ თითოეული საუბრისთვის გამოკითხვის წესის შესაბამისად.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT პარამეტრები წარმატებით განახლდა",
+ "ERROR_MESSAGE": "CSAT პარამეტრების განახლება ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით."
}
},
"BUSINESS_HOURS": {
- "TITLE": "Set your availability",
- "SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "დააყენეთ თქვენი ხელმისაწვდომობა",
+ "SUBTITLE": "დააყენეთ თქვენი ხელმისაწვდომობა თქვენს ლაივჩატის ვიჯეტზე",
+ "WEEKLY_TITLE": "დააყენეთ თქვენი კვირის საათები",
+ "TIMEZONE_LABEL": "აირჩიეთ დროის ზონა",
+ "UPDATE": "განაახლეთ სამუშაო საათების პარამეტრები",
+ "TOGGLE_AVAILABILITY": "ჩართეთ სამუშაო დრო ამ ინბოქსისთვის",
+ "UNAVAILABLE_MESSAGE_LABEL": "მომხმარებლებისთვის მიუწვდომელი შეტყობინება",
+ "TOGGLE_HELP": "ბიზნესის ხელმისაწვდომობის ჩართვა აჩვენებს ხელმისაწვდომ საათებს პირდაპირი ჩეთის ვიჯეტში, მაშინაც კი, თუ ყველა აგენტი ოფლაინია. ხელმისაწვდომი საათების გარეთ ვიზიტორებს შეუძლიათ მიიღონ გაფრთხილება შეტყობინებით და წინასწარი ჩეთის ფორმით.",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "დღე",
+ "AVAILABILITY": "ხელმისაწვდომობა",
+ "HOURS": "საათები",
+ "ENABLE": "ჩართეთ ხელმისაწვდომობა ამ დღისთვის",
+ "UNAVAILABLE": "არ არის ხელმისაწვდომი",
+ "VALIDATION_ERROR": "დაწყების დრო უნდა იყოს დახურვის დროის წინ.",
+ "CHOOSE": "აირჩიეთ"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "მთელი დღე"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "დააყენეთ თქვენი IMAP დეტალები",
+ "NOTE_TEXT": "SMTP-ის ჩართვისთვის, გთხოვთ დააყენოთ IMAP.",
+ "UPDATE": "IMAP პარამეტრების განახლება",
+ "TOGGLE_AVAILABILITY": "ჩართეთ IMAP კონფიგურაცია ამ ინბოქსისთვის",
+ "TOGGLE_HELP": "IMAP-ის ჩართვა დაეხმარება მომხმარებელს ელფოსტის მიღებაში",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP პარამეტრები წარმატებით განახლდა",
+ "ERROR_MESSAGE": "IMAP პარამეტრების განახლება ვერ მოხერხდა"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "მისამართი",
+ "PLACE_HOLDER": "მისამართი (მაგ: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "პორტი",
+ "PLACE_HOLDER": "პორტი"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "შესვლა",
+ "PLACE_HOLDER": "შესვლა"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "პაროლი",
+ "PLACE_HOLDER": "პაროლი"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL-ის ჩართვა",
+ "AUTH_MECHANISM": "ავტორიზაცია"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "გაიმეორეთ MICROSOFT ანგარიშის ავტორიზაცია"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "დააყენეთ თქვენი SMTP დეტალები",
+ "UPDATE": "SMTP პარამეტრების განახლება",
+ "TOGGLE_AVAILABILITY": "SMTP კონფიგურაციის ჩართვა ამ ინბოქსისთვის",
+ "TOGGLE_HELP": "SMTP-ის ჩართვა დაეხმარება მომხმარებელს ელფოსტის გაგზავნაში",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP პარამეტრები წარმატებით განახლდა",
+ "ERROR_MESSAGE": "SMTP პარამეტრების განახლება ვერ მოხერხდა"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "მისამართი",
+ "PLACE_HOLDER": "მისამართი (მაგ: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "პორტი",
+ "PLACE_HOLDER": "პორტი"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "შესვლა",
+ "PLACE_HOLDER": "შესვლა"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "პაროლი",
+ "PLACE_HOLDER": "პაროლი"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "დომენი",
+ "PLACE_HOLDER": "დომენი"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "შიფრაცია",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL გადამოწმების რეჟიმი",
+ "AUTH_MECHANISM": "ავტორიზაცია"
},
- "NOTE": "Note: ",
+ "NOTE": "შენიშვნა: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "ვებგვერდის ავატარი",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "ავატარი წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "შეცდომა მოხდა, გთხოვთ, სცადეთ თავიდან"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "LABEL": "ვებგვერდის სახელი",
+ "PLACE_HOLDER": "შეიყვანეთ თქვენი ვებგვერდის სახელი (მაგ: Acme Inc)",
+ "ERROR": "გთხოვთ, შეიყვანეთ ვალიდური ვებგვერდის სახელი"
},
"WELCOME_HEADING": {
- "LABEL": "Welcome Heading",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "მოგესალმებით სათაური",
+ "PLACE_HOLDER": "გამარჯობა!"
},
"WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "მოგესალმებით სათაური",
+ "PLACE_HOLDER": "ჩვენ გაგიადვილებთ დაკავშირებას. ჰკითხეთ რამე, ან გაგვიზიარეთ თქვენი გამოხმაურება."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "პასუხის დრო",
+ "IN_A_FEW_MINUTES": "რამდენიმე წუთში",
+ "IN_A_FEW_HOURS": "რამდენიმე საათში",
+ "IN_A_DAY": "ერთ დღეში"
},
- "WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_COLOR_LABEL": "ვიჯეტის ფერი",
+ "WIDGET_BUBBLE": "ბუშტი",
+ "WIDGET_BUBBLE_POSITION_LABEL": "პოზიცია:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "ტიპი:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
- "DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
- "PLACE_HOLDER": "Chat with us"
+ "DEFAULT": "გაიარეთ ჩეთი ჩვენთან",
+ "LABEL": "ლანჩერის სათაური",
+ "PLACE_HOLDER": "გაიარეთ ჩეთი ჩვენთან"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "ვიჯეტის პარამეტრების განახლება",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "ვიჯეტის პარამეტრები წარმატებით განახლდა",
+ "ERROR_MESSAGE": "ვიჯეტის პარამეტრების განახლება შეუძლებელია"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "წინასწარი ნახვა",
+ "SCRIPT": "სკრიპტი"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "მარცხენა",
+ "RIGHT": "მარჯვენა"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "სტანდარტული",
+ "EXPANDED_BUBBLE": "გაფართოებული ბუშტი"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "სტანდარტი",
+ "CHAT": "ჩეთის რეჟიმი"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "Typically replies in a few minutes",
- "IN_A_FEW_HOURS": "Typically replies in a few hours",
- "IN_A_DAY": "Typically replies in a day"
+ "IN_A_FEW_MINUTES": "ჩვეულებრივ პასუხობს რამდენიმე წუთში",
+ "IN_A_FEW_HOURS": "ჩვეულებრივ პასუხობს რამდენიმე საათში",
+ "IN_A_DAY": "ჩვეულებრივ პასუხობს ერთ დღეში"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Start Conversation",
- "CHAT_INPUT_PLACEHOLDER": "Type your message"
+ "START_CONVERSATION_BUTTON_TEXT": "გაიწყეთ საუბარი",
+ "CHAT_INPUT_PLACEHOLDER": "ჩაწერეთ თქვენი შეტყობინება"
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "We are away at the moment"
+ "ONLINE": "ჩვენ ონლაინ ვართ",
+ "OFFLINE": "ამჟამად ჩვენ არ ვართ ხელმისაწვდომები"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "გამარჯობა",
+ "AGENT_MESSAGE": "სალამი"
},
- "BRANDING_TEXT": "Powered by Chatwoot",
+ "BRANDING_TEXT": "მოძრავებულია Chatwoot-ის მიერ",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "დაკავშირება Microsoft-თან"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "დაკავშირება Google-თან"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "სხვა მიმწოდებლები",
+ "DESCRIPTION": "დაკავშირება სხვა პროვაიდერებთან"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "ვებგვერდი",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Email",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API არხი",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "ხმოვანი"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/index.js b/app/javascript/dashboard/i18n/locale/ka/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ka/index.js
+++ b/app/javascript/dashboard/i18n/locale/ka/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/integrations.json b/app/javascript/dashboard/i18n/locale/ka/integrations.json
index 45587f2db..78471d977 100644
--- a/app/javascript/dashboard/i18n/locale/ka/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ka/integrations.json
@@ -1,213 +1,1103 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Shopify ინტეგრაციის წაშლა",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ Shopify ინტეგრაციის წაშლა?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify მაღაზიის დაკავშირება",
+ "LABEL": "მაღაზიის URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "შეიყვანეთ თქვენი Shopify მაღაზიის myshopify.com URL",
+ "CANCEL": "გაუქმება",
+ "SUBMIT": "მაღაზიის დაკავშირება"
+ },
+ "ERROR": "Shopify-სთან დაკავშირებისას მოხდა შეცდომა. გთხოვთ, სცადეთ თავიდან ან დაუკავშირდით მხარდაჭერას, თუ პრობლემა გაგრძელდება."
+ },
+ "HEADER": "ინტეგრაციები",
+ "DESCRIPTION": "Chatwoot ინტეგრირდება მრავალ ინსტრუმენტსა და სერვისთან, რათა გააუმჯობესოს თქვენი გუნდის ეფექტურობა. დაათვალიერეთ ქვემოთ მოცემული სია თქვენი საყვარელი აპების კონფიგურაციისთვის.",
+ "LEARN_MORE": "გაიგეთ მეტი ინტეგრაციებზე",
+ "LOADING": "ინტეგრაციების მიღება",
+ "SEARCH_PLACEHOLDER": "ინტეგრაციების ძიება...",
+ "NO_RESULTS": "ინტეგრაციები ვერ მოიძებნა თქვენი ძიების მიხედვით",
+ "CAPTAIN": {
+ "DISABLED": "Captain თქვენი ანგარიშისთვის ჩართული არ არის.",
+ "CLICK_HERE_TO_CONFIGURE": "დააჭირეთ აქ კონფიგურაციისთვის",
+ "LOADING_CONSOLE": "კაპიტანის კონსოლის ჩატვირთვა...",
+ "FAILED_TO_LOAD_CONSOLE": "კაპიტანის კონსოლის ჩატვირთვა ვერ მოხერხდა. გთხოვთ, განაახლეთ გვერდი და სცადეთ თავიდან."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "გამოწერილი მოვლენები",
+ "LEARN_MORE": "გაიგეთ მეტი webhook-ების შესახებ",
+ "SECRET": {
+ "LABEL": "საიდუმლო",
+ "COPY": "საიდუმლოს კოპირება კლიპბორდზე",
+ "COPY_SUCCESS": "საიდუმლო კლიპბორდზე გადაწერილია",
+ "TOGGLE": "საიდუმლოს ხილვადობის გადართვა",
+ "CREATED_DESC": "თქვენი webhook შექმნილია. გამოიყენეთ ქვემოთ მოცემული საიდუმლო webhook-ის ხელმოწერების დასადასტურებლად. გთხოვთ, ახლა გადაწერეთ — მოგვიანებით შეგიძლიათ იპოვოთ იგი webhook-ის რედაქტირების ფორმაში.",
+ "DONE": "მზადაა"
+ },
+ "COUNT": "{n} webhook | {n} webhook-ები",
+ "SEARCH_PLACEHOLDER": "ვებჰუქების ძიება...",
+ "NO_RESULTS": "თქვენი ძიების შესაბამისი ვებჰუქები ვერ მოიძებნა",
"FORM": {
- "CANCEL": "Cancel",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
+ "CANCEL": "გაუქმება",
+ "DESC": "Webhook-ის მოვლენები გთავაზობთ რეალურ დროში ინფორმაციას იმის შესახებ, რაც ხდება თქვენს Chatwoot ანგარიშში. გთხოვთ, შეიყვანოთ ვალიდური URL, რათა დააკონფიგურიროთ callback.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "მოვლენები",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "შეტყობინების შექმნა",
+ "CONVERSATION_STATUS_CHANGED": "შეტყობინების სტატუსი შეიცვალა",
+ "CONVERSATION_UPDATED": "შეტყობინება განახლდა",
+ "MESSAGE_CREATED": "შეტყობინება შექმნილია",
+ "MESSAGE_UPDATED": "შეტყობინება განახლებულია",
+ "WEBWIDGET_TRIGGERED": "მომხმარებელმა გახსნა ცოცხალი ჩეთის ვიჯეტი",
+ "CONTACT_CREATED": "კონტაქტი შექმნილია",
+ "CONTACT_UPDATED": "კონტაქტი განახლებულია",
+ "CONVERSATION_TYPING_ON": "ჩეთის აკრეფის ჩართვა",
+ "CONVERSATION_TYPING_OFF": "ჩეთის აკრეფის გამორთვა",
+ "INBOX_UPDATED": "Inbox updated"
}
},
- "END_POINT": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
+ "NAME": {
+ "LABEL": "ვებჰუკის სახელი",
+ "PLACEHOLDER": "შეიყვანეთ ვებჰუკის სახელი"
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "Create webhook"
+ "END_POINT": {
+ "LABEL": "Webhook-ის URL",
+ "PLACEHOLDER": "მაგალითი: {webhookExampleURL}",
+ "ERROR": "გთხოვთ, შეიყვანეთ ვალიდური URL"
+ },
+ "EDIT_SUBMIT": "Webhook-ის განახლება",
+ "ADD_SUBMIT": "Webhook-ის შექმნა"
},
"TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "CONFIGURE": "კონფიგურაცია",
+ "HEADER": "Webhook-ის პარამეტრები",
+ "HEADER_BTN_TXT": "ახალი webhook-ის დამატება",
+ "LOADING": "მიმაგრებული webhook-ების მიღება",
+ "SEARCH_404": "ამ მოთხოვნასთან შესაბამისი ჩანაწერები არ არის",
+ "SIDEBAR_TXT": "Webhook-ები
Webhook-ები არის HTTP callback-ები, რომლებიც შეიძლება განისაზღვროს თითოეული ანგარიშისთვის. ისინი იწვევიან მოვლენების შედეგად, როგორიცაა შეტყობინების შექმნა Chatwoot-ში. ამ ანგარიშისთვის შეგიძლიათ შექმნათ ერთი ან მეტი webhook.
ახალი webhook-ის შესაქმნელად დააჭირეთ ახალი webhook-ის დამატება ღილაკს. ასევე შეგიძლიათ წაშალოთ ნებისმიერი არსებული webhook, დააჭირეთ წაშლის ღილაკს.
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "404": "ამ ანგარიშისთვის არ არის კონფიგურირებული webhook-ები.",
+ "TITLE": "Webhook-ების მართვა",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook-ის მისამართი",
+ "ACTIONS": "მოქმედებები"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
- "TITLE": "Edit webhook",
+ "BUTTON_TEXT": "რედაქტირება",
+ "TITLE": "ვებჰუკის რედაქტირება",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook-ის კონფიგურაცია წარმატებით განახლდა",
+ "ERROR_MESSAGE": "Woot სერვერთან დაკავშირება ვერ მოხერხდა, გთხოვთ, სცადეთ მოგვიანებით"
}
},
"ADD": {
- "CANCEL": "Cancel",
- "TITLE": "Add new webhook",
+ "CANCEL": "გაუქმება",
+ "TITLE": "ახალი webhook-ის დამატება",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook-ის კონფიგურაცია წარმატებით დაემატა",
+ "ERROR_MESSAGE": "Woot სერვერთან დაკავშირება ვერ მოხერხდა, გთხოვთ, სცადეთ მოგვიანებით"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "წაშლა",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "Webhook წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "Woot სერვერთან დაკავშირება ვერ მოხერხდა, გთხოვთ, სცადეთ მოგვიანებით"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "Yes, Delete ",
- "NO": "No, Keep it"
+ "TITLE": "წაშლის დადასტურება",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ webhook-ის წაშლა? ({webhookURL})",
+ "YES": "დიახ, წაშლა ",
+ "NO": "არა, შენარჩუნება"
}
}
},
"SLACK": {
- "DELETE": "Delete",
+ "HEADER": "Slack",
+ "DELETE": "წაშლა",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "ინტეგრაციის წაშლა",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ ინტეგრაციის წაშლა? ეს გამოიწვევს წვდომის დაკარგვას თქვენს Slack სამუშაო სივრცეში საუბრებზე."
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "არჩეული"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
- "UPDATE": "Update",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "OPTION_LABEL": "არხის არჩევა",
+ "UPDATE": "განახლება",
+ "BUTTON_TEXT": "არხის დაკავშირება",
+ "DESCRIPTION": "თქვენი Slack სამუშაო სივრცე ახლა დაკავშირებულია Chatwoot-თან. თუმცა, ინტეგრაცია ამჟამად არააქტიურია. ინტეგრაციის გასააქტიურებლად და არხის Chatwoot-თან დასაკავშირებლად, გთხოვთ დააჭიროთ ქვემოთ მოცემულ ღილაკს.\n\n**შენიშვნა:** თუ ცდილობთ კერძო არხის დაკავშირებას, დაამატეთ Chatwoot აპლიკაცია Slack არხში ამ ნაბიჯის შესრულებამდე.",
+ "ATTENTION_REQUIRED": "საჭიროა ყურადღება",
+ "EXPIRED": "თქვენი Slack ინტეგრაცია ვადაგასულია. Slack-ზე შეტყობინებების მიღების გაგრძელებისთვის, გთხოვთ წაშალოთ ინტეგრაცია და workspace-ი ხელახლა დაუკავშიროთ."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "ინტეგრაციის განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "UPDATE_SUCCESS": "არხი წარმატებით დაკავშირებულია",
+ "FAILED_TO_FETCH_CHANNELS": "Slack-იდან არხების მიღებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "დაწკაპეთ აქ დასაწერად",
+ "LEAVE_THE_ROOM": "ოთახის დატოვება",
+ "START_VIDEO_CALL_HELP_TEXT": "დაიწყეთ ახალი ვიდეო ზარი მომხმარებელთან",
+ "JOIN_ERROR": "ზარის შეუერთებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "CREATE_ERROR": "შეხვედრის ბმულის შექმნისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI ასისტენტი",
+ "WITH_AI": " {option} AI-თან ერთად ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "პასუხის შეთავაზება",
+ "SUMMARIZE": "შეჯამება",
+ "REPHRASE": "წერის გაუმჯობესება",
+ "FIX_SPELLING_GRAMMAR": "გრამატიკისა და მართლწერის გამოსწორება",
+ "SHORTEN": "შემოკლება",
+ "EXPAND": "გაფართოება",
+ "MAKE_FRIENDLY": "შეტყობინების ტონის შეცვლა მეგობრულზე",
+ "MAKE_FORMAL": "გამოიყენე ფორმალური ტონი",
+ "SIMPLIFY": "გაამარტივე",
+ "CONFIDENT": "გამოიყენეთ თავდაჯერებული ტონი",
+ "PROFESSIONAL": "გამოიყენეთ პროფესიონალური ტონი",
+ "CASUAL": "გამოიყენეთ არაფორმალური ტონი",
+ "STRAIGHTFORWARD": "გამოიყენეთ პირდაპირი ტონი"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "უპრობლემოდ გააუმჯობესეთ პასუხი",
+ "IMPROVE_REPLY_SELECTION": "აუმჯობესეთ არჩევანი",
+ "CHANGE_TONE": {
+ "TITLE": "ტონის შეცვლა",
+ "OPTIONS": {
+ "PROFESSIONAL": "პროფესიონალური",
+ "CASUAL": "არაოფიციალური",
+ "STRAIGHTFORWARD": "მარტივი და გასაგები",
+ "CONFIDENT": "რწმუნებული",
+ "FRIENDLY": "მეგობრული"
+ }
+ },
+ "GRAMMAR": "გრამატიკისა და მართლწერის გამოსწორება",
+ "SUGGESTION": "პასუხის შეთავაზება",
+ "SUMMARIZE": "შეხვედრის შეჯამება",
+ "ASK_COPILOT": "კოპილოტს ჰკითხე"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "შავი შინაარსი",
+ "GENERATED_TITLE": "გენერირებული შინაარსი",
+ "AI_WRITING": "AI წერს",
"BUTTONS": {
- "APPLY": "Use this suggestion",
- "CANCEL": "Cancel"
+ "APPLY": "გამოიყენე ეს წინადადება",
+ "CANCEL": "გაუქმება"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "ინტეგრაცია OpenAI-თან",
+ "DESC": "მოიტანეთ მოწინავე AI ფუნქციები თქვენს დაფაზე OpenAI-ის GPT მოდელების დახმარებით. დასაწყებად, შეიყვანეთ API გასაღები თქვენი OpenAI ანგარიშიდან.",
+ "KEY_PLACEHOLDER": "შეიყვანეთ თქვენი OpenAI API გასაღები",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "დჭირდებათ დახმარება?",
+ "DISMISS": "გაუქმება",
+ "FINISH": "დასრულება"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "შეგიძლიათ OpenAI ინტეგრაცია დააყენოთ მოგვიანებით, როცა გსურთ.",
+ "SUCCESS_MESSAGE": "OpenAI ინტეგრაცია წარმატებით დააყენდა"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "გაუმჯობესება AI-ის დახმარებით",
+ "SUMMARY_TITLE": "შეჯამება AI-ის დახმარებით",
+ "REPLY_TITLE": "პასუხის წინადადება AI-ის დახმარებით",
+ "SUBTITLE": "თქვენი მიმდინარე პროექტის საფუძველზე AI-ის გამოყენებით უკეთესი პასუხი შეიქმნება.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "ტონი",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "პროფესიონალური",
+ "FRIENDLY": "მეგობრული"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
- "CANCEL": "Cancel"
+ "GENERATE": "გენერირება",
+ "GENERATING": "გენერირდება...",
+ "CANCEL": "გაუქმება"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "წაშლა",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "ინტეგრაცია წარმატებით წაიშალა"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "დაკავშირება"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "დეშბორდის აპლიკაციები",
+ "HEADER_BTN_TXT": "დაამატე ახალი დეშბორდის აპლიკაცია",
+ "SIDEBAR_TXT": "დეშბორდის აპლიკაციები
დეშბორდის აპლიკაციები საშუალებას აძლევს ორგანიზაციებს ჩასვან აპლიკაცია Chatwoot-ის დეშბორდში, რათა უზრუნველყონ კონტექსტი მომხმარებელთა მხარდაჭერის აგენტებისთვის. ეს ფუნქცია საშუალებას გაძლევთ დამოუკიდებლად შექმნათ აპლიკაცია და ჩასვათ იგი დეშბორდში, რათა მიაწოდოთ ინფორმაცია მომხმარებლის შესახებ, მათი შეკვეთები ან წინა გადახდების ისტორია.
როდესაც ჩასვამთ თქვენს აპლიკაციას Chatwoot-ის დეშბორდში, თქვენი აპლიკაცია მიიღებს საუბრისა და კონტაქტის კონტექსტს როგორც window event-ს. დააინსტალირეთ message event-ის მოსმენი თქვენს გვერდზე კონტექსტის მისაღებად.
ახალი დეშბორდის აპლიკაციის დასამატებლად დააჭირეთ ღილაკს „დაამატე ახალი დეშბორდის აპლიკაცია“.
",
+ "DESCRIPTION": "დეშბორდის აპლიკაციები საშუალებას აძლევს ორგანიზაციებს ჩასვან აპლიკაცია დეშბორდში, რათა უზრუნველყონ კონტექსტი მომხმარებელთა მხარდაჭერის აგენტებისთვის. ეს ფუნქცია საშუალებას გაძლევთ დამოუკიდებლად შექმნათ აპლიკაცია და ჩასვათ იგი, რათა მიაწოდოთ ინფორმაცია მომხმარებლის შესახებ, მათი შეკვეთები ან წინა გადახდების ისტორია.",
+ "LEARN_MORE": "გაიგეთ მეტი Dashboard აპლიკაციებზე",
+ "COUNT": "{n} დაფის აპლიკაცია | {n} დაფის აპლიკაციები",
+ "SEARCH_PLACEHOLDER": "დაფის აპლიკაციების ძებნა...",
+ "NO_RESULTS": "თქვენი ძიების შესაბამისი დაფის აპლიკაციები ვერ მოიძებნა",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "ამ ანგარიშზე ჯერ არ არის კონფიგურირებული დაფის აპლიკაციები",
+ "LOADING": "დაფის აპლიკაციების მიღება...",
+ "TABLE_HEADER": {
+ "NAME": "სახელი",
+ "ENDPOINT": "საბოლოო წერტილი",
+ "ACTIONS": "მოქმედებები"
+ },
+ "EDIT_TOOLTIP": "აპლიკაციის რედაქტირება",
+ "DELETE_TOOLTIP": "აპლიკაციის წაშლა"
},
"FORM": {
- "TITLE_LABEL": "Name",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_LABEL": "სახელი",
+ "TITLE_PLACEHOLDER": "შეიყვანეთ სახელი თქვენი დაფის აპისთვის",
+ "TITLE_ERROR": "დაფის აპისთვის სახელი აუცილებელია",
+ "URL_LABEL": "საბოლოო წერტილი",
+ "URL_PLACEHOLDER": "შეიყვანეთ URL, სადაც თქვენი აპი ჰოსტინგდება",
+ "URL_ERROR": "საჭიროა ვალიდური URL"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
- "FORM_SUBMIT": "Submit",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "HEADER": "დაამატეთ ახალი დაფის აპლიკაცია",
+ "FORM_SUBMIT": "გაგზავნა",
+ "FORM_CANCEL": "გაუქმება",
+ "API_SUCCESS": "დაფის აპლიკაცია წარმატებით კონფიგურირდა",
+ "API_ERROR": "აპლიკაციის შექმნა ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
- "FORM_SUBMIT": "Update",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "HEADER": "დაშბორდის აპლიკაციის რედაქტირება",
+ "FORM_SUBMIT": "განახლება",
+ "FORM_CANCEL": "გაუქმება",
+ "API_SUCCESS": "დაშბორდის აპლიკაცია წარმატებით განახლდა",
+ "API_ERROR": "აპლიკაციის განახლება ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "დიახ, წაშალე",
+ "CONFIRM_NO": "არა, შეინახე",
+ "TITLE": "წაშლის დადასტურება",
+ "MESSAGE": "ნამდვილად გსურთ წაშალოთ აპლიკაცია - {appName}?",
+ "API_SUCCESS": "დეშბორდის აპლიკაცია წარმატებით წაიშალა",
+ "API_ERROR": "აპლიკაციის წაშლა ვერ მოხერხდა. გთხოვთ, სცადეთ მოგვიანებით"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear საკითხის შექმნა/დაკავშირება",
+ "LOADING": "Linear საკითხების მიღება...",
+ "LOADING_ERROR": "ლინერ პრობლემების მიღებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "CREATE": "შექმნა",
+ "LINK": {
+ "SEARCH": "პრობლემების ძებნა",
+ "SELECT": "პრობლემის არჩევა",
+ "TITLE": "კავშირი",
+ "EMPTY_LIST": "ლინერ პრობლემები არ მოიძებნა",
+ "LOADING": "იტვირთება",
+ "ERROR": "ლინერ პრობლემების მიღებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "LINK_SUCCESS": "პრობლემა წარმატებით დაკავშირებულია",
+ "LINK_ERROR": "პრობლემის დაკავშირებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "LINK_TITLE": "შეტყობინება (#{conversationId}) {name}-თან"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "შექმნა/დაკავშირება linear საკითხთან",
+ "DESCRIPTION": "შექმენით Linear საკითხები საუბრებიდან ან დაუკავშირეთ არსებული, შეუფერხებელი მონიტორინგისთვის.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "სათაური",
+ "PLACEHOLDER": "შეიყვანეთ სათაური",
+ "REQUIRED_ERROR": "სათაური აუცილებელია"
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "შეიყვანეთ აღწერა"
+ },
+ "TEAM": {
+ "LABEL": "გუნდი",
+ "PLACEHOLDER": "აირჩიეთ გუნდი",
+ "SEARCH": "გუნდის ძებნა",
+ "REQUIRED_ERROR": "გუნდი აუცილებელია"
+ },
+ "ASSIGNEE": {
+ "LABEL": "მიმღები",
+ "PLACEHOLDER": "აირჩიეთ პასუხისმგებელი",
+ "SEARCH": "მონიშნულის ძებნა"
+ },
+ "PRIORITY": {
+ "LABEL": "პრიორიტეტი",
+ "PLACEHOLDER": "აირჩიეთ პრიორიტეტი",
+ "SEARCH": "პრიორიტეტის ძებნა"
+ },
+ "LABEL": {
+ "LABEL": "ლეიბლი",
+ "PLACEHOLDER": "აირჩიეთ ლეიბლი",
+ "SEARCH": "ლეიბლის ძებნა"
+ },
+ "STATUS": {
+ "LABEL": "სტატუსი",
+ "PLACEHOLDER": "აირჩიეთ სტატუსი",
+ "SEARCH": "სტატუსის ძიება"
+ },
+ "PROJECT": {
+ "LABEL": "პროექტი",
+ "PLACEHOLDER": "აირჩიეთ პროექტი",
+ "SEARCH": "პროექტის ძიება"
+ }
+ },
+ "CREATE": "შექმნა",
+ "CANCEL": "გაუქმება",
+ "CREATE_SUCCESS": "პრობლემა წარმატებით შეიქმნა",
+ "CREATE_ERROR": "პრობლემის შექმნისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "LOADING_TEAM_ERROR": "გუნდების ჩამოტვირთვისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "LOADING_TEAM_ENTITIES_ERROR": "გუნდების ერთეულების ჩამოტვირთვისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
+ },
+ "ISSUE": {
+ "STATUS": "სტატუსი",
+ "PRIORITY": "პრიორიტეტი",
+ "ASSIGNEE": "მიმღები",
+ "LABELS": "ლეიბლები",
+ "CREATED_AT": "შექმნილია {createdAt}-ზე"
+ },
+ "UNLINK": {
+ "TITLE": "გაშორება",
+ "SUCCESS": "პრობლემა წარმატებით გაუკავშირდა",
+ "ERROR": "პრობლემის გაუკავშრებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან"
+ },
+ "NO_LINKED_ISSUES": "დაკავშირებული საკითხები არ მოიძებნა",
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ გინდათ ინტეგრაციის წაშლა?",
+ "MESSAGE": "დარწმუნებული ხართ, რომ გინდათ ინტეგრაციის წაშლა?",
+ "CONFIRM": "დიახ, წაშლა",
+ "CANCEL": "გაუქმება"
+ },
+ "CTA": {
+ "TITLE": "დაკავშირება Linear-სთან",
+ "AGENT_DESCRIPTION": "Linear სამუშაო სივრცე დაკავშირებული არ არის. მიმართეთ თქვენს ადმინისტრატორს სამუშაო სივრცის დასაკავშირებლად, რათა გამოიყენოთ ეს ინტეგრაცია.",
+ "DESCRIPTION": "Linear სამუშაო სივრცე დაკავშირებული არ არის. დააჭირეთ ქვემოთ მოცემულ ღილაკს, რათა დააკავშიროთ თქვენი სამუშაო სივრცე და გამოიყენოთ ეს ინტეგრაცია.",
+ "BUTTON_TEXT": "Linear სამუშაო სივრცის დაკავშირება"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ გინდათ Notion ინტეგრაციის წაშლა?",
+ "MESSAGE": "ამ ინტეგრაციის წაშლა წაშლის წვდომას თქვენს Notion სამუშაო სივრცეზე და შეწყვეტს ყველა დაკავშირებულ ფუნქციონალს.",
+ "CONFIRM": "დიახ, წაშლა",
+ "CANCEL": "გაუქმება"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "კაპიტანი",
+ "HEADER_KNOW_MORE": "გაიგე მეტი",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "მხარდაჭერები",
+ "SWITCH_ASSISTANT": "გაართეთ მხარდაჭერებს შორის",
+ "NEW_ASSISTANT": "დამხმარის შექმნა",
+ "EMPTY_LIST": "დახმარების ასისტენტები ვერ მოიძებნა, გთხოვთ შექმნათ ერთი დასაწყებად"
+ },
+ "COPILOT": {
+ "TITLE": "კოპილოტი",
+ "TRY_THESE_PROMPTS": "გამოიყენეთ ეს პრომპტები",
+ "PANEL_TITLE": "დაიწყეთ Copilot-თან",
+ "KICK_OFF_MESSAGE": "საჭიროა სწრაფი შეჯამება, გინდა წარსული საუბრების გადამოწმება ან უკეთესი პასუხის შედგენა? Copilot აქ არის, რომ ყველაფერი დააჩქაროს.",
+ "SEND_MESSAGE": "გაგზავნეთ შეტყობინება...",
+ "EMPTY_MESSAGE": "პასუხის გენერირებისას მოხდა შეცდომა. გთხოვთ, სცადეთ თავიდან.",
+ "LOADER": "კაპიტანი ფიქრობს",
+ "YOU": "შენ",
+ "USE": "გამოიყენე ეს",
+ "RESET": "გადაყენება",
+ "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-ის გამოყენებისთვის",
+ "AVAILABLE_ON": "Captain ხელმისაწვდომი არ არის უფასო გეგმაზე.",
+ "UPGRADE_PROMPT": "გააუმჯობესეთ თქვენი გეგმა, რომ მიიღოთ წვდომა ასისტენტებზე, copilote-ზე და სხვა ფუნქციებზე.",
+ "UPGRADE_NOW": "ახლავე განაახლეთ",
+ "CANCEL_ANYTIME": "თქვენ შეგიძლიათ ნებისმიერ დროს შეცვალოთ ან გააუქმოთ თქვენი გეგმა"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI ხელმისაწვდომია მხოლოდ Enterprise გეგმებში.",
+ "UPGRADE_PROMPT": "განაახლეთ თქვენი გეგმა, რათა მიიღოთ წვდომა ჩვენს ასისტენტებზე, კოპილოტზე და სხვა ფუნქციებზე.",
+ "ASK_ADMIN": "გთხოვთ, მიმართეთ თქვენს ადმინისტრატორს განახლებისთვის."
+ },
+ "BANNER": {
+ "RESPONSES": "თქვენ გამოიყენეთ თქვენი პასუხების ლიმიტის 80%-ზე მეტი. Captain AI-ს გამოყენების გაგრძელებისთვის, გთხოვთ განაახლეთ.",
+ "DOCUMENTS": "დოკუმენტების ლიმიტი მიღწეულია. განაახლეთ, რომ გააგრძელოთ Captain AI-ის გამოყენება."
+ },
+ "FORM": {
+ "CANCEL": "გაუქმება",
+ "CREATE": "შექმნა",
+ "EDIT": "განახლება"
+ },
+ "ASSISTANTS": {
+ "HEADER": "მხარდამჭერები",
+ "NO_ASSISTANTS_AVAILABLE": "თქვენს ანგარიშში ასისტენტები არ არის.",
+ "ADD_NEW": "ახალი დამხმარის შექმნა",
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ გინდათ დამხმარის წაშლა?",
+ "DESCRIPTION": "ეს მოქმედება არის მუდმივი. დამხმარის წაშლა წაშლის მას ყველა დაკავშირებული ინბოქსიდან და სამუდამოდ წაშლის ყველა გენერირებულ ცოდნას.",
+ "CONFIRM": "დიახ, წაშლა",
+ "SUCCESS_MESSAGE": "მხარდამჭერი წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "მხარდამჭერის წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM_DESCRIPTION": "შეავსეთ ქვემოთ მოცემული დეტალები, რათა დაარქვათ თქვენი მხარდამჭერი, აღწეროთ მისი დანიშნულება და მიუთითოთ პროდუქტი, რომელსაც ის დაეხმარება.",
+ "CREATE": {
+ "TITLE": "მხარდამჭერის შექმნა",
+ "SUCCESS_MESSAGE": "დამხმარე წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "დამხმარის შექმნისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM": {
+ "UPDATE": "განახლება",
+ "SECTIONS": {
+ "BASIC_INFO": "ძირითადი ინფორმაცია",
+ "SYSTEM_MESSAGES": "სისტემის შეტყობინებები",
+ "INSTRUCTIONS": "ინსტრუქციები",
+ "FEATURES": "ფუნქციები",
+ "TOOLS": "ინსტრუმენტები "
+ },
+ "NAME": {
+ "LABEL": "სახელი",
+ "PLACEHOLDER": "ჩაწერეთ ასისტენტის სახელი",
+ "ERROR": "სახელი აუცილებელია"
+ },
+ "TEMPERATURE": {
+ "LABEL": "პასუხის ტემპერატურა",
+ "DESCRIPTION": "დაარეგულირეთ, თუ რამდენად კრეატიული ან შეზღუდული უნდა იყოს ასისტენტის პასუხები. დაბალი მნიშვნელობები იძლევა უფრო ფოკუსირებულ და დეტერმინისტულ პასუხებს, ხოლო მაღალი მნიშვნელობები საშუალებას აძლევს უფრო კრეატიულ და მრავალფეროვან პასუხებს."
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "ჩაწერეთ ასისტენტის აღწერა",
+ "ERROR": "აღწერა აუცილებელია"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "პროდუქტის სახელი",
+ "PLACEHOLDER": "ჩაწერეთ პროდუქტის სახელი",
+ "ERROR": "პროდუქტის სახელი აუცილებელია"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "მოგესალმების შეტყობინება",
+ "PLACEHOLDER": "შეიყვანეთ მისასალმებელი შეტყობინება"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "გადაცემის შეტყობინება",
+ "PLACEHOLDER": "შეიყვანეთ გადაცემის შეტყობინება"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "გადაწყვეტილების შეტყობინება",
+ "PLACEHOLDER": "შეიყვანეთ გადაწყვეტილების შეტყობინება"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "ინსტრუქციები",
+ "PLACEHOLDER": "ჩაწერეთ ინსტრუქციები ასისტენტისთვის"
+ },
+ "FEATURES": {
+ "TITLE": "მახასიათებლები",
+ "ALLOW_CONVERSATION_FAQS": "შექმენით ხშირად დასმული კითხვები გადაჭრილი საუბრებიდან",
+ "ALLOW_MEMORIES": "მომხმარებელთან ურთიერთობებიდან მნიშვნელოვანი დეტალების დამახსოვრება.",
+ "ALLOW_CITATIONS": "პასუხებში წყაროს ციტატების ჩართვა",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "დახმარების ასისტენტის განახლება",
+ "SUCCESS_MESSAGE": "ასისტენტი წარმატებით განახლდა",
+ "ERROR_MESSAGE": "ასისტენტის განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან.",
+ "NOT_FOUND": "ასისტენტი ვერ მოიძებნა. გთხოვთ, სცადეთ თავიდან."
+ },
+ "SETTINGS": {
+ "HEADER": "პარამეტრები",
+ "BASIC_SETTINGS": {
+ "TITLE": "საწყისი პარამეტრები",
+ "DESCRIPTION": "დაარეგულირეთ, რას იტყვის ასისტენტი საუბრის დასრულების ან ადამიანის გადაცემის დროს."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "სისტემის პარამეტრები",
+ "DESCRIPTION": "დააკონფიგურირეთ, რას იტყვის ასისტენტი საუბრის დასრულების ან ადამიანზე გადაცემის დროს."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "სასიამოვნო დეტალები",
+ "DESCRIPTION": "მატება კონტროლის ასისტენტზე. (ცოტათი ვიზუალური, როგორც ამბავი: შეკითხვის საზღვრები → სცენარები → შედეგი) ხელს უწყობს მომხმარებელს მათ გამოყენებაში.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "საზღვრები",
+ "DESCRIPTION": "შეინარჩუნეთ ყველაფერი წესრიგში — მხოლოდ ის კითხვები, რომელზეც გსურთ ასისტენტმა უპასუხოს, არაფერი აკრძალული ან თემიდან გასული."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "პასუხის მითითებები",
+ "DESCRIPTION": "თქვენი ასისტენტის პასუხების სტილი და სტრუქტურა — ნათელი და მეგობრული? მოკლე და მკვეთრი? დეტალური და ფორმალური?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "დამხმარის წაშლა",
+ "DESCRIPTION": "ეს მოქმედება არის მუდმივი. ამ დამხმარის წაშლა წაშლის მას ყველა დაკავშირებული ინბოქსიდან და სამუდამოდ წაშლის ყველა გენერირებულ ცოდნას.",
+ "BUTTON_TEXT": "{assistantName}-ის წაშლა"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "ასისტენტის რედაქტირება",
+ "DELETE_ASSISTANT": "ასისტენტის წაშლა",
+ "VIEW_CONNECTED_INBOXES": "დაკავშირებული ინბოქსების ნახვა"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "დახმარება არ არის",
+ "SUBTITLE": "შექმენით ასისტენტი, რომელიც სწრაფ და ზუსტ პასუხებს მისცემს თქვენს მომხმარებლებს. ის სწავლობს თქვენი დახმარების სტატიებიდან და წარსული საუბრებიდან.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain ასისტენტი",
+ "NOTE": "Captain ასისტენტი უშუალოდ ურთიერთობს მომხმარებლებთან, სწავლობს თქვენი დახმარების დოკუმენტაციიდან და წარსული საუბრებიდან და უზრუნველყოფს სწრაფ, ზუსტ პასუხებს. ის აგვარებს საწყის კითხვებს, სწრაფად იძლევა გადაწყვეტილებებს და საჭიროების შემთხვევაში გადასცემს აგენტს."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "საზღვრები",
+ "DESCRIPTION": "ამყარებს წესრიგს — მხოლოდ ის კითხვები, რომელზეც გსურთ თქვენი ასისტენტი უპასუხოს, არაფერი აკრძალული ან თემიდან გასული.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ელემენტი არჩეული | {count} ელემენტი არჩეული",
+ "SELECT_ALL": "ყველას არჩევა ({count})",
+ "UNSELECT_ALL": "ყველას არჩევის გაუქმება ({count})",
+ "BULK_DELETE_BUTTON": "წაშლა"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "მაგალითი გარდრეილები",
+ "ADD": "ყველას დამატება",
+ "ADD_SINGLE": "დაამატე ეს",
+ "SAVE": "დაამატე და შეინახე (↵)",
+ "PLACEHOLDER": "ჩაწერე სხვა გარდრეილი..."
+ },
+ "NEW": {
+ "TITLE": "დაამატე გარდრეილი",
+ "CREATE": "შექმნა",
+ "CANCEL": "გაუქმება",
+ "PLACEHOLDER": "ჩაწერეთ სხვა დაცვის ზოლი...",
+ "TEST_ALL": "ყველას ტესტირება"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ძიება..."
+ },
+ "EMPTY_MESSAGE": "დაცვის ზოლები ვერ მოიძებნა. დაიწყეთ შექმნით ან მაგალითების დამატებით.",
+ "SEARCH_EMPTY_MESSAGE": "ამ ძიებისთვის არ მოიძებნა დაცვის ზომები.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "გარდრეილები წარმატებით დაემატა",
+ "ERROR": "გარდრეილების დამატებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "UPDATE": {
+ "SUCCESS": "გარდრეილები წარმატებით განახლდა",
+ "ERROR": "გარდრეილების განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "DELETE": {
+ "SUCCESS": "გარდრეილები წარმატებით წაიშალა",
+ "ERROR": "გარდრეილების წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "პასუხის მითითებები",
+ "DESCRIPTION": "თქვენი ასისტენტის პასუხების სტილი და სტრუქტურა — ნათელი და მეგობრული? მოკლე და მკვეთრი? დეტალური და ფორმალური?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ელემენტი არჩეული | {count} ელემენტები არჩეული",
+ "SELECT_ALL": "ყველას არჩევა ({count})",
+ "UNSELECT_ALL": "ყველას გაუქმება ({count})",
+ "BULK_DELETE_BUTTON": "წაშლა"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "პასუხის მაგალითის წესები",
+ "ADD": "ყველას დამატება",
+ "ADD_SINGLE": "ეს დაამატე",
+ "SAVE": "დამატება და შენახვა (↵)",
+ "PLACEHOLDER": "ჩაწერეთ სხვა პასუხის მითითება..."
+ },
+ "NEW": {
+ "TITLE": "პასუხის მითითების დამატება",
+ "CREATE": "შექმნა",
+ "CANCEL": "გაუქმება",
+ "PLACEHOLDER": "ჩაწერეთ სხვა პასუხის მითითება...",
+ "TEST_ALL": "ყველას შემოწმება"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ძიება..."
+ },
+ "EMPTY_MESSAGE": "პასუხის მითითებები ვერ მოიძებნა. დაიწყეთ შექმნით ან მაგალითების დამატებით.",
+ "SEARCH_EMPTY_MESSAGE": "ამ ძიებისთვის პასუხის მითითებები არ მოიძებნა.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "პასუხის მითითებები წარმატებით დაემატა",
+ "ERROR": "პასუხის მითითებების დამატებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "UPDATE": {
+ "SUCCESS": "პასუხის მითითებები წარმატებით განახლდა",
+ "ERROR": "პასუხის მითითებების განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "DELETE": {
+ "SUCCESS": "პასუხის მითითებები წარმატებით წაიშალა",
+ "ERROR": "პასუხის მითითებების წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "სცენარები",
+ "DESCRIPTION": "მიანიჭეთ თქვენს ასისტენტს კონტექსტი — მაგალითად, „რა უნდა გააკეთოს, როცა მომხმარებელი გაჭედილია“ ან „როგორ მოიქცეს თანხის დაბრუნების მოთხოვნის დროს“.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ელემენტი არჩეულია | {count} ელემენტი არჩეულია",
+ "SELECT_ALL": "აირჩიეთ ყველა ({count})",
+ "UNSELECT_ALL": "გაუქმება ყველა არჩევანი ({count})",
+ "BULK_DELETE_BUTTON": "წაშლა"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "მაგალითის სცენარები",
+ "ADD": "დაამატეთ ყველა",
+ "ADD_SINGLE": "დაამატე ეს",
+ "TOOLS_USED": "გამოყენებული ხელსაწყოები :"
+ },
+ "NEW": {
+ "CREATE": "სცენარის დამატება",
+ "TITLE": "სცენარის შექმნა",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "სათაური",
+ "PLACEHOLDER": "შეიყვანეთ სცენარის სახელი",
+ "ERROR": "სცენარის სახელი აუცილებელია"
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "აღწერეთ, როგორ და სად იქნება გამოყენებული ეს სცენარი",
+ "ERROR": "სცენარის აღწერა აუცილებელია"
+ },
+ "INSTRUCTION": {
+ "LABEL": "როგორ მოვაგვაროთ",
+ "PLACEHOLDER": "აღწერეთ, როგორ და სად დამუშავდება ეს სცენარი",
+ "ERROR": "სცენარის შინაარსი აუცილებელია"
+ },
+ "CREATE": "შექმნა",
+ "CANCEL": "გაუქმება"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "გაუქმება",
+ "UPDATE": "ცვლილებების განახლება"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "ძიება..."
+ },
+ "EMPTY_MESSAGE": "სცენარები არ მოიძებნა. დაიწყეთ შექმნით ან მაგალითების დამატებით.",
+ "SEARCH_EMPTY_MESSAGE": "ამ ძიებისთვის სცენარები არ მოიძებნა.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "სცენარები წარმატებით დაემატა",
+ "ERROR": "სცენარების დამატებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "UPDATE": {
+ "SUCCESS": "სცენარები წარმატებით განახლდა",
+ "ERROR": "სცენარების განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "DELETE": {
+ "SUCCESS": "სცენარები წარმატებით წაიშალა",
+ "ERROR": "სცენარების წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "დოკუმენტები",
+ "ADD_NEW": "ახალი დოკუმენტის შექმნა",
+ "SELECTED": "{count} არჩეული",
+ "SELECT_ALL": "ყველას არჩევა ({count})",
+ "UNSELECT_ALL": "ყველას არჩევის გაუქმება ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "დიახ, წაშალე ყველა",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "შეცდომა"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "მიმართებული ხშირად დასმული კითხვები",
+ "DESCRIPTION": "ეს ხშირად დასმული კითხვები პირდაპირ დოკუმენტიდან არის გენერირებული."
+ },
+ "FORM_DESCRIPTION": "შეიყვანეთ დოკუმენტის URL, რომ დაამატოთ იგი ცოდნის წყაროდ და აირჩიეთ ასისტენტი, რომელთანაც დაკავშირება გსურთ.",
+ "CREATE": {
+ "TITLE": "დოკუმენტის დამატება",
+ "SUCCESS_MESSAGE": "დოკუმენტი წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "დოკუმენტის შექმნისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "დოკუმენტის ტიპი",
+ "URL": "URL",
+ "PDF": "PDF ფაილი"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "შეიყვანეთ დოკუმენტის URL",
+ "ERROR": "გთხოვთ, მიუთითეთ დოკუმენტის ვალიდური URL"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF ფაილი",
+ "CHOOSE_FILE": "აირჩიეთ PDF ფაილი",
+ "ERROR": "გთხოვთ, აირჩიოთ PDF ფაილი",
+ "HELP_TEXT": "ფაილის მაქსიმალური ზომა: 10MB",
+ "INVALID_TYPE": "გთხოვთ, აირჩიოთ ვალიდური PDF ფაილი",
+ "TOO_LARGE": "ფაილის ზომა აღემატება 10MB-ს ლიმიტს"
+ },
+ "NAME": {
+ "LABEL": "დოკუმენტის სახელი (არასავალდებულო)",
+ "PLACEHOLDER": "შეიყვანეთ დოკუმენტის სახელი"
+ }
+ },
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ გინდათ დოკუმენტის წაშლა?",
+ "DESCRIPTION": "ეს მოქმედება არის მუდმივი. დოკუმენტის წაშლა სამუდამოდ წაშლის ყველა გენერირებულ ცოდნას.",
+ "CONFIRM": "დიახ, წაშლა",
+ "SUCCESS_MESSAGE": "დოკუმენტი წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "დოკუმენტის წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "იხილეთ დაკავშირებული პასუხები",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "დოკუმენტის წაშლა"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "დოკუმენტები არ არის",
+ "SUBTITLE": "დოკუმენტები გამოიყენება თქვენი ასისტენტის მიერ ხშირად დასმული კითხვების შესაქმნელად. შეგიძლიათ იმპორტოთ დოკუმენტები, რათა ასისტენტს კონტექსტი მიაწოდოთ.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain დოკუმენტი",
+ "NOTE": "Captain-ში დოკუმენტი ასისტენტისთვის ცოდნის რესურსის როლს ასრულებს. თქვენი დახმარების ცენტრის ან სახელმძღვანელოების დაკავშირებით, Captain აფასებს შინაარსს და უზრუნველყოფს ზუსტ პასუხებს მომხმარებელთა კითხვებზე."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "ინსტრუმენტები",
+ "ADD_NEW": "შექმენი ახალი ხელსაწყო",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "არ არის ხელმისაწვდომი მორგებული ხელსაწყოები",
+ "SUBTITLE": "შექმენი მორგებული ხელსაწყოები, რომ დაკავშირება მოახდინოს შენმა ასისტენტმა გარე API-ებთან და სერვისებთან, რაც საშუალებას მისცემს მას მონაცემების მიღებას და ქმედებების შესრულებას შენს სახელზე.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "მორგებული ხელსაწყოები",
+ "NOTE": "მორგებული ხელსაწყოები საშუალებას აძლევს შენს ასისტენტს ურთიერთქმედება გარე API-ებთან და სერვისებთან. შექმენი ხელსაწყოები მონაცემების მისაღებად, ქმედებების შესასრულებლად ან ინტეგრაციისთვის შენს არსებულ სისტემებთან, რათა გააუმჯობესო ასისტენტის შესაძლებლობები."
+ }
+ },
+ "FORM_DESCRIPTION": "დააკონფიგურირეთ თქვენი მორგებული ინსტრუმენტი, რათა დაუკავშირდეთ გარე API-ებს",
+ "OPTIONS": {
+ "EDIT_TOOL": "ინსტრუმენტის რედაქტირება",
+ "DELETE_TOOL": "ინსტრუმენტის წაშლა"
+ },
+ "CREATE": {
+ "TITLE": "მორგებული ინსტრუმენტის შექმნა",
+ "SUCCESS_MESSAGE": "მორგებული ინსტრუმენტი წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "კასტომური ხელსაწყოს შექმნა ვერ მოხერხდა"
+ },
+ "EDIT": {
+ "TITLE": "კასტომური ხელსაწყოს რედაქტირება",
+ "SUCCESS_MESSAGE": "კასტომური ხელსაწყო წარმატებით განახლდა",
+ "ERROR_MESSAGE": "კასტომური ხელსაწყოს განახლება ვერ მოხერხდა"
+ },
+ "DELETE": {
+ "TITLE": "კასტომური ხელსაწყოს წაშლა",
+ "DESCRIPTION": "დარწმუნებული ხართ, რომ გინდათ ამ კასტომური ხელსაწყოს წაშლა? ეს მოქმედება არ არის გაუქმებადი.",
+ "CONFIRM": "დიახ, წაშლა",
+ "SUCCESS_MESSAGE": "კასტომური ხელსაწყო წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "კასტომური ხელსაწყოს წაშლა ვერ მოხერხდა"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "ხელისაწვდომობის სახელი",
+ "PLACEHOLDER": "შეკვეთის მოძებნა",
+ "ERROR": "ინსტრუმენტის სახელი აუცილებელია",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "აღწერა",
+ "PLACEHOLDER": "შეკვეთის დეტალების მოძებნა შეკვეთის ID-ის მიხედვით"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "მეთოდი"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "საბოლოო URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "საჭიროა ვალიდური URL"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "ავტორიზაციის ტიპი"
+ },
+ "AUTH_TYPES": {
+ "NONE": "არცერთი",
+ "BEARER": "Bearer ტოკენი",
+ "BASIC": "საშუალო ავტორიზაცია",
+ "API_KEY": "API გასაღები"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer ტოკენი",
+ "BEARER_TOKEN_PLACEHOLDER": "შეიყვანეთ თქვენი bearer ტოკენი",
+ "USERNAME": "მომხმარებლის სახელი",
+ "USERNAME_PLACEHOLDER": "შეიყვანეთ მომხმარებლის სახელი",
+ "PASSWORD": "პაროლი",
+ "PASSWORD_PLACEHOLDER": "შეიყვანეთ პაროლი",
+ "API_KEY": "სათაურის სახელი",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "სათაურის მნიშვნელობა",
+ "API_VALUE_PLACEHOLDER": "შეიყვანეთ API გასაღების მნიშვნელობა"
+ },
+ "PARAMETERS": {
+ "LABEL": "პარამეტრები",
+ "HELP_TEXT": "დააზუსტეთ პარამეტრები, რომლებიც გამოიწერება მომხმარებლის კითხვებიდან"
+ },
+ "ADD_PARAMETER": "პარამეტრის დამატება",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "პარამეტრის სახელი (მაგ., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "ტიპი"
+ },
+ "PARAM_TYPES": {
+ "STRING": "სტრიქონი",
+ "NUMBER": "რიცხვი",
+ "BOOLEAN": "ბულიანი",
+ "ARRAY": "მონაცემთა მასივი",
+ "OBJECT": "ობიექტი"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "პარამეტრის აღწერა"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "საჭირო"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "მოთხოვნის სხეულის შაბლონი (არასავალდებულო)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "პასუხის შაბლონი (არასავალდებულო)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "პარამეტრის სახელი სავალდებულოა"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "ხშირად დასმული კითხვები",
+ "PENDING_FAQS": "მოლოდინში FAQ-ები",
+ "ADD_NEW": "ახალი FAQ-ის შექმნა",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "შეტყობინება #{id}"
+ },
+ "SELECTED": "{count} არჩეული",
+ "SELECT_ALL": "ყველას არჩევა ({count})",
+ "UNSELECT_ALL": "ყველას არჩევის გაუქმება ({count})",
+ "SEARCH_PLACEHOLDER": "ძიება ხშირად დასმულ კითხვებში...",
+ "BULK_APPROVE_BUTTON": "დამტკიცება",
+ "BULK_DELETE_BUTTON": "წაშლა",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "ხშირად დასმული კითხვები წარმატებით დამტკიცდა",
+ "ERROR_MESSAGE": "ხშირად დასმული კითხვების დამტკიცებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "BULK_DELETE": {
+ "TITLE": "ხშირად დასმული კითხვების წაშლა?",
+ "DESCRIPTION": "დარწმუნებული ხართ, რომ გინდათ არჩეული ხშირად დასმული კითხვების წაშლა? ეს მოქმედება არ არის გაუქმებადი.",
+ "CONFIRM": "დიახ, წაშალე ყველა",
+ "SUCCESS_MESSAGE": "ხშირად დასმული კითხვები წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "ხშირად დასმული კითხვების წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ გინდათ FAQ-ის წაშლა?",
+ "DESCRIPTION": "",
+ "CONFIRM": "დიახ, წაშლა",
+ "SUCCESS_MESSAGE": "FAQ წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "FAQ-ის წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "FILTER": {
+ "ASSISTANT": "დამხმარე: {selected}",
+ "STATUS": "სტატუსი: {selected}",
+ "ALL_ASSISTANTS": "ყველა"
+ },
+ "STATUS": {
+ "TITLE": "სტატუსი",
+ "PENDING": "მიმდინარე",
+ "APPROVED": "დამტკიცებული",
+ "ALL": "ყველა"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain-მა იპოვა რამდენიმე FAQ, რომელსაც თქვენი მომხმარებლები ეძებდნენ.",
+ "ACTION": "დააჭირეთ აქ გადახედვისთვის"
+ },
+ "FORM_DESCRIPTION": "დაამატეთ კითხვა და მისი შესაბამისი პასუხი ცოდნის ბაზაში და აირჩიეთ ასისტენტი, რომელთანაც უნდა იყოს დაკავშირებული.",
+ "CREATE": {
+ "TITLE": "დაამატეთ FAQ",
+ "SUCCESS_MESSAGE": "პასუხი წარმატებით დაემატა.",
+ "ERROR_MESSAGE": "პასუხის დამატებისას მოხდა შეცდომა. გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "კითხვა",
+ "PLACEHOLDER": "შეიყვანეთ კითხვა აქ",
+ "ERROR": "გთხოვთ, მიუთითეთ ვალიდური კითხვა."
+ },
+ "ANSWER": {
+ "LABEL": "პასუხი",
+ "PLACEHOLDER": "პასუხი შეიყვანეთ აქ",
+ "ERROR": "გთხოვთ, მიუთითეთ ვალიდური პასუხი."
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ-ის განახლება",
+ "SUCCESS_MESSAGE": "FAQ წარმატებით განახლდა",
+ "ERROR_MESSAGE": "FAQ-ის განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ დამტკიცებულად მონიშნულია"
+ },
+ "OPTIONS": {
+ "APPROVE": "მიღება",
+ "EDIT_RESPONSE": "რედაქტირება",
+ "DELETE_RESPONSE": "წაშლა"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "არ მოიძებნა ხშირად დასმული კითხვები",
+ "NO_PENDING_TITLE": "მიმდინარე კითხვები განხილვისთვის აღარ არის",
+ "SUBTITLE": "ხშირად დასმული კითხვები ეხმარება თქვენს ასისტენტს სწრაფ და ზუსტ პასუხებს გასცეს მომხმარებელთა შეკითხვებს. ისინი შეიძლება ავტომატურად შეიქმნას თქვენი კონტენტიდან ან ხელით დაემატოს.",
+ "CLEAR_SEARCH": "აქტიური ფილტრების გასუფთავება",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "კაპიტანის ხშირად დასმული კითხვები",
+ "NOTE": "Captain FAQs ამოიცნობს ხშირ მომხმარებლის კითხვებს — იქნება ისინი თქვენი ცოდნის ბაზაში არარსებული ან ხშირად დასმული — და ქმნის შესაბამის ხშირად დასმულ კითხვებს მხარდაჭერის გაუმჯობესებისთვის. შეგიძლიათ შეამოწმოთ თითოეული წინადადება და გადაწყვიტოთ მისი დამტკიცება თუ უარყოფა."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "დაკავშირებული ინბოქსები",
+ "ADD_NEW": "ახალი ინბოქსის დაკავშირება",
+ "OPTIONS": {
+ "DISCONNECT": "გათიშვა"
+ },
+ "DELETE": {
+ "TITLE": "დარწმუნებული ხართ, რომ ინბოქსი გათიშოთ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "დიახ, წაშლა",
+ "SUCCESS_MESSAGE": "ინბოქსი წარმატებით გათიშულია.",
+ "ERROR_MESSAGE": "ინბოქსის გათიშვისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM_DESCRIPTION": "აირჩიეთ ინბოქსი ასისტენტთან დასაკავშირებლად.",
+ "CREATE": {
+ "TITLE": "ინბოქსის დაკავშირება",
+ "SUCCESS_MESSAGE": "ინბოქსი წარმატებით გაიკეთა.",
+ "ERROR_MESSAGE": "ინბოქსის დაკავშირებისას მოხდა შეცდომა. გთხოვთ, სცადეთ თავიდან."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "ინბოქსი",
+ "PLACEHOLDER": "აირჩიეთ ინბოქსი ასისტენტის განთავსებისთვის.",
+ "ERROR": "ინბოქსის არჩევა აუცილებელია."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "დაკავშირებული ინბოქსები არ არის",
+ "SUBTITLE": "ინბოქსის დაკავშირება საშუალებას აძლევს ასისტენტს მოაგვაროს მომხმარებელთა საწყისი კითხვები, სანამ ისინი თქვენთან გადაეცემა."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
index 09ac38551..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ka/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/ka/login.json b/app/javascript/dashboard/i18n/locale/ka/login.json
index 858d40656..19bb8dc46 100644
--- a/app/javascript/dashboard/i18n/locale/ka/login.json
+++ b/app/javascript/dashboard/i18n/locale/ka/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "SSO-ით შესვლა",
+ "TITLE": "ერთიანი შესვლის (SSO) დაწყება",
+ "SUBTITLE": "შეიყვანეთ თქვენი სამუშაო ელფოსტა, რათა შეხვიდეთ თქვენს ორგანიზაციაში",
+ "BACK_TO_LOGIN": "შესვლა პაროლით",
+ "WORK_EMAIL": {
+ "LABEL": "სამუშაო ელფოსტა",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი სამუშაო ელფოსტა"
+ },
+ "SUBMIT": "გაგრძელება SSO-ით",
+ "API": {
+ "ERROR_MESSAGE": "SSO-ით ავთენტიფიკაცია ვერ შესრულდა. გთხოვთ, გადაამოწმეთ თქვენი შესვლის მონაცემები და სცადეთ ხელახლა."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/macros.json b/app/javascript/dashboard/i18n/locale/ka/macros.json
index 3a59d4f26..d73631be0 100644
--- a/app/javascript/dashboard/i18n/locale/ka/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ka/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Assign an Agent",
+ "ADD_LABEL": "იარლიყის დამატება",
+ "REMOVE_LABEL": "იარლიყის მოცილება",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned Team",
+ "SEND_EMAIL_TRANSCRIPT": "საუბრის ჩანაწერის გაგზავნა ელფოსტით",
+ "MUTE_CONVERSATION": "საუბრის დადუმება",
+ "SNOOZE_CONVERSATION": "Snooze Conversation",
+ "RESOLVE_CONVERSATION": "Resolve Conversation",
+ "SEND_ATTACHMENT": "მიბმული ფაილის გაგზავნა",
+ "SEND_MESSAGE": "შეტყობინების გაგზავნა",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "SEND_WEBHOOK_EVENT": "Webhook-ის ივენთის გაგზავნა"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/mfa.json b/app/javascript/dashboard/i18n/locale/ka/mfa.json
new file mode 100644
index 000000000..10dc30c0c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/onboarding.json b/app/javascript/dashboard/i18n/locale/ka/onboarding.json
new file mode 100644
index 000000000..ff3216ef9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "აირჩიეთ დროის ზონა",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "გაგრძელება",
+ "SAVING": "მიმდინარეობს შენახვა...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/report.json b/app/javascript/dashboard/i18n/locale/ka/report.json
index 6ff84c5f5..5c5351f9f 100644
--- a/app/javascript/dashboard/i18n/locale/ka/report.json
+++ b/app/javascript/dashboard/i18n/locale/ka/report.json
@@ -1,82 +1,68 @@
{
"REPORT": {
"HEADER": "Conversations",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "LOADING_CHART": "ჩატვირთვა დიაგრამის მონაცემები...",
+ "NO_ENOUGH_DATA": "რეპორტის გენერირებისთვის საკმარისი მონაცემები არ გვაქვს მიღებული, გთხოვთ, სცადეთ მოგვიანებით.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "შეხვედრები",
+ "DESC": "( ჯამში )"
},
"INCOMING_MESSAGES": {
"NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "DESC": "( ჯამში )"
},
"OUTGOING_MESSAGES": {
"NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "DESC": "( ჯამში )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( საშუალოდ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "გადაწყვეტის დრო",
+ "DESC": "( საშუალოდ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
+ "NAME": "გადაწყვეტის რაოდენობა",
+ "DESC": "( ჯამში )"
+ },
+ "BOT_RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "გამოყენება",
+ "PLACEHOLDER": "აირჩიეთ თარიღის დიაპაზონი"
},
"GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
"DURATION_FILTER_LABEL": "Duration",
@@ -130,131 +116,151 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "FILTER_DROPDOWN_LABEL": "Select Agent",
+ "HEADER": "აგენტების მიმოხილვა",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "LOADING_CHART": "გრაფიკის მონაცემების ჩატვირთვა...",
+ "NO_ENOUGH_DATA": "რეპორტის გენერირებისთვის საკმარისი მონაცემები არ გვაქვს, გთხოვთ, სცადეთ მოგვიანებით.",
+ "DOWNLOAD_AGENT_REPORTS": "აგენტების ანგარიშების ჩამოტვირთვა",
+ "FILTER_DROPDOWN_LABEL": "აირჩიეთ აგენტი",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "შეტყობინებები",
+ "DESC": "(სულ)"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "მომავალი შეტყობინებები",
+ "DESC": "( ჯამში )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "გამავალი შეტყობინებები",
+ "DESC": "( ჯამში )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( საშუალოდ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "გადაჭრის დრო",
+ "DESC": "(საშუალო)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "გადაჭრის რაოდენობა",
+ "DESC": "(სულ)"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "ბოლო 7 დღე"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "ბოლო 30 დღე"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "ბოლო 3 თვე"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "ბოლო 6 თვე"
},
{
"id": 4,
- "name": "Last year"
+ "name": "ბოლო წელი"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "მორგებული თარიღის დიაპაზონი"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "გამოყენება",
+ "PLACEHOLDER": "აირჩიეთ თარიღის დიაპაზონი"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
- "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",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "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": "ლეიბლების რეპორტების ჩამოტვირთვა",
+ "FILTER_DROPDOWN_LABEL": "ლეიბლის არჩევა",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "შეტყობინებები",
+ "DESC": "( ჯამში )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "მომავალი შეტყობინებები",
+ "DESC": "( ჯამში )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "გამავალი შეტყობინებები",
+ "DESC": "( ჯამში )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "First Response Time",
- "DESC": "( Avg )",
+ "DESC": "( საშუალოდ )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
+ "NAME": "გადაჭრის დრო",
+ "DESC": "(საშუალო)",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "გადაჭრის რაოდენობა",
+ "DESC": "(სულ)"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "ბოლო 7 დღე"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "ბოლო 30 დღე"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "ბოლო 3 თვე"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "ბოლო 6 თვე"
},
{
"id": 4,
- "name": "Last year"
+ "name": "ბოლო წელი"
},
{
"id": 5,
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Search teams"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -401,35 +424,101 @@
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "HEADER": "CSAT ანგარიშები",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Search agents",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Search teams",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "კონტაქტი",
+ "AGENT_NAME": "Agent",
+ "RATING": "რეიტინგი",
+ "FEEDBACK_TEXT": "მიმოხილვის კომენტარი",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "საერთო პასუხები",
+ "TOOLTIP": "შეგროვებული პასუხების საერთო რაოდენობა"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "კმაყოფილების ქულა",
+ "TOOLTIP": "დადებითი პასუხების საერთო რაოდენობა / პასუხების საერთო რაოდენობა * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "პასუხის მაჩვენებელი",
+ "TOOLTIP": "პასუხების საერთო რაოდენობა / გაგზავნილი CSAT გამოკითხვის შეტყობინებების საერთო რაოდენობა * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Cancel",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "No results found",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/search.json b/app/javascript/dashboard/i18n/locale/ka/search.json
index 107e64fd8..2cca57bee 100644
--- a/app/javascript/dashboard/i18n/locale/ka/search.json
+++ b/app/javascript/dashboard/i18n/locale/ka/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "სტატიები"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "სტატიები"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/settings.json b/app/javascript/dashboard/i18n/locale/ka/settings.json
index ca734fe43..118461266 100644
--- a/app/javascript/dashboard/i18n/locale/ka/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/settings.json
@@ -1,23 +1,24 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
+ "LINK": "პროფილის პარამეტრები",
+ "TITLE": "პროფილის პარამეტრები",
+ "BTN_TEXT": "პროფილის განახლება",
+ "DELETE_AVATAR": "ავატარის წაშლა",
+ "AVATAR_DELETE_SUCCESS": "ავატარი წარმატებით წაიშალა",
+ "AVATAR_DELETE_FAILED": "ავატარის წაშლისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "UPDATE_SUCCESS": "თქვენი პროფილი წარმატებით განახლდა",
+ "PASSWORD_UPDATE_SUCCESS": "თქვენი პაროლი წარმატებით შეიცვალა",
+ "AFTER_EMAIL_CHANGED": "თქვენი პროფილი წარმატებით განახლდა, გთხოვთ, ხელახლა შეხვიდეთ სისტემაში, რადგან თქვენი შესვლის მონაცემები შეიცვალა",
"FORM": {
- "AVATAR": "Profile Image",
- "ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "PICTURE": "Profile Picture",
+ "AVATAR": "პროფილის სურათი",
+ "ERROR": "გთხოვთ, გამოასწორეთ ფორმის შეცდომები",
+ "REMOVE_IMAGE": "წაშლა",
+ "UPLOAD_IMAGE": "სურათის ატვირთვა",
+ "UPDATE_IMAGE": "სურათის განახლება",
"PROFILE_SECTION": {
- "TITLE": "Profile",
- "NOTE": "Your email address is your identity and is used to log in."
+ "TITLE": "პროფილი",
+ "NOTE": "თქვენი ელფოსტა თქვენი იდენტიფიკატორია და გამოიყენება შესასვლელად."
},
"SEND_MESSAGE": {
"TITLE": "Hotkey to send messages",
@@ -34,35 +35,91 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "სასურველი ენა",
+ "NOTE": "აირჩიეთ ენა, რომლის გამოყენებაც გსურთ.",
+ "UPDATE_SUCCESS": "თქვენი ენის პარამეტრები წარმატებით განახლდა",
+ "UPDATE_ERROR": "ენის პარამეტრების განახლებისას მოხდა შეცდომა, გთხოვთ, სცადეთ თავიდან",
+ "USE_ACCOUNT_DEFAULT": "გამოიყენეთ ანგარიშის ნაგულისხმევი"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
+ "TITLE": "პირადი შეტყობინების ხელმოწერა",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
+ "BTN_TEXT": "შეტყობინების ხელმოწერის შენახვა",
+ "API_ERROR": "ხელმოწერა ვერ შენახა! სცადეთ თავიდან",
+ "API_SUCCESS": "ხელმოწერა წარმატებით შენახულია",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "მესიჯის ხელმოწერა",
+ "ERROR": "მესიჯის ხელმოწერა არ შეიძლება იყოს ცარიელი",
+ "PLACEHOLDER": "ჩაწერეთ თქვენი პირადი მესიჯის ხელმოწერა აქ."
},
"PASSWORD_SECTION": {
- "TITLE": "Password",
- "NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
+ "TITLE": "პაროლი",
+ "NOTE": "პაროლის განახლება ყველა მოწყობილობაზე გამოგასვლევინებთ სისტემიდან.",
+ "BTN_TEXT": "პაროლის შეცვლა"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "უსაფრთხოება",
+ "NOTE": "მართეთ თქვენი ანგარიშის დამატებითი უსაფრთხოების ფუნქციები.",
+ "MFA_BUTTON": "ორფაქტორიანი ავთენტიფიკაციის მართვა"
},
"ACCESS_TOKEN": {
- "TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "TITLE": "წვდომის ტოკენი",
+ "NOTE": "ეს ტოკენი გამოიყენება, თუ API ინტეგრაციას ქმნით",
+ "COPY": "Copy",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "დარწმუნებული ხართ?",
+ "CONFIRM_HINT": "დააჭირეთ კიდევ ერთხელ დასადასტურებლად",
+ "RESET_SUCCESS": "წვდომის ტოკენის ხელახალი გენერაცია წარმატებით დასრულდა",
+ "RESET_ERROR": "ვერ მოხერხდა წვდომის ტოკენის ხელახალი გენერაცია. გთხოვთ, სცადეთ თავიდან"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "None",
+ "MINE": "Assigned",
+ "ALL": "All",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "None",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,252 +131,793 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
- "TITLE": "Email Notifications",
- "NOTE": "Update your email notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "TITLE": "ელფოსტის შეტყობინებები",
+ "NOTE": "აქ შეგიძლიათ შეცვალოთ ელფოსტის შეტყობინებების პარამეტრები",
+ "CONVERSATION_ASSIGNMENT": "გამოგიგზავნოთ ელფოსტის შეტყობინება, როცა საუბარი ჩემზე გადანაწილდება",
+ "CONVERSATION_CREATION": "გამოგიგზავნოთ ელფოსტის შეტყობინება, როცა ახალი საუბარი შეიქმნება",
+ "CONVERSATION_MENTION": "გაგზავნეთ ელ. ფოსტის შეტყობინებები, როდესაც საუბარში მოხსენიებთ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "გაგზავნეთ ელ. ფოსტის შეტყობინებები, როდესაც ახალი შეტყობინება იქმნება დანიშნულ საუბარში",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "Email",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
- "UPDATE_ERROR": "There is an error while updating the preferences, please try again"
+ "UPDATE_SUCCESS": "შეტყობინებების პარამეტრები წარმატებით განახლდა",
+ "UPDATE_ERROR": "პარამეტრების განახლებისას მოხდა შეცდომა, სცადეთ თავიდან"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
+ "TITLE": "Push შეტყობინებები",
+ "NOTE": "აქ შეცვალეთ push-შეტყობინებების პარამეტრები",
+ "CONVERSATION_ASSIGNMENT": "გამოგიგზავნოთ push-შეტყობინება, როცა საუბარი ჩემზე გადანაწილდება",
+ "CONVERSATION_CREATION": "გამოგიგზავნოთ push-შეტყობინება, როცა ახალი საუბარი შეიქმნება",
+ "CONVERSATION_MENTION": "გაგზავნეთ push შეტყობინებები, როდესაც საუბარში მოხსენიებთ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "გაგზავნეთ push შეტყობინებები, როდესაც ახალი შეტყობინება იქმნება დანიშნულ საუბარში",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "HAS_ENABLED_PUSH": "ამ ბრაუზერში push-შეტყობინებები ჩართული გაქვთ.",
+ "REQUEST_PUSH": "ჩართეთ push-შეტყობინებები",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "პროფილის სურათი"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "თქვენი სრული სახელი",
+ "ERROR": "გთხოვთ, შეიყვანეთ ვალიდური სრული სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ თქვენი სრული სახელი"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "გამოსახულების სახელი",
+ "ERROR": "გთხოვთ, შეიყვანეთ ვალიდური გამოსახულების სახელი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ გამოსახულების სახელი, რომელიც გამოჩნდება საუბრებში"
},
"AVAILABILITY": {
- "LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
+ "LABEL": "ხელმისაწვდომობა",
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Busy",
+ "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": "მომხმარებლის სახელით მოქმედებისას ხელმისაწვდომობის შეცვლა შეუძლებელია"
},
"EMAIL": {
- "LABEL": "Your email address",
- "ERROR": "Please enter a valid email address",
- "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations"
+ "LABEL": "თქვენი ელფოსტის მისამართი",
+ "ERROR": "გთხოვთ, შეიყვანეთ სწორი ელფოსტის მისამართი",
+ "PLACEHOLDER": "შეიყვანეთ თქვენი ელფოსტის მისამართი, ის გამოჩნდება საუბარში"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "მიმდინარე პაროლი",
+ "ERROR": "გთხოვთ, შეიყვანეთ მიმდინარე პაროლი",
+ "PLACEHOLDER": "გთხოვთ, შეიყვანეთ მიმდინარე პაროლი"
},
"PASSWORD": {
- "LABEL": "New password",
- "ERROR": "Please enter a password of length 6 or more",
- "PLACEHOLDER": "Please enter a new password"
+ "LABEL": "ახალი პაროლი",
+ "ERROR": "შეიყვანეთ პაროლი მინიმუმ 6 სიმბოლოთი",
+ "PLACEHOLDER": "შეიყვანეთ ახალი პაროლი"
},
"PASSWORD_CONFIRMATION": {
- "LABEL": "Confirm new password",
- "ERROR": "Confirm password should match the password",
- "PLACEHOLDER": "Please re-enter your new password"
+ "LABEL": "დაადასტურეთ ახალი პაროლი",
+ "ERROR": "პაროლის დადასტურება უნდა ემთხვეოდეს პაროლს",
+ "PLACEHOLDER": "გთხოვთ, ხელახლა შეიყვანეთ ახალი პაროლი"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
- "SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "CHANGE_AVAILABILITY_STATUS": "შეცვლა",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
+ "SELECTOR_SUBTITLE": "აირჩიეთ ანგარიში სიიდან",
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "ცვლილებების ჟურნალი",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "days trial remaining.",
- "TRAIL_BUTTON": "Buy Now",
- "DELETED_USER": "Deleted User",
+ "TRIAL_MESSAGE": "დღე დარჩა საცდელი ვერსიიდან.",
+ "TRAIL_BUTTON": "შეიძინეთ",
+ "DELETED_USER": "წაშლილი მომხმარებელი",
"EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
"RESEND_VERIFICATION_MAIL": "Resend verification email",
"EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
"CODE": {
- "BUTTON_TEXT": "Copy",
+ "BUTTON_TEXT": "კოპირება",
"CODEPEN": "Open in CodePen",
"COPY_SUCCESSFUL": "Code copied to clipboard successfully"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "მეტი ნახვა",
+ "SHOW_LESS": "ნაკლები ნახვა"
},
"FILE_BUBBLE": {
- "DOWNLOAD": "Download",
- "UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "DOWNLOAD": "გადმოწერა",
+ "UPLOADING": "იტვირთება...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
- "SUBMIT": "Submit"
+ "SUBMIT": "გაგზავნა"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
- "CONFIRM_EMAIL": "Verifying...",
+ "CONFIRM_EMAIL": "დადასტურება...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Add Inbox"
+ "NEW_INBOX": "ინბოქსის დამატება"
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
+ "NO_ITEMS": "No items",
+ "CURRENTLY_VIEWING_ACCOUNT": "ამჟამად ნახვა:",
+ "SWITCH": "გადართვა",
+ "INBOX_VIEW": "Inbox View",
+ "CONVERSATIONS": "საუბრები",
+ "INBOX": "My Inbox",
+ "ALL_CONVERSATIONS": "ყველა საუბარი",
+ "MENTIONED_CONVERSATIONS": "შეხსენებები",
"PARTICIPATING_CONVERSATIONS": "Participating",
"UNATTENDED_CONVERSATIONS": "Unattended",
- "REPORTS": "Reports",
- "SETTINGS": "Settings",
- "CONTACTS": "Contacts",
- "HOME": "Home",
- "AGENTS": "Agents",
+ "REPORTS": "ანგარიშები",
+ "SETTINGS": "პარამეტრები",
+ "CONTACTS": "კონტაქტები",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "ინსტრუმენტები",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxes",
+ "CAPTAIN_SETTINGS": "Settings",
+ "HOME": "მთავარი",
+ "AGENTS": "აგენტები",
"AGENT_BOTS": "Bots",
"AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Inboxes",
- "NOTIFICATIONS": "Notifications",
- "CANNED_RESPONSES": "Canned Responses",
- "INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
- "ACCOUNT_SETTINGS": "Account Settings",
- "APPLICATIONS": "Applications",
- "LABELS": "Labels",
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "AUTOMATION": "Automation",
+ "INBOXES": "ინბოქსები",
+ "NOTIFICATIONS": "შეტყობინებები",
+ "CANNED_RESPONSES": "შენახული პასუხები",
+ "INTEGRATIONS": "ინტეგრაციები",
+ "PROFILE_SETTINGS": "პროფილის პარამეტრები",
+ "ACCOUNT_SETTINGS": "ანგარიშის პარამეტრები",
+ "APPLICATIONS": "აპლიკაციები",
+ "LABELS": "ჭდეები",
+ "CUSTOM_ATTRIBUTES": "მორგებული ატრიბუტები",
+ "AUTOMATION": "ავტომატიზაცია",
"MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
- "REPORTS_CONVERSATION": "Conversations",
+ "TEAMS": "გუნდები",
+ "BILLING": "გადახდები",
+ "CUSTOM_VIEWS_FOLDER": "ფოლდერები",
+ "CUSTOM_VIEWS_SEGMENTS": "სეგმენტები",
+ "ALL_CONTACTS": "ყველა კონტაქტი",
+ "TAGGED_WITH": "ნიშნულია შემდეგით",
+ "NEW_LABEL": "ახალი ლეიბლი",
+ "NEW_TEAM": "ახალი გუნდი",
+ "NEW_INBOX": "ახალი ინბოქსი",
+ "REPORTS_CONVERSATION": "საუბრები",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
- "REPORTS_AGENT": "Agents",
- "REPORTS_LABEL": "Labels",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "კამპანიები",
+ "ONGOING": "მიმდინარე",
+ "ONE_OFF": "ერთჯერადი",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
+ "REPORTS_AGENT": "მომხმარებლები",
+ "REPORTS_LABEL": "ლეიბლები",
+ "REPORTS_INBOX": "ინბოქსი",
+ "REPORTS_TEAM": "გუნდია",
+ "AGENT_ASSIGNMENT": "აგენტების მინიჭება",
+ "SET_AVAILABILITY_TITLE": "დააყენეთ თავი როგორც",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
- "BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "CUSTOM_ROLES": "Custom Roles",
+ "BETA": "ბეტა",
+ "REPORTS_OVERVIEW": "მიმოხილვა",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Settings"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "უსაფრთხოება",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Chat with us"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancel",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "უსაფრთხოება",
+ "DESCRIPTION": "მართეთ თქვენი ანგარიშის უსაფრთხოების პარამეტრები.",
+ "LINK_TEXT": "გაიგეთ მეტი SAML SSO-ს შესახებ",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "დააყენეთ SAML-ის ერთჯერადი შესვლა (SSO) თქვენს ანგარიშზე. მომხმარებლები ავთენტიფიკაციას გაივლიან თქვენს იდენტობის მომწოდებელთან, ელფოსტა/პაროლის გამოყენების ნაცვლად.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service (ACS) URL — დააყენეთ ეს URL თქვენს IdP-ში SAML-ის პასუხების დანიშნულების მისამართად"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "URL, სადაც გაეგზავნება SAML-ის ავთენტიფიკაციის მოთხოვნები",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "ხელმოწერის სერტიფიკატი PEM ფორმატში",
+ "HELP": "თქვენი იდენტობის მომწოდებლის საჯარო სერტიფიკატი, რომელიც გამოიყენება SAML-ის პასუხების დასამოწმებლად",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "ანაბეჭდი",
+ "TOOLTIP": "სერტიფიკატის SHA-1 ანაბეჭდი — გამოიყენეთ ეს სერტიფიკატის გადასამოწმებლად თქვენს IdP-ის კონფიგურაციაში"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "უნიკალური იდენტიფიკატორი ამ აპლიკაციისთვის, როგორც სერვისის მიმწოდებლისთვის (ავტომატურად გენერირებულია).",
+ "TOOLTIP": "Chatwoot-ის უნიკალური იდენტიფიკატორი, როგორც სერვისის მიმწოდებელი — დააყენეთ ეს თქვენს IdP-ის პარამეტრებში"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "თქვენი იდენტობის მომწოდებლის უნიკალური იდენტიფიკატორი (ჩვეულებრივ მითითებულია IdP-ის კონფიგურაციაში)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML პარამეტრების განახლება",
+ "API": {
+ "SUCCESS": "SAML-ის პარამეტრები წარმატებით განახლდა",
+ "ERROR": "SAML-ის პარამეტრების განახლება ვერ მოხერხდა",
+ "ERROR_LOADING": "SAML-ის პარამეტრების ჩატვირთვა ვერ მოხერხდა",
+ "DISABLED": "SAML-ის პარამეტრები წარმატებით გამოირთო"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID და სერტიფიკატი სავალდებულო ველებია",
+ "SSO_URL_ERROR": "გთხოვთ, შეიყვანოთ სწორი SSO URL",
+ "CERTIFICATE_ERROR": "სერტიფიკატი სავალდებულოა",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID სავალდებულოა"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO ფუნქცია ხელმისაწვდომია მხოლოდ Enterprise გეგმებში.",
+ "UPGRADE_PROMPT": "გადადით Enterprise გეგმაზე, რათა მიიღოთ წვდომა SAML-ის ერთჯერად შესვლასა და სხვა გაფართოებულ უსაფრთხოების ფუნქციებზე.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "განაახლეთ გეგმა SAML SSO-ს ჩასართავად",
+ "AVAILABLE_ON": "SAML SSO ფუნქცია ხელმისაწვდომია მხოლოდ Enterprise გეგმებში.",
+ "UPGRADE_PROMPT": "განაახლეთ თქვენი გეგმა, რათა მიიღოთ წვდომა SAML-ის ერთჯერად შესვლასა და სხვა გაფართოებულ ფუნქციებზე.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML-ის ატრიბუტების კონფიგურაცია",
+ "DESCRIPTION": "ქვემოთ ჩამოთვლილი ატრიბუტების ასახვა უნდა დააკონფიგურიროთ თქვენს იდენტობის პროვაიდერში"
+ },
+ "INFO_SECTION": {
+ "TITLE": "სერვისის პროვაიდერის ინფორმაცია",
+ "TOOLTIP": "დააკოპირეთ ეს მნიშვნელობები და დააკონფიგურირეთ ისინი თქვენს იდენტობის პროვაიდერში SAML-კავშირის დასამყარებლად"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Cancel"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "უი! ვერ ვიპოვეთ არცერთი Chatwoot ანგარიში. გთხოვთ, შექმნათ ახალი ანგარიში გაგრძელებისთვის.",
+ "NEW_ACCOUNT": "ახალი ანგარიში",
+ "SELECTOR_SUBTITLE": "ახალი ანგარიშის შექმნა",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "ანგარიში წარმატებით შეიქმნა",
+ "EXIST_MESSAGE": "ანგარიში უკვე არსებობს",
+ "ERROR_MESSAGE": "ვერ მოხერხდა Woot Server-თან დაკავშირება, სცადეთ მოგვიანებით"
},
"FORM": {
"NAME": {
"LABEL": "Company Name",
- "PLACEHOLDER": "Wayne Enterprises"
+ "PLACEHOLDER": "უეინის საწარმოები"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "გაგზავნა",
+ "CANCEL": "Cancel"
}
},
"KEYBOARD_SHORTCUTS": {
"TOGGLE_MODAL": "View all shortcuts",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "გაახილეთ საუბარი",
+ "RESOLVE_AND_NEXT": "გადაჭრა და გადასვლა შემდეგზე",
+ "NAVIGATE_DROPDOWN": "გადაიარეთ ჩამოსაშლელი ელემენტები",
+ "RESOLVE_CONVERSATION": "შეასრულეთ საუბრის დასრულება",
+ "GO_TO_CONVERSATION_DASHBOARD": "გადადი საუბრის დაფაზე",
+ "ADD_ATTACHMENT": "დამატება დანართი",
+ "GO_TO_CONTACTS_DASHBOARD": "გადადი კონტაქტების დაფაზე",
+ "TOGGLE_SIDEBAR": "გვერდითი პანელის გადართვა",
+ "GO_TO_REPORTS_SIDEBAR": "გადადი ანგარიშების გვერდით პანელზე",
+ "MOVE_TO_NEXT_TAB": "გადადი შემდეგ ჩანართზე საუბრის სიაში",
+ "GO_TO_SETTINGS": "გადადი პარამეტრებზე",
+ "SWITCH_TO_PRIVATE_NOTE": "გადართე პირად ჩანაწერზე",
+ "SWITCH_TO_REPLY": "პასუხზე გადართვა",
+ "TOGGLE_SNOOZE_DROPDOWN": "დროებით შეჩერების ჩამოსაშლელი მენიუს გადართვა"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "აგენტების მინიჭება",
+ "DESCRIPTION": "დაადგინეთ პოლიტიკები, რათა ეფექტურად მართოთ დატვირთვა და გადაამისამართოთ საუბრები ინბოქსებისა და აგენტების საჭიროებების მიხედვით. გაიგეთ მეტი აქ"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "მინიჭების პოლიტიკა",
+ "DESCRIPTION": "მართეთ, როგორ ენიჭება საუბრები ინბოქსებში.",
+ "FEATURES": [
+ "მინიჭება საუბრების თანაბრად ან ხელმისაწვდომი ტევადობის მიხედვით",
+ "დაამატეთ სამართლიანი განაწილების წესები, რათა არცერთი აგენტი არ გადატვირთდეს",
+ "დაამატეთ ინბოქსები პოლიტიკაში - თითო ინბოქსზე ერთი პოლიტიკა"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "აგენტების ტევადობის პოლიტიკა",
+ "DESCRIPTION": "მართეთ აგენტების სამუშაო დატვირთვა.",
+ "FEATURES": [
+ "დაადგინეთ მაქსიმალური საუბრების რაოდენობა თითო ინბოქსზე",
+ "შექმენით გამონაკლისები იარლიყებისა და დროის მიხედვით",
+ "დაამატეთ აგენტები პოლიტიკაში - თითო აგენტზე ერთი პოლიტიკა"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "მინიჭების პოლიტიკა",
+ "CREATE_POLICY": "ახალი პოლიტიკა"
+ },
+ "CARD": {
+ "ORDER": "რიგი",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "არააქტიური",
+ "POPOVER": "დამატებული ინბოქსები",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "მინიჭების პოლიტიკები ვერ მოიძებნა"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "მინიჭების პოლიტიკის შექმნა"
+ },
+ "CREATE_BUTTON": "პოლიტიკის შექმნა",
+ "API": {
+ "SUCCESS_MESSAGE": "მინიჭების პოლიტიკა წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "მინიჭების პოლიტიკის შექმნა ვერ მოხერხდა",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "მინიჭების პოლიტიკის რედაქტირება"
+ },
+ "EDIT_BUTTON": "პოლიტიკის განახლება",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "ინბოქსის დამატება",
+ "DESCRIPTION": "{inboxName} ინბოქსი უკვე დაკავშირებულია სხვა პოლიტიკასთან. დარწმუნებული ხართ, რომ გსურთ მისი მიბმა ამ პოლიტიკაზე? ის სხვა პოლიტიკიდან მოეხსნება.",
+ "CONFIRM_BUTTON_LABEL": "გაგრძელება",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "მინიჭების პოლიტიკა წარმატებით განახლდა",
+ "ERROR_MESSAGE": "მინიჭების პოლიტიკის განახლება ვერ მოხერხდა"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "ინბოქსი წარმატებით დაემატა პოლიტიკას",
+ "ERROR_MESSAGE": "ინბოქსის პოლიტიკაში დამატება ვერ მოხერხდა"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "ინბოქსი წარმატებით მოიხსნა პოლიტიკიდან",
+ "ERROR_MESSAGE": "ინბოქსის პოლიტიკიდან მოხსნა ვერ მოხერხდა"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "პოლიტიკის სახელი:",
+ "PLACEHOLDER": "შეიყვანეთ პოლიტიკის სახელი"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "პოლიტიკა აქტიურია",
+ "INACTIVE": "პოლიტიკა არააქტიურია"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "მინიჭების რიგი",
+ "ROUND_ROBIN": {
+ "LABEL": "რაუნდ-რობინი",
+ "DESCRIPTION": "საუბრები აგენტებზე თანაბრად ნაწილდება."
+ },
+ "BALANCED": {
+ "LABEL": "დაბალანსებული",
+ "DESCRIPTION": "საუბრები მიენიჭება ხელმისაწვდომი ტევადობის მიხედვით.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "მინიჭების პრიორიტეტი",
+ "EARLIEST_CREATED": {
+ "LABEL": "ყველაზე ადრე შექმნილი",
+ "DESCRIPTION": "ყველაზე ადრე შექმნილი საუბარი პირველად მიენიჭება."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "ყველაზე დიდხანს მოლოდინში",
+ "DESCRIPTION": "საუბარი, რომელიც ყველაზე დიდხანს ელოდა, პირველად ნაწილდება."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "სამართლიანი განაწილების პოლიტიკა",
+ "DESCRIPTION": "დააყენეთ საუბრების მაქსიმალური რაოდენობა, რომელიც შეიძლება დაენიშნოს ერთ აგენტს დროის ფანჯრის ფარგლებში, რათა თავიდან აიცილოთ რომელიმე აგენტის გადატვირთვა. ეს სავალდებულო ველი ნაგულისხმევად არის 100 საუბარი საათში.",
+ "INPUT_MAX": "მაქსიმალური მინიჭება",
+ "DURATION": "თითო აგენტზე საუბრები ყოველ"
+ },
+ "INBOXES": {
+ "LABEL": "დამატებული ინბოქსები",
+ "DESCRIPTION": "დაამატეთ ინბოქსები, რომლებზეც იმოქმედებს ეს პოლიტიკა.",
+ "ADD_BUTTON": "ინბოქსის დამატება",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "მოძებნეთ და აირჩიეთ დასამატებელი ინბოქსები",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "ამ პოლიტიკაში ინბოქსები დამატებული არ არის, დასაწყებად დაამატეთ ინბოქსი",
+ "API": {
+ "SUCCESS_MESSAGE": "ინბოქსი პოლიტიკაში წარმატებით დაემატა",
+ "ERROR_MESSAGE": "ინბოქსის პოლიტიკაში დამატება ვერ მოხერხდა"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "მინიჭების პოლიტიკა წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "მინიჭების პოლიტიკის წაშლა ვერ მოხერხდა"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "აგენტის ტევადობა",
+ "CREATE_POLICY": "ახალი პოლიტიკა"
+ },
+ "CARD": {
+ "POPOVER": "დამატებული აგენტები",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "აგენტის ტევადობის პოლიტიკები ვერ მოიძებნა"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "აგენტის ტევადობის პოლიტიკის შექმნა"
+ },
+ "CREATE_BUTTON": "პოლიტიკის შექმნა",
+ "API": {
+ "SUCCESS_MESSAGE": "აგენტის ტევადობის პოლიტიკა წარმატებით შეიქმნა",
+ "ERROR_MESSAGE": "აგენტის ტევადობის პოლიტიკის შექმნა ვერ მოხერხდა"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "აგენტის ტევადობის პოლიტიკის რედაქტირება"
+ },
+ "EDIT_BUTTON": "პოლიტიკის განახლება",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "აგენტის დამატება",
+ "DESCRIPTION": "{agentName} უკვე დაკავშირებულია სხვა პოლიტიკასთან. ნამდვილად გსურთ მისი ამ პოლიტიკასთან დაკავშირება? ის სხვა პოლიტიკიდან მოიხსნება.",
+ "CONFIRM_BUTTON_LABEL": "გაგრძელება",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "აგენტის ტევადობის პოლიტიკა წარმატებით განახლდა",
+ "ERROR_MESSAGE": "აგენტის ტევადობის პოლიტიკის განახლება ვერ მოხერხდა"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "აგენტის პოლიტიკაში დამატება წარმატებით შესრულდა",
+ "ERROR_MESSAGE": "აგენტის პოლიტიკაში დამატება ვერ მოხერხდა"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "აგენტის პოლიტიკიდან წაშლა წარმატებით შესრულდა",
+ "ERROR_MESSAGE": "აგენტის პოლიტიკიდან წაშლა ვერ მოხერხდა"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "პოლიტიკის სახელი:",
+ "PLACEHOLDER": "შეიყვანეთ პოლიტიკის სახელი"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "ინბოქსის ტევადობის ლიმიტები",
+ "ADD_BUTTON": "ინბოქსის დამატება",
+ "FIELD": {
+ "SELECT_INBOX": "აირჩიეთ ინბოქსი",
+ "MAX_CONVERSATIONS": "საუბრების მაქსიმუმი",
+ "SET_LIMIT": "დააყენეთ ლიმიტი"
+ },
+ "EMPTY_STATE": "ინბოქსისთვის ლიმიტი არ არის დაყენებული"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "გამორიცხვის წესები",
+ "DESCRIPTION": "საუბრები, რომლებიც აკმაყოფილებენ ქვემოთ მოცემულ პირობებს, აგენტის ტევადობაში არ ჩაითვლება",
+ "TAGS": {
+ "LABEL": "გამორიცხეთ კონკრეტული ჭდეებით მონიშნული საუბრები",
+ "ADD_TAG": "ჭდის დამატება",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "მოძებნეთ და აირჩიეთ დასამატებელი ჭდეები"
+ },
+ "EMPTY_STATE": "ამ პოლიტიკაში ჭდეები დამატებული არ არის."
+ },
+ "DURATION": {
+ "LABEL": "გამორიცხეთ მითითებულ ხანგრძლივობაზე ძველი საუბრები",
+ "PLACEHOLDER": "დაყენეთ დრო"
+ }
+ },
+ "USERS": {
+ "LABEL": "მინიჭებული აგენტები",
+ "DESCRIPTION": "დაამატეთ ის აგენტები, რომლებზეც ეს პოლიტიკა გავრცელდება.",
+ "ADD_BUTTON": "აგენტის დამატება",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "მოძებნეთ და აირჩიეთ აგენტები დასამატებლად",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "აგენტები დამატებული არ არის",
+ "API": {
+ "SUCCESS_MESSAGE": "აგენტი პოლიტიკაში წარმატებით დაემატა",
+ "ERROR_MESSAGE": "აგენტის პოლიტიკაში დამატება ვერ მოხერხდა"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "აგენტის ტევადობის პოლიტიკა წარმატებით წაიშალა",
+ "ERROR_MESSAGE": "აგენტის ტევადობის პოლიტიკის წაშლა ვერ მოხერხდა"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "პოლიტიკის წაშლა",
+ "DESCRIPTION": "დარწმუნებული ხართ, რომ გსურთ ამ პოლიტიკის წაშლა? ეს ქმედება შეუქცევადია.",
+ "CONFIRM_BUTTON_LABEL": "Delete",
+ "CANCEL_BUTTON_LABEL": "Cancel"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/signup.json b/app/javascript/dashboard/i18n/locale/ka/signup.json
index 10ddc5b86..71a039e7d 100644
--- a/app/javascript/dashboard/i18n/locale/ka/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ka/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "მინიმუმ 6 სიმბოლო",
+ "REQUIREMENTS_UPPERCASE": "მინიმუმ ერთი დიდი ასო",
+ "REQUIREMENTS_LOWERCASE": "მინიმუმ ერთი პატარა ასო",
+ "REQUIREMENTS_NUMBER": "მინიმუმ ერთი რიცხვი",
+ "REQUIREMENTS_SPECIAL": "მინიმუმ ერთი სპეციალური სიმბოლო"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "პაროლები არ ემთხვევა."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "რეგისტრაცია წარმატებით დასრულდა",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/sla.json b/app/javascript/dashboard/i18n/locale/ka/sla.json
index 806746b75..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/ka/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ka/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/snooze.json b/app/javascript/dashboard/i18n/locale/ka/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
index f9ecaaaae..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ka/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/ka/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ka/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/ka/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ka/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ka/yearInReview.json b/app/javascript/dashboard/i18n/locale/ka/yearInReview.json
new file mode 100644
index 000000000..d72e0c679
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ka/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
index 7ea1703d2..d96a70031 100644
--- a/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ko/advancedFilters.json
@@ -1,34 +1,44 @@
{
"FILTER": {
"TITLE": "대화 필터링하기",
- "SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
- "FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
+ "SUBTITLE": "아래에 필터를 추가하고 '필터 적용'을 클릭하여 대화를 정리하십시오.",
+ "EDIT_CUSTOM_FILTER": "폴더 편집",
+ "CUSTOM_VIEWS_SUBTITLE": "필터를 추가 또는 제거하고 폴더를 업데이트하십시오.",
+ "ADD_NEW_FILTER": "필터 추가",
+ "FILTER_DELETE_ERROR": "필터를 저장하려면 최소한 하나의 필터를 추가하십시오.",
"SUBMIT_BUTTON_LABEL": "필터 적용하기",
- "UPDATE_BUTTON_LABEL": "Update folder",
+ "UPDATE_BUTTON_LABEL": "폴더 업데이트",
"CANCEL_BUTTON_LABEL": "취소",
- "CLEAR_BUTTON_LABEL": "Clear filters",
- "FOLDER_LABEL": "Folder Name",
- "FOLDER_QUERY_LABEL": "Folder Query",
- "EMPTY_VALUE_ERROR": "Value is required.",
+ "CLEAR_BUTTON_LABEL": "필터 초기화",
+ "FOLDER_LABEL": "폴더 이름",
+ "FOLDER_QUERY_LABEL": "폴더 쿼리",
+ "EMPTY_VALUE_ERROR": "값이 필요합니다.",
"TOOLTIP_LABEL": "대화 필터링하기",
"QUERY_DROPDOWN_LABELS": {
"AND": "와/과",
"OR": "혹은"
},
+ "INPUT_PLACEHOLDER": "값을 입력하십시오",
"OPERATOR_LABELS": {
"equal_to": "동일한",
"not_equal_to": "비동일한",
- "contains": "포함된",
"does_not_contain": "포함되지 않은",
"is_present": "현존하는",
"is_not_present": "현존하지 않은",
"is_greater_than": "보다 큰",
"is_less_than": "보다 작은",
"days_before": "x 일 전에",
- "starts_with": "Starts with"
+ "starts_with": "시작하는",
+ "equalTo": "동일한",
+ "notEqualTo": "비동일한",
+ "contains": "포함된",
+ "doesNotContain": "포함되지 않은",
+ "isPresent": "현존하는",
+ "isNotPresent": "현존하지 않은",
+ "isGreaterThan": "보다 큰",
+ "isLessThan": "보다 작은",
+ "daysBefore": "x 일 전에",
+ "startsWith": "시작하는"
},
"ATTRIBUTE_LABELS": {
"TRUE": "참",
@@ -36,66 +46,72 @@
},
"ATTRIBUTES": {
"STATUS": "상태",
- "ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
- "TEAM_NAME": "Team name",
- "CONVERSATION_IDENTIFIER": "Conversation identifier",
- "CAMPAIGN_NAME": "Campaign name",
+ "ASSIGNEE_NAME": "담당자 이름",
+ "INBOX_NAME": "받은 메시지함 이름",
+ "TEAM_NAME": "팀 이름",
+ "CONVERSATION_IDENTIFIER": "대화 식별자",
+ "CAMPAIGN_NAME": "캠페인 이름",
"LABELS": "라벨",
- "BROWSER_LANGUAGE": "Browser language",
- "PRIORITY": "Priority",
- "COUNTRY_NAME": "Country name",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "PRIORITY": "우선순위",
+ "COUNTRY_NAME": "국가 이름",
"REFERER_LINK": "참고 링크",
"CUSTOM_ATTRIBUTE_LIST": "리스트",
"CUSTOM_ATTRIBUTE_TEXT": "텍스트",
"CUSTOM_ATTRIBUTE_NUMBER": "숫자",
"CUSTOM_ATTRIBUTE_LINK": "링크",
"CUSTOM_ATTRIBUTE_CHECKBOX": "체크박스",
- "CREATED_AT": "Created at",
- "LAST_ACTIVITY": "Last activity"
+ "CREATED_AT": "생성 일시",
+ "LAST_ACTIVITY": "최근 활동"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "값이 필요합니다.",
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다.",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다.",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다."
},
"GROUPS": {
- "STANDARD_FILTERS": "Standard filters",
- "ADDITIONAL_FILTERS": "Additional filters",
- "CUSTOM_ATTRIBUTES": "Custom attributes"
+ "STANDARD_FILTERS": "기본 필터",
+ "ADDITIONAL_FILTERS": "추가 필터",
+ "CUSTOM_ATTRIBUTES": "사용자 정의 속성"
},
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "이 필터를 저장하시겠습니까?",
"LABEL": "필터 이름 지정하기",
- "PLACEHOLDER": "Name your filter to refer it later.",
+ "PLACEHOLDER": "나중에 참조할 수 있도록 필터 이름을 지정하십시오.",
"ERROR_MESSAGE": "이름이 필요합니다.",
"SAVE_BUTTON": "필터 저장하기",
"CANCEL_BUTTON": "취소",
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "폴더가 성공적으로 생성됨.",
- "ERROR_MESSAGE": "폴더 생성 중 에러 발생."
+ "SUCCESS_MESSAGE": "폴더가 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "폴더 생성 중 오류가 발생했습니다."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "구획이 성공적으로 생성됨.",
- "ERROR_MESSAGE": "구획 생성 중 에러 발생."
+ "SUCCESS_MESSAGE": "세그먼트가 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "세그먼트 생성 중 오류가 발생했습니다."
}
},
"EDIT": {
- "EDIT_BUTTON": "Edit folder"
+ "EDIT_BUTTON": "폴더 편집"
},
"DELETE": {
"DELETE_BUTTON": "필터 삭제하기",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm deletion",
- "MESSAGE": "정말로 이 필터를 삭제하고 싶으신가요? ",
- "YES": "Yes, delete",
- "NO": "No, keep it"
+ "TITLE": "삭제 확인",
+ "MESSAGE": "정말로 이 필터를 삭제하시겠습니까? ",
+ "YES": "예, 삭제합니다",
+ "NO": "아니요, 유지합니다"
}
},
"API_FOLDERS": {
- "SUCCESS_MESSAGE": "Folder deleted successfully.",
- "ERROR_MESSAGE": "폴더 삭제 중 에러 발생."
+ "SUCCESS_MESSAGE": "폴더가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "폴더 삭제 중 오류가 발생했습니다."
},
"API_SEGMENTS": {
- "SUCCESS_MESSAGE": "구획이 성공적으로 삭제됨.",
- "ERROR_MESSAGE": "구획 제거 중 에러 발생."
+ "SUCCESS_MESSAGE": "세그먼트가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "세그먼트 삭제 중 오류가 발생했습니다."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/agentBots.json b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
index 78e94a99a..6135d5a96 100644
--- a/app/javascript/dashboard/i18n/locale/ko/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ko/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
"HEADER": "봇",
- "LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "LOADING_EDITOR": "에디터 로딩 중...",
+ "DESCRIPTION": "에이전트 봇은 팀에서 가장 뛰어난 멤버와 같습니다. 사소한 일은 봇이 처리해 주니, 중요한 일에 집중하세요. 한번 사용해 보세요. 이 페이지에서 봇을 관리하거나 '봇 추가' 버튼을 통해 새 봇을 생성할 수 있습니다.",
+ "LEARN_MORE": "에이전트 봇에 대해 알아보기",
+ "COUNT": "{n}개의 봇 | {n}개의 봇",
+ "SEARCH_PLACEHOLDER": "에이전트 봇 검색...",
+ "NO_RESULTS": "검색과 일치하는 봇이 없습니다",
+ "GLOBAL_BOT": "시스템 봇",
+ "GLOBAL_BOT_BADGE": "시스템",
+ "AVATAR": {
+ "SUCCESS_DELETE": "봇 아바타가 성공적으로 삭제되었습니다.",
+ "ERROR_DELETE": "봇 아바타 삭제 중 오류가 발생했습니다. 다시 시도하십시오."
},
"BOT_CONFIGURATION": {
- "TITLE": "Select an agent bot",
- "DESC": "Assign an Agent Bot to your inbox. They can handle initial conversations and transfer them to a live agent when necessary.",
+ "TITLE": "에이전트 봇 선택",
+ "DESC": "받은 메시지함에 에이전트 봇을 할당하십시오. 초기 대화를 처리하고 필요시 실제 에이전트에게 전달할 수 있습니다.",
"SUBMIT": "업데이트",
- "DISCONNECT": "Disconnect bot",
- "SUCCESS_MESSAGE": "Successfully updated the agent bot.",
- "DISCONNECTED_SUCCESS_MESSAGE": "Successfully disconnected the agent bot.",
- "ERROR_MESSAGE": "Could not update the agent bot. Please try again.",
- "DISCONNECTED_ERROR_MESSAGE": "Could not disconnect the agent bot. Please try again.",
- "SELECT_PLACEHOLDER": "Select bot"
+ "DISCONNECT": "봇 연결 해제",
+ "SUCCESS_MESSAGE": "에이전트 봇이 성공적으로 업데이트되었습니다.",
+ "DISCONNECTED_SUCCESS_MESSAGE": "에이전트 봇이 성공적으로 연결 해제되었습니다.",
+ "ERROR_MESSAGE": "에이전트 봇을 업데이트할 수 없습니다. 다시 시도하십시오.",
+ "DISCONNECTED_ERROR_MESSAGE": "에이전트 봇 연결을 해제할 수 없습니다. 다시 시도하십시오.",
+ "SELECT_PLACEHOLDER": "봇 선택"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "봇 추가",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Bot added successfully.",
- "ERROR_MESSAGE": "Could not add bot. Please try again later."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "봇을 추가할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"LIST": {
- "404": "No bots found. You can create a bot by clicking the 'Configure new bot' button ↗",
- "LOADING": "Fetching bots...",
- "TYPE": "Bot type"
+ "404": "봇을 찾을 수 없습니다. '봇 추가' 버튼을 클릭하여 봇을 생성할 수 있습니다.",
+ "LOADING": "봇을 가져오는 중...",
+ "TABLE_HEADER": {
+ "DETAILS": "봇 상세 정보",
+ "URL": "웹훅 URL",
+ "ACTIONS": "액션"
+ }
},
"DELETE": {
"BUTTON_TEXT": "삭제",
- "TITLE": "Delete bot",
- "SUBMIT": "삭제",
- "CANCEL_BUTTON_TEXT": "취소",
- "DESCRIPTION": "Are you sure you want to delete this bot? This action is irreversible.",
+ "TITLE": "봇 삭제",
+ "CONFIRM": {
+ "TITLE": "삭제 확인",
+ "MESSAGE": "{name}을(를) 삭제하시겠습니까?",
+ "YES": "예, 삭제합니다",
+ "NO": "아니요, 유지합니다"
+ },
"API": {
- "SUCCESS_MESSAGE": "Bot deleted successfully.",
- "ERROR_MESSAGE": "Could not delete bot. Please try again."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "봇을 삭제할 수 없습니다. 다시 시도하십시오."
}
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "LOADING": "Fetching bots...",
- "TITLE": "Edit bot",
- "CANCEL_BUTTON_TEXT": "취소",
+ "TITLE": "봇 수정",
"API": {
- "SUCCESS_MESSAGE": "Bot updated successfully.",
- "ERROR_MESSAGE": "Could not update bot. Please try again."
+ "SUCCESS_MESSAGE": "봇이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "봇을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "시크릿을 클립보드에 복사",
+ "COPY_SUCCESS": "시크릿이 클립보드에 복사되었습니다",
+ "TOGGLE": "시크릿 표시 전환",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "액세스 토큰",
+ "DESCRIPTION": "액세스 토큰을 복사하여 안전하게 보관하십시오.",
+ "COPY_SUCCESSFUL": "액세스 토큰이 클립보드에 복사되었습니다.",
+ "RESET_SUCCESS": "액세스 토큰이 성공적으로 재생성되었습니다.",
+ "RESET_ERROR": "액세스 토큰을 재생성할 수 없습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "봇 아바타"
+ },
+ "NAME": {
+ "LABEL": "봇 이름",
+ "PLACEHOLDER": "봇 이름을 입력하십시오",
+ "REQUIRED": "봇 이름은 필수입니다."
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "이 봇은 어떤 역할을 합니까?"
+ },
+ "WEBHOOK_URL": {
+ "LABEL": "웹훅 URL",
+ "PLACEHOLDER": "https://example.com/webhook",
+ "REQUIRED": "웹훅 URL은 필수입니다."
+ },
+ "ERRORS": {
+ "NAME": "봇 이름은 필수입니다.",
+ "URL": "웹훅 URL은 필수입니다.",
+ "VALID_URL": "http:// 또는 https://로 시작하는 유효한 URL을 입력하십시오."
+ },
+ "CANCEL": "취소",
+ "CREATE": "봇 생성",
+ "UPDATE": "봇 업데이트"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "웹훅 봇을 구성하여 사용자 정의 서비스와 통합하십시오. 봇은 대화의 이벤트를 수신하고 처리하며 응답할 수 있습니다."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "웹훅 봇"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
index 61f00d5da..844ab2074 100644
--- a/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/agentMgmt.json
@@ -3,13 +3,15 @@
"HEADER": "에이전트",
"HEADER_BTN_TXT": "에이전트 추가",
"LOADING": "에이전트 목록을 가져오는 중",
- "SIDEBAR_TXT": "에이전트
에이전트는 고객 지원 팀의 구성원입니다.
에이전트는 사용자의 메시지를 보고 답장할 수 있습니다. 목록에 현재 계정에 있는 모든 에이전트가 표시됩니다.
새 에이전트를 추가하려면 [에이전트 추가]를 클릭하십시오. 사용자가 추가한 에이전트는 계정을 활성화하기 위한 확인 링크가 포함된 이메일을 받게 되며, 이후 챗부팅에 액세스하여 메시지에 응답할 수 있습니다.
Chatwoot의 기능에 대한 액세스는 다음 역할을 기반으로 한다.
에이전트 - 이 역할을 가진 에이전트는 받은 편지함, 보고서 및 대화에만 액세스할 수 있다. 그들은 다른 요원이나 자신들에게 대화를 할당하고 대화를 해결할 수 있습니다.
관리자 - 관리자는 일반 에이전트의 모든 권한과 함께 설정을 포함하여 계정에 대해 활성화된 모든 챗부팅 기능에 액세스할 수 있습니다.
",
+ "DESCRIPTION": "에이전트는 사용자 메시지를 보고 응답할 수 있는 고객 지원팀의 구성원입니다. 아래 목록에는 계정의 모든 에이전트가 나와 있습니다.",
+ "LEARN_MORE": "사용자 역할에 대해 알아보기",
"AGENT_TYPES": {
"ADMINISTRATOR": "관리자",
"AGENT": "에이전트"
},
+ "COUNT": "{n}명의 에이전트 | {n}명의 에이전트",
"LIST": {
- "404": "이 계정에 연결된 에이전트가 없음",
+ "404": "이 계정에 연결된 에이전트가 없습니다.",
"TITLE": "팀 내 에이전트 관리",
"DESC": "팀에 에이전트를 추가/제거할 수 있습니다.",
"NAME": "이름",
@@ -17,7 +19,8 @@
"STATUS": "상태",
"ACTIONS": "액션",
"VERIFIED": "인증됨",
- "VERIFICATION_PENDING": "인증 보류"
+ "VERIFICATION_PENDING": "인증 보류",
+ "AVAILABLE_CUSTOM_ROLE": "사용 가능한 사용자 정의 역할 권한"
},
"ADD": {
"TITLE": "팀에 에이전트 추가",
@@ -31,7 +34,7 @@
"AGENT_TYPE": {
"LABEL": "역할",
"PLACEHOLDER": "역할을 선택하십시오.",
- "ERROR": "역할이 필요함"
+ "ERROR": "역할이 필요합니다."
},
"EMAIL": {
"LABEL": "이메일 주소",
@@ -40,22 +43,22 @@
"SUBMIT": "에이전트 추가"
},
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 추가됨",
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 추가되었습니다.",
"EXIST_MESSAGE": "에이전트 이메일이 이미 사용 중입니다. 다른 이메일 주소를 시도하십시오.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 삭제됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
"YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지해주세요. "
+ "NO": "아니요, 유지합니다. "
}
},
"EDIT": {
@@ -68,32 +71,34 @@
"AGENT_TYPE": {
"LABEL": "역할",
"PLACEHOLDER": "역할을 선택하십시오.",
- "ERROR": "역할이 필요함"
+ "ERROR": "역할이 필요합니다."
},
"EMAIL": {
"LABEL": "이메일 주소",
"PLACEHOLDER": "에이전트의 이메일 주소를 입력하십시오."
},
"AGENT_AVAILABILITY": {
- "LABEL": "유용성",
- "PLACEHOLDER": "Please select an availability status",
- "ERROR": "Availability is required"
+ "LABEL": "가용성",
+ "PLACEHOLDER": "가용성 상태를 선택하십시오.",
+ "ERROR": "가용성이 필요합니다."
},
"SUBMIT": "에이전트 수정"
},
"BUTTON_TEXT": "수정",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "에이전트가 성공적으로 업데이트됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "에이전트가 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"PASSWORD_RESET": {
"ADMIN_RESET_BUTTON": "비밀번호 재설정",
- "ADMIN_SUCCESS_MESSAGE": "비밀번호 재설정 지침이 포함된 이메일이 에이전트로 전송됨",
- "SUCCESS_MESSAGE": "에이전트 비밀번호 재설정 성공",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "ADMIN_SUCCESS_MESSAGE": "비밀번호 재설정 안내 이메일이 에이전트에게 전송되었습니다.",
+ "SUCCESS_MESSAGE": "에이전트 비밀번호가 성공적으로 재설정되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
+ "SEARCH_PLACEHOLDER": "에이전트 검색...",
+ "NO_RESULTS": "검색과 일치하는 에이전트가 없습니다",
"SEARCH": {
"NO_RESULTS": "검색 결과가 없습니다."
},
@@ -103,15 +108,18 @@
"AGENT": "에이전트 선택",
"TEAM": "팀 선택"
},
+ "LIST": {
+ "NONE": "없음"
+ },
"SEARCH": {
"NO_RESULTS": {
- "AGENT": "에이전트를 찾을 수 없음",
- "TEAM": "팀을 찾을 수 없음"
+ "AGENT": "에이전트를 찾을 수 없습니다.",
+ "TEAM": "팀을 찾을 수 없습니다."
},
"PLACEHOLDER": {
- "AGENT": "에이전트 찾기",
- "TEAM": "팀 찾기",
- "INPUT": "Search for agents"
+ "AGENT": "에이전트 검색",
+ "TEAM": "팀 검색",
+ "INPUT": "에이전트 검색"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
index 174ce88de..c162992e0 100644
--- a/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "사용자 지정 특성",
"HEADER_BTN_TXT": "사용자 지정 속성 추가하기",
"LOADING": "사용자 지정 속성들 가져오기",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "사용자 지정 속성은 연락처 또는 대화에 대한 추가 세부 정보를 추적합니다. 예를 들어 구독 플랜이나 첫 구매 날짜 등이 있습니다. 텍스트, 리스트, 숫자 등 다양한 유형의 사용자 지정 속성을 추가하여 필요한 정보를 수집할 수 있습니다.",
+ "LEARN_MORE": "사용자 지정 속성에 대해 더 알아보기",
+ "COUNT": "{n}개의 사용자 지정 속성 | {n}개의 사용자 지정 속성",
+ "SEARCH_PLACEHOLDER": "사용자 지정 속성 검색...",
+ "NO_RESULTS": "검색과 일치하는 사용자 지정 속성이 없습니다",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "대화",
+ "CONTACT": "연락처",
+ "COMPANY": "회사"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "텍스트",
+ "NUMBER": "숫자",
+ "LINK": "링크",
+ "DATE": "날짜",
+ "LIST": "리스트",
+ "CHECKBOX": "체크박스"
+ },
"ADD": {
"TITLE": "사용자 지정 속성 추가하기",
"SUBMIT": "만들기",
@@ -20,102 +37,111 @@
"ERROR": "설명이 필요합니다"
},
"MODEL": {
- "LABEL": "Applies to",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Model is required"
+ "LABEL": "적용 대상",
+ "PLACEHOLDER": "하나를 선택하십시오",
+ "ERROR": "모델이 필요합니다"
},
"TYPE": {
- "LABEL": "Type",
- "PLACEHOLDER": "Please select a type",
- "ERROR": "Type is required",
+ "LABEL": "유형",
+ "PLACEHOLDER": "유형을 선택하십시오",
+ "ERROR": "유형이 필요합니다",
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter value and press enter key",
- "ERROR": "Must have at least one value"
+ "LABEL": "리스트 값",
+ "PLACEHOLDER": "값을 입력하고 엔터 키를 누르십시오",
+ "ERROR": "최소 하나의 값이 필요합니다"
}
},
"KEY": {
- "LABEL": "Key",
- "PLACEHOLDER": "Enter custom attribute key",
- "ERROR": "Key is required",
- "IN_VALID": "Invalid key"
+ "LABEL": "키",
+ "PLACEHOLDER": "사용자 지정 속성 키 입력",
+ "ERROR": "키가 필요합니다",
+ "IN_VALID": "잘못된 키입니다"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "정규식 패턴",
+ "PLACEHOLDER": "사용자 지정 속성 정규식 패턴을 입력하십시오. (선택 사항)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "정규식 힌트",
+ "PLACEHOLDER": "정규식 패턴 힌트를 입력하십시오. (선택 사항)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "정규식 유효성 검사 활성화"
+ },
+ "BADGES": {
+ "PRE_CHAT": "사전 채팅",
+ "RESOLUTION": "해결"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute added successfully!",
- "ERROR_MESSAGE": "Could not create a Custom Attribute. Please try again later."
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 추가되었습니다!",
+ "ERROR_MESSAGE": "사용자 지정 속성을 만들 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute deleted successfully.",
- "ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "사용자 지정 속성을 삭제할 수 없습니다. 다시 시도하십시오."
},
"CONFIRM": {
- "TITLE": "%{attributeName}팀을 삭제하시겠습니까?",
- "PLACE_HOLDER": "Please type {attributeName} to confirm",
- "MESSAGE": "Deleting will remove the custom attribute",
+ "TITLE": "{attributeName}을(를) 삭제하시겠습니까?",
+ "PLACE_HOLDER": "확인하려면 {attributeName}을(를) 입력하십시오",
+ "MESSAGE": "삭제하면 사용자 지정 속성이 제거됩니다",
"YES": "삭제 ",
"NO": "취소"
}
},
"EDIT": {
- "TITLE": "Edit Custom Attribute",
+ "TITLE": "사용자 지정 속성 수정",
"UPDATE_BUTTON_TEXT": "업데이트",
"TYPE": {
"LIST": {
- "LABEL": "List Values",
- "PLACEHOLDER": "Please enter values and press enter key"
+ "LABEL": "리스트 값",
+ "PLACEHOLDER": "값을 입력하고 엔터 키를 누르십시오"
}
},
"API": {
- "SUCCESS_MESSAGE": "Custom Attribute updated successfully",
- "ERROR_MESSAGE": "There was an error updating custom attribute, please try again"
+ "SUCCESS_MESSAGE": "사용자 지정 속성이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "사용자 지정 속성 업데이트 중 오류가 발생했습니다. 다시 시도하십시오"
}
},
"TABS": {
"HEADER": "사용자 지정 특성",
- "CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONVERSATION": "대화",
+ "CONTACT": "연락처",
+ "COMPANY": "회사"
},
"LIST": {
- "TABLE_HEADER": [
- "이름",
- "내용",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "DESCRIPTION": "내용",
+ "TYPE": "유형",
+ "KEY": "키"
+ },
"BUTTONS": {
"EDIT": "수정",
"DELETE": "삭제"
},
"EMPTY_RESULT": {
- "404": "There are no custom attributes created",
- "NOT_FOUND": "There are no custom attributes configured"
+ "404": "생성된 사용자 지정 속성이 없습니다",
+ "NOT_FOUND": "구성된 사용자 지정 속성이 없습니다"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
- "PLACEHOLDER": "Please enter custom attribute regex pattern. (Optional)"
+ "LABEL": "정규식 패턴",
+ "PLACEHOLDER": "사용자 지정 속성 정규식 패턴을 입력하십시오. (선택 사항)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
- "PLACEHOLDER": "Please enter regex pattern hint. (Optional)"
+ "LABEL": "정규식 힌트",
+ "PLACEHOLDER": "정규식 패턴 힌트를 입력하십시오. (선택 사항)"
},
"ENABLE_REGEX": {
- "LABEL": "Enable regex validation"
+ "LABEL": "정규식 유효성 검사 활성화"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "사전 채팅",
+ "RESOLUTION": "해결"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
index 854d0a47f..05c0a94dd 100644
--- a/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ko/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Audit Logs",
- "HEADER_BTN_TXT": "Add Audit Logs",
- "LOADING": "Fetching Audit Logs",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
+ "HEADER": "감사 로그",
+ "HEADER_BTN_TXT": "감사 로그 추가",
+ "LOADING": "감사 로그를 가져오는 중",
+ "DESCRIPTION": "감사 로그는 계정의 활동 기록을 유지하여 계정, 팀 또는 서비스를 추적하고 감사할 수 있도록 합니다.",
+ "LEARN_MORE": "감사 로그에 대해 알아보기",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
+ "SIDEBAR_TXT": "감사 로그
감사 로그는 Chatwoot 시스템의 이벤트 및 작업에 대한 기록입니다.
",
"LIST": {
- "404": "There are no Audit Logs available in this account.",
- "TITLE": "Manage Audit Logs",
- "DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP 주소"
- ]
+ "404": "이 계정에 사용 가능한 감사 로그가 없습니다.",
+ "TITLE": "감사 로그 관리",
+ "DESC": "감사 로그는 Chatwoot 시스템의 이벤트 및 작업에 대한 기록입니다.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "활동",
+ "TIME": "시간",
+ "IP_ADDRESS": "IP 주소"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "감사 로그를 성공적으로 가져왔습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
- "DEFAULT_USER": "System",
+ "DEFAULT_USER": "시스템",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName}님이 새 자동화 규칙을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 자동화 규칙을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 자동화 규칙을 삭제했습니다 (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName}님이 {invitee}님을 {role}(으)로 계정에 초대했습니다",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName}님이 자신의 {attributes}을(를) {values}(으)로 변경했습니다",
+ "OTHER": "{agentName}님이 {user}님의 {attributes}을(를) {values}(으)로 변경했습니다",
+ "DELETED": "{agentName}님이 삭제된 사용자의 {attributes}을(를) {values}(으)로 변경했습니다"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName}님이 새 받은 메시지함을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 받은 메시지함을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 받은 메시지함을 삭제했습니다 (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName}님이 새 웹훅을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 웹훅을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 웹훅을 삭제했습니다 (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName}님이 로그인했습니다",
+ "SIGN_OUT": "{agentName}님이 로그아웃했습니다"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName}님이 새 팀을 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 팀을 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 팀을 삭제했습니다 (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName}님이 새 매크로를 생성했습니다 (#{id})",
+ "EDIT": "{agentName}님이 매크로를 업데이트했습니다 (#{id})",
+ "DELETE": "{agentName}님이 매크로를 삭제했습니다 (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName}님이 {user}님을 받은 메시지함(#{inbox_id})에 추가했습니다",
+ "REMOVE": "{agentName}님이 {user}님을 받은 메시지함(#{inbox_id})에서 제거했습니다"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName}님이 {user}님을 팀(#{team_id})에 추가했습니다",
+ "REMOVE": "{agentName}님이 {user}님을 팀(#{team_id})에서 제거했습니다"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "EDIT": "{agentName}님이 계정 구성을 업데이트했습니다 (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName}님이 대화 #{id}을(를) 삭제했습니다"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/automation.json b/app/javascript/dashboard/i18n/locale/ko/automation.json
index cf7b67d20..c2c33a388 100644
--- a/app/javascript/dashboard/i18n/locale/ko/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/automation.json
@@ -1,54 +1,58 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
- "LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "HEADER": "자동화",
+ "DESCRIPTION": "자동화를 통해 라벨을 추가하고 가장 적합한 상담원에게 대화를 배정하는 등 수작업이 필요한 기존 프로세스를 대체하고 간소화할 수 있습니다. 이를 통해 팀은 일상적인 업무에 소요되는 시간을 줄이면서 자신의 강점에 집중할 수 있습니다.",
+ "LEARN_MORE": "자동화에 대해 더 알아보기",
+ "COUNT": "{n}개의 자동화 규칙 | {n}개의 자동화 규칙",
+ "HEADER_BTN_TXT": "자동화 규칙 추가",
+ "LOADING": "자동화 규칙 가져오는 중",
+ "SEARCH_PLACEHOLDER": "자동화 규칙 검색...",
+ "NO_RESULTS": "검색과 일치하는 자동화 규칙이 없습니다",
"ADD": {
- "TITLE": "Add Automation Rule",
+ "TITLE": "자동화 규칙 추가",
"SUBMIT": "만들기",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"NAME": {
- "LABEL": "Rule Name",
- "PLACEHOLDER": "Enter rule name",
+ "LABEL": "규칙 이름",
+ "PLACEHOLDER": "규칙 이름을 입력하십시오",
"ERROR": "이름이 필요합니다"
},
"DESC": {
"LABEL": "내용",
- "PLACEHOLDER": "Enter rule description",
+ "PLACEHOLDER": "규칙 설명을 입력하십시오",
"ERROR": "설명이 필요합니다"
},
"EVENT": {
- "LABEL": "Event",
- "PLACEHOLDER": "Please select one",
- "ERROR": "Event is required"
+ "LABEL": "이벤트",
+ "PLACEHOLDER": "하나를 선택하십시오",
+ "ERROR": "이벤트가 필요합니다"
},
"CONDITIONS": {
- "LABEL": "Conditions"
+ "LABEL": "조건"
},
"ACTIONS": {
"LABEL": "액션"
}
},
- "CONDITION_BUTTON_LABEL": "Add Condition",
- "ACTION_BUTTON_LABEL": "Add Action",
+ "CONDITION_BUTTON_LABEL": "조건 추가",
+ "ACTION_BUTTON_LABEL": "액션 추가",
"API": {
- "SUCCESS_MESSAGE": "Automation rule added successfully",
- "ERROR_MESSAGE": "Could not able to create a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 만들 수 없습니다. 나중에 다시 시도하십시오"
}
},
"LIST": {
- "TABLE_HEADER": [
- "이름",
- "내용",
- "Active",
- "Created on"
- ],
- "404": "No automation rules found"
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "ACTIVE": "활성",
+ "CREATED_ON": "생성일",
+ "ACTIONS": "액션"
+ },
+ "404": "자동화 규칙을 찾을 수 없습니다"
},
"DELETE": {
- "TITLE": "Delete Automation Rule",
+ "TITLE": "자동화 규칙 삭제",
"SUBMIT": "삭제",
"CANCEL_BUTTON_TEXT": "취소",
"CONFIRM": {
@@ -58,24 +62,24 @@
"NO": "아니요, 유지해주세요. "
},
"API": {
- "SUCCESS_MESSAGE": "Automation rule deleted successfully",
- "ERROR_MESSAGE": "Could not able to delete a automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"EDIT": {
- "TITLE": "Edit Automation Rule",
+ "TITLE": "자동화 규칙 수정",
"SUBMIT": "업데이트",
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Automation rule updated successfully",
- "ERROR_MESSAGE": "Could not update automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화 규칙이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 업데이트할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"CLONE": {
- "TOOLTIP": "Clone",
+ "TOOLTIP": "복제",
"API": {
- "SUCCESS_MESSAGE": "Automation cloned successfully",
- "ERROR_MESSAGE": "Could not clone automation rule, Please try again later"
+ "SUCCESS_MESSAGE": "자동화가 성공적으로 복제되었습니다",
+ "ERROR_MESSAGE": "자동화 규칙을 복제할 수 없습니다. 나중에 다시 시도하십시오"
}
},
"FORM": {
@@ -83,36 +87,107 @@
"CREATE": "만들기",
"DELETE": "삭제",
"CANCEL": "취소",
- "RESET_MESSAGE": "Changing event type will reset the conditions and events you have added below"
+ "RESET_MESSAGE": "이벤트 유형을 변경하면 아래에 추가한 조건과 이벤트가 초기화됩니다"
},
"CONDITION": {
- "DELETE_MESSAGE": "You need to have atleast one condition to save",
- "CONTACT_CUSTOM_ATTR_LABEL": "Contact Custom Attributes",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Conversation Custom Attributes"
+ "DELETE_MESSAGE": "저장하려면 최소 하나의 조건이 필요합니다",
+ "CONTACT_CUSTOM_ATTR_LABEL": "연락처 사용자 지정 속성",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "대화 사용자 지정 속성"
},
"ACTION": {
- "DELETE_MESSAGE": "You need to have atleast one action to save",
- "TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "DELETE_MESSAGE": "저장하려면 최소 하나의 액션이 필요합니다",
+ "TEAM_MESSAGE_INPUT_PLACEHOLDER": "여기에 메시지를 입력하십시오",
+ "TEAM_DROPDOWN_PLACEHOLDER": "팀 선택",
+ "EMAIL_INPUT_PLACEHOLDER": "이메일 입력",
+ "URL_INPUT_PLACEHOLDER": "URL 입력"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Activate Automation Rule",
- "DEACTIVATION_TITLE": "Deactivate Automation Rule",
- "ACTIVATION_DESCRIPTION": "This action will activate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "DEACTIVATION_DESCRIPTION": "This action will deactivate the automation rule '{automationName}'. Are you sure you want to proceed?",
- "ACTIVATION_SUCCESFUL": "Automation Rule Activated Successfully",
- "DEACTIVATION_SUCCESFUL": "Automation Rule Deactivated Successfully",
- "ACTIVATION_ERROR": "Could not Activate Automation, Please try again later",
- "DEACTIVATION_ERROR": "Could not Deactivate Automation, Please try again later",
+ "ACTIVATION_TITLE": "자동화 규칙 활성화",
+ "DEACTIVATION_TITLE": "자동화 규칙 비활성화",
+ "ACTIVATION_DESCRIPTION": "이 작업은 자동화 규칙 '{automationName}'을(를) 활성화합니다. 계속하시겠습니까?",
+ "DEACTIVATION_DESCRIPTION": "이 작업은 자동화 규칙 '{automationName}'을(를) 비활성화합니다. 계속하시겠습니까?",
+ "ACTIVATION_SUCCESFUL": "자동화 규칙이 성공적으로 활성화되었습니다",
+ "DEACTIVATION_SUCCESFUL": "자동화 규칙이 성공적으로 비활성화되었습니다",
+ "ACTIVATION_ERROR": "자동화를 활성화할 수 없습니다. 나중에 다시 시도하십시오",
+ "DEACTIVATION_ERROR": "자동화를 비활성화할 수 없습니다. 나중에 다시 시도하십시오",
"CONFIRMATION_LABEL": "예",
"CANCEL_LABEL": "아니오"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Could not upload attachment, Please try again",
- "LABEL_IDLE": "Upload Attachment",
+ "UPLOAD_ERROR": "첨부 파일을 업로드할 수 없습니다. 다시 시도하십시오",
+ "LABEL_IDLE": "첨부 파일 업로드",
"LABEL_UPLOADING": "업로드 중...",
- "LABEL_UPLOADED": "Successfully Uploaded",
- "LABEL_UPLOAD_FAILED": "Upload Failed"
+ "LABEL_UPLOADED": "업로드 완료",
+ "LABEL_UPLOAD_FAILED": "업로드 실패"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다",
+ "VALUE_REQUIRED": "값이 필요합니다.",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다",
+ "ACTION_PARAMETERS_REQUIRED": "액션 매개변수가 필요합니다",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "최소 하나의 조건이 필요합니다",
+ "ATLEAST_ONE_ACTION_REQUIRED": "최소 하나의 액션이 필요합니다"
+ },
+ "NONE_OPTION": "없음",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "대화 생성됨",
+ "CONVERSATION_UPDATED": "대화 업데이트됨",
+ "MESSAGE_CREATED": "메시지 생성됨",
+ "CONVERSATION_RESOLVED": "대화 해결됨",
+ "CONVERSATION_OPENED": "대화 열림"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "에이전트에게 배정",
+ "ASSIGN_TEAM": "팀 배정",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_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": "메시지 보내기",
+ "ADD_PRIVATE_NOTE": "비공개 노트 추가",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "ADD_SLA": "SLA 추가",
+ "OPEN_CONVERSATION": "대화 열기",
+ "PENDING_CONVERSATION": "대화를 보류 중으로 표시"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "수신 메시지",
+ "OUTGOING": "발신 메시지"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "없음",
+ "LOW": "낮음",
+ "MEDIUM": "보통",
+ "HIGH": "높음",
+ "URGENT": "긴급"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "메시지 유형",
+ "PRIVATE_NOTE": "개인 노트",
+ "MESSAGE_CONTAINS": "메시지 포함",
+ "EMAIL": "이메일",
+ "INBOX": "받은 메시지함",
+ "CONVERSATION_LANGUAGE": "대화 언어",
+ "PHONE_NUMBER": "전화 번호",
+ "STATUS": "상태",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "MAIL_SUBJECT": "이메일 제목",
+ "COUNTRY_NAME": "국가",
+ "COMPANY_NAME": "회사",
+ "REFERER_LINK": "참조 링크",
+ "ASSIGNEE_NAME": "담당자",
+ "TEAM_NAME": "팀",
+ "PRIORITY": "우선순위",
+ "LABELS": "라벨"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
index bf75d9399..84f61e22d 100644
--- a/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ko/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "에이전트 선택",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "할당하다",
+ "CONVERSATIONS_SELECTED": "{conversationCount}개의 대화가 선택되었습니다",
+ "NONE": "없음",
+ "CLEAR_SELECTION": "초기화",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "예",
- "ASSIGN_AGENT_TOOLTIP": "Assign agent",
- "ASSIGN_TEAM_TOOLTIP": "Assign team",
- "ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign conversations. Please try again.",
- "RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
- "RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
- "ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
+ "CANCEL": "취소",
+ "SEARCH_INPUT_PLACEHOLDER": "검색",
+ "ASSIGN_AGENT_TOOLTIP": "에이전트 배정",
+ "ASSIGN_TEAM_TOOLTIP": "팀 배정",
+ "ASSIGN_SUCCESFUL": "대화가 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "대화 배정에 실패했습니다. 다시 시도하십시오.",
+ "RESOLVE_SUCCESFUL": "대화가 성공적으로 해결되었습니다.",
+ "RESOLVE_FAILED": "대화 해결에 실패했습니다. 다시 시도하십시오.",
+ "ALL_CONVERSATIONS_SELECTED_ALERT": "이 페이지에 표시된 대화만 선택되었습니다.",
"UPDATE": {
- "CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
- "UPDATE_SUCCESFUL": "Conversation status updated successfully.",
- "UPDATE_FAILED": "Failed to update conversations. Please try again."
+ "CHANGE_STATUS": "상태 변경",
+ "SNOOZE_UNTIL": "일시 중지",
+ "UPDATE_SUCCESFUL": "대화 상태가 성공적으로 업데이트되었습니다.",
+ "UPDATE_FAILED": "대화 업데이트에 실패했습니다. 다시 시도하십시오."
+ },
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "필수 속성이 누락되어 대화를 해결할 수 없습니다",
+ "PARTIAL_SUCCESS": "일부 대화는 필수 속성이 필요하여 건너뛰었습니다"
},
"LABELS": {
- "ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
- "ASSIGN_SELECTED_LABELS": "Assign selected labels",
- "ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_LABELS": "라벨 배정",
+ "REMOVE_LABELS": "Remove labels",
+ "ASSIGN_SELECTED_LABELS": "선택한 라벨 배정",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
+ "ASSIGN_SUCCESFUL": "라벨이 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "라벨 배정에 실패했습니다. 다시 시도하십시오.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "팀 선택",
"NONE": "없음",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
- "ASSIGN_FAILED": "Failed to assign team. Please try again."
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "팀이 성공적으로 배정되었습니다.",
+ "ASSIGN_FAILED": "팀 배정에 실패했습니다. 다시 시도하십시오."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/campaign.json b/app/javascript/dashboard/i18n/locale/ko/campaign.json
index be8b4dc00..5ab9ebf83 100644
--- a/app/javascript/dashboard/i18n/locale/ko/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ko/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "취소",
- "CREATE_BUTTON_TEXT": "만들기",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "실시간 채팅 캠페인",
+ "NEW_CAMPAIGN": "캠페인 생성",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "사용함",
+ "DISABLED": "사용 안 함"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "메시지",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "보낸 사람",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "올바른 URL을 입력하십시오."
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "보낸 사람",
+ "BOT": "봇",
+ "FROM": "에서",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 실시간 채팅 캠페인이 없습니다.",
+ "SUBTITLE": "사전 메시지를 사용하여 고객과 소통하십시오. '캠페인 생성'을 클릭하여 시작하십시오."
+ },
+ "CREATE": {
+ "TITLE": "실시간 채팅 캠페인 생성",
+ "CANCEL_BUTTON_TEXT": "취소",
+ "CREATE_BUTTON_TEXT": "만들기",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
+ },
+ "MESSAGE": {
+ "LABEL": "메시지",
+ "PLACEHOLDER": "캠페인 메시지를 입력하십시오.",
+ "ERROR": "메시지가 필요합니다."
+ },
+ "INBOX": {
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
+ },
+ "SENT_BY": {
+ "LABEL": "보낸 사람",
+ "PLACEHOLDER": "발신자를 선택하십시오.",
+ "ERROR": "발신자가 필요합니다."
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "URL을 입력하십시오.",
+ "ERROR": "올바른 URL을 입력하십시오."
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "페이지 체류 시간(초)",
+ "PLACEHOLDER": "시간을 입력하십시오.",
+ "ERROR": "페이지 체류 시간이 필요합니다."
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "기타 설정",
+ "ENABLED": "캠페인 활성화",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "업무 시간에만 실행"
+ },
+ "BUTTONS": {
+ "CREATE": "만들기",
+ "CANCEL": "취소"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "실시간 채팅 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "실시간 채팅 캠페인 수정",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "실시간 채팅 캠페인이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "삭제",
- "CONFIRM": {
- "TITLE": "삭제 확인",
- "MESSAGE": "Are you sure to delete?",
- "YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지해주세요. "
+ "SMS": {
+ "HEADER_TITLE": "SMS 캠페인",
+ "NEW_CAMPAIGN": "캠페인 생성",
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 SMS 캠페인이 없습니다.",
+ "SUBTITLE": "SMS 캠페인을 시작하여 고객에게 직접 연락하십시오. 제안을 보내거나 공지를 쉽게 할 수 있습니다. '캠페인 생성'을 클릭하여 시작하십시오."
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "처리 중",
+ "COMPLETED": "완료됨",
+ "SCHEDULED": "예약됨"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "발신",
+ "ON": "일시"
+ }
+ },
+ "CREATE": {
+ "TITLE": "SMS 캠페인 생성",
+ "CANCEL_BUTTON_TEXT": "취소",
+ "CREATE_BUTTON_TEXT": "만들기",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
+ },
+ "MESSAGE": {
+ "LABEL": "메시지",
+ "PLACEHOLDER": "캠페인 메시지를 입력하십시오.",
+ "ERROR": "메시지가 필요합니다."
+ },
+ "INBOX": {
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
+ },
+ "AUDIENCE": {
+ "LABEL": "대상",
+ "PLACEHOLDER": "고객 라벨을 선택하십시오.",
+ "ERROR": "대상이 필요합니다."
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "예약 시간",
+ "PLACEHOLDER": "시간을 선택하십시오.",
+ "ERROR": "예약 시간이 필요합니다."
+ },
+ "BUTTONS": {
+ "CREATE": "만들기",
+ "CANCEL": "취소"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
}
},
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "업데이트",
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp 캠페인",
+ "NEW_CAMPAIGN": "캠페인 생성",
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 WhatsApp 캠페인이 없습니다.",
+ "SUBTITLE": "WhatsApp 캠페인을 시작하여 고객에게 직접 연락하십시오. 제안을 보내거나 공지를 쉽게 할 수 있습니다. '캠페인 생성'을 클릭하여 시작하십시오."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "처리 중",
+ "COMPLETED": "완료됨",
+ "SCHEDULED": "예약됨"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "발신",
+ "ON": "일시"
+ }
+ },
+ "CREATE": {
+ "TITLE": "WhatsApp 캠페인 생성",
+ "CANCEL_BUTTON_TEXT": "취소",
+ "CREATE_BUTTON_TEXT": "만들기",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "제목",
+ "PLACEHOLDER": "캠페인 제목을 입력하십시오.",
+ "ERROR": "제목이 필요합니다."
+ },
+ "INBOX": {
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택",
+ "ERROR": "받은 메시지함이 필요합니다."
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp 템플릿",
+ "PLACEHOLDER": "템플릿을 선택하십시오.",
+ "INFO": "이 캠페인에 사용할 템플릿을 선택하십시오.",
+ "ERROR": "템플릿이 필요합니다.",
+ "PREVIEW_TITLE": "{templateName} 처리",
+ "LANGUAGE": "언어",
+ "CATEGORY": "카테고리",
+ "VARIABLES_LABEL": "변수",
+ "VARIABLE_PLACEHOLDER": "{variable}의 값을 입력하십시오."
+ },
+ "AUDIENCE": {
+ "LABEL": "대상",
+ "PLACEHOLDER": "고객 라벨을 선택하십시오.",
+ "ERROR": "대상이 필요합니다."
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "예약 시간",
+ "PLACEHOLDER": "시간을 선택하십시오.",
+ "ERROR": "예약 시간이 필요합니다."
+ },
+ "BUTTONS": {
+ "CREATE": "만들기",
+ "CANCEL": "취소"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp 캠페인이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "정말로 삭제하시겠습니까?",
+ "DESCRIPTION": "삭제 작업은 영구적이며 되돌릴 수 없습니다.",
+ "CONFIRM": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
+ "SUCCESS_MESSAGE": "캠페인이 성공적으로 삭제되었습니다.",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "메시지",
- "INBOX": "받은 메시지함",
- "STATUS": "상태",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "추가하기",
- "EDIT": "수정",
- "DELETE": "삭제"
- },
- "STATUS": {
- "ENABLED": "사용함",
- "DISABLED": "사용 안 함",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "봇"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
index 7f41881d6..176e5f92e 100644
--- a/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "미리 준비된 답변",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
+ "LEARN_MORE": "미리 준비된 답변에 대해 알아보기",
+ "DESCRIPTION": "미리 준비된 응답은 대화에 신속하게 응답할 수 있도록 도와주는 미리 작성된 응답 템플릿입니다. 에이전트는 대화 중에 '/' 문자 뒤에 단축 코드를 입력하여 미리 준비된 응답을 삽입할 수 있습니다. ",
+ "COUNT": "{n}개의 미리 준비된 응답 | {n}개의 미리 준비된 응답",
+ "HEADER_BTN_TXT": "미리 준비된 응답 추가",
+ "LOADING": "미리 준비된 응답을 가져오는 중...",
+ "SEARCH_PLACEHOLDER": "미리 준비된 응답 검색...",
+ "NO_RESULTS": "검색과 일치하는 미리 준비된 응답이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
"LIST": {
"404": "이 계정에는 미리 준비된 답변이 없습니다.",
"TITLE": "미리 준비된 답변 관리",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "콘텐츠",
- "액션"
- ]
+ "DESC": "미리 준비된 응답은 대화에 빠르게 답변을 보낼 수 있는 미리 정의된 응답 템플릿입니다.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "단축 코드",
+ "CONTENT": "내용",
+ "ACTIONS": "액션"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "미리 준비된 응답 추가",
+ "DESC": "미리 준비된 응답은 대화에 빠르게 답변을 보낼 수 있는 미리 정의된 응답 템플릿입니다.",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "단축 코드",
+ "PLACEHOLDER": "단축 코드를 입력하십시오.",
+ "ERROR": "단축 코드가 필요합니다."
},
"CONTENT": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "나중에 템플릿으로 사용할 메시지를 작성하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
- "SUBMIT": "보내기"
+ "SUBMIT": "제출"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "미리 준비된 응답 수정",
"CANCEL_BUTTON_TEXT": "취소",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "단축 코드",
+ "PLACEHOLDER": "단축 코드를 입력하십시오.",
+ "ERROR": "단축 코드가 필요합니다."
},
"CONTENT": {
"LABEL": "메시지",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "나중에 템플릿으로 사용할 메시지를 작성하십시오.",
+ "ERROR": "메시지가 필요합니다."
},
- "SUBMIT": "보내기"
+ "SUBMIT": "제출"
},
"BUTTON_TEXT": "수정",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
+ "SUCCESS_MESSAGE": "미리 준비된 응답이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오."
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
+ "TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "예, 삭제합니다. ",
+ "NO": "아니요, 유지합니다. "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/chatlist.json b/app/javascript/dashboard/i18n/locale/ko/chatlist.json
index 2f23ef6d2..2db0c8944 100644
--- a/app/javascript/dashboard/i18n/locale/ko/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ko/chatlist.json
@@ -1,16 +1,17 @@
{
"CHAT_LIST": {
- "LOADING": "대화 가져오기",
+ "LOADING": "대화를 가져오는 중",
"LOAD_MORE_CONVERSATIONS": "더 많은 대화 불러오기",
- "EOF": "모든 대화 불러오기🎉",
+ "EOF": "모든 대화를 불러왔습니다 🎉",
"LIST": {
"404": "이 그룹에는 활성 대화가 없습니다."
},
+ "FAILED_TO_SEND": "전송 실패",
"TAB_HEADING": "대화",
"MENTION_HEADING": "멘션",
- "UNATTENDED_HEADING": "Unattended",
+ "UNATTENDED_HEADING": "미응대",
"SEARCH": {
- "INPUT": "사람 검색, 채팅, 저장된 응답..."
+ "INPUT": "사람, 채팅, 저장된 응답 검색..."
},
"FILTER_ALL": "모두",
"ASSIGNEE_TYPE_TABS": {
@@ -20,13 +21,13 @@
},
"CHAT_STATUS_FILTER_ITEMS": {
"open": {
- "TEXT": "열기"
+ "TEXT": "열림"
},
"resolved": {
"TEXT": "해결됨"
},
"pending": {
- "TEXT": "보내는 중"
+ "TEXT": "보류 중"
},
"snoozed": {
"TEXT": "일시 중지됨"
@@ -36,45 +37,48 @@
}
},
"VIEW_FILTER": "보기",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "대화 정렬",
"CHAT_SORT": {
"STATUS": "상태",
- "ORDER_BY": "Order by"
+ "ORDER_BY": "정렬 기준"
},
"CHAT_TIME_STAMP": {
"CREATED": {
- "LATEST": "Created",
- "OLDEST": "Created at:"
+ "LATEST": "생성됨",
+ "OLDEST": "생성 일시:"
},
"LAST_ACTIVITY": {
- "NOT_ACTIVE": "Last activity:",
- "ACTIVE": "Last activity"
+ "NOT_ACTIVE": "최근 활동:",
+ "ACTIVE": "최근 활동"
}
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Last activity: Oldest first"
+ "TEXT": "최근 활동: 오래된 순"
},
"last_activity_at_desc": {
- "TEXT": "Last activity: Newest first"
+ "TEXT": "최근 활동: 최신 순"
},
"created_at_desc": {
- "TEXT": "Created at: Newest first"
+ "TEXT": "생성 일시: 최신 순"
},
"created_at_asc": {
- "TEXT": "Created at: Oldest first"
+ "TEXT": "생성 일시: 오래된 순"
},
"priority_desc": {
- "TEXT": "Priority: Highest first"
+ "TEXT": "우선순위: 높은 순"
},
"priority_asc": {
- "TEXT": "Priority: Lowest first"
+ "TEXT": "우선순위: 낮은 순"
},
"waiting_since_asc": {
- "TEXT": "Pending Response: Longest first"
+ "TEXT": "응답 대기: 오래된 순"
},
"waiting_since_desc": {
- "TEXT": "Pending Response: Shortest first"
+ "TEXT": "응답 대기: 최신 순"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "우선순위: 높은 순, 생성일: 오래된 순"
}
},
"ATTACHMENTS": {
@@ -91,41 +95,52 @@
"CONTENT": "파일 첨부"
},
"location": {
- "CONTENT": "장소"
+ "CONTENT": "위치"
+ },
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
},
"fallback": {
- "CONTENT": "URL을 공유함"
+ "CONTENT": "URL을 공유했습니다"
+ },
+ "contact": {
+ "CONTENT": "연락처 공유"
+ },
+ "embed": {
+ "CONTENT": "임베디드 콘텐츠"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Sort conversation",
- "DROPDOWN_TITLE": "Sort by",
+ "TITLE": "대화 정렬",
+ "DROPDOWN_TITLE": "정렬 기준",
"ITEMS": {
"LATEST": {
- "NAME": "Last activity at",
- "LABEL": "Last activity"
+ "NAME": "최근 활동 일시",
+ "LABEL": "최근 활동"
},
"CREATED_AT": {
- "NAME": "Created at",
- "LABEL": "Created at"
+ "NAME": "생성 일시",
+ "LABEL": "생성 일시"
},
"LAST_USER_MESSAGE_AT": {
- "NAME": "Last user message at",
- "LABEL": "Last message"
+ "NAME": "마지막 사용자 메시지 일시",
+ "LABEL": "마지막 메시지"
}
}
},
"RECEIVED_VIA_EMAIL": "이메일을 통해 수신됨",
"VIEW_TWEET_IN_TWITTER": "트위터에서 트윗 보기",
"REPLY_TO_TWEET": "트윗에 응답하기",
- "LINK_TO_STORY": "인스타그램 스토리로 가기",
- "SENT": "성공적으로 보내짐",
- "READ": "Read successfully",
- "DELIVERED": "Delivered successfully",
+ "LINK_TO_STORY": "인스타그램 스토리로 이동",
+ "SENT": "성공적으로 전송됨",
+ "READ": "성공적으로 읽음",
+ "DELIVERED": "성공적으로 전달됨",
"NO_MESSAGES": "메시지 없음",
- "NO_CONTENT": "콘텐츠 이용 불가",
- "HIDE_QUOTED_TEXT": "인용문 가리기",
- "SHOW_QUOTED_TEXT": "인용문 보이기",
- "MESSAGE_READ": "읽기"
+ "NO_CONTENT": "콘텐츠를 사용할 수 없습니다.",
+ "HIDE_QUOTED_TEXT": "인용문 숨기기",
+ "SHOW_QUOTED_TEXT": "인용문 보기",
+ "MESSAGE_READ": "읽음",
+ "SENDING": "전송 중",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/companies.json b/app/javascript/dashboard/i18n/locale/ko/companies.json
new file mode 100644
index 000000000..11e6fbafa
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "회사",
+ "SORT_BY": {
+ "LABEL": "정렬 기준",
+ "OPTIONS": {
+ "NAME": "이름",
+ "DOMAIN": "도메인",
+ "CREATED_AT": "생성일",
+ "LAST_ACTIVITY_AT": "최근 활동",
+ "CONTACTS_COUNT": "연락처 수"
+ }
+ },
+ "ORDER": {
+ "LABEL": "순서",
+ "OPTIONS": {
+ "ASCENDING": "오름차순",
+ "DESCENDING": "내림차순"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "회사 검색...",
+ "LOADING": "회사 로딩 중...",
+ "UNNAMED": "이름 없는 회사",
+ "CONTACTS_COUNT": "{n} 연락처 | {n} 연락처",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "속성",
+ "CONTACTS": "연락처",
+ "HISTORY": "기록",
+ "NOTES": "노트"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "사용자 지정 속성 검색...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "연락처를 불러오는 중...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "연락처 추가",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "연락처 검색...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "연락처를 찾을 수 없습니다.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "회사",
+ "CONTACT_LABEL": "연락처",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "취소"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "{date}에 생성됨",
+ "LAST_ACTIVE": "마지막 활동 {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "이름",
+ "DOMAIN": "도메인"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "회사를 찾을 수 없습니다"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "{totalItems}개 회사 중 {startItem} – {endItem} 표시 | {totalItems}개 회사 중 {startItem} – {endItem} 표시"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/components.json b/app/javascript/dashboard/i18n/locale/ko/components.json
new file mode 100644
index 000000000..ebe221409
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "{totalItems}개 항목 중 {startItem} - {endItem} 표시 | {totalItems}개 항목 중 {startItem} - {endItem} 표시",
+ "CURRENT_PAGE_INFO": "{totalPages} 페이지 중 {currentPage} | {totalPages} 페이지 중 {currentPage}"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "옵션을 선택하십시오...",
+ "EMPTY_SEARCH_RESULTS": "검색어 `{searchTerm}`에 대한 항목을 찾을 수 없습니다",
+ "EMPTY_STATE": "검색 결과가 없습니다.",
+ "SEARCH_PLACEHOLDER": "검색...",
+ "MORE": "+{count}개 더"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "검색...",
+ "EMPTY_STATE": "검색 결과가 없습니다.",
+ "SEARCHING": "검색중..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "취소",
+ "CONFIRM": "확인"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "국가 검색",
+ "ERROR": "전화번호는 비어 있거나 E.164 형식이어야 합니다",
+ "DIAL_CODE_ERROR": "목록에서 국가 번호를 선택하십시오"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "작성자를 사용할 수 없습니다"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "브레드크럼"
+ },
+ "SWITCH": {
+ "TOGGLE": "스위치 전환"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "태그"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "더 알아보기",
+ "WATCH_VIDEO": "동영상 보기"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "분",
+ "HOURS": "시간",
+ "DAYS": "일",
+ "PLACEHOLDER": "기간을 입력하십시오"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "곧 출시 예정!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/contact.json b/app/javascript/dashboard/i18n/locale/ko/contact.json
index 29548b6cd..aee9df6c3 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contact.json
@@ -7,16 +7,25 @@
"COPY_SUCCESSFUL": "클립보드에 성공적으로 복사됨",
"COMPANY": "회사",
"LOCATION": "장소",
- "BROWSER_LANGUAGE": "언어 표시",
- "CONVERSATION_TITLE": "대화 자세히",
+ "BROWSER_LANGUAGE": "브라우저 언어",
+ "CONVERSATION_TITLE": "대화 상세 정보",
"VIEW_PROFILE": "프로필 보기",
"BROWSER": "브라우저",
"OS": "운영 체제",
"INITIATED_FROM": "시작 위치",
"INITIATED_AT": "시작 시간",
"IP_ADDRESS": "IP 주소",
- "CREATED_AT_LABEL": "Created",
+ "CREATED_AT_LABEL": "생성일",
"NEW_MESSAGE": "새 메시지",
+ "CALL": "통화",
+ "CALL_INITIATED": "연락처에 전화 거는 중...",
+ "CALL_FAILED": "통화를 시작할 수 없습니다. 다시 시도하십시오.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "음성 받은 메시지함 선택"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "이 연락처와 관련된 이전 대화가 없습니다.",
"TITLE": "이전 대화"
@@ -34,71 +43,33 @@
"TITLE": "라벨 추가하기",
"PLACEHOLDER": "라벨 찾기",
"NO_RESULT": "라벨을 찾을 수 없습니다",
- "CREATE_LABEL": "Create new label"
+ "CREATE_LABEL": "새 라벨 만들기"
}
},
"MERGE_CONTACT": "연락처 합치기",
"CONTACT_ACTIONS": "연락처 활동",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "연락처 차단",
+ "UNMUTE_CONTACT": "연락처 차단 해제",
+ "MUTED_SUCCESS": "이 연락처가 성공적으로 차단되었습니다. 향후 대화에 대한 알림을 받지 않습니다.",
+ "UNMUTED_SUCCESS": "이 연락처가 성공적으로 차단 해제되었습니다.",
"SEND_TRANSCRIPT": "대화기록 보내기",
"EDIT_LABEL": "수정",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "사용자 지정 특성",
"CONTACT_LABELS": "연락처 라벨",
- "PREVIOUS_CONVERSATIONS": "이전 대화"
+ "PREVIOUS_CONVERSATIONS": "이전 대화",
+ "NO_RECORDS_FOUND": "속성을 찾을 수 없습니다"
}
},
"EDIT_CONTACT": {
"BUTTON_LABEL": "연락처 수정",
"TITLE": "연락처 수정",
- "DESC": "연락처 수정 자세히"
- },
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "새 연결",
- "TITLE": "새 연결 만들기",
- "DESC": "연락처에 대한 기본 정보 세부 정보를 추가합니다."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "가져오기",
- "TITLE": "연락처 가져오기",
- "DESC": "CSV 파일을 통해 연락처 가져오기",
- "DOWNLOAD_LABEL": "간단한 CSV 파일 다운받기",
- "FORM": {
- "LABEL": "CSV 파일",
- "SUBMIT": "가져오기",
- "CANCEL": "취소"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오.",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "삭제 확인",
- "MESSAGE": "정말로 이 노트를 삭제하고 싶으신가요?",
- "YES": "예, 삭제합니다",
- "NO": "아니요, 유지합니다."
- }
+ "DESC": "연락처 정보 수정"
},
"DELETE_CONTACT": {
- "BUTTON_LABEL": "연락처 지우기",
- "TITLE": "연락처 지우기",
- "DESC": "연락처 설명 지우기",
+ "BUTTON_LABEL": "연락처 삭제",
+ "TITLE": "연락처 삭제",
+ "DESC": "연락처 정보 삭제",
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
@@ -112,7 +83,7 @@
},
"CONTACT_FORM": {
"FORM": {
- "SUBMIT": "보내기",
+ "SUBMIT": "제출",
"CANCEL": "취소",
"AVATAR": {
"LABEL": "연락처 아바타"
@@ -129,14 +100,14 @@
"PLACEHOLDER": "연락처의 이메일 주소 입력",
"LABEL": "이메일 주소",
"DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다.",
- "ERROR": "올바른 전자 메일 주소를 입력하세요."
+ "ERROR": "올바른 이메일 주소를 입력하십시오."
},
"PHONE_NUMBER": {
"PLACEHOLDER": "연락처의 전화 번호 입력",
"LABEL": "전화 번호",
- "HELP": "전화번호는 E.164 형식이여야 합니다. 예: +1415555555 [+][국가 코드][지역 코드][전화번호]",
- "ERROR": "전화번호는 비어있거나 E.164 형식이여야 합니다",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
+ "HELP": "전화번호는 E.164 형식이어야 합니다. 예: +1415555555 [+][국가 코드][지역 코드][전화번호]. 드롭다운에서 국가 번호를 선택할 수 있습니다.",
+ "ERROR": "전화번호는 비어있거나 E.164 형식이어야 합니다",
+ "DIAL_CODE_ERROR": "목록에서 국가 번호를 선택하십시오",
"DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다."
},
"LOCATION": {
@@ -148,32 +119,32 @@
"LABEL": "회사명"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
+ "PLACEHOLDER": "국가 이름 입력",
"LABEL": "국가 이름",
- "SELECT_PLACEHOLDER": "Select",
+ "SELECT_PLACEHOLDER": "선택",
"REMOVE": "제거",
- "SELECT_COUNTRY": "Select Country"
+ "SELECT_COUNTRY": "국가 선택"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "도시 이름 입력",
+ "LABEL": "도시 이름"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
"PLACEHOLDER": "페이스북 사용자 이름 입력",
- "LABEL": "페이스북"
+ "LABEL": "Facebook"
},
"TWITTER": {
"PLACEHOLDER": "트위터 사용자 이름 입력",
- "LABEL": "트위터"
+ "LABEL": "Twitter"
},
"LINKEDIN": {
"PLACEHOLDER": "링크드인 사용자 이름 입력",
- "LABEL": "링크드인"
+ "LABEL": "LinkedIn"
},
"GITHUB": {
"PLACEHOLDER": "깃허브 사용자 이름 입력",
- "LABEL": "깃허브"
+ "LABEL": "Github"
}
}
},
@@ -189,20 +160,20 @@
"NEW_CONVERSATION": {
"BUTTON_LABEL": "대화 시작",
"TITLE": "새 대화",
- "DESC": "새로운 메세지를 보내 대화를 시작하세요.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "DESC": "새로운 메시지를 보내 대화를 시작하십시오.",
+ "NO_INBOX": "이 연락처와 새 대화를 시작할 받은 메시지함을 찾을 수 없습니다.",
"FORM": {
"TO": {
- "LABEL": "~~에게"
+ "LABEL": "받는 사람"
},
"INBOX": {
"LABEL": "받은 메시지함",
- "PLACEHOLDER": "Choose source inbox",
+ "PLACEHOLDER": "소스 받은 메시지함 선택",
"ERROR": "받은 메시지함 선택"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
+ "LABEL": "제목",
+ "PLACEHOLDER": "제목",
"ERROR": "제목은 공백일 수 없습니다."
},
"MESSAGE": {
@@ -211,8 +182,8 @@
"ERROR": "메시지는 비어 있을 수 없습니다"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "파일 선택",
+ "HELP_TEXT": "여기에 파일을 끌어다 놓거나 파일을 선택하여 첨부하십시오"
},
"SUBMIT": "메시지 보내기",
"CANCEL": "취소",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "연락처",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "검색",
- "SEARCH_INPUT_PLACEHOLDER": "연락처 검색",
- "FILTER_CONTACTS": "필터",
- "FILTER_CONTACTS_SAVE": "필터 저장하기",
- "FILTER_CONTACTS_DELETE": "필터 삭제하기",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "연락처를 불러오는 중...",
- "404": "검색과 일치하는 연락처 없음 🔍",
- "NO_CONTACTS": "사용 가능한 연락처가 없습니다",
"TABLE_HEADER": {
- "NAME": "이름",
- "PHONE_NUMBER": "전화 번호",
- "CONVERSATIONS": "대화",
- "LAST_ACTIVITY": "지난 활동",
- "CREATED_AT": "에 만들어짐",
- "COUNTRY": "국가",
- "CITY": "도시",
- "SOCIAL_PROFILES": "소셜 프로필",
- "COMPANY": "회사",
- "EMAIL_ADDRESS": "이메일 주소"
- },
- "VIEW_DETAILS": "상세보기"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "연락처",
- "LOADING": "연락처 프로필 불러오는 중..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "추가하기",
- "TITLE": "쉬프트와 엔터를 눌러 작업 만들기"
- },
- "FOOTER": {
- "DUE_DATE": "끝나는 날짜",
- "LABEL_TITLE": "유형 선택하기"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "노트를 가져오는 중...",
- "NOT_AVAILABLE": "이 연락처에 대한 노트가 없습니다",
- "HEADER": {
- "TITLE": "노트들"
- },
- "LIST": {
- "LABEL": "노트가 추가되었습니다"
- },
- "ADD": {
- "BUTTON": "추가하기",
- "PLACEHOLDER": "노트 추가하기",
- "TITLE": "쉬프트와 엔터를 눌러 노트 만들기"
- },
- "CONTENT_HEADER": {
- "DELETE": "노트 삭제하기"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "노트들",
- "PILL_BUTTON_EVENTS": "이벤트들",
- "PILL_BUTTON_CONVO": "대화"
+ "SOCIAL_PROFILES": "소셜 프로필"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "속성 추가하기",
"BUTTON": "사용자 지정 속성 추가하기",
- "NOT_AVAILABLE": "이 연락처에 사용 가능한 커스텀 속성이 없습니다.",
"COPY_SUCCESSFUL": "클립보드에 성공적으로 복사됨",
+ "SHOW_MORE": "모든 속성 보기",
+ "SHOW_LESS": "속성 간략히 보기",
"ACTIONS": {
"COPY": "속성 복사하기",
"DELETE": "속성 삭제하기",
@@ -310,73 +218,449 @@
"CANCEL": "취소",
"NAME": {
"LABEL": "사용자 지정 속성 이름",
- "PLACEHOLDER": "Shopify id",
- "ERROR": "Invalid custom attribute name"
+ "PLACEHOLDER": "예: shopify id",
+ "ERROR": "잘못된 사용자 지정 속성 이름입니다"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "속성 값",
+ "PLACEHOLDER": "예: 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "새 속성 만들기 ",
+ "SUCCESS": "속성이 성공적으로 추가되었습니다",
+ "ERROR": "속성을 추가할 수 없습니다. 나중에 다시 시도하십시오"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 업데이트되었습니다",
+ "ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도하십시오"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 삭제되었습니다",
+ "ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
},
"ATTRIBUTE_SELECT": {
"TITLE": "속성 추가하기",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "PLACEHOLDER": "속성 검색",
+ "NO_RESULT": "속성을 찾을 수 없습니다"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
+ "PLACEHOLDER": "값 선택",
+ "SEARCH_INPUT_PLACEHOLDER": "값 검색",
"NO_RESULT": "검색 결과가 없습니다."
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "잘못된 주소입니다.",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "유효한 값이 필요합니다",
+ "INVALID_URL": "잘못된 URL입니다",
+ "INVALID_INPUT": "잘못된 입력입니다"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
- "DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
+ "TITLE": "연락처 합치기",
+ "DESCRIPTION": "두 개의 프로필을 하나로 합칩니다. 모든 속성과 대화가 포함됩니다. 충돌하는 경우 기본 연락처의 속성이 우선합니다.",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "기본 연락처",
+ "HELP_LABEL": "삭제 예정"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "합칠 연락처",
+ "PLACEHOLDER": "연락처 검색",
+ "HELP_LABEL": "유지 예정"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "요약",
+ "DELETE_WARNING": "{primaryContactName}의 연락처가 삭제됩니다.",
+ "ATTRIBUTE_WARNING": "{primaryContactName}의 연락처 정보가 {parentContactName}(으)로 복사됩니다."
},
"SEARCH": {
- "ERROR": "에러_메시지"
+ "ERROR_MESSAGE": "문제가 발생했습니다. 나중에 다시 시도하십시오."
},
"FORM": {
- "SUBMIT": " Merge contacts",
+ "SUBMIT": " 연락처 합치기",
"CANCEL": "취소",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "합칠 하위 연락처를 선택하십시오"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 합쳐졌습니다",
+ "ERROR_MESSAGE": "연락처를 합칠 수 없습니다. 다시 시도하십시오!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "연락처",
+ "SEARCH_TITLE": "연락처 검색",
+ "ACTIVE_TITLE": "활성 연락처",
+ "SEARCH_PLACEHOLDER": "검색...",
+ "MESSAGE_BUTTON": "메시지",
+ "SEND_MESSAGE": "메시지 보내기",
+ "BLOCK_CONTACT": "연락처 차단",
+ "UNBLOCK_CONTACT": "연락처 차단 해제",
+ "BREADCRUMB": {
+ "CONTACTS": "연락처"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "연락처 추가",
+ "EXPORT_CONTACT": "연락처 내보내기",
+ "IMPORT_CONTACT": "연락처 가져오기",
+ "SAVE_CONTACT": "연락처 저장",
+ "EMAIL_ADDRESS_DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다.",
+ "PHONE_NUMBER_DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다.",
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 저장되었습니다.",
+ "ERROR_MESSAGE": "연락처를 저장할 수 없습니다. 나중에 다시 시도하십시오."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "이 연락처가 성공적으로 차단되었습니다",
+ "BLOCK_ERROR_MESSAGE": "연락처를 차단할 수 없습니다. 나중에 다시 시도하십시오.",
+ "UNBLOCK_SUCCESS_MESSAGE": "이 연락처가 성공적으로 차단 해제되었습니다",
+ "UNBLOCK_ERROR_MESSAGE": "연락처 차단을 해제할 수 없습니다. 나중에 다시 시도하십시오.",
+ "IMPORT_CONTACT": {
+ "TITLE": "연락처 가져오기",
+ "DESCRIPTION": "CSV 파일을 통해 연락처 가져오기",
+ "DOWNLOAD_LABEL": "샘플 CSV 파일 다운로드",
+ "LABEL": "CSV 파일:",
+ "CHOOSE_FILE": "파일 선택",
+ "CHANGE": "변경",
+ "CANCEL": "취소",
+ "IMPORT": "가져오기",
+ "SUCCESS_MESSAGE": "가져오기가 완료되면 이메일로 알림을 받으실 수 있습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "연락처 내보내기",
+ "DESCRIPTION": "연락처의 상세 정보가 포함된 CSV 파일을 빠르게 내보내기",
+ "CONFIRM": "내보내기",
+ "SUCCESS_MESSAGE": "내보내기가 진행 중입니다. 내보내기 파일이 다운로드 준비되면 이메일로 알림을 받으실 수 있습니다.",
+ "ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "SORT_BY": {
+ "LABEL": "정렬 기준",
+ "OPTIONS": {
+ "NAME": "이름",
+ "EMAIL": "이메일",
+ "PHONE_NUMBER": "전화 번호",
+ "COMPANY": "회사",
+ "COUNTRY": "국가",
+ "CITY": "도시",
+ "LAST_ACTIVITY": "최근 활동",
+ "CREATED_AT": "생성일"
+ }
+ },
+ "ORDER": {
+ "LABEL": "정렬 순서",
+ "OPTIONS": {
+ "ASCENDING": "오름차순",
+ "DESCENDING": "내림차순"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "이 필터를 저장하시겠습니까?",
+ "CONFIRM": "필터 저장하기",
+ "LABEL": "이름",
+ "PLACEHOLDER": "필터 이름을 입력하십시오",
+ "ERROR": "유효한 이름을 입력하십시오",
+ "SUCCESS_MESSAGE": "필터가 성공적으로 저장되었습니다",
+ "ERROR_MESSAGE": "필터를 저장할 수 없습니다. 나중에 다시 시도하십시오."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "삭제 확인",
+ "DESCRIPTION": "이 필터를 삭제하시겠습니까?",
+ "CONFIRM": "예, 삭제합니다",
+ "CANCEL": "아니요, 취소합니다",
+ "SUCCESS_MESSAGE": "필터가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "필터를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "{totalItems}개의 연락처 중 {startItem} - {endItem} 표시"
+ },
+ "FILTER": {
+ "NAME": "이름",
+ "EMAIL": "이메일",
+ "PHONE_NUMBER": "전화 번호",
+ "IDENTIFIER": "식별자",
+ "COUNTRY": "국가",
+ "CITY": "도시",
+ "COMPANY": "회사",
+ "CREATED_AT": "생성일",
+ "LAST_ACTIVITY": "최근 활동",
+ "REFERER_LINK": "참조 링크",
+ "BLOCKED": "차단됨",
+ "BLOCKED_TRUE": "참",
+ "BLOCKED_FALSE": "거짓",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "필터 초기화",
+ "UPDATE_SEGMENT": "세그먼트 업데이트",
+ "APPLY_FILTERS": "필터 적용하기",
+ "ADD_FILTER": "필터 추가"
+ },
+ "TITLE": "연락처 필터",
+ "EDIT_SEGMENT": "세그먼트 수정",
+ "SEGMENT": {
+ "LABEL": "세그먼트 이름",
+ "INPUT_PLACEHOLDER": "세그먼트 이름을 입력하십시오"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count}개의 필터 더 보기",
+ "CLEAR_FILTERS": "필터 초기화"
+ }
+ },
+ "CARD": {
+ "OF": "/",
+ "VIEW_DETAILS": "상세보기",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "연락처 정보 수정",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "이름 입력"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "성 입력"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "이메일 주소 입력",
+ "DUPLICATE": "이 이메일 주소는 다른 연락처에 사용 중입니다."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "전화 번호 입력",
+ "DUPLICATE": "이 전화번호는 다른 연락처에 사용 중입니다."
+ },
+ "CITY": {
+ "PLACEHOLDER": "도시 이름 입력"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "국가 선택"
+ },
+ "BIO": {
+ "PLACEHOLDER": "자기 소개 입력"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "회사명 입력"
+ }
+ },
+ "UPDATE_BUTTON": "연락처 업데이트",
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "연락처를 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "소셜 링크 수정",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook 추가"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github 추가"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagram 추가"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Telegram 추가"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "TikTok 추가"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn 추가"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter 추가"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "이 작업은 영구적이며 되돌릴 수 없습니다.",
+ "BUTTON": "지금 삭제"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "{date}에 생성됨",
+ "LAST_ACTIVITY": "마지막 활동 {date}",
+ "DELETE_CONTACT_DESCRIPTION": "이 연락처를 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다",
+ "DELETE_CONTACT": "연락처 삭제",
+ "DELETE_DIALOG": {
+ "TITLE": "삭제 확인",
+ "DESCRIPTION": "이 연락처를 삭제하시겠습니까?",
+ "CONFIRM": "예, 삭제합니다",
+ "API": {
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "연락처를 삭제할 수 없습니다. 나중에 다시 시도해 주세요."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "아바타를 업로드할 수 없습니다. 나중에 다시 시도하십시오.",
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 업로드되었습니다"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "아바타를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "속성",
+ "HISTORY": "기록",
+ "NOTES": "노트",
+ "MERGE": "합치기"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "이 연락처와 관련된 이전 대화가 없습니다"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "속성 검색",
+ "UNUSED_ATTRIBUTES": "사용된 속성 {count}개 | 사용되지 않은 속성 {count}개",
+ "EMPTY_STATE": "이 계정에 사용할 수 있는 연락처 사용자 지정 속성이 없습니다. 설정에서 사용자 지정 속성을 만들 수 있습니다.",
+ "YES": "예",
+ "NO": "아니오",
+ "TRIGGER": {
+ "SELECT": "값 선택",
+ "INPUT": "값 입력"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "잘못된 숫자입니다",
+ "REQUIRED": "유효한 값이 필요합니다",
+ "INVALID_INPUT": "잘못된 입력입니다",
+ "INVALID_URL": "잘못된 URL입니다",
+ "INVALID_DATE": "잘못된 날짜입니다"
+ },
+ "NO_ATTRIBUTES": "속성을 찾을 수 없습니다",
+ "API": {
+ "SUCCESS_MESSAGE": "속성이 성공적으로 업데이트되었습니다",
+ "DELETE_SUCCESS_MESSAGE": "속성이 성공적으로 삭제되었습니다",
+ "UPDATE_ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도하십시오",
+ "DELETE_ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도하십시오"
+ }
+ },
+ "MERGE": {
+ "TITLE": "연락처 합치기",
+ "DESCRIPTION": "모든 속성과 대화를 포함하여 두 개의 프로필을 하나로 합칩니다. 충돌하는 경우 기본 연락처의 속성이 우선합니다.",
+ "PRIMARY": "기본 연락처",
+ "PRIMARY_HELP_LABEL": "저장 예정",
+ "PRIMARY_REQUIRED_ERROR": "진행하기 전에 합칠 연락처를 선택하십시오",
+ "PARENT": "합칠 대상",
+ "PARENT_HELP_LABEL": "삭제 예정",
+ "EMPTY_STATE": "연락처를 찾을 수 없습니다",
+ "PLACEHOLDER": "기본 연락처 검색",
+ "SEARCH_PLACEHOLDER": "연락처 검색",
+ "SEARCH_ERROR_MESSAGE": "연락처를 검색할 수 없습니다. 나중에 다시 시도하십시오.",
+ "SUCCESS_MESSAGE": "연락처가 성공적으로 합쳐졌습니다",
+ "ERROR_MESSAGE": "연락처를 합칠 수 없습니다. 다시 시도하십시오!",
+ "IS_SEARCHING": "검색중...",
+ "BUTTONS": {
+ "CANCEL": "취소",
+ "CONFIRM": "연락처 합치기"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "노트 추가하기",
+ "WROTE": "작성함",
+ "YOU": "나",
+ "SAVE": "노트 저장",
+ "ADD_NOTE": "연락처 노트 추가",
+ "EXPAND": "펼치기",
+ "COLLAPSE": "접기",
+ "NO_NOTES": "노트가 없습니다. 연락처 상세 페이지에서 노트를 추가할 수 있습니다.",
+ "EMPTY_STATE": "이 연락처와 관련된 노트가 없습니다. 위의 입력란에 입력하여 노트를 추가할 수 있습니다.",
+ "CONVERSATION_EMPTY_STATE": "아직 노트가 없습니다. 노트 추가 버튼을 사용하여 작성하십시오."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "이 계정에 연락처가 없습니다",
+ "SUBTITLE": "아래 버튼을 클릭하여 새 연락처를 추가하십시오",
+ "BUTTON_LABEL": "연락처 추가",
+ "SEARCH_EMPTY_STATE_TITLE": "검색과 일치하는 연락처가 없습니다",
+ "LIST_EMPTY_STATE_TITLE": "이 보기에 사용 가능한 연락처가 없습니다",
+ "ACTIVE_EMPTY_STATE_TITLE": "현재 활성 상태인 연락처가 없습니다"
+ },
+ "LOAD_MORE": "더 보기"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "라벨 배정",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "라벨이 성공적으로 배정되었습니다.",
+ "ASSIGN_LABELS_FAILED": "라벨 배정에 실패했습니다",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "선택한 연락처에 추가할 라벨을 선택하십시오.",
+ "NO_LABELS_FOUND": "사용 가능한 라벨이 없습니다.",
+ "SELECTED_COUNT": "{count}개 선택됨",
+ "CLEAR_SELECTION": "선택 해제",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "DELETE_CONTACTS": "삭제",
+ "DELETE_SUCCESS": "연락처가 성공적으로 삭제되었습니다.",
+ "DELETE_FAILED": "연락처 삭제에 실패했습니다.",
+ "DELETE_DIALOG": {
+ "TITLE": "선택한 연락처 삭제",
+ "SINGULAR_TITLE": "선택한 연락처 삭제",
+ "DESCRIPTION": "선택한 {count}개의 연락처가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
+ "SINGULAR_DESCRIPTION": "선택한 연락처가 영구적으로 삭제됩니다. 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM_MULTIPLE": "연락처 삭제",
+ "CONFIRM_SINGLE": "연락처 삭제"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "검색을 완료할 수 없습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "보기",
+ "SUCCESS_MESSAGE": "메시지가 성공적으로 전송되었습니다!",
+ "ERROR_MESSAGE": "대화를 생성하는 중 오류가 발생했습니다. 나중에 다시 시도하십시오.",
+ "NO_INBOX_ALERT": "이 연락처와 대화를 시작할 수 있는 받은 메시지함이 없습니다.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "받는 사람:",
+ "TAG_INPUT_PLACEHOLDER": "이름, 이메일 또는 전화번호로 연락처 검색",
+ "CONTACT_CREATING": "연락처 생성 중..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "경유:",
+ "BUTTON": "받은 메시지함 보기"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "제목:",
+ "SUBJECT_PLACEHOLDER": "이메일 제목을 입력하십시오",
+ "CC_LABEL": "참조:",
+ "CC_PLACEHOLDER": "이메일 주소로 연락처 검색",
+ "BCC_LABEL": "숨은 참조:",
+ "BCC_PLACEHOLDER": "이메일 주소로 연락처 검색",
+ "BCC_BUTTON": "숨은 참조"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "메시지를 여기에 작성해주세요..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "템플릿 선택",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "EMPTY_STATE": "템플릿을 찾을 수 없습니다",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp 템플릿: {templateName}",
+ "VARIABLES": "변수",
+ "BACK": "뒤로 가기",
+ "SEND_MESSAGE": "메시지 보내기"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "템플릿 선택",
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "EMPTY_STATE": "템플릿을 찾을 수 없습니다",
+ "TEMPLATE_PARSER": {
+ "BACK": "뒤로 가기",
+ "SEND_MESSAGE": "메시지 보내기"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "취소",
+ "SEND": "보내기 ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/contactFilters.json b/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
index 6757b4028..7cf1557f5 100644
--- a/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ko/contactFilters.json
@@ -1,20 +1,20 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filter Contacts",
- "SUBTITLE": "Add filters below and hit 'Submit' to filter contacts.",
- "EDIT_CUSTOM_SEGMENT": "Edit Segment",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your segment.",
+ "TITLE": "연락처 필터",
+ "SUBTITLE": "아래에 필터를 추가하고 '제출'을 눌러 연락처를 필터링하십시오.",
+ "EDIT_CUSTOM_SEGMENT": "세그먼트 편집",
+ "CUSTOM_VIEWS_SUBTITLE": "필터를 추가하거나 제거하고 세그먼트를 업데이트하십시오.",
"ADD_NEW_FILTER": "필터 추가하기",
- "CLEAR_ALL_FILTERS": "Clear All Filters",
+ "CLEAR_ALL_FILTERS": "모든 필터 지우기",
"FILTER_DELETE_ERROR": "적어도 하나 이상의 필터가 있어야 저장됩니다.",
- "SUBMIT_BUTTON_LABEL": "보내기",
- "UPDATE_BUTTON_LABEL": "Update Segment",
+ "SUBMIT_BUTTON_LABEL": "제출",
+ "UPDATE_BUTTON_LABEL": "세그먼트 업데이트",
"CANCEL_BUTTON_LABEL": "취소",
"CLEAR_BUTTON_LABEL": "필터 제거하기",
"EMPTY_VALUE_ERROR": "값이 필요합니다.",
- "SEGMENT_LABEL": "Segment Name",
- "SEGMENT_QUERY_LABEL": "Segment Query",
- "TOOLTIP_LABEL": "Filter contacts",
+ "SEGMENT_LABEL": "세그먼트 이름",
+ "SEGMENT_QUERY_LABEL": "세그먼트 쿼리",
+ "TOOLTIP_LABEL": "연락처 필터",
"QUERY_DROPDOWN_LABELS": {
"AND": "와/과",
"OR": "혹은"
@@ -27,14 +27,17 @@
"is_present": "현존하는",
"is_not_present": "현존하지 않은",
"is_greater_than": "보다 큰",
- "is_lesser_than": "Is lesser than",
- "days_before": "x 일 전에"
+ "is_lesser_than": "보다 작은",
+ "days_before": "x일 전에"
+ },
+ "ERRORS": {
+ "VALUE_REQUIRED": "값이 필요합니다."
},
"ATTRIBUTES": {
"NAME": "이름",
"EMAIL": "이메일",
"PHONE_NUMBER": "휴대폰 번호",
- "IDENTIFIER": "Identifier",
+ "IDENTIFIER": "식별자",
"CITY": "도시",
"COUNTRY": "국가",
"CUSTOM_ATTRIBUTE_LIST": "리스트",
@@ -42,9 +45,11 @@
"CUSTOM_ATTRIBUTE_NUMBER": "숫자",
"CUSTOM_ATTRIBUTE_LINK": "링크",
"CUSTOM_ATTRIBUTE_CHECKBOX": "체크박스",
- "CREATED_AT": "에 만들어짐",
- "LAST_ACTIVITY": "지난 활동",
- "REFERER_LINK": "Referrer link"
+ "CREATED_AT": "생성일",
+ "LAST_ACTIVITY": "최근 활동",
+ "REFERER_LINK": "리퍼러 링크",
+ "BLOCKED": "차단됨",
+ "LABELS": "라벨"
},
"GROUPS": {
"STANDARD_FILTERS": "기본 필터",
diff --git a/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json
new file mode 100644
index 000000000..2eafc7472
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio 템플릿",
+ "SUBTITLE": "보내려는 Twilio 템플릿을 선택하십시오",
+ "TEMPLATE_SELECTED_SUBTITLE": "템플릿 구성: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "NO_TEMPLATES_FOUND": "다음에 대한 템플릿을 찾을 수 없습니다",
+ "NO_CONTENT": "내용 없음",
+ "HEADER": "헤더",
+ "BODY": "본문",
+ "FOOTER": "푸터",
+ "BUTTONS": "버튼",
+ "CATEGORY": "카테고리",
+ "MEDIA_CONTENT": "미디어 콘텐츠",
+ "MEDIA_CONTENT_FALLBACK": "미디어 콘텐츠",
+ "NO_TEMPLATES_AVAILABLE": "사용 가능한 Twilio 템플릿이 없습니다. 새로고침을 클릭하여 Twilio에서 템플릿을 동기화하십시오.",
+ "REFRESH_BUTTON": "템플릿 새로고침",
+ "REFRESH_SUCCESS": "템플릿 새로고침이 시작되었습니다. 업데이트하는 데 몇 분 정도 걸릴 수 있습니다.",
+ "REFRESH_ERROR": "템플릿 새로고침에 실패했습니다. 다시 시도하십시오.",
+ "LABELS": {
+ "LANGUAGE": "언어",
+ "TEMPLATE_BODY": "템플릿 본문",
+ "CATEGORY": "카테고리"
+ },
+ "TYPES": {
+ "MEDIA": "미디어",
+ "QUICK_REPLY": "빠른 답장",
+ "CALL_TO_ACTION": "행동 유도",
+ "TEXT": "텍스트"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "변수",
+ "LANGUAGE": "언어",
+ "CATEGORY": "카테고리",
+ "VARIABLE_PLACEHOLDER": "{variable} 값을 입력하십시오",
+ "GO_BACK_LABEL": "뒤로 가기",
+ "SEND_MESSAGE_LABEL": "메시지 보내기",
+ "FORM_ERROR_MESSAGE": "보내기 전에 모든 변수를 입력하십시오",
+ "MEDIA_HEADER_LABEL": "{type} 헤더",
+ "MEDIA_URL_LABEL": "전체 미디어 URL을 입력하십시오",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "뒤로",
+ "SEND_MESSAGE_BUTTON": "메시지 보내기"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/conversation.json b/app/javascript/dashboard/i18n/locale/ko/conversation.json
index b1f2e0d80..3f61ebf6c 100644
--- a/app/javascript/dashboard/i18n/locale/ko/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ko/conversation.json
@@ -1,326 +1,490 @@
{
"CONVERSATION": {
"SELECT_A_CONVERSATION": "왼쪽 창에서 대화를 선택하십시오.",
- "CSAT_REPLY_MESSAGE": "대화를 평가해 주세요",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
+ "CSAT_REPLY_MESSAGE": "대화를 평가해 주십시오",
+ "404": "죄송합니다. 대화를 찾을 수 없습니다. 다시 시도해 주십시오.",
+ "SWITCH_VIEW_LAYOUT": "레이아웃 전환",
"DASHBOARD_APP_TAB_MESSAGES": "메시지",
- "UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "어라! 받은 메시지함에 고객의 메시지가 없는 것 같아요.",
+ "UNVERIFIED_SESSION": "이 사용자의 신원이 확인되지 않았습니다",
+ "NO_MESSAGE_1": "어라! 받은 메시지함에 고객의 메시지가 없는 것 같습니다.",
"NO_MESSAGE_2": " 페이지에 메시지를 보내기 위해서!",
- "NO_INBOX_1": "안녕! 아직 받은 메시지함을 하나도 추가하지 않은 것 같아요.",
+ "NO_INBOX_1": "안녕하세요! 아직 받은 메시지함을 하나도 추가하지 않은 것 같습니다.",
"NO_INBOX_2": " 시작하려면",
- "NO_INBOX_AGENT": "오! 어떤 받은 메시지함에도 속하지 않는 것 같습니다. 관리자에게 문의하십시오.",
+ "NO_INBOX_AGENT": "어떤 받은 메시지함에도 속하지 않는 것 같습니다. 관리자에게 문의하십시오.",
"SEARCH_MESSAGES": "대화에서 메시지 검색",
+ "VIEW_ORIGINAL": "원본 보기",
+ "VIEW_TRANSLATED": "번역 보기",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "명령 메뉴를 열려면",
+ "KEYBOARD_SHORTCUTS": "키보드 단축키를 보려면"
},
"SEARCH": {
"TITLE": "메시지 검색",
"RESULT_TITLE": "검색 결과",
"LOADING_MESSAGE": "데이터 처리 중...",
- "PLACEHOLDER": "검색할 텍스트를 입력하세요",
+ "PLACEHOLDER": "검색할 텍스트를 입력하십시오",
"NO_MATCHING_RESULTS": "검색 결과가 없습니다."
},
"UNREAD_MESSAGES": "안 읽은 메시지",
"UNREAD_MESSAGE": "안 읽은 메시지",
- "CLICK_HERE": "여기를 클릭하세요",
+ "CLICK_HERE": "여기를 클릭하십시오",
"LOADING_INBOXES": "받은 메시지함 불러오는 중",
"LOADING_CONVERSATIONS": "대화 불러오는 중",
- "CANNOT_REPLY": "당신은 답장을 할 수 없습니다",
+ "CANNOT_REPLY": "다음 사유로 답장할 수 없습니다",
"24_HOURS_WINDOW": "24시간 메시지 창 제한",
- "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",
+ "48_HOURS_WINDOW": "48시간 메시지 창 제한",
+ "API_HOURS_WINDOW": "이 대화에는 {hours}시간 이내에만 답장할 수 있습니다",
+ "NOT_ASSIGNED_TO_YOU": "이 대화는 귀하에게 배정되지 않았습니다. 이 대화를 자신에게 배정하시겠습니까?",
+ "ASSIGN_TO_ME": "나에게 배정",
+ "BOT_HANDOFF_MESSAGE": "현재 어시스턴트 또는 봇이 처리 중인 대화에 응답하고 있습니다.",
+ "BOT_HANDOFF_ACTION": "열림으로 표시하고 나에게 배정",
+ "BOT_HANDOFF_REOPEN_ACTION": "대화를 열림으로 표시",
+ "BOT_HANDOFF_SUCCESS": "대화가 귀하에게 인계되었습니다",
+ "BOT_HANDOFF_ERROR": "대화 인계에 실패했습니다. 다시 시도해 주십시오.",
+ "TWILIO_WHATSAPP_CAN_REPLY": "다음 사유로 인해 템플릿 메시지로만 이 대화에 답장할 수 있습니다",
"TWILIO_WHATSAPP_24_HOURS_WINDOW": "24시간 메시지 창 제한",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "이 Instagram 계정은 새 Instagram 채널 받은 메시지함으로 마이그레이션되었습니다. 모든 새 메시지는 해당 받은 메시지함에 표시됩니다. 이 대화에서는 더 이상 메시지를 보낼 수 없습니다.",
"REPLYING_TO": "회신할 대상:",
"REMOVE_SELECTION": "선택 항목 제거",
"DOWNLOAD": "다운로드",
"UNKNOWN_FILE_TYPE": "알 수 없는 파일",
- "SAVE_CONTACT": "Save",
- "UPLOADING_ATTACHMENTS": "첨부 업로드 중...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
- "NO_RESPONSE": "응답없음",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "SAVE_CONTACT": "연락처 저장",
+ "NO_CONTENT": "표시할 내용이 없습니다",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender}님이 연락처를 공유했습니다",
+ "LOCATION": "{sender}님이 위치를 공유했습니다",
+ "FILE": "{sender}님이 파일을 공유했습니다",
+ "MEETING": "{sender}님이 회의를 시작했습니다"
+ },
+ "UPLOADING_ATTACHMENTS": "첨부 파일 업로드 중...",
+ "REPLIED_TO_STORY": "스토리에 답장했습니다",
+ "UNSUPPORTED_MESSAGE": "이 메시지는 지원되지 않습니다. 확인하려면 원래 플랫폼에서 열어 주십시오.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "이 메시지는 지원되지 않습니다. Facebook Messenger 앱에서 이 메시지를 확인할 수 있습니다.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "이 메시지는 지원되지 않습니다. Instagram 앱에서 이 메시지를 확인할 수 있습니다.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "이 메시지는 지원되지 않습니다. TikTok 앱에서 이 메시지를 확인할 수 있습니다.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "메시지가 성공적으로 삭제되었습니다",
+ "FAIL_DELETE_MESSSAGE": "메시지를 삭제할 수 없습니다! 다시 시도해 주십시오.",
+ "NO_RESPONSE": "응답 없음",
+ "RESPONSE": "응답",
+ "RATING_TITLE": "평점",
+ "FEEDBACK_TITLE": "피드백",
+ "REPLY_MESSAGE_NOT_FOUND": "메시지를 사용할 수 없습니다",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "라벨 표시",
+ "HIDE_LABELS": "라벨 숨기기",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "수신 전화",
+ "OUTGOING_CALL": "발신 전화",
+ "CALL_IN_PROGRESS": "통화 중",
+ "NO_ANSWER": "응답 없음",
+ "NO_ANSWER_OUTBOUND_LABEL": "응답 없음",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "부재중 전화",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "통화 종료",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "아직 응답하지 않았습니다",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "상대방이 응답했습니다",
+ "YOU_ANSWERED": "귀하가 응답했습니다",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "통화 참가",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "해결함",
"REOPEN_ACTION": "다시 열기",
"OPEN_ACTION": "열기",
+ "MORE_ACTIONS": "추가 작업",
"OPEN": "더보기",
"CLOSE": "닫기",
"DETAILS": "자세히",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "다음까지 일시 중지",
+ "SNOOZED_UNTIL_TOMORROW": "내일까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_WEEK": "다음 주까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_REPLY": "다음 답장까지 일시 중지",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "초과",
+ "DUE": "마감 예정"
+ }
},
"RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
- "SNOOZE_UNTIL": "Snooze",
+ "MARK_PENDING": "보류로 표시",
+ "SNOOZE_UNTIL": "일시 중지",
"SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
+ "TITLE": "다음까지 일시 중지",
+ "NEXT_REPLY": "다음 답장",
"TOMORROW": "내일",
"NEXT_WEEK": "다음 주"
}
},
+ "MENTION": {
+ "AGENTS": "에이전트",
+ "TEAMS": "팀"
+ },
"CUSTOM_SNOOZE": {
- "TITLE": "Snooze until",
- "APPLY": "Snooze",
+ "TITLE": "다음까지 일시 중지",
+ "APPLY": "일시 중지",
"CANCEL": "취소"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "우선순위",
"OPTIONS": {
"NONE": "없음",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "URGENT": "긴급",
+ "HIGH": "높음",
+ "MEDIUM": "중간",
+ "LOW": "낮음"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "없음",
- "INPUT_PLACEHOLDER": "Select priority",
+ "INPUT_PLACEHOLDER": "우선순위 선택",
"NO_RESULTS": "검색 결과가 없습니다",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "대화 ID {conversationId}의 우선순위가 {priority}(으)로 변경되었습니다",
+ "FAILED": "우선순위를 변경할 수 없습니다. 다시 시도해 주십시오."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "대화 #{conversationId} 삭제",
+ "DESCRIPTION": "이 대화를 삭제하시겠습니까?",
+ "CONFIRM": "삭제"
+ },
"CARD_CONTEXT_MENU": {
- "PENDING": "Mark as pending",
- "RESOLVED": "Mark as resolved",
- "MARK_AS_UNREAD": "Mark as unread",
+ "PENDING": "보류로 표시",
+ "RESOLVED": "해결됨으로 표시",
+ "MARK_AS_UNREAD": "읽지 않음으로 표시",
+ "MARK_AS_READ": "읽음으로 표시",
"REOPEN": "대화 다시 열기",
"SNOOZE": {
- "TITLE": "Snooze",
- "NEXT_REPLY": "Until next reply",
+ "TITLE": "일시 중지",
+ "NEXT_REPLY": "다음 답장까지",
"TOMORROW": "내일까지",
"NEXT_WEEK": "다음 주까지"
},
- "ASSIGN_AGENT": "Assign agent",
- "ASSIGN_LABEL": "Assign label",
- "AGENTS_LOADING": "Loading agents...",
- "ASSIGN_TEAM": "Assign team",
+ "ASSIGN_AGENT": "에이전트 배정",
+ "ASSIGN_LABEL": "라벨 배정",
+ "AGENTS_LOADING": "에이전트 불러오는 중...",
+ "ASSIGN_TEAM": "팀 배정",
+ "DELETE": "대화 삭제",
+ "OPEN_IN_NEW_TAB": "새 탭에서 열기",
+ "COPY_LINK": "대화 링크 복사",
+ "COPY_LINK_SUCCESS": "대화 링크가 클립보드에 복사되었습니다",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
- "FAILED": "Couldn't assign agent. Please try again."
+ "SUCCESFUL": "대화 ID {conversationId}이(가) \"{agentName}\"에게 배정되었습니다",
+ "FAILED": "에이전트를 배정할 수 없습니다. 다시 시도해 주십시오."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
- "FAILED": "Couldn't assign label. Please try again."
+ "SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에 배정되었습니다",
+ "FAILED": "라벨을 배정할 수 없습니다. 다시 시도해 주십시오."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "라벨 #{labelName}이(가) 대화 ID {conversationId}에서 제거되었습니다",
+ "FAILED": "라벨을 제거할 수 없습니다. 다시 시도해 주십시오."
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "팀 \"{team}\"이(가) 대화 ID {conversationId}에 배정되었습니다",
+ "FAILED": "팀을 배정할 수 없습니다. 다시 시도해 주십시오."
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "줄바꿈을 하시려면 Shift + enter 클릭하십시오. '/'로 시작하여 미리 준비된 답변을 사용할 수 있습니다.",
- "PRIVATE_MSG_INPUT": "줄바꿈을 하시려면 Shift + enter 클릭하십시오. 에이전트만 볼 수 있습니다.",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "MESSAGE_SIGN_TOOLTIP": "메시지 서명",
+ "ENABLE_SIGN_TOOLTIP": "서명 활성화",
+ "DISABLE_SIGN_TOOLTIP": "서명 비활성화",
+ "MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. '/'로 시작하여 미리 준비된 답변을 사용할 수 있습니다.",
+ "PRIVATE_MSG_INPUT": "줄바꿈을 하시려면 Shift + Enter를 누르십시오. 에이전트만 볼 수 있습니다.",
+ "MESSAGING_RESTRICTED": "이 대화에 답장할 수 없습니다",
+ "MESSAGING_RESTRICTED_WHATSAPP": "24시간 메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
+ "MESSAGING_RESTRICTED_API": "메시지 창 제한으로 인해 템플릿 메시지로만 답장할 수 있습니다",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "메시지 서명이 설정되지 않았습니다. 프로필 설정에서 설정해 주십시오.",
+ "COPILOT_MSG_INPUT": "Copilot에 추가 프롬프트를 입력하거나 다른 질문을 하십시오... Enter를 눌러 후속 메시지를 보내십시오",
+ "CLICK_HERE": "업데이트하려면 여기를 클릭하십시오",
+ "WHATSAPP_TEMPLATES": "WhatsApp 템플릿"
},
"REPLYBOX": {
"REPLY": "답글",
"PRIVATE_NOTE": "개인 노트",
"SEND": "보내기",
"CREATE": "노트 추가",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "웹 편집기 보기",
+ "INSERT_READ_MORE": "더 읽기",
+ "DISMISS_REPLY": "답글 취소",
+ "REPLYING_TO": "답글 대상:",
"TIP_EMOJI_ICON": "이모티콘 보기",
"TIP_ATTACH_ICON": "파일 첨부",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "TIP_AUDIORECORDER_ICON": "오디오 녹음",
+ "TIP_AUDIORECORDER_PERMISSION": "오디오 접근 허용",
+ "TIP_AUDIORECORDER_ERROR": "오디오를 열 수 없습니다",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "여기에 드래그 앤 드롭하여 첨부하십시오",
+ "START_AUDIO_RECORDING": "오디오 녹음 시작",
+ "STOP_AUDIO_RECORDING": "오디오 녹음 중지",
+ "COPILOT_THINKING": "Copilot이 생각하고 있습니다",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Add bcc",
+ "TO": "받는 사람",
+ "ADD_BCC": "숨은 참조 추가",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "이메일 주소를 쉼표로 구분하여 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "이메일 주소를 쉼표로 구분하여 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
- "MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
+ "TITLE": "정의되지 않은 변수",
+ "MESSAGE": "메시지에 정의되지 않은 변수가 {undefinedVariablesCount}개 있습니다: {undefinedVariables}. 그래도 메시지를 보내시겠습니까?",
"CONFIRM": {
"YES": "보내기",
"CANCEL": "취소"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "인용된 이메일 스레드 포함",
+ "DISABLE_TOOLTIP": "인용된 이메일 스레드 포함하지 않음",
+ "REMOVE_PREVIEW": "인용된 이메일 스레드 제거",
+ "COLLAPSE": "미리보기 축소",
+ "EXPAND": "미리보기 확장"
}
},
- "VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있음",
- "CHANGE_STATUS": "대화 상태가 변경됨",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "대화 담당자가 변경됨",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "대화 담당자가 변경됨",
- "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",
+ "VISIBLE_TO_AGENTS": "개인 노트: 귀하와 귀하의 팀만 볼 수 있습니다",
+ "CHANGE_STATUS": "대화 상태가 변경되었습니다",
+ "CHANGE_STATUS_FAILED": "대화 상태 변경에 실패했습니다",
+ "CHANGE_AGENT": "대화 담당자가 변경되었습니다",
+ "CHANGE_AGENT_FAILED": "담당자 변경에 실패했습니다",
+ "ASSIGN_LABEL_SUCCESFUL": "라벨이 성공적으로 배정되었습니다",
+ "ASSIGN_LABEL_FAILED": "라벨 배정에 실패했습니다",
+ "CHANGE_TEAM": "대화 팀이 변경되었습니다",
+ "SUCCESS_DELETE_CONVERSATION": "대화가 성공적으로 삭제되었습니다",
+ "FAIL_DELETE_CONVERSATION": "대화를 삭제할 수 없습니다! 다시 시도해 주십시오.",
+ "FILE_SIZE_LIMIT": "파일이 {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB 첨부 제한을 초과합니다",
+ "FILE_TYPE_NOT_SUPPORTED": "이 대화에서 {fileName} 파일 형식은 지원되지 않습니다",
+ "MESSAGE_ERROR": "메시지를 보낼 수 없습니다. 나중에 다시 시도해 주십시오.",
"SENT_BY": "보낸 사람:",
"BOT": "봇",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "NATIVE_APP": "네이티브 앱",
+ "NATIVE_APP_ADVISORY": "이 메시지는 네이티브 앱에서 전송되었습니다. 메시지 창을 유지하려면 Chatwoot에서 답장하십시오.",
+ "SEND_FAILED": "메시지를 보낼 수 없습니다! 다시 시도해 주십시오.",
+ "TRY_AGAIN": "재시도",
"ASSIGNMENT": {
"SELECT_AGENT": "에이전트 선택",
"REMOVE": "제거",
- "ASSIGN": "할당하다"
+ "ASSIGN": "배정"
},
"CONTEXT_MENU": {
"COPY": "복사",
- "REPLY_TO": "Reply to this message",
+ "REPLY_TO": "이 메시지에 답장",
"DELETE": "삭제",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "미리 준비된 답변에 추가",
+ "TRANSLATE": "번역",
+ "COPY_PERMALINK": "메시지 링크 복사",
+ "LINK_COPIED": "메시지 URL이 클립보드에 복사되었습니다",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "이 메시지를 삭제하시겠습니까?",
+ "MESSAGE": "이 작업은 취소할 수 없습니다",
"DELETE": "삭제",
"CANCEL": "취소"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "연락처",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "수신 전화",
+ "OUTGOING_CALL": "발신 전화",
+ "CALL_IN_PROGRESS": "통화 중",
+ "NOT_ANSWERED_YET": "아직 응답하지 않았습니다",
+ "HANDLED_IN_ANOTHER_TAB": "다른 탭에서 처리 중입니다",
+ "REJECT_CALL": "거부",
+ "DISMISS_CALL": "닫기",
+ "JOIN_CALL": "통화 참가",
+ "END_CALL": "통화 종료",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
"TITLE": "대화 내용 보내기",
- "DESC": "지정된 이메일 주소로 대화 내용 사본 보내기",
- "SUBMIT": "보내기",
+ "DESC": "지정된 이메일 주소로 대화 내용 사본을 보냅니다",
+ "SUBMIT": "제출",
"CANCEL": "취소",
- "SEND_EMAIL_SUCCESS": "대화 내용이 성공적으로 전송됨",
- "SEND_EMAIL_ERROR": "오류가 발생했습니다. 다시 시도하십시오.",
+ "SEND_EMAIL_SUCCESS": "대화 내용이 성공적으로 전송되었습니다",
+ "SEND_EMAIL_ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "현재 플랜에서는 이메일 대화 기록을 사용할 수 없습니다. 이 기능을 사용하려면 업그레이드하십시오.",
"FORM": {
- "SEND_TO_CONTACT": "고객에게 대화기록 보내기",
- "SEND_TO_AGENT": "할당된 에이전트로 스크립트 보내기",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "다른 이메일 주소로 대화기록 보내기",
+ "SEND_TO_CONTACT": "고객에게 대화 기록 보내기",
+ "SEND_TO_AGENT": "배정된 에이전트에게 대화 기록 보내기",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "다른 이메일 주소로 대화 기록 보내기",
"EMAIL": {
- "PLACEHOLDER": "이메일 주소 입력",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오."
+ "PLACEHOLDER": "이메일 주소를 입력하십시오",
+ "ERROR": "올바른 이메일 주소를 입력하십시오"
}
}
},
"ONBOARDING": {
- "TITLE": "안녕하세요 👋, %{installationName}에 오신 것을 환영합니다!",
- "DESCRIPTION": "가입해주셔서 감사합니다. 저희 %{installationName}의 모든 기능을 최대로 누리기 위해 아래 몇 가지를 해주시겠어요?",
+ "TITLE": "안녕하세요 👋, {installationName}에 오신 것을 환영합니다!",
+ "DESCRIPTION": "가입해 주셔서 감사합니다. {installationName}을(를) 최대한 활용하실 수 있도록 도와드리겠습니다. {installationName}에서 경험을 향상시키기 위해 할 수 있는 몇 가지를 소개합니다.",
+ "GREETING_MORNING": "👋 좋은 아침입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
+ "GREETING_AFTERNOON": "👋 좋은 오후입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
+ "GREETING_EVENING": "👋 좋은 저녁입니다, {name}님. {installationName}에 오신 것을 환영합니다.",
"READ_LATEST_UPDATES": "최근 업데이트 내용 보기",
"ALL_CONVERSATION": {
"TITLE": "모든 대화를 한 곳에서",
- "DESCRIPTION": "고객들과의 모든 대화를 하나의 대시보드에서 확인하세요. 대화들을 채널별, 라벨별, 상태별로 필터링 할 수 있습니다."
+ "DESCRIPTION": "고객들과의 모든 대화를 하나의 대시보드에서 확인하십시오. 대화를 채널별, 라벨별, 상태별로 필터링할 수 있습니다.",
+ "NEW_LINK": "클릭하여 받은 메시지함을 생성하십시오"
},
"TEAM_MEMBERS": {
- "TITLE": "팀 구성원들을 초대하세요.",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "클릭하여 팀원을 초대하세요."
- },
- "INBOXES": {
- "TITLE": "받은 메시지함에 연결하기",
- "DESCRIPTION": "고객들과 대화할 수 있는 여러 채널들을 연결하세요. 웹사이트 라이브챗이 될 수도 있고, 페이스북 또는 트위터 페이지, 심지어는 왓츠앱 번호가 될 수도 있습니다.",
- "NEW_LINK": "클릭하여 받은 메시지함을 생성하세요."
+ "TITLE": "팀 구성원을 초대하십시오",
+ "DESCRIPTION": "고객과 대화할 준비가 되셨다면, 팀원들을 초대하여 도움을 받으십시오. 에이전트 목록에 팀원의 이메일 주소를 추가하여 초대할 수 있습니다.",
+ "NEW_LINK": "클릭하여 팀원을 초대하십시오"
},
"LABELS": {
- "TITLE": "대화들을 라벨로 정리하기",
- "DESCRIPTION": "라벨들은 대화들을 분류할 수 있는 쉬운 방법을 제공합니다. 예를 들면 #support-enquiry, #billing-question 등과 같은 라벨을 생성해서 나중에 대화할 때 사용할 수 있습니다.",
- "NEW_LINK": "클릭하여 태그를 생성하세요."
+ "TITLE": "대화를 라벨로 정리하기",
+ "DESCRIPTION": "라벨은 대화를 분류할 수 있는 쉬운 방법을 제공합니다. 예를 들어 #support-enquiry, #billing-question 등과 같은 라벨을 생성하여 나중에 대화에서 사용할 수 있습니다.",
+ "NEW_LINK": "클릭하여 태그를 생성하십시오"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "미리 준비된 답변 생성",
+ "DESCRIPTION": "미리 작성된 빠른 답변 템플릿을 통해 대화에 신속하게 응답할 수 있습니다. 에이전트가 '/' 문자와 단축 코드를 입력하여 답변을 삽입할 수 있습니다.",
+ "NEW_LINK": "클릭하여 미리 준비된 답변을 생성하십시오"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "할당된 에이전트",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "할당된 팀",
+ "ASSIGNEE_LABEL": "배정된 에이전트",
+ "SELF_ASSIGN": "나에게 배정",
+ "TEAM_LABEL": "배정된 팀",
"SELECT": {
"PLACEHOLDER": "없음"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
+ "CONTACT_DETAILS": "연락처 세부 정보",
+ "CONVERSATION_ACTIONS": "대화 작업",
"CONVERSATION_LABELS": "대화 라벨",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
+ "CONVERSATION_INFO": "대화 정보",
+ "CONTACT_NOTES": "연락처 메모",
+ "CONTACT_ATTRIBUTES": "연락처 속성",
"PREVIOUS_CONVERSATION": "이전 대화",
- "MACROS": "Macros"
+ "MACROS": "매크로",
+ "LINEAR_ISSUES": "연결된 Linear 이슈",
+ "SHOPIFY_ORDERS": "Shopify 주문",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "미디어",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "모두 보기",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "주문 #{id}",
+ "ERROR": "주문 불러오기 오류",
+ "NO_SHOPIFY_ORDERS": "주문을 찾을 수 없습니다",
+ "FINANCIAL_STATUS": {
+ "PENDING": "대기 중",
+ "AUTHORIZED": "승인됨",
+ "PARTIALLY_PAID": "일부 결제됨",
+ "PAID": "결제 완료",
+ "PARTIALLY_REFUNDED": "일부 환불됨",
+ "REFUNDED": "환불됨",
+ "VOIDED": "무효화됨"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "이행 완료",
+ "PARTIALLY_FULFILLED": "일부 이행됨",
+ "UNFULFILLED": "미이행"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
+ "ADD_BUTTON_TEXT": "속성 생성",
+ "NO_RECORDS_FOUND": "속성을 찾을 수 없습니다",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 업데이트되었습니다",
+ "ERROR": "속성을 업데이트할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"ADD": {
- "TITLE": "추가하기",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "추가",
+ "SUCCESS": "속성이 성공적으로 추가되었습니다",
+ "ERROR": "속성을 추가할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "속성이 성공적으로 삭제되었습니다",
+ "ERROR": "속성을 삭제할 수 없습니다. 나중에 다시 시도해 주십시오."
},
"ATTRIBUTE_SELECT": {
- "TITLE": "속성 추가하기",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "속성 추가",
+ "PLACEHOLDER": "속성 검색",
+ "NO_RESULT": "속성을 찾을 수 없습니다"
}
},
"EMAIL_HEADER": {
- "FROM": "From",
- "TO": "~~에게",
- "BCC": "Bcc",
- "CC": "Cc",
- "SUBJECT": "Subject"
+ "FROM": "보낸 사람",
+ "TO": "받는 사람",
+ "BCC": "숨은 참조",
+ "CC": "참조",
+ "SUBJECT": "제목",
+ "EXPAND": "이메일 펼치기"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
+ "SIDEBAR_MENU_TITLE": "참여 중",
+ "SIDEBAR_TITLE": "대화 참여자",
"NO_RECORDS_FOUND": "검색 결과가 없습니다",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
- "NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "ADD_PARTICIPANTS": "참여자 선택",
+ "REMANING_PARTICIPANTS_TEXT": "+{count}명",
+ "REMANING_PARTICIPANT_TEXT": "+{count}명",
+ "TOTAL_PARTICIPANTS_TEXT": "{count}명이 참여하고 있습니다.",
+ "TOTAL_PARTICIPANT_TEXT": "{count}명이 참여하고 있습니다.",
+ "NO_PARTICIPANTS_TEXT": "참여 중인 사람이 없습니다.",
+ "WATCH_CONVERSATION": "대화 참여",
+ "YOU_ARE_WATCHING": "참여 중입니다",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "업데이트할 수 없습니다. 다시 시도해 주십시오!",
+ "SUCCESS_MESSAGE": "참여자가 업데이트되었습니다!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
- "DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "TITLE": "번역된 내용 보기",
+ "DESC": "각 언어별로 번역된 내용을 확인할 수 있습니다.",
+ "ORIGINAL_CONTENT": "원본 내용",
+ "TRANSLATED_CONTENT": "번역된 내용",
+ "NO_TRANSLATIONS_AVAILABLE": "이 내용에 대한 번역이 없습니다"
+ },
+ "TYPING": {
+ "ONE": "{user}님이 입력하고 있습니다",
+ "TWO": "{user}님과 {secondUser}님이 입력하고 있습니다",
+ "MULTIPLE": "{user}님 외 {count}명이 입력하고 있습니다"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "다음 프롬프트를 시도해 보십시오"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "첨부 파일을 다운로드할 수 없습니다. 다시 시도해 주십시오."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json b/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
index 9e16dc2b3..9b13c89fd 100644
--- a/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/csatMgmt.json
@@ -1,13 +1,13 @@
{
"CSAT": {
- "TITLE": "Rate your conversation",
- "PLACEHOLDER": "Tell us more...",
+ "TITLE": "대화를 평가해 주십시오",
+ "PLACEHOLDER": "더 자세히 알려주십시오...",
"RATINGS": {
- "POOR": "😞 Poor",
- "FAIR": "😑 Fair",
- "AVERAGE": "😐 Average",
- "GOOD": "😀 Good",
- "EXCELLENT": "😍 Excellent"
+ "POOR": "😞 매우 나쁨",
+ "FAIR": "😑 나쁨",
+ "AVERAGE": "😐 보통",
+ "GOOD": "😀 좋음",
+ "EXCELLENT": "😍 매우 좋음"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/customRole.json b/app/javascript/dashboard/i18n/locale/ko/customRole.json
new file mode 100644
index 000000000..87ff56ffc
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "사용자 지정 역할",
+ "LEARN_MORE": "사용자 지정 역할에 대해 더 알아보기",
+ "DESCRIPTION": "사용자 지정 역할은 계정 소유자 또는 관리자가 만든 역할입니다. 이 역할은 에이전트에게 할당하여 계정 내 접근 권한 및 권한을 정의할 수 있습니다. 사용자 지정 역할은 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 생성할 수 있습니다.",
+ "COUNT": "{n}개의 사용자 지정 역할 | {n}개의 사용자 지정 역할",
+ "HEADER_BTN_TXT": "사용자 지정 역할 추가",
+ "LOADING": "사용자 지정 역할을 불러오는 중...",
+ "SEARCH_PLACEHOLDER": "사용자 지정 역할 검색...",
+ "NO_RESULTS": "검색과 일치하는 사용자 지정 역할이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다.",
+ "PAYWALL": {
+ "TITLE": "사용자 지정 역할을 만들려면 업그레이드하십시오",
+ "AVAILABLE_ON": "사용자 지정 역할 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "팀 관리, 자동화, 사용자 지정 속성 등 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "사용자 지정 역할 기능은 유료 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "감사 로그, 에이전트 용량 등 고급 기능에 접근하려면 유료 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드에 대해 관리자에게 문의하십시오."
+ },
+ "LIST": {
+ "404": "이 계정에서 사용 가능한 사용자 지정 역할이 없습니다.",
+ "TITLE": "사용자 지정 역할 관리",
+ "DESC": "사용자 지정 역할은 계정 소유자 또는 관리자가 만든 역할입니다. 이 역할은 에이전트에게 할당하여 계정 내 접근 권한 및 권한을 정의할 수 있습니다. 사용자 지정 역할은 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 생성할 수 있습니다.",
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "DESCRIPTION": "설명",
+ "PERMISSIONS": "권한",
+ "ACTIONS": "액션"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "모든 대화 관리",
+ "CONVERSATION_UNASSIGNED_MANAGE": "배정되지 않은 대화 및 자신에게 배정된 대화 관리",
+ "CONVERSATION_PARTICIPATING_MANAGE": "참여 중인 대화 및 자신에게 배정된 대화 관리",
+ "CONTACT_MANAGE": "연락처 관리",
+ "REPORT_MANAGE": "보고서 관리",
+ "KNOWLEDGE_BASE_MANAGE": "지식 기반 관리"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "이름",
+ "PLACEHOLDER": "이름을 입력하십시오.",
+ "ERROR": "이름이 필요합니다."
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "설명을 입력하십시오.",
+ "ERROR": "설명이 필요합니다."
+ },
+ "PERMISSIONS": {
+ "LABEL": "권한",
+ "ERROR": "권한이 필요합니다."
+ },
+ "CANCEL_BUTTON_TEXT": "취소",
+ "API": {
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주십시오."
+ }
+ },
+ "ADD": {
+ "TITLE": "사용자 지정 역할 추가",
+ "DESC": "사용자 지정 역할을 사용하면 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 역할을 생성할 수 있습니다.",
+ "SUBMIT": "제출",
+ "API": {
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 추가되었습니다."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "수정",
+ "TITLE": "사용자 지정 역할 편집",
+ "DESC": "사용자 지정 역할을 사용하면 조직의 요구 사항에 맞는 특정 권한 및 접근 수준으로 역할을 생성할 수 있습니다.",
+ "SUBMIT": "업데이트",
+ "API": {
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 업데이트되었습니다."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "삭제",
+ "API": {
+ "SUCCESS_MESSAGE": "사용자 지정 역할이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주십시오."
+ },
+ "CONFIRM": {
+ "TITLE": "삭제 확인",
+ "MESSAGE": "삭제하시겠습니까? ",
+ "YES": "예, 삭제합니다 ",
+ "NO": "아니요, 유지합니다 "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/datePicker.json b/app/javascript/dashboard/i18n/locale/ko/datePicker.json
new file mode 100644
index 000000000..88b64f809
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "이전 기간",
+ "NEXT_PERIOD": "다음 기간",
+ "WEEK_NUMBER": "{weekNumber}주차",
+ "APPLY_BUTTON": "적용",
+ "CLEAR_BUTTON": "초기화",
+ "DATE_RANGE_INPUT": {
+ "START": "시작 날짜",
+ "END": "종료 날짜"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "날짜 범위",
+ "LAST_7_DAYS": "지난 7일",
+ "LAST_30_DAYS": "지난 30일",
+ "LAST_3_MONTHS": "지난 3개월",
+ "LAST_6_MONTHS": "지난 6개월",
+ "LAST_YEAR": "지난 1년",
+ "THIS_WEEK": "이번 주",
+ "MONTH_TO_DATE": "이번 달",
+ "CUSTOM_RANGE": "사용자 지정 날짜 범위"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/emoji.json b/app/javascript/dashboard/i18n/locale/ko/emoji.json
index 252031c46..194929887 100644
--- a/app/javascript/dashboard/i18n/locale/ko/emoji.json
+++ b/app/javascript/dashboard/i18n/locale/ko/emoji.json
@@ -1,7 +1,7 @@
{
"EMOJI": {
- "PLACEHOLDER": "Search emojis",
- "NOT_FOUND": "No emoji match your search",
+ "PLACEHOLDER": "이모지 검색",
+ "NOT_FOUND": "검색과 일치하는 이모지가 없습니다",
"REMOVE": "제거"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/general.json b/app/javascript/dashboard/i18n/locale/ko/general.json
new file mode 100644
index 000000000..795526fb0
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "{totalCount}개 항목 중 {firstIndex}-{lastIndex} 표시",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "검색",
+ "EMPTY_STATE": "검색 결과가 없습니다"
+ },
+ "CLOSE": "닫기",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "이 기능은 베타 버전이며 개선하면서 변경될 수 있습니다.",
+ "ACCEPT": "수락",
+ "DISCARD": "취소",
+ "PREFERRED": "선호"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "예",
+ "NO": "아니오"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
index e0d49ca0a..aff03a370 100644
--- a/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/generalSettings.json
@@ -1,13 +1,39 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "대화 제한을 초과했습니다. Hacker 플랜은 500개의 대화만 허용합니다.",
+ "INBOXES": "받은 메시지함 제한을 초과했습니다. Hacker 플랜은 웹사이트 실시간 채팅만 지원합니다. 이메일, WhatsApp 등의 추가 받은 메시지함은 유료 플랜이 필요합니다.",
+ "AGENTS": "에이전트 제한을 초과했습니다. 현재 플랜은 {allowedAgents}명의 에이전트만 허용합니다.",
+ "NON_ADMIN": "플랜을 업그레이드하고 모든 기능을 계속 사용하려면 관리자에게 문의하십시오."
+ },
"TITLE": "계정 설정",
"SUBMIT": "설정 업데이트",
"BACK": "뒤로",
- "DISMISS": "Dismiss",
+ "DISMISS": "닫기",
"UPDATE": {
"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": {
@@ -15,8 +41,36 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Account ID",
- "NOTE": "This ID is required if you are building an API based integration"
+ "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": "계정 이름",
@@ -24,7 +78,7 @@
"ERROR": "올바른 계정 이름을 입력하십시오."
},
"LANGUAGE": {
- "LABEL": "Site language",
+ "LABEL": "사이트 언어",
"PLACEHOLDER": "당신의 계정 이름",
"ERROR": ""
},
@@ -38,39 +92,62 @@
"PLACEHOLDER": "회사 지원 이메일",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "미응답 대화 제외",
+ "HELP": "활성화하면 시스템이 아직 에이전트 응답을 기다리고 있는 대화의 해결을 건너뜁니다."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "음성 메시지 변환",
+ "NOTE": "대화에서 음성 메시지를 자동으로 텍스트로 변환합니다. 음성 메시지가 전송되거나 수신될 때마다 텍스트 변환본을 생성하여 메시지와 함께 표시합니다.",
+ "API": {
+ "SUCCESS": "음성 변환 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "음성 변환 설정을 업데이트하지 못했습니다"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "활동이 없는 경우 티켓이 자동으로 해결되는 일 수",
+ "LABEL": "해결을 위한 비활성 기간",
+ "HELP": "활동이 없을 경우 대화를 자동 해결하는 기간",
"PLACEHOLDER": "30",
- "ERROR": "Please enter a valid auto resolve duration (minimum 1 day and maximum 999 days)"
+ "ERROR": "자동 해결 기간은 10분에서 999일 사이여야 합니다",
+ "API": {
+ "SUCCESS": "자동 해결 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "자동 해결 설정을 업데이트하지 못했습니다"
+ },
+ "UPDATE_BUTTON": "업데이트",
+ "MESSAGE_LABEL": "사용자 지정 해결 메시지",
+ "MESSAGE_PLACEHOLDER": "15일간 비활성으로 인해 시스템이 대화를 해결됨으로 표시했습니다",
+ "MESSAGE_HELP": "비활성으로 인해 시스템이 자동으로 대화를 해결할 때 고객에게 전송되는 메시지입니다."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "계정에 대해 이메일을 통한 대화 연속성이 활성화되었습니다.",
- "CUSTOM_EMAIL_DOMAIN_ENABLED": "지금 사용자 지정 도메인에서 이메일을 받을 수 있다."
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "지금 사용자 지정 도메인에서 이메일을 받을 수 있습니다."
}
},
- "UPDATE_CHATWOOT": "Chatwoot에 대한 %{latestChatwootVersion} 업데이트를 사용할 수 있습니다. 인스턴스를 업데이트하십시오.",
- "LEARN_MORE": "Learn more",
- "PAYMENT_PENDING": "Your payment is pending. Please update your payment information 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"
+ "UPDATE_CHATWOOT": "Chatwoot에 대한 {latestChatwootVersion} 업데이트를 사용할 수 있습니다. 인스턴스를 업데이트하십시오.",
+ "LEARN_MORE": "자세히 알아보기",
+ "PAYMENT_PENDING": "결제가 보류 중입니다. Chatwoot을 계속 사용하려면 결제 정보를 업데이트하십시오",
+ "UPGRADE": "Chatwoot을 계속 사용하려면 업그레이드하십시오",
+ "LIMITS_UPGRADE": "계정이 사용 제한을 초과했습니다. Chatwoot을 계속 사용하려면 플랜을 업그레이드하십시오",
+ "OPEN_BILLING": "청구서 열기"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "선택하려면 Enter 키를 누르십시오.",
"ENTER_TO_REMOVE": "제거하려면 Enter 키를 누르십시오.",
+ "NO_OPTIONS": "목록이 비어 있습니다",
"SELECT_ONE": "하나 선택",
- "SELECT": "Select"
+ "SELECT": "선택"
}
},
"NOTIFICATIONS_PAGE": {
"HEADER": "알림",
"MARK_ALL_DONE": "모두 완료 표시",
- "DELETE_TITLE": "deleted",
+ "DELETE_TITLE": "삭제됨",
"UNREAD_NOTIFICATION": {
- "TITLE": "Unread Notifications",
- "ALL_NOTIFICATIONS": "View all notifications",
- "LOADING_UNREAD_MESSAGE": "Loading unread notifications...",
- "EMPTY_MESSAGE": "You have no unread notifications"
+ "TITLE": "읽지 않은 알림",
+ "ALL_NOTIFICATIONS": "모든 알림 보기",
+ "LOADING_UNREAD_MESSAGE": "읽지 않은 알림을 불러오는 중...",
+ "EMPTY_MESSAGE": "읽지 않은 알림이 없습니다"
},
"LIST": {
"LOADING_MESSAGE": "알림을 불러오는 중...",
@@ -87,82 +164,89 @@
"conversation_assignment": "대화 할당됨",
"assigned_conversation_new_message": "새 메시지",
"participating_conversation_new_message": "새 메시지",
- "conversation_mention": "멘션"
+ "conversation_mention": "멘션",
+ "sla_missed_first_response": "SLA 위반",
+ "sla_missed_next_response": "SLA 위반",
+ "sla_missed_resolution": "SLA 위반"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "오프라인"
+ "OFFLINE": "오프라인",
+ "RECONNECTING": "재연결 중...",
+ "RECONNECT_SUCCESS": "재연결됨"
},
"BUTTON": {
- "REFRESH": "Refresh"
+ "REFRESH": "새로고침"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Search or jump to",
+ "SEARCH_PLACEHOLDER": "검색 또는 바로가기",
+ "SNOOZE_PLACEHOLDER": "시간을 입력하세요. 예: 내일, 2시간 후, 다음 금요일, 1월 15일...",
"SECTIONS": {
- "GENERAL": "General",
+ "GENERAL": "일반",
"REPORTS": "보고서",
- "CONVERSATION": "Conversation",
- "CHANGE_ASSIGNEE": "Change Assignee",
- "CHANGE_PRIORITY": "Change Priority",
- "CHANGE_TEAM": "Change Team",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "ADD_LABEL": "Add label to the conversation",
- "REMOVE_LABEL": "Remove label from the conversation",
+ "CONVERSATION": "대화",
+ "BULK_ACTIONS": "일괄 작업",
+ "CHANGE_ASSIGNEE": "담당자 변경",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "CHANGE_TEAM": "팀 변경",
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "ADD_LABEL": "대화에 라벨 추가",
+ "REMOVE_LABEL": "대화에서 라벨 제거",
"SETTINGS": "설정",
- "AI_ASSIST": "AI Assist",
- "APPEARANCE": "Appearance",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "AI_ASSIST": "AI 어시스트",
+ "APPEARANCE": "외관",
+ "SNOOZE_NOTIFICATION": "알림 일시 중지"
},
"COMMANDS": {
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "GO_TO_REPORTS_OVERVIEW": "Go to Reports Overview",
- "GO_TO_CONVERSATION_REPORTS": "Go to Conversation Reports",
- "GO_TO_AGENT_REPORTS": "Go to Agent Reports",
- "GO_TO_LABEL_REPORTS": "Go to Label Reports",
- "GO_TO_INBOX_REPORTS": "Go to Inbox Reports",
- "GO_TO_TEAM_REPORTS": "Go to Team Reports",
- "GO_TO_SETTINGS_AGENTS": "Go to Agent Settings",
- "GO_TO_SETTINGS_TEAMS": "Go to Team Settings",
- "GO_TO_SETTINGS_INBOXES": "Go to Inbox Settings",
- "GO_TO_SETTINGS_LABELS": "Go to Label Settings",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Go to Canned Response Settings",
- "GO_TO_SETTINGS_APPLICATIONS": "Go to Application Settings",
- "GO_TO_SETTINGS_ACCOUNT": "Go to Account Settings",
- "GO_TO_SETTINGS_PROFILE": "Go to Profile Settings",
- "GO_TO_NOTIFICATIONS": "Go to Notifications",
- "ADD_LABELS_TO_CONVERSATION": "Add label to the conversation",
- "ASSIGN_AN_AGENT": "Assign an agent",
- "AI_ASSIST": "AI Assist",
- "ASSIGN_PRIORITY": "Assign priority",
- "ASSIGN_A_TEAM": "Assign a team",
- "MUTE_CONVERSATION": "Mute conversation",
- "UNMUTE_CONVERSATION": "Unmute conversation",
- "REMOVE_LABEL_FROM_CONVERSATION": "Remove label from the conversation",
- "REOPEN_CONVERSATION": "Reopen conversation",
- "RESOLVE_CONVERSATION": "Resolve conversation",
- "SEND_TRANSCRIPT": "Send an email transcript",
- "SNOOZE_CONVERSATION": "Snooze Conversation",
- "UNTIL_NEXT_REPLY": "Until next reply",
- "UNTIL_NEXT_WEEK": "Until next week",
- "UNTIL_TOMORROW": "Until tomorrow",
- "UNTIL_NEXT_MONTH": "Until next month",
- "AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
- "CHANGE_APPEARANCE": "Change Appearance",
- "LIGHT_MODE": "Light",
- "DARK_MODE": "Dark",
- "SYSTEM_MODE": "System",
- "SNOOZE_NOTIFICATION": "Snooze Notification"
+ "GO_TO_CONVERSATION_DASHBOARD": "대화 대시보드로 이동",
+ "GO_TO_CONTACTS_DASHBOARD": "연락처 대시보드로 이동",
+ "GO_TO_REPORTS_OVERVIEW": "보고서 개요로 이동",
+ "GO_TO_CONVERSATION_REPORTS": "대화 보고서로 이동",
+ "GO_TO_AGENT_REPORTS": "에이전트 보고서로 이동",
+ "GO_TO_LABEL_REPORTS": "라벨 보고서로 이동",
+ "GO_TO_INBOX_REPORTS": "받은 메시지함 보고서로 이동",
+ "GO_TO_TEAM_REPORTS": "팀 보고서로 이동",
+ "GO_TO_SETTINGS_AGENTS": "에이전트 설정으로 이동",
+ "GO_TO_SETTINGS_TEAMS": "팀 설정으로 이동",
+ "GO_TO_SETTINGS_INBOXES": "받은 메시지함 설정으로 이동",
+ "GO_TO_SETTINGS_LABELS": "라벨 설정으로 이동",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "미리 준비된 응답 설정으로 이동",
+ "GO_TO_SETTINGS_APPLICATIONS": "애플리케이션 설정으로 이동",
+ "GO_TO_SETTINGS_ACCOUNT": "계정 설정으로 이동",
+ "GO_TO_SETTINGS_PROFILE": "프로필 설정으로 이동",
+ "GO_TO_NOTIFICATIONS": "알림으로 이동",
+ "ADD_LABELS_TO_CONVERSATION": "대화에 라벨 추가",
+ "ASSIGN_AN_AGENT": "에이전트 배정",
+ "AI_ASSIST": "AI 어시스트",
+ "ASSIGN_PRIORITY": "우선순위 배정",
+ "ASSIGN_A_TEAM": "팀 배정",
+ "MUTE_CONVERSATION": "대화 음소거",
+ "UNMUTE_CONVERSATION": "대화 음소거 해제",
+ "REMOVE_LABEL_FROM_CONVERSATION": "대화에서 라벨 제거",
+ "REOPEN_CONVERSATION": "대화 다시 열기",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "SEND_TRANSCRIPT": "이메일 대화록 전송",
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "UNTIL_NEXT_REPLY": "다음 답장까지",
+ "UNTIL_NEXT_WEEK": "다음 주까지",
+ "UNTIL_TOMORROW": "내일까지",
+ "UNTIL_NEXT_MONTH": "다음 달까지",
+ "AN_HOUR_FROM_NOW": "1시간 후까지",
+ "UNTIL_CUSTOM_TIME": "사용자 지정...",
+ "CHANGE_APPEARANCE": "외관 변경",
+ "LIGHT_MODE": "라이트",
+ "DARK_MODE": "다크",
+ "SYSTEM_MODE": "시스템",
+ "SNOOZE_NOTIFICATION": "알림 일시 중지"
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Loading Dashboard App..."
+ "LOADING_MESSAGE": "대시보드 앱을 불러오는 중..."
},
"COMMON": {
- "OR": "Or",
+ "OR": "또는",
"CLICK_HERE": "여기를 클릭하세요"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
index 092aff90d..3e2499f48 100644
--- a/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ko/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "도움말 센터",
+ "NEW_PAGE": {
+ "DESCRIPTION": "고객을 위한 셀프 서비스 도움말 센터 포털을 생성하십시오. 고객이 대기 없이 빠르게 답변을 찾을 수 있도록 도와줍니다. 문의를 간소화하고 에이전트 효율성을 높이며 고객 지원을 향상시킵니다.",
+ "CREATE_PORTAL_BUTTON": "포털 만들기"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
+ "FILTER": "필터",
+ "SORT": "정렬",
+ "LOCALE": "로케일",
"SETTINGS_BUTTON": "설정",
- "NEW_BUTTON": "New Article",
+ "NEW_BUTTON": "새 게시물",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "게시됨",
+ "DRAFT": "임시 저장",
+ "ARCHIVED": "보관됨"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "모든 게시물",
+ "MINE": "내 게시물",
+ "DRAFT": "임시 저장 게시물",
+ "ARCHIVED": "보관된 게시물"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "로케일 선택",
+ "PLACEHOLDER": "로케일 선택",
+ "NO_RESULT": "로케일을 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "로케일 검색"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "모든 게시물",
+ "PUBLISH_BUTTON": "게시",
+ "MOVE_TO_ARCHIVE_BUTTON": "보관함으로 이동",
+ "PREVIEW": "미리보기",
+ "ADD_TRANSLATION": "번역 추가",
+ "OPEN_SIDEBAR": "사이드바 열기",
+ "CLOSE_SIDEBAR": "사이드바 닫기",
+ "SAVING": "저장 중...",
+ "SAVED": "저장됨"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
"TITLE": "이미지 업로드",
"UPLOADING": "업로드 중...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "이미지가 성공적으로 업로드되었습니다",
+ "ERROR": "이미지 업로드 중 오류가 발생했습니다",
+ "UN_AUTHORIZED_ERROR": "이미지를 업로드할 권한이 없습니다",
+ "ERROR_FILE_SIZE": "이미지 크기는 {size}MB 미만이어야 합니다",
+ "ERROR_FILE_FORMAT": "이미지 형식은 jpg, jpeg 또는 png여야 합니다",
+ "ERROR_FILE_DIMENSIONS": "이미지 크기는 2000 x 2000 미만이어야 합니다"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "게시물 설정",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "카테고리",
+ "TITLE": "카테고리 선택",
+ "PLACEHOLDER": "카테고리 선택",
+ "NO_RESULT": "카테고리를 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "카테고리 검색"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "작성자",
+ "TITLE": "작성자 선택",
+ "PLACEHOLDER": "작성자 선택",
+ "NO_RESULT": "작성자를 찾을 수 없습니다",
+ "SEARCH_PLACEHOLDER": "작성자 검색"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "메타 제목",
+ "PLACEHOLDER": "메타 제목을 추가하십시오"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "메타 설명",
+ "PLACEHOLDER": "더 나은 SEO 결과를 위해 메타 설명을 추가하십시오..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "메타 태그",
+ "PLACEHOLDER": "쉼표로 구분하여 메타 태그를 추가하십시오..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "게시물 보관",
+ "DELETE": "게시물 삭제"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "미분류",
+ "SEARCH_RESULTS": "{query}에 대한 검색 결과",
+ "EMPTY_TEXT": "답장에 삽입할 게시물을 검색하십시오.",
+ "SEARCH_LOADER": "검색중...",
+ "INSERT_ARTICLE": "삽입",
+ "NO_RESULT": "게시물을 찾을 수 없습니다",
+ "COPY_LINK": "게시물 링크를 클립보드에 복사",
+ "OPEN_LINK": "새 탭에서 게시물 열기",
+ "PREVIEW_LINK": "게시물 미리보기"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "포털",
+ "DEFAULT": "기본값",
+ "NEW_BUTTON": "새 포털",
+ "ACTIVE_BADGE": "활성",
+ "CHOOSE_LOCALE_LABEL": "로케일 선택",
+ "LOADING_MESSAGE": "포털을 불러오는 중...",
+ "ARTICLES_LABEL": "게시물",
+ "NO_PORTALS_MESSAGE": "사용 가능한 포털이 없습니다",
+ "ADD_NEW_LOCALE": "새 로케일 추가",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "TITLE": "포털",
+ "PORTAL_SETTINGS": "포털 설정",
+ "SUBTITLE": "여러 포털이 있으며 각 포털에 대해 다른 로케일을 사용할 수 있습니다.",
"CANCEL_BUTTON_LABEL": "취소",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "로케일 선택"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
+ "COUNT_LABEL": "게시물",
+ "ADD": "로케일 추가",
+ "VISIT": "사이트 방문",
"SETTINGS": "설정",
"DELETE": "삭제"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "포털 설정",
"ITEMS": {
"NAME": "이름",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "DOMAIN": "사용자 지정 도메인",
+ "SLUG": "슬러그",
+ "TITLE": "포털 제목",
+ "THEME": "테마 색상",
+ "SUB_TEXT": "포털 부제"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "사용 가능한 로케일",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "로케일 이름",
+ "CODE": "로케일 코드",
+ "ARTICLE_COUNT": "게시물 수",
+ "CATEGORIES": "카테고리 수",
+ "SWAP": "교환",
"DELETE": "삭제",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "기본값"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "포털 삭제",
+ "MESSAGE": "이 포털을 삭제하시겠습니까?",
+ "YES": "예, 포털을 삭제합니다",
+ "NO": "아니요, 포털을 유지합니다",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "포털이 성공적으로 삭제되었습니다",
+ "DELETE_ERROR": "포털 삭제 중 오류가 발생했습니다"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME 안내가 성공적으로 전송되었습니다",
+ "ERROR_MESSAGE": "CNAME 안내 전송 중 오류가 발생했습니다"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "포털 수정",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "기본 정보"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "포털 사용자 지정"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "카테고리"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "로케일"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "카테고리",
+ "NEW_CATEGORY": "새 카테고리",
"TABLE": {
"NAME": "이름",
- "DESCRIPTION": "내용",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "DESCRIPTION": "설명",
+ "LOCALE": "로케일",
+ "ARTICLE_COUNT": "게시물 수",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "카테고리 수정",
+ "DELETE": "카테고리 삭제"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "카테고리를 찾을 수 없습니다"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "기본 설정 업데이트"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "도움말 센터 정보",
+ "BODY": "포털에 대한 기본 정보"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "도움말 센터 사용자 지정",
+ "BODY": "포털 사용자 지정"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "완료"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "모든 설정이 완료되었습니다!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "뒤로",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "포털 만들기",
+ "TITLE": "도움말 센터 정보",
+ "CREATE_BASIC_SETTING_BUTTON": "포털 기본 설정 만들기"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "포털 사용자 지정",
+ "TITLE": "도움말 센터 사용자 지정",
+ "UPDATE_PORTAL_BUTTON": "포털 설정 업데이트"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "Voila!🎉 모든 설정이 완료되었습니다!",
+ "MESSAGE": "이제 모든 포털 페이지에서 생성된 포털을 확인할 수 있습니다.",
+ "FINISH": "모든 포털 페이지로 이동"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "로고",
+ "UPLOAD_BUTTON": "로고 업로드",
+ "HELP_TEXT": "이 로고는 포털 헤더에 표시됩니다.",
+ "IMAGE_UPLOAD_SUCCESS": "로고가 성공적으로 업로드되었습니다",
+ "IMAGE_UPLOAD_ERROR": "로고가 성공적으로 삭제되었습니다",
+ "IMAGE_DELETE_ERROR": "로고 삭제 중 오류가 발생했습니다"
},
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
+ "PLACEHOLDER": "포털 이름",
+ "HELP_TEXT": "이 이름은 내부적으로 공개 포털에 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 포털 슬러그",
+ "ERROR": "슬러그가 필요합니다"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "사용자 지정 도메인",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
+ "HELP_TEXT": "포털에 사용자 지정 도메인을 사용하려는 경우에만 추가하십시오. 예: {exampleURL}",
+ "ERROR": "유효한 도메인 URL을 입력하십시오"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "홈페이지 링크",
+ "PLACEHOLDER": "포털 홈페이지 링크",
+ "HELP_TEXT": "포털에서 홈페이지로 돌아가는 데 사용되는 링크입니다. 예: {exampleURL}",
+ "ERROR": "유효한 홈페이지 URL을 입력하십시오"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "포털 테마 색상",
+ "HELP_TEXT": "이 색상이 포털의 테마 색상으로 표시됩니다."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "페이지 제목",
+ "PLACEHOLDER": "포털 페이지 제목",
+ "HELP_TEXT": "페이지 제목은 공개 포털에서 사용됩니다.",
+ "ERROR": "페이지 제목이 필요합니다"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "헤더 텍스트",
+ "PLACEHOLDER": "포털 헤더 텍스트",
+ "HELP_TEXT": "포털 헤더 텍스트는 공개 포털에서 사용됩니다.",
+ "ERROR": "포털 헤더 텍스트가 필요합니다"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "포털이 성공적으로 생성되었습니다.",
+ "ERROR_MESSAGE_FOR_BASIC": "포털을 만들 수 없습니다. 다시 시도하십시오.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "포털이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE_FOR_UPDATE": "포털을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "새 로케일 추가",
+ "SUB_TITLE": "사용 가능한 번역 목록에 새 로케일을 추가합니다.",
+ "PORTAL": "포털",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "로케일",
+ "PLACEHOLDER": "로케일을 선택하십시오",
+ "ERROR": "로케일이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "로케일 만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "로케일이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "로케일을 추가할 수 없습니다. 다시 시도하십시오."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "기본 로케일이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "기본 로케일을 업데이트할 수 없습니다. 다시 시도하십시오."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "포털에서 로케일이 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "포털에서 로케일을 제거할 수 없습니다. 다시 시도하십시오."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "게시물을 불러오는 중...",
+ "404": "검색과 일치하는 게시물이 없습니다 🔍",
+ "NO_ARTICLES": "사용 가능한 게시물이 없습니다",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "TITLE": "제목",
+ "CATEGORY": "카테고리",
+ "READ_COUNT": "조회수",
"STATUS": "상태",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "마지막 수정"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "작성자",
+ "AUTHOR_NOT_AVAILABLE": "작성자를 사용할 수 없습니다"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "게시물을 불러오는 중...",
+ "TITLE_PLACEHOLDER": "게시물 제목을 입력하십시오",
+ "CONTENT_PLACEHOLDER": "게시물을 작성하십시오",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "게시물 저장 중 오류가 발생했습니다"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "게시물 게시 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 게시되었습니다"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "게시물 보관 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 보관되었습니다"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "게시물 임시 저장 중 오류가 발생했습니다",
+ "SUCCESS": "게시물이 성공적으로 임시 저장되었습니다"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
+ "MESSAGE": "게시물을 삭제하시겠습니까?",
+ "YES": "예, 삭제합니다",
"NO": "아니요, 유지합니다."
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "게시물이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "게시물 삭제 중 오류가 발생했습니다"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "문서 순서를 변경할 수 없습니다. 다시 시도하십시오."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "카테고리 순서를 변경할 수 없습니다. 다시 시도하십시오."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "게시물 제목과 내용을 추가해야 설정을 업데이트할 수 있습니다"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "게시물 검색"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "카테고리 만들기",
+ "SUB_TITLE": "카테고리는 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일",
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "카테고리 이름",
+ "HELP_TEXT": "카테고리 이름과 아이콘은 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "슬러그가 필요합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Give a short description about the category.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
"ERROR": "설명이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "카테고리 만들기",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "카테고리를 생성할 수 없습니다"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "카테고리 수정",
+ "SUB_TITLE": "카테고리를 수정하면 공개 포털의 카테고리가 업데이트됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일",
"NAME": {
"LABEL": "이름",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
+ "PLACEHOLDER": "카테고리 이름",
+ "HELP_TEXT": "카테고리 이름과 아이콘은 공개 포털에서 게시물을 분류하는 데 사용됩니다.",
"ERROR": "이름이 필요합니다"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "슬러그가 필요합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "Give a short description about the category.",
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
"ERROR": "설명이 필요합니다"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "카테고리 업데이트",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "카테고리를 업데이트할 수 없습니다"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "카테고리를 삭제할 수 없습니다"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
+ "TITLE": "게시물 검색",
+ "PLACEHOLDER": "게시물 검색",
+ "NO_RESULT": "게시물을 찾을 수 없습니다",
+ "SEARCHING": "검색중...",
"SEARCH_BUTTON": "검색",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "INSERT_ARTICLE": "링크 삽입",
+ "IFRAME_ERROR": "URL이 비어 있거나 유효하지 않습니다. 콘텐츠를 표시할 수 없습니다.",
+ "OPEN_ARTICLE_SEARCH": "도움말 센터에서 게시물 삽입",
+ "SUCCESS_ARTICLE_INSERTED": "게시물이 성공적으로 삽입되었습니다",
+ "PREVIEW_LINK": "게시물 미리보기",
"CANCEL": "닫기",
"BACK": "뒤로",
- "BACK_RESULTS": "Back to results"
+ "BACK_RESULTS": "결과로 돌아가기"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "도움말 센터",
+ "DESCRIPTION": "사용자 친화적인 셀프 서비스 포털을 만드십시오. 사용자가 게시물에 접근하고 연중무휴 지원을 받을 수 있도록 도와줍니다. 이 기능을 활성화하려면 구독을 업그레이드하십시오.",
+ "SELF_HOSTED_DESCRIPTION": "사용자 친화적인 셀프 서비스 포털을 만드십시오. 사용자가 게시물에 접근하고 연중무휴 지원을 받을 수 있도록 도와줍니다. 이 기능을 활성화하려면 관리자에게 문의하십시오.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "자세히 알아보기",
+ "UPGRADE": "업그레이드"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "다중 포털",
+ "DESCRIPTION": "동일한 계정을 사용하여 다양한 제품에 대한 여러 도움말 센터 포털을 만들 수 있습니다."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "로케일 전체 지원",
+ "DESCRIPTION": "포털을 원하는 언어로 현지화할 수 있습니다. 모든 로케일을 지원하며 모든 게시물에 대해 번역을 허용합니다."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO 친화적 디자인",
+ "DESCRIPTION": "SEO 친화적 페이지를 통해 메타 태그를 사용자 지정하여 검색 엔진에서의 가시성을 높이십시오."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "전체 API 지원",
+ "DESCRIPTION": "API를 사용하여 타사 프론트엔드 프레임워크와 함께 포털을 헤드리스 CMS로 사용하십시오."
}
}
+ },
+ "LOADING": "불러오는 중...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count}회 조회 | {count}회 조회",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "게시",
+ "DRAFT": "임시 저장",
+ "ARCHIVE": "보관",
+ "TRANSLATE": "번역",
+ "DELETE": "삭제"
+ },
+ "STATUS": {
+ "DRAFT": "임시 저장",
+ "PUBLISHED": "게시됨",
+ "ARCHIVED": "보관됨"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "미분류"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "모든 게시물",
+ "MINE": "나에게 할당",
+ "DRAFT": "임시 저장",
+ "PUBLISHED": "게시됨",
+ "ARCHIVED": "보관됨"
+ },
+ "CATEGORY": {
+ "ALL": "모든 카테고리"
+ },
+ "LOCALE": {
+ "ALL": "모든 로케일"
+ },
+ "NEW_ARTICLE": "새 게시물"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "게시물 작성",
+ "SUBTITLE": "풍부한 게시물을 작성해 보세요!",
+ "BUTTON_LABEL": "새 게시물"
+ },
+ "MINE": {
+ "TITLE": "아직 작성한 게시물이 없습니다",
+ "SUBTITLE": "작성한 모든 게시물이 여기에 빠른 액세스를 위해 표시됩니다."
+ },
+ "DRAFT": {
+ "TITLE": "임시 저장된 게시물이 없습니다",
+ "SUBTITLE": "임시 저장된 게시물이 여기에 표시됩니다"
+ },
+ "PUBLISHED": {
+ "TITLE": "게시된 게시물이 없습니다",
+ "SUBTITLE": "게시된 게시물이 여기에 표시됩니다"
+ },
+ "ARCHIVED": {
+ "TITLE": "보관된 게시물이 없습니다",
+ "SUBTITLE": "보관된 게시물은 포털에 표시되지 않으며, 더 이상 사용되지 않거나 오래된 페이지를 표시하는 데 사용할 수 있습니다"
+ },
+ "CATEGORY": {
+ "TITLE": "이 카테고리에 게시물이 없습니다",
+ "SUBTITLE": "이 카테고리의 게시물이 여기에 표시됩니다"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "번역",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "SELECTED_COUNT": "{count}개 선택됨",
+ "CLEAR_SELECTION": "선택 해제",
+ "TRANSLATE_BUTTON": "번역",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "게시",
+ "DRAFT": "임시 저장",
+ "ARCHIVE": "보관",
+ "TRANSLATE": "번역",
+ "MOVE_TO_CATEGORY": "카테고리",
+ "DELETE": "삭제",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "삭제",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "새 카테고리",
+ "EDIT_CATEGORY": "카테고리 수정",
+ "CATEGORIES_COUNT": "{n}개 카테고리 | {n}개 카테고리",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "카테고리 ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount}개 게시물) | {categoryName} ({categoryCount}개 게시물)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "카테고리를 찾을 수 없습니다",
+ "SUBTITLE": "카테고리가 여기에 표시됩니다. '새 카테고리' 버튼을 클릭하여 카테고리를 추가할 수 있습니다."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count}개 게시물 | {count}개 게시물"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "카테고리를 생성할 수 없습니다"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "카테고리를 업데이트할 수 없습니다"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "카테고리가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "카테고리를 삭제할 수 없습니다"
+ }
+ },
+ "HEADER": {
+ "CREATE": "카테고리 만들기",
+ "EDIT": "카테고리 수정",
+ "DESCRIPTION": "카테고리를 수정하면 공개 포털의 카테고리가 업데이트됩니다.",
+ "PORTAL": "포털",
+ "LOCALE": "로케일"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "이름",
+ "PLACEHOLDER": "카테고리 이름",
+ "ERROR": "이름이 필요합니다"
+ },
+ "SLUG": {
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "URL용 카테고리 슬러그",
+ "ERROR": "슬러그가 필요합니다",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "카테고리에 대한 간단한 설명을 입력하십시오.",
+ "ERROR": "설명이 필요합니다"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "만들기",
+ "EDIT": "업데이트",
+ "CANCEL": "취소"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "사용 가능한 로케일 없음 | {n}개 로케일 | {n}개 로케일",
+ "NEW_LOCALE_BUTTON_TEXT": "새 로케일",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count}개 게시물 | {count}개 게시물",
+ "CATEGORIES_COUNT": "{count}개 카테고리 | {count}개 카테고리",
+ "DEFAULT": "기본값",
+ "DRAFT": "임시 저장",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "기본값으로 설정",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "삭제"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "새 로케일 추가",
+ "DESCRIPTION": "이 게시물이 작성될 언어를 선택하십시오. 번역 목록에 추가되며 나중에 더 추가할 수 있습니다.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "로케일 선택..."
+ },
+ "STATUS": {
+ "LABEL": "상태",
+ "OPTIONS": {
+ "LIVE": "게시됨",
+ "DRAFT": "임시 저장"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "로케일이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "로케일을 추가할 수 없습니다. 다시 시도하십시오."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "저장 중...",
+ "SAVED": "저장됨"
+ },
+ "PREVIEW": "미리보기",
+ "PUBLISH": "게시",
+ "DRAFT": "임시 저장",
+ "ARCHIVE": "보관",
+ "BACK_TO_ARTICLES": "게시물로 돌아가기"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "추가 속성",
+ "UNCATEGORIZED": "카테고리가 지정되지 않음",
+ "EDITOR_PLACEHOLDER": "내용을 작성하십시오..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "게시물 속성",
+ "META_DESCRIPTION": "메타 설명",
+ "META_DESCRIPTION_PLACEHOLDER": "메타 설명 추가",
+ "META_TITLE": "메타 제목",
+ "META_TITLE_PLACEHOLDER": "메타 제목 추가",
+ "META_TAGS": "메타 태그",
+ "META_TAGS_PLACEHOLDER": "메타 태그 추가"
+ },
+ "API": {
+ "ERROR": "게시물 저장 중 오류가 발생했습니다"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "새 포털",
+ "PORTALS": "포털",
+ "CREATE_PORTAL": "여러 포털을 만들고 관리하십시오",
+ "ARTICLES": "게시물",
+ "DOMAIN": "도메인",
+ "PORTAL_NAME": "포털 이름"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "새 포털 만들기",
+ "DESCRIPTION": "포털에 이름을 지정하고 사용자 친화적인 URL 슬러그를 만드십시오. 나중에 설정에서 둘 다 수정할 수 있습니다.",
+ "CONFIRM_BUTTON_LABEL": "만들기",
+ "NAME": {
+ "LABEL": "이름",
+ "PLACEHOLDER": "사용자 가이드 | Chatwoot",
+ "MESSAGE": "포털의 이름을 선택하십시오.",
+ "ERROR": "이름이 필요합니다"
+ },
+ "SLUG": {
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "슬러그가 필요합니다",
+ "FORMAT_ERROR": "유효한 슬러그를 입력하십시오. 예: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "로고",
+ "IMAGE_UPLOAD_ERROR": "이미지를 업로드할 수 없습니다! 다시 시도하십시오",
+ "IMAGE_UPLOAD_SUCCESS": "이미지가 성공적으로 추가되었습니다. 로고를 저장하려면 변경사항 저장을 클릭하십시오",
+ "IMAGE_DELETE_SUCCESS": "로고가 성공적으로 삭제되었습니다",
+ "IMAGE_DELETE_ERROR": "로고를 삭제할 수 없습니다",
+ "IMAGE_UPLOAD_SIZE_ERROR": "이미지 크기는 {size}MB 미만이어야 합니다"
+ },
+ "NAME": {
+ "LABEL": "이름",
+ "PLACEHOLDER": "포털 이름",
+ "ERROR": "이름이 필요합니다"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "헤더 텍스트",
+ "PLACEHOLDER": "포털 헤더 텍스트"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "페이지 제목",
+ "PLACEHOLDER": "포털 페이지 제목"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "홈페이지 링크",
+ "PLACEHOLDER": "포털 홈페이지 링크",
+ "ERROR": "유효한 URL을 입력하십시오. 홈페이지 링크는 'http://' 또는 'https://'로 시작해야 합니다."
+ },
+ "SLUG": {
+ "LABEL": "슬러그",
+ "PLACEHOLDER": "포털 슬러그"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "실시간 채팅 위젯",
+ "PLACEHOLDER": "실시간 채팅 위젯 선택",
+ "HELP_TEXT": "도움말 센터에 표시될 실시간 채팅 위젯을 선택하십시오",
+ "NONE_OPTION": "위젯 없음"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "브랜드 색상"
+ },
+ "SAVE_CHANGES": "변경사항 저장"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "사용자 지정 도메인",
+ "LABEL": "사용자 지정 도메인:",
+ "DESCRIPTION": "포털을 사용자 지정 도메인에서 호스팅할 수 있습니다. 예를 들어, 웹사이트가 yourdomain.com이고 포털을 docs.yourdomain.com에서 사용하려면 이 필드에 입력하십시오.",
+ "STATUS_DESCRIPTION": "사용자 지정 포털은 확인되는 즉시 작동합니다.",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
+ "EDIT_BUTTON": "수정",
+ "ADD_BUTTON": "사용자 지정 도메인 추가",
+ "STATUS": {
+ "LIVE": "활성",
+ "PENDING": "확인 대기 중",
+ "ERROR": "확인 실패"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "사용자 지정 도메인 추가",
+ "EDIT_HEADER": "사용자 지정 도메인 수정",
+ "ADD_CONFIRM_BUTTON_LABEL": "도메인 추가",
+ "EDIT_CONFIRM_BUTTON_LABEL": "도메인 업데이트",
+ "LABEL": "사용자 지정 도메인",
+ "PLACEHOLDER": "포털 사용자 지정 도메인",
+ "ERROR": "사용자 지정 도메인이 필요합니다",
+ "FORMAT_ERROR": "유효한 도메인 URL을 입력하십시오. 예: docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS 설정",
+ "DESCRIPTION": "DNS 공급자 계정에 로그인하여 서브도메인에 대한 CNAME 레코드를 chatwoot.help로 가리키도록 추가하십시오",
+ "COPY": "CNAME이 성공적으로 복사되었습니다",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "안내 전송",
+ "DESCRIPTION": "개발 팀의 담당자가 이 단계를 처리하도록 하려면 아래에 이메일 주소를 입력하시면 필요한 안내를 보내드립니다.",
+ "PLACEHOLDER": "이메일을 입력하십시오",
+ "ERROR": "유효한 이메일 주소를 입력하십시오",
+ "SEND_BUTTON": "보내기"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName} 삭제",
+ "HEADER": "포털 삭제",
+ "DESCRIPTION": "이 포털을 영구적으로 삭제합니다. 이 작업은 되돌릴 수 없습니다",
+ "DIALOG": {
+ "HEADER": "{portalName}을(를) 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 되돌릴 수 없는 영구적인 작업입니다.",
+ "CONFIRM_BUTTON_LABEL": "삭제"
+ }
+ },
+ "EDIT_CONFIGURATION": "설정 수정"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "외관",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "제거"
+ },
+ "SAVE": "변경사항 저장"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "포털이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "포털을 생성할 수 없습니다"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "포털이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "포털을 업데이트할 수 없습니다"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "PDF 문서 업로드",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ를 생성합니다",
+ "DRAG_DROP_TEXT": "PDF 파일을 여기에 끌어다 놓거나 클릭하여 선택하십시오",
+ "SELECT_FILE": "PDF 파일 선택",
+ "ADDITIONAL_CONTEXT_LABEL": "추가 컨텍스트 (선택 사항)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "FAQ 생성을 위한 추가 컨텍스트 또는 지침을 제공하십시오...",
+ "UPLOADING": "업로드 중...",
+ "UPLOAD": "업로드 및 처리",
+ "CANCEL": "취소",
+ "ERROR_INVALID_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "ERROR_FILE_TOO_LARGE": "파일 크기는 512MB 미만이어야 합니다",
+ "ERROR_UPLOAD_FAILED": "PDF 업로드에 실패했습니다. 다시 시도하십시오."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF 문서",
+ "DESCRIPTION": "업로드된 PDF 문서를 관리하고 FAQ를 생성합니다",
+ "UPLOAD_PDF": "PDF 업로드",
+ "UPLOAD_FIRST_PDF": "첫 번째 PDF를 업로드하십시오",
+ "UPLOADED_BY": "업로드한 사람",
+ "GENERATE_FAQS": "FAQ 생성",
+ "GENERATING": "생성 중...",
+ "CONFIRM_DELETE": "{filename}을(를) 삭제하시겠습니까?",
+ "EMPTY_STATE": {
+ "TITLE": "아직 PDF 문서가 없습니다",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ를 생성합니다"
+ },
+ "STATUS": {
+ "UPLOADED": "준비됨",
+ "PROCESSING": "처리 중",
+ "PROCESSED": "완료됨",
+ "FAILED": "실패"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "콘텐츠 생성",
+ "DESCRIPTION": "PDF 문서를 업로드하여 AI를 사용해 자동으로 FAQ 콘텐츠를 생성합니다",
+ "UPLOAD_TITLE": "PDF 문서 업로드",
+ "DRAG_DROP": "PDF 파일을 여기에 끌어다 놓거나 클릭하여 선택하십시오",
+ "SELECT_FILE": "PDF 파일 선택",
+ "UPLOADING": "문서 처리 중...",
+ "UPLOAD_SUCCESS": "문서가 성공적으로 처리되었습니다!",
+ "UPLOAD_ERROR": "문서 업로드에 실패했습니다. 다시 시도하십시오.",
+ "INVALID_FILE_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "FILE_TOO_LARGE": "파일 크기는 512MB 미만이어야 합니다",
+ "GENERATED_CONTENT": "생성된 FAQ 콘텐츠",
+ "PUBLISH_SELECTED": "선택 항목 게시",
+ "PUBLISHING": "게시 중...",
+ "FROM_DOCUMENT": "문서에서",
+ "NO_CONTENT": "생성된 콘텐츠가 없습니다. PDF 문서를 업로드하여 시작하십시오.",
+ "LOADING": "생성된 콘텐츠를 불러오는 중..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/inbox.json b/app/javascript/dashboard/i18n/locale/ko/inbox.json
index 228efedeb..83bb5ff30 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inbox.json
@@ -1,60 +1,95 @@
{
"INBOX": {
"LIST": {
- "TITLE": "받은 메시지함",
- "DISPLAY_DROPDOWN": "Display",
- "LOADING": "Fetching notifications",
- "EOF": "모든 알림이 불러와졌음 🎉",
- "404": "There are no active notifications in this group.",
- "NO_NOTIFICATIONS": "No notifications",
- "NOTE": "Notifications from all subscribed inboxes",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
+ "TITLE": "내 받은 메시지함",
+ "DISPLAY_DROPDOWN": "표시",
+ "LOADING": "알림을 가져오는 중",
+ "404": "이 그룹에 활성 알림이 없습니다.",
+ "NO_NOTIFICATIONS": "알림 없음",
+ "NOTE": "구독한 모든 받은 메시지함의 알림",
+ "NO_MESSAGES_AVAILABLE": "메시지를 가져올 수 없습니다",
+ "SNOOZED_UNTIL": "일시 중지 기한",
+ "SNOOZED_UNTIL_TOMORROW": "내일까지 일시 중지",
+ "SNOOZED_UNTIL_NEXT_WEEK": "다음 주까지 일시 중지"
},
"ACTION_HEADER": {
- "SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "SNOOZE": "알림 일시 중지",
+ "DELETE": "알림 삭제",
+ "BACK": "뒤로"
},
"TYPES": {
- "CONVERSATION_MENTION": "You have been mentioned in a conversation",
- "CONVERSATION_CREATION": "New conversation created",
- "CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "CONVERSATION_MENTION": "대화에서 멘션되었습니다",
+ "CONVERSATION_CREATION": "새 대화가 생성되었습니다",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정되었습니다",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에 새 메시지가 있습니다",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에 새 메시지가 있습니다",
+ "SLA_MISSED_FIRST_RESPONSE": "대화에 대한 SLA 최초 응답 목표를 놓쳤습니다",
+ "SLA_MISSED_NEXT_RESPONSE": "대화에 대한 SLA 다음 응답 목표를 놓쳤습니다",
+ "SLA_MISSED_RESOLUTION": "대화에 대한 SLA 해결 목표를 놓쳤습니다"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "멘션됨",
+ "CONVERSATION_ASSIGNMENT": "배정됨",
+ "CONVERSATION_CREATION": "새 대화",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA 위반",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA 위반",
+ "SLA_MISSED_RESOLUTION": "SLA 위반",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "새 메시지",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "새 메시지",
+ "SNOOZED_UNTIL": "{time} 동안 일시 중지됨",
+ "SNOOZED_ENDS": "일시 중지 종료됨"
+ },
+ "NO_CONTENT": "콘텐츠 이용 불가",
"MENU_ITEM": {
- "MARK_AS_READ": "Mark as read",
- "MARK_AS_UNREAD": "Mark as unread",
- "SNOOZE": "Snooze",
+ "MARK_AS_READ": "읽음으로 표시",
+ "MARK_AS_UNREAD": "읽지 않음으로 표시",
+ "SNOOZE": "일시 중지",
"DELETE": "삭제",
- "MARK_ALL_READ": "전부 읽음으로 바꾸기",
- "DELETE_ALL": "Delete all",
- "DELETE_ALL_READ": "Delete all read"
+ "MARK_ALL_READ": "전부 읽음으로 표시",
+ "DELETE_ALL": "전부 삭제",
+ "DELETE_ALL_READ": "읽은 항목 전부 삭제"
},
"DISPLAY_MENU": {
- "SORT": "Sort",
- "DISPLAY": "Display :",
+ "SORT": "정렬",
+ "DISPLAY": "표시 :",
"SORT_OPTIONS": {
- "NEWEST": "Newest",
- "OLDEST": "Oldest",
- "PRIORITY": "Priority"
+ "NEWEST": "최신순",
+ "OLDEST": "오래된 순",
+ "PRIORITY": "우선순위"
},
"DISPLAY_OPTIONS": {
"SNOOZED": "일시 중지됨",
- "READ": "읽기",
+ "READ": "읽음",
"LABELS": "라벨",
- "CONVERSATION_ID": "Conversation ID"
+ "CONVERSATION_ID": "대화 ID"
}
},
"ALERTS": {
- "MARK_AS_READ": "Notification marked as read",
- "MARK_AS_UNREAD": "Notification marked as unread",
- "SNOOZE": "Notification snoozed",
- "DELETE": "Notification deleted",
- "MARK_ALL_READ": "All notifications marked as read",
- "DELETE_ALL": "All notifications deleted",
- "DELETE_ALL_READ": "All read notifications deleted"
+ "MARK_AS_READ": "알림이 읽음으로 표시되었습니다",
+ "MARK_AS_UNREAD": "알림이 읽지 않음으로 표시되었습니다",
+ "SNOOZE": "알림이 일시 중지되었습니다",
+ "DELETE": "알림이 삭제되었습니다",
+ "MARK_ALL_READ": "모든 알림이 읽음으로 표시되었습니다",
+ "DELETE_ALL": "모든 알림이 삭제되었습니다",
+ "DELETE_ALL_READ": "읽은 모든 알림이 삭제되었습니다"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "재인증 필요",
+ "DESCRIPTION": "WhatsApp 연결이 만료되었습니다. 메시지를 계속 수신하고 전송하려면 다시 연결하십시오.",
+ "BUTTON_TEXT": "WhatsApp 다시 연결",
+ "LOADING_FACEBOOK": "Facebook SDK를 불러오는 중...",
+ "SUCCESS": "WhatsApp이 성공적으로 다시 연결되었습니다",
+ "ERROR": "WhatsApp 다시 연결에 실패했습니다. 다시 시도하십시오.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp 앱 ID가 설정되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp 설정 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "CONFIGURATION_ERROR": "재인증 중 설정 오류가 발생했습니다.",
+ "FACEBOOK_LOAD_ERROR": "Facebook SDK를 불러오지 못했습니다. 다시 시도하십시오.",
+ "TROUBLESHOOTING": {
+ "TITLE": "문제 해결",
+ "POPUP_BLOCKED": "이 사이트에 대해 팝업이 허용되어 있는지 확인하십시오",
+ "COOKIES": "서드파티 쿠키가 활성화되어 있어야 합니다",
+ "ADMIN_ACCESS": "WhatsApp Business 계정에 대한 관리자 액세스 권한이 필요합니다"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
index 110a49b46..798ec0cc2 100644
--- a/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/inboxMgmt.json
@@ -1,56 +1,77 @@
{
"INBOX_MGMT": {
- "HEADER": "받은 메시지함",
- "SIDEBAR_TXT": "받은 메시지함
웹사이트나 페이스북 페이지를 Chatwoot에 연결한 것을 받은 메시지함이라고 합니다. 당신은 당신의 Chatwoot 계정에 무제한의 받은 편지함을 가질 수 있습니다.
받은 메시지함 추가를 클릭하여 웹 사이트 또는 Facebook 페이지를 연결하십시오.
대시보드에서는 모든 받은 메시지함의 모든 대화를 한 곳에서 볼 수 있으며 대화 탭에서는 이에 응답할 수 있습니다.\n
대시보드의 왼쪽 창에서 받은 메시지함 이름을 눌러 관련 대화를 볼 수 있습니다.\n
",
+ "HEADER": "받은 편지함",
+ "DESCRIPTION": "채널은 고객이 귀하와 상호작용하기 위해 선택하는 커뮤니케이션 방식입니다. 받은 메시지함은 특정 채널에 대한 상호작용을 관리하는 곳입니다. 이메일, 라이브 채팅, 소셜 미디어 등 다양한 소스의 커뮤니케이션을 포함할 수 있습니다.",
+ "LEARN_MORE": "받은 메시지함에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 받은 메시지함 | {n}개의 받은 메시지함",
+ "SEARCH_PLACEHOLDER": "받은 메시지함 검색...",
+ "NO_RESULTS": "검색과 일치하는 받은 메시지함이 없습니다",
+ "RECONNECTION_REQUIRED": "받은 메시지함의 연결이 끊어졌습니다. 재인증하기 전까지 새 메시지를 받을 수 없습니다.",
+ "CLICK_TO_RECONNECT": "다시 연결하려면 여기를 클릭하십시오.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "WhatsApp Business 등록이 완료되지 않았습니다. 다시 연결하기 전에 Meta Business Manager에서 표시 이름 상태를 확인하십시오.",
+ "COMPLETE_REGISTRATION": "등록 완료",
"LIST": {
"404": "이 계정에는 첨부된 받은 메시지함이 없습니다."
},
- "CREATE_FLOW": [
- {
- "title": "채널 선택",
- "route": "settings_inbox_new",
- "body": "Chatwoot와 통합할 공급자를 선택하십시오."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "채널 선택",
+ "BODY": "Chatwoot와 통합할 공급자를 선택하십시오."
},
- {
- "title": "받은 메시지함 만들기",
- "route": "settings_inboxes_page_channel",
- "body": "계정을 인증하고 받은 메시지함을 만드십시오."
+ "INBOX": {
+ "TITLE": "받은 메시지함 만들기",
+ "BODY": "계정을 인증하고 받은 메시지함을 만드십시오."
},
- {
- "title": "에이전트 추가",
- "route": "settings_inboxes_add_agents",
- "body": "생성된 받은 메시지함에 에이전트를 추가하십시오."
+ "AGENT": {
+ "TITLE": "에이전트 추가",
+ "BODY": "생성된 받은 메시지함에 에이전트를 추가하십시오."
},
- {
- "title": "여기 있습니다.",
- "route": "settings_inbox_finish",
- "body": "준비가 완료되었습니다."
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "준비가 완료되었습니다."
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오 (예: Acme Inc)",
+ "ERROR": "올바른 받은 메시지함 이름을 입력하십시오."
},
"WEBSITE_NAME": {
"LABEL": "웹사이트 이름",
"PLACEHOLDER": "웹사이트 이름 입력 (예: Acme Inc)"
},
"FB": {
- "HELP": "추신: 로그인을 함으로써, 우리는 오직 당신의 페이지의 메시지에 접근할 수 있다. 당신의 사적인 메시지에 Chatwoot는 절대 접근할 수 없습니다.",
+ "HELP": "추신: 로그인을 함으로써, 우리는 오직 당신의 페이지의 메시지에 접근할 수 있습니다. 당신의 개인 메시지에 Chatwoot는 절대 접근할 수 없습니다.",
"CHOOSE_PAGE": "페이지 선택",
"CHOOSE_PLACEHOLDER": "목록에서 페이지 선택",
"INBOX_NAME": "받은 메시지함 이름",
"ADD_NAME": "받은 메시지함의 이름 추가",
- "PICK_NAME": "받은 편지함 이름 선택",
- "PICK_A_VALUE": "값 선택"
+ "PICK_NAME": "받은 메시지함의 이름을 선택하십시오",
+ "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 메시지를 보내거나 받을 수 없습니다."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "TikTok으로 계속하기",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "TikTok 프로필 연결",
+ "HELP": "TikTok 프로필을 채널로 추가하려면 'TikTok으로 계속하기'를 클릭하여 TikTok 프로필을 인증해야 합니다.",
+ "ERROR_MESSAGE": "TikTok에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
+ "ERROR_AUTH": "TikTok에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
},
"TWITTER": {
- "HELP": "트위터 프로필을 채널로 추가하려면 '트위터로 로그인'을 클릭하여 트위터 프로필을 인증해야 합니다. ",
- "ERROR_MESSAGE": "트위터에 연결하는 동안 오류가 발생했습니다. 다시 시도해주세요.",
+ "HELP": "트위터 프로필을 채널로 추가하려면 '트위터로 로그인'을 클릭하여 트위터 프로필을 인증해야 합니다.",
+ "ERROR_MESSAGE": "트위터에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오.",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "멘션된 트윗에서 대화 만들기"
}
},
"WEBSITE_CHANNEL": {
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "웹훅 URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "웹훅 URL을 입력하십시오.",
"ERROR": "올바른 URL을 입력하십시오."
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "시크릿을 클립보드에 복사",
+ "COPY_SUCCESS": "시크릿이 클립보드에 복사되었습니다",
+ "TOGGLE": "시크릿 표시 전환",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "웹사이트 도메인",
"PLACEHOLDER": "웹사이트 도메인을 입력하십시오 (예: acme.com)"
@@ -83,7 +112,7 @@
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "채널 인사말 사용",
- "HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
+ "HELP_TEXT": "고객이 대화를 시작하고 첫 메시지를 보낼 때 인사말 메시지를 자동으로 전송합니다.",
"ENABLED": "사용함",
"DISABLED": "사용 안 함"
},
@@ -92,7 +121,7 @@
"IN_A_FEW_MINUTES": "몇 분 후에",
"IN_A_FEW_HOURS": "몇 시간 안에",
"IN_A_DAY": "며칠 안에",
- "HELP_TEXT": "이 응답 시간은 라이브 채팅 위젯에 표시됨"
+ "HELP_TEXT": "이 응답 시간은 라이브 채팅 위젯에 표시됩니다."
},
"WIDGET_COLOR": {
"LABEL": "위젯 색깔",
@@ -100,33 +129,33 @@
},
"SUBMIT_BUTTON": "받은 메시지함 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "웹사이트 채널을 만들 수 없습니다. 다시 시도하십시오."
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp 채널",
+ "DESC": "Twilio를 통합하여 SMS 또는 WhatsApp으로 고객 지원을 시작하십시오.",
"ACCOUNT_SID": {
"LABEL": "계정 SID",
"PLACEHOLDER": "Twilio 계정 SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
+ "USE_API_KEY": "API Key 인증 사용",
"LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "PLACEHOLDER": "API Key SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY_SECRET": {
"LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "PLACEHOLDER": "API Key Secret을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
+ "LABEL": "메시징 서비스 SID",
+ "PLACEHOLDER": "Twilio Messaging Service SID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다.",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "USE_MESSAGING_SERVICE": "Twilio Messaging Service 사용"
},
"CHANNEL_TYPE": {
"LABEL": "채널 유형",
@@ -139,13 +168,13 @@
},
"CHANNEL_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
- "LABEL": "휴대폰 번호",
+ "LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
@@ -157,106 +186,184 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS 채널",
+ "DESC": "SMS를 통해 고객 지원을 시작하십시오.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API 공급자",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "SMS 채널을 저장할 수 없습니다."
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
+ "LABEL": "계정 ID",
+ "PLACEHOLDER": "Bandwidth 계정 ID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Bandwidth API Key를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Bandwidth API Secret을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
+ "LABEL": "애플리케이션 ID",
+ "PLACEHOLDER": "Bandwidth 애플리케이션 ID를 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"INBOX_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
- "LABEL": "휴대폰 번호",
+ "LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Bandwidth 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "Bandwidth 자격 증명을 인증할 수 없습니다. 다시 시도하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "SUBTITLE": "여기에 표시된 URL로 Bandwidth에서 메시지 콜백 URL을 구성해야 합니다."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp 채널",
+ "DESC": "WhatsApp을 통해 고객 지원을 시작하십시오.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API 공급자",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Meta를 통한 빠른 설정",
+ "TWILIO_DESC": "Twilio 자격 증명으로 연결",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "API 공급자를 선택하십시오",
+ "DESCRIPTION": "WhatsApp 공급자를 선택하십시오. Meta를 통해 설정 없이 직접 연결하거나, Twilio 계정 자격 증명을 사용하여 연결할 수 있습니다."
+ },
"INBOX_NAME": {
"LABEL": "받은 메시지함 이름",
- "PLACEHOLDER": "Please enter an inbox name",
+ "PLACEHOLDER": "받은 메시지함 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"PHONE_NUMBER": {
- "LABEL": "휴대폰 번호",
+ "LABEL": "전화 번호",
"PLACEHOLDER": "메시지를 보낼 전화 번호를 입력하십시오.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "`+` 기호로 시작하고 공백이 없는 올바른 전화 번호를 입력하십시오."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "전화 번호 ID",
+ "PLACEHOLDER": "Facebook 개발자 대시보드에서 받은 전화 번호 ID를 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "비즈니스 계정 ID",
+ "PLACEHOLDER": "Facebook 개발자 대시보드에서 받은 비즈니스 계정 ID를 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "웹훅 인증 토큰",
+ "PLACEHOLDER": "Facebook 웹훅에 구성할 인증 토큰을 입력하십시오.",
+ "ERROR": "올바른 값을 입력하십시오."
},
"API_KEY": {
"LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
+ "SUBTITLE": "WhatsApp API key를 구성하십시오.",
"PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "ERROR": "올바른 값을 입력하십시오."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "SUBTITLE": "아래에 표시된 값으로 Facebook 개발자 포털에서 웹훅 URL과 인증 토큰을 구성해야 합니다.",
"WEBHOOK_URL": "웹훅 URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "웹훅 인증 토큰"
+ },
+ "SUBMIT_BUTTON": "WhatsApp 채널 만들기",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Meta를 통한 빠른 설정",
+ "DESC": "WhatsApp 임베디드 가입 플로우를 사용하여 새 번호를 빠르게 연결하십시오. Meta로 리디렉션되어 WhatsApp Business 계정에 로그인하게 됩니다. 관리자 액세스 권한이 있으면 설정이 원활하고 쉽게 진행됩니다.",
+ "BENEFITS": {
+ "TITLE": "임베디드 가입의 장점:",
+ "EASY_SETUP": "수동 구성이 필요 없습니다",
+ "SECURE_AUTH": "안전한 OAuth 기반 인증",
+ "AUTO_CONFIG": "자동 웹훅 및 전화 번호 구성"
+ },
+ "LEARN_MORE": {
+ "TEXT": "통합 가입, 요금 및 제한 사항에 대해 자세히 알아보려면 {link}을 방문하십시오.",
+ "LINK_TEXT": "이 링크"
+ },
+ "SUBMIT_BUTTON": "WhatsApp Business에 연결",
+ "AUTH_PROCESSING": "Meta로 인증 중",
+ "WAITING_FOR_BUSINESS_INFO": "Meta 창에서 비즈니스 설정을 완료하십시오...",
+ "PROCESSING": "WhatsApp Business 계정을 설정하는 중",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK를 로드하는 중...",
+ "CANCELLED": "WhatsApp 가입이 취소되었습니다",
+ "SUCCESS_TITLE": "WhatsApp Business 계정이 연결되었습니다!",
+ "WAITING_FOR_AUTH": "인증 대기 중...",
+ "INVALID_BUSINESS_DATA": "Facebook에서 잘못된 비즈니스 데이터를 수신했습니다. 다시 시도하십시오.",
+ "SIGNUP_ERROR": "가입 오류가 발생했습니다",
+ "AUTH_NOT_COMPLETED": "인증이 완료되지 않았습니다. 프로세스를 다시 시작하십시오.",
+ "SUCCESS_FALLBACK": "WhatsApp Business 계정이 성공적으로 구성되었습니다",
+ "MANUAL_FALLBACK": "번호가 이미 WhatsApp Business Platform (API)에 연결되어 있거나, 자체 번호를 온보딩하는 기술 공급자인 경우 {link}을 사용하십시오",
+ "MANUAL_LINK_TEXT": "수동 설정 플로우",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "WhatsApp 채널을 저장할 수 없습니다."
+ }
+ },
+ "VOICE": {
+ "TITLE": "음성 채널",
+ "DESC": "Twilio Voice를 통합하여 전화 통화로 고객 지원을 시작하십시오.",
+ "PHONE_NUMBER": {
+ "LABEL": "전화 번호",
+ "PLACEHOLDER": "전화 번호를 입력하십시오 (예: +1234567890)",
+ "ERROR": "E.164 형식의 올바른 전화 번호를 입력하십시오 (예: +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "계정 SID",
+ "PLACEHOLDER": "Twilio 계정 SID를 입력하십시오.",
+ "REQUIRED": "계정 SID는 필수입니다."
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "인증 토큰",
+ "PLACEHOLDER": "Twilio 인증 토큰을 입력하십시오.",
+ "REQUIRED": "인증 토큰은 필수입니다."
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Twilio API Key SID를 입력하십시오.",
+ "REQUIRED": "API Key SID는 필수입니다."
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Twilio API Key Secret을 입력하십시오.",
+ "REQUIRED": "API Key Secret은 필수입니다."
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio 음성 URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "이 URL을 Twilio 전화 번호 및 TwiML 앱의 음성 URL로 구성하십시오.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio 상태 콜백 URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "이 URL을 Twilio 전화 번호의 상태 콜백 URL로 구성하십시오."
+ },
+ "SUBMIT_BUTTON": "음성 채널 만들기",
+ "API": {
+ "ERROR_MESSAGE": "음성 채널을 만들 수 없습니다."
}
},
"API_CHANNEL": {
@@ -269,17 +376,17 @@
},
"WEBHOOK_URL": {
"LABEL": "웹훅 URL",
- "SUBTITLE": "이벤트에 대한 콜백을 수신할 URL을 구성하십시오.",
+ "SUBTITLE": "이벤트 콜백을 받을 URL을 구성하십시오.",
"PLACEHOLDER": "웹훅 URL"
},
"SUBMIT_BUTTON": "API 채널 만들기",
"API": {
- "ERROR_MESSAGE": "우리는 API 채널을 저장할 수 없습니다."
+ "ERROR_MESSAGE": "API 채널을 저장할 수 없습니다."
}
},
"EMAIL_CHANNEL": {
"TITLE": "이메일 채널",
- "DESC": "이메일 받은 편지함을 통합하십시오.",
+ "DESC": "이메일 받은 메시지함을 통합하십시오.",
"CHANNEL_NAME": {
"LABEL": "채널 이름",
"PLACEHOLDER": "채널 이름을 입력하십시오.",
@@ -287,65 +394,121 @@
},
"EMAIL": {
"LABEL": "이메일",
- "SUBTITLE": "고객이 지원 티켓을 보내는 이메일",
+ "SUBTITLE": "고객이 지원 요청을 보내는 이메일 주소를 입력하십시오.",
"PLACEHOLDER": "이메일"
},
"SUBMIT_BUTTON": "이메일 채널 만들기",
"API": {
"ERROR_MESSAGE": "이메일 채널을 저장할 수 없습니다."
},
- "FINISH_MESSAGE": "당신의 이메일 주소로 이메일 전달을 시작하십시오."
+ "FINISH_MESSAGE": "이메일 받은 메시지함이 성공적으로 생성되었습니다! 아래 주소로 이메일 전달을 시작하거나, SMTP 및 IMAP 자격 증명을 구성하여 이메일을 직접 보내고 받을 수 있습니다.",
+ "FINISH_MESSAGE_NO_FORWARDING": "이메일 받은 메시지함이 성공적으로 생성되었습니다! 이메일을 보내고 받으려면 SMTP 및 IMAP 자격 증명을 구성해야 합니다. 이 설정이 없으면 이메일이 처리되지 않습니다.",
+ "FORWARDING_ADDRESS_LABEL": "이 주소로 이메일 전달:",
+ "CONFIGURE_SMTP_IMAP_LINK": "여기를 클릭하세요",
+ "CONFIGURE_SMTP_IMAP_TEXT": " IMAP 및 SMTP 설정을 구성하십시오"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE 채널",
+ "DESC": "LINE 채널과 통합하여 고객 지원을 시작하십시오.",
"CHANNEL_NAME": {
"LABEL": "채널 이름",
"PLACEHOLDER": "채널 이름을 입력하십시오.",
"ERROR": "해당 입력란은 필수 입력 사항입니다."
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE 채널 ID",
+ "PLACEHOLDER": "LINE 채널 ID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE 채널 Secret",
+ "PLACEHOLDER": "LINE 채널 Secret"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE 채널 Token",
+ "PLACEHOLDER": "LINE 채널 Token"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINE 채널을 저장할 수 없습니다."
},
"API_CALLBACK": {
"TITLE": "콜백 URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "SUBTITLE": "여기에 표시된 URL로 LINE 애플리케이션에서 웹훅 URL을 구성해야 합니다."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram 채널",
+ "DESC": "Telegram 채널과 통합하여 고객 지원을 시작하십시오.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "봇 토큰",
+ "SUBTITLE": "Telegram BotFather에서 받은 봇 토큰을 구성하십시오.",
+ "PLACEHOLDER": "봇 토큰"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram 채널 만들기",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Telegram 채널을 저장할 수 없습니다."
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "채널 선택",
+ "DESC": "Chatwoot는 라이브 채팅 위젯, Facebook Messenger, WhatsApp, 이메일 등을 채널로 지원합니다. 사용자 정의 채널을 만들려면 API 채널을 사용하여 만들 수 있습니다. 시작하려면 아래에서 채널을 선택하십시오.",
+ "TITLE_NEXT": "설정 완료",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "웹사이트",
+ "DESCRIPTION": "라이브 채팅 위젯 만들기"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Facebook 페이지 연결"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "WhatsApp으로 고객 지원"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "이메일",
+ "DESCRIPTION": "Gmail, Outlook 또는 기타 공급자와 연결"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Twilio 또는 Bandwidth로 SMS 채널 통합"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "API를 사용하여 사용자 정의 채널 만들기"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "봇 토큰을 사용하여 Telegram 채널 구성"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Line 채널 통합"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Instagram 계정 연결"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "TikTok 계정 연결"
+ },
+ "VOICE": {
+ "TITLE": "음성",
+ "DESCRIPTION": "Twilio Voice와 통합"
+ }
+ }
},
"AGENTS": {
"TITLE": "에이전트",
- "DESC": "여기서 에이전트를 추가하여 새로 만든 받은 메시지함을 관리할 수 있습니다. 선택된 에이전트만 받은 메시지함에 엑세스할 수 있습니다. 해당 받은 메시지함에 선택되지 않은 에이전트는 메시지를 보거나 응답할 수 없습니다.
추신: 관리자로서 모든 받은 문서에 대한 액세스 권한이 필요한 경우, 자신이 만든 모든 받은 문서에 자신을 에이전트로 추가해야 합니다.",
- "VALIDATION_ERROR": "새 받은 메시지함에 하나 이상의 에이전트 추가",
+ "DESC": "여기서 에이전트를 추가하여 새로 만든 받은 메시지함을 관리할 수 있습니다. 선택된 에이전트만 받은 메시지함에 액세스할 수 있습니다. 해당 받은 메시지함에 선택되지 않은 에이전트는 메시지를 보거나 응답할 수 없습니다.
추신: 관리자로서 모든 받은 메시지함에 대한 액세스 권한이 필요한 경우, 자신이 만든 모든 받은 메시지함에 자신을 에이전트로 추가해야 합니다.",
+ "VALIDATION_ERROR": "새 받은 메시지함에 에이전트를 한 명 이상 추가하십시오.",
"PICK_AGENTS": "받은 메시지함에 대한 에이전트 선택"
},
"DETAILS": {
@@ -353,26 +516,34 @@
"DESC": "아래 드롭다운에서 Chatwoot에 연결할 Facebook 페이지를 선택하십시오. 더 나은 식별을 위해 받은 메시지함에 사용자 정의 이름을 지정할 수 있습니다."
},
"FINISH": {
- "TITLE": "못 박았다!",
- "DESC": "Facebook 페이지를 Chatwoot와 성공적으로 통합하셨습니다. 다음부터 고객이 페이지에 메시지를 보낼 때, 대화는 받은 메시지함에 자동으로 나타납니다.
웹사이트에 쉽게 추가할 수 있는 위젯 스크립트도 제공하고 있습니다. 일단 당신의 웹사이트에 생방송으로 접속하면, 고객들은 어떠한 외부 도구의 도움 없이도 당신의 웹사이트에서 바로 당신에게 메시지를 보낼 수 있고, 대화는 바로 여기 Chatwoot에 나타납니다.<
멋지죠? 음, 우리는 그럴려고 노력합니다 :)"
+ "TITLE": "완료되었습니다!",
+ "DESC": "Facebook 페이지를 Chatwoot와 성공적으로 통합하셨습니다. 다음부터 고객이 페이지에 메시지를 보낼 때, 대화는 받은 메시지함에 자동으로 나타납니다.
웹사이트에 쉽게 추가할 수 있는 위젯 스크립트도 제공하고 있습니다. 일단 당신의 웹사이트에 생방송으로 접속하면, 고객들은 어떠한 외부 도구의 도움 없이도 당신의 웹사이트에서 바로 당신에게 메시지를 보낼 수 있고, 대화는 바로 여기 Chatwoot에 나타납니다.
멋지죠? 음, 우리는 그럴려고 노력합니다 :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "이메일 공급자를 선택하십시오",
+ "DESCRIPTION": "아래 목록에서 이메일 공급자를 선택하십시오. 목록에 이메일 공급자가 없는 경우, 기타 공급자 옵션을 선택하고 IMAP 및 SMTP 자격 증명을 입력하십시오."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft 이메일",
+ "DESCRIPTION": "시작하려면 Microsoft로 로그인 버튼을 클릭하십시오. 이메일 로그인 페이지로 리디렉션됩니다. 요청된 권한을 수락하면 받은 메시지함 생성 단계로 다시 리디렉션됩니다.",
+ "EMAIL_PLACEHOLDER": "이메일 주소 입력",
+ "SIGN_IN": "Microsoft로 로그인",
+ "ERROR_MESSAGE": "Microsoft에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "GOOGLE": {
+ "TITLE": "Google 이메일",
+ "DESCRIPTION": "시작하려면 Google로 로그인 버튼을 클릭하십시오. 이메일 로그인 페이지로 리디렉션됩니다. 요청된 권한을 수락하면 받은 메시지함 생성 단계로 다시 리디렉션됩니다.",
+ "SIGN_IN": "Google로 로그인",
+ "EMAIL_PLACEHOLDER": "이메일 주소 입력",
+ "ERROR_MESSAGE": "Google에 연결하는 동안 오류가 발생했습니다. 다시 시도하십시오."
}
},
"DETAILS": {
- "LOADING_FB": "페이스북 인증하는 중...",
- "ERROR_FB_AUTH": "문제가 발생했습니다 페이지를 새로 고치십시오...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "LOADING_FB": "Facebook 인증하는 중...",
+ "ERROR_FB_LOADING": "Facebook SDK 로드 오류. 광고 차단기를 비활성화하고 다른 브라우저에서 다시 시도하십시오.",
+ "ERROR_FB_AUTH": "문제가 발생했습니다. 페이지를 새로 고치십시오...",
+ "ERROR_FB_UNAUTHORIZED": "이 작업을 수행할 권한이 없습니다.",
+ "ERROR_FB_UNAUTHORIZED_HELP": "전체 제어 권한으로 Facebook 페이지에 액세스할 수 있는지 확인하십시오. Facebook 역할에 대한 자세한 내용은 여기에서 확인할 수 있습니다.",
"CREATING_CHANNEL": "받은 메시지함을 만드는 중...",
"TITLE": "받은 메시지함 세부 구성",
"DESC": ""
@@ -382,19 +553,22 @@
"ADD_AGENTS": "받은 메시지함에 에이전트를 추가하는 중..."
},
"FINISH": {
- "TITLE": "받은 메시지함이 준비됨!",
- "MESSAGE": "이제 새로운 채널을 통해 고객과 대화할 수 있습니다. 행복한 지원",
- "BUTTON_TEXT": "나를 그곳으로 데려주세요.",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "웹사이트 채널 만들기를 완료하셨습니다. 아래 표시된 코드를 복사하여 웹사이트에 붙여 넣으십시오. 다음에 고객이 라이브 채팅을 사용할 때 대화는 받은 편지함에 자동으로 표시됩니다."
+ "TITLE": "받은 메시지함이 준비되었습니다!",
+ "MESSAGE": "이제 새로운 채널을 통해 고객과 대화할 수 있습니다. 즐거운 지원 되십시오",
+ "BUTTON_TEXT": "이동하기",
+ "MORE_SETTINGS": "추가 설정",
+ "WEBSITE_SUCCESS": "웹사이트 채널 만들기를 완료하셨습니다. 아래 표시된 코드를 복사하여 웹사이트에 붙여 넣으십시오. 다음에 고객이 라이브 채팅을 사용할 때 대화는 받은 메시지함에 자동으로 표시됩니다.",
+ "WHATSAPP_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 WhatsApp 받은 메시지함을 빠르게 테스트하십시오",
+ "MESSENGER_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 Facebook Messenger 받은 메시지함을 빠르게 테스트하십시오",
+ "TELEGRAM_QR_INSTRUCTION": "위의 QR 코드를 스캔하여 Telegram 받은 메시지함을 빠르게 테스트하십시오"
},
"REAUTH": "재승인",
"VIEW": "보기",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "받은 메시지함 설정이 성공적으로 업데이트됨",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "자동 할당 업데이트 완료",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "받은 메시지함 설정이 성공적으로 업데이트되었습니다.",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "자동 할당이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "받은 메시지함 설정을 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "사용함",
@@ -405,22 +579,22 @@
"DISABLED": "사용 안 함"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "발신자 이름",
+ "SUB_TEXT": "에이전트로부터 이메일을 받을 때 고객에게 표시되는 이름을 선택하십시오.",
+ "FOR_EG": "예시:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "친근한",
+ "FROM": "에서",
+ "SUBTITLE": "발신자 이름에 답장을 보낸 에이전트의 이름을 추가하여 친근하게 만드십시오."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "전문적인",
+ "SUBTITLE": "이메일 헤더에서 구성된 비즈니스 이름만 발신자 이름으로 사용합니다."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "+ 비즈니스 이름 구성",
+ "PLACEHOLDER": "비즈니스 이름을 입력하십시오.",
+ "SAVE_BUTTON_TEXT": "저장"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -432,119 +606,309 @@
"DISABLED": "사용 안 함"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "사용함",
- "DISABLED": "사용 안 함"
+ "ENABLED": "같은 대화 다시 열기",
+ "DISABLED": "새 대화 만들기",
+ "ENABLED_DESCRIPTION": "연락처가 다시 메시지를 보내면 이전 대화가 다시 열립니다.",
+ "DISABLED_DESCRIPTION": "이전 대화가 해결된 후에는 매번 새 대화가 생성됩니다."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "사용"
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "아바타 삭제",
"CONFIRM": {
"TITLE": "삭제 확인",
"MESSAGE": "삭제하시겠습니까? ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
+ "PLACE_HOLDER": "확인하려면 {inboxName}을 입력하십시오.",
"YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지해주세요. "
+ "NO": "아니요, 유지합니다. "
},
"API": {
- "SUCCESS_MESSAGE": "받은 메시지함이 성공적으로 삭제됨.",
- "ERROR_MESSAGE": "받은 편지함을 삭제할 수 없음. 나중에 다시 시도해 주십시오.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "받은 메시지함이 성공적으로 삭제되었습니다.",
+ "ERROR_MESSAGE": "받은 메시지함을 삭제할 수 없습니다. 나중에 다시 시도하십시오.",
+ "AVATAR_SUCCESS_MESSAGE": "받은 메시지함 아바타가 성공적으로 삭제되었습니다.",
+ "AVATAR_ERROR_MESSAGE": "받은 메시지함 아바타를 삭제할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"TABS": {
"SETTINGS": "설정",
"COLLABORATORS": "협력자",
- "CONFIGURATION": "설치",
- "CAMPAIGN": "Campaigns",
+ "CONFIGURATION": "구성",
+ "CAMPAIGN": "캠페인",
"PRE_CHAT_FORM": "대화 전 설문",
"BUSINESS_HOURS": "영업시간",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "WIDGET_BUILDER": "위젯 빌더",
+ "BOT_CONFIGURATION": "봇 구성",
+ "ACCOUNT_HEALTH": "계정 상태",
+ "CSAT": "CSAT",
+ "VOICE": "음성",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "채널 환경설정",
+ "WIDGET_FEATURES": "위젯 기능",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "WhatsApp 계정 관리",
+ "DESCRIPTION": "WhatsApp 계정 상태, 메시지 제한 및 품질을 검토하십시오. 필요한 경우 설정을 업데이트하거나 문제를 해결하십시오.",
+ "GO_TO_SETTINGS": "Meta Business Manager로 이동",
+ "NO_DATA": "상태 데이터를 사용할 수 없습니다",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "표시 전화 번호",
+ "TOOLTIP": "고객에게 표시되는 전화 번호"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "비즈니스 이름",
+ "TOOLTIP": "WhatsApp에서 인증된 비즈니스 이름"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "표시 이름 상태",
+ "TOOLTIP": "비즈니스 이름 인증 상태"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "품질 등급",
+ "TOOLTIP": "계정의 WhatsApp 품질 등급"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "메시지 제한 등급",
+ "TOOLTIP": "계정의 일일 메시지 제한"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "계정 모드",
+ "TOOLTIP": "WhatsApp 계정의 현재 운영 모드"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "24시간당 고객 250명",
+ "TIER_1000": "24시간당 고객 1,000명",
+ "TIER_1K": "24시간당 고객 1,000명",
+ "TIER_10K": "24시간당 고객 10,000명",
+ "TIER_100K": "24시간당 고객 100,000명",
+ "TIER_UNLIMITED": "24시간당 무제한 고객",
+ "UNKNOWN": "등급을 사용할 수 없습니다"
+ },
+ "STATUSES": {
+ "APPROVED": "승인됨",
+ "PENDING_REVIEW": "검토 대기 중",
+ "AVAILABLE_WITHOUT_REVIEW": "검토 없이 사용 가능",
+ "REJECTED": "거부됨",
+ "DECLINED": "거절됨",
+ "NON_EXISTS": "존재하지 않음"
+ },
+ "MODES": {
+ "SANDBOX": "샌드박스",
+ "LIVE": "라이브"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "웹훅 구성",
+ "DESCRIPTION": "고객 메시지를 수신하려면 WhatsApp Business 계정에 웹훅 URL이 필요합니다",
+ "ACTION_REQUIRED": "웹훅이 구성되지 않았습니다",
+ "REGISTER_BUTTON": "웹훅 등록",
+ "REGISTER_SUCCESS": "웹훅이 성공적으로 등록되었습니다",
+ "REGISTER_ERROR": "웹훅 등록에 실패했습니다. 다시 시도하십시오.",
+ "CONFIGURED_SUCCESS": "웹훅이 성공적으로 구성되었습니다",
+ "URL_MISMATCH": "웹훅 URL이 일치하지 않습니다"
+ }
},
"SETTINGS": "설정",
"FEATURES": {
- "LABEL": "특징",
+ "LABEL": "기능",
"DISPLAY_FILE_PICKER": "위젯에 파일 선택기 표시",
"DISPLAY_EMOJI_PICKER": "위젯에 이모지 선택기 표시",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "ALLOW_END_CONVERSATION": "사용자가 위젯에서 대화를 종료할 수 있도록 허용",
+ "USE_INBOX_AVATAR_FOR_BOT": "봇에 받은 메시지함 이름 및 아바타 사용"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "메신저 스크립트",
- "MESSENGER_SUB_HEAD": "이 버튼을 당신의 body 태그 안에 넣으세요.",
+ "MESSENGER_SUB_HEAD": "이 버튼을 body 태그 안에 넣으십시오.",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "허용된 도메인",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "비밀 키",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "에이전트",
"INBOX_AGENTS_SUB_TEXT": "받은 메시지함에서 에이전트 추가 또는 제거",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
+ "AGENT_ASSIGNMENT": "대화 할당",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "대화 할당 설정 업데이트",
"UPDATE": "업데이트",
- "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
+ "ENABLE_EMAIL_COLLECT_BOX": "이메일 수집 박스 사용",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "새 대화에서 이메일 수집 박스 사용 또는 사용 안 함",
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "SENDER_NAME_SECTION": "이메일에 에이전트 이름 표시",
+ "SENDER_NAME_SECTION_TEXT": "이메일에 에이전트 이름 표시를 사용 또는 사용 안 함으로 설정합니다. 사용 안 함 시 비즈니스 이름이 표시됩니다.",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "이메일을 통한 대화 연속성 사용",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "연락처 이메일 주소가 있는 경우 이메일을 통해 대화가 계속됩니다.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "단일 대화로 제한",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "이 받은 메시지함에서 동일한 연락처에 대한 다중 대화를 사용 또는 사용 안 함으로 설정",
"INBOX_UPDATE_TITLE": "받은 메시지함 설정",
"INBOX_UPDATE_SUB_TEXT": "받은 메시지함 설정 업데이트",
- "AUTO_ASSIGNMENT_SUB_TEXT": "받은 메시지에 추가된 에이전트에 새 대화를 자동으로 할당하거나 할당하지 않도록 설정하십시오.",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "받은 메시지함에 추가된 에이전트에 새 대화를 자동으로 할당하거나 할당하지 않도록 설정하십시오.",
"HMAC_VERIFICATION": "사용자 신원 검증",
- "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "당신의 이메일 주소로 이메일 전달을 시작하십시오.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "HMAC_DESCRIPTION": "이 키를 사용하여 사용자의 신원을 확인하는 데 사용할 수 있는 비밀 토큰을 생성할 수 있습니다.",
+ "HMAC_LINK_TO_DOCS": "자세한 내용은 여기에서 확인할 수 있습니다.",
+ "HMAC_MANDATORY_VERIFICATION": "사용자 신원 검증 강제 적용",
+ "HMAC_MANDATORY_DESCRIPTION": "사용 시, 검증할 수 없는 요청은 거부됩니다.",
+ "INBOX_IDENTIFIER": "받은 메시지함 식별자",
+ "INBOX_IDENTIFIER_SUB_TEXT": "여기에 표시된 `inbox_identifier` 토큰을 사용하여 API 클라이언트를 인증하십시오.",
+ "FORWARD_EMAIL_TITLE": "이메일 전달",
+ "FORWARD_EMAIL_SUB_TEXT": "다음 이메일 주소로 이메일 전달을 시작하십시오.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "이 설치에서 받은 메시지함으로의 이메일 전달이 현재 비활성화되어 있습니다. 이 기능을 사용하려면 관리자가 활성화해야 합니다. 관리자에게 문의하십시오.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "대화 해결 후 메시지 허용",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "대화가 해결된 후에도 최종 사용자가 메시지를 보낼 수 있도록 허용합니다.",
+ "WHATSAPP_SECTION_SUBHEADER": "이 API Key는 WhatsApp API와의 통합에 사용됩니다.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API와의 통합에 사용할 새 API key를 입력하십시오.",
"WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API Key 업데이트",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "여기에 새 API Key를 입력하십시오.",
"WHATSAPP_SECTION_UPDATE_BUTTON": "업데이트",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp 임베디드 가입",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "이 받은 메시지함은 WhatsApp 임베디드 가입을 통해 연결되었습니다.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "이 받은 메시지함을 다시 구성하여 WhatsApp Business 설정을 업데이트할 수 있습니다.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "다시 구성",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp Business에 연결",
+ "WHATSAPP_CONNECT_SUBHEADER": "더 쉬운 관리를 위해 WhatsApp 임베디드 가입으로 업그레이드하십시오.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "향상된 기능과 더 쉬운 관리를 위해 이 받은 메시지함을 WhatsApp Business에 연결하십시오.",
+ "WHATSAPP_CONNECT_BUTTON": "연결",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp Business에 성공적으로 연결되었습니다!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp Business에 연결하지 못했습니다. 다시 시도하십시오.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp Business가 성공적으로 다시 구성되었습니다!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp Business를 다시 구성하지 못했습니다. 다시 시도하십시오.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp 앱 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp 구성 ID가 구성되지 않았습니다. 관리자에게 문의하십시오.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp 로그인이 취소되었습니다. 다시 시도하십시오.",
+ "WHATSAPP_WEBHOOK_TITLE": "웹훅 인증 토큰",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "이 토큰은 웹훅 엔드포인트의 진위를 확인하는 데 사용됩니다.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "템플릿 동기화",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "WhatsApp에서 메시지 템플릿을 수동으로 동기화하여 사용 가능한 템플릿을 업데이트하십시오.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "템플릿 동기화",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "템플릿 동기화가 성공적으로 시작되었습니다. 업데이트되기까지 몇 분 정도 걸릴 수 있습니다.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "대화 전 설문 설정 업데이트"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "도움말 센터",
+ "PLACEHOLDER": "도움말 센터 선택",
+ "SELECT_PLACEHOLDER": "도움말 센터 선택",
+ "NONE": "없음",
+ "REMOVE": "도움말 센터 제거",
+ "SUB_TEXT": "받은 메시지함에 도움말 센터 연결"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "자동 할당 제한",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "0보다 큰 값을 입력하십시오.",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "이 받은 메시지함에서 에이전트에게 자동 할당될 수 있는 최대 대화 수를 제한합니다."
+ },
+ "ASSIGNMENT": {
+ "TITLE": "대화 할당",
+ "DESCRIPTION": "할당 정책에 따라 수신 대화를 사용 가능한 에이전트에게 자동으로 할당합니다.",
+ "ENABLE_AUTO_ASSIGNMENT": "자동 대화 할당 사용",
+ "DEFAULT_RULES_TITLE": "기본 할당 규칙",
+ "DEFAULT_RULES_DESCRIPTION": "모든 대화에 기본 할당 동작을 사용합니다.",
+ "DEFAULT_RULE_1": "가장 먼저 생성된 대화 우선",
+ "DEFAULT_RULE_2": "라운드 로빈 배분",
+ "CUSTOMIZE_WITH_POLICY": "할당 정책으로 사용자 정의",
+ "USING_POLICY": "이 받은 메시지함에 사용자 정의 할당 정책을 사용 중",
+ "CUSTOMIZE_POLICY": "할당 정책으로 사용자 정의",
+ "DELETE_POLICY": "정책 삭제",
+ "POLICY_LABEL": "할당 정책",
+ "ASSIGNMENT_ORDER_LABEL": "할당 순서",
+ "ASSIGNMENT_METHOD_LABEL": "할당 방법",
+ "POLICY_STATUS": {
+ "ACTIVE": "활성",
+ "INACTIVE": "비활성"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "가장 먼저 생성됨",
+ "LONGEST_WAITING": "가장 오래 대기 중"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "라운드 로빈",
+ "BALANCED": "균형 할당"
+ },
+ "UPGRADE_PROMPT": "사용자 정의 할당 정책은 Business 플랜에서 사용할 수 있습니다.",
+ "UPGRADE_TO_BUSINESS": "Business로 업그레이드",
+ "DEFAULT_POLICY_LINKED": "기본 정책이 연결됨",
+ "DEFAULT_POLICY_DESCRIPTION": "이 받은 메시지함에서 대화가 에이전트에게 할당되는 방식을 사용자 정의하려면 사용자 정의 할당 정책을 연결하십시오.",
+ "LINK_EXISTING_POLICY": "기존 정책 연결",
+ "CREATE_NEW_POLICY": "새 정책 만들기",
+ "NO_POLICIES": "할당 정책을 찾을 수 없습니다.",
+ "VIEW_ALL_POLICIES": "모든 정책 보기",
+ "CURRENT_BEHAVIOR": "현재 기본 할당 동작을 사용 중:",
+ "LINK_SUCCESS": "할당 정책이 성공적으로 연결되었습니다.",
+ "LINK_ERROR": "할당 정책을 연결하지 못했습니다."
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "할당 정책을 삭제하시겠습니까?",
+ "DELETE_CONFIRM_MESSAGE": "이 받은 메시지함에서 이 할당 정책을 제거하시겠습니까? 받은 메시지함은 기본 할당 규칙으로 돌아갑니다.",
+ "CANCEL": "취소",
+ "CONFIRM_DELETE": "삭제",
+ "DELETE_SUCCESS": "할당 정책이 성공적으로 제거되었습니다.",
+ "DELETE_ERROR": "할당 정책을 제거하지 못했습니다."
},
"FACEBOOK_REAUTHORIZE": {
"TITLE": "재승인",
- "SUBTITLE": "페이스북 연결이 만료되었습니다. 서비스를 계속하려면 페이스북 페이지를 다시 연결하십시오.",
+ "SUBTITLE": "Facebook 연결이 만료되었습니다. 서비스를 계속하려면 Facebook 페이지를 다시 연결하십시오.",
"MESSAGE_SUCCESS": "다시 연결 성공",
"MESSAGE_ERROR": "오류가 발생했습니다. 다시 시도하십시오."
},
"PRE_CHAT_FORM": {
"DESCRIPTION": "대화 전 설문을 통해, 실제 대화 전에 사용자 정보를 확보할 수 있습니다.",
- "SET_FIELDS": "Pre chat form fields",
+ "SET_FIELDS": "대화 전 설문 필드",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "필드",
+ "LABEL": "레이블",
+ "PLACE_HOLDER": "플레이스홀더",
+ "KEY": "키",
+ "TYPE": "유형",
+ "REQUIRED": "필수"
},
"ENABLE": {
"LABEL": "대화 전 설문 사용하기",
@@ -554,49 +918,121 @@
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "이 메시지가 대화전 설문과 함께 사용자에게 보여집니다."
+ "LABEL": "대화 전 메시지",
+ "PLACEHOLDER": "이 메시지가 대화 전 설문과 함께 사용자에게 보여집니다."
},
"REQUIRE_EMAIL": {
"LABEL": "대화 전 사용자들에게 이름과 이메일 주소를 요구합니다."
}
},
+ "CSAT": {
+ "TITLE": "CSAT 사용",
+ "SUBTITLE": "대화가 끝날 때 자동으로 CSAT 설문조사를 발송하여 고객이 지원 경험에 대해 어떻게 느끼는지 파악합니다. 만족도 추이를 추적하고 시간이 지남에 따라 개선할 영역을 식별합니다.",
+ "DISPLAY_TYPE": {
+ "LABEL": "표시 유형"
+ },
+ "MESSAGE": {
+ "LABEL": "메시지",
+ "PLACEHOLDER": "사용자에게 설문과 함께 표시할 메시지를 입력하십시오."
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "버튼 텍스트",
+ "PLACEHOLDER": "평가해 주십시오"
+ },
+ "LANGUAGE": {
+ "LABEL": "언어",
+ "PLACEHOLDER": "템플릿 언어 선택"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "메시지 미리보기",
+ "TOOLTIP": "WhatsApp 플랫폼에서 렌더링될 때 약간 다를 수 있습니다."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "WhatsApp에서 승인됨",
+ "PENDING": "WhatsApp 승인 대기 중",
+ "REJECTED": "Meta에서 템플릿을 거부했습니다",
+ "DEFAULT": "WhatsApp 승인이 필요합니다",
+ "NOT_FOUND": "Meta 플랫폼에 해당 템플릿이 존재하지 않습니다."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp 템플릿이 성공적으로 생성되어 승인을 위해 전송되었습니다.",
+ "ERROR_MESSAGE": "WhatsApp 템플릿을 생성하지 못했습니다."
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "설문 세부 정보 편집",
+ "DESCRIPTION": "이전 템플릿을 삭제하고 WhatsApp 승인을 위해 다시 전송될 새 템플릿을 만듭니다.",
+ "CONFIRM": "새 템플릿 만들기",
+ "CANCEL": "돌아가기"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "유틸리티 적합성 확인",
+ "HELPER_NOTE": "제출 전에 이 메시지를 확인하여 유틸리티 적합성을 높이십시오. 시스템은 보고용 버튼이 포함된 전용 CSAT 템플릿을 만들고 Utility로 제출하지만, Meta는 내용에 따라 이를 Marketing으로 다시 분류할 수 있습니다.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "이는 가이드용 점검이며 Meta 승인을 보장하지 않습니다.",
+ "SUGGESTION_LABEL": "추천 유틸리티 안전 문구",
+ "APPLY": "이 문구 사용",
+ "ERROR_MESSAGE": "메시지를 분석할 수 없습니다. 다시 시도하십시오.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "유틸리티일 가능성 높음",
+ "LIKELY_MARKETING": "마케팅일 가능성 높음",
+ "UNCLEAR": "추가 확인 필요"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "설문 규칙",
+ "DESCRIPTION_PREFIX": "대화가 다음 레이블 중 하나를",
+ "DESCRIPTION_SUFFIX": "경우 설문을 전송합니다",
+ "OPERATOR": {
+ "CONTAINS": "포함하는",
+ "DOES_NOT_CONTAINS": "포함하지 않는"
+ },
+ "SELECT_PLACEHOLDER": "레이블 선택"
+ },
+ "NOTE": "참고: CSAT 설문조사는 대화당 한 번만 전송됩니다.",
+ "WHATSAPP_NOTE": "참고: 템플릿을 생성하여 WhatsApp 승인을 위해 전송합니다. 승인된 후 설문 규칙에 따라 대화당 한 번만 설문조사가 전송됩니다.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "CSAT 설정을 업데이트할 수 없습니다. 나중에 다시 시도하십시오."
+ }
+ },
"BUSINESS_HOURS": {
"TITLE": "영업시간 설정",
- "SUBTITLE": "라이브챗 위젯의 대화용 영업시간을 설정하세요.",
+ "SUBTITLE": "라이브챗 위젯의 대화용 영업시간을 설정하십시오.",
"WEEKLY_TITLE": "일주일 중 영업시간 설정",
"TIMEZONE_LABEL": "표준시간대 선택",
"UPDATE": "변경된 영업시간 적용",
"TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 영업시간 설정 적용",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "UNAVAILABLE_MESSAGE_LABEL": "방문자에게 표시할 부재 메시지",
+ "TOGGLE_HELP": "영업시간 설정을 사용하면 모든 에이전트가 오프라인이더라도 라이브 채팅 위젯에 근무 가능 시간이 표시됩니다. 근무 가능 시간 외에는 방문자에게 메시지와 대화 전 설문으로 안내할 수 있습니다.",
"DAY": {
+ "DAY": "요일",
+ "AVAILABILITY": "운영 시간",
+ "HOURS": "Hours",
"ENABLE": "아래 날짜에 대해 영업시간 설정 적용",
"UNAVAILABLE": "영업 종료",
- "HOURS": "시간",
"VALIDATION_ERROR": "영업시작 시간은 영업종료 시간보다 빨라야 합니다.",
"CHOOSE": "선택"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "종일"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "IMAP 세부 정보를 설정하십시오.",
+ "NOTE_TEXT": "SMTP를 사용하려면 먼저 IMAP을 구성하십시오.",
+ "UPDATE": "IMAP 설정 업데이트",
+ "TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 IMAP 구성 사용",
+ "TOGGLE_HELP": "IMAP을 사용하면 이메일을 수신할 수 있습니다.",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "IMAP 설정을 업데이트할 수 없습니다."
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "주소",
+ "PLACE_HOLDER": "주소 (예: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "포트",
+ "PLACE_HOLDER": "포트"
},
"LOGIN": {
"LABEL": "로그인",
@@ -606,29 +1042,30 @@
"LABEL": "비밀번호",
"PLACE_HOLDER": "비밀번호"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL 사용",
+ "AUTH_MECHANISM": "인증"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Microsoft 계정을 재인증하십시오."
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "SMTP 세부 정보를 설정하십시오.",
+ "UPDATE": "SMTP 설정 업데이트",
+ "TOGGLE_AVAILABILITY": "이 받은 메시지함에 대해 SMTP 구성 사용",
+ "TOGGLE_HELP": "SMTP를 사용하면 이메일을 발송할 수 있습니다.",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "SMTP 설정을 업데이트할 수 없습니다."
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "주소",
+ "PLACE_HOLDER": "주소 (예: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "포트",
+ "PLACE_HOLDER": "포트"
},
"LOGIN": {
"LABEL": "로그인",
@@ -639,23 +1076,23 @@
"PLACE_HOLDER": "비밀번호"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "도메인",
+ "PLACE_HOLDER": "도메인"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "암호화",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL 인증 모드",
+ "AUTH_MECHANISM": "인증"
},
- "NOTE": "Note: ",
+ "NOTE": "참고: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "웹사이트 아바타",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "SUCCESS_MESSAGE": "아바타가 성공적으로 삭제되었습니다.",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
}
@@ -663,53 +1100,54 @@
"WEBSITE_NAME": {
"LABEL": "웹사이트 이름",
"PLACE_HOLDER": "웹사이트 이름 입력 (예: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "ERROR": "올바른 웹사이트 이름을 입력하십시오."
},
"WELCOME_HEADING": {
- "LABEL": "헤드라인 입력",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "환영 헤드라인",
+ "PLACE_HOLDER": "안녕하세요!"
},
"WELCOME_TAGLINE": {
- "LABEL": "태그라인 입력",
+ "LABEL": "환영 태그라인",
"PLACE_HOLDER": "우리는 간단하게 우리와 연결되도록 합니다. 우리에게 무엇이든 물어보거나 피드백을 공유하십시오."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
+ "LABEL": "응답 시간",
"IN_A_FEW_MINUTES": "몇 분 후에",
"IN_A_FEW_HOURS": "몇 시간 안에",
- "IN_A_DAY": "며칠 안에"
+ "IN_A_DAY": "하루 안에"
},
"WIDGET_COLOR_LABEL": "위젯 색깔",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "버블",
+ "WIDGET_BUBBLE_POSITION_LABEL": "위젯 버블 위치",
+ "WIDGET_BUBBLE_TYPE_LABEL": "위젯 버블 유형",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "채팅하기",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "위젯 버블 런처 제목",
"PLACE_HOLDER": "채팅하기"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "위젯 설정 업데이트",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "위젯 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR_MESSAGE": "위젯 설정을 업데이트할 수 없습니다."
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "미리보기",
+ "SCRIPT": "스크립트"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "왼쪽",
+ "RIGHT": "오른쪽"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "표준",
+ "EXPANDED_BUBBLE": "확장 버블"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "기본",
+ "CHAT": "채팅"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "보통 몇 분 안에 응답",
@@ -722,18 +1160,43 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "부재중"
+ "ONLINE": "현재 온라인입니다",
+ "OFFLINE": "현재 부재 중입니다"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "안녕하세요",
+ "AGENT_MESSAGE": "안녕하십니까"
},
"BRANDING_TEXT": "Chatwoot 작동중",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Microsoft에 연결"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Google에 연결"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "기타 공급자",
+ "DESCRIPTION": "기타 공급자에 연결"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "웹사이트",
+ "TWITTER_PROFILE": "트위터",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "이메일",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API 채널",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "음성"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/index.js b/app/javascript/dashboard/i18n/locale/ko/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ko/index.js
+++ b/app/javascript/dashboard/i18n/locale/ko/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
index 2694d1a41..fec2001a3 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrationApps.json
@@ -1,36 +1,40 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
- "HEADER": "Applications",
+ "FETCHING": "통합을 가져오는 중",
+ "NO_HOOK_CONFIGURED": "이 계정에 구성된 {integrationId} 통합이 없습니다.",
+ "HEADER": "애플리케이션",
+ "COUNT": "{n}개의 통합 | {n}개의 통합",
+ "SEARCH_PLACEHOLDER": "검색...",
+ "NO_RESULTS": "검색과 일치하는 결과가 없습니다",
"STATUS": {
"ENABLED": "사용함",
"DISABLED": "사용 안 함"
},
"CONFIGURE": "구성",
- "ADD_BUTTON": "Add a new hook",
+ "ADD_BUTTON": "새 훅 추가",
"DELETE": {
"TITLE": {
- "INBOX": "Confirm deletion",
- "ACCOUNT": "Disconnect"
+ "INBOX": "삭제 확인",
+ "ACCOUNT": "연결 해제"
},
"MESSAGE": {
- "INBOX": "Are you sure to delete?",
- "ACCOUNT": "Are you sure to disconnect?"
+ "INBOX": "삭제하시겠습니까?",
+ "ACCOUNT": "연결을 해제하시겠습니까?"
},
"CONFIRM_BUTTON_TEXT": {
- "INBOX": "Yes, Delete",
- "ACCOUNT": "Yes, Disconnect"
+ "INBOX": "예, 삭제합니다",
+ "ACCOUNT": "예, 연결을 해제합니다"
},
"CANCEL_BUTTON_TEXT": "취소",
"API": {
- "SUCCESS_MESSAGE": "Hook deleted successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "훅이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"LIST": {
- "FETCHING": "Fetching integration hooks",
+ "FETCHING": "통합 훅을 가져오는 중",
"INBOX": "받은 메시지함",
+ "ACTIONS": "액션",
"DELETE": {
"BUTTON_TEXT": "삭제"
}
@@ -38,25 +42,26 @@
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox"
+ "LABEL": "받은 메시지함 선택",
+ "PLACEHOLDER": "받은 메시지함 선택"
},
"SUBMIT": "만들기",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "취소"
},
"API": {
- "SUCCESS_MESSAGE": "Integration hook added successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "통합 훅이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"CONNECT": {
"BUTTON_TEXT": "연결"
},
"DISCONNECT": {
- "BUTTON_TEXT": "Disconnect"
+ "BUTTON_TEXT": "연결 해제"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow는 대화형 인터페이스를 구축하기 위한 자연어 처리 플랫폼입니다. {installationName}와(과) 통합하면 봇이 먼저 문의를 처리하고 필요할 때 에이전트에게 전달할 수 있습니다. 리드 평가에 도움이 되고 FAQ 응답을 통해 에이전트 업무량을 줄여줍니다. Dialogflow를 추가하려면 Google Console에서 서비스 계정을 만들고 자격 증명을 공유하십시오. 자세한 내용은 문서를 참조하십시오"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/integrations.json b/app/javascript/dashboard/i18n/locale/ko/integrations.json
index 7a41267e6..03cae815a 100644
--- a/app/javascript/dashboard/i18n/locale/ko/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ko/integrations.json
@@ -1,213 +1,1103 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Shopify 연동 삭제",
+ "MESSAGE": "Shopify 연동을 삭제하시겠습니까?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify 스토어 연결",
+ "LABEL": "스토어 URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Shopify 스토어의 myshopify.com URL을 입력하십시오",
+ "CANCEL": "취소",
+ "SUBMIT": "스토어 연결"
+ },
+ "ERROR": "Shopify에 연결하는 중 오류가 발생했습니다. 다시 시도하시거나 문제가 지속되면 지원팀에 문의하십시오."
+ },
"HEADER": "통합",
+ "DESCRIPTION": "Chatwoot은 다양한 도구 및 서비스와 통합하여 팀의 효율성을 향상시킵니다. 아래 목록을 탐색하여 자주 사용하는 앱을 구성하십시오.",
+ "LEARN_MORE": "통합에 대해 자세히 알아보기",
+ "LOADING": "통합을 가져오는 중",
+ "SEARCH_PLACEHOLDER": "통합 검색...",
+ "NO_RESULTS": "검색과 일치하는 통합이 없습니다",
+ "CAPTAIN": {
+ "DISABLED": "계정에서 Captain이 활성화되어 있지 않습니다.",
+ "CLICK_HERE_TO_CONFIGURE": "여기를 클릭하여 구성하십시오",
+ "LOADING_CONSOLE": "Captain 콘솔을 로드하는 중...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain 콘솔을 로드하지 못했습니다. 페이지를 새로고침한 후 다시 시도하십시오."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "구독된 이벤트",
+ "LEARN_MORE": "webhook에 대해 자세히 알아보기",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "시크릿을 클립보드에 복사",
+ "COPY_SUCCESS": "시크릿이 클립보드에 복사되었습니다",
+ "TOGGLE": "시크릿 표시 전환",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n}개의 웹훅 | {n}개의 웹훅",
+ "SEARCH_PLACEHOLDER": "웹훅 검색...",
+ "NO_RESULTS": "검색과 일치하는 웹훅이 없습니다",
"FORM": {
"CANCEL": "취소",
- "DESC": "웹훅 이벤트는 Chatwoot 계정에서 일어나는 일에 대한 실시간 정보를 제공합니다. 콜백을 구성하려면 유효한 URL을 입력하십시오.",
+ "DESC": "webhook 이벤트는 Chatwoot 계정에서 일어나는 일에 대한 실시간 정보를 제공합니다. 콜백을 구성하려면 유효한 URL을 입력하십시오.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "이벤트",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "대화 생성됨",
+ "CONVERSATION_STATUS_CHANGED": "대화 상태 변경됨",
+ "CONVERSATION_UPDATED": "대화 업데이트됨",
+ "MESSAGE_CREATED": "메시지 생성됨",
+ "MESSAGE_UPDATED": "메시지 업데이트됨",
+ "WEBWIDGET_TRIGGERED": "사용자가 실시간 채팅 위젯을 열었습니다",
+ "CONTACT_CREATED": "연락처 생성됨",
+ "CONTACT_UPDATED": "연락처 업데이트됨",
+ "CONVERSATION_TYPING_ON": "대화 입력 중",
+ "CONVERSATION_TYPING_OFF": "대화 입력 중지",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "webhook 이름",
+ "PLACEHOLDER": "webhook 이름을 입력하십시오"
+ },
"END_POINT": {
- "LABEL": "웹훅 URL",
- "PLACEHOLDER": "예시: https://example/api/webhook",
+ "LABEL": "webhook URL",
+ "PLACEHOLDER": "예: {webhookExampleURL}",
"ERROR": "올바른 URL을 입력하십시오."
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "웹훅 만들기"
+ "EDIT_SUBMIT": "webhook 업데이트",
+ "ADD_SUBMIT": "webhook 만들기"
},
- "TITLE": "웹훅",
+ "TITLE": "webhook",
"CONFIGURE": "구성",
- "HEADER": "웹훅 설정",
- "HEADER_BTN_TXT": "새 웹훅 추가",
- "LOADING": "첨부된 웹훅을 가져오는 중",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "라벨
라벨은 대화를 분류하고 우선순위를 정하는 데 도움이 된다. 사이드패널에서 대화에 라벨을 할당할 수 있다.
라벨은 계정에 연결되며 조직에서 사용자 정의 워크플로우를 만드는 데 사용할 수 있다. 라벨에 사용자 정의 색상을 지정할 수 있으며, 라벨을 쉽게 식별할 수 있다. 사이드바에 라벨을 표시하여 대화를 쉽게 필터링할 수 있다.
",
+ "HEADER": "webhook 설정",
+ "HEADER_BTN_TXT": "새 webhook 추가",
+ "LOADING": "연결된 webhook을 가져오는 중",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다",
+ "SIDEBAR_TXT": "webhook
webhook은 모든 계정에 대해 정의할 수 있는 HTTP 콜백입니다. Chatwoot에서 메시지 생성과 같은 이벤트에 의해 트리거됩니다. 이 계정에 대해 하나 이상의 webhook을 만들 수 있습니다.
webhook을 만들려면 새 webhook 추가 버튼을 클릭하십시오. 삭제 버튼을 클릭하여 기존 webhook을 제거할 수도 있습니다.
",
"LIST": {
- "404": "이 계정에 구성된 웹훅이 없음.",
- "TITLE": "웹훅 관리",
- "TABLE_HEADER": [
- "웹훅 엔드포인트",
- "액션"
- ]
+ "404": "이 계정에 구성된 webhook이 없습니다.",
+ "TITLE": "webhook 관리",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "webhook 엔드포인트",
+ "ACTIONS": "액션"
+ }
},
"EDIT": {
"BUTTON_TEXT": "수정",
- "TITLE": "Edit webhook",
+ "TITLE": "webhook 수정",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook 구성이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"ADD": {
"CANCEL": "취소",
- "TITLE": "새 웹훅 추가",
+ "TITLE": "새 webhook 추가",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook 구성이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "웹훅이 성공적으로 삭제됨",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "webhook이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"CONFIRM": {
"TITLE": "삭제 확인",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "예, 삭제합니다. ",
- "NO": "아니요, 유지합니다."
+ "MESSAGE": "webhook을 삭제하시겠습니까? ({webhookURL})",
+ "YES": "예, 삭제합니다 ",
+ "NO": "아니요, 유지합니다"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "삭제",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "연동 삭제",
+ "MESSAGE": "연동을 삭제하시겠습니까? 삭제하면 Slack 워크스페이스의 대화에 대한 액세스가 사라집니다."
},
"HELP_TEXT": {
- "TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "TITLE": "Slack 연동 사용 방법",
+ "BODY": "이 연동을 통해 모든 수신 대화가 Slack 워크스페이스의 ***{selectedChannelName}*** 채널에 동기화됩니다. 채널 내에서 바로 모든 고객 대화를 관리할 수 있으며 메시지를 놓치지 않습니다.\n\n이 연동의 주요 기능은 다음과 같습니다:\n\n**Slack 내에서 대화에 응답하기:** ***{selectedChannelName}*** Slack 채널에서 대화에 응답하려면 메시지를 입력하고 스레드로 전송하십시오. 이렇게 하면 Chatwoot을 통해 고객에게 응답이 생성됩니다. 매우 간단합니다!\n\n **비공개 메모 작성:** 답장 대신 비공개 메모를 작성하려면 메시지를 ***`note:`***로 시작하십시오. 이렇게 하면 메시지가 비공개로 유지되며 고객에게 표시되지 않습니다.\n\n**상담원 프로필 연결:** Slack에서 답장한 사람이 동일한 이메일로 Chatwoot에 상담원 프로필을 가지고 있는 경우, 답장이 자동으로 해당 상담원 프로필과 연결됩니다. 이를 통해 누가 언제 무엇을 말했는지 쉽게 추적할 수 있습니다. 반면 답장한 사람에게 연결된 상담원 프로필이 없는 경우, 고객에게는 봇 프로필에서 보낸 것으로 표시됩니다.",
+ "SELECTED": "선택됨"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "채널 선택",
"UPDATE": "업데이트",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "채널 연결",
+ "DESCRIPTION": "Slack 워크스페이스가 Chatwoot에 연결되었습니다. 그러나 현재 연동이 비활성 상태입니다. 연동을 활성화하고 채널을 Chatwoot에 연결하려면 아래 버튼을 클릭하십시오.\n\n**참고:** 비공개 채널을 연결하려는 경우, 이 단계를 진행하기 전에 Chatwoot 앱을 Slack 채널에 추가하십시오.",
+ "ATTENTION_REQUIRED": "주의가 필요합니다",
+ "EXPIRED": "Slack 연동이 만료되었습니다. Slack에서 메시지를 계속 수신하려면 연동을 삭제하고 워크스페이스를 다시 연결하십시오."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "연동을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "UPDATE_SUCCESS": "채널이 성공적으로 연결되었습니다",
+ "FAILED_TO_FETCH_CHANNELS": "Slack에서 채널을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "여기를 클릭하여 참여하십시오",
+ "LEAVE_THE_ROOM": "방 나가기",
+ "START_VIDEO_CALL_HELP_TEXT": "고객과 새 영상 통화를 시작합니다",
+ "JOIN_ERROR": "통화에 참여하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "CREATE_ERROR": "회의 링크를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI 어시스트",
+ "WITH_AI": " AI로 {option} ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "답장 제안",
+ "SUMMARIZE": "요약",
+ "REPHRASE": "문장 개선",
+ "FIX_SPELLING_GRAMMAR": "맞춤법 및 문법 수정",
+ "SHORTEN": "줄이기",
+ "EXPAND": "확장",
+ "MAKE_FRIENDLY": "메시지 톤을 친근하게 변경",
+ "MAKE_FORMAL": "격식체 사용",
+ "SIMPLIFY": "간소화",
+ "CONFIDENT": "자신감 있는 톤 사용",
+ "PROFESSIONAL": "전문적인 톤 사용",
+ "CASUAL": "캐주얼한 톤 사용",
+ "STRAIGHTFORWARD": "직설적인 톤 사용"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "답장 개선",
+ "IMPROVE_REPLY_SELECTION": "선택 항목 개선",
+ "CHANGE_TONE": {
+ "TITLE": "톤 변경",
+ "OPTIONS": {
+ "PROFESSIONAL": "전문적",
+ "CASUAL": "캐주얼",
+ "STRAIGHTFORWARD": "직설적",
+ "CONFIDENT": "자신감 있는",
+ "FRIENDLY": "친근한"
+ }
+ },
+ "GRAMMAR": "문법 및 맞춤법 수정",
+ "SUGGESTION": "답장 제안",
+ "SUMMARIZE": "대화 요약",
+ "ASK_COPILOT": "Copilot에게 질문"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "초안 내용",
+ "GENERATED_TITLE": "생성된 내용",
+ "AI_WRITING": "AI가 작성 중입니다",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "이 제안 사용",
"CANCEL": "취소"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "OpenAI와 통합",
+ "DESC": "OpenAI의 GPT 모델을 사용하여 대시보드에 고급 AI 기능을 도입하십시오. 시작하려면 OpenAI 계정의 API 키를 입력하십시오.",
+ "KEY_PLACEHOLDER": "OpenAI API 키를 입력하십시오",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "도움이 필요하십니까?",
+ "DISMISS": "닫기",
+ "FINISH": "설정 완료"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "OpenAI 연동은 원하실 때 언제든지 설정할 수 있습니다.",
+ "SUCCESS_MESSAGE": "OpenAI 연동이 성공적으로 설정되었습니다"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "AI로 개선",
+ "SUMMARY_TITLE": "AI 요약",
+ "REPLY_TITLE": "AI 답장 제안",
+ "SUBTITLE": "현재 초안을 기반으로 AI를 사용하여 개선된 답장이 생성됩니다.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "톤",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "전문적",
+ "FRIENDLY": "친근한"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "생성",
+ "GENERATING": "생성 중...",
"CANCEL": "취소"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "내용을 처리하는 중 오류가 발생했습니다. OpenAI API 키를 확인한 후 다시 시도하십시오."
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "통합이 성공적으로 삭제됨."
+ "SUCCESS_MESSAGE": "통합이 성공적으로 삭제되었습니다"
}
},
"CONNECT": {
"BUTTON_TEXT": "연결"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "대시보드 앱",
+ "HEADER_BTN_TXT": "새 대시보드 앱 추가",
+ "SIDEBAR_TXT": "대시보드 앱
대시보드 앱을 사용하면 조직이 Chatwoot 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 대시보드 내에 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.
Chatwoot의 대시보드를 사용하여 애플리케이션을 임베드하면, 애플리케이션은 대화 및 연락처 컨텍스트를 윈도우 이벤트로 수신합니다. 컨텍스트를 수신하려면 페이지에서 메시지 이벤트에 대한 리스너를 구현하십시오.
새 대시보드 앱을 추가하려면 '새 대시보드 앱 추가' 버튼을 클릭하십시오.
",
+ "DESCRIPTION": "대시보드 앱을 사용하면 조직이 대시보드 내에 애플리케이션을 임베드하여 고객 지원 상담원에게 컨텍스트를 제공할 수 있습니다. 이 기능을 사용하면 독립적으로 애플리케이션을 만들고 임베드하여 사용자 정보, 주문 내역 또는 이전 결제 내역을 제공할 수 있습니다.",
+ "LEARN_MORE": "대시보드 앱에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 대시보드 앱 | {n}개의 대시보드 앱",
+ "SEARCH_PLACEHOLDER": "대시보드 앱 검색...",
+ "NO_RESULTS": "검색과 일치하는 대시보드 앱이 없습니다",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "이름",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "이 계정에 구성된 대시보드 앱이 아직 없습니다",
+ "LOADING": "대시보드 앱을 가져오는 중...",
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "ENDPOINT": "엔드포인트",
+ "ACTIONS": "액션"
+ },
+ "EDIT_TOOLTIP": "앱 수정",
+ "DELETE_TOOLTIP": "앱 삭제"
},
"FORM": {
"TITLE_LABEL": "이름",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_PLACEHOLDER": "대시보드 앱의 이름을 입력하십시오",
+ "TITLE_ERROR": "대시보드 앱의 이름은 필수입니다",
+ "URL_LABEL": "엔드포인트",
+ "URL_PLACEHOLDER": "앱이 호스팅되는 엔드포인트 URL을 입력하십시오",
+ "URL_ERROR": "유효한 URL이 필요합니다"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "새 대시보드 앱 추가",
"FORM_SUBMIT": "보내기",
"FORM_CANCEL": "취소",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "대시보드 앱이 성공적으로 구성되었습니다",
+ "API_ERROR": "앱을 만들 수 없었습니다. 나중에 다시 시도하십시오."
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
+ "HEADER": "대시보드 앱 수정",
"FORM_SUBMIT": "업데이트",
"FORM_CANCEL": "취소",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "대시보드 앱이 성공적으로 업데이트되었습니다",
+ "API_ERROR": "앱을 업데이트할 수 없었습니다. 나중에 다시 시도하십시오."
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "예, 삭제합니다",
+ "CONFIRM_NO": "아니요, 유지합니다",
+ "TITLE": "삭제 확인",
+ "MESSAGE": "앱을 삭제하시겠습니까 - {appName}?",
+ "API_SUCCESS": "대시보드 앱이 성공적으로 삭제되었습니다",
+ "API_ERROR": "앱을 삭제할 수 없었습니다. 나중에 다시 시도하십시오."
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear 이슈 생성/연결",
+ "LOADING": "Linear 이슈를 가져오는 중...",
+ "LOADING_ERROR": "Linear 이슈를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "CREATE": "만들기",
+ "LINK": {
+ "SEARCH": "이슈 검색",
+ "SELECT": "이슈 선택",
+ "TITLE": "연결",
+ "EMPTY_LIST": "Linear 이슈를 찾을 수 없습니다",
+ "LOADING": "로딩 중",
+ "ERROR": "Linear 이슈를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LINK_SUCCESS": "이슈가 성공적으로 연결되었습니다",
+ "LINK_ERROR": "이슈를 연결하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LINK_TITLE": "대화 (#{conversationId}) - {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linear 이슈 생성/연결",
+ "DESCRIPTION": "대화에서 Linear 이슈를 생성하거나 기존 이슈를 연결하여 원활하게 추적할 수 있습니다.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "제목",
+ "PLACEHOLDER": "제목을 입력하십시오",
+ "REQUIRED_ERROR": "제목은 필수입니다"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "설명을 입력하십시오"
+ },
+ "TEAM": {
+ "LABEL": "팀",
+ "PLACEHOLDER": "팀 선택",
+ "SEARCH": "팀 검색",
+ "REQUIRED_ERROR": "팀은 필수입니다"
+ },
+ "ASSIGNEE": {
+ "LABEL": "담당자",
+ "PLACEHOLDER": "담당자 선택",
+ "SEARCH": "담당자 검색"
+ },
+ "PRIORITY": {
+ "LABEL": "우선순위",
+ "PLACEHOLDER": "우선순위 선택",
+ "SEARCH": "우선순위 검색"
+ },
+ "LABEL": {
+ "LABEL": "라벨",
+ "PLACEHOLDER": "라벨 선택",
+ "SEARCH": "라벨 검색"
+ },
+ "STATUS": {
+ "LABEL": "상태",
+ "PLACEHOLDER": "상태 선택",
+ "SEARCH": "상태 검색"
+ },
+ "PROJECT": {
+ "LABEL": "프로젝트",
+ "PLACEHOLDER": "프로젝트 선택",
+ "SEARCH": "프로젝트 검색"
+ }
+ },
+ "CREATE": "만들기",
+ "CANCEL": "취소",
+ "CREATE_SUCCESS": "이슈가 성공적으로 생성되었습니다",
+ "CREATE_ERROR": "이슈를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADING_TEAM_ERROR": "팀을 가져오는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADING_TEAM_ENTITIES_ERROR": "팀 엔티티를 가져오는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "ISSUE": {
+ "STATUS": "상태",
+ "PRIORITY": "우선순위",
+ "ASSIGNEE": "담당자",
+ "LABELS": "라벨",
+ "CREATED_AT": "생성일: {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "연결 해제",
+ "SUCCESS": "이슈 연결이 성공적으로 해제되었습니다",
+ "ERROR": "이슈 연결을 해제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "NO_LINKED_ISSUES": "연결된 이슈가 없습니다",
+ "DELETE": {
+ "TITLE": "연동을 삭제하시겠습니까?",
+ "MESSAGE": "연동을 삭제하시겠습니까?",
+ "CONFIRM": "예, 삭제합니다",
+ "CANCEL": "취소"
+ },
+ "CTA": {
+ "TITLE": "Linear에 연결",
+ "AGENT_DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 관리자에게 워크스페이스 연결을 요청하십시오.",
+ "DESCRIPTION": "Linear 워크스페이스가 연결되어 있지 않습니다. 이 연동을 사용하려면 아래 버튼을 클릭하여 워크스페이스를 연결하십시오.",
+ "BUTTON_TEXT": "Linear 워크스페이스 연결"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Notion 연동을 삭제하시겠습니까?",
+ "MESSAGE": "이 연동을 삭제하면 Notion 워크스페이스에 대한 액세스가 제거되고 모든 관련 기능이 중지됩니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "CANCEL": "취소"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "자세히 알아보기",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "어시스턴트",
+ "SWITCH_ASSISTANT": "어시스턴트 간 전환",
+ "NEW_ASSISTANT": "어시스턴트 만들기",
+ "EMPTY_LIST": "어시스턴트가 없습니다. 시작하려면 하나를 만드십시오."
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "다음 프롬프트를 시도하십시오",
+ "PANEL_TITLE": "Copilot 시작하기",
+ "KICK_OFF_MESSAGE": "빠른 요약이 필요하거나 이전 대화를 확인하거나 더 나은 답장을 작성하고 싶으신가요? Copilot이 도와드립니다.",
+ "SEND_MESSAGE": "메시지 보내기...",
+ "EMPTY_MESSAGE": "응답을 생성하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "LOADER": "Captain이 생각 중입니다",
+ "YOU": "나",
+ "USE": "사용하기",
+ "RESET": "초기화",
+ "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를 사용하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "Captain은 무료 요금제에서 사용할 수 없습니다.",
+ "UPGRADE_PROMPT": "어시스턴트, Copilot 등에 액세스하려면 요금제를 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 요금제를 변경하거나 취소할 수 있습니다"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI는 Enterprise 요금제에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "어시스턴트, Copilot 등에 액세스하려면 요금제를 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
+ },
+ "BANNER": {
+ "RESPONSES": "응답 한도의 80% 이상을 사용했습니다. Captain AI를 계속 사용하려면 업그레이드하십시오.",
+ "DOCUMENTS": "문서 한도에 도달했습니다. Captain AI를 계속 사용하려면 업그레이드하십시오."
+ },
+ "FORM": {
+ "CANCEL": "취소",
+ "CREATE": "만들기",
+ "EDIT": "업데이트"
+ },
+ "ASSISTANTS": {
+ "HEADER": "어시스턴트",
+ "NO_ASSISTANTS_AVAILABLE": "계정에 사용 가능한 어시스턴트가 없습니다.",
+ "ADD_NEW": "새 어시스턴트 만들기",
+ "DELETE": {
+ "TITLE": "어시스턴트를 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 어시스턴트를 삭제하면 연결된 모든 받은 편지함에서 제거되고 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM_DESCRIPTION": "아래 세부 정보를 입력하여 어시스턴트의 이름, 목적 및 지원할 제품을 지정하십시오.",
+ "CREATE": {
+ "TITLE": "어시스턴트 만들기",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "UPDATE": "업데이트",
+ "SECTIONS": {
+ "BASIC_INFO": "기본 정보",
+ "SYSTEM_MESSAGES": "시스템 메시지",
+ "INSTRUCTIONS": "지침",
+ "FEATURES": "기능",
+ "TOOLS": "도구 "
+ },
+ "NAME": {
+ "LABEL": "이름",
+ "PLACEHOLDER": "어시스턴트 이름을 입력하십시오",
+ "ERROR": "이름은 필수입니다"
+ },
+ "TEMPERATURE": {
+ "LABEL": "응답 온도",
+ "DESCRIPTION": "어시스턴트의 응답이 얼마나 창의적이거나 제한적이어야 하는지 조정합니다. 낮은 값은 더 집중적이고 결정론적인 응답을 생성하고, 높은 값은 더 창의적이고 다양한 출력을 허용합니다."
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "어시스턴트 설명을 입력하십시오",
+ "ERROR": "설명은 필수입니다"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "제품 이름",
+ "PLACEHOLDER": "제품 이름을 입력하십시오",
+ "ERROR": "제품 이름은 필수입니다"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "환영 메시지",
+ "PLACEHOLDER": "환영 메시지를 입력하십시오"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "전환 메시지",
+ "PLACEHOLDER": "전환 메시지를 입력하십시오"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "해결 메시지",
+ "PLACEHOLDER": "해결 메시지를 입력하십시오"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "지침",
+ "PLACEHOLDER": "어시스턴트에 대한 지침을 입력하십시오"
+ },
+ "FEATURES": {
+ "TITLE": "기능",
+ "ALLOW_CONVERSATION_FAQS": "해결된 대화에서 FAQ 생성",
+ "ALLOW_MEMORIES": "고객 상호작용에서 주요 세부 정보를 기억으로 캡처합니다.",
+ "ALLOW_CITATIONS": "응답에 출처 인용을 포함합니다",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "어시스턴트 업데이트",
+ "SUCCESS_MESSAGE": "어시스턴트가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "어시스턴트를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "NOT_FOUND": "어시스턴트를 찾을 수 없습니다. 다시 시도하십시오."
+ },
+ "SETTINGS": {
+ "HEADER": "설정",
+ "BASIC_SETTINGS": {
+ "TITLE": "기본 설정",
+ "DESCRIPTION": "대화를 종료하거나 상담원에게 전환할 때 어시스턴트가 표시하는 메시지를 맞춤 설정합니다."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "시스템 설정",
+ "DESCRIPTION": "대화를 종료하거나 상담원에게 전환할 때 어시스턴트가 표시하는 메시지를 맞춤 설정합니다."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "고급 설정",
+ "DESCRIPTION": "어시스턴트에 더 많은 제어 기능을 추가합니다. (쿼리 가드레일 → 시나리오 → 출력과 같은 흐름으로 구성됩니다) 이 기능들을 적극적으로 활용하십시오.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "가드레일",
+ "DESCRIPTION": "어시스턴트가 답변할 질문의 종류만 허용하여 주제에서 벗어나거나 부적절한 내용을 방지합니다."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "응답 가이드라인",
+ "DESCRIPTION": "어시스턴트 답변의 분위기와 구조를 설정합니다. 명확하고 친근하게? 짧고 간결하게? 상세하고 격식 있게?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "어시스턴트 삭제",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 어시스턴트를 삭제하면 연결된 모든 받은 편지함에서 제거되고 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "BUTTON_TEXT": "{assistantName} 삭제"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "어시스턴트 수정",
+ "DELETE_ASSISTANT": "어시스턴트 삭제",
+ "VIEW_CONNECTED_INBOXES": "연결된 받은 편지함 보기"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 어시스턴트가 없습니다",
+ "SUBTITLE": "사용자에게 빠르고 정확한 응답을 제공하는 어시스턴트를 만드십시오. 도움말 문서와 이전 대화에서 학습할 수 있습니다.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain 어시스턴트",
+ "NOTE": "Captain 어시스턴트는 고객과 직접 대화하며, 도움말 문서와 이전 대화에서 학습하여 즉각적이고 정확한 응답을 제공합니다. 초기 문의를 처리하여 빠른 해결을 제공하고 필요한 경우 상담원에게 전환합니다."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "가드레일",
+ "DESCRIPTION": "어시스턴트가 답변할 질문의 종류만 허용하여 주제에서 벗어나거나 부적절한 내용을 방지합니다.",
+ "BULK_ACTION": {
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "BULK_DELETE_BUTTON": "삭제"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "가드레일 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "SAVE": "추가 및 저장 (↵)",
+ "PLACEHOLDER": "다른 가드레일을 입력하십시오..."
+ },
+ "NEW": {
+ "TITLE": "가드레일 추가",
+ "CREATE": "만들기",
+ "CANCEL": "취소",
+ "PLACEHOLDER": "다른 가드레일을 입력하십시오...",
+ "TEST_ALL": "모두 테스트"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "검색..."
+ },
+ "EMPTY_MESSAGE": "가드레일이 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 가드레일이 없습니다.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "가드레일이 성공적으로 추가되었습니다",
+ "ERROR": "가드레일을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "UPDATE": {
+ "SUCCESS": "가드레일이 성공적으로 업데이트되었습니다",
+ "ERROR": "가드레일을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "DELETE": {
+ "SUCCESS": "가드레일이 성공적으로 삭제되었습니다",
+ "ERROR": "가드레일을 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "응답 가이드라인",
+ "DESCRIPTION": "어시스턴트 답변의 분위기와 구조를 설정합니다. 명확하고 친근하게? 짧고 간결하게? 상세하고 격식 있게?",
+ "BULK_ACTION": {
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "BULK_DELETE_BUTTON": "삭제"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "응답 가이드라인 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "SAVE": "추가 및 저장 (↵)",
+ "PLACEHOLDER": "다른 응답 가이드라인을 입력하십시오..."
+ },
+ "NEW": {
+ "TITLE": "응답 가이드라인 추가",
+ "CREATE": "만들기",
+ "CANCEL": "취소",
+ "PLACEHOLDER": "다른 응답 가이드라인을 입력하십시오...",
+ "TEST_ALL": "모두 테스트"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "검색..."
+ },
+ "EMPTY_MESSAGE": "응답 가이드라인이 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 응답 가이드라인이 없습니다.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "응답 가이드라인이 성공적으로 추가되었습니다",
+ "ERROR": "응답 가이드라인을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "UPDATE": {
+ "SUCCESS": "응답 가이드라인이 성공적으로 업데이트되었습니다",
+ "ERROR": "응답 가이드라인을 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "DELETE": {
+ "SUCCESS": "응답 가이드라인이 성공적으로 삭제되었습니다",
+ "ERROR": "응답 가이드라인을 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "시나리오",
+ "DESCRIPTION": "어시스턴트에게 컨텍스트를 제공하십시오. 예: \"사용자가 막혔을 때 할 일\" 또는 \"환불 요청 시 대응 방법\"",
+ "BULK_ACTION": {
+ "SELECTED": "{count}개 항목 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "BULK_DELETE_BUTTON": "삭제"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "시나리오 예시",
+ "ADD": "모두 추가",
+ "ADD_SINGLE": "이것 추가",
+ "TOOLS_USED": "사용된 도구 :"
+ },
+ "NEW": {
+ "CREATE": "시나리오 추가",
+ "TITLE": "시나리오 만들기",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "제목",
+ "PLACEHOLDER": "시나리오 이름을 입력하십시오",
+ "ERROR": "시나리오 이름은 필수입니다"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "이 시나리오가 어떻게 그리고 어디에서 사용될지 설명하십시오",
+ "ERROR": "시나리오 설명은 필수입니다"
+ },
+ "INSTRUCTION": {
+ "LABEL": "처리 방법",
+ "PLACEHOLDER": "이 시나리오가 어떻게 그리고 어디에서 처리될지 설명하십시오",
+ "ERROR": "시나리오 내용은 필수입니다"
+ },
+ "CREATE": "만들기",
+ "CANCEL": "취소"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "취소",
+ "UPDATE": "변경 사항 업데이트"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "검색..."
+ },
+ "EMPTY_MESSAGE": "시나리오가 없습니다. 예시를 만들거나 추가하여 시작하십시오.",
+ "SEARCH_EMPTY_MESSAGE": "이 검색에 해당하는 시나리오가 없습니다.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "시나리오가 성공적으로 추가되었습니다",
+ "ERROR": "시나리오를 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "UPDATE": {
+ "SUCCESS": "시나리오가 성공적으로 업데이트되었습니다",
+ "ERROR": "시나리오를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "DELETE": {
+ "SUCCESS": "시나리오가 성공적으로 삭제되었습니다",
+ "ERROR": "시나리오를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "문서",
+ "ADD_NEW": "새 문서 만들기",
+ "SELECTED": "{count}개 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "BULK_DELETE_BUTTON": "삭제",
+ "BULK_SYNC_BUTTON": "새로고침",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "예, 모두 삭제합니다",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "실패"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "검색..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "업데이트 중...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "페이지를 찾을 수 없습니다",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "관련 FAQ",
+ "DESCRIPTION": "이 FAQ는 문서에서 직접 생성되었습니다."
+ },
+ "FORM_DESCRIPTION": "문서의 URL을 입력하여 지식 소스로 추가하고 연결할 어시스턴트를 선택하십시오.",
+ "CREATE": {
+ "TITLE": "문서 추가",
+ "SUCCESS_MESSAGE": "문서가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "문서를 생성하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "문서 유형",
+ "URL": "URL",
+ "PDF": "PDF 파일"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "문서의 URL을 입력하십시오",
+ "ERROR": "문서에 대한 유효한 URL을 제공하십시오"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF 파일",
+ "CHOOSE_FILE": "PDF 파일 선택",
+ "ERROR": "PDF 파일을 선택하십시오",
+ "HELP_TEXT": "최대 파일 크기: 10MB",
+ "INVALID_TYPE": "유효한 PDF 파일을 선택하십시오",
+ "TOO_LARGE": "파일 크기가 10MB 한도를 초과합니다"
+ },
+ "NAME": {
+ "LABEL": "문서 이름 (선택 사항)",
+ "PLACEHOLDER": "문서 이름을 입력하십시오"
+ }
+ },
+ "DELETE": {
+ "TITLE": "문서를 삭제하시겠습니까?",
+ "DESCRIPTION": "이 작업은 영구적입니다. 이 문서를 삭제하면 생성된 모든 지식이 영구적으로 삭제됩니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "문서가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "문서를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "관련 응답 보기",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "문서 삭제"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 문서가 없습니다",
+ "SUBTITLE": "문서는 어시스턴트가 FAQ를 생성하는 데 사용됩니다. 어시스턴트에 컨텍스트를 제공하기 위해 문서를 가져올 수 있습니다.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain 문서",
+ "NOTE": "Captain의 문서는 어시스턴트를 위한 지식 리소스로 활용됩니다. 도움말 센터나 가이드를 연결하면 Captain이 내용을 분석하여 고객 문의에 대한 정확한 응답을 제공할 수 있습니다."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "도구",
+ "ADD_NEW": "새 도구 만들기",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "사용 가능한 사용자 정의 도구가 없습니다",
+ "SUBTITLE": "사용자 정의 도구를 만들어 어시스턴트를 외부 API 및 서비스와 연결하고, 데이터를 가져오거나 사용자를 대신하여 작업을 수행할 수 있도록 하십시오.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "사용자 정의 도구",
+ "NOTE": "사용자 정의 도구를 사용하면 어시스턴트가 외부 API 및 서비스와 상호작용할 수 있습니다. 데이터를 가져오거나 작업을 수행하거나 기존 시스템과 통합하여 어시스턴트의 기능을 향상시키는 도구를 만드십시오."
+ }
+ },
+ "FORM_DESCRIPTION": "외부 API와 연결하기 위해 사용자 정의 도구를 구성하십시오",
+ "OPTIONS": {
+ "EDIT_TOOL": "도구 수정",
+ "DELETE_TOOL": "도구 삭제"
+ },
+ "CREATE": {
+ "TITLE": "사용자 정의 도구 만들기",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 생성하지 못했습니다"
+ },
+ "EDIT": {
+ "TITLE": "사용자 정의 도구 수정",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 업데이트하지 못했습니다"
+ },
+ "DELETE": {
+ "TITLE": "사용자 정의 도구 삭제",
+ "DESCRIPTION": "이 사용자 정의 도구를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "사용자 정의 도구가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "사용자 정의 도구를 삭제하지 못했습니다"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "청구서 열기",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "업그레이드에 대해 관리자에게 문의하십시오."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "도구 이름",
+ "PLACEHOLDER": "주문 조회",
+ "ERROR": "도구 이름은 필수입니다",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명",
+ "PLACEHOLDER": "주문 ID로 주문 세부 정보를 조회합니다"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "메서드"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "엔드포인트 URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "유효한 URL이 필요합니다"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "인증 유형"
+ },
+ "AUTH_TYPES": {
+ "NONE": "없음",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Bearer 토큰을 입력하십시오",
+ "USERNAME": "사용자 이름",
+ "USERNAME_PLACEHOLDER": "사용자 이름을 입력하십시오",
+ "PASSWORD": "비밀번호",
+ "PASSWORD_PLACEHOLDER": "비밀번호를 입력하십시오",
+ "API_KEY": "헤더 이름",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "헤더 값",
+ "API_VALUE_PLACEHOLDER": "API 키 값을 입력하십시오"
+ },
+ "PARAMETERS": {
+ "LABEL": "매개변수",
+ "HELP_TEXT": "사용자 쿼리에서 추출할 매개변수를 정의하십시오"
+ },
+ "ADD_PARAMETER": "매개변수 추가",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "매개변수 이름 (예: order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "유형"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "숫자",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "매개변수에 대한 설명"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "필수"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "요청 본문 템플릿 (선택 사항)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "응답 템플릿 (선택 사항)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "매개변수 이름은 필수입니다"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "대기 중인 FAQ",
+ "ADD_NEW": "새 FAQ 만들기",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "대화 #{id}"
+ },
+ "SELECTED": "{count}개 선택됨",
+ "SELECT_ALL": "전체 선택 ({count})",
+ "UNSELECT_ALL": "전체 선택 해제 ({count})",
+ "SEARCH_PLACEHOLDER": "FAQ 검색...",
+ "BULK_APPROVE_BUTTON": "승인",
+ "BULK_DELETE_BUTTON": "삭제",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 승인되었습니다",
+ "ERROR_MESSAGE": "FAQ를 승인하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "BULK_DELETE": {
+ "TITLE": "FAQ를 삭제하시겠습니까?",
+ "DESCRIPTION": "선택한 FAQ를 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM": "예, 모두 삭제합니다",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "FAQ를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "DELETE": {
+ "TITLE": "FAQ를 삭제하시겠습니까?",
+ "DESCRIPTION": "",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "FAQ를 삭제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FILTER": {
+ "ASSISTANT": "어시스턴트: {selected}",
+ "STATUS": "상태: {selected}",
+ "ALL_ASSISTANTS": "전체"
+ },
+ "STATUS": {
+ "TITLE": "상태",
+ "PENDING": "대기 중",
+ "APPROVED": "승인됨",
+ "ALL": "전체"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain이 고객이 찾고 있던 FAQ를 발견했습니다.",
+ "ACTION": "여기를 클릭하여 검토하십시오"
+ },
+ "FORM_DESCRIPTION": "지식 베이스에 질문과 해당 답변을 추가하고 연결할 어시스턴트를 선택하십시오.",
+ "CREATE": {
+ "TITLE": "FAQ 추가",
+ "SUCCESS_MESSAGE": "응답이 성공적으로 추가되었습니다.",
+ "ERROR_MESSAGE": "응답을 추가하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "질문",
+ "PLACEHOLDER": "여기에 질문을 입력하십시오",
+ "ERROR": "유효한 질문을 입력하십시오."
+ },
+ "ANSWER": {
+ "LABEL": "답변",
+ "PLACEHOLDER": "여기에 답변을 입력하십시오",
+ "ERROR": "유효한 답변을 입력하십시오."
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ 업데이트",
+ "SUCCESS_MESSAGE": "FAQ가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "FAQ를 업데이트하는 중 오류가 발생했습니다. 다시 시도하십시오.",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ가 승인됨으로 표시되었습니다"
+ },
+ "OPTIONS": {
+ "APPROVE": "승인",
+ "EDIT_RESPONSE": "수정",
+ "DELETE_RESPONSE": "삭제"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "FAQ를 찾을 수 없습니다",
+ "NO_PENDING_TITLE": "검토할 대기 중인 FAQ가 더 이상 없습니다",
+ "SUBTITLE": "FAQ는 어시스턴트가 고객의 질문에 빠르고 정확한 답변을 제공하는 데 도움이 됩니다. 콘텐츠에서 자동으로 생성되거나 수동으로 추가할 수 있습니다.",
+ "CLEAR_SEARCH": "활성 필터 지우기",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain FAQ",
+ "NOTE": "Captain FAQ는 지식 베이스에서 누락되었거나 자주 질문되는 일반적인 고객 질문을 감지하고 관련 FAQ를 생성하여 지원을 개선합니다. 각 제안을 검토하고 승인 또는 거부를 결정할 수 있습니다."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "연결된 받은 편지함",
+ "ADD_NEW": "새 받은 편지함 연결",
+ "OPTIONS": {
+ "DISCONNECT": "연결 해제"
+ },
+ "DELETE": {
+ "TITLE": "받은 편지함 연결을 해제하시겠습니까?",
+ "DESCRIPTION": "",
+ "CONFIRM": "예, 삭제합니다",
+ "SUCCESS_MESSAGE": "받은 편지함이 성공적으로 연결 해제되었습니다.",
+ "ERROR_MESSAGE": "받은 편지함 연결을 해제하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM_DESCRIPTION": "어시스턴트와 연결할 받은 편지함을 선택하십시오.",
+ "CREATE": {
+ "TITLE": "받은 편지함 연결",
+ "SUCCESS_MESSAGE": "받은 편지함이 성공적으로 연결되었습니다.",
+ "ERROR_MESSAGE": "받은 편지함을 연결하는 중 오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "받은 편지함",
+ "PLACEHOLDER": "어시스턴트를 배포할 받은 편지함을 선택하십시오.",
+ "ERROR": "받은 편지함 선택은 필수입니다."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "연결된 받은 편지함이 없습니다",
+ "SUBTITLE": "받은 편지함을 연결하면 어시스턴트가 고객의 초기 질문을 처리한 후 상담원에게 전환할 수 있습니다."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
index b811033f7..d2c61e748 100644
--- a/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ko/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "라벨",
"HEADER_BTN_TXT": "라벨 추가",
"LOADING": "라벨을 가져오는 중",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "라벨
라벨은 대화를 분류하고 우선순위를 정하는 데 도움이 된다. 사이드패널에서 대화에 라벨을 할당할 수 있다.
라벨은 계정에 연결되며 조직에서 사용자 정의 워크플로우를 만드는 데 사용할 수 있다. 라벨에 사용자 정의 색상을 지정할 수 있으며, 라벨을 쉽게 식별할 수 있다. 사이드바에 라벨을 표시하여 대화를 쉽게 필터링할 수 있다.
",
+ "DESCRIPTION": "라벨은 대화와 리드를 분류하고 우선순위를 지정하는 데 도움이 됩니다. 사이드 패널을 사용하여 대화 또는 연락처에 라벨을 할당할 수 있습니다.",
+ "LEARN_MORE": "라벨에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 라벨 | {n}개의 라벨",
+ "SEARCH_PLACEHOLDER": "라벨 검색...",
+ "NO_RESULTS": "검색과 일치하는 라벨이 없습니다",
+ "SEARCH_404": "이 쿼리와 일치하는 항목이 없습니다",
"LIST": {
- "404": "이 계정에는 사용 가능한 라벨이 없다.",
+ "404": "이 계정에는 사용 가능한 라벨이 없습니다.",
"TITLE": "라벨 관리",
- "DESC": "라벨을 사용하여 대화를 그룹화할 수 있다.",
- "TABLE_HEADER": [
- "이름",
- "내용",
- "색깔"
- ]
+ "DESC": "라벨을 사용하여 대화를 그룹화할 수 있습니다.",
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "DESCRIPTION": "설명",
+ "COLOR": "색상",
+ "ACTION": "액션"
+ }
},
"FORM": {
"NAME": {
@@ -24,11 +29,11 @@
"VALID_ERROR": "영어나, 숫자, - 와 _ 만 사용 가능합니다"
},
"DESCRIPTION": {
- "LABEL": "내용",
- "PLACEHOLDER": "라벨 내용"
+ "LABEL": "설명",
+ "PLACEHOLDER": "라벨 설명"
},
"COLOR": {
- "LABEL": "색깔"
+ "LABEL": "색상"
},
"SHOW_ON_SIDEBAR": {
"LABEL": "사이드바에 라벨 표시"
@@ -40,36 +45,37 @@
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "대화에 라벨 추가",
+ "MULTIPLE_SUGGESTION": "이 라벨 선택",
+ "DESELECT": "라벨 선택 해제",
+ "DISMISS": "제안 닫기"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "닫기",
+ "ADD_SELECTED_LABELS": "선택한 라벨 추가",
+ "ADD_SELECTED_LABEL": "선택한 라벨 추가",
+ "ADD_ALL_LABELS": "모든 라벨 추가",
+ "SUGGESTED_LABELS": "제안된 라벨"
},
"ADD": {
"TITLE": "라벨 추가",
- "DESC": "라벨을 사용하여 대화를 그룹화할 수 있다.",
+ "DESC": "라벨을 사용하여 대화를 그룹화할 수 있습니다.",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 추가됨",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 추가되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
"EDIT": {
"TITLE": "라벨 수정",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 업데이트됨",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 업데이트되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
"DELETE": {
"BUTTON_TEXT": "삭제",
"API": {
- "SUCCESS_MESSAGE": "라벨이 성공적으로 삭제됨.",
+ "SUCCESS_MESSAGE": "라벨이 성공적으로 삭제되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
},
"CONFIRM": {
diff --git a/app/javascript/dashboard/i18n/locale/ko/login.json b/app/javascript/dashboard/i18n/locale/ko/login.json
index 61ac33bac..0c662c749 100644
--- a/app/javascript/dashboard/i18n/locale/ko/login.json
+++ b/app/javascript/dashboard/i18n/locale/ko/login.json
@@ -3,8 +3,8 @@
"TITLE": "로그인",
"EMAIL": {
"LABEL": "이메일",
- "PLACEHOLDER": "example@companyname.com",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오."
+ "PLACEHOLDER": "example{'@'}companyname.com",
+ "ERROR": "올바른 이메일 주소를 입력하십시오."
},
"PASSWORD": {
"LABEL": "비밀번호",
@@ -12,16 +12,30 @@
},
"API": {
"SUCCESS_MESSAGE": "로그인 성공",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요.",
- "UNAUTH": "이름 또는 비밀번호가 올바르지 않습니다. 다시 시도해 주세요."
+ "ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 다시 시도하십시오.",
+ "UNAUTH": "이름 또는 비밀번호가 올바르지 않습니다. 다시 시도하십시오."
},
"OAUTH": {
- "GOOGLE_LOGIN": "Login with Google",
- "BUSINESS_ACCOUNTS_ONLY": "Please use your company email address to login",
- "NO_ACCOUNT_FOUND": "We couldn't find an account for your email address."
+ "GOOGLE_LOGIN": "Google로 로그인",
+ "BUSINESS_ACCOUNTS_ONLY": "회사 이메일 주소를 사용하여 로그인하십시오.",
+ "NO_ACCOUNT_FOUND": "귀하의 이메일 주소로 계정을 찾을 수 없습니다."
},
- "FORGOT_PASSWORD": "암호를 잊으셨나요?",
- "CREATE_NEW_ACCOUNT": "계정 생성",
- "SUBMIT": "로그인"
+ "FORGOT_PASSWORD": "비밀번호를 잊으셨습니까?",
+ "CREATE_NEW_ACCOUNT": "새 계정 만들기",
+ "SUBMIT": "로그인",
+ "SAML": {
+ "LABEL": "SSO로 로그인",
+ "TITLE": "SSO(Single Sign-on) 시작",
+ "SUBTITLE": "조직에 액세스하려면 업무용 이메일을 입력하십시오",
+ "BACK_TO_LOGIN": "비밀번호로 로그인",
+ "WORK_EMAIL": {
+ "LABEL": "업무용 이메일",
+ "PLACEHOLDER": "업무용 이메일을 입력하십시오"
+ },
+ "SUBMIT": "SSO로 계속",
+ "API": {
+ "ERROR_MESSAGE": "SSO 인증에 실패했습니다. 자격 증명을 확인하고 다시 시도하십시오."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/macros.json b/app/javascript/dashboard/i18n/locale/ko/macros.json
index 675bc1e11..62e67cea5 100644
--- a/app/javascript/dashboard/i18n/locale/ko/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ko/macros.json
@@ -1,78 +1,121 @@
{
"MACROS": {
- "HEADER": "Macros",
- "HEADER_BTN_TXT": "Add a new macro",
- "HEADER_BTN_TXT_SAVE": "Save macro",
- "LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
- "ERROR": "Something went wrong. Please try again",
- "ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
+ "HEADER": "매크로",
+ "DESCRIPTION": "매크로는 고객 서비스 에이전트가 작업을 쉽게 완료할 수 있도록 도와주는 저장된 액션 모음입니다. 에이전트는 대화에 라벨 태그 지정, 이메일 대화 내용 전송, 사용자 정의 속성 업데이트 등의 액션을 정의하고, 클릭 한 번으로 이러한 액션을 실행할 수 있습니다.",
+ "LEARN_MORE": "매크로에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 매크로 | {n}개의 매크로",
+ "HEADER_BTN_TXT": "새 매크로 추가",
+ "HEADER_BTN_TXT_SAVE": "매크로 저장",
+ "LOADING": "매크로를 불러오는 중",
+ "SEARCH_PLACEHOLDER": "매크로 검색...",
+ "NO_RESULTS": "검색과 일치하는 매크로가 없습니다",
+ "ERROR": "오류가 발생했습니다. 다시 시도해 주십시오.",
+ "ORDER_INFO": "매크로는 액션을 추가한 순서대로 실행됩니다. 각 노드 옆의 핸들을 드래그하여 순서를 변경할 수 있습니다.",
"ADD": {
"FORM": {
"NAME": {
- "LABEL": "Macro name",
- "PLACEHOLDER": "Enter a name for your macro",
- "ERROR": "Name is required for creating a macro"
+ "LABEL": "매크로 이름",
+ "PLACEHOLDER": "매크로 이름을 입력하십시오",
+ "ERROR": "매크로를 생성하려면 이름이 필요합니다"
},
"ACTIONS": {
"LABEL": "액션"
}
},
"API": {
- "SUCCESS_MESSAGE": "Macro added successfully",
- "ERROR_MESSAGE": "Unable to create macro, Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "매크로를 생성할 수 없습니다. 나중에 다시 시도해 주십시오."
}
},
"LIST": {
- "TABLE_HEADER": [
- "이름",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
- "404": "No macros found"
+ "TABLE_HEADER": {
+ "NAME": "이름",
+ "CREATED BY": "작성자",
+ "LAST_UPDATED_BY": "최종 수정자",
+ "VISIBILITY": "공개 범위",
+ "ACTIONS": "액션"
+ },
+ "404": "매크로를 찾을 수 없습니다"
},
"DELETE": {
- "TOOLTIP": "Delete macro",
+ "TOOLTIP": "매크로 삭제",
"CONFIRM": {
"MESSAGE": "삭제하시겠습니까? ",
- "YES": "Yes, Delete",
+ "YES": "예, 삭제합니다",
"NO": "아니오"
},
"API": {
- "SUCCESS_MESSAGE": "Macro deleted successfully",
- "ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "매크로를 삭제하는 중 오류가 발생했습니다. 나중에 다시 시도해 주십시오."
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
- "TOOLTIP": "Edit macro",
+ "TOOLTIP": "매크로 수정",
"API": {
- "SUCCESS_MESSAGE": "Macro updated successfully",
- "ERROR_MESSAGE": "Could not update Macro, Please try again later"
+ "SUCCESS_MESSAGE": "매크로가 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "매크로를 업데이트할 수 없습니다. 나중에 다시 시도해 주십시오."
}
},
"EDITOR": {
- "START_FLOW": "Start Flow",
- "END_FLOW": "End Flow",
- "LOADING": "Fetching macro",
- "ADD_BTN_TOOLTIP": "Add new action",
- "DELETE_BTN_TOOLTIP": "Delete Action",
+ "START_FLOW": "흐름 시작",
+ "END_FLOW": "흐름 종료",
+ "LOADING": "매크로를 불러오는 중",
+ "ADD_BTN_TOOLTIP": "새 액션 추가",
+ "DELETE_BTN_TOOLTIP": "액션 삭제",
"VISIBILITY": {
- "LABEL": "Macro Visibility",
+ "LABEL": "매크로 공개 범위",
"GLOBAL": {
- "LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "LABEL": "공개",
+ "DESCRIPTION": "이 매크로는 이 계정의 모든 에이전트에게 공개됩니다.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
- "LABEL": "Private",
- "DESCRIPTION": "This macro will be private to you and not be available to others."
+ "LABEL": "비공개",
+ "DESCRIPTION": "이 매크로는 본인에게만 표시되며 다른 사람에게는 공개되지 않습니다."
}
}
},
"EXECUTE": {
- "BUTTON_TOOLTIP": "Execute",
- "PREVIEW": "Preview Macro",
- "EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ "BUTTON_TOOLTIP": "실행",
+ "PREVIEW": "매크로 미리보기",
+ "EXECUTED_SUCCESSFULLY": "매크로가 성공적으로 실행되었습니다"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "속성 키가 필요합니다",
+ "FILTER_OPERATOR_REQUIRED": "필터 연산자가 필요합니다",
+ "VALUE_REQUIRED": "값이 필요합니다",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "값은 1에서 998 사이여야 합니다",
+ "ACTION_PARAMETERS_REQUIRED": "액션 매개변수가 필요합니다",
+ "ATLEAST_ONE_CONDITION_REQUIRED": "최소 하나의 조건이 필요합니다",
+ "ATLEAST_ONE_ACTION_REQUIRED": "최소 하나의 액션이 필요합니다"
+ },
+ "ACTIONS": {
+ "ASSIGN_TEAM": "팀 배정",
+ "ASSIGN_AGENT": "에이전트 배정",
+ "ADD_LABEL": "라벨 추가",
+ "REMOVE_LABEL": "라벨 제거",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "배정된 팀 제거",
+ "SEND_EMAIL_TRANSCRIPT": "이메일 대화 내용 전송",
+ "MUTE_CONVERSATION": "대화 음소거",
+ "SNOOZE_CONVERSATION": "대화 일시 중지",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "SEND_ATTACHMENT": "첨부 파일 전송",
+ "SEND_MESSAGE": "메시지 전송",
+ "CHANGE_PRIORITY": "우선순위 변경",
+ "ADD_PRIVATE_NOTE": "비공개 메모 추가",
+ "SEND_WEBHOOK_EVENT": "웹훅 이벤트 전송"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "없음",
+ "LOW": "낮음",
+ "MEDIUM": "보통",
+ "HIGH": "높음",
+ "URGENT": "긴급"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/mfa.json b/app/javascript/dashboard/i18n/locale/ko/mfa.json
new file mode 100644
index 000000000..aadfbce52
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "2단계 인증",
+ "SUBTITLE": "TOTP 기반 인증으로 계정을 보호하십시오",
+ "DESCRIPTION": "시간 기반 일회용 비밀번호(TOTP)를 사용하여 계정에 추가 보안 계층을 적용합니다",
+ "STATUS_TITLE": "인증 상태",
+ "STATUS_DESCRIPTION": "2단계 인증 설정 및 백업 복구 코드를 관리합니다",
+ "ENABLED": "사용함",
+ "DISABLED": "사용 안 함",
+ "STATUS_ENABLED": "2단계 인증이 활성화되어 있습니다",
+ "STATUS_ENABLED_DESC": "계정이 추가 보안 계층으로 보호되고 있습니다",
+ "ENABLE_BUTTON": "2단계 인증 사용하기",
+ "ENHANCE_SECURITY": "계정 보안 강화",
+ "ENHANCE_SECURITY_DESC": "2단계 인증은 비밀번호 외에 인증 앱의 인증 코드를 추가로 요구하여 보안을 강화합니다.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "인증 앱으로 QR 코드를 스캔하십시오",
+ "STEP1_DESCRIPTION": "Google Authenticator, Authy 또는 TOTP 호환 앱을 사용하십시오",
+ "LOADING_QR": "로딩 중...",
+ "MANUAL_ENTRY": "스캔할 수 없습니까? 코드를 수동으로 입력하십시오",
+ "SECRET_KEY": "비밀 키",
+ "COPY": "복사",
+ "ENTER_CODE": "인증 앱에서 6자리 코드를 입력하십시오",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "확인 후 계속",
+ "CANCEL": "취소",
+ "ERROR_STARTING": "MFA가 활성화되지 않았습니다. 관리자에게 문의하십시오.",
+ "INVALID_CODE": "잘못된 인증 코드입니다",
+ "SECRET_COPIED": "비밀 키가 클립보드에 복사되었습니다",
+ "SUCCESS": "2단계 인증이 성공적으로 활성화되었습니다"
+ },
+ "BACKUP": {
+ "TITLE": "백업 코드를 저장하십시오",
+ "DESCRIPTION": "이 코드를 안전하게 보관하십시오. 인증 앱에 접근할 수 없을 때 각 코드를 한 번씩 사용할 수 있습니다.",
+ "IMPORTANT": "중요:",
+ "IMPORTANT_NOTE": " 이 코드를 안전한 장소에 저장하십시오. 다시 확인할 수 없습니다.",
+ "DOWNLOAD": "다운로드",
+ "COPY_ALL": "모두 복사",
+ "CONFIRM": "백업 코드를 안전한 장소에 저장했으며 다시 확인할 수 없다는 것을 이해합니다",
+ "COMPLETE_SETUP": "설정 완료",
+ "CODES_COPIED": "백업 코드가 클립보드에 복사되었습니다"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "백업 코드",
+ "BACKUP_CODES_DESC": "기존 코드를 분실했거나 사용한 경우 새 코드를 생성하십시오",
+ "REGENERATE": "백업 코드 재생성",
+ "DISABLE_MFA": "2FA 비활성화",
+ "DISABLE_MFA_DESC": "계정에서 2단계 인증을 제거합니다",
+ "DISABLE_BUTTON": "2단계 인증 비활성화"
+ },
+ "DISABLE": {
+ "TITLE": "2단계 인증 비활성화",
+ "DESCRIPTION": "2단계 인증을 비활성화하려면 비밀번호와 인증 코드를 입력해야 합니다.",
+ "PASSWORD": "비밀번호",
+ "OTP_CODE": "인증 코드",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "백업 코드",
+ "BACKUP_CODE_PLACEHOLDER": "백업 코드 중 하나를 입력하십시오",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "2FA 비활성화",
+ "CANCEL": "취소",
+ "SUCCESS": "2단계 인증이 비활성화되었습니다",
+ "ERROR": "MFA 비활성화에 실패했습니다. 자격 증명을 확인해 주십시오."
+ },
+ "REGENERATE": {
+ "TITLE": "백업 코드 재생성",
+ "DESCRIPTION": "기존 백업 코드가 무효화되고 새 코드가 생성됩니다. 계속하려면 인증 코드를 입력하십시오.",
+ "OTP_CODE": "인증 코드",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "새 코드 생성",
+ "CANCEL": "취소",
+ "NEW_CODES_TITLE": "새 백업 코드가 생성되었습니다",
+ "NEW_CODES_DESC": "기존 백업 코드가 무효화되었습니다. 이 새 코드를 안전한 장소에 저장하십시오.",
+ "CODES_IMPORTANT": "중요:",
+ "CODES_IMPORTANT_NOTE": " 각 코드는 한 번만 사용할 수 있습니다. 이 창을 닫기 전에 저장하십시오.",
+ "DOWNLOAD_CODES": "코드 다운로드",
+ "COPY_ALL_CODES": "모든 코드 복사",
+ "CODES_SAVED": "코드를 저장했습니다",
+ "SUCCESS": "새 백업 코드가 생성되었습니다",
+ "ERROR": "백업 코드 재생성에 실패했습니다"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "2단계 인증",
+ "DESCRIPTION": "계속하려면 인증 코드를 입력하십시오",
+ "AUTHENTICATOR_APP": "인증 앱",
+ "BACKUP_CODE": "백업 코드",
+ "ENTER_OTP_CODE": "인증 앱에서 6자리 코드를 입력하십시오",
+ "ENTER_BACKUP_CODE": "백업 코드 중 하나를 입력하십시오",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "확인",
+ "TRY_ANOTHER_METHOD": "다른 인증 방법 시도",
+ "CANCEL_LOGIN": "취소하고 로그인 페이지로 돌아가기",
+ "HELP_TEXT": "로그인에 문제가 있습니까?",
+ "LEARN_MORE": "2FA에 대해 자세히 알아보기",
+ "HELP_MODAL": {
+ "TITLE": "2단계 인증 도움말",
+ "AUTHENTICATOR_TITLE": "인증 앱 사용",
+ "AUTHENTICATOR_DESC": "인증 앱(Google Authenticator, Authy 등)을 열고 계정에 표시된 6자리 코드를 입력하십시오.",
+ "BACKUP_TITLE": "백업 코드 사용",
+ "BACKUP_DESC": "인증 앱에 접근할 수 없는 경우 2FA 설정 시 저장한 백업 코드 중 하나를 사용할 수 있습니다. 각 코드는 한 번만 사용할 수 있습니다.",
+ "CONTACT_TITLE": "추가 도움이 필요하십니까?",
+ "CONTACT_DESC_CLOUD": "인증 앱과 백업 코드 모두에 접근할 수 없는 경우 Chatwoot 지원팀에 문의하십시오.",
+ "CONTACT_DESC_SELF_HOSTED": "인증 앱과 백업 코드 모두에 접근할 수 없는 경우 관리자에게 문의하십시오."
+ },
+ "VERIFICATION_FAILED": "인증에 실패했습니다. 다시 시도해 주십시오."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/onboarding.json b/app/javascript/dashboard/i18n/locale/ko/onboarding.json
new file mode 100644
index 000000000..d16ae5d5a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "이메일",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "홈페이지",
+ "LANGUAGE": "언어",
+ "TIMEZONE": "시간대",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "표준시간대 선택",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "계속",
+ "SAVING": "저장 중...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/report.json b/app/javascript/dashboard/i18n/locale/ko/report.json
index 592fbdd2a..5b923c682 100644
--- a/app/javascript/dashboard/i18n/locale/ko/report.json
+++ b/app/javascript/dashboard/i18n/locale/ko/report.json
@@ -3,9 +3,9 @@
"HEADER": "대화",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_AGENT_REPORTS": "다운로드 에이전트 보고서",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "대화 보고서 다운로드",
+ "DATA_FETCHING_FAILED": "데이터를 가져오지 못했습니다. 나중에 다시 시도하십시오.",
+ "SUMMARY_FETCHING_FAILED": "요약을 가져오지 못했습니다. 나중에 다시 시도하십시오.",
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -20,124 +20,124 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
"DESC": "( 총 )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "해결 수",
+ "DESC": "( 총 )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "핸드오프 수",
+ "DESC": "( 총 )"
+ },
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "고객 대기 시간",
+ "TOOLTIP_TEXT": "대기 시간은 {metricValue}입니다 ({conversationCount}개 응답 기준)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "지난 7일",
+ "LAST_14_DAYS": "지난 14일",
"LAST_30_DAYS": "지난 30일",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "THIS_MONTH": "이번 달",
+ "LAST_MONTH": "지난 달",
+ "LAST_3_MONTHS": "지난 3개월",
+ "LAST_6_MONTHS": "지난 6개월",
+ "LAST_YEAR": "지난 1년",
+ "CUSTOM_DATE_RANGE": "사용자 지정 날짜 범위"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "지난 7일"
- },
- {
- "id": 1,
- "name": "지난 30일"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "그룹 기준",
+ "DURATION_FILTER_LABEL": "기간",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
- "YEAR": "Month"
+ "DAY": "일",
+ "WEEK": "주",
+ "MONTH": "월",
+ "YEAR": "년"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "일"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "월"
}
],
"GROUP_BY_YEAR_OPTIONS": [
- {
- "id": 1,
- "groupBy": "Day"
- },
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "주"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "월"
+ },
+ {
+ "id": 4,
+ "groupBy": "년"
}
],
- "BUSINESS_HOURS": "영업시간"
+ "BUSINESS_HOURS": "영업시간",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "필터 지우기",
+ "EMPTY_LIST": "검색 결과가 없습니다"
+ },
+ "PAGINATION": {
+ "RESULTS": "{total}개 결과 중 {start}~{end} 표시",
+ "PER_PAGE_TEMPLATE": "{size} / 페이지"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
+ "HEADER": "에이전트 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 에이전트 성과를 쉽게 추적할 수 있습니다. 에이전트 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_AGENT_REPORTS": "다운로드 에이전트 보고서",
+ "DOWNLOAD_AGENT_REPORTS": "에이전트 보고서 다운로드",
"FILTER_DROPDOWN_LABEL": "에이전트 선택",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "에이전트 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -152,16 +152,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -179,32 +179,38 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
+ "HEADER": "라벨 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 라벨 성과를 추적할 수 있습니다. 라벨 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_LABEL_REPORTS": "Download label reports",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "DOWNLOAD_LABEL_REPORTS": "라벨 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "라벨 선택",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "라벨 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -219,16 +225,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -246,32 +252,40 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
+ "HEADER": "받은 메시지함 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 주요 지표로 받은 메시지함 성과를 한눈에 확인할 수 있습니다. 받은 메시지함 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "DOWNLOAD_INBOX_REPORTS": "받은 메시지함 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "받은 메시지함 선택",
+ "ALL_INBOXES": "모든 받은 메시지함",
+ "SEARCH_INBOX": "받은 메시지함 검색",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "받은 메시지함 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -286,16 +300,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -313,32 +327,41 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
+ "HEADER": "팀 개요",
+ "DESCRIPTION": "대화, 응답 시간, 해결 시간, 해결된 케이스 등 필수 지표로 팀 성과를 한눈에 확인할 수 있습니다. 팀 이름을 클릭하면 자세한 내용을 확인할 수 있습니다.",
"LOADING_CHART": "차트 데이터 불러오는 중...",
"NO_ENOUGH_DATA": "보고서를 생성할 수 있는 데이터 포인트가 부족합니다. 나중에 다시 시도하십시오.",
- "DOWNLOAD_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "DOWNLOAD_TEAM_REPORTS": "팀 보고서 다운로드",
+ "FILTER_DROPDOWN_LABEL": "팀 선택",
+ "FILTERS": {
+ "ADD_FILTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "팀 검색"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "대화",
@@ -353,16 +376,16 @@
"DESC": "( 총 )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
+ "NAME": "첫 번째 응답 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "첫 번째 응답 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_TIME": {
"NAME": "해결 시간",
"DESC": "( 평균 )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "INFO_TEXT": "계산에 사용된 총 대화 수:",
+ "TOOLTIP_TEXT": "해결 시간은 {metricValue}입니다 ({conversationCount}개 대화 기준)"
},
"RESOLUTION_COUNT": {
"NAME": "해결 수",
@@ -380,101 +403,248 @@
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "지난 3개월"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "지난 6개월"
},
{
"id": 4,
- "name": "Last year"
+ "name": "지난 1년"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "사용자 지정 날짜 범위"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "적용",
+ "PLACEHOLDER": "날짜 범위 선택"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "CSAT 보고서",
+ "NO_RECORDS": "아직 응답이 없습니다",
+ "NO_RECORDS_DESCRIPTION": "고객이 피드백을 제공하기 시작하면 CSAT 설문 응답이 여기에 표시됩니다.",
+ "DOWNLOAD": "CSAT 보고서 다운로드",
+ "DOWNLOAD_FAILED": "CSAT 보고서 다운로드에 실패했습니다",
"FILTERS": {
+ "ADD_FILTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "에이전트 검색",
+ "INBOXES": "받은 메시지함 검색",
+ "TEAMS": "팀 검색",
+ "RATINGS": "평점 검색"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "에이전트"
+ },
+ "INBOXES": {
+ "LABEL": "받은 메시지함"
+ },
+ "TEAMS": {
+ "LABEL": "팀"
+ },
+ "RATINGS": {
+ "LABEL": "평점"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "연락처",
+ "AGENT_NAME": "에이전트",
+ "RATING": "평점",
+ "FEEDBACK_TEXT": "피드백 코멘트",
+ "CONVERSATION": "대화",
+ "CUSTOMER": "고객",
+ "RESPONSE": "응답",
+ "HANDLED_BY": "담당자"
+ },
+ "UNKNOWN_CUSTOMER": "알 수 없는 고객"
},
+ "NO_AGENT": "배정된 에이전트 없음",
+ "NO_FEEDBACK": "피드백이 제공되지 않았습니다",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "총 응답 수",
+ "TOOLTIP": "수집된 총 응답 수"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "만족도 점수",
+ "TOOLTIP": "긍정적 응답 수 / 총 응답 수 * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "응답률",
+ "TOOLTIP": "총 응답 수 / 발송된 CSAT 설문 메시지 수 * 100"
+ },
+ "RATING_DISTRIBUTION": "평점 분포"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "리뷰 메모",
+ "PLACEHOLDER": "이 평점에 대한 리뷰 메모를 추가하십시오...",
+ "SAVE": "저장",
+ "CANCEL": "취소",
+ "SAVING": "저장 중...",
+ "SAVED": "메모가 성공적으로 저장되었습니다",
+ "SAVE_ERROR": "메모 저장에 실패했습니다",
+ "UPDATED_BY": "{name}이(가) {time}에 업데이트함",
+ "UPDATED_BY_LABEL": "업데이트한 사람",
+ "PAYWALL": {
+ "TITLE": "리뷰 메모를 추가하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "리뷰 메모 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "리뷰 메모를 통해 모든 CSAT 응답에 내부 컨텍스트를 추가할 수 있습니다. 실제 상황을 기록하고, 패턴을 빠르게 파악하며, 피드백을 기반으로 더 나은 결정을 내리십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "봇 보고서",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "대화 수",
+ "TOOLTIP": "봇이 처리한 총 대화 수"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "총 응답 수",
+ "TOOLTIP": "봇이 보낸 총 응답 수"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "해결률",
+ "TOOLTIP": "봇이 해결한 대화 수 / 봇이 처리한 총 대화 수 * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "핸드오프율",
+ "TOOLTIP": "에이전트에게 전달된 대화 수 / 봇이 처리한 총 대화 수 * 100"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
- "LIVE": "Live",
+ "HEADER": "개요",
+ "LIVE": "실시간",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
- "OPEN": "열기",
- "UNATTENDED": "Unattended",
- "UNASSIGNED": "지정되지 않음",
- "PENDING": "보내는 중"
+ "HEADER": "열린 대화",
+ "LOADING_MESSAGE": "대화 지표 불러오는 중...",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
+ "UNASSIGNED": "미배정",
+ "PENDING": "보류 중"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "대화 트래픽",
+ "NO_CONVERSATIONS": "대화 없음",
+ "CONVERSATION": "{count}개 대화",
+ "CONVERSATIONS": "{count}개 대화",
+ "DOWNLOAD_REPORT": "보고서 다운로드"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "해결",
+ "NO_CONVERSATIONS": "대화 없음",
+ "CONVERSATION": "{count}개 대화",
+ "CONVERSATIONS": "{count}개 대화",
+ "DOWNLOAD_REPORT": "보고서 다운로드"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "에이전트별 대화",
+ "LOADING_MESSAGE": "에이전트 지표 불러오는 중...",
+ "NO_AGENTS": "에이전트별 대화가 없습니다",
"TABLE_HEADER": {
"AGENT": "에이전트",
- "OPEN": "OPEN",
- "UNATTENDED": "Unattended",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
+ "STATUS": "상태"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "모든 팀",
+ "HEADER": "팀별 대화",
+ "LOADING_MESSAGE": "팀 지표 불러오는 중...",
+ "NO_TEAMS": "사용 가능한 데이터가 없습니다",
+ "TABLE_HEADER": {
+ "TEAM": "팀",
+ "OPEN": "열림",
+ "UNATTENDED": "미응대",
"STATUS": "상태"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
+ "HEADER": "에이전트 상태",
"ONLINE": "온라인",
"BUSY": "바쁨",
"OFFLINE": "오프라인"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "일요일",
+ "MONDAY": "월요일",
+ "TUESDAY": "화요일",
+ "WEDNESDAY": "수요일",
+ "THURSDAY": "목요일",
+ "FRIDAY": "금요일",
+ "SATURDAY": "토요일"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA 보고서",
+ "NO_RECORDS": "SLA가 적용된 대화가 없습니다.",
+ "LOADING": "SLA 데이터 불러오는 중...",
+ "DOWNLOAD_SLA_REPORTS": "SLA 보고서 다운로드",
+ "DOWNLOAD_FAILED": "SLA 보고서 다운로드에 실패했습니다",
+ "DROPDOWN": {
+ "ADD_FIlTER": "필터 추가",
+ "CLEAR_ALL": "모두 지우기",
+ "CLEAR_FILTER": "필터 지우기",
+ "EMPTY_LIST": "검색 결과가 없습니다",
+ "NO_FILTER": "사용 가능한 필터가 없습니다",
+ "SEARCH": "필터 검색",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA 이름",
+ "AGENTS": "에이전트 이름",
+ "INBOXES": "받은 메시지함 이름",
+ "LABELS": "라벨 이름",
+ "TEAMS": "팀 이름"
+ },
+ "SLA": "SLA 정책",
+ "INBOXES": "받은 메시지함",
+ "AGENTS": "에이전트",
+ "LABELS": "라벨",
+ "TEAMS": "팀"
+ },
+ "WITH": "포함",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "달성률",
+ "TOOLTIP": "생성된 SLA 중 성공적으로 완료된 비율"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "미달성 수",
+ "TOOLTIP": "특정 기간 내 총 SLA 미달성 수"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "대화 수",
+ "TOOLTIP": "SLA가 적용된 총 대화 수"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "정책",
+ "CONVERSATION": "대화",
+ "AGENT": "에이전트"
+ },
+ "VIEW_DETAILS": "상세 보기"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "받은 메시지함",
+ "AGENT": "에이전트",
+ "TEAM": "팀",
+ "LABEL": "라벨",
+ "AVG_RESOLUTION_TIME": "평균 해결 시간",
+ "AVG_FIRST_RESPONSE_TIME": "평균 첫 번째 응답 시간",
+ "AVG_REPLY_TIME": "평균 고객 대기 시간",
+ "RESOLUTION_COUNT": "해결 수",
+ "CONVERSATIONS": "대화 수"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/resetPassword.json b/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
index 4a17337be..5e57f706f 100644
--- a/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ko/resetPassword.json
@@ -1,15 +1,15 @@
{
"RESET_PASSWORD": {
"TITLE": "비밀번호 재설정하기",
- "DESCRIPTION": "Enter the email address you use to log in to Chatwoot to get the password reset instructions.",
- "GO_BACK_TO_LOGIN": "If you want to go back to the login page,",
+ "DESCRIPTION": "비밀번호 재설정 안내를 받으려면 Chatwoot에 로그인할 때 사용하는 이메일 주소를 입력하십시오.",
+ "GO_BACK_TO_LOGIN": "로그인 페이지로 돌아가려면",
"EMAIL": {
"LABEL": "이메일",
"PLACEHOLDER": "이메일을 입력해 주세요.",
"ERROR": "올바른 이메일 주소를 입력하세요."
},
"API": {
- "SUCCESS_MESSAGE": "비밀번호 재설정 링크가 이메일로 전송됨.",
+ "SUCCESS_MESSAGE": "비밀번호 재설정 링크가 이메일로 전송되었습니다.",
"ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
},
"SUBMIT": "보내기"
diff --git a/app/javascript/dashboard/i18n/locale/ko/search.json b/app/javascript/dashboard/i18n/locale/ko/search.json
index 2f872cf59..90630a3de 100644
--- a/app/javascript/dashboard/i18n/locale/ko/search.json
+++ b/app/javascript/dashboard/i18n/locale/ko/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "모두",
+ "ALL": "모든 결과",
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
- "MESSAGES": "메시지"
+ "MESSAGES": "메시지",
+ "ARTICLES": "문서"
},
"SECTION": {
"CONTACTS": "연락처",
"CONVERSATIONS": "대화",
- "MESSAGES": "메시지"
+ "MESSAGES": "메시지",
+ "ARTICLES": "문서"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
- "INPUT_PLACEHOLDER": "Type 3 or more characters to search",
- "EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
+ "VIEW_MORE": "더 보기",
+ "LOAD_MORE": "더 불러오기",
+ "SEARCHING_DATA": "검색 중",
+ "LOADING_DATA": "로딩 중",
+ "EMPTY_STATE": "'{query}' 검색어에 대한 {item}을(를) 찾을 수 없습니다",
+ "EMPTY_STATE_FULL": "'{query}' 검색어에 대한 결과를 찾을 수 없습니다",
+ "PLACEHOLDER_KEYBINDING": "/ 로 포커스",
+ "INPUT_PLACEHOLDER": "검색하려면 3자 이상 입력하십시오",
+ "RECENT_SEARCHES": "최근 검색",
+ "CLEAR_ALL": "모두 지우기",
+ "MOST_RECENT": "최근",
+ "EMPTY_STATE_DEFAULT": "더 나은 검색 결과를 위해 대화 ID, 이메일, 전화번호, 메시지로 검색하십시오. ",
"BOT_LABEL": "봇",
- "READ_MORE": "Read more",
- "WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "이메일"
+ "READ_MORE": "더 읽기",
+ "READ_LESS": "접기",
+ "WROTE": "작성:",
+ "FROM": "보낸 사람",
+ "EMAIL": "이메일",
+ "EMAIL_SUBJECT": "제목",
+ "PRIVATE": "비공개 메모",
+ "TRANSCRIPT": "대화 내용",
+ "CREATED_AT": "{time}에 생성됨",
+ "UPDATED_AT": "{time}에 업데이트됨",
+ "SORT_BY": {
+ "RELEVANCE": "관련도"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "지난 7일",
+ "LAST_30_DAYS": "지난 30일",
+ "LAST_60_DAYS": "지난 60일",
+ "LAST_90_DAYS": "지난 90일",
+ "CUSTOM_RANGE": "사용자 지정 범위:",
+ "CREATED_BETWEEN": "생성 기간",
+ "AND": "~",
+ "APPLY": "적용",
+ "BEFORE_DATE": "{date} 이전",
+ "AFTER_DATE": "{date} 이후",
+ "TIME_RANGE": "기간별 필터",
+ "CLEAR_FILTER": "필터 지우기"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "메시지 필터 기준:",
+ "FROM": "발신자",
+ "IN": "받은 메시지함",
+ "AGENTS": "에이전트",
+ "CONTACTS": "연락처",
+ "INBOXES": "받은 메시지함",
+ "NO_AGENTS": "에이전트를 찾을 수 없습니다",
+ "NO_CONTACTS": "검색을 시작하여 결과를 확인하십시오",
+ "NO_INBOXES": "받은 메시지함을 찾을 수 없습니다"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json b/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
index 1456ba40e..d015d3922 100644
--- a/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
+++ b/app/javascript/dashboard/i18n/locale/ko/setNewPassword.json
@@ -4,19 +4,19 @@
"PASSWORD": {
"LABEL": "비밀번호",
"PLACEHOLDER": "비밀번호",
- "ERROR": "비밀번호가 너무 짧음."
+ "ERROR": "비밀번호가 너무 짧습니다."
},
"CONFIRM_PASSWORD": {
"LABEL": "비밀번호 확인",
"PLACEHOLDER": "비밀번호 확인",
- "ERROR": "비밀번호가 일치하지 않음."
+ "ERROR": "비밀번호가 일치하지 않습니다."
},
"API": {
- "SUCCESS_MESSAGE": "비밀번호 변경 성공.",
+ "SUCCESS_MESSAGE": "비밀번호가 성공적으로 변경되었습니다.",
"ERROR_MESSAGE": "Woot 서버에 연결할 수 없습니다. 나중에 다시 시도해 주세요."
},
"CAPTCHA": {
- "ERROR": "Verification expired. Please solve captcha again."
+ "ERROR": "인증이 만료되었습니다. 캡차를 다시 완료해 주십시오."
},
"SUBMIT": "보내기"
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/settings.json b/app/javascript/dashboard/i18n/locale/ko/settings.json
index 97e6c5398..225be4cb6 100644
--- a/app/javascript/dashboard/i18n/locale/ko/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/settings.json
@@ -3,13 +3,14 @@
"LINK": "프로필 설정",
"TITLE": "프로필 설정",
"BTN_TEXT": "프로필 업데이트",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "프로필이 성공적으로 업데이트되었습니다. 로그인 자격 증명이 변경된 경우 다시 로그인하십시오.",
+ "DELETE_AVATAR": "아바타 삭제",
+ "AVATAR_DELETE_SUCCESS": "아바타가 성공적으로 삭제되었습니다",
+ "AVATAR_DELETE_FAILED": "아바타 삭제 중 오류가 발생했습니다. 다시 시도하십시오",
+ "UPDATE_SUCCESS": "프로필이 성공적으로 업데이트되었습니다",
+ "PASSWORD_UPDATE_SUCCESS": "비밀번호가 성공적으로 변경되었습니다",
+ "AFTER_EMAIL_CHANGED": "프로필이 성공적으로 업데이트되었습니다. 로그인 자격 증명이 변경되었으므로 다시 로그인하십시오.",
"FORM": {
+ "PICTURE": "프로필 사진",
"AVATAR": "프로필 이미지",
"ERROR": "양식 오류를 수정하십시오",
"REMOVE_IMAGE": "제거",
@@ -17,88 +18,169 @@
"UPDATE_IMAGE": "이미지 업데이트",
"PROFILE_SECTION": {
"TITLE": "프로필",
- "NOTE": "당신의 이메일 주소는 당신의 신분이고 로그인에 사용됩니다."
+ "NOTE": "이메일 주소는 사용자 식별에 사용되며 로그인에 사용됩니다."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "메시지 전송 단축키",
+ "NOTE": "작성 스타일에 따라 단축키(Enter 또는 Cmd/Ctrl+Enter)를 선택할 수 있습니다.",
+ "UPDATE_SUCCESS": "설정이 성공적으로 업데이트되었습니다",
"CARD": {
"ENTER_KEY": {
"HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "CONTENT": "전송 버튼을 클릭하는 대신 Enter 키를 눌러 메시지를 전송합니다."
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "전송 버튼을 클릭하는 대신 Cmd/Ctrl + Enter 키를 눌러 메시지를 전송합니다."
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "인터페이스",
+ "NOTE": "대시보드의 모양과 느낌을 사용자 정의합니다.",
+ "FONT_SIZE": {
+ "TITLE": "글꼴 크기",
+ "NOTE": "선호도에 따라 대시보드 전체의 텍스트 크기를 조정합니다.",
+ "UPDATE_SUCCESS": "글꼴 설정이 성공적으로 업데이트되었습니다",
+ "UPDATE_ERROR": "글꼴 설정 업데이트 중 오류가 발생했습니다. 다시 시도하십시오",
+ "OPTIONS": {
+ "SMALLER": "더 작게",
+ "SMALL": "작게",
+ "DEFAULT": "기본",
+ "LARGE": "크게",
+ "LARGER": "더 크게",
+ "EXTRA_LARGE": "매우 크게"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "선호 언어",
+ "NOTE": "사용할 언어를 선택하십시오.",
+ "UPDATE_SUCCESS": "언어 설정이 성공적으로 업데이트되었습니다",
+ "UPDATE_ERROR": "언어 설정 업데이트 중 오류가 발생했습니다. 다시 시도하십시오",
+ "USE_ACCOUNT_DEFAULT": "계정 기본값 사용"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "개인 메시지 서명",
+ "NOTE": "모든 받은 메시지함에서 보내는 모든 메시지 끝에 표시되는 고유한 메시지 서명을 만드십시오. 인라인 이미지도 포함할 수 있으며, 라이브 채팅, 이메일 및 API 받은 메시지함에서 지원됩니다.",
+ "BTN_TEXT": "메시지 서명 저장",
+ "API_ERROR": "서명을 저장할 수 없습니다! 다시 시도하십시오",
+ "API_SUCCESS": "서명이 성공적으로 저장되었습니다",
+ "IMAGE_UPLOAD_ERROR": "이미지를 업로드할 수 없습니다! 다시 시도하십시오",
+ "IMAGE_UPLOAD_SUCCESS": "이미지가 성공적으로 추가되었습니다. 저장을 클릭하여 서명을 저장하십시오",
+ "IMAGE_UPLOAD_SIZE_ERROR": "이미지 크기는 {size}MB 미만이어야 합니다",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "메시지 서명",
+ "ERROR": "메시지 서명은 비워둘 수 없습니다",
+ "PLACEHOLDER": "여기에 개인 메시지 서명을 입력하십시오."
},
"PASSWORD_SECTION": {
"TITLE": "비밀번호",
- "NOTE": "암호를 업데이트하면 여러 장치의 로그인이 재설정됩니다.",
- "BTN_TEXT": "Change password"
+ "NOTE": "비밀번호를 업데이트하면 여러 기기의 로그인이 재설정됩니다.",
+ "BTN_TEXT": "비밀번호 변경"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "보안",
+ "NOTE": "계정의 추가 보안 기능을 관리합니다.",
+ "MFA_BUTTON": "2단계 인증 관리"
},
"ACCESS_TOKEN": {
- "TITLE": "엑세스 토큰",
- "NOTE": "API 기반 통합을 구축하는 경우 이 토큰을 사용할 수 있음"
+ "TITLE": "액세스 토큰",
+ "NOTE": "API 기반 통합을 구축하는 경우 이 토큰을 사용할 수 있습니다",
+ "COPY": "복사",
+ "RESET": "재설정",
+ "CONFIRM_RESET": "정말로 진행하시겠습니까?",
+ "CONFIRM_HINT": "확인하려면 다시 클릭하십시오",
+ "RESET_SUCCESS": "액세스 토큰이 성공적으로 재생성되었습니다",
+ "RESET_ERROR": "액세스 토큰을 재생성할 수 없습니다. 다시 시도하십시오"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "음성 알림",
- "NOTE": "대시보드에서 새 메시지 및 대화에 대한 오디오 알림을 활성화합니다.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "오디오 알림",
+ "NOTE": "새 메시지 및 대화에 대한 대시보드 오디오 알림을 활성화합니다.",
+ "PLAY": "소리 재생",
+ "ALERT_TYPES": {
"NONE": "없음",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "MINE": "배정됨",
+ "ALL": "모두",
+ "ASSIGNED": "내 배정된 대화",
+ "UNASSIGNED": "배정되지 않은 대화",
+ "NOTME": "다른 사람에게 배정된 열린 대화"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "옵션을 선택하지 않았습니다. 오디오 알림을 받지 않습니다.",
+ "ASSIGNED": "배정된 대화에 대한 알림을 받습니다.",
+ "UNASSIGNED": "배정되지 않은 대화에 대한 알림을 받습니다.",
+ "NOTME": "다른 사람에게 배정된 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+UNASSIGNED": "배정된 대화 및 미배정 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+NOTME": "배정된 대화 및 다른 사람에게 배정된 대화에 대한 알림을 받지만, 미배정 대화에 대해서는 받지 않습니다.",
+ "NOTME+UNASSIGNED": "미배정 대화 및 다른 사람에게 배정된 대화에 대한 알림을 받습니다.",
+ "ASSIGNED+NOTME+UNASSIGNED": "모든 대화에 대한 알림을 받습니다."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "대화 알림 이벤트",
+ "NONE": "없음",
+ "ASSIGNED": "배정된 대화",
+ "ALL_CONVERSATIONS": "모든 대화"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "알림 소리:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "알림 조건:",
+ "CONDITION_ONE": "브라우저 창이 활성화되지 않은 경우에만 오디오 알림 전송",
+ "CONDITION_TWO": "배정된 모든 대화를 읽을 때까지 30초마다 알림 전송"
+ },
+ "SOUND_PERMISSION_ERROR": "브라우저에서 자동 재생이 비활성화되어 있습니다. 알림을 자동으로 들으려면 브라우저 설정에서 소리 권한을 활성화하거나 페이지와 상호 작용하십시오.",
+ "READ_MORE": "자세히 보기"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "이메일 알림",
- "NOTE": "여기서 이메일 알림 기본 설정 업데이트",
- "CONVERSATION_ASSIGNMENT": "대화가 할당될 때 이메일 알림 보내기",
+ "NOTE": "여기서 이메일 알림 기본 설정을 업데이트하십시오",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정될 때 이메일 알림 보내기",
"CONVERSATION_CREATION": "새 대화가 생성될 때 이메일 알림 보내기",
"CONVERSATION_MENTION": "대화에서 멘션될 때 이메일 알림 보내기",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성될 때 이메일 알림 보내기",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓쳤을 때 이메일 알림 보내기",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓쳤을 때 이메일 알림 보내기",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓쳤을 때 이메일 알림 보내기"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "알림 기본 설정",
+ "TYPE_TITLE": "알림 유형",
+ "EMAIL": "이메일",
+ "PUSH": "푸시 알림",
+ "TYPES": {
+ "CONVERSATION_CREATED": "새 대화가 생성됨",
+ "CONVERSATION_ASSIGNED": "대화가 배정됨",
+ "CONVERSATION_MENTION": "대화에서 멘션됨",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성됨",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성됨",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓침",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓침",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓침"
+ },
+ "BROWSER_PERMISSION": "브라우저의 푸시 알림을 활성화하여 알림을 받을 수 있도록 하십시오"
},
"API": {
- "UPDATE_SUCCESS": "알림 기본 설정이 성공적으로 업데이트됨",
+ "UPDATE_SUCCESS": "알림 기본 설정이 성공적으로 업데이트되었습니다",
"UPDATE_ERROR": "기본 설정을 업데이트하는 동안 오류가 발생했습니다. 다시 시도하십시오."
},
"PUSH_NOTIFICATIONS_SECTION": {
"TITLE": "푸시 알림",
- "NOTE": "여기에서 푸시 알림 기본 설정 업데이트",
- "CONVERSATION_ASSIGNMENT": "대화가 할당되면 푸시 알림 보내기",
- "CONVERSATION_CREATION": "새 대화가 만들어질 때 푸시 알림 보내기",
+ "NOTE": "여기에서 푸시 알림 기본 설정을 업데이트하십시오",
+ "CONVERSATION_ASSIGNMENT": "대화가 배정될 때 푸시 알림 보내기",
+ "CONVERSATION_CREATION": "새 대화가 생성될 때 푸시 알림 보내기",
"CONVERSATION_MENTION": "대화에서 멘션될 때 푸시 알림 보내기",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "할당된 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "이 브라우저에 대한 푸시를 사용 가능으로 설정하셨습니다.",
- "REQUEST_PUSH": "푸시 알림 사용"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "배정된 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "참여 중인 대화에서 새 메시지가 생성될 때 푸시 알림 보내기",
+ "HAS_ENABLED_PUSH": "이 브라우저에서 푸시 알림이 활성화되었습니다.",
+ "REQUEST_PUSH": "푸시 알림 활성화",
+ "SLA_MISSED_FIRST_RESPONSE": "대화가 첫 응답 SLA를 놓쳤을 때 푸시 알림 보내기",
+ "SLA_MISSED_NEXT_RESPONSE": "대화가 다음 응답 SLA를 놓쳤을 때 푸시 알림 보내기",
+ "SLA_MISSED_RESOLUTION": "대화가 해결 SLA를 놓쳤을 때 푸시 알림 보내기"
},
"PROFILE_IMAGE": {
"LABEL": "프로필 이미지"
@@ -109,85 +191,101 @@
"PLACEHOLDER": "전체 이름을 입력하십시오."
},
"DISPLAY_NAME": {
- "LABEL": "표기 이름",
+ "LABEL": "표시 이름",
"ERROR": "올바른 표시 이름을 입력하십시오.",
"PLACEHOLDER": "대화에서 표시되는 표시 이름을 입력하십시오."
},
"AVAILABILITY": {
- "LABEL": "유용성",
- "STATUSES_LIST": [
- "온라인",
- "바쁨",
- "오프라인"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "LABEL": "상태",
+ "STATUS": {
+ "ONLINE": "온라인",
+ "BUSY": "바쁨",
+ "OFFLINE": "오프라인"
+ },
+ "SET_AVAILABILITY_SUCCESS": "상태가 성공적으로 설정되었습니다",
+ "SET_AVAILABILITY_ERROR": "상태를 설정할 수 없습니다. 다시 시도하십시오",
+ "IMPERSONATING_ERROR": "사용자를 대리하는 동안 상태를 변경할 수 없습니다"
},
"EMAIL": {
"LABEL": "이메일 주소",
- "ERROR": "올바른 전자 메일 주소를 입력하십시오.",
+ "ERROR": "올바른 이메일 주소를 입력하십시오.",
"PLACEHOLDER": "대화 중에 표시되는 이메일 주소를 입력하십시오."
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "현재 비밀번호",
+ "ERROR": "현재 비밀번호를 입력하십시오",
+ "PLACEHOLDER": "현재 비밀번호를 입력하십시오"
},
"PASSWORD": {
- "LABEL": "New password",
+ "LABEL": "새 비밀번호",
"ERROR": "6글자 이상의 비밀번호를 입력하십시오.",
"PLACEHOLDER": "새 비밀번호를 입력하십시오."
},
"PASSWORD_CONFIRMATION": {
"LABEL": "새 비밀번호 확인",
- "ERROR": "비밀번호가 비밀번호와 일치하는지 확인",
- "PLACEHOLDER": "Please re-enter your new password"
+ "ERROR": "확인 비밀번호가 비밀번호와 일치해야 합니다",
+ "PLACEHOLDER": "새 비밀번호를 다시 입력하십시오."
}
}
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "변경",
"CHANGE_ACCOUNTS": "계정 전환",
- "CONTACT_SUPPORT": "Contact Support",
+ "SWITCH_ACCOUNT": "계정 전환",
+ "CONTACT_SUPPORT": "지원 문의",
"SELECTOR_SUBTITLE": "다음 목록에서 계정 선택",
"PROFILE_SETTINGS": "프로필 설정",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
+ "YEAR_IN_REVIEW": "연간 리뷰",
+ "KEYBOARD_SHORTCUTS": "키보드 단축키",
+ "APPEARANCE": "모양 변경",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin 콘솔",
+ "DOCS": "문서 읽기",
+ "CHANGELOG": "변경 이력",
"LOGOUT": "로그아웃"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "일 평가판이 남아 있습니다.",
"TRAIL_BUTTON": "지금 구입하기",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "삭제된 사용자",
+ "EMAIL_VERIFICATION_PENDING": "아직 이메일 주소를 인증하지 않은 것 같습니다. 받은 편지함에서 인증 이메일을 확인하십시오.",
+ "RESEND_VERIFICATION_MAIL": "인증 이메일 다시 보내기",
+ "EMAIL_VERIFICATION_SENT": "인증 이메일이 전송되었습니다. 받은 편지함을 확인하십시오.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "계정 정지됨",
+ "MESSAGE": "계정이 정지되었습니다. 자세한 정보는 지원팀에 문의하십시오."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "계정을 찾을 수 없습니다",
+ "MESSAGE_CLOUD": "현재 어떤 계정에도 속해 있지 않습니다. 오류라고 생각되시면 지원팀에 문의하십시오.",
+ "MESSAGE_SELF_HOSTED": "현재 어떤 계정에도 속해 있지 않습니다. 관리자에게 문의하십시오.",
+ "LOGOUT": "로그아웃"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "복사",
- "CODEPEN": "Open in CodePen",
- "COPY_SUCCESSFUL": "코드가 클립보드에 복사됨"
+ "CODEPEN": "CodePen에서 열기",
+ "COPY_SUCCESSFUL": "클립보드에 복사되었습니다"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "더 보기",
+ "SHOW_LESS": "접기"
},
"FILE_BUBBLE": {
"DOWNLOAD": "다운로드",
"UPLOADING": "업로드 중...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "이 스토리는 더 이상 사용할 수 없습니다.",
+ "INSTAGRAM_STORY_REPLY": "스토리에 답장:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "지도에서 보기"
},
"FORM_BUBBLE": {
"SUBMIT": "보내기"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "이 이미지는 더 이상 사용할 수 없습니다.",
+ "LOADING_FAILED": "로딩 실패"
}
},
"CONFIRM_EMAIL": "확인 중...",
@@ -197,129 +295,629 @@
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
+ "NO_ITEMS": "항목 없음",
+ "CURRENTLY_VIEWING_ACCOUNT": "현재 보기:",
+ "SWITCH": "전환",
+ "INBOX_VIEW": "받은 메시지함 보기",
"CONVERSATIONS": "대화",
- "INBOX": "받은 메시지함",
- "ALL_CONVERSATIONS": "All Conversations",
+ "INBOX": "내 받은 메시지함",
+ "ALL_CONVERSATIONS": "모든 대화",
"MENTIONED_CONVERSATIONS": "멘션",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
+ "PARTICIPATING_CONVERSATIONS": "참여 중",
+ "UNATTENDED_CONVERSATIONS": "미응답",
"REPORTS": "보고서",
"SETTINGS": "설정",
"CONTACTS": "연락처",
+ "ACTIVE": "활성",
+ "COMPANIES": "회사",
+ "ALL_COMPANIES": "모든 회사",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "어시스턴트",
+ "CAPTAIN_DOCUMENTS": "문서",
+ "CAPTAIN_RESPONSES": "FAQ",
+ "CAPTAIN_TOOLS": "도구",
+ "CAPTAIN_SCENARIOS": "시나리오",
+ "CAPTAIN_PLAYGROUND": "플레이그라운드",
+ "CAPTAIN_INBOXES": "받은 메시지함",
+ "CAPTAIN_SETTINGS": "설정",
"HOME": "홈",
"AGENTS": "에이전트",
"AGENT_BOTS": "봇",
- "AUDIT_LOGS": "Audit Logs",
+ "AUDIT_LOGS": "감사 로그",
"INBOXES": "받은 메시지함",
"NOTIFICATIONS": "알림",
"CANNED_RESPONSES": "미리 준비된 답변",
"INTEGRATIONS": "통합",
"PROFILE_SETTINGS": "프로필 설정",
"ACCOUNT_SETTINGS": "계정 설정",
- "APPLICATIONS": "Applications",
+ "APPLICATIONS": "애플리케이션",
"LABELS": "라벨",
- "CUSTOM_ATTRIBUTES": "사용자 지정 특성",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
+ "CUSTOM_ATTRIBUTES": "사용자 정의 속성",
+ "AUTOMATION": "자동화",
+ "MACROS": "매크로",
"TEAMS": "팀",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
+ "BILLING": "청구",
+ "CUSTOM_VIEWS_FOLDER": "폴더",
+ "CUSTOM_VIEWS_SEGMENTS": "세그먼트",
+ "ALL_CONTACTS": "모든 연락처",
+ "TAGGED_WITH": "태그됨",
+ "NEW_LABEL": "새 라벨",
+ "NEW_TEAM": "새 팀",
+ "NEW_INBOX": "새 받은 메시지함",
"REPORTS_CONVERSATION": "대화",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "LIVE_CHAT": "라이브 채팅",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "캠페인",
+ "ONGOING": "진행 중",
+ "ONE_OFF": "일회성",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "봇",
"REPORTS_AGENT": "에이전트",
"REPORTS_LABEL": "라벨",
"REPORTS_INBOX": "받은 메시지함",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_TEAM": "팀",
+ "AGENT_ASSIGNMENT": "에이전트 배정",
+ "SET_AVAILABILITY_TITLE": "상태 설정",
+ "SET_YOUR_AVAILABILITY": "상태 설정",
"SLA": "SLA",
+ "CUSTOM_ROLES": "사용자 정의 역할",
"BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "페이스북 연결이 만료되었습니다. 서비스를 계속하려면 페이스북 페이지를 다시 연결하십시오.",
+ "REPORTS_OVERVIEW": "개요",
+ "REAUTHORIZE": "받은 메시지함 연결이 만료되었습니다. 메시지를 계속 수신하고\n 발송하려면 다시 연결하십시오",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "설정",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "도움말 센터",
+ "ARTICLES": "게시물",
+ "CATEGORIES": "카테고리",
+ "LOCALES": "로케일",
+ "SETTINGS": "설정"
},
+ "CHANNELS": "채널",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "자동 오프라인 표시",
+ "INFO_TEXT": "앱이나 대시보드를 사용하지 않을 때 시스템이 자동으로 오프라인으로 표시합니다.",
+ "INFO_SHORT": "앱을 사용하지 않을 때 자동으로 오프라인으로 표시합니다."
},
- "DOCS": "Read docs"
+ "DOCS": "문서 읽기",
+ "SECURITY": "보안",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "대화 워크플로"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain 설정",
+ "DESCRIPTION": "Captain의 AI 모델과 기능을 구성합니다. Captain은 크레딧 기반 청구를 따르며, 선택한 모델에 따라 Captain이 수행하는 모든 작업에 대해 크레딧이 청구됩니다.",
+ "LOADING": "Captain 구성 로딩 중...",
+ "LINK_TEXT": "Captain 크레딧에 대해 자세히 알아보기",
+ "NOT_ENABLED": "이 계정에서 Captain이 활성화되지 않았습니다. Captain 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "MODEL_CONFIG": {
+ "TITLE": "모델 구성",
+ "DESCRIPTION": "다양한 기능에 대한 AI 모델을 선택합니다.",
+ "SELECT_MODEL": "모델 선택",
+ "CREDITS_PER_MESSAGE": "{credits} 크레딧/메시지",
+ "COMING_SOON": "곧 출시 예정",
+ "EDITOR": {
+ "TITLE": "편집기 기능",
+ "DESCRIPTION": "메시지 편집기에서 스마트 작성, 문법 교정, 톤 조정 및 콘텐츠 개선을 지원합니다."
+ },
+ "ASSISTANT": {
+ "TITLE": "어시스턴트",
+ "DESCRIPTION": "자동 응답, 대화 요약 및 고객 상호 작용을 위한 지능형 답변 제안을 처리합니다."
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "DESCRIPTION": "대화 중 실시간 맥락 제안, 지식 기반 추천 및 사전 인사이트를 제공합니다."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "기능",
+ "DESCRIPTION": "AI 기반 기능을 활성화하거나 비활성화합니다.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "오디오 전사",
+ "DESCRIPTION": "음성 메시지와 통화 녹음을 검색 가능한 텍스트로 자동 변환합니다."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "도움말 센터 검색 인덱싱",
+ "DESCRIPTION": "도움말 센터 게시물 내에서 맥락 인식 검색을 위해 AI를 사용합니다."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "라벨 제안",
+ "DESCRIPTION": "콘텐츠 분석 및 맥락에 기반하여 대화에 대한 관련 라벨과 태그를 자동으로 제안합니다.",
+ "MODEL_TITLE": "라벨 제안 모델",
+ "MODEL_DESCRIPTION": "대화 분석 및 적절한 라벨 제안에 사용할 AI 모델을 선택합니다"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain 설정이 성공적으로 업데이트되었습니다.",
+ "ERROR": "Captain 설정 업데이트에 실패했습니다. 다시 시도하십시오."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "청구",
+ "DESCRIPTION": "여기에서 구독을 관리하고, 플랜을 업그레이드하여 팀에 더 많은 기능을 제공하십시오.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "현재 플랜",
+ "PLAN_NOTE": "현재 **{quantity}**개의 라이선스로 **{plan}** 플랜에 구독 중입니다",
+ "SEAT_COUNT": "시트 수",
+ "RENEWS_ON": "갱신일"
},
+ "VIEW_PRICING": "가격 보기",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "구독 관리",
+ "DESCRIPTION": "이전 청구서를 보거나, 청구 세부 정보를 수정하거나, 구독을 취소합니다.",
+ "BUTTON_TXT": "청구 포털로 이동"
+ },
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Captain AI의 사용량과 크레딧을 관리합니다.",
+ "BUTTON_TXT": "크레딧 추가 구매",
+ "DOCUMENTS": "문서",
+ "RESPONSES": "크레딧",
+ "UPGRADE": "무료 플랜에서는 Captain을 사용할 수 없습니다. 지금 업그레이드하여 어시스턴트, Copilot 등에 접근하십시오.",
+ "REFRESH_CREDITS": "새로고침"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "도움이 필요하신가요?",
+ "DESCRIPTION": "청구에 문제가 있으신가요? 저희가 도와드리겠습니다.",
"BUTTON_TXT": "채팅하기"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "청구 계정이 구성 중입니다. 페이지를 새로고침하고 다시 시도하십시오.",
+ "TOPUP": {
+ "BUY_CREDITS": "크레딧 추가 구매",
+ "MODAL_TITLE": "AI 크레딧 구매",
+ "MODAL_DESCRIPTION": "Captain AI를 위한 추가 크레딧을 구매합니다.",
+ "CREDITS": "크레딧",
+ "ONE_TIME": "일회성",
+ "POPULAR": "가장 인기",
+ "NOTE_TITLE": "참고:",
+ "NOTE_DESCRIPTION": "크레딧은 즉시 추가되며 6개월 후 만료됩니다. 크레딧을 사용하려면 활성 구독이 필요합니다. 구매한 크레딧은 월간 플랜 크레딧 이후에 소비됩니다.",
+ "CANCEL": "취소",
+ "PURCHASE": "크레딧 구매",
+ "LOADING": "옵션 로딩 중...",
+ "FETCH_ERROR": "크레딧 옵션을 로드하지 못했습니다. 다시 시도하십시오.",
+ "PURCHASE_ERROR": "구매 처리에 실패했습니다. 다시 시도하십시오.",
+ "PURCHASE_SUCCESS": "{credits} 크레딧이 계정에 성공적으로 추가되었습니다",
+ "CONFIRM": {
+ "TITLE": "구매 확인",
+ "DESCRIPTION": "{amount}에 {credits} 크레딧을 구매하려고 합니다.",
+ "INSTANT_DEDUCTION_NOTE": "확인 즉시 저장된 카드에서 결제됩니다.",
+ "GO_BACK": "돌아가기",
+ "CONFIRM_PURCHASE": "구매 확인"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "보안",
+ "DESCRIPTION": "계정 보안 설정을 관리합니다.",
+ "LINK_TEXT": "SAML SSO에 대해 자세히 알아보기",
+ "SAML_DISABLED_MESSAGE": "SAML SSO가 현재 비활성화되어 있습니다. 이 기능을 활성화하려면 관리자에게 문의하십시오.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "계정에 대한 SAML 싱글 사인온을 구성합니다. 사용자는 이메일/비밀번호 대신 ID 공급자를 통해 인증합니다.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - SAML 응답 대상으로 IdP에서 이 URL을 구성하십시오"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "SAML 인증 요청이 전송되는 URL",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "PEM 형식의 서명 인증서",
+ "HELP": "SAML 응답을 확인하는 데 사용되는 ID 공급자의 공개 인증서",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "지문",
+ "TOOLTIP": "인증서의 SHA-1 지문 - IdP 구성에서 인증서를 확인하는 데 사용하십시오"
+ },
+ "COPY_SUCCESS": "클립보드에 복사되었습니다",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP 엔터티 ID",
+ "HELP": "서비스 제공자로서 이 애플리케이션의 고유 식별자 (자동 생성).",
+ "TOOLTIP": "서비스 제공자로서의 Chatwoot 고유 식별자 - IdP 설정에서 이를 구성하십시오"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "ID 공급자 엔터티 ID",
+ "HELP": "ID 공급자의 고유 식별자 (일반적으로 IdP 구성에서 찾을 수 있음)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML 설정 업데이트",
+ "API": {
+ "SUCCESS": "SAML 설정이 성공적으로 업데이트되었습니다",
+ "ERROR": "SAML 설정 업데이트에 실패했습니다",
+ "ERROR_LOADING": "SAML 설정을 로드하지 못했습니다",
+ "DISABLED": "SAML 설정이 성공적으로 비활성화되었습니다"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, ID 공급자 엔터티 ID 및 인증서는 필수 항목입니다",
+ "SSO_URL_ERROR": "올바른 SSO URL을 입력하십시오",
+ "CERTIFICATE_ERROR": "인증서가 필요합니다",
+ "IDP_ENTITY_ID_ERROR": "ID 공급자 엔터티 ID가 필요합니다"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO 기능은 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "SAML 싱글 사인온 및 기타 고급 보안 기능에 접근하려면 Enterprise 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO를 활성화하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "SAML SSO 기능은 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "SAML 싱글 사인온 및 기타 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML 속성 설정",
+ "DESCRIPTION": "다음 속성 매핑은 ID 공급자에서 구성해야 합니다"
+ },
+ "INFO_SECTION": {
+ "TITLE": "서비스 제공자 정보",
+ "TOOLTIP": "이 값을 복사하여 SAML 연결을 설정하기 위해 ID 공급자에서 구성하십시오"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "대화 워크플로",
+ "DESCRIPTION": "대화 해결에 대한 규칙과 필수 항목을 구성합니다."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "해결 시 필수 속성",
+ "DESCRIPTION": "대화를 해결할 때, 에이전트가 아직 채우지 않은 이 속성들을 입력하도록 안내됩니다.",
+ "NO_ATTRIBUTES": "아직 추가된 속성이 없습니다",
+ "ADD": {
+ "TITLE": "속성 추가",
+ "SEARCH_PLACEHOLDER": "속성 검색"
+ },
+ "SAVE": {
+ "SUCCESS": "필수 속성이 업데이트되었습니다",
+ "ERROR": "필수 속성을 업데이트할 수 없습니다. 다시 시도하십시오"
+ },
+ "MODAL": {
+ "TITLE": "대화 해결",
+ "DESCRIPTION": "이 대화를 해결하기 전에 다음 사용자 정의 속성을 입력하십시오",
+ "ACTIONS": {
+ "RESOLVE": "대화 해결",
+ "CANCEL": "취소"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "메모를 작성하십시오...",
+ "NUMBER": "숫자를 입력하십시오",
+ "LINK": "링크를 추가하십시오",
+ "DATE": "날짜를 선택하십시오",
+ "LIST": "옵션을 선택하십시오"
+ },
+ "CHECKBOX": {
+ "YES": "예",
+ "NO": "아니오"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "필수 속성을 사용하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "필수 대화 속성 기능은 Business 및 Enterprise 플랜에서 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "대화 해결 전에 에이전트에게 필수 속성 입력을 요구하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "필수 대화 속성 기능은 유료 플랜에서 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "대화 해결 전에 필수 속성을 적용하려면 유료 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드를 위해 관리자에게 문의하십시오."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
+ "NO_ACCOUNT_WARNING": "Chatwoot 계정을 찾을 수 없습니다. 계속하려면 새 계정을 만드십시오.",
"NEW_ACCOUNT": "새 계정",
"SELECTOR_SUBTITLE": "새 계정 만들기",
"API": {
- "SUCCESS_MESSAGE": "계정이 성공적으로 생성됨",
- "EXIST_MESSAGE": "계정이 이미 있음",
- "ERROR_MESSAGE": "Woot 서버에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "계정이 성공적으로 생성되었습니다",
+ "EXIST_MESSAGE": "계정이 이미 존재합니다",
+ "ERROR_MESSAGE": "서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
"FORM": {
"NAME": {
"LABEL": "회사명",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "보내기"
+ "SUBMIT": "보내기",
+ "CANCEL": "취소"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "모든 단축키 보기",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "대화 열기",
+ "RESOLVE_AND_NEXT": "해결하고 다음으로 이동",
+ "NAVIGATE_DROPDOWN": "드롭다운 항목 탐색",
+ "RESOLVE_CONVERSATION": "대화 해결",
+ "GO_TO_CONVERSATION_DASHBOARD": "대화 대시보드로 이동",
+ "ADD_ATTACHMENT": "첨부 파일 추가",
+ "GO_TO_CONTACTS_DASHBOARD": "연락처 대시보드로 이동",
+ "TOGGLE_SIDEBAR": "사이드바 전환",
+ "GO_TO_REPORTS_SIDEBAR": "보고서 사이드바로 이동",
+ "MOVE_TO_NEXT_TAB": "대화 목록의 다음 탭으로 이동",
+ "GO_TO_SETTINGS": "설정으로 이동",
+ "SWITCH_TO_PRIVATE_NOTE": "비공개 메모로 전환",
+ "SWITCH_TO_REPLY": "답장으로 전환",
+ "TOGGLE_SNOOZE_DROPDOWN": "일시 중단 드롭다운 전환"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "에이전트 배정",
+ "DESCRIPTION": "받은 메시지함과 에이전트의 필요에 따라 작업 부하를 효과적으로 관리하고 대화를 라우팅하는 정책을 정의합니다. 자세히 알아보기"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "배정 정책",
+ "DESCRIPTION": "받은 메시지함에서 대화가 배정되는 방식을 관리합니다.",
+ "FEATURES": [
+ "대화를 균등하게 또는 가용 용량에 따라 배정",
+ "에이전트 과부하를 방지하기 위한 공정 분배 규칙 추가",
+ "정책에 받은 메시지함 추가 - 받은 메시지함당 하나의 정책"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "에이전트 용량 정책",
+ "DESCRIPTION": "에이전트의 작업 부하를 관리합니다.",
+ "FEATURES": [
+ "받은 메시지함당 최대 대화 수 정의",
+ "라벨 및 시간에 기반한 예외 생성",
+ "정책에 에이전트 추가 - 에이전트당 하나의 정책"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "배정 정책",
+ "CREATE_POLICY": "새 정책"
+ },
+ "CARD": {
+ "ORDER": "순서",
+ "PRIORITY": "우선순위",
+ "ACTIVE": "활성",
+ "INACTIVE": "비활성",
+ "POPOVER": "추가된 받은 메시지함",
+ "EDIT": "수정"
+ },
+ "NO_RECORDS_FOUND": "배정 정책을 찾을 수 없습니다"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "배정 정책 생성"
+ },
+ "CREATE_BUTTON": "정책 생성",
+ "API": {
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "배정 정책 생성에 실패했습니다",
+ "INBOX_LINKED": "받은 메시지함이 정책에 연결되었습니다"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "배정 정책 수정"
+ },
+ "EDIT_BUTTON": "정책 업데이트",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "받은 메시지함 추가",
+ "DESCRIPTION": "{inboxName} 받은 메시지함이 이미 다른 정책에 연결되어 있습니다. 이 정책에 연결하시겠습니까? 다른 정책에서 연결이 해제됩니다.",
+ "CONFIRM_BUTTON_LABEL": "계속",
+ "CANCEL_BUTTON_LABEL": "취소"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "받은 메시지함을 정책에 연결",
+ "DESCRIPTION": "이 받은 메시지함을 배정 정책에 연결하시겠습니까?",
+ "LINK_BUTTON": "받은 메시지함 연결",
+ "CANCEL_BUTTON": "건너뛰기"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "배정 정책 업데이트에 실패했습니다"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 받은 메시지함 추가에 실패했습니다"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에서 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "정책에서 받은 메시지함 제거에 실패했습니다"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "정책 이름:",
+ "PLACEHOLDER": "정책 이름을 입력하십시오"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명:",
+ "PLACEHOLDER": "설명을 입력하십시오"
+ },
+ "STATUS": {
+ "LABEL": "상태:",
+ "PLACEHOLDER": "상태 선택",
+ "ACTIVE": "정책이 활성 상태입니다",
+ "INACTIVE": "정책이 비활성 상태입니다"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "배정 순서",
+ "ROUND_ROBIN": {
+ "LABEL": "라운드 로빈",
+ "DESCRIPTION": "에이전트 간에 대화를 균등하게 배정합니다."
+ },
+ "BALANCED": {
+ "LABEL": "균형",
+ "DESCRIPTION": "가용 용량에 따라 대화를 배정합니다.",
+ "PREMIUM_MESSAGE": "균형 배정 및 에이전트 용량 관리에 접근하려면 업그레이드하십시오.",
+ "PREMIUM_BADGE": "프리미엄"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "배정 우선순위",
+ "EARLIEST_CREATED": {
+ "LABEL": "가장 먼저 생성됨",
+ "DESCRIPTION": "가장 먼저 생성된 대화가 먼저 배정됩니다."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "가장 오래 대기",
+ "DESCRIPTION": "가장 오래 대기한 대화가 먼저 배정됩니다."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "공정 분배 정책",
+ "DESCRIPTION": "에이전트 과부하를 방지하기 위해 시간 창 내에서 에이전트당 배정할 수 있는 최대 대화 수를 설정합니다. 이 필수 필드의 기본값은 시간당 100개 대화입니다.",
+ "INPUT_MAX": "최대 배정",
+ "DURATION": "에이전트당 대화 수"
+ },
+ "INBOXES": {
+ "LABEL": "추가된 받은 메시지함",
+ "DESCRIPTION": "이 정책이 적용될 받은 메시지함을 추가합니다.",
+ "ADD_BUTTON": "받은 메시지함 추가",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "추가할 받은 메시지함을 검색하고 선택하십시오",
+ "ADD_BUTTON": "추가"
+ },
+ "EMPTY_STATE": "이 정책에 추가된 받은 메시지함이 없습니다. 시작하려면 받은 메시지함을 추가하십시오",
+ "API": {
+ "SUCCESS_MESSAGE": "받은 메시지함이 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 받은 메시지함 추가에 실패했습니다"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "배정 정책이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "배정 정책 삭제에 실패했습니다"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "에이전트 용량",
+ "CREATE_POLICY": "새 정책"
+ },
+ "CARD": {
+ "POPOVER": "추가된 에이전트",
+ "EDIT": "수정"
+ },
+ "NO_RECORDS_FOUND": "에이전트 용량 정책을 찾을 수 없습니다"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "에이전트 용량 정책 생성"
+ },
+ "CREATE_BUTTON": "정책 생성",
+ "API": {
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 생성되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 생성에 실패했습니다"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "에이전트 용량 정책 수정"
+ },
+ "EDIT_BUTTON": "정책 업데이트",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "에이전트 추가",
+ "DESCRIPTION": "{agentName}이(가) 이미 다른 정책에 연결되어 있습니다. 이 정책에 연결하시겠습니까? 다른 정책에서 연결이 해제됩니다.",
+ "CONFIRM_BUTTON_LABEL": "계속",
+ "CANCEL_BUTTON_LABEL": "취소"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 업데이트에 실패했습니다"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "에이전트가 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 에이전트 추가에 실패했습니다"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "에이전트가 정책에서 성공적으로 제거되었습니다",
+ "ERROR_MESSAGE": "정책에서 에이전트 제거에 실패했습니다"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 추가에 실패했습니다"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 업데이트되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 업데이트에 실패했습니다"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "받은 메시지함 제한이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "받은 메시지함 제한 삭제에 실패했습니다"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "정책 이름:",
+ "PLACEHOLDER": "정책 이름을 입력하십시오"
+ },
+ "DESCRIPTION": {
+ "LABEL": "설명:",
+ "PLACEHOLDER": "설명을 입력하십시오"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "받은 메시지함 용량 제한",
+ "ADD_BUTTON": "받은 메시지함 추가",
+ "FIELD": {
+ "SELECT_INBOX": "받은 메시지함 선택",
+ "MAX_CONVERSATIONS": "최대 대화 수",
+ "SET_LIMIT": "제한 설정"
+ },
+ "EMPTY_STATE": "설정된 받은 메시지함 제한이 없습니다"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "제외 규칙",
+ "DESCRIPTION": "다음 조건을 만족하는 대화는 에이전트 용량에 포함되지 않습니다",
+ "TAGS": {
+ "LABEL": "특정 라벨이 태그된 대화 제외",
+ "ADD_TAG": "태그 추가",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "추가할 태그를 검색하고 선택하십시오"
+ },
+ "EMPTY_STATE": "이 정책에 추가된 태그가 없습니다."
+ },
+ "DURATION": {
+ "LABEL": "지정된 기간보다 오래된 대화 제외",
+ "PLACEHOLDER": "시간 설정"
+ }
+ },
+ "USERS": {
+ "LABEL": "배정된 에이전트",
+ "DESCRIPTION": "이 정책이 적용될 에이전트를 추가합니다.",
+ "ADD_BUTTON": "에이전트 추가",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "추가할 에이전트를 검색하고 선택하십시오",
+ "ADD_BUTTON": "추가"
+ },
+ "EMPTY_STATE": "추가된 에이전트가 없습니다",
+ "API": {
+ "SUCCESS_MESSAGE": "에이전트가 정책에 성공적으로 추가되었습니다",
+ "ERROR_MESSAGE": "정책에 에이전트 추가에 실패했습니다"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "에이전트 용량 정책이 성공적으로 삭제되었습니다",
+ "ERROR_MESSAGE": "에이전트 용량 정책 삭제에 실패했습니다"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "정책 삭제",
+ "DESCRIPTION": "이 정책을 삭제하시겠습니까? 이 작업은 되돌릴 수 없습니다.",
+ "CONFIRM_BUTTON_LABEL": "삭제",
+ "CANCEL_BUTTON_LABEL": "취소"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/signup.json b/app/javascript/dashboard/i18n/locale/ko/signup.json
index e38ef41f6..008f58683 100644
--- a/app/javascript/dashboard/i18n/locale/ko/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ko/signup.json
@@ -1,44 +1,57 @@
{
"REGISTER": {
- "TRY_WOOT": "Create an account",
+ "TRY_WOOT": "계정 만들기",
+ "GET_STARTED": "Chatwoot 시작하기",
"TITLE": "회원가입",
- "TESTIMONIAL_HEADER": "All it takes is one step to move forward",
- "TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
- "TERMS_ACCEPT": "By creating an account, you agree to our T & C and Privacy policy",
+ "TESTIMONIAL_HEADER": "앞으로 나아가기 위한 단 한 걸음",
+ "TESTIMONIAL_CONTENT": "고객과 소통하고, 유지하고, 새로운 고객을 찾는 것은 한 걸음이면 됩니다.",
+ "TERMS_ACCEPT": "계정을 생성하면 이용약관 및 개인정보 처리방침에 동의하는 것입니다",
"OAUTH": {
- "GOOGLE_SIGNUP": "Sign up with Google"
+ "GOOGLE_SIGNUP": "Google로 가입"
},
"COMPANY_NAME": {
- "LABEL": "Company name",
- "PLACEHOLDER": "Enter your company name. eg: Wayne Enterprises",
- "ERROR": "Company name is too short"
+ "LABEL": "회사 이름",
+ "PLACEHOLDER": "회사 이름을 입력하십시오. 예: Wayne Enterprises",
+ "ERROR": "회사 이름이 너무 짧습니다."
},
"FULL_NAME": {
"LABEL": "전체 이름",
- "PLACEHOLDER": "전체 이름을 입력합니다. 예: Taeyeon Kim",
- "ERROR": "계정 이름이 너무 짧음"
+ "PLACEHOLDER": "전체 이름을 입력하십시오. 예: Taeyeon Kim",
+ "ERROR": "전체 이름이 너무 짧습니다."
},
"EMAIL": {
"LABEL": "회사 이메일",
- "PLACEHOLDER": "회사 이메일 주소를 입력하세요. 예: taeyeon@girls.generation",
- "ERROR": "Please enter a valid work email address"
+ "PLACEHOLDER": "회사 이메일 주소를 입력하십시오. 예: bruce{'@'}wayne{'.'}enterprises",
+ "ERROR": "유효한 회사 이메일 주소를 입력하십시오."
},
"PASSWORD": {
"LABEL": "비밀번호",
"PLACEHOLDER": "비밀번호",
- "ERROR": "비밀번호가 너무 짧음",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "ERROR": "비밀번호가 너무 짧습니다.",
+ "IS_INVALID_PASSWORD": "비밀번호에는 최소 대문자 1개, 소문자 1개, 숫자 1개, 특수문자 1개가 포함되어야 합니다.",
+ "REQUIREMENTS_LENGTH": "최소 6자 이상",
+ "REQUIREMENTS_UPPERCASE": "최소 대문자 1개",
+ "REQUIREMENTS_LOWERCASE": "최소 소문자 1개",
+ "REQUIREMENTS_NUMBER": "최소 숫자 1개",
+ "REQUIREMENTS_SPECIAL": "최소 특수문자 1개"
},
"CONFIRM_PASSWORD": {
"LABEL": "비밀번호 확인",
"PLACEHOLDER": "비밀번호 확인",
- "ERROR": "비밀번호가 일치하지 않음"
+ "ERROR": "비밀번호가 일치하지 않습니다."
},
"API": {
- "SUCCESS_MESSAGE": "등록 성공",
- "ERROR_MESSAGE": "Woot Server에 연결할 수 없음. 나중에 다시 시도하십시오."
+ "SUCCESS_MESSAGE": "회원가입이 완료되었습니다",
+ "ERROR_MESSAGE": "Chatwoot 서버에 연결할 수 없습니다. 나중에 다시 시도하십시오."
},
- "SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "이미 계정이 있습니까?"
+ "SUBMIT": "계정 만들기",
+ "HAVE_AN_ACCOUNT": "이미 계정이 있으십니까?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "인증 이메일 다시 보내기",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/sla.json b/app/javascript/dashboard/i18n/locale/ko/sla.json
index a424a63d3..70d473a7b 100644
--- a/app/javascript/dashboard/i18n/locale/ko/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ko/sla.json
@@ -1,41 +1,71 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
- "LOADING": "Fetching SLAs",
- "SEARCH_404": "이 쿼리와 일치하는 항목이 없음",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "HEADER": "서비스 수준 계약",
+ "ADD_ACTION": "SLA 추가",
+ "ADD_ACTION_LONG": "새 SLA 정책 생성",
+ "DESCRIPTION": "서비스 수준 계약(SLA)은 팀과 고객 간의 명확한 기대치를 정의하는 계약입니다. 응답 및 해결 시간에 대한 기준을 설정하여 책임성을 위한 프레임워크를 만들고 일관되고 고품질의 경험을 보장합니다.",
+ "LEARN_MORE": "SLA에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 SLA | {n}개의 SLA",
+ "LOADING": "SLA를 불러오는 중",
+ "SEARCH_PLACEHOLDER": "SLA 검색...",
+ "SEARCH": {
+ "NO_RESULTS": "검색과 일치하는 SLA가 없습니다"
+ },
+ "PAYWALL": {
+ "TITLE": "SLA를 생성하려면 업그레이드하십시오",
+ "AVAILABLE_ON": "SLA 기능은 Business 및 Enterprise 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "팀 관리, 자동화, 사용자 정의 속성 등 고급 기능에 접근하려면 플랜을 업그레이드하십시오.",
+ "UPGRADE_NOW": "지금 업그레이드",
+ "CANCEL_ANYTIME": "언제든지 플랜을 변경하거나 취소할 수 있습니다"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SLA 기능은 유료 플랜에서만 사용할 수 있습니다.",
+ "UPGRADE_PROMPT": "감사 로그, 에이전트 용량 등 고급 기능에 접근하려면 유료 플랜으로 업그레이드하십시오.",
+ "ASK_ADMIN": "업그레이드에 대해 관리자에게 문의하십시오."
+ },
"LIST": {
- "404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "이름",
- "내용",
- "FRT",
- "NRT",
- "RT",
- "영업시간"
- ]
+ "404": "이 계정에 사용 가능한 SLA가 없습니다.",
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "영업시간"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Enterprise 고객이 제기한 즉각적인 대응이 필요한 이슈입니다.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Enterprise 고객이 제기한 신속한 확인이 필요한 이슈입니다."
+ },
+ "BUSINESS_HOURS_ON": "영업시간 적용",
+ "BUSINESS_HOURS_OFF": "영업시간 미적용",
+ "RESPONSE_TYPES": {
+ "FRT": "첫 번째 응답 시간 임계값",
+ "NRT": "다음 응답 시간 임계값",
+ "RT": "해결 시간 임계값",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
- "LABEL": "SLA Name",
- "PLACEHOLDER": "SLA Name",
- "REQUIRED_ERROR": "SLA name is required",
+ "LABEL": "SLA 이름",
+ "PLACEHOLDER": "SLA 이름",
+ "REQUIRED_ERROR": "SLA 이름은 필수입니다",
"MINIMUM_LENGTH_ERROR": "최소 두글자 이상이여야 합니다",
"VALID_ERROR": "영어나, 숫자, - 와 _ 만 사용 가능합니다"
},
"DESCRIPTION": {
"LABEL": "내용",
- "PLACEHOLDER": "SLA for premium customers"
+ "PLACEHOLDER": "프리미엄 고객을 위한 SLA"
},
"FIRST_RESPONSE_TIME": {
- "LABEL": "First Response Time",
+ "LABEL": "첫 번째 응답 시간",
"PLACEHOLDER": "5"
},
"NEXT_RESPONSE_TIME": {
- "LABEL": "Next Response Time",
+ "LABEL": "다음 응답 시간",
"PLACEHOLDER": "5"
},
"RESOLUTION_TIME": {
@@ -44,10 +74,10 @@
},
"BUSINESS_HOURS": {
"LABEL": "영업시간",
- "PLACEHOLDER": "Only during business hours"
+ "PLACEHOLDER": "영업시간 중에만"
},
"THRESHOLD_TIME": {
- "INVALID_FORMAT_ERROR": "Threshold should be a number and greater than zero"
+ "INVALID_FORMAT_ERROR": "임계값은 0보다 큰 숫자여야 합니다"
},
"EDIT": "수정",
"CREATE": "만들기",
@@ -55,19 +85,33 @@
"CANCEL": "취소"
},
"ADD": {
- "TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "TITLE": "SLA 추가",
+ "DESC": "훌륭한 서비스를 위한 친절한 약속!",
"API": {
- "SUCCESS_MESSAGE": "SLA added successfully",
+ "SUCCESS_MESSAGE": "SLA가 성공적으로 추가되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "SLA 삭제",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA가 성공적으로 삭제되었습니다",
"ERROR_MESSAGE": "오류가 발생했습니다. 다시 시도하십시오."
+ },
+ "CONFIRM": {
+ "TITLE": "삭제 확인",
+ "MESSAGE": "정말 삭제하시겠습니까? ",
+ "YES": "예, 삭제합니다. ",
+ "NO": "아니요, 유지해주세요. "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA 위반",
+ "FRT": "첫 번째 응답 시간",
+ "NRT": "다음 응답 시간",
+ "RT": "해결 시간",
+ "SHOW_MORE": "{count}개 더 보기",
+ "HIDE": "{count}개 행 숨기기"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/snooze.json b/app/javascript/dashboard/i18n/locale/ko/snooze.json
new file mode 100644
index 000000000..226447d27
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "시간",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "지금부터",
+ "NEXT_YEAR": "내년",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "내일",
+ "DAY_AFTER_TOMORROW": "모레",
+ "NEXT_WEEK": "다음 주",
+ "NEXT_MONTH": "다음 달",
+ "THIS_WEEKEND": "이번 주말",
+ "NEXT_WEEKEND": "다음 주말"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
index ad5991ca9..07aef17b4 100644
--- a/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ko/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "팀 생성하기",
"HEADER": "팀",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "팀을 불러오는 중",
+ "DESCRIPTION": "팀을 사용하면 에이전트를 업무 담당에 따라 그룹으로 구성할 수 있습니다. 에이전트는 여러 팀에 소속될 수 있습니다. 협업 시 특정 팀에 대화를 배정할 수 있습니다.",
+ "LEARN_MORE": "팀에 대해 자세히 알아보기",
+ "COUNT": "{n}개의 팀 | {n}개의 팀",
+ "SEARCH_PLACEHOLDER": "팀 검색...",
+ "NO_RESULTS": "검색과 일치하는 팀이 없습니다",
"LIST": {
- "404": "계정에 연결된 에이전트가 없습니다.",
- "EDIT_TEAM": "팀 수정하기"
+ "404": "계정에 생성된 팀이 없습니다.",
+ "EDIT_TEAM": "팀 수정하기",
+ "NONE": "없음"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "팀에 에이전트 추가",
- "TITLE": "%{teamName}팀에 에이전트 추가",
+ "TITLE": "{teamName}팀에 에이전트 추가",
"DESC": "생성된 팀에 에이전트를 추가해서 대화에 협업하여 대응하고, 해당 대화에 발생한 새 이벤트에 대해 알림도 받으세요."
},
- "WIZARD": [
- {
- "title": "만들기",
- "route": "settings_teams_new",
- "body": "에이전트들로 구성된 새 팀을 만드세요."
- },
- {
- "title": "에이전트 추가",
- "route": "settings_teams_add_agents",
- "body": "팀에 에이전트 추가"
- },
- {
- "title": "완료",
- "route": "settings_teams_finish",
- "body": "준비가 완료되었습니다."
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "만들기",
+ "BODY": "에이전트들로 구성된 새 팀을 만드세요."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "에이전트 추가",
+ "BODY": "팀에 에이전트 추가"
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "완료",
+ "BODY": "준비가 완료되었습니다."
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,26 +44,24 @@
},
"AGENTS": {
"BUTTON_TEXT": "에이전트 업데이트",
- "TITLE": "%{teamName}팀에 에이전트 추가",
+ "TITLE": "{teamName}팀에 에이전트 추가",
"DESC": "생성된 팀에 에이전트들을 추가하세요. 본 팀에 대화가 할당되면 추가된 에이전트들에게 알림이 갈 것입니다."
},
- "WIZARD": [
- {
- "title": "팀 내용",
- "route": "settings_teams_edit",
- "body": "팀명, 소개 등 내용을 수정하세요."
- },
- {
- "title": "에이전트 수정",
- "route": "settings_teams_edit_members",
- "body": "팀 내 에이전트들을 수정하세요."
- },
- {
- "title": "완료",
- "route": "settings_teams_edit_finish",
- "body": "준비가 완료되었습니다."
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "팀 내용",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "팀명, 소개 등 내용을 수정하세요."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "에이전트 수정",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "팀 내 에이전트들을 수정하세요."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "완료",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "준비가 완료되었습니다."
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "팀 내용을 저장할 수 없습니다. 다시 시도해주세요."
@@ -74,16 +73,16 @@
"ADD_AGENTS": "팀에 에이전트를 추가하는 중...",
"SELECT": "선택",
"SELECT_ALL": "모든 에이전트 선택",
- "SELECTED_COUNT": "%{total} 에이전트 중 %{selected} 선택됨."
+ "SELECTED_COUNT": "{total} 에이전트 중 {selected} 선택됨."
},
"ADD": {
- "TITLE": "%{teamName}팀에 에이전트 추가",
+ "TITLE": "{teamName}팀에 에이전트 추가",
"DESC": "생성된 팀에 에이전트를 추가해서 대화에 협업하여 대응하고, 해당 대화에 발생한 새 이벤트에 대해 알림도 받으세요.",
"SELECT": "선택",
"SELECT_ALL": "모든 에이전트 선택",
- "SELECTED_COUNT": "%{total} 에이전트 중 %{selected} 선택됨.",
+ "SELECTED_COUNT": "{total} 에이전트 중 {selected} 선택됨.",
"BUTTON_TEXT": "에이전트 추가",
- "AGENT_VALIDATION_ERROR": "Select at least one agent."
+ "AGENT_VALIDATION_ERROR": "최소 한 명의 에이전트를 선택하십시오."
},
"FINISH": {
"TITLE": "준비가 완료되었습니다!",
@@ -97,8 +96,8 @@
"ERROR_MESSAGE": "팀을 삭제할 수 없습니다. 다시 시도해주세요."
},
"CONFIRM": {
- "TITLE": "%{teamName}팀을 삭제하시겠습니까?",
- "PLACE_HOLDER": "Please type {teamName} to confirm",
+ "TITLE": "정말 팀을 삭제하시겠습니까?",
+ "PLACE_HOLDER": "확인하려면 {teamName}을(를) 입력하십시오",
"MESSAGE": "팀을 삭제하면 팀에 할당된 대화들에 대한 할당이 모두 해제됩니다.",
"YES": "삭제 ",
"NO": "취소"
@@ -109,15 +108,15 @@
"UPDATE": "팀 내용 업데이트",
"CREATE": "팀 생성",
"NAME": {
- "LABEL": "Team name",
- "PLACEHOLDER": "Example: Sales, Customer Support"
+ "LABEL": "팀 이름",
+ "PLACEHOLDER": "예: 영업, 고객 지원"
},
"DESCRIPTION": {
- "LABEL": "Team Description",
- "PLACEHOLDER": "Short description about this team."
+ "LABEL": "팀 설명",
+ "PLACEHOLDER": "이 팀에 대한 간단한 설명."
},
"AUTO_ASSIGN": {
- "LABEL": "Allow auto assign for this team."
+ "LABEL": "이 팀에 자동 배정을 허용합니다."
},
"SUBMIT_CREATE": "팀 생성"
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
index bbcf28156..5442cb517 100644
--- a/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ko/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp 템플릿",
+ "SUBTITLE": "전송할 Whatsapp 템플릿을 선택하십시오",
+ "TEMPLATE_SELECTED_SUBTITLE": "템플릿 구성: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "템플릿 검색",
+ "NO_TEMPLATES_FOUND": "다음에 대한 템플릿을 찾을 수 없습니다",
+ "HEADER": "헤더",
+ "BODY": "본문",
+ "FOOTER": "푸터",
+ "BUTTONS": "버튼",
+ "CATEGORY": "카테고리",
+ "MEDIA_CONTENT": "미디어 콘텐츠",
+ "MEDIA_CONTENT_FALLBACK": "미디어 콘텐츠",
+ "NO_TEMPLATES_AVAILABLE": "사용 가능한 WhatsApp 템플릿이 없습니다. 새로고침을 클릭하여 WhatsApp에서 템플릿을 동기화하십시오.",
+ "REFRESH_BUTTON": "템플릿 새로고침",
+ "REFRESH_SUCCESS": "템플릿 새로고침이 시작되었습니다. 업데이트에 몇 분 정도 소요될 수 있습니다.",
+ "REFRESH_ERROR": "템플릿 새로고침에 실패했습니다. 다시 시도해 주십시오.",
+ "LABELS": {
+ "LANGUAGE": "언어",
+ "TEMPLATE_BODY": "템플릿 본문",
+ "CATEGORY": "카테고리"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "변수",
+ "LANGUAGE": "언어",
+ "CATEGORY": "카테고리",
+ "VARIABLE_PLACEHOLDER": "{variable} 값을 입력하십시오",
+ "GO_BACK_LABEL": "뒤로 가기",
+ "SEND_MESSAGE_LABEL": "메시지 전송",
+ "FORM_ERROR_MESSAGE": "전송하기 전에 모든 변수를 입력하십시오",
+ "MEDIA_HEADER_LABEL": "{type} 헤더",
+ "OTP_CODE": "4~8자리 OTP를 입력하십시오",
+ "EXPIRY_MINUTES": "만료 시간(분)을 입력하십시오",
+ "BUTTON_PARAMETERS": "버튼 매개변수",
+ "BUTTON_LABEL": "버튼 {index}",
+ "COUPON_CODE": "쿠폰 코드를 입력하십시오 (최대 15자)",
+ "MEDIA_URL_LABEL": "{type} URL을 입력하십시오",
+ "DOCUMENT_NAME_PLACEHOLDER": "문서 파일명을 입력하십시오 (예: Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "버튼 매개변수를 입력하십시오"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ko/yearInReview.json b/app/javascript/dashboard/i18n/locale/ko/yearInReview.json
new file mode 100644
index 000000000..67db86a8a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ko/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "연간 리뷰",
+ "LOADING": "연간 리뷰를 불러오는 중...",
+ "ERROR": "연간 리뷰를 불러오지 못했습니다",
+ "CLOSE": "닫기",
+ "CONVERSATIONS": {
+ "TITLE": "처리한 대화 수",
+ "SUBTITLE": "대화",
+ "FALLBACK": "올해는 숫자가 아니라 꾸준히 함께했다는 것이 중요합니다.",
+ "COMPARISON": {
+ "0_50": "첫 걸음을 내딛었습니다. 모든 훌륭한 받은 메시지함은 이렇게 시작됩니다.",
+ "50_100": "답변을 이어가며 대화를 활발하게 유지했습니다.",
+ "100_500": "상당한 양을 처리하면서도 모든 것을 순조롭게 관리했습니다.",
+ "500_2000": "볼륨이 계속 늘어나는 가운데에서도 흐름을 유지했습니다.",
+ "2000_10000": "많은 트래픽을 거뜬히 소화했습니다.",
+ "10000_PLUS": "도시 하나에 해당하는 고객이 문을 두드렸는데, 당신은 쉬워 보이게 해냈습니다."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "가장 바빴던 날은",
+ "MESSAGE": "그날 {count}건의 대화가 있었습니다.",
+ "COMPARISON": {
+ "0_5": "받은 메시지함을 간신히 깨운 워밍업 수준이었습니다.",
+ "5_10": "커피 한 잔 더 마실 이유가 생길 만큼의 활동이었습니다.",
+ "10_25": "바빠지기 시작했고 받은 메시지함이 긴장하기 시작했습니다.",
+ "25_50": "제대로 된 러시였지만 거뜬히 해냈습니다.",
+ "50_100": "통제된 혼란, 평범한 화요일처럼 처리했습니다.",
+ "100_500": "완전한 폭풍이었지만 어떻게든 답변을 보냈습니다.",
+ "500_PLUS": "받은 메시지함이 완전히 쉴 틈 없이 쏟아져 들어왔습니다."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "당신의 지원 성격 유형은",
+ "MESSAGES": {
+ "SWIFT_HELPER": "평균 {time} 만에 답변했습니다. 대부분의 알림보다 빠릅니다.",
+ "QUICK_RESPONDER": "평균 {time} 만에 답변했습니다. 받은 메시지함이 거의 기다리지 않았습니다.",
+ "STEADY_SUPPORT": "평균 {time} 만에 답변했습니다. 차분한 속도, 견실한 답변.",
+ "THOUGHTFUL_ADVISOR": "평균 {time} 만에 답변했습니다. 정확한 답변을 위해 시간을 들였습니다."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "{year}년 받은 메시지함을 잘 견뎌내신 것을 축하합니다.",
+ "MESSAGE": "올 한 해 고객 지원에 보여주신 놀라운 헌신에 감사드립니다. 여러분의 노력이 진정한 변화를 만들어냈으며, 이 여정을 함께해 주셔서 감사합니다. {nextYear}년에도 함께 더 나은 한 해를 만들어 나갑시다!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "연간 리뷰 공유하기",
+ "PREPARING": "이미지를 준비하는 중...",
+ "DOWNLOAD": "다운로드",
+ "SHARE_TITLE": "나의 {year}년 연간 리뷰",
+ "SHARE_TEXT": "Chatwoot과 함께한 나의 {year}년 연간 리뷰를 확인해 보세요!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "{year}년 연간 리뷰가 도착했습니다",
+ "BUTTON": "나의 성과 보기"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "이전",
+ "NEXT": "다음",
+ "SHARE": "공유하기"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json b/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json
index 2693e0b62..7f65baba5 100644
--- a/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/lt/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "IR",
"OR": "AR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Lygu",
"not_equal_to": "Nelygu",
- "contains": "Sudėtyje yra",
"does_not_contain": "Sudėtyje nėra",
"is_present": "Pateikiamas",
"is_not_present": "Nepateikiamas",
"is_greater_than": "Yra didensni nei",
"is_less_than": "Yra mažesnis nei",
"days_before": "Yra prieš x dienų",
- "starts_with": "Prasideda nuo"
+ "starts_with": "Prasideda nuo",
+ "equalTo": "Lygu",
+ "notEqualTo": "Nelygu",
+ "contains": "Sudėtyje yra",
+ "doesNotContain": "Sudėtyje nėra",
+ "isPresent": "Pateikiamas",
+ "isNotPresent": "Nepateikiamas",
+ "isGreaterThan": "Yra didensni nei",
+ "isLessThan": "Yra mažesnis nei",
+ "daysBefore": "Yra prieš x dienų",
+ "startsWith": "Prasideda nuo"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Tiesa",
@@ -54,6 +64,12 @@
"CREATED_AT": "Sukurta",
"LAST_ACTIVITY": "Paskutiniai veiksmai"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Reikalinga vertė",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standartinis Filtras",
"ADDITIONAL_FILTERS": "Papildomas Filtras",
diff --git a/app/javascript/dashboard/i18n/locale/lt/agentBots.json b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
index a370652de..a1ea2a669 100644
--- a/app/javascript/dashboard/i18n/locale/lt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lt/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Botai",
"LOADING_EDITOR": "Įkeliama redagavimo priemonė...",
- "HEADER_BTN_TXT": "Pridėti Boto konfiguraciją",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Veiksmai"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
index d4887cb8d..bb9782bb8 100644
--- a/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agentai",
"HEADER_BTN_TXT": "Pridėti Agentą",
"LOADING": "Gaunamas agentų sąrašas",
- "SIDEBAR_TXT": "Makrokomandos
Makrokomandos yra išsaugotų veiksmų rinkinys, padedantis klientų aptarnavimo agentams lengvai atlikti užduotis. Agentai gali apibrėžti veiksmų rinkinį, pvz., pokalbio žymėjimą etikete, el. laiško nuorašo siuntimą, tinkinto atributo atnaujinimą ir pan., ir jie gali atlikti šiuos veiksmus vienu paspaudimu. Kai agentai vykdo makrokomandą, veiksmai bus atliekami nuosekliai tokia tvarka, kokia jie yra apibrėžti. Makrokomandos pagerina produktyvumą ir padidina veiksmų nuoseklumą.
Makrokomandas gali būti naudingas dviem būdais.
Kaip agento pagalba: jei agentas kelis kartus atlieka veiksmų rinkinį, jis gali išsaugoti jį kaip makrokomandą ir atlikti visus veiksmus kartu vienu spustelėjimu. p>
Kaip galimybė įtraukti komandos narį: kiekvienas agentas kiekvieno pokalbio metu turi atlikti daugybę skirtingų patikrinimų / veiksmų. Priimti naują palaikymo komandos narį bus lengva, jei paskyroje bus iš anksto nustatytų makrokomandų. Užuot išsamiai aprašęs kiekvieną veiksmą, vadovas / komandos vadovas gali nurodyti įvairiuose scenarijuose naudojamas makrokomandas.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administratorius",
"AGENT": "Agentas"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Su šia paskyra nėra susietų agentų",
"TITLE": "Valdyti agentus jūsų komandoje",
@@ -17,7 +19,8 @@
"STATUS": "Būsena",
"ACTIONS": "Veiksmai",
"VERIFIED": "Patikrinta",
- "VERIFICATION_PENDING": "Laukiama patvirtinimo"
+ "VERIFICATION_PENDING": "Laukiama patvirtinimo",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Pridėti agentą prie komandos",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Nepavyko prisijungti prie Woot serverio, bandykite dar kartą vėliau"
}
},
+ "SEARCH_PLACEHOLDER": "Ieškoti agentų...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nieko nerasta."
},
@@ -103,6 +108,9 @@
"AGENT": "Pasirinkti agentą",
"TEAM": "Pasirinkite komandą"
},
+ "LIST": {
+ "NONE": "Nėra"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Agentų nerasta",
diff --git a/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
index 2e1d6a980..a0f70abb9 100644
--- a/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Personalizuoti Požymiai",
"HEADER_BTN_TXT": "Pridėti personalizuotą požymį",
"LOADING": "Gaunami personalizuoti požymiai",
- "SIDEBAR_TXT": "Personalizuoti požymiai
Personalizuotas požymis seka faktus apie jūsų kontaktus/pokalbį, pvz., prenumeratos planą, kada jie užsakė pirmąją prekę ir pan.
Kuriant personalizuotą požymį, tiesiog spustelėkite Pridėti personalizuotą požymį. Taip pat galite redaguoti arba ištrinti esamą personalizuotą požymį spustelėdami mygtuką Redaguoti arba Naikinti.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Ieškoti požymių...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Pokalbis",
+ "CONTACT": "Kontaktas",
+ "COMPANY": "Įmonė"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Tekstas",
+ "NUMBER": "Numeris",
+ "LINK": "Nuoroda",
+ "DATE": "Date",
+ "LIST": "Sąrašas",
+ "CHECKBOX": "Žymimasis langelis"
+ },
"ADD": {
"TITLE": "Pridėti personalizuotą požymį",
"SUBMIT": "Sukurti",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Nepavyko ištrinti personalizuoto požymio. Pabandykite dar kartą vėliau."
},
"CONFIRM": {
- "TITLE": "Ar tikrai norite ištrinti – %{attributeName}",
+ "TITLE": "Ar tikrai norite ištrinti – {attributeName}",
"PLACE_HOLDER": "Įveskite {attributeName}, kad patvirtintumėte",
"MESSAGE": "Ištrynus bus pašalintas personalizuotas požymis",
"YES": "Ištrinti ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Personalizuoti Požymiai",
"CONVERSATION": "Pokalbis",
- "CONTACT": "Kontaktas"
+ "CONTACT": "Kontaktas",
+ "COMPANY": "Įmonė"
},
"LIST": {
- "TABLE_HEADER": [
- "Vardas",
- "Aprašymas",
- "Tipas",
- "Raktas"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "DESCRIPTION": "Aprašymas",
+ "TYPE": "Tipas",
+ "KEY": "Raktas"
+ },
"BUTTONS": {
"EDIT": "Redaguoti",
"DELETE": "Ištrinti"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/auditLogs.json b/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
index 27617d0af..c0c75f156 100644
--- a/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/lt/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audito Žurnalas",
"HEADER_BTN_TXT": "Pridėti Audito Žurnalus",
"LOADING": "Parsiunčiami Audito Žurnalai",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra",
"SIDEBAR_TXT": "Audito žurnalai
Audito žurnalai yra įvykių ir veiksmų Chatwoot sistemoje pėdsakai.
",
"LIST": {
"404": "Šiai paskyrai nėra prieinamų Audito Žurnalų.",
"TITLE": "Tvarkyti Audito Žurnalus",
"DESC": "Audito žurnalai yra įvykių ir veiksmų „Chatwoot“ sistemoje pėdsakai.",
- "TABLE_HEADER": [
- "Vartotojas",
- "Action",
- "IP Adresas"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Vartotojas",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Adresas"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Audito Žurnalai parsiųsti sėkmingai",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Sistema",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} sukūrė naują automatizavimo taisyklę (#%{id})",
- "EDIT": "%{agentName} atnaujino automatizavimo taisyklę (#%{id})",
- "DELETE": "%{agentName} ištrynė automatizavimo taisyklę (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} pakvietė %{invitee} į paskyrą kaip %{role}",
+ "ADD": "{agentName} pakvietė {invitee} į paskyrą kaip {role}",
"EDIT": {
- "SELF": "%{agentName} pakeitė savo %{attributes} į %{values}",
- "OTHER": "%{agentName} pakeitė %{attributes} iš %{user} į %{values}"
+ "SELF": "{agentName} pakeitė savo {attributes} į {values}",
+ "OTHER": "{agentName} pakeitė {attributes} iš {user} į {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} sukūrė naują gautų laiškų aplanką (#%{id})",
- "EDIT": "%{agentName} atnaujino gautų laiškų aplanką (#%{id})",
- "DELETE": "%{agentName} ištrynė gautų laiškų aplanką (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} sukūrė naują webhook (#%{id})",
- "EDIT": "%{agentName} atnaujino webhook (#%{id})",
- "DELETE": "%{agentName} ištrynė webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} prisijungęs",
- "SIGN_OUT": "%{agentName} atsijungęs"
+ "SIGN_IN": "{agentName} prisijungęs",
+ "SIGN_OUT": "{agentName} atsijungęs"
},
"TEAM": {
- "ADD": "%{agentName} sukūrė naują komandą (#%{id})",
- "EDIT": "%{agentName} atnaujino komandą (#%{id})",
- "DELETE": "%{agentName} ištrynė komandą (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} sukūrė naują makrokomandą (#%{id})",
- "EDIT": "%{agentName} atnaujino makrokomandą (#%{id})",
- "DELETE": "%{agentName} ištrynė makrokomandą (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} pridėjo %{user} prie gautų laiškų aplanko(#%{inbox_id})",
- "REMOVE": "%{agentName} ipašalino %{user} iš gautų laiškų aplanko(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} pridėjo %{user} prie komandos(#%{team_id})",
- "REMOVE": "%{agentName} pašalino %{user} iš komandos(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} atnaujino paskyros konfigūraciją (#%{id})"
+ "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 9f0f1463e..7124bb705 100644
--- a/app/javascript/dashboard/i18n/locale/lt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatika",
- "HEADER_BTN_TXT": "Pridėti automatizavimo taisyklę",
+ "HEADER": "Automatizacija",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Gaunamos automatizavimo taisyklės",
- "SIDEBAR_TXT": "Automatizavimo taisyklės
Automatizacija gali pakeisti ir automatizuoti esamus procesus, kuriems reikia rankinių pastangų. Automatizuodami galite atlikti daugybę dalykų, įskaitant etikečių pridėjimą ir pokalbio priskyrimą geriausiam agentui. Taigi komanda sutelkia dėmesį į tai, ką moka geriausiai, ir mažiau laiko skiria rankinėms užduotims.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Pridėti automatizavimo taisyklę",
"SUBMIT": "Sukurti",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Vardas",
- "Aprašymas",
- "Aktyvus",
- "Sukurta"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "ACTIVE": "Aktyvus",
+ "CREATED_ON": "Sukurta",
+ "ACTIONS": "Veiksmai"
+ },
"404": "Nerasta jokių automatizavimo taisyklių"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Norėdami išsaugoti, turite išpildyti bent vieną veiksmą",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Rašykite pranešimą čia",
- "TEAM_DROPDOWN_PLACEHOLDER": "Pasirinkite komandas"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Pasirinkite komandas",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Aktyvuoti automatizavimo taisyklę",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Įkeliama...",
"LABEL_UPLOADED": "Sėkmingai Įkeltas",
"LABEL_UPLOAD_FAILED": "Įkelti nepavyko"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Reikalinga vertė",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Nėra",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Pokalbis sukurtas",
+ "CONVERSATION_UPDATED": "Pokalbis atnaujintas",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Pakeisti Prioritetą",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Atidaryti pokalbį",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nėra",
+ "LOW": "Žemas",
+ "MEDIUM": "Vidutinis",
+ "HIGH": "Aukštas",
+ "URGENT": "Skubus"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privati pastaba",
+ "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",
+ "COMPANY_NAME": "Įmonė",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Komanda",
+ "PRIORITY": "Prioritetas",
+ "LABELS": "Etiketės"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
index 976da20db..f901d9b4e 100644
--- a/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/lt/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "Pasirinkta pokalbių: %{conversationCount}",
- "AGENT_SELECT_LABEL": "Pasirinkti agentą",
- "ASSIGN_CONFIRMATION_LABEL": "Ar tikrai priskirsite %{conversationCount} %{conversationLabel}",
- "UNASSIGN_CONFIRMATION_LABEL": "Ar tikrai atšauksite priskyrimą %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Grįžti",
- "ASSIGN_LABEL": "Priskirti",
+ "CONVERSATIONS_SELECTED": "Pasirinkta pokalbių: {conversationCount}",
+ "NONE": "Nėra",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Taip",
+ "CANCEL": "Atšaukti",
+ "SEARCH_INPUT_PLACEHOLDER": "Ieškoti",
"ASSIGN_AGENT_TOOLTIP": "Priskirti Agentą",
"ASSIGN_TEAM_TOOLTIP": "Priskirti komandą",
"ASSIGN_SUCCESFUL": "Pokalbis priskirtas sėkmingai.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Pokalbio išspręstas sėkmingai.",
"RESOLVE_FAILED": "Nepavyko išspręsti pokalbių. Bandykite dar kartą.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Pasirinkti šiame puslapyje matomi pokalbiai.",
- "AGENT_LIST_LOADING": "Agentai užkraunami",
"UPDATE": {
"CHANGE_STATUS": "Pakeisti būseną",
- "SNOOZE_UNTIL_NEXT_REPLY": "Atidėti iki kito atsakymo.",
+ "SNOOZE_UNTIL": "Atidėti",
"UPDATE_SUCCESFUL": "Pokalbio būsena atnaujinta sėkmingai.",
"UPDATE_FAILED": "Nepavyko atnaujinti pokalbių. Bandykite dar kartą."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Priskirti etiketes",
- "NO_LABELS_FOUND": "Etikečių nerasta",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Priskirti pažymėtas etiketes",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etiketės sėkmingai priskirtos.",
- "ASSIGN_FAILED": "Nepavyko priskirti etikečių. Prašau, pabandykite dar kartą."
+ "ASSIGN_FAILED": "Nepavyko priskirti etikečių. Prašau, pabandykite dar kartą.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Pasirinkite komandą",
"NONE": "Nėra",
- "NO_TEAMS_AVAILABLE": "Šioje paskyroje nėra pridėtų komandų.",
- "ASSIGN_SELECTED_TEAMS": "Priskirti pažymėtą komandą.",
- "ASSIGN_SUCCESFUL": "Komandos sėkmingai priskirtos.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Nepavyko priskirti komandą. Prašau, pabandykite dar kartą."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/campaign.json b/app/javascript/dashboard/i18n/locale/lt/campaign.json
index ad164f2bd..b0d0158ea 100644
--- a/app/javascript/dashboard/i18n/locale/lt/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/lt/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Akcijos",
- "SIDEBAR_TXT": "Proaktyvūs pranešimai leidžia klientui siųsti išeinančius pranešimus savo kontaktams, kurie sukeltų daugiau pokalbių. Norėdami sukurti naują kampaniją, spustelėkite Pridėti kampaniją. Taip pat galite redaguoti arba ištrinti esamą reklamos kampaniją spustelėdami mygtuką Redaguoti arba Ištrinti.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Sukurti vieną iš akcijų",
- "ONGOING": "Sukurkite nuolatinę akciją"
- },
- "ADD": {
- "TITLE": "Sukurti akciją",
- "DESC": "Proaktyvūs pranešimai leidžia klientui siųsti išeinančius pranešimus savo kontaktams, kas paskatina daugiau pokalbių.",
- "CANCEL_BUTTON_TEXT": "Atšaukti",
- "CREATE_BUTTON_TEXT": "Sukurti",
- "FORM": {
- "TITLE": {
- "LABEL": "Pavadinimas",
- "PLACEHOLDER": "Įveskite akcijos pavadinimą",
- "ERROR": "Yra reikalingas pavadinimas"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Leisti",
+ "DISABLED": "Išjungta"
},
- "SCHEDULED_AT": {
- "LABEL": "Suplanuotas laikas",
- "PLACEHOLDER": "Prašau pasirinkti laiką",
- "CONFIRM": "Patvirtinti",
- "ERROR": "Būtinas suplanuotas laikas"
- },
- "AUDIENCE": {
- "LABEL": "Auditorija",
- "PLACEHOLDER": "Pažymėti klieto etiketes",
- "ERROR": "Reikalinga auditorija"
- },
- "INBOX": {
- "LABEL": "Pasirinkti gautų laiškų aplanką",
- "PLACEHOLDER": "Pasirinkti gautų laiškų aplanką",
- "ERROR": "Yra reikalingas gautų laiškų aplankas"
- },
- "MESSAGE": {
- "LABEL": "Žinutė",
- "PLACEHOLDER": "Įveskite akcijos pranešimą",
- "ERROR": "Yra reikalingas pranešimas"
- },
- "SENT_BY": {
- "LABEL": "Siuntėjas",
- "PLACEHOLDER": "Pasirinkite akcijos turinį",
- "ERROR": "Yra reikalingas siuntėjas"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Prašome įvesti URL adresą",
- "ERROR": "Prašome įvesti tesingą URL adresą"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Laikas puslapyje (sekundės)",
- "PLACEHOLDER": "Prašome įvesti laiką",
- "ERROR": "Nurodykite laiką puslapyje"
- },
- "ENABLED": "Leisti akciją",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Aktyvuokite tik darbo valandomis",
- "SUBMIT": "Pridėti Akciją"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Siuntėjas",
+ "BOT": "Botas",
+ "FROM": "nuo",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Akcija sukurta sėkmingai",
- "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Atšaukti",
+ "CREATE_BUTTON_TEXT": "Sukurti",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pavadinimas",
+ "PLACEHOLDER": "Įveskite akcijos pavadinimą",
+ "ERROR": "Yra reikalingas pavadinimas"
+ },
+ "MESSAGE": {
+ "LABEL": "Žinutė",
+ "PLACEHOLDER": "Įveskite akcijos pranešimą",
+ "ERROR": "Yra reikalingas pranešimas"
+ },
+ "INBOX": {
+ "LABEL": "Pasirinkti gautų laiškų aplanką",
+ "PLACEHOLDER": "Pasirinkti gautų laiškų aplanką",
+ "ERROR": "Yra reikalingas gautų laiškų aplankas"
+ },
+ "SENT_BY": {
+ "LABEL": "Siuntėjas",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Yra reikalingas siuntėjas"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Prašome įvesti URL adresą",
+ "ERROR": "Prašome įvesti tesingą URL adresą"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Laikas puslapyje (sekundės)",
+ "PLACEHOLDER": "Prašome įvesti laiką",
+ "ERROR": "Nurodykite laiką puslapyje"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Leisti akciją",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Aktyvuokite tik darbo valandomis"
+ },
+ "BUTTONS": {
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Ištrinti",
- "CONFIRM": {
- "TITLE": "Patvirtinti Ištrynimą",
- "MESSAGE": "Ar tikrai norite ištrinti?",
- "YES": "Taip, Trinti ",
- "NO": "Ne, Išsaugoti "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Užbaigta",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Atšaukti",
+ "CREATE_BUTTON_TEXT": "Sukurti",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pavadinimas",
+ "PLACEHOLDER": "Įveskite akcijos pavadinimą",
+ "ERROR": "Yra reikalingas pavadinimas"
+ },
+ "MESSAGE": {
+ "LABEL": "Žinutė",
+ "PLACEHOLDER": "Įveskite akcijos pranešimą",
+ "ERROR": "Yra reikalingas pranešimas"
+ },
+ "INBOX": {
+ "LABEL": "Pasirinkti gautų laiškų aplanką",
+ "PLACEHOLDER": "Pasirinkti gautų laiškų aplanką",
+ "ERROR": "Yra reikalingas gautų laiškų aplankas"
+ },
+ "AUDIENCE": {
+ "LABEL": "Auditorija",
+ "PLACEHOLDER": "Pažymėti klieto etiketes",
+ "ERROR": "Reikalinga auditorija"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Suplanuotas laikas",
+ "PLACEHOLDER": "Prašau pasirinkti laiką",
+ "ERROR": "Būtinas suplanuotas laikas"
+ },
+ "BUTTONS": {
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Užbaigta",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Atšaukti",
+ "CREATE_BUTTON_TEXT": "Sukurti",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pavadinimas",
+ "PLACEHOLDER": "Įveskite akcijos pavadinimą",
+ "ERROR": "Yra reikalingas pavadinimas"
+ },
+ "INBOX": {
+ "LABEL": "Pasirinkti gautų laiškų aplanką",
+ "PLACEHOLDER": "Pasirinkti gautų laiškų aplanką",
+ "ERROR": "Yra reikalingas gautų laiškų aplankas"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Apdoroti {templateName}",
+ "LANGUAGE": "Kalba",
+ "CATEGORY": "Kategorija",
+ "VARIABLES_LABEL": "Kintamieji",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Auditorija",
+ "PLACEHOLDER": "Pažymėti klieto etiketes",
+ "ERROR": "Reikalinga auditorija"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Suplanuotas laikas",
+ "PLACEHOLDER": "Prašau pasirinkti laiką",
+ "ERROR": "Būtinas suplanuotas laikas"
+ },
+ "BUTTONS": {
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Ar tikrai norite ištrinti?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Ištrinti",
"API": {
"SUCCESS_MESSAGE": "Akcija ištrinta sėkmingai",
- "ERROR_MESSAGE": "Nepavyko ištrinti akcijos. Pabandykite dar kartą vėliau."
+ "ERROR_MESSAGE": "Įvyko klaida. Prašau, pabandykite dar kartą."
}
- },
- "EDIT": {
- "TITLE": "Redaguoti akciją",
- "UPDATE_BUTTON_TEXT": "Atnaujinti",
- "API": {
- "SUCCESS_MESSAGE": "Akcija sėkmingai atnaujinta",
- "ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Akcijos užkraunamos...",
- "404": "Nėra kampanijų, sukurtų šiam gautų laiškų aplankui.",
- "TABLE_HEADER": {
- "TITLE": "Pavadinimas",
- "MESSAGE": "Žinutė",
- "INBOX": "Gautų laiškų aplankas",
- "STATUS": "Būsena",
- "SENDER": "Siuntėjas",
- "URL": "URL",
- "SCHEDULED_AT": "Suplanuotas laikas",
- "TIME_ON_PAGE": "Laikas(sekundės)",
- "CREATED_AT": "Sukurta"
- },
- "BUTTONS": {
- "ADD": "Pridėti",
- "EDIT": "Redaguoti",
- "DELETE": "Ištrinti"
- },
- "STATUS": {
- "ENABLED": "Leisti",
- "DISABLED": "Išjungta",
- "COMPLETED": "Užbaigta",
- "ACTIVE": "Aktyvus"
- },
- "SENDER": {
- "BOT": "Botas"
- }
- },
- "ONE_OFF": {
- "HEADER": "Viena iš akcijų",
- "404": "Nėra sukurtų vienkartinių akcijų",
- "INBOXES_NOT_FOUND": "Sukurkite gautų SMS aplanką ir pridėkite akcijas"
- },
- "ONGOING": {
- "HEADER": "Vykstančios akcijos",
- "404": "Nėra sukurtų nuolatinių akcijų",
- "INBOXES_NOT_FOUND": "Sukurkite svetainės gautų laiškų aplanką ir pridėkite akcijas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
index 14f84cd59..e17c7f3ed 100644
--- a/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
- "HEADER": "Atsakymų Ruošiniai",
+ "HEADER": "Atsakymų ruošiniai",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Pridėti atsakymo ruošinį",
"LOADING": "Atsakymų ruošinių gavimas...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Šioje paskyroje nėra galimų atsakymų ruošinių.",
"TITLE": "Tvarkyti atsakymų ruošinius",
"DESC": "Atsakymų ruošiniai yra iš anksto nustatyti atsakymų šablonai, kuriuos galima naudoti norint greitai išsiųsti atsakymus į pokalbius.",
- "TABLE_HEADER": [
- "Trumpasis kodas",
- "Turinys",
- "Veiksmai"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Trumpasis kodas",
+ "CONTENT": "Turinys",
+ "ACTIONS": "Veiksmai"
+ }
},
"ADD": {
"TITLE": "Pridėti atsakymo ruošinį",
diff --git a/app/javascript/dashboard/i18n/locale/lt/chatlist.json b/app/javascript/dashboard/i18n/locale/lt/chatlist.json
index 61884dfbf..fe6ef49de 100644
--- a/app/javascript/dashboard/i18n/locale/lt/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/lt/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Šioje grupėje nėra aktyvių pokalbių."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Pokalbiai",
"MENTION_HEADING": "Paminėjimai",
"UNATTENDED_HEADING": "Be priežiūros",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Laukia atsakymo: nuo trumpiausio"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Vieta"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "pasidalino URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Nėra turinio",
"HIDE_QUOTED_TEXT": "Slėpti cituojamą tekstą",
"SHOW_QUOTED_TEXT": "Rodyti cituojamą tekstą",
- "MESSAGE_READ": "Skaityti"
+ "MESSAGE_READ": "Skaityti",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/companies.json b/app/javascript/dashboard/i18n/locale/lt/companies.json
new file mode 100644
index 000000000..c8321c4f4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Įmonės",
+ "SORT_BY": {
+ "LABEL": "Rūšiuoti pagal",
+ "OPTIONS": {
+ "NAME": "Vardas",
+ "DOMAIN": "Domenas",
+ "CREATED_AT": "Sukurta",
+ "LAST_ACTIVITY_AT": "Paskutiniai veiksmai",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Rikiavimas",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Ieškoti įmonės...",
+ "LOADING": "Užkraunamas įmonių sąrašas...",
+ "UNNAMED": "Įmonė be pavadinimo",
+ "CONTACTS_COUNT": "{n} kontaktas | {n} kontaktai",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kontaktai",
+ "HISTORY": "History",
+ "NOTES": "Pastabos"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Ieškoti požymių...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Kontaktai užkraunami...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Įmonė",
+ "CONTACT_LABEL": "Kontaktas",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Atšaukti"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Vardas",
+ "DOMAIN": "Domenas"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nerasta nei viena įmonė"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/components.json b/app/javascript/dashboard/i18n/locale/lt/components.json
new file mode 100644
index 000000000..ee0f021e6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Nieko nerasta.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Nieko nerasta.",
+ "SEARCHING": "Ieškoma..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Atšaukti",
+ "CONFIRM": "Patvirtinti"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Sąraše pasirinkite skambinimo kodą"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Sužinoti daugiau",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/contact.json b/app/javascript/dashboard/i18n/locale/lt/contact.json
index 039f4b299..0e1d8b2b9 100644
--- a/app/javascript/dashboard/i18n/locale/lt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lt/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP Adresas",
"CREATED_AT_LABEL": "Sukurta",
"NEW_MESSAGE": "Naujas pranešimas",
+ "CALL": "Call",
+ "CALL_INITIATED": "Skambinama kontaktui...",
+ "CALL_FAILED": "Nepavyko pradėti skambučio. Bandykite dar kartą.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Su šiuo kontaktu nėra susietų ankstesnių pokalbių.",
"TITLE": "Ankstesni pokalbiai"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Personalizuoti Požymiai",
"CONTACT_LABELS": "Kontakto Žymeklis",
- "PREVIOUS_CONVERSATIONS": "Ankstesni pokalbiai"
+ "PREVIOUS_CONVERSATIONS": "Ankstesni pokalbiai",
+ "NO_RECORDS_FOUND": "Požymių nerasta"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Keisti Kontaktą",
"DESC": "Tvarkyti kontakto informaciją"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Naujas Kontaktas",
- "TITLE": "Sukurti naują kontaktą",
- "DESC": "Pridėkite pagrindinę informaciją apie kontaktą."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importuoti",
- "TITLE": "Importuoti Kontaktus",
- "DESC": "Importuoti kontaktus CSV failo pagalba.",
- "DOWNLOAD_LABEL": "Užkrauti csv. pavyzdį.",
- "FORM": {
- "LABEL": "CSV failas",
- "SUBMIT": "Importuoti",
- "CANCEL": "Atšaukti"
- },
- "SUCCESS_MESSAGE": "Jūs gausite pranešimą el. paštu, kai importas bus užbaigtas.",
- "ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Eksportuoti",
- "TITLE": "Eksportuoti Kontaktus",
- "DESC": "Eksportuoti kontaktus į CSV failą.",
- "SUCCESS_MESSAGE": "Vykdomas eksportavimas. Jums bus pranešta el. paštu, kai eksporto failas bus paruoštas įkelti.",
- "ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą",
- "CONFIRM": {
- "TITLE": "Eksportuoti Kontaktus",
- "MESSAGE": "Ar esate tikri, kad norite išeksportuoti visus kontaktus?",
- "YES": "Taip, išeksportuoti",
- "NO": "Ne, atšaukti"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Patvirtinti Ištrynimą",
- "MESSAGE": "Ar tikrai norite ištrinti šią pastabą?",
- "YES": "Taip, Trinti",
- "NO": "Ne, Išsaugoti"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Trinti kontaktą",
"TITLE": "Trinti kontaktą",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontaktai",
- "FIELDS": "Kontakto laukai",
- "SEARCH_BUTTON": "Ieškoti",
- "SEARCH_INPUT_PLACEHOLDER": "Ieškoti kontaktų",
- "FILTER_CONTACTS": "Filtruoti",
- "FILTER_CONTACTS_SAVE": "Išsaugoti filtrą",
- "FILTER_CONTACTS_DELETE": "Trinti filtrą",
- "FILTER_CONTACTS_EDIT": "Redaguoti segmentą",
"LIST": {
- "LOADING_MESSAGE": "Kontaktai užkraunami...",
- "404": "Nė vienas kontaktas neatitinka jūsų paieškos 🔍",
- "NO_CONTACTS": "Nėra pasiekiamų kontaktų",
"TABLE_HEADER": {
- "NAME": "Vardas",
- "PHONE_NUMBER": "Telefono numeris",
- "CONVERSATIONS": "Pokalbiai",
- "LAST_ACTIVITY": "Paskutiniai veiksmai",
- "CREATED_AT": "Sukūrimo data",
- "COUNTRY": "Šalis",
- "CITY": "Miestas",
- "SOCIAL_PROFILES": "Socialinių tinklų profiliai",
- "COMPANY": "Įmonė",
- "EMAIL_ADDRESS": "El. pašto adresas"
- },
- "VIEW_DETAILS": "Pažiūrėti detaliau"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontaktai",
- "LOADING": "Parsisiųsti kontakto profilį..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Pridėti",
- "TITLE": "Spauskite Shift + Enter kad sukurti užduotį"
- },
- "FOOTER": {
- "DUE_DATE": "Užbaigimo data",
- "LABEL_TITLE": "Nustatyti tipą"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Gaunamos pastabos...",
- "NOT_AVAILABLE": "Nėra pastabų sukurtų šiam profiliui",
- "HEADER": {
- "TITLE": "Pastabos"
- },
- "LIST": {
- "LABEL": "pridėta pastabą"
- },
- "ADD": {
- "BUTTON": "Pridėti",
- "PLACEHOLDER": "Pridėti pastabą",
- "TITLE": "Spauskite Shift + Enter kad sukurti pastabą"
- },
- "CONTENT_HEADER": {
- "DELETE": "Trinti pastabą"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Užsiėmimai"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "pastabos",
- "PILL_BUTTON_EVENTS": "įvykiai",
- "PILL_BUTTON_CONVO": "pokalbiai"
+ "SOCIAL_PROFILES": "Socialinių tinklų profiliai"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Pridėti požymius",
"BUTTON": "Pridėti personalizuotą požymį",
- "NOT_AVAILABLE": "Nėra personalizuotų požymių šiam kontaktui.",
"COPY_SUCCESSFUL": "Sėkmingai nukopijuota į iškarpinę",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Kopijuoti požymį",
"DELETE": "Ištrinti požymį",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Santrauka",
- "DELETE_WARNING": "Kontaktas %{primaryContactName} bus ištrintas.",
- "ATTRIBUTE_WARNING": "Kontakto informacija %{primaryContactName} bus nukopijuota į %{parentContactName}."
+ "DELETE_WARNING": "Kontaktas {primaryContactName} bus ištrintas.",
+ "ATTRIBUTE_WARNING": "Kontakto informacija {primaryContactName} bus nukopijuota į {parentContactName}."
},
"SEARCH": {
- "ERROR": "KLAIDOS_PRANEŠIMAS"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Apjungti kontaktus",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontaktas apjungtas sėkmingai",
"ERROR_MESSAGE": "Nepavyko apjungti kontaktų, bandykite dar kartą!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontaktai",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Žinutė",
+ "SEND_MESSAGE": "Išsiųsti pranešimą",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontaktai"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Šis el. pašto adresas naudojamas kitam kontaktui.",
+ "PHONE_NUMBER_DUPLICATE": "Šis telefono numeris naudojamas kitam kontaktui.",
+ "SUCCESS_MESSAGE": "Kontaktas išsaugotas sėkmingai",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Šis kontaktas sėkmingai atblokuotas",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importuoti kontaktus CSV failo pagalba.",
+ "DOWNLOAD_LABEL": "Užkrauti csv. pavyzdį.",
+ "LABEL": "CSV failas:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Keisti",
+ "CANCEL": "Atšaukti",
+ "IMPORT": "Importuoti",
+ "SUCCESS_MESSAGE": "Jūs gausite pranešimą el. paštu, kai importas bus užbaigtas.",
+ "ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Eksportuoti",
+ "SUCCESS_MESSAGE": "Vykdomas eksportavimas. Jums bus pranešta el. paštu, kai eksporto failas bus paruoštas įkelti.",
+ "ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
+ },
+ "SORT_BY": {
+ "LABEL": "Rūšiuoti pagal",
+ "OPTIONS": {
+ "NAME": "Vardas",
+ "EMAIL": "El. paštas",
+ "PHONE_NUMBER": "Telefono numeris",
+ "COMPANY": "Įmonė",
+ "COUNTRY": "Šalis",
+ "CITY": "Miestas",
+ "LAST_ACTIVITY": "Paskutiniai veiksmai",
+ "CREATED_AT": "Sukurta"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Ar nori išsaugoti šį filtrą?",
+ "CONFIRM": "Išsaugoti filtrą",
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Patvirtinti Ištrynimą",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Taip, Ištrinti",
+ "CANCEL": "Ne, atšaukti",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Vardas",
+ "EMAIL": "El. paštas",
+ "PHONE_NUMBER": "Telefono numeris",
+ "IDENTIFIER": "Identifikatorius",
+ "COUNTRY": "Šalis",
+ "CITY": "Miestas",
+ "COMPANY": "Įmonė",
+ "CREATED_AT": "Sukurta",
+ "LAST_ACTIVITY": "Paskutiniai veiksmai",
+ "REFERER_LINK": "Siuntimo nuoroda",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Tiesa",
+ "BLOCKED_FALSE": "Netiesa",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Išvalyti filtrus",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Taikyti filtrus",
+ "ADD_FILTER": "Pridėti Filtrą"
+ },
+ "TITLE": "Filtruoti kontaktus",
+ "EDIT_SEGMENT": "Redaguoti segmentą",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Išvalyti filtrus"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Pažiūrėti detaliau",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Tvarkyti kontakto informaciją",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Šis el. pašto adresas naudojamas kitam kontaktui."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Šis telefono numeris naudojamas kitam kontaktui."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Įveskite miesto pavadinimą"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Įveskite įmonės pavadinimą"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Trinti kontaktą",
+ "DELETE_DIALOG": {
+ "TITLE": "Patvirtinti Ištrynimą",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Taip, Ištrinti",
+ "API": {
+ "SUCCESS_MESSAGE": "Agentas ištrintas sėkmingai",
+ "ERROR_MESSAGE": "Nepavyko ištrinti kontakto. Pabandykite dar kartą vėliau."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avataras ištrintas sėkmingai",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Pastabos",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Su šiuo kontaktu nėra susietų ankstesnių pokalbių"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Taip",
+ "NO": "Ne",
+ "TRIGGER": {
+ "SELECT": "Pasirinkti reikšmę",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Reikalinga tinkama vertė",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Neteisingas URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Požymių nerasta",
+ "API": {
+ "SUCCESS_MESSAGE": "Požymis atnaujintas sėkmingai",
+ "DELETE_SUCCESS_MESSAGE": "Požymis ištrintas sėkmingai",
+ "UPDATE_ERROR": "Nepavyko atnaujinti požymio. Pabandykite dar kartą vėliau",
+ "DELETE_ERROR": "Nepavyko ištrinti požymio. Pabandykite dar kartą vėliau"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Sujungti kontaktą",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Pirminis kontaktas",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Turi būti ištrinta",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Ieškoti kontakto",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Kontaktas apjungtas sėkmingai",
+ "ERROR_MESSAGE": "Nepavyko apjungti kontaktų, bandykite dar kartą!",
+ "IS_SEARCHING": "Ieškoma...",
+ "BUTTONS": {
+ "CANCEL": "Atšaukti",
+ "CONFIRM": "Sujungti kontaktą"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Pridėti pastabą",
+ "WROTE": "parašei",
+ "YOU": "Jūs",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Nė vienas kontaktas neatitinka jūsų paieškos 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Priskirti etiketes",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etiketės sėkmingai priskirtos.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Ištrinti",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Trinti kontaktą"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Paržiūra",
+ "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": "Kam:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Tema :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Rašykite pranešimą čia..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Kintamieji",
+ "BACK": "Grįžti",
+ "SEND_MESSAGE": "Išsiųsti pranešimą"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Grįžti",
+ "SEND_MESSAGE": "Išsiųsti pranešimą"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/contactFilters.json b/app/javascript/dashboard/i18n/locale/lt/contactFilters.json
index b0027366d..75f48b586 100644
--- a/app/javascript/dashboard/i18n/locale/lt/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/lt/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Yra mažesnis nei",
"days_before": "Yra prieš x dienų"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Reikalinga vertė"
+ },
"ATTRIBUTES": {
"NAME": "Vardas",
"EMAIL": "El. paštas",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Žymimasis langelis",
"CREATED_AT": "Sukūrimo data",
"LAST_ACTIVITY": "Paskutiniai veiksmai",
- "REFERER_LINK": "Rekomendacijos nuoroda"
+ "REFERER_LINK": "Rekomendacijos nuoroda",
+ "BLOCKED": "Blocked",
+ "LABELS": "Etiketės"
},
"GROUPS": {
"STANDARD_FILTERS": "Standartinis Filtras",
diff --git a/app/javascript/dashboard/i18n/locale/lt/contentTemplates.json b/app/javascript/dashboard/i18n/locale/lt/contentTemplates.json
new file mode 100644
index 000000000..81d2ee80f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Ieškoti šablonų",
+ "NO_TEMPLATES_FOUND": "Šablonų nerasta",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Kalba",
+ "TEMPLATE_BODY": "Šablono tekstas",
+ "CATEGORY": "Kategorija"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Tekstas"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Kintamieji",
+ "LANGUAGE": "Kalba",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Įveskite {variable} reikšmę",
+ "GO_BACK_LABEL": "Grįžti",
+ "SEND_MESSAGE_LABEL": "Išsiųsti pranešimą",
+ "FORM_ERROR_MESSAGE": "Prieš siųsdami užpildykite visus kintamuosius",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Atgal",
+ "SEND_MESSAGE_BUTTON": "Išsiųsti pranešimą"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/conversation.json b/app/javascript/dashboard/i18n/locale/lt/conversation.json
index 303cd9f88..8ad1059c1 100644
--- a/app/javascript/dashboard/i18n/locale/lt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lt/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " norint pradėti",
"NO_INBOX_AGENT": "Oi! Atrodo, kad nesate jokio gautų laiškų aplanko dalis. Susisiekite su administratoriumi",
"SEARCH_MESSAGES": "Ieškokite pranešimų pokalbiuose",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "norėdami atidaryti komandų meniu",
"KEYBOARD_SHORTCUTS": "norėdami peržiūrėti sparčiuosius klavišus"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Pokalbiai parsiunčiami",
"CANNOT_REPLY": "Jūs negalite atsakyti dėl",
"24_HOURS_WINDOW": "Pranešimų apribojimas 24 valandoms",
+ "48_HOURS_WINDOW": "Pranešimų apribojimas 48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Nežinomas failas",
- "SAVE_CONTACT": "Išsaugoti",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} pradėjo susitikimą"
+ },
"UPLOADING_ATTACHMENTS": "Įkeliami priedai...",
"REPLIED_TO_STORY": "Atsakė į tavo pasakojimą",
- "UNSUPPORTED_MESSAGE": "Ši žinutė nepalaikoma.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Ši žinutė nepalaikoma. Jūs galite peržiūrėti šią žinutę Facebook Messenger programėlėje.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Ši žinutė nepalaikoma. Jūs galite peržiūrėti šią žinutę Instagram programėlėje.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Pranešimas ištrintas sėkmingai",
"FAIL_DELETE_MESSSAGE": "Nepavyko ištrinti pranešimo! Bandykite dar kartą",
"NO_RESPONSE": "Nėra atsakymo",
+ "RESPONSE": "Response",
"RATING_TITLE": "Reitingas",
"FEEDBACK_TITLE": "Grįžtamasis ryšys",
"REPLY_MESSAGE_NOT_FOUND": "Pranešimas nepasiekiamas",
"CARD": {
"SHOW_LABELS": "Rodyti etiketes",
- "HIDE_LABELS": "Slėpti etiketes"
+ "HIDE_LABELS": "Slėpti etiketes",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"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",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Atidėta iki",
"SNOOZED_UNTIL_TOMORROW": "Atidėta iki rytojaus",
"SNOOZED_UNTIL_NEXT_WEEK": "Atidėta iki kitos savaitės",
- "SNOOZED_UNTIL_NEXT_REPLY": "Atidėta iki kito atsakymo"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Atidėta iki kito atsakymo",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Pažymėti kaip laukiantį",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Kitą savaitę"
}
},
+ "MENTION": {
+ "AGENTS": "Agentai",
+ "TEAMS": "Komandos"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Atidėti iki",
"APPLY": "Atidėti",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nėra",
"INPUT_PLACEHOLDER": "Pasirinkti prioritetą",
"NO_RESULTS": "Nieko nerasta",
- "SUCCESSFUL": "Prioritetas pokalbiui id %{conversationId} pakeistas į %{priority}",
+ "SUCCESSFUL": "Prioritetas pokalbiui id {conversationId} pakeistas į {priority}",
"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ą",
"MARK_AS_UNREAD": "Pažymėti kaip neperskaitytą",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Atidaryti pokalbį",
"SNOOZE": {
"TITLE": "Atidėti",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Priskirti etiketę",
"AGENTS_LOADING": "Agentai užkraunami...",
"ASSIGN_TEAM": "Priskirti komandą",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Pokalbis id %{conversationId} priskirtas \"%{agentName}\"",
+ "SUCCESFUL": "Pokalbis id {conversationId} priskirtas \"{agentName}\"",
"FAILED": "Nepavyko priskirti agento. Prašau, pabandykite dar kartą."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Priskirta etiketė #%{labelName} pokalbiui id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nepavyko priskirti etiketės. Prašau, pabandykite dar kartą."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Priskirta komanda #%{team} pokalbiui id %{conversationId}",
+ "SUCCESFUL": "Priskirta komanda \"{team}\" pokalbiui id {conversationId}",
"FAILED": "Nepavyko priskirti komandos. Prašau, pabandykite dar kartą."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Išjungti parašą",
"MSG_INPUT": "Spauksite Shift + Enter, pradėjimui iš naujos eilutės. Pradėkite nuo „/“, kad pasirinktumėte Atsakymo Ruošinį.",
"PRIVATE_MSG_INPUT": "Spauksite Shift + Enter, pradėjimui iš naujos eilutės. Tai bus matoma tik Agentams",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Pranešimo parašas nesukonfigūruotas, sukonfigūruokite jį profilio nustatymuose.",
- "CLICK_HERE": "Spausti čia kad atnaujinti"
+ "COPILOT_MSG_INPUT": "Duokite copiloto papildomų nurodymų arba klauskite dar ko nors... Paspauskite Enter, kad išsiųstumėte papildomą žinutę",
+ "CLICK_HERE": "Spausti čia kad atnaujinti",
+ "WHATSAPP_TEMPLATES": "Whatsapp Šablonai"
},
"REPLYBOX": {
"REPLY": "Atsakyti",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Skaityti daugiau",
"DISMISS_REPLY": "Atšaukti atsakymą",
"REPLYING_TO": "Atsakant į:",
- "TIP_FORMAT_ICON": "Rodyti raiškiojo teksto redagavimo priemonę",
"TIP_EMOJI_ICON": "Parodyti emodžio parinkiklį",
"TIP_ATTACH_ICON": "Pridėti failus",
"TIP_AUDIORECORDER_ICON": "Įrašyti audio",
"TIP_AUDIORECORDER_PERMISSION": "Leisti prieiti prie audio",
"TIP_AUDIORECORDER_ERROR": "Nepavyko atidaryti audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Norėdami pridėti, vilkite ir numeskite čia",
"START_AUDIO_RECORDING": "Pradėti audio įrašymą",
"STOP_AUDIO_RECORDING": "Baigti audio įrašymą",
- "": "",
+ "COPILOT_THINKING": "Copilot galvoja",
"EMAIL_HEAD": {
"TO": "Kam",
"ADD_BCC": "Pridėti bcc",
@@ -176,6 +257,13 @@
"YES": "Siųsti",
"CANCEL": "Atšaukti"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privati pastaba: matoma tik jums ir jūsų komandai",
@@ -186,10 +274,15 @@
"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ą",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nepavyko išsiųsti šio pranešimo, bandykite dar kartą vėliau",
"SENT_BY": "Siuntėjas:",
"BOT": "Botas",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nepavyko išsiųsti pranešimo! Bandykite dar kartą",
"TRY_AGAIN": "kartoti",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Ištrinti",
"CANCEL": "Atšaukti"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontaktas",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Atsisakyti",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Atšaukti",
"SEND_EMAIL_SUCCESS": "Pokalbio stenograma sėkmingai išsiųsta",
"SEND_EMAIL_ERROR": "Įvyko klaida, prašau pabandykite dar kartą",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Siųsti stenogramą klientui",
"SEND_TO_AGENT": "Siųsti stenogramą priskirtam agentui",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Sveiki 👋, Sveiki atvykę į %{installationName}!",
- "DESCRIPTION": "Ačiū, kad užsiregistravote. Norime, kad išnaudotumėte visas %{installationName} galimybes. Štai keletas dalykų, kuriuos galite padaryti naudodami %{installationName}, kad patirtis būtų maloni.",
+ "TITLE": "Sveiki 👋, Sveiki atvykę į {installationName}!",
+ "DESCRIPTION": "Ačiū, kad užsiregistravote. Norime, kad išnaudotumėte visas {installationName} galimybes. Štai keletas dalykų, kuriuos galite padaryti naudodami {installationName}, kad patirtis būtų maloni.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Skaitykite mūsų naujausius atnaujinimus",
"ALL_CONVERSATION": {
"TITLE": "Visi jūsų pokalbiai vienoje vietoje",
- "DESCRIPTION": "Peržiūrėkite visus savo klientų pokalbius vienoje informacijos suvestinėje. Galite filtruoti pokalbius pagal gaunamą kanalą, etiketę ir būseną."
+ "DESCRIPTION": "Peržiūrėkite visus savo klientų pokalbius vienoje informacijos suvestinėje. Galite filtruoti pokalbius pagal gaunamą kanalą, etiketę ir būseną.",
+ "NEW_LINK": "Spustelėkite čia, kad sukurtumėte gautų laiškų aplanką"
},
"TEAM_MEMBERS": {
"TITLE": "Pakvieskite savo komandos narius",
"DESCRIPTION": "Kadangi ruošiatės kalbėtis su savo klientu, pasikvieskite savo komandos draugus, kad jie jums padėtų. Galite pakviesti savo komandos draugus įtraukę jų el. pašto adresus į agentų sąrašą.",
"NEW_LINK": "Spustelėkite čia, kad pakviestumėte komandos narį"
},
- "INBOXES": {
- "TITLE": "Sujungti Gautų Laiškų Aplankus",
- "DESCRIPTION": "Prijunkite įvairius kanalus, kuriais jūsų klientai kalbėtų su jumis. Tai gali būti svetainės live-chat, jūsų Facebook ar Twitter ar net jūsų WhatsApp numeris.",
- "NEW_LINK": "Spustelėkite čia, kad sukurtumėte gautų laiškų aplanką"
- },
"LABELS": {
"TITLE": "Tvarkykite pokalbius etiketėmis",
"DESCRIPTION": "Etiketės suteikia lengvesnį būdą suskirstyti pokalbį į kategorijas. Sukurkite keletą etikečių, pvz., #palaikymo-klausimas, #atsiskaitymo-klausimas ir kt., kad vėliau galėtumėte jas naudoti pokalbyje.",
"NEW_LINK": "Spustelėkite čia, kad sukurtumėte žymas"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Makrokomandos",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Peržiūrėti visus",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Laukiama",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Sukurti požymį",
+ "NO_RECORDS_FOUND": "Požymių nerasta",
"UPDATE": {
"SUCCESS": "Požymis atnaujintas sėkmingai",
"ERROR": "Nepavyko atnaujinti požymio. Pabandykite dar kartą vėliau"
@@ -297,17 +449,18 @@
"TO": "Kam",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Tema"
+ "SUBJECT": "Tema",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Dalyvaujantys",
"SIDEBAR_TITLE": "Pokalbio dalyviai",
"NO_RECORDS_FOUND": "Nieko nerasta",
"ADD_PARTICIPANTS": "Pasirinkti dalyvius",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} kiti",
- "REMANING_PARTICIPANT_TEXT": "+%{count} kitas",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} dalyvauja žmonių.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} dalyvauja asmenų.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} kiti",
+ "REMANING_PARTICIPANT_TEXT": "+{count} kitas",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} dalyvauja žmonių.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} dalyvauja asmenų.",
"NO_PARTICIPANTS_TEXT": "Niekas nedalyvauja!.",
"WATCH_CONVERSATION": "Prisijungti pire pokalbio",
"YOU_ARE_WATCHING": "Jūs dalyvaujate",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Originalus turinys",
"TRANSLATED_CONTENT": "Išverstas turinys",
"NO_TRANSLATIONS_AVAILABLE": "Nėra šio turinio vertimo"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/customRole.json b/app/javascript/dashboard/i18n/locale/lt/customRole.json
new file mode 100644
index 000000000..86676a903
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Šią užklausą atitinkančių elementų nėra.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "DESCRIPTION": "Aprašymas",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Veiksmai"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Yra reikalingas vardas."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Būtinas aprašymas."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Atšaukti",
+ "API": {
+ "ERROR_MESSAGE": "Nepavyko prisijungti prie Woot serverio. Bandykite dar kartą vėliau."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Pateikti",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Redaguoti",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Atnaujinti",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Ištrinti",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Nepavyko prisijungti prie Woot serverio. Bandykite dar kartą vėliau."
+ },
+ "CONFIRM": {
+ "TITLE": "Patvirtinti Ištrynimą",
+ "MESSAGE": "Ar tikrai norite ištrinti ",
+ "YES": "Taip, Trinti ",
+ "NO": "Ne, Išsaugoti "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/datePicker.json b/app/javascript/dashboard/i18n/locale/lt/datePicker.json
new file mode 100644
index 000000000..a3b5ba2d8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Taikyti",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Paskutines 7 dienas",
+ "LAST_30_DAYS": "Paskutines 30 dienų",
+ "LAST_3_MONTHS": "Paskutinius 3 mėnesius",
+ "LAST_6_MONTHS": "Paskutinius 6 mėnesius",
+ "LAST_YEAR": "Paskutinius metus",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Pritaikytas datos intervalas"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/general.json b/app/javascript/dashboard/i18n/locale/lt/general.json
new file mode 100644
index 000000000..fa4f890e7
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Ieškoti",
+ "EMPTY_STATE": "Nieko nerasta"
+ },
+ "CLOSE": "Uždaryti",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Taip",
+ "NO": "Ne"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/generalSettings.json b/app/javascript/dashboard/i18n/locale/lt/generalSettings.json
index 83eb9a333..e484d1705 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Dabar galite gauti el. laiškus pasirinktame domene."
}
},
- "UPDATE_CHATWOOT": "Yra Chatwoot naujinimas %{latestChatwootVersion}. Atnaujinkite savo versiją.",
+ "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ą"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Paspauskite Enter, kad pasirinktumėte",
"ENTER_TO_REMOVE": "Paspausti Enter, kad pašalintumėte",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Pasirinkti vieną",
"SELECT": "Pasirinkti"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Pokalbis priskirtas",
"assigned_conversation_new_message": "Naujas pranešimas",
"participating_conversation_new_message": "Naujas pranešimas",
- "conversation_mention": "Paminėjimas"
+ "conversation_mention": "Paminėjimas",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Atsijungęs"
+ "OFFLINE": "Atsijungęs",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Atnaujinti"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Ieškoti ar pereiti į",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Pagrindinis",
"REPORTS": "Ataskaitos",
"CONVERSATION": "Pokalbis",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Pakeisti Priskirtąjį",
"CHANGE_PRIORITY": "Pakeisti Prioritetą",
"CHANGE_TEAM": "Pakeisti Komandą",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Iki rytojaus",
"UNTIL_NEXT_MONTH": "Iki kito mėnesio",
"AN_HOUR_FROM_NOW": "Iki valandos nuo dabar",
- "CUSTOM": "Personalizuotas...",
+ "UNTIL_CUSTOM_TIME": "Personalizuotas...",
"CHANGE_APPEARANCE": "Keisti išvaizdą",
"LIGHT_MODE": "Šviesus",
"DARK_MODE": "Tamsus",
diff --git a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
index c8652cc4a..8c3cadefd 100644
--- a/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lt/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Palaikymo centras",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Sukurti Portalą"
+ },
"HEADER": {
"FILTER": "Filtruoti pagal",
"SORT": "Rūšiuoti pagal",
@@ -41,6 +46,7 @@
"UPLOADING": "Įkeliama...",
"SUCCESS": "Paveiksliukas sėkmingai įkeltas",
"ERROR": "Klaida įkeliant paveiksliuką",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Paveiksliuko dydis turi būti mažesnis nei {size} MB",
"ERROR_FILE_FORMAT": "Paveiksliuko formatas turi būti jpg, jpeg arba png",
"ERROR_FILE_DIMENSIONS": "Paveiksliuko matmenys turi būti mažesni nei 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Neįtraukta į kategorijas",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Ieškoma...",
"INSERT_ARTICLE": "Įterpti",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portalas ištrintas sėkmingai",
"DELETE_ERROR": "Trinant portalą įvyko klaida"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Pagalbos centro informacija",
- "route": "new_portal_information",
- "body": "Pagrindinė informacija apie portalą",
- "CREATE_BASIC_SETTING_BUTTON": "Sukurkite pagrindinius portalo nustatymus"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Pagalbos centro informacija",
+ "BODY": "Pagrindinė informacija apie portalą"
},
- {
- "title": "Pagalbos centro pritaikymas",
- "route": "portal_customization",
- "body": "Portalo pritaikymas",
- "UPDATE_PORTAL_BUTTON": "Atnaujinkite portalo nustatymus"
+ "CUSTOMIZATION": {
+ "TITLE": "Pagalbos centro pritaikymas",
+ "BODY": "Portalo pritaikymas"
},
- {
- "title": "Baigta! 🎉",
- "route": "portal_finish",
- "body": "Viskas paruošta!",
- "FINISH": "Pabaigti"
+ "FINISH": {
+ "TITLE": "Baigta! 🎉",
+ "BODY": "Viskas paruošta!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Atgal",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Personalizuotas domenas",
"PLACEHOLDER": "Portalo personalizuotas domenas",
- "HELP_TEXT": "Pridėti jei portaluose norite naudoti personalizuotą domeną. Pvz.: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Įveskite galiojantį domaino URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Nuoroda į pagrindinį puslapį",
"PLACEHOLDER": "Portalo nuoroda į pagrindinį puslapį",
- "HELP_TEXT": "Nuoroda, naudojama grįžimui iš portalo į pagrindinį puslapį. Pvz.: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Įveskite galiojantį pagrindinio puslapio URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Lokalizacija sėkmingai pašalinta iš portalo",
"ERROR_MESSAGE": "Nepavyko pašalinti lokalizacijos iš portalo. Bandykite dar kartą."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Straipsnis sėkmingai suarchyvuotas"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Trinant straipsnį įvyko klaida"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Pridėkite straipsnio antraštę ir turinį, tada tik jūs galėsite atnaujinti nustatymus"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Skelbti",
+ "DRAFT": "Ruošinys",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Išversti",
+ "DELETE": "Ištrinti"
+ },
+ "STATUS": {
+ "DRAFT": "Ruošinys",
+ "PUBLISHED": "Paskelbta",
+ "ARCHIVED": "Suarchyvuota"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mano",
+ "DRAFT": "Ruošinys",
+ "PUBLISHED": "Paskelbta",
+ "ARCHIVED": "Suarchyvuota"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Išversti",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Išversti",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Skelbti",
+ "DRAFT": "Ruošinys",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Išversti",
+ "MOVE_TO_CATEGORY": "Kategorija",
+ "DELETE": "Ištrinti",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Ištrinti",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nauja kategorija",
+ "EDIT_CATEGORY": "Keisti kategoriją",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Kategorijų nerasta",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija sukurta sėkmingai",
+ "ERROR_MESSAGE": "Nepavyko sukurti kategorijos"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija atnaujinta sėkmingai",
+ "ERROR_MESSAGE": "Nepavyko atnaujinti kategorijos"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija sėkmingai ištrinta",
+ "ERROR_MESSAGE": "Nepavyko ištrinti kategorijos"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Sukurti kategoriją",
+ "EDIT": "Keisti kategoriją",
+ "DESCRIPTION": "Kategorijos redagavimas atnaujins kategoriją viešajame portale.",
+ "PORTAL": "Portalas",
+ "LOCALE": "Lokalizacija"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "Kategorijos pavadinimas",
+ "ERROR": "Yra reikalingas vardas"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug kategorija, skirta URL",
+ "ERROR": "Yra reikalingas slug",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Pateikite trumpą kategorijos aprašymą.",
+ "ERROR": "Būtinas aprašymas"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Sukurti",
+ "EDIT": "Atnaujinti",
+ "CANCEL": "Atšaukti"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Pagal nutylėjimą",
+ "DRAFT": "Ruošinys",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Ištrinti"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Pridėti naują lokalizaciją",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Būsena",
+ "OPTIONS": {
+ "LIVE": "Paskelbta",
+ "DRAFT": "Ruošinys"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Lokalizacija sėkmingai pridėta",
+ "ERROR_MESSAGE": "Nepavyko pridėti lokalizacijos. Bandykite dar kartą."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Išsaugoma...",
+ "SAVED": "Išsaugota"
+ },
+ "PREVIEW": "Peržiūrėti",
+ "PUBLISH": "Skelbti",
+ "DRAFT": "Ruošinys",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Neįtraukta į kategorijas",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta aprašymas",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta antraštė",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta žymos",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Išsaugant straipsnį įvyko klaida"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portalas",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "straipsniai",
+ "DOMAIN": "domenas",
+ "PORTAL_NAME": "Portalo pavadinimas"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Sukurti",
+ "NAME": {
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Yra reikalingas vardas"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Yra reikalingas slug",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logotipas",
+ "IMAGE_UPLOAD_ERROR": "Nepavyko įkelti vaizdo! Prašau, pabandykite dar kartą",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Paveiksliuko dydis turi būti mažesnis nei {size} MB"
+ },
+ "NAME": {
+ "LABEL": "Vardas",
+ "PLACEHOLDER": "Portalo pavadinimas",
+ "ERROR": "Yra reikalingas vardas"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portalo antraštės tekstas"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portalo puslapio antraštė"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portalo nuoroda į pagrindinį puslapį",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Personalizuotas domenas",
+ "LABEL": "Personalizuotas domenas:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portalo personalizuotas domenas",
+ "EDIT_BUTTON": "Redaguoti",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Tiesiogiai",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Personalizuotas domenas",
+ "PLACEHOLDER": "Portalo personalizuotas domenas",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Siųsti"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Trinti portalą",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Ištrinti"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Išvaizda",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Pašalinti"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portalas sukurtas sėkmingai",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portalas atnaujintas sėkmingai",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Įkeliama...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Atšaukti",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Sukurti...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Užbaigta",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/inbox.json b/app/javascript/dashboard/i18n/locale/lt/inbox.json
index a5a33df66..56ad7724b 100644
--- a/app/javascript/dashboard/i18n/locale/lt/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/lt/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Gautų laiškų aplankas",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Atidėta iki",
"SNOOZED_UNTIL_TOMORROW": "Atidėta iki rytojaus",
"SNOOZED_UNTIL_NEXT_WEEK": "Atidėta iki kitos savaitės"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Atgal"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Naujas pranešimas",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Naujas pranešimas",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Nėra turinio",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Pažymėti kaip neperskaitytą",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
index 2ea756b30..a43cd2152 100644
--- a/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Gautų laiškų aplankai",
- "SIDEBAR_TXT": "Gautų laiškų aplankas
Kai prijungiate svetainė arba Facebook puslapį prie Chatwood, tai vadinama Gautų Laiškų Aplankas. Savo Chatwoot paskyroje galite turėti neribotą gautųjų laiškų aplankų skaičių.
Spustelėkite Pridėti gautųjų laiškų aplanką, kad susietumėte svetainę arba Facebook puslapį.
Informacijos suvestinėje galite matyti visus pokalbius iš visų gautųjų laiškų aplankų vienoje vietoje ir atsakyti į juos skirtuke „Pokalbiai“.
Taip pat galite peržiūrėti pokalbius, susijusius su gautų laiškų aplankais, spustelėję pavadinimą kairėje prietaisų skydelio srityje.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Prie šios paskyros nėra pridėtų gautųjų laiškų aplankų."
},
- "CREATE_FLOW": [
- {
- "title": "Pasirinkti Kanalą",
- "route": "settings_inbox_new",
- "body": "Pasirinkite paslaugų teikėją, kurį norite integruoti su Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Pasirinkti Kanalą",
+ "BODY": "Pasirinkite paslaugų teikėją, kurį norite integruoti su Chatwoot."
},
- {
- "title": "Sukurti Gautų Laiškų Aplanką",
- "route": "settings_inboxes_page_channel",
- "body": "Autentifikuokite savo paskyrą ir susikurkite gautų laiškų aplanką."
+ "INBOX": {
+ "TITLE": "Sukurti Gautų Laiškų Aplanką",
+ "BODY": "Autentifikuokite savo paskyrą ir susikurkite gautų laiškų aplanką."
},
- {
- "title": "Pridėti Agentus",
- "route": "settings_inboxes_add_agents",
- "body": "Pridėti agentus pire gautų laiškų oplanko."
+ "AGENT": {
+ "TITLE": "Pridėti Agentus",
+ "BODY": "Pridėti agentus pire gautų laiškų oplanko."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Esate pasiruošę pradėti!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Esate pasiruošę pradėti!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Gautų Laiškų Aplanko Pavadinimas",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Psirinkti puslapį iš sąrašo",
"INBOX_NAME": "Gautų Laiškų Aplanko Pavadinimas",
"ADD_NAME": "Prašome įrašyti gautų laiškų aplanko pavadinimą",
- "PICK_NAME": "Pasirinkite Gautų Laiškų Aplanko Pavadinimą",
- "PICK_A_VALUE": "Pasirinkti reikšmę"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Norėdami pridėti savo Twitter profilį kaip kanalą, turite patvirtinti savo Twitter profilį spustelėdami „Prisijungti naudojant Twitter“ ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Įveskite savo Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Prašome įvesti tesingą URL adresą"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Internetinio svetainės domenas",
"PLACEHOLDER": "Įveskite savo internetinės svetainės pavadinimą (pvz.: Acme Inc)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API raktas",
- "PLACEHOLDER": "Įveskite savo Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Šis laukas yra privalomas"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Įveskite savo Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Šis laukas yra privalomas"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Pradėkite palaikyti savo klientus naudodami WhatsApp.",
"PROVIDERS": {
"LABEL": "API tiekėjas",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Gautų Laiškų Aplanko Pavadinimas",
"PLACEHOLDER": "Prašome įrašyti kanalo pavadinimą",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Tikrinti Prieigos Raktą",
- "PLACEHOLDER": "Įveskite patvirtinimo prieigos raktą, kurį norite sukonfigūruoti Facebook Webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Prašau įveskite teisingą reikšmę."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Patikros Prieigos Raktas"
},
"SUBMIT_BUTTON": "Sukurti WhatsApp Kanalą",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Mes negalėjome išsaugoti WhatsApp kanalo"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefono numeris",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Paskyros SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Prieigos Raktas",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API kanalas",
"DESC": "Integruokite API kanalą ir pradėkite komunikuoti su savo klientais.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Sukonfigūruokite URL, į kurį norite gauti atgalinius skambučius.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Sukurti API kanalą",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "El. pašto kanalas",
- "DESC": "Integruokite el. pašto dėžutę.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Kanalo Pavadinimas",
"PLACEHOLDER": "Prašome įrašyti kanalo pavadinimą",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Mes negalėjome išsaugoti el. pašto kanalo"
},
- "FINISH_MESSAGE": "Pradėkite peradresuoti savo el. laiškus toliau nurodytu el. pašto adresu."
+ "FINISH_MESSAGE": "Pradėkite peradresuoti savo el. laiškus toliau nurodytu el. pašto adresu.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Paspausti čia",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE kanalas",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Pasirinkti Kanalą",
- "DESC": "Chatwoot palaiko tiesioginio pokalbio valdiklius, Facebook Messenger, Twitter profilius, WhatsApp, el. laiškus ir kt. kaip kanalus. Jei norite sukurti personalizuotą kanalą, galite jį sukurti naudodami API kanalą. Norėdami pradėti, pasirinkite vieną iš toliau pateiktų kanalų."
+ "DESC": "Chatwoot palaiko tiesioginio pokalbio valdiklius, Facebook Messenger, Twitter profilius, WhatsApp, el. laiškus ir kt. kaip kanalus. Jei norite sukurti personalizuotą kanalą, galite jį sukurti naudodami API kanalą. Norėdami pradėti, pasirinkite vieną iš toliau pateiktų kanalų.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Internetinis puslapis",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "El. paštas",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agentai",
"DESC": "Čia galite pridėti agentų, kad galėtumėte tvarkyti naujai sukurtus gautų laiškų aplanką. Tik šie pasirinkti agentai turės prieigą prie jūsų gautų laiškų aplanko. Agentai, kurie nėra šio dalis, prisijungę negalės matyti pranešimų arba atsakyti į juos.
PS: Jei jums reikia prieigos prie visų gautų laiškų aplankų, turėtumėte įtraukti save kaip agentą prie visų sukurtų aplankų, kaip administratorius.",
- "VALIDATION_ERROR": "Pridėkite bent vieną agentą prie naujojo gautų laiškų aplanko",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pasirinkite agentus gautų laiškų aplankams"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft El. paštas",
"DESCRIPTION": "Spustelėkite mygtuką Prisijungti naudojant Microsoft, kad pradėtumėte. Būsite nukreipti į prisijungimo el. pašto pagalba puslapį. Kai sutiksite su prašomais leidimais, būsite nukreipti atgal į gautų laiškų aplanko kūrimo veiksmą.",
"EMAIL_PLACEHOLDER": "Įvesti el. pašto adresą",
- "HELP": "Norėdami pridėti „Microsoft“ paskyrą kaip kanalą, jūs turite autentifikuoti savo Microsoft paskyrą spustelėdami „Prisijungti naudojant Microsoft“ ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "Prisijungiant prie Microsoft įvyko klaida, bandykite dar kartą"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Įvesti el. pašto adresą",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Autentifikuojamas jus naudojant Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Kažkas nepavyko, atnaujinkite puslapį...",
"ERROR_FB_UNAUTHORIZED": "Jūs nesate įgalioti atlikti šį veiksmą. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Įsitikinkite, kad turite prieigą prie „Facebook“ puslapio su visapusiška kontrole. Daugiau apie „Facebook“ vaidmenis galite perskaityti čia.",
@@ -386,7 +557,10 @@
"MESSAGE": "Dabar galite bendrauti su klientais naudodami naująjį kanalą. Gero naudojimo",
"BUTTON_TEXT": "Nuvesk mane ten",
"MORE_SETTINGS": "Daugiau nustatymų",
- "WEBSITE_SUCCESS": "Sėkmingai baigėte kurti svetainės kanalą. Nukopijuokite toliau pateiktą kodą ir įdėkite jį į savo svetainę. Kai kitą kartą klientas naudosis tiesioginiu pokalbiu, pokalbis bus automatiškai rodomas jūsų gautų pranešimų aplanke."
+ "WEBSITE_SUCCESS": "Sėkmingai baigėte kurti svetainės kanalą. Nukopijuokite toliau pateiktą kodą ir įdėkite jį į savo svetainę. Kai kitą kartą klientas naudosis tiesioginiu pokalbiu, pokalbis bus automatiškai rodomas jūsų gautų pranešimų aplanke.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Pakartotinai autorizuoti",
"VIEW": "Paržiūra",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Siuntėjo vardas",
- "SUB_TEXT": "Pasirinkite vardą, kuris bus rodomas jūsų klientui, kai jis gauna el. laiškus iš jūsų agentų.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "Pvz:",
"FRIENDLY": {
"TITLE": "Draugiškas",
@@ -418,7 +592,7 @@
"SUBTITLE": "Naudokite tik sukonfigūruotą įmonės pavadinimą kaip siuntėjo vardą el. pašto antraštėje."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Sukonfigūruokite įmonės pavadinimą",
+ "BUTTON_TEXT": "Sukonfigūruokite įmonės pavadinimą",
"PLACEHOLDER": "Įveskite įmonės pavadinimą",
"SAVE_BUTTON_TEXT": "Išsaugoti"
}
@@ -432,8 +606,10 @@
"DISABLED": "Išjungta"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Leisti",
- "DISABLED": "Išjungta"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Leisti"
@@ -464,7 +640,107 @@
"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",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Tiesiogiai"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Nustatymai",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger scenarijus",
"MESSENGER_SUB_HEAD": "Įdėkite šį mygtuką savo žymos viduje",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agentai",
"INBOX_AGENTS_SUB_TEXT": "Pridėti ar pašalinti agentus iš gautų laiškų aplanko",
"AGENT_ASSIGNMENT": "Pokalbio paskirstymas",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Laikykitės vieno pokalbio",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Leisti arba neleisti kelis pokalbius tam pačiam kontaktui šiame gautų laiškų aplanke",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Gautų Laiškų Aplanko Nustatymai",
"INBOX_UPDATE_SUB_TEXT": "Atnaujinkite gautų laiškų aplanko nustatymus",
"AUTO_ASSIGNMENT_SUB_TEXT": "Įjunkite arba išjunkite automatinį naujų pokalbių priskyrimą agentams, pridėtiems prie šio gautų laiškų aplanko.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Norėdami patvirtinti API klientų tapatybę, naudokite čia rodomą „inbox_identifier“ prieigos raktą.",
"FORWARD_EMAIL_TITLE": "Persiųsti į el. paštą",
"FORWARD_EMAIL_SUB_TEXT": "Pradėkite peradresuoti savo el. laiškus toliau nurodytu el. pašto adresu.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Leisti pranešimus pokalbiui pasibaigus",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Leiskite galutiniams vartotojams siųsti pranešimus net pokalbiui pasibaigus.",
"WHATSAPP_SECTION_SUBHEADER": "Šis API Raktas naudojamas integracijai su WhatsApp API.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Įveskite atnaujintą raktą, kuris bus naudojamas integruojant su WhatsApp API.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API raktas",
"WHATSAPP_SECTION_UPDATE_TITLE": "Atnaujinti API raktą",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Įveskite naują API Raktą čia",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Atnaujinti",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Tikrinti Prieigos Raktą",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Sujungti",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Patikros Prieigos Raktas",
"WHATSAPP_WEBHOOK_SUBHEADER": "Šis prieigos raktas naudojamas „webhook“ galutinio taško autentiškumui patikrinti.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Atnaujinkite išankstinio pokalbio internetu formos nustatymus"
},
"HELP_CENTER": {
"LABEL": "Palaikymo centras",
"PLACEHOLDER": "Pasirinkti Pagalbos Centrą",
"SELECT_PLACEHOLDER": "Pasirinkti Pagalbos Centrą",
+ "NONE": "Nėra",
"REMOVE": "Pašalinti Pagalbos Centrą",
"SUB_TEXT": "Pridėkite pagalbos centrą prie gautų laiškų aplanko"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Įveskite reikšmę, didesnę nei 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Apribokite maksimalų pokalbių skaičių iš šio gautų laiškų aplanko, kuriuos galima automatiškai priskirti agentui"
},
+ "ASSIGNMENT": {
+ "TITLE": "Pokalbio paskirstymas",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktyvus",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Atšaukti",
+ "CONFIRM_DELETE": "Ištrinti",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Pakartotinai autorizuoti",
"SUBTITLE": "Jūsų ryšys su Facebook nutrūko. Jei norite toliau nauditis paslaugomis, iš naujo prisijunkite prie Facebook puslapio",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Kalba",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Grįžti"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Pranešimas lankytojams apie nepasiekiamumą",
"TOGGLE_HELP": "Nustačius darbo laiką, bus rodomos darbo valandos chato valdiklyje, net jei visi agentai neprisijungę. Ne darbo valandomis lankytojai gali būti įspėti pranešimu ir išankstinio pokalbio forma.",
"DAY": {
+ "DAY": "Diena",
+ "AVAILABILITY": "Prieinamumas",
+ "HOURS": "Hours",
"ENABLE": "Įgalinti pasiekiamumą šiai dienai",
"UNAVAILABLE": "Nepasiekiamas",
- "HOURS": "valandos",
"VALIDATION_ERROR": "Pradžios laikas turi būti prieš pabaigos laiką.",
"CHOOSE": "Pasirinkti"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Norėdami įjungti SMTP, sukonfigūruokite IMAP.",
"UPDATE": "Atnaujinti IMAP nustatymus",
"TOGGLE_AVAILABILITY": "Leisti IMAP konfigūraciją šiam gautų laiškų aplankui",
- "TOGGLE_HELP": "Įjungus IMAP, vartotojas galės gauti el. laiškus",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP nustatymai atnaujinti sėkmingai",
"ERROR_MESSAGE": "Nepavyko atnaujinti IMAP nustatymų"
@@ -606,7 +1042,8 @@
"LABEL": "Slaptažodis",
"PLACE_HOLDER": "Slaptažodis"
},
- "ENABLE_SSL": "Leisti SSL"
+ "ENABLE_SSL": "Leisti SSL",
+ "AUTH_MECHANISM": "Autentifikacija"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Per dieną"
},
"WIDGET_COLOR_LABEL": "Valdiklio Spalva",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Padėtis",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Tipas",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipas:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Pabendraukite su mumis",
- "LABEL": "Widget Bubble Paleidimo programos pavadinimas",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Pabendraukite su mumis"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Pagal nutylėjimą",
- "CHAT": "Pokalbis internetu"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Paprastai atsako per kelias minutes",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Kiti Tiekėjai"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Kiti Tiekėjai",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Internetinis puslapis",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "El. paštas",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API kanalas",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/index.js b/app/javascript/dashboard/i18n/locale/lt/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/lt/index.js
+++ b/app/javascript/dashboard/i18n/locale/lt/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
index a25ae2d5d..beb51af07 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Integracijų gavimas",
- "NO_HOOK_CONFIGURED": "Šioje paskyroje nesukonfigūruota jokių %{integrationId} integracijų.",
+ "NO_HOOK_CONFIGURED": "Šioje paskyroje nesukonfigūruota jokių {integrationId} integracijų.",
"HEADER": "Programos",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Leisti",
"DISABLED": "Išjungta"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Integravimo webhook gavimas",
"INBOX": "Gautų laiškų aplankas",
+ "ACTIONS": "Veiksmai",
"DELETE": {
"BUTTON_TEXT": "Ištrinti"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Pasirinkti gautų laiškų aplanką"
},
"SUBMIT": "Sukurti",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Atšaukti"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Atsijungti"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow yra natūrali kalbos supratimo platforma, leidžianti lengvai sukurti ir integruoti pokalbio vartotojo sąsają į mobiliąją programėlę, žiniatinklio programą, įrenginį, botą, interaktyvią balso atsako sistemą ir pan.
Dialogflow integravimas su %{installationName} leidžia sukonfigūruoti Dialogflow botą su gautų laiškų aplanku, kurie leidžia botui iš pradžių apdoroti užklausas ir prireikus perduoti jas agentui. Dialogflow gali būti naudojama norint įvertinti lyderius, sumažinti agentų darbo krūvį pateikiant dažniausiai užduodamus klausimus ir pan.
Norėdami pridėti Dialogflow, Google konsolėje turite sukurti paslaugos paskyrą ir bendrinti prisijungimo duomenis. Daugiau informacijos rasite Dialogflow dokumentacijoje."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/integrations.json b/app/javascript/dashboard/i18n/locale/lt/integrations.json
index c434674ba..96e53d997 100644
--- a/app/javascript/dashboard/i18n/locale/lt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lt/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Atšaukti",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integracijos",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Prenumeruoti įvykiai",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Atšaukti",
"DESC": "Webhook įvykiai suteikia jums realaus laiko informaciją apie tai, kas vyksta jūsų Chatwoot paskyroje. Norėdami sukonfigūruoti atgalinį skambinimą, įveskite tinkamą URL.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Pavyzdys: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Prašome įvesti tesingą URL adresą"
},
"EDIT_SUBMIT": "Atnaujinti webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Šioje paskyroje nėra sukonfigūruotų webhook.",
"TITLE": "Tvarkykite webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Veiksmai"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endpoint",
+ "ACTIONS": "Veiksmai"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Redaguoti",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Patvirtinti Ištrynimą",
- "MESSAGE": "Ar tikrai norite ištrinti webhook? (%{webhookURL})",
+ "MESSAGE": "Ar tikrai norite ištrinti webhook? ({webhookURL})",
"YES": "Taip, Trinti ",
"NO": "Ne, Išsaugoti"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Ištrinti",
"DELETE_CONFIRMATION": {
"TITLE": "Ištrinkite integraciją",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Slack integracijos naudojimas",
- "BODY": "
Dabar Chatwoot sinchronizuos visus gaunamus pokalbius į kliento pokalbiai kanalą jūsų laisvoje darbo vietoje.
Atsakymas į pokalbių giją kliento pokalbiai Slack kanale pateiks atsakymą klientui per chatwoot.
Atsakymus pradėkite naudodami pastaba: jei norite sukurti privačias pastabas, o ne atsakymus.
Jei „slack“ atsakytojas turi agento profilį „chatwoot“ tuo pačiu el. pašto adresu, atsakymai bus atitinkamai susieti.
p>
Kai atsakiklis neturi susieto agento profilio, atsakymai bus pateikiami iš boto profilio.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "pasirinkta"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI pagalba",
- "WITH_AI": " %{option} su AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Atsakymo pasiūlymas",
"SUMMARIZE": "Apibendrinti",
@@ -114,7 +161,29 @@
"EXPAND": "Išskleisti",
"MAKE_FRIENDLY": "Pakeisti pranešimo toną į draugišką",
"MAKE_FORMAL": "Naudokite oficialų toną",
- "SIMPLIFY": "Supaprastinti"
+ "SIMPLIFY": "Supaprastinti",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionalas",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Draugiškas"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Turinio juodraštis",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Pridėkite naują informacinio skydelio programą",
"SIDEBAR_TXT": "Informacinio skydelio programos
Informacinio skydelio programos leidžia organizacijoms įterpti programą į Chatwood valdymo skydelį, kad klientų aptarnavimo agentams būtų suteiktas kontekstas. Ši funkcija leidžia savarankiškai kurti programą ir įterpti informaciją apie vartotoją, jo užsakymus ar mokėjimų istoriją.
Kai įterpiate programą naudodami Chatwood valdymo skydelį, programa gaus pokalbio kontekstą ir įvykio nuorodas. Įdiekite pranešimo įvykio nuorodas savo puslapyje, kad gautumėte kontekstą.
Jei norite pridėti naują informacinio skydelio programą, spustelėkite mygtuką \"Pridėti naują skydelio programą\".
",
"DESCRIPTION": "Informacinio skydelio programos leidžia organizacijoms įterpti programą į valdymo skydelį, kad klientų aptarnavimo agentams būtų suteiktas kontekstas. Ši funkcija leidžia savarankiškai kurti programą ir įterpti informaciją apie vartotoją, jo užsakymus ar mokėjimų istoriją.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Šioje paskyroje nėra sukonfigūruotų informacinio skydelio programų",
"LOADING": "Gaunamos informacinio skydelio programos...",
- "TABLE_HEADER": [
- "Vardas",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Veiksmai"
+ },
"EDIT_TOOLTIP": "Redaguoti programą",
"DELETE_TOOLTIP": "Ištrinti programą"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Taip, Trinti",
"CONFIRM_NO": "Ne, Išsaugoti",
"TITLE": "Patvirtinti Ištrynimą",
- "MESSAGE": "Ar tikrai norite ištrinti programą - %{appName}?",
+ "MESSAGE": "Ar tikrai norite ištrinti programą - {appName}?",
"API_SUCCESS": "Informacinio skydelio programa ištrinta sėkmingai",
"API_ERROR": "Nepavyko ištrinti programos. Pabandykite dar kartą vėliau"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Sukurti",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Nuoroda",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pavadinimas",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Yra reikalingas pavadinimas"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Komanda",
+ "PLACEHOLDER": "Pasirinkite komandą",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritetas",
+ "PLACEHOLDER": "Pasirinkti prioritetą",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Etiketė",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Būsena",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Būsena",
+ "PRIORITY": "Prioritetas",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Etiketės",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Taip, Trinti",
+ "CANCEL": "Atšaukti"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Sužinoti daugiau",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asistentai",
+ "SWITCH_ASSISTANT": "Perjungti asistentus",
+ "NEW_ASSISTANT": "Sukurti asistentą",
+ "EMPTY_LIST": "Asistentų nerasta, sukurkite vieną, kad pradėtumėte"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Pradėkite naudotis Copilot",
+ "KICK_OFF_MESSAGE": "Reikia greitos santraukos, norite peržiūrėti ankstesnius pokalbius arba parengti geresnį atsakymą? Copilot padės pagreitinti procesą.",
+ "SEND_MESSAGE": "Išsiųsti pranešimą...",
+ "EMPTY_MESSAGE": "Įvyko klaida generuojant atsakymą. Bandykite dar kartą.",
+ "LOADER": "Captain galvoja",
+ "YOU": "Jūs",
+ "USE": "Naudoti šį",
+ "RESET": "Atstatyti",
+ "SHOW_STEPS": "Rodyti žingsnius",
+ "SELECT_ASSISTANT": "Pasirinkti asistentą",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Apibendrinti šį pokalbį",
+ "CONTENT": "Apibendrinkite pagrindines temas, aptartas tarp kliento ir palaikymo agento, įskaitant kliento rūpesčius, klausimus ir pateiktus sprendimus ar atsakymus."
+ },
+ "SUGGEST": {
+ "LABEL": "Pasiūlyti atsakymą",
+ "CONTENT": "Analizuokite kliento užklausą ir parengkite atsakymą, kuris veiksmingai sprendžia jų rūpesčius ar klausimus. Įsitikinkite, kad atsakymas yra aiškus, glaustas ir pateikia naudingą informaciją."
+ },
+ "RATE": {
+ "LABEL": "Įvertinkite šį pokalbį",
+ "CONTENT": "Peržiūrėkite pokalbį ir įvertinkite, kaip gerai jis atitinka kliento poreikius. Pasidalinkite įvertinimu iš 5, atsižvelgdami į toną, aiškumą ir efektyvumą."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Aukšto prioriteto pokalbiai",
+ "CONTENT": "Pateikite man santrauką apie visas aukšto prioriteto atviras pokalbių temas. Įtraukite pokalbio ID, kliento vardą (jei yra), paskutinio pranešimo turinį ir priskirtą agentą. Jei aktualu, grupuokite pagal būseną."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Rodyti kontaktus",
+ "CONTENT": "Rodykite top 10 kontaktų sąrašą. Įtraukite vardą, el. paštą arba telefono numerį (jei yra), paskutinio matymo laiką, žymas (jei yra)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jūs",
+ "ASSISTANT": "Asistentas",
+ "MESSAGE_PLACEHOLDER": "Parašykite pranešimą...",
+ "HEADER": "Žaidimų aikštelė",
+ "DESCRIPTION": "Naudokite šią aikštelę, kad siųstumėte pranešimus savo asistentui ir patikrintumėte, ar jis atsako tiksliai, greitai ir tokiu tonu, kokio tikitės.",
+ "CREDIT_NOTE": "Pranešimai, išsiųsti čia, bus įskaityti į jūsų Captain kreditus."
+ },
+ "PAYWALL": {
+ "TITLE": "Atnaujinkite, kad naudotumėte Captain AI",
+ "AVAILABLE_ON": "Captain nėra prieinamas nemokamame plane.",
+ "UPGRADE_PROMPT": "Atnaujinkite savo planą, kad gautumėte prieigą prie mūsų asistentų, copiloto ir kitų funkcijų.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI yra prieinamas tik Enterprise planuose.",
+ "UPGRADE_PROMPT": "Atnaujinkite savo planą, kad gautumėte prieigą prie mūsų asistentų, copiloto ir kitų funkcijų.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Naudojote daugiau nei 80 % savo atsakymų limito. Norėdami toliau naudotis Captain AI, prašome atnaujinti planą.",
+ "DOCUMENTS": "Pasiektas dokumentų limitas. Atnaujinkite, kad toliau naudotumėte Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Atšaukti",
+ "CREATE": "Sukurti",
+ "EDIT": "Atnaujinti"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Aprašymas",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Nustatymai",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Ištrinti"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Ištrinti"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Ištrinti"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Pavadinimas",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Sukurti",
+ "CANCEL": "Atšaukti"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Atšaukti",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Ištrinti",
+ "BULK_SYNC_BUTTON": "Atnaujinti",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Puslapis nerastas",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Atidaryti mokėjimą",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nėra",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API raktas"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Slaptažodis",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipas"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numeris",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Reikalingas"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Ištrinti",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Visi"
+ },
+ "STATUS": {
+ "TITLE": "Būsena",
+ "PENDING": "Laukiama",
+ "APPROVED": "Approved",
+ "ALL": "Visi"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Redaguoti",
+ "DELETE_RESPONSE": "Ištrinti"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Atsijungti"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Taip, Trinti",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Gautų laiškų aplankas",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
index dfea92819..c4d420f47 100644
--- a/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lt/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etiketės",
"HEADER_BTN_TXT": "Pridėti Etiketę",
"LOADING": "Gaunamos etiketės",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Ieškoti etikečių...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Šią užklausą atitinkančių elementų nėra",
- "SIDEBAR_TXT": "Etiketės
Etiketės padeda suskirstyti pokalbius į kategorijas ir nustatyti jiems prioritetus. Galite priskirti etiketę pokalbiui iš šoninio skydelio.
Etiketės susietos su paskyra ir gali būti naudojamos kuriant supaprastintus darbo procesus jūsų organizacijoje. Etiketei galite priskirti pasirinktą spalvą, kad būtų lengviau atpažinti etiketę. Galėsite rodyti etiketę šoninėje juostoje, kad galėtumėte lengvai filtruoti pokalbius.
",
"LIST": {
"404": "Šioje paskyroje nėra galimų etikečių.",
"TITLE": "Tvarkyti etiketes",
"DESC": "Etiketės leidžia grupuoti pokalbius kartu.",
- "TABLE_HEADER": [
- "Vardas",
- "Aprašymas",
- "Spalva"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "DESCRIPTION": "Aprašymas",
+ "COLOR": "Spalva",
+ "ACTION": "Veiksmai"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Atsisakyti",
"ADD_SELECTED_LABELS": "Pridėti pažymėtas etiketes",
"ADD_SELECTED_LABEL": "Pridėti pažymėtą etiketę",
- "ADD_ALL_LABELS": "Pridėti visas etiketes"
+ "ADD_ALL_LABELS": "Pridėti visas etiketes",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Pridėti Etiketę",
diff --git a/app/javascript/dashboard/i18n/locale/lt/login.json b/app/javascript/dashboard/i18n/locale/lt/login.json
index 1f7555e05..51daf0f0e 100644
--- a/app/javascript/dashboard/i18n/locale/lt/login.json
+++ b/app/javascript/dashboard/i18n/locale/lt/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "El. paštas",
- "PLACEHOLDER": "email pavyzdys: someone@example.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Prašau įveskite teisingą el. pašto adresą"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Pamiršote slaptažodį?",
"CREATE_NEW_ACCOUNT": "Sukurti naują paskyrą",
- "SUBMIT": "Prisijungti"
+ "SUBMIT": "Prisijungti",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/macros.json b/app/javascript/dashboard/i18n/locale/lt/macros.json
index 9ebe4b50e..0b687622c 100644
--- a/app/javascript/dashboard/i18n/locale/lt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lt/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Makrokomandos",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Pridėti naują makrokomandą",
"HEADER_BTN_TXT_SAVE": "Išsaugoti makrokomandą",
"LOADING": "Gaunama makrokomanda",
- "SIDEBAR_TXT": "Makrokomandos
Makrokomandos yra išsaugotų veiksmų rinkinys, padedantis klientų aptarnavimo agentams lengvai atlikti užduotis. Agentai gali apibrėžti veiksmų rinkinį, pvz., pokalbio žymėjimą etikete, el. laiško nuorašo siuntimą, atributo atnaujinimą ir pan., ir jie gali atlikti šiuos veiksmus vienu paspaudimu. Kai agentai vykdo makrokomandą, veiksmai bus atliekami nuosekliai tokia tvarka, kokia jie yra apibrėžti. Makrokomandos pagerina produktyvumą ir padidina veiksmų nuoseklumą.
Makrokomandas gali būti naudingas dviem būdais.
Kaip agento pagalba: jei agentas kelis kartus atlieka veiksmų rinkinį, jis gali išsaugoti jį kaip makrokomandą ir atlikti visus veiksmus kartu vienu spustelėjimu. p>
Kaip galimybė įtraukti komandos narį: kiekvienas agentas kiekvieno pokalbio metu turi atlikti daugybę skirtingų patikrinimų / veiksmų. Priimant naują komandos narį bus lengva, jei paskyroje bus iš anksto nustatytų makrokomandų. Užuot išsamiai aprašęs kiekvieną veiksmą, vadovas / komandos vadovas gali nurodyti įvairiuose scenarijuose naudojamas makrokomandas.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Kažkas nepavyko. Bandykite dar kartą",
"ORDER_INFO": "Makrokomandos bus paleistos ta tvarka, kuria pridėsite veiksmus. Galite juos pertvarkyti vilkdami už rankenos šalia kiekvieno mazgo.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Vardas",
- "Sukurtas",
- "Paskutinį kartą atnaujino",
- "Matomumas"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Vardas",
+ "CREATED BY": "Sukurtas",
+ "LAST_UPDATED_BY": "Paskutinį kartą atnaujino",
+ "VISIBILITY": "Matomumas",
+ "ACTIONS": "Veiksmai"
+ },
"404": "Nerasta makrokomandų"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Ištrinant makrokomandą įvyko klaida. Pabandykite dar kartą vėliau"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Redaguoti makrokomandą",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Makrokomandos matomumas",
"GLOBAL": {
"LABEL": "Viešas",
- "DESCRIPTION": "Ši makrokomanda yra viešai prieinama visiems šios paskyros agentams."
+ "DESCRIPTION": "Ši makrokomanda yra viešai prieinama visiems šios paskyros agentams.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privatus",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Vykdyti",
"PREVIEW": "Peržiūrėti makrokomandą",
"EXECUTED_SUCCESSFULLY": "Sėkmingai įvykdyta makrokomanda"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Reikalinga vertė",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nėra",
+ "LOW": "Žemas",
+ "MEDIUM": "Vidutinis",
+ "HIGH": "Aukštas",
+ "URGENT": "Skubus"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/mfa.json b/app/javascript/dashboard/i18n/locale/lt/mfa.json
new file mode 100644
index 000000000..56ca2b413
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Leisti",
+ "DISABLED": "Išjungta",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopijuoti",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Atšaukti",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Parsisiųsti",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Slaptažodis",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Atšaukti",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Atšaukti",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/onboarding.json b/app/javascript/dashboard/i18n/locale/lt/onboarding.json
new file mode 100644
index 000000000..9da8faf12
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "El. paštas",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Internetinis puslapis",
+ "LANGUAGE": "Kalba",
+ "TIMEZONE": "Laiko zona",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Pasirinkti laiko zoną",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Išsaugoma...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/report.json b/app/javascript/dashboard/i18n/locale/lt/report.json
index cf87c41fd..68897e463 100644
--- a/app/javascript/dashboard/i18n/locale/lt/report.json
+++ b/app/javascript/dashboard/i18n/locale/lt/report.json
@@ -3,7 +3,7 @@
"HEADER": "Pokalbiai",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
- "DOWNLOAD_AGENT_REPORTS": "Parsisiųsti agentų ataskaitas",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Nepavyko gauti duomenų, bandykite dar kartą vėliau.",
"SUMMARY_FETCHING_FAILED": "Nepavyko gauti suvestinės, bandykite dar kartą vėliau.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Pirmojo atsakymo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_TIME": {
"NAME": "Sprendimo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Sprendimo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Sprendimo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_COUNT": {
"NAME": "Sprendimų skaičius",
"DESC": "( Viso )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Sprendimų skaičius",
+ "DESC": "( Viso )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Viso )"
+ },
"REPLY_TIME": {
"NAME": "Kliento laukimo laikas",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Paskutines 7 dienas",
+ "LAST_14_DAYS": "Paskutines 14 dienų",
"LAST_30_DAYS": "Paskutines 30 dienų",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Paskutinius 3 mėnesius",
"LAST_6_MONTHS": "Paskutinius 6 mėnesius",
"LAST_YEAR": "Paskutinius metus",
"CUSTOM_DATE_RANGE": "Pritaikytas datos intervalas"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Paskutines 7 dienas"
- },
- {
- "id": 1,
- "name": "Paskutines 30 dienų"
- },
- {
- "id": 2,
- "name": "Paskutinius 3 mėnesius"
- },
- {
- "id": 3,
- "name": "Paskutinius 6 mėnesius"
- },
- {
- "id": 4,
- "name": "Paskutinius metus"
- },
- {
- "id": 5,
- "name": "Pritaikytas datos intervalas"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Taikyti",
"PLACEHOLDER": "Pasirinkti datos intervalą"
@@ -130,14 +116,28 @@
"groupBy": "Mėnuo"
}
],
- "BUSINESS_HOURS": "Darbo valandos"
+ "BUSINESS_HOURS": "Darbo valandos",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nieko nerasta"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agentų apžvalga",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_AGENT_REPORTS": "Parsisiųsti agentų ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pasirinkti agentą",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ieškoti agentų"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -155,13 +155,13 @@
"NAME": "Pirmojo atsakymo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_TIME": {
"NAME": "Sprendimo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Sprendimo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Sprendimo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_COUNT": {
"NAME": "Sprendimų skaičius",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Pažymėti Etiketę",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Ieškoti etikečių"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -222,13 +228,13 @@
"NAME": "Pirmojo atsakymo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_TIME": {
"NAME": "Sprendimo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Sprendimo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Sprendimo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_COUNT": {
"NAME": "Sprendimų skaičius",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Gautų Laiškų Aplanko Apžvalga",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_INBOX_REPORTS": "Parsisiųsti gautų laiškų aplanko ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pasirinkti gautų laiškų aplanką",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -289,13 +303,13 @@
"NAME": "Pirmojo atsakymo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_TIME": {
"NAME": "Sprendimo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Sprendimo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Sprendimo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_COUNT": {
"NAME": "Sprendimų skaičius",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Komandos apžvalga",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Įkeliami diagramos duomenys...",
"NO_ENOUGH_DATA": "Negavome pakankamai duomenų, kad galėtume sugeneruoti ataskaitą. Bandykite dar kartą vėliau.",
"DOWNLOAD_TEAM_REPORTS": "Parsisiųsti komandos ataskaitas",
"FILTER_DROPDOWN_LABEL": "Pasirinkite komandą",
+ "FILTERS": {
+ "ADD_FILTER": "Pridėti Filtrą",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Ieškoti komandų"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Pokalbiai",
@@ -356,13 +379,13 @@
"NAME": "Pirmojo atsakymo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Pirmo atsakymo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_TIME": {
"NAME": "Sprendimo laikas",
"DESC": "( Vid )",
"INFO_TEXT": "Bendras pokalbių skaičius, naudotas skaičiavimui:",
- "TOOLTIP_TEXT": "Sprendimo laikas yra %{metricValue} (remiantis %{conversationCount} pokalbių)"
+ "TOOLTIP_TEXT": "Sprendimo laikas yra {metricValue} (remiantis {conversationCount} pokalbių)"
},
"RESOLUTION_COUNT": {
"NAME": "Sprendimų skaičius",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Ataskaitas",
- "NO_RECORDS": "Nėra CSAT apklausos atsakymų.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Parsisiųsti CSAT ataskaitas",
"DOWNLOAD_FAILED": "Nepavyko parsisiųsti CSAT ataskaitų",
"FILTERS": {
+ "ADD_FILTER": "Pridėti Filtrą",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Ieškoti agentų",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Ieškoti komandų",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Pasirinkti Agentus"
+ "LABEL": "Agentas"
+ },
+ "INBOXES": {
+ "LABEL": "Gautų laiškų aplankas"
+ },
+ "TEAMS": {
+ "LABEL": "Komanda"
+ },
+ "RATINGS": {
+ "LABEL": "Reitingas"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontaktas",
- "AGENT_NAME": "Priskirtas agentas",
+ "AGENT_NAME": "Agentas",
"RATING": "Reitingas",
- "FEEDBACK_TEXT": "Facebook komentaras"
- }
+ "FEEDBACK_TEXT": "Facebook komentaras",
+ "CONVERSATION": "Pokalbis",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Iš viso atsakymų",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Atsakymo įvertinimas",
"TOOLTIP": "Bendras atsakymų skaičius / Bendras skaičius išsiųstų CSAT apklausų pranešimų * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Išsaugoti",
+ "CANCEL": "Atšaukti",
+ "SAVING": "Išsaugoma...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Pokalbių srautas",
"NO_CONVERSATIONS": "Pokalbių nėra",
- "CONVERSATION": "%{count} pokalbis",
- "CONVERSATIONS": "%{count} pokalbiai"
+ "CONVERSATION": "{count} pokalbis",
+ "CONVERSATIONS": "{count} pokalbiai",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Pokalbių nėra",
+ "CONVERSATION": "{count} pokalbis",
+ "CONVERSATIONS": "{count} pokalbiai",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Agentų pokalbiai",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Agentų pokalbių nėra",
"TABLE_HEADER": {
"AGENT": "Agentas",
- "OPEN": "ATIDARYTI",
+ "OPEN": "Atidaryti",
+ "UNATTENDED": "Be priežiūros",
+ "STATUS": "Būsena"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Komanda",
+ "OPEN": "Atidaryti",
"UNATTENDED": "Be priežiūros",
"STATUS": "Būsena"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Ketvirtadienis",
"FRIDAY": "Penktadienis",
"SATURDAY": "Šeštadienis"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Pridėti Filtrą",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nieko nerasta",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agento Vardas",
+ "INBOXES": "Gautų laiškų aplanko pavadinimas",
+ "LABELS": "Etiketės pavadinimas",
+ "TEAMS": "Komandos pavadinimas"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Gautų laiškų aplankas",
+ "AGENTS": "Agentas",
+ "LABELS": "Etiketė",
+ "TEAMS": "Komanda"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Pokalbis",
+ "AGENT": "Agentas"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Sprendimų skaičius",
+ "CONVERSATIONS": "Pokalbių kiekis"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/search.json b/app/javascript/dashboard/i18n/locale/lt/search.json
index e87fc02b7..ecd5e228c 100644
--- a/app/javascript/dashboard/i18n/locale/lt/search.json
+++ b/app/javascript/dashboard/i18n/locale/lt/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Visi",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "Nerasta %{item} pagal užklausą '%{query}'",
- "EMPTY_STATE_FULL": "Nerasta rezultatų pagal užklausą '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ sutelkti dėmesį",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Ieškoma",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Nerasta {item} pagal užklausą '{query}'",
+ "EMPTY_STATE_FULL": "Nerasta rezultatų pagal užklausą '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/sutelkti dėmesį",
"INPUT_PLACEHOLDER": "Įveskite 3 ar daugiau smibolius paieškai",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Norėdami gauti geresnių paieškos rezultatų, ieškokite pagal pokalbio ID, el. pašto adresą, telefono numerį, žinutes.",
"BOT_LABEL": "Botas",
"READ_MORE": "Skaityti daugiau",
+ "READ_LESS": "Read less",
"WROTE": "parašei:",
- "FROM": "nuo",
- "EMAIL": "el. paštas"
+ "FROM": "Nuo",
+ "EMAIL": "El. paštas",
+ "EMAIL_SUBJECT": "Tema",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Paskutines 7 dienas",
+ "LAST_30_DAYS": "Paskutines 30 dienų",
+ "LAST_60_DAYS": "Paskutines 60 dienų",
+ "LAST_90_DAYS": "Paskutines 90 dienų",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Taikyti",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Siuntėjas",
+ "IN": "Gautų laiškų aplankas",
+ "AGENTS": "Agentai",
+ "CONTACTS": "Kontaktai",
+ "INBOXES": "Gautų laiškų aplankai",
+ "NO_AGENTS": "Agentų nerasta",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/settings.json b/app/javascript/dashboard/i18n/locale/lt/settings.json
index 1eac2af60..51c8a9e54 100644
--- a/app/javascript/dashboard/i18n/locale/lt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Jūsų slaptažodis buvo sėkmingai pakeistas",
"AFTER_EMAIL_CHANGED": "Jūsų profilis buvo sėkmingai atnaujintas, prisijunkite dar kartą, nes jūsų prisijungimo duomenys yra pakeisti",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profilio paveikslėlis",
"ERROR": "Ištaisykite formos klaidas",
"REMOVE_IMAGE": "Pašalinti",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Pagal nutylėjimą",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Asmeninis pranešimo parašas",
"NOTE": "Sukurkite unikalų pranešimo parašą, kuris bus rodomas kiekvieno pranešimo pabaigoje, siunčiamo iš bet kurio gautųjų laiškų aplanko. Taip pat galite įdėti paveikslėlį, kuris rodomas tiesioginio pokalbio, el. pašto ir API.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Parašas išsaugotas sėkmingai",
"IMAGE_UPLOAD_ERROR": "Nepavyko įkelti vaizdo! Prašau, pabandykite dar kartą",
"IMAGE_UPLOAD_SUCCESS": "Vaizdas sėkmingai pridėtas. Spustelėkite \"Išsaugoti\", kad išsaugotumėte parašą",
- "IMAGE_UPLOAD_SIZE_ERROR": "Paveiksliuko dydis turi būti mažesnis nei {size} MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Paveiksliuko dydis turi būti mažesnis nei {size} MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Pranešimo parašas",
@@ -54,15 +81,45 @@
"NOTE": "Atnaujinus slaptažodį būtų iš naujo nustatyti prisijungimai keliuose įrenginiuose.",
"BTN_TEXT": "Keisti slaptažodį"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Prieeigos raktas",
- "NOTE": "Šis prieigos raktas gali būti naudojamas, jei kuriate API pagrįstą integraciją"
+ "NOTE": "Šis prieigos raktas gali būti naudojamas, jei kuriate API pagrįstą integraciją",
+ "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": "Garsiniai Perspėjimai",
- "NOTE": "Prietaisų skydelyje įgalinkite garso perspėjimus apie naujus pranešimus ir pokalbius.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Nėra",
+ "MINE": "Assigned",
+ "ALL": "Visi",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Įspėjimo įvykiai:",
+ "TITLE": "Alert events for conversations",
"NONE": "Nėra",
"ASSIGNED": "Priskirti Pokalbiai",
"ALL_CONVERSATIONS": "Visi Pokalbiai"
@@ -74,7 +131,9 @@
"TITLE": "Įspėjimo sąlygos:",
"CONDITION_ONE": "Garsinius įspėjimus siųskite tik tuo atveju, jei naršyklės langas neaktyvus",
"CONDITION_TWO": "Siųskite įspėjimus kas 30 sekundžių, kol bus perskaityti visi priskirti pokalbiai"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Skaityti daugiau"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "El. pašto Perspėjimai",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Siųsti perspėjimus el. paštu, kai naujas pokalbis yra sukuriamas",
"CONVERSATION_MENTION": "Siųsti perspėjimus el. paštu, kai pokalbyje esate paminimas/a",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Siųsti perspėjimus el. paštu, kai priskirtame pokalbyje sukuriamas naujas pranešimas",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Siųsti perspėjimus el. paštu, kai dalyvaujant pokalbyje sukuriamas naujas pranešimas"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Siųsti perspėjimus el. paštu, kai dalyvaujant pokalbyje sukuriamas naujas pranešimas",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "El. paštas",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Jūsų perspėjimų nuostatos sėkmingai atnaujintos",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Siųsti aktyviuosius perspėjimus, kai priskirtame pokalbyje sukuriamas naujas pranešimas",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Siųsti aktyviuosius perspėjimus, kai dalyvaujant pokalbyje sukuriamas naujas pranešimas",
"HAS_ENABLED_PUSH": "Leidote aktyviuosius perspėjimus šioje naršyklėje.",
- "REQUEST_PUSH": "Leisti aktyviuosius pranešimus"
+ "REQUEST_PUSH": "Leisti aktyviuosius pranešimus",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profilio paveikslėlis"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Prieinamumas",
- "STATUSES_LIST": [
- "Prisijungęs",
- "Užimta",
- "Atsijungęs"
- ],
+ "STATUS": {
+ "ONLINE": "Prisijungęs",
+ "BUSY": "Užimta",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Keisti",
- "CHANGE_ACCOUNTS": "Perjungti Paskyrą",
- "CONTACT_SUPPORT": "Susisiekite su pagalbos tarnyba",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Pasirinkite paskyrą iš toliau pateikto sąrašo",
- "PROFILE_SETTINGS": "Profilio Nustatymai",
- "KEYBOARD_SHORTCUTS": "Spartieji klavišai",
- "APPEARANCE": "Keisti išvaizdą",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Atsijungti"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "liko bandymo dienų.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Paskyra laikinai sustabdyta",
"MESSAGE": "Jūsų paskyra laikinai sustabdyta. Norėdami gauti daugiau informacijos, susisiekite su palaikymo komanda."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Parsisiųsti",
"UPLOADING": "Įkeliama...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Šis pasakojimas nebepasiekiamas."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Šis pasakojimas nebepasiekiamas.",
+ "INSTAGRAM_STORY_REPLY": "Atsakė į tavo pasakojimą:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Pamatyti žemėlapyje"
},
"FORM_BUBBLE": {
"SUBMIT": "Pateikti"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Tikrinama...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Šiuo metu peržiūri:",
"SWITCH": "Perjungti",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Pokalbiai",
- "INBOX": "Gautų laiškų aplankas",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Visi Pokalbiai",
"MENTIONED_CONVERSATIONS": "Paminėjimai",
"PARTICIPATING_CONVERSATIONS": "Dalyvaujantys",
@@ -208,6 +308,18 @@
"REPORTS": "Ataskaitos",
"SETTINGS": "Nustatymai",
"CONTACTS": "Kontaktai",
+ "ACTIVE": "Aktyvus",
+ "COMPANIES": "Įmonės",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Gautų laiškų aplankai",
+ "CAPTAIN_SETTINGS": "Nustatymai",
"HOME": "Pagrindinis",
"AGENTS": "Agentai",
"AGENT_BOTS": "Botai",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Naujas gautų laiškų aplankas",
"REPORTS_CONVERSATION": "Pokalbiai",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Akcijos",
"ONGOING": "Vykstantis",
"ONE_OFF": "Vienas iš",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Botas",
"REPORTS_AGENT": "Agentai",
"REPORTS_LABEL": "Etiketės",
"REPORTS_INBOX": "Gautų laiškų aplankas",
"REPORTS_TEAM": "Komanda",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Nustatykite save kaip",
+ "SET_YOUR_AVAILABILITY": "Nustatykite savo pasiekiamumą",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Apžvalga",
- "FACEBOOK_REAUTHORIZE": "Jūsų ryšys su Facebook nutrūko. Jei norite toliau nauditis paslaugomis, iš naujo prisijunkite prie Facebook puslapio",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Palaikymo centras",
- "ALL_ARTICLES": "Visi Straipsniai",
- "MY_ARTICLES": "Mano Straipsniai",
- "DRAFT": "Ruošinys",
- "ARCHIVED": "Suarchyvuota",
- "CATEGORY": "Kategorija",
- "SETTINGS": "Nustatymai",
- "CATEGORY_EMPTY_MESSAGE": "Kategorijų nerasta"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategorijos",
+ "LOCALES": "Lokalizacija",
+ "SETTINGS": "Nustatymai"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Automatiškai pažymėkite \"neprisijungęs\"",
- "INFO_TEXT": "Leiskite sistemai automatiškai pažymėti jus \"neprisijungus\", kai nenaudojate programos ar informacinio skydelio."
+ "INFO_TEXT": "Leiskite sistemai automatiškai pažymėti jus \"neprisijungus\", kai nenaudojate programos ar informacinio skydelio.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Skaityti dokumentus"
+ "DOCS": "Skaityti dokumentus",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkcijos",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Atsiskaitymas",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Prenumeratos Dabartinis Planas",
- "PLAN_NOTE": "Šiuo metu užsiprenumeravote **%{plan}** planą su **%{quantity}** licencijomis"
+ "PLAN_NOTE": "Šiuo metu užsiprenumeravote **{plan}** planą su **{quantity}** licencijomis",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Tvarkykite savo prenumeratą",
"DESCRIPTION": "Peržiūrėkite ankstesnes sąskaitas faktūras, redaguokite atsiskaitymo informaciją arba atšaukite prenumeratą.",
"BUTTON_TXT": "Eiti į mokėjimų portalą"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Atnaujinti"
+ },
"CHAT_WITH_US": {
"TITLE": "Reikia pagalbos?",
"DESCRIPTION": "Ar susiduriate su atsiskaitymo problemomis? Esame čia, kad padėtume.",
"BUTTON_TXT": "Pabendraukite su mumis"
},
- "NO_BILLING_USER": "Jūsų atsiskaitomoji sąskaita konfigūruojama. Atnaujinkite puslapį ir bandykite dar kartą."
+ "NO_BILLING_USER": "Jūsų atsiskaitomoji sąskaita konfigūruojama. Atnaujinkite puslapį ir bandykite dar kartą.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Pastaba:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Atšaukti",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Grįžti",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Nukopijuotas į iškarpinę",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Ieškoti požymių"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Išspręsti pokalbį",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Išspręsti pokalbį",
+ "CANCEL": "Atšaukti"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Taip",
+ "NO": "Ne"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Oi! Nepavyko rasti jokių Chatwoot paskyrų. Jei norite tęsti, susikurkite naują paskyrą.",
@@ -294,7 +624,8 @@
"LABEL": "Įmonės pavadinimas",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Pateikti"
+ "SUBMIT": "Pateikti",
+ "CANCEL": "Atšaukti"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Eikite į Ataskaitų šoninę juostą",
"MOVE_TO_NEXT_TAB": "Pereiti į kitą skirtuką pokalbių sąraše",
"GO_TO_SETTINGS": "Eiti į Nustatymus",
- "SWITCH_CONVERSATION_STATUS": "Perjungti į kitą pokalbio būseną",
"SWITCH_TO_PRIVATE_NOTE": "Perjungti į Privatų užrašą",
"SWITCH_TO_REPLY": "Perjungti į Atsakyti",
"TOGGLE_SNOOZE_DROPDOWN": "Perjungti snooze išskleidžiamąjį meniu"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritetas",
+ "ACTIVE": "Aktyvus",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Redaguoti"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Atšaukti"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Būsena:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Pridėti"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Redaguoti"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Atšaukti"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Aprašymas:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Pridėti"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Ištrinti",
+ "CANCEL_BUTTON_LABEL": "Atšaukti"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/signup.json b/app/javascript/dashboard/i18n/locale/lt/signup.json
index f95ec20e0..4200b6587 100644
--- a/app/javascript/dashboard/i18n/locale/lt/signup.json
+++ b/app/javascript/dashboard/i18n/locale/lt/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Sukurti paskyrą",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registras",
"TESTIMONIAL_HEADER": "Tereikia vieno žingsnio, kad judėtume į priekį",
"TESTIMONIAL_CONTENT": "Liko vienas žingsnis, kad įtrauktumėte savo klientus, išlaikytumėte juos ir rastumėte naujų.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Darbinis el. paštas",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Slaptažodis",
"PLACEHOLDER": "Slaptažodis",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Slaptažodžiai nesutampa."
},
"API": {
- "SUCCESS_MESSAGE": "Registracija sėkminga",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Sukurti paskyrą",
- "HAVE_AN_ACCOUNT": "Jau turi prisijungimo paskyrą?"
+ "HAVE_AN_ACCOUNT": "Jau turi prisijungimo paskyrą?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/sla.json b/app/javascript/dashboard/i18n/locale/lt/sla.json
index a7b5313f3..2607e682f 100644
--- a/app/javascript/dashboard/i18n/locale/lt/sla.json
+++ b/app/javascript/dashboard/i18n/locale/lt/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Šią užklausą atitinkančių elementų nėra",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Vardas",
- "Aprašymas",
- "FRT",
- "NRT",
- "RT",
- "Darbo valandos"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Įvyko klaida, prašau pabandykite dar kartą"
+ },
+ "CONFIRM": {
+ "TITLE": "Patvirtinti Ištrynimą",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Taip, Trinti ",
+ "NO": "Ne, Išsaugoti "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/snooze.json b/app/javascript/dashboard/i18n/locale/lt/snooze.json
new file mode 100644
index 000000000..1ad74ff46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "valandos",
+ "DAY": "diena",
+ "DAYS": "days",
+ "WEEK": "diena",
+ "WEEKS": "weeks",
+ "MONTH": "savaitė",
+ "MONTHS": "months",
+ "YEAR": "mėnuo",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "rytoj",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "kitą savaitę",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "diena",
+ "DAY": "diena"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json b/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
index fb59fe9b5..916d6d5e2 100644
--- a/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lt/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Sukurti naują komandą",
"HEADER": "Komandos",
- "SIDEBAR_TXT": "Komandos
Komandos leidžia suskirstyti agentus į grupes pagal jų pareigas.
Agentas gali būti kelių komandų narys. Galite priskirti pokalbius komandai, kai dirbate kartu.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Ieškoti komandų...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Šioje paskyroje nėra sukurtų komandų.",
- "EDIT_TEAM": "Redaguoti komandą"
+ "EDIT_TEAM": "Redaguoti komandą",
+ "NONE": "Nėra"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Pridėti agentus prie komandos",
- "TITLE": "Pridėti agentus prie komandos - %{teamName}",
+ "TITLE": "Pridėti agentus prie komandos - {teamName}",
"DESC": "Į naujai sukurtą komandą įtraukite agentus. Taip galėsite kaip komanda bendradarbiauti pokalbiuose, gauti pranešimus apie naujus įvykius tame pačiame pokalbyje."
},
- "WIZARD": [
- {
- "title": "Sukurti",
- "route": "settings_teams_new",
- "body": "Sukurkite naują agentų komandą."
- },
- {
- "title": "Pridėti Agentus",
- "route": "settings_teams_add_agents",
- "body": "Pridėti agentus prie komandos."
- },
- {
- "title": "Pabaigti",
- "route": "settings_teams_finish",
- "body": "Esate pasiruošę pradėti!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Sukurti",
+ "BODY": "Sukurkite naują agentų komandą."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Pridėti Agentus",
+ "BODY": "Pridėti agentus prie komandos."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Pabaigti",
+ "BODY": "Esate pasiruošę pradėti!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,26 +44,24 @@
},
"AGENTS": {
"BUTTON_TEXT": "Atnaujinkite agentus komandoje",
- "TITLE": "Pridėti agentus prie komandos - %{teamName}",
+ "TITLE": "Pridėti agentus prie komandos - {teamName}",
"DESC": "Pridėkite agentus į savo naujai sukurtą komandą. Visiems pridėtiems agentams bus pranešta, kai pokalbis bus priskirtas šiai komandai."
},
- "WIZARD": [
- {
- "title": "Komandos informacija",
- "route": "settings_teams_edit",
- "body": "Pakeiskite pavadinimą, aprašymą ir kitą informaciją."
- },
- {
- "title": "Keisti Agentus",
- "route": "settings_teams_edit_members",
- "body": "Redaguokite agentus savo komandoje."
- },
- {
- "title": "Pabaigti",
- "route": "settings_teams_edit_finish",
- "body": "Esate pasiruošę pradėti!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Komandos informacija",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Pakeiskite pavadinimą, aprašymą ir kitą informaciją."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Keisti Agentus",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Redaguokite agentus savo komandoje."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Pabaigti",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Esate pasiruošę pradėti!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Nepavyko išsaugoti komandos informacijos. Bandyk iš naujo."
@@ -74,14 +73,14 @@
"ADD_AGENTS": "Agentai pridedami prie komandos...",
"SELECT": "pasirinkti",
"SELECT_ALL": "pasirinkti visus agentus",
- "SELECTED_COUNT": "Pasirinkta %{selected} iš %{total} agentų."
+ "SELECTED_COUNT": "Pasirinkta {selected} iš {total} agentų."
},
"ADD": {
- "TITLE": "Pridėti agentus prie komandos - %{teamName}",
+ "TITLE": "Pridėti agentus prie komandos - {teamName}",
"DESC": "Į naujai sukurtą komandą įtraukite agentus. Taip galėsite kaip komanda bendradarbiauti pokalbiuose, gauti pranešimus apie naujus įvykius tame pačiame pokalbyje.",
"SELECT": "pasirinkti",
"SELECT_ALL": "pasirinkti visus agentus",
- "SELECTED_COUNT": "Pasirinkta %{selected} iš %{total} agentų.",
+ "SELECTED_COUNT": "Pasirinkta {selected} iš {total} agentų.",
"BUTTON_TEXT": "Pridėti agentus",
"AGENT_VALIDATION_ERROR": "Pasirinkite bent vieną agentą."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Nepavyko ištrinti komandos. Bandykite dar kartą."
},
"CONFIRM": {
- "TITLE": "Ar tikrai norite ištrinti – %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Įveskite {teamName}, kad patvirtintumėte",
"MESSAGE": "Ištrynus komandą, komandos priskyrimas bus pašalintas iš šiai komandai priskirtų pokalbių.",
"YES": "Ištrinti ",
diff --git a/app/javascript/dashboard/i18n/locale/lt/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/lt/whatsappTemplates.json
index c100e53fe..b84b04b83 100644
--- a/app/javascript/dashboard/i18n/locale/lt/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/lt/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Šablonai",
- "SUBTITLE": "Pasirinkite WhatsApp šabloną, kurį norite siųsti",
- "TEMPLATE_SELECTED_SUBTITLE": "Apdoroti %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Ieškoti šablonų",
- "NO_TEMPLATES_FOUND": "Šablonų nerasta",
- "LABELS": {
- "LANGUAGE": "Kalba",
- "TEMPLATE_BODY": "Šablono tekstas",
- "CATEGORY": "Kategorija"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Kintamieji",
- "VARIABLE_PLACEHOLDER": "Įveskite %{variable} reikšmę",
- "GO_BACK_LABEL": "Grįžti",
- "SEND_MESSAGE_LABEL": "Išsiųsti pranešimą",
- "FORM_ERROR_MESSAGE": "Prieš siųsdami užpildykite visus kintamuosius"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Šablonai",
+ "SUBTITLE": "Pasirinkite WhatsApp šabloną, kurį norite siųsti",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Ieškoti šablonų",
+ "NO_TEMPLATES_FOUND": "Šablonų nerasta",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Kalba",
+ "TEMPLATE_BODY": "Šablono tekstas",
+ "CATEGORY": "Kategorija"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Kintamieji",
+ "LANGUAGE": "Kalba",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Įveskite {variable} reikšmę",
+ "GO_BACK_LABEL": "Grįžti",
+ "SEND_MESSAGE_LABEL": "Išsiųsti pranešimą",
+ "FORM_ERROR_MESSAGE": "Prieš siųsdami užpildykite visus kintamuosius",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/lt/yearInReview.json b/app/javascript/dashboard/i18n/locale/lt/yearInReview.json
new file mode 100644
index 000000000..588432053
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lt/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Uždaryti",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "pokalbiai",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Parsisiųsti",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json b/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json
index bccc12cf2..47455cc7a 100644
--- a/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/lv/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "UN",
"OR": "VAI"
},
+ "INPUT_PLACEHOLDER": "Ievadiet vērtību",
"OPERATOR_LABELS": {
"equal_to": "Vienāds ar",
"not_equal_to": "Nav vienāds ar",
- "contains": "Satur",
"does_not_contain": "Nesatur",
"is_present": "Iekļauj sevī",
"is_not_present": "Neiekļauj sevī",
"is_greater_than": "Ir lielāks par",
"is_less_than": "Ir mazāks par",
"days_before": "Ir x dienas pirms",
- "starts_with": "Sākas ar"
+ "starts_with": "Sākas ar",
+ "equalTo": "Vienāds ar",
+ "notEqualTo": "Nav vienāds ar",
+ "contains": "Satur",
+ "doesNotContain": "Nesatur",
+ "isPresent": "Iekļauj sevī",
+ "isNotPresent": "Neiekļauj sevī",
+ "isGreaterThan": "Ir lielāks par",
+ "isLessThan": "Ir mazāks par",
+ "daysBefore": "Ir x dienas pirms",
+ "startsWith": "Sākas ar"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Patiesi",
@@ -54,6 +64,12 @@
"CREATED_AT": "Izveidots plkst",
"LAST_ACTIVITY": "Pēdējā darbība"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nepieciešama vērtība",
+ "ATTRIBUTE_KEY_REQUIRED": "Nepieciešama atribūta atslēga",
+ "FILTER_OPERATOR_REQUIRED": "Nepieciešams filtra operators",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Vērtībai ir jābūt no 1 līdz 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standarta filtri",
"ADDITIONAL_FILTERS": "Papildu filtri",
diff --git a/app/javascript/dashboard/i18n/locale/lv/agentBots.json b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
index f31aa836e..af6ef9e2c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/lv/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Roboti",
"LOADING_EDITOR": "Notiek redaktora ielāde...",
- "HEADER_BTN_TXT": "Pievienot robota konfigurāciju",
- "SIDEBAR_TXT": "Aģentu Roboti
Aģentu Roboti ir kā visbrīnišķīgākie jūsu komandas locekļi. Viņi var tikt galā ar sīkumiem, lai jūs varētu koncentrēties uz svarīgākajām lietām. Izmēģiniet viņus.
Jūs varat pārvaldīt savus robotus šajā lapā vai izveidot jaunus, izmantojot pogu 'Pievienot robota konfigurāciju'.
Atveriet Aģentu robotu rokasgrāmatu jaunā cilnē, lai saņemtu palīdzību.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Darbības"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
index f8418bfbf..6266161be 100644
--- a/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Aģenti",
"HEADER_BTN_TXT": "Pievienot Aģentu",
"LOADING": "Aģentu Saraksta Iegūšana",
- "SIDEBAR_TXT": "Aģenti
Aģents ir Jūsu Klientu Atbalsta komandas biedrs.
Aģenti varēs skatīt jūsu lietotāju ziņojumus un atbildēt uz tiem. Sarakstā ir redzami visi aģenti, kas pašlaik ir jūsu kontā.
Klikšķiniet uz Pievienot Aģentu lai pievienotu jaunu aģentu. Jūsu pievienotais aģents saņems e-pasta ziņojumu ar apstiprinājuma saiti, lai aktivizētu savu kontu, pēc tam viņš varēs piekļūt Chatwoot un atbildēt uz ziņojumiem.
Piekļuve Chatwoot funkcijām ir balstīta uz šādām lomām.
Aģents - Šīs lomas aģentiem ir piekļuve tikai pie iesūtnēm, pārskatiem un sarunām. Viņi var piešķirt sarunas citiem aģentiem, vai sev, un atrisināt sarunas.
Administrators - Administratoram būs piekļuve pie visām jūsu kontam iespējotajām Chatwoot funkcijām, tostarp iestatījumiem, kā arī visām parasto aģentu privilēģijām.
",
+ "DESCRIPTION": "Aģents ir jūsu klientu atbalsta komandas loceklis, kurš var skatīt lietotāja ziņojumus un atbildēt uz tiem. Tālāk esošajā sarakstā ir parādīti visi aģenti jūsu kontā.",
+ "LEARN_MORE": "Uzzināt par lietotāju lomām",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrators",
"AGENT": "Aģents"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Šim kontam nav piesaistīts neviens aģents",
"TITLE": "Pārvaldīt Jūsu komandas aģentus",
@@ -17,7 +19,8 @@
"STATUS": "Statuss",
"ACTIONS": "Darbības",
"VERIFIED": "Pārbaudīts",
- "VERIFICATION_PENDING": "Tiek gaidīta verifikācija"
+ "VERIFICATION_PENDING": "Tiek gaidīta verifikācija",
+ "AVAILABLE_CUSTOM_ROLE": "Pieejamās pielāgotu lomu atļaujas"
},
"ADD": {
"TITLE": "Pievienot aģentu Jūsu komandai",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Nevar izveidot savienojumu ar Woot serveri. Lūdzu, vēlāk pamēģiniet vēlreiz"
}
},
+ "SEARCH_PLACEHOLDER": "Meklēt aģentus...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nav atrasts."
},
@@ -103,6 +108,9 @@
"AGENT": "Izvēlieties aģentu",
"TEAM": "Izvēlieties komandu"
},
+ "LIST": {
+ "NONE": "Nav"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Aģenti nav atrasti",
diff --git a/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
index 72ae385ce..c75334d9e 100644
--- a/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Pielāgotas Īpašības",
"HEADER_BTN_TXT": "Pievienot Pielāgotu Īpašību",
"LOADING": "Notiek pielāgotu īpašību iegūšana",
- "SIDEBAR_TXT": "Pielāgotas Īpašības
Pielāgotas īpašības izseko faktus par jūsu kontaktpersonām/sarunu, piemēram, abonēšanas plānu vai kad viņi pasūtīja pirmo preci utt.
Lai izveidotu Pielāgotu Īpašību, noklikšķiniet uz Pievienot Pielāgotu Īpašību. Jūs varat arī rediģēt vai dzēst esošu Pielāgotu Īpašību, noklikšķinot uz Rediģēt vai Dzēst pogas.
",
+ "DESCRIPTION": "Pielāgots atribūts ļauj izsekot papildu informāciju par jūsu kontaktpersonām vai sarunām, piemēram, abonēšanas plānu vai viņu pirmā pirkuma datumu. Varat pievienot dažāda veida pielāgotus atribūtus, piemēram, tekstu, sarakstus vai skaitļus, lai tvertu konkrētu jums nepieciešamo informāciju.",
+ "LEARN_MORE": "Uzzināt vairāk par pielāgotajiem atribūtiem",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Meklēt īpašības...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Saruna",
+ "CONTACT": "Kontaktpersona",
+ "COMPANY": "Uzņēmums"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Teksts",
+ "NUMBER": "Numurs",
+ "LINK": "Saite",
+ "DATE": "Date",
+ "LIST": "Saraksts",
+ "CHECKBOX": "Izvēles rūtiņa"
+ },
"ADD": {
"TITLE": "Pievienot Pielāgotu Īpašību",
"SUBMIT": "Izveidot",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Iespējot regex pārbaudi"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Nevarēja izdzēst pielāgoto īpašību. Mēģiniet vēlreiz."
},
"CONFIRM": {
- "TITLE": "Vai tiešām vēlaties dzēst - %{attributeName}",
+ "TITLE": "Vai esat pārliecināts, ka vēlaties izdzēst - {attributeName}",
"PLACE_HOLDER": "Lai apstiprinātu, lūdzu, uzrakstiet {attributeName}",
"MESSAGE": "Dzēšana noņems pielāgoto īpašību",
"YES": "Dzēst ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Pielāgotās Īpašības",
"CONVERSATION": "Saruna",
- "CONTACT": "Kontaktpersona"
+ "CONTACT": "Kontaktpersona",
+ "COMPANY": "Uzņēmums"
},
"LIST": {
- "TABLE_HEADER": [
- "Nosaukums",
- "Apraksts",
- "Tips",
- "Atslēga"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "DESCRIPTION": "Apraksts",
+ "TYPE": "Tips",
+ "KEY": "Atslēga"
+ },
"BUTTONS": {
"EDIT": "Rediģēt",
"DELETE": "Dzēst"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Iespējot regex pārbaudi"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/auditLogs.json b/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
index b1cb63ef0..180eb969f 100644
--- a/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/lv/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audita Žurnāli",
"HEADER_BTN_TXT": "Pievienot Audita Žurnālus",
"LOADING": "Audita Žurnālu Iegūšana",
+ "DESCRIPTION": "Audita žurnāli saglabā ierakstus par jūsu konta darbību aktivitātēm, ļaujot jums izsekot un pārbaudīt savu kontu, komandu vai pakalpojumus.",
+ "LEARN_MORE": "Uzzināt vairāk par audita žurnāliem",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu",
"SIDEBAR_TXT": "Audita Žurnāls
Audita Žurnāli ir notikumu un darbību pēdas Chatwoot sistēmā.
",
"LIST": {
"404": "Šajā kontā nav pieejami Audita Žurnāli.",
"TITLE": "Pārvaldīt Audita Žurnālus",
"DESC": "Audita Žurnāli ir notikumu un darbību pēdas Chatwoot sistēmā.",
- "TABLE_HEADER": [
- "Lietotājs",
- "Darbība",
- "IP adrese"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Lietotājs",
+ "TIME": "Darbība",
+ "IP_ADDRESS": "IP adrese"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditaŽurnāli ir veiksmīgi iegūti",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Sistēma",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} izveidoja jaunu automatizācijas noteikumu (#%{id})",
- "EDIT": "%{agentName} atjaunināja automatizācijas noteikumu (#%{id})",
- "DELETE": "%{agentName} izdzēsa automatizācijas noteikumu (#%{id})"
+ "ADD": "{agentName} izveidoja jaunu automatizācijas noteikumu (#{id})",
+ "EDIT": "{agentName} atjaunināja automatizācijas noteikumu (#{id})",
+ "DELETE": "{agentName} izdzēsa automatizācijas noteikumu (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} uzaicināja %{invitee} kontā kā %{role}",
+ "ADD": "{agentName} uzaicināja {invitee} kontā kā {role}",
"EDIT": {
- "SELF": "%{agentName} mainīja savu %{attributes} uz %{values}",
- "OTHER": "%{agentName} mainīja %{user} %{attributes} uz %{values}"
+ "SELF": "{agentName} mainīja savu {attributes} uz {values}",
+ "OTHER": "{agentName} mainīja {user} {attributes} uz {values}",
+ "DELETED": "{agentName} mainīja dzēstā lietotāja {attributes} uz {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} izveidoja jaunu iesūtni (#%{id})",
- "EDIT": "%{agentName} atjaunināja iesūtni (#%{id})",
- "DELETE": "%{agentName} izdzēsa iesūtni (#%{id})"
+ "ADD": "{agentName} izveidoja jaunu iesūtni (#{id})",
+ "EDIT": "{agentName} atjaunināja iesūtni (#{id})",
+ "DELETE": "{agentName} izdzēsa iesūtni (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} izveidoja jaunu webhook (#%{id})",
- "EDIT": "%{agentName} atjaunināja webhook (#%{id})",
- "DELETE": "%{agentName} izdzēsa webhook (#%{id})"
+ "ADD": "{agentName} izveidoja jaunu webhook (#{id})",
+ "EDIT": "{agentName} atjaunināja webhook (#{id})",
+ "DELETE": "{agentName} izdzēsa webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} pierakstījies",
- "SIGN_OUT": "%{agentName} izrakstījies"
+ "SIGN_IN": "{agentName} pierakstījies",
+ "SIGN_OUT": "{agentName} izrakstījies"
},
"TEAM": {
- "ADD": "%{agentName} izveidoja jaunu komandu (#%{id})",
- "EDIT": "%{agentName} atjaunināja komandu (#%{id})",
- "DELETE": "%{agentName} izdzēsa komandu (#%{id})"
+ "ADD": "{agentName} izveidoja jaunu komandu (#{id})",
+ "EDIT": "{agentName} atjaunināja komandu (#{id})",
+ "DELETE": "{agentName} izdzēsa komandu (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} izveidoja jaunu makro (#%{id})",
- "EDIT": "%{agentName} atjaunināja makro (#%{id})",
- "DELETE": "%{agentName} izdzēsa makro (#%{id})"
+ "ADD": "{agentName} izveidoja jaunu makro (#{id})",
+ "EDIT": "{agentName} atjaunināja makro (#{id})",
+ "DELETE": "{agentName} izdzēsa makro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} pievienoja %{user} iesūtnei(#%{inbox_id})",
- "REMOVE": "%{agentName} noņēma %{user} no iesūtnes(#%{inbox_id})"
+ "ADD": "{agentName} pievienoja {user} iesūtnei(#{inbox_id})",
+ "REMOVE": "{agentName} noņēma {user} no iesūtnes(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} pievienoja %{user} komandai(#%{team_id})",
- "REMOVE": "%{agentName} noņēma %{user} no komandas(#%{team_id})"
+ "ADD": "{agentName} pievienoja {user} komandai(#{team_id})",
+ "REMOVE": "{agentName} noņēma {user} no komandas(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} atjaunināja (#%{id}) konta konfigurāciju "
+ "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 6483d8e99..f29208076 100644
--- a/app/javascript/dashboard/i18n/locale/lv/automation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatizācijas",
- "HEADER_BTN_TXT": "Pievienot Automatizācijas Noteikumu",
+ "HEADER": "Automatizācija",
+ "DESCRIPTION": "Automatizācija var aizstāt un racionalizēt esošos procesus, kuriem nepieciešama manuāla piepūle, piemēram, etiķešu pievienošana un sarunu piešķiršana vispiemērotākajam aģentam. Tas ļauj komandai koncentrēties uz savām stiprajām pusēm, vienlaikus samazinot laiku, kas pavadīts ikdienas uzdevumiem.",
+ "LEARN_MORE": "Uzzināt vairāk par automatizāciju",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Notiek automatizācijas noteikumu iegūšana",
- "SIDEBAR_TXT": "Automatizācijas Noteikumi
Automatizācija var aizstāt un automatizēt esošos procesus, kuriem nepieciešama manuāla piepūle. Izmantojot automatizāciju, Jūs varat veikt daudzas darbības, tostarp pievienot etiķetes un piešķirt sarunu labākajam aģentam. Šādi komanda koncentrēsies uz to, kas viņiem padodas vislabāk, un mazāk laika veltītīs manuāliem uzdevumiem.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Pievienot Automatizācijas Noteikumu",
"SUBMIT": "Izveidot",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nosaukums",
- "Apraksts",
- "Aktīvs",
- "Izveidots"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "ACTIVE": "Aktīvs",
+ "CREATED_ON": "Izveidots",
+ "ACTIONS": "Darbības"
+ },
"404": "Automatizācijas noteikumi nav atrasti"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Lai saglabātu, ir nepieciešama vismaz viena darbība",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Ievadiet savu ziņojumu šeit",
- "TEAM_DROPDOWN_PLACEHOLDER": "Izvēlieties komandas"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Izvēlieties komandas",
+ "EMAIL_INPUT_PLACEHOLDER": "Ievadiet e-pastu",
+ "URL_INPUT_PLACEHOLDER": "Ievadiet URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Aktivizēt Automatizācijas Noteikumu",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Notiek augšupielāde...",
"LABEL_UPLOADED": "Veiksmīgi Augšupielādēts",
"LABEL_UPLOAD_FAILED": "Augšupielāde neizdevās"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Nepieciešama atribūta atslēga",
+ "FILTER_OPERATOR_REQUIRED": "Nepieciešams filtra operators",
+ "VALUE_REQUIRED": "Nepieciešama vērtība",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Vērtībai ir jābūt no 1 līdz 998",
+ "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"
+ },
+ "NONE_OPTION": "Nav",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Saruna izveidota",
+ "CONVERSATION_UPDATED": "Saruna Atjaunināta",
+ "MESSAGE_CREATED": "Ziņojums Izveidots",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Saruna Atvērta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Piešķirt Aģentam",
+ "ASSIGN_TEAM": "Piešķirt Komandai",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Noņemt Piešķirto Komandu",
+ "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",
+ "ADD_PRIVATE_NOTE": "Pievienot Privātu Piezīmi",
+ "CHANGE_PRIORITY": "Mainīt prioritāti",
+ "ADD_SLA": "Pievienot SLA",
+ "OPEN_CONVERSATION": "Atvērt sarunu",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nav",
+ "LOW": "Zema",
+ "MEDIUM": "Vidēja",
+ "HIGH": "Augsta",
+ "URGENT": "Steidzama"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Ziņojuma Tips",
+ "PRIVATE_NOTE": "Privāta Piezīme",
+ "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",
+ "COMPANY_NAME": "Uzņēmums",
+ "REFERER_LINK": "Novirzītāja Saite",
+ "ASSIGNEE_NAME": "Uzdevuma saņēmējs",
+ "TEAM_NAME": "Komanda",
+ "PRIORITY": "Prioritāte",
+ "LABELS": "Etiķetes"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
index a2ad9bfb9..536d79877 100644
--- a/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/lv/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "Izvēlētas %{conversationCount} sarunas",
- "AGENT_SELECT_LABEL": "Izvēlieties aģentu",
- "ASSIGN_CONFIRMATION_LABEL": "Vai patiešām vēlaties piesaistīt %{conversationCount} %{conversationLabel} pie",
- "UNASSIGN_CONFIRMATION_LABEL": "Vai patiešām vēlaties atsaistīt %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Atgriezties",
- "ASSIGN_LABEL": "Piešķirt",
+ "CONVERSATIONS_SELECTED": "Izvēlētas {conversationCount} sarunas",
+ "NONE": "Nav",
+ "CLEAR_SELECTION": "Notīrīt",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Jā",
+ "CANCEL": "Atcelt",
+ "SEARCH_INPUT_PLACEHOLDER": "Meklēt",
"ASSIGN_AGENT_TOOLTIP": "Piešķirt aģentu",
"ASSIGN_TEAM_TOOLTIP": "Piešķirt komandu",
"ASSIGN_SUCCESFUL": "Sarunas ir veiksmīgi piešķirtas.",
@@ -14,25 +15,30 @@
"RESOLVE_SUCCESFUL": "Sarunas ir veiksmīgi atrisinātas.",
"RESOLVE_FAILED": "Neizdevās atrisināt sarunas. Lūdzu mēģiniet vēlreiz.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Šajā lapā redzamās sarunas ir tikai izvēlētas.",
- "AGENT_LIST_LOADING": "Notiek aģentu ielāde",
"UPDATE": {
"CHANGE_STATUS": "Mainīt statusu",
- "SNOOZE_UNTIL_NEXT_REPLY": "Atlikt līdz nākamajai atbildei.",
+ "SNOOZE_UNTIL": "Atlikt",
"UPDATE_SUCCESFUL": "Sarunas statuss ir veiksmīgi atjaunināts.",
"UPDATE_FAILED": "Neizdevās atjaunināt sarunas. Lūdzu mēģiniet vēlreiz."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Piešķirt etiķetes",
- "NO_LABELS_FOUND": "Etiķetes nav atrastas",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Piešķirt izvēlētās etiķetes",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etiķetes ir veiksmīgi piešķirtas.",
- "ASSIGN_FAILED": "Neizdevās piešķirt etiķetes. Lūdzu mēģiniet vēlreiz."
+ "ASSIGN_FAILED": "Neizdevās piešķirt etiķetes. Lūdzu mēģiniet vēlreiz.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Izvēlieties komandu",
"NONE": "Nav",
- "NO_TEAMS_AVAILABLE": "Šim kontam vēl nav pievienota neviena komanda.",
- "ASSIGN_SELECTED_TEAMS": "Piešķirt izvēlēto komandu.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"ASSIGN_SUCCESFUL": "Komandas ir veiksmīgi piešķirtas.",
"ASSIGN_FAILED": "Neizdevās piešķirt komandu. Lūdzu mēģiniet vēlreiz."
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/campaign.json b/app/javascript/dashboard/i18n/locale/lv/campaign.json
index c28aa96fb..e9cf6309b 100644
--- a/app/javascript/dashboard/i18n/locale/lv/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/lv/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampaņas",
- "SIDEBAR_TXT": "Proaktīvi ziņojumi ļauj klientam nosūtīt izejošos ziņojumus savām kontaktpersonām, kas aktivizē citas sarunas. Noklikšķiniet uz Pievienot Kampaņu lai izveidotu jaunu kampaņu. Jūs varat arī rediģēt vai dzēst esošu kampaņu, noklikšķinot uz Rediģēt vai Dzēst pogas.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Izveidot vienreizēju kampaņu",
- "ONGOING": "Izveidot notiekošu kampaņu"
- },
- "ADD": {
- "TITLE": "Izveidot kampaņu",
- "DESC": "Proaktīvi ziņojumi ļauj klientam nosūtīt izejošos ziņojumus savām kontaktpersonām, kas aktivizē citas sarunas.",
- "CANCEL_BUTTON_TEXT": "Atcelt",
- "CREATE_BUTTON_TEXT": "Izveidot",
- "FORM": {
- "TITLE": {
- "LABEL": "Nosaukums",
- "PLACEHOLDER": "Lūdzu, ievadiet kampaņas nosaukumu",
- "ERROR": "Nepieciešams nosaukums"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Tiešraides tērzēšanas kampaņas",
+ "NEW_CAMPAIGN": "Izveidot kampaņu",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Iespējots",
+ "DISABLED": "Atspējots"
},
- "SCHEDULED_AT": {
- "LABEL": "Plānotais laiks",
- "PLACEHOLDER": "Lūdzu, izvēlieties laiku",
- "CONFIRM": "Apstiprināt",
- "ERROR": "Nepieciešams ieplānotais laiks"
- },
- "AUDIENCE": {
- "LABEL": "Auditorija",
- "PLACEHOLDER": "Izvēlieties klientu etiķetes",
- "ERROR": "Nepieciešama auditorija"
- },
- "INBOX": {
- "LABEL": "Izvēlieties Iesūtni",
- "PLACEHOLDER": "Izvēlieties Iesūtni",
- "ERROR": "Nepieciešama iesūtne"
- },
- "MESSAGE": {
- "LABEL": "Ziņojums",
- "PLACEHOLDER": "Lūdzu, ievadiet kampaņas ziņojumu",
- "ERROR": "Nepieciešams ziņojums"
- },
- "SENT_BY": {
- "LABEL": "Sūtīja",
- "PLACEHOLDER": "Lūdzu, izvēlieties kampaņas saturu",
- "ERROR": "Nepieciešams sūtītājs"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Lūdzu, ievadiet URL",
- "ERROR": "Lūdzu, ievadiet derīgu URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Lapā pavadītais laiks (Sekundes)",
- "PLACEHOLDER": "Lūdzu, ievadiet laiku",
- "ERROR": "Nepieciešams lapā pavadītais laiks"
- },
- "ENABLED": "Iespējot kampaņu",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Aktivizēt tikai darba laikā",
- "SUBMIT": "Pievienot Kampaņu"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sūtīja",
+ "BOT": "Bot",
+ "FROM": "no",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampaņa ir veiksmīgi izveidota",
- "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
+ "EMPTY_STATE": {
+ "TITLE": "Nav pieejama neviena tiešsaistes tērzēšanas kampaņa",
+ "SUBTITLE": "Sazinieties ar saviem klientiem, izmantojot proaktīvus ziņojumus. Lai sāktu, noklikšķiniet uz \"Izveidot kampaņu\"."
+ },
+ "CREATE": {
+ "TITLE": "Izveidot tiešraides tērzēšanas kampaņu",
+ "CANCEL_BUTTON_TEXT": "Atcelt",
+ "CREATE_BUTTON_TEXT": "Izveidot",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Lūdzu, ievadiet kampaņas nosaukumu",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "MESSAGE": {
+ "LABEL": "Ziņojums",
+ "PLACEHOLDER": "Lūdzu, ievadiet kampaņas ziņojumu",
+ "ERROR": "Nepieciešams ziņojums"
+ },
+ "INBOX": {
+ "LABEL": "Izvēlieties Iesūtni",
+ "PLACEHOLDER": "Izvēlieties Iesūtni",
+ "ERROR": "Nepieciešama iesūtne"
+ },
+ "SENT_BY": {
+ "LABEL": "Sūtīja",
+ "PLACEHOLDER": "Lūdzu, atlasiet sūtītāju",
+ "ERROR": "Nepieciešams sūtītājs"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Lūdzu, ievadiet URL",
+ "ERROR": "Lūdzu, ievadiet derīgu URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Lapā pavadītais laiks (Sekundes)",
+ "PLACEHOLDER": "Lūdzu, ievadiet laiku",
+ "ERROR": "Nepieciešams lapā pavadītais laiks"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Citas preferences",
+ "ENABLED": "Iespējot kampaņu",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Aktivizēt tikai darba laikā"
+ },
+ "BUTTONS": {
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Tiešraides tērzēšanas kampaņa ir veiksmīgi izveidota",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Rediģēt tiešsaistes tērzēšanas kampaņu",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Tiešraides tērzēšanas kampaņa ir veiksmīgi atjaunināta",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Dzēst",
- "CONFIRM": {
- "TITLE": "Apstiprināt Dzēšanu",
- "MESSAGE": "Vai tiešām vēlaties izdzēst?",
- "YES": "Jā, Dzēst ",
- "NO": "Nē, Paturēt "
+ "SMS": {
+ "HEADER_TITLE": "SMS kampaņas",
+ "NEW_CAMPAIGN": "Izveidot kampaņu",
+ "EMPTY_STATE": {
+ "TITLE": "SMS kampaņas nav pieejamas",
+ "SUBTITLE": "Uzsāciet SMS kampaņu, lai tieši sasniegtu savus klientus. Viegli nosūtiet piedāvājumus vai paziņojumus. Lai sāktu, noklikšķiniet uz \"Izveidot kampaņu\"."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Pabeigts",
+ "SCHEDULED": "Plānots"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Nosūtīts no",
+ "ON": ""
+ }
+ },
+ "CREATE": {
+ "TITLE": "Izveidot SMS kampaņu",
+ "CANCEL_BUTTON_TEXT": "Atcelt",
+ "CREATE_BUTTON_TEXT": "Izveidot",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Lūdzu, ievadiet kampaņas nosaukumu",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "MESSAGE": {
+ "LABEL": "Ziņojums",
+ "PLACEHOLDER": "Lūdzu, ievadiet kampaņas ziņojumu",
+ "ERROR": "Nepieciešams ziņojums"
+ },
+ "INBOX": {
+ "LABEL": "Izvēlieties Iesūtni",
+ "PLACEHOLDER": "Izvēlieties Iesūtni",
+ "ERROR": "Nepieciešama iesūtne"
+ },
+ "AUDIENCE": {
+ "LABEL": "Auditorija",
+ "PLACEHOLDER": "Izvēlieties klientu etiķetes",
+ "ERROR": "Nepieciešama auditorija"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Plānotais laiks",
+ "PLACEHOLDER": "Lūdzu, izvēlieties laiku",
+ "ERROR": "Nepieciešams ieplānotais laiks"
+ },
+ "BUTTONS": {
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS kampaņa veiksmīgi izveidota",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Izveidot kampaņu",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Pabeigts",
+ "SCHEDULED": "Plānots"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Nosūtīts no",
+ "ON": ""
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Atcelt",
+ "CREATE_BUTTON_TEXT": "Izveidot",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Lūdzu, ievadiet kampaņas nosaukumu",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "INBOX": {
+ "LABEL": "Izvēlieties Iesūtni",
+ "PLACEHOLDER": "Izvēlieties Iesūtni",
+ "ERROR": "Nepieciešama iesūtne"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Apstrādāt {templateName}",
+ "LANGUAGE": "Valoda",
+ "CATEGORY": "Kategorija",
+ "VARIABLES_LABEL": "Mainīgie",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Auditorija",
+ "PLACEHOLDER": "Izvēlieties klientu etiķetes",
+ "ERROR": "Nepieciešama auditorija"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Plānotais laiks",
+ "PLACEHOLDER": "Lūdzu, izvēlieties laiku",
+ "ERROR": "Nepieciešams ieplānotais laiks"
+ },
+ "BUTTONS": {
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Vai tiešām vēlaties izdzēst?",
+ "DESCRIPTION": "Dzēšanas darbība ir neatgriezeniska, un to nevar atsaukt.",
+ "CONFIRM": "Dzēst",
"API": {
"SUCCESS_MESSAGE": "Kampaņa ir veiksmīgi izdzēsta",
- "ERROR_MESSAGE": "Nevarēja izdzēst kampaņu. Lūdzu, pamēģiniet vēlāk vēlreiz."
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu mēģiniet vēlreiz."
}
- },
- "EDIT": {
- "TITLE": "Rediģēt kampaņu",
- "UPDATE_BUTTON_TEXT": "Atjaunināt",
- "API": {
- "SUCCESS_MESSAGE": "Kampaņa ir veiksmīgi atjaunināta",
- "ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Notiek kampaņu ielāde...",
- "404": "Šai iesūtnei nav izveidota neviena kampaņa.",
- "TABLE_HEADER": {
- "TITLE": "Nosaukums",
- "MESSAGE": "Ziņojums",
- "INBOX": "Iesūtne",
- "STATUS": "Statuss",
- "SENDER": "Sūtītājs",
- "URL": "URL",
- "SCHEDULED_AT": "Plānotais laiks",
- "TIME_ON_PAGE": "Laiks (Sekundes)",
- "CREATED_AT": "Izveidots plkst"
- },
- "BUTTONS": {
- "ADD": "Pievienot",
- "EDIT": "Rediģēt",
- "DELETE": "Dzēst"
- },
- "STATUS": {
- "ENABLED": "Iespējots",
- "DISABLED": "Atspējots",
- "COMPLETED": "Pabeigts",
- "ACTIVE": "Aktīvs"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Vienreizējas kampaņas",
- "404": "Nav izveidota neviena vienreizēja kampaņa",
- "INBOXES_NOT_FOUND": "Lūdzu, izveidojiet sms iesūtni un sāciet pievienot kampaņas"
- },
- "ONGOING": {
- "HEADER": "Notiekošās kampaņas",
- "404": "Nav izveidota neviena notiekoša kampaņa",
- "INBOXES_NOT_FOUND": "Lūdzu, izveidojiet tīmekļa vietnes iesūtni un sāciet pievienot kampaņas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
index d4cefaca3..a9a19ddd4 100644
--- a/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Sagatavotās Atbildes",
+ "LEARN_MORE": "Uzzināt vairāk par sagatavotajām atbildēm",
+ "DESCRIPTION": "Sagatavotās atbildes ir iepriekš uzrakstītas atbilžu veidnes, kas palīdz ātri atbildēt uz sarunu. Lai sarunas laikā ievietotu gatavu atbildi, aģenti var ierakstīt rakstzīmi “/”, kam seko īskods. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Pievienot sagatavoto atbildi",
"LOADING": "Notiek sagatavoto atbilžu iegūšana...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu.",
- "SIDEBAR_TXT": "Sagatavotās Atbildes
Sagatavotās Atbildes ir iepriekš uzrakstītas atbilžu veidnes, kas palīdz ātri atbildēt uz sarunu. Lai tērzēšanas laikā ievietotu sagatavotu atbildi, aģenti var ievadīt īsu kodu, pirms kura ir rakstzīme “/”.
Šajā lapā Jūs varat pārvaldīt savas sagatavotās atbildes vai izveidot jaunas, izmantojot pogu \"Pievienot sagatavoto atbildi\".
Atveriet Sagatavoto Atbilžu rokasgrāmatu jaunā cilnē, lai saņemtu palīdzību.
Apskatiet arī pilnīgi jauno Sagatavoto Atbilžu Bibliotēku.
",
"LIST": {
"404": "Šajā kontā nav pieejama neviena sagatavota atbilde.",
"TITLE": "Pārvaldīt sagatavotās atbildes",
"DESC": "Sagatavotās atbildes ir iepriekš definētas atbilžu veidnes, kuras var izmantot lai ātri nosūtītu atbildes uz sarunām.",
- "TABLE_HEADER": [
- "Īsais kods",
- "Saturs",
- "Darbības"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Īsais kods",
+ "CONTENT": "Saturs",
+ "ACTIONS": "Darbības"
+ }
},
"ADD": {
"TITLE": "Pievienot sagatavoto atbildi",
diff --git a/app/javascript/dashboard/i18n/locale/lv/chatlist.json b/app/javascript/dashboard/i18n/locale/lv/chatlist.json
index 910f4b222..cd309cccd 100644
--- a/app/javascript/dashboard/i18n/locale/lv/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/lv/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Šajā grupā nav aktīvu sarunu."
},
+ "FAILED_TO_SEND": "Neizdevās nosūtīt",
"TAB_HEADING": "Sarunas",
"MENTION_HEADING": "Pieminēšanas",
"UNATTENDED_HEADING": "Bez uzraudzības",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Gaida atbildi: Īsākā vispirms"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Atrašanās vieta"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Spole"
+ },
"fallback": {
"CONTENT": "ir kopīgojis URL"
+ },
+ "contact": {
+ "CONTENT": "Koplietota kontaktpersona"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Saturs nav pieejams",
"HIDE_QUOTED_TEXT": "Paslēpt Citēto Tekstu",
"SHOW_QUOTED_TEXT": "Rādīt Citēto Tekstu",
- "MESSAGE_READ": "Lasīt"
+ "MESSAGE_READ": "Lasīt",
+ "SENDING": "Sūtīšana",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/companies.json b/app/javascript/dashboard/i18n/locale/lv/companies.json
new file mode 100644
index 000000000..f1303f81b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Kārtot pēc",
+ "OPTIONS": {
+ "NAME": "Nosaukums",
+ "DOMAIN": "Domēns",
+ "CREATED_AT": "Izveidots plkst",
+ "LAST_ACTIVITY_AT": "Pēdējā darbība",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Augoša",
+ "DESCENDING": "Dilstoša"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribūti",
+ "CONTACTS": "Kontaktpersonas",
+ "HISTORY": "Vēsture",
+ "NOTES": "Piezīmes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Meklēt īpašības...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Notiek kontaktpersonu ielāde...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Pievienot kontaktpersonu",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Meklēt kontaktpersonas...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "Netika atrasta neviena kontaktpersona.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Uzņēmums",
+ "CONTACT_LABEL": "Kontaktpersona",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Atcelt"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Izveidots {date}",
+ "LAST_ACTIVE": "Pēdējā aktivitāte {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nosaukums",
+ "DOMAIN": "Domēns"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/components.json b/app/javascript/dashboard/i18n/locale/lv/components.json
new file mode 100644
index 000000000..df6244948
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Tiek rādīts {startItem} - {endItem} no {totalItems} vienumiem",
+ "CURRENT_PAGE_INFO": "{currentPage} no {totalPages} lapām"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Izvēlieties opciju...",
+ "EMPTY_SEARCH_RESULTS": "Meklēšanas vienumam `{searchTerm}` netika atrasts neviens vienums",
+ "EMPTY_STATE": "Nav atrasts.",
+ "SEARCH_PLACEHOLDER": "Meklēt...",
+ "MORE": "+{count} vairāk"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Meklēt...",
+ "EMPTY_STATE": "Nav atrasts.",
+ "SEARCHING": "Meklēšana..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Atcelt",
+ "CONFIRM": "Apstiprināt"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Meklēt valsti",
+ "ERROR": "Tālruņa numuram ir jābūt tukšam vai E.164 formātā",
+ "DIAL_CODE_ERROR": "Lūdzu, izvēlieties sastādīšanas kodu no saraksta"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Autors nav pieejams"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Rīvmaize"
+ },
+ "SWITCH": {
+ "TOGGLE": "Pārslēgšanas slēdzis"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "marķēt"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Uzzināt vairāk",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/contact.json b/app/javascript/dashboard/i18n/locale/lv/contact.json
index 583e5aa2a..07ff92143 100644
--- a/app/javascript/dashboard/i18n/locale/lv/contact.json
+++ b/app/javascript/dashboard/i18n/locale/lv/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP adrese",
"CREATED_AT_LABEL": "Izveidots",
"NEW_MESSAGE": "Jauns ziņojums",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Ar šo kontaktpersonu nav saistītas iepriekšējās sarunas.",
"TITLE": "Iepriekšējās Sarunas"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Pielāgot Īpašības",
"CONTACT_LABELS": "Kontaktpersonu Etiķetes",
- "PREVIOUS_CONVERSATIONS": "Iepriekšējās Sarunas"
+ "PREVIOUS_CONVERSATIONS": "Iepriekšējās Sarunas",
+ "NO_RECORDS_FOUND": "Īpašības nav atrastas"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Rediģēt kontaktpersonu",
"DESC": "Rediģēt kontaktinformāciju"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Jauna Kontaktpersona",
- "TITLE": "Izveidot jaunu kontaktpersonu",
- "DESC": "Pievienot pamatinformāciju par kontaktpersonu."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importēt",
- "TITLE": "Importēt Kontaktpersonas",
- "DESC": "Importēt kontaktpersonas, izmantojot CSV failu.",
- "DOWNLOAD_LABEL": "Lejupielādēt csv paraugu.",
- "FORM": {
- "LABEL": "CSV Fails",
- "SUBMIT": "Importēt",
- "CANCEL": "Atcelt"
- },
- "SUCCESS_MESSAGE": "Kad importēšana būs pabeigta, jūs saņemsiet paziņojumu pa e-pastu.",
- "ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Eksportēt",
- "TITLE": "Eksportēt Kontaktpersonas",
- "DESC": "Eksportēt kontaktpersonas uz CSV failu.",
- "SUCCESS_MESSAGE": "Notiek eksportēšana, Jūs saņemsit paziņojumu pa e-pastu, kad eksporta fails būs gatavs lejupielādei.",
- "ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz",
- "CONFIRM": {
- "TITLE": "Eksportēt Kontaktpersonas",
- "MESSAGE": "Vai vēlaties eksportēt visas kontaktpersonas?",
- "YES": "Jā, Eksportēt",
- "NO": "Nē, Atcelt"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Apstiprināt Dzēšanu",
- "MESSAGE": "Vai tiešām vēlaties dzēst šo piezīmi?",
- "YES": "Jā, Dzēst",
- "NO": "Nē, Paturēt"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Dzēst Kontaktpersonu",
"TITLE": "Dzēst kontaktpersonu",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontaktpersonas",
- "FIELDS": "Kontaktpersonu lauki",
- "SEARCH_BUTTON": "Meklēt",
- "SEARCH_INPUT_PLACEHOLDER": "Meklēt kontaktpersonas",
- "FILTER_CONTACTS": "Filtrs",
- "FILTER_CONTACTS_SAVE": "Saglabāt filtru",
- "FILTER_CONTACTS_DELETE": "Dzēst filtru",
- "FILTER_CONTACTS_EDIT": "Rediģēt segmentu",
"LIST": {
- "LOADING_MESSAGE": "Notiek kontaktpersonu ielāde...",
- "404": "Neviena kontaktpersona neatbilst jūsu meklēšanas vaicājumam 🔍",
- "NO_CONTACTS": "Nav pieejamu kontaktpersonu",
"TABLE_HEADER": {
- "NAME": "Nosaukums",
- "PHONE_NUMBER": "Telefona Numurs",
- "CONVERSATIONS": "Sarunas",
- "LAST_ACTIVITY": "Pēdējās Darbības",
- "CREATED_AT": "Izveidots",
- "COUNTRY": "Valsts",
- "CITY": "Pilsēta",
- "SOCIAL_PROFILES": "Sociālie Profili",
- "COMPANY": "Uzņēmums",
- "EMAIL_ADDRESS": "e-pasta Adrese"
- },
- "VIEW_DETAILS": "Skatīt detalizētu informāciju"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontaktpersonas",
- "LOADING": "Notiek kontaktpersonas profila ielāde..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Pievienot",
- "TITLE": "Shift + Enter, lai izveidotu uzdevumu"
- },
- "FOOTER": {
- "DUE_DATE": "Gala termiņš",
- "LABEL_TITLE": "Iestatīt tipu"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Notiek piezīmju iegūšana...",
- "NOT_AVAILABLE": "Šai kontaktpersonai nav izveidota neviena piezīme",
- "HEADER": {
- "TITLE": "Piezīmes"
- },
- "LIST": {
- "LABEL": "pievienoja piezīmi"
- },
- "ADD": {
- "BUTTON": "Pievienot",
- "PLACEHOLDER": "Pievienot piezīmi",
- "TITLE": "Shift + Enter, lai izveidotu piezīmi"
- },
- "CONTENT_HEADER": {
- "DELETE": "Dzēst piezīmi"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Darbības"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "piezīmes",
- "PILL_BUTTON_EVENTS": "notikumi",
- "PILL_BUTTON_CONVO": "sarunas"
+ "SOCIAL_PROFILES": "Sociālie Profili"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Pievienot īpašības",
"BUTTON": "Pievienot pielāgotu īpašību",
- "NOT_AVAILABLE": "Šai kontaktpersonai nav pieejamas pielāgotas īpašības.",
"COPY_SUCCESSFUL": "Veiksmīgi nokopēts uz clipboard",
+ "SHOW_MORE": "Rādīt visus atribūtus",
+ "SHOW_LESS": "Rādīt mazāk atribūtu",
"ACTIONS": {
"COPY": "Kopēt īpašību",
"DELETE": "Dzēst īpašību",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Kopsavilkums",
- "DELETE_WARNING": "Kontaktpersona %{primaryContactName} tiks dzēsta.",
- "ATTRIBUTE_WARNING": "Kontaktpersonas %{primaryContactName} informācija tiks kopēta uz %{parentContactName}."
+ "DELETE_WARNING": "Kontaktpersona {primaryContactName} tiks dzēsta.",
+ "ATTRIBUTE_WARNING": "Kontaktpersonas {primaryContactName} informācija tiks kopēta uz {parentContactName}."
},
"SEARCH": {
- "ERROR": "KĻŪDAS_PAZIŅOJUMS"
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu, vēlāk mēģiniet vēlreiz."
},
"FORM": {
"SUBMIT": " Apvienot kontaktpersonas",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi apvienota",
"ERROR_MESSAGE": "Nevarēja apvienot kontaktpersonas, mēģiniet vēlreiz!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "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",
+ "BLOCK_CONTACT": "Bloķēt kontaktpersonu",
+ "UNBLOCK_CONTACT": "Atbloķēt kontaktpersonu",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontaktpersonas"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Pievienot kontaktpersonu",
+ "EXPORT_CONTACT": "Eksportēt kontaktpersonas",
+ "IMPORT_CONTACT": "Importēt kontaktpersonas",
+ "SAVE_CONTACT": "Saglabāt kontaktpersonu",
+ "EMAIL_ADDRESS_DUPLICATE": "Šī e-pasta adrese tiek izmantota citai kontaktpersonai.",
+ "PHONE_NUMBER_DUPLICATE": "Šis tālruņa numurs tiek izmantots citai kontaktpersonai.",
+ "SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi saglabāta",
+ "ERROR_MESSAGE": "Nevar saglabāt kontaktpersonu. Lūdzu, vēlāk mēģiniet vēlreiz."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "Šī kontaktpersona ir veiksmīgi bloķēta",
+ "BLOCK_ERROR_MESSAGE": "Nevar bloķēt kontaktpersonu. Lūdzu, vēlāk mēģiniet vēlreiz.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Šī kontaktpersona ir veiksmīgi atbloķēta",
+ "UNBLOCK_ERROR_MESSAGE": "Nevar atbloķēt kontaktpersonu. Lūdzu, vēlāk mēģiniet vēlreiz.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Importēt kontaktpersonas",
+ "DESCRIPTION": "Importēt kontaktpersonas, izmantojot CSV failu.",
+ "DOWNLOAD_LABEL": "Lejupielādēt csv paraugu.",
+ "LABEL": "CSV Fails:",
+ "CHOOSE_FILE": "Izvēlēties failu",
+ "CHANGE": "Mainīt",
+ "CANCEL": "Atcelt",
+ "IMPORT": "Importēt",
+ "SUCCESS_MESSAGE": "Kad importēšana būs pabeigta, jūs saņemsiet paziņojumu pa e-pastu.",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Eksportēt kontaktpersonas",
+ "DESCRIPTION": "Ātri eksportējiet csv failu ar visaptverošu informāciju par jūsu kontaktpersonām",
+ "CONFIRM": "Eksportēt",
+ "SUCCESS_MESSAGE": "Notiek eksportēšana, Jūs saņemsit paziņojumu pa e-pastu, kad eksporta fails būs gatavs lejupielādei.",
+ "ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
+ },
+ "SORT_BY": {
+ "LABEL": "Kārtot pēc",
+ "OPTIONS": {
+ "NAME": "Nosaukums",
+ "EMAIL": "E-pasts",
+ "PHONE_NUMBER": "Telefona numurs",
+ "COMPANY": "Uzņēmums",
+ "COUNTRY": "Valsts",
+ "CITY": "Pilsēta",
+ "LAST_ACTIVITY": "Pēdējā darbība",
+ "CREATED_AT": "Izveidots plkst"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Šķirošana",
+ "OPTIONS": {
+ "ASCENDING": "Augoša",
+ "DESCENDING": "Dilstoša"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Vai vēlaties saglabāt šo filtru?",
+ "CONFIRM": "Saglabāt filtru",
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Ievadiet filtra nosaukumu",
+ "ERROR": "Ievadiet derīgu nosaukumu",
+ "SUCCESS_MESSAGE": "Filtrs ir veiksmīgi saglabāts",
+ "ERROR_MESSAGE": "Nevar saglabāt filtru. Lūdzu, vēlāk mēģiniet vēlreiz."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Apstiprināt Dzēšanu",
+ "DESCRIPTION": "Vai tiešām vēlaties dzēst šo filtru?",
+ "CONFIRM": "Jā, Dzēst",
+ "CANCEL": "Nē, Atcelt",
+ "SUCCESS_MESSAGE": "Filtrs ir veiksmīgi izdzēsts",
+ "ERROR_MESSAGE": "Nevar izdzēst filtru. Lūdzu, vēlāk mēģiniet vēlreiz."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Rāda {startItem} - {endItem} no {totalItems} kontaktpersonām"
+ },
+ "FILTER": {
+ "NAME": "Nosaukums",
+ "EMAIL": "E-pasts",
+ "PHONE_NUMBER": "Telefona numurs",
+ "IDENTIFIER": "Identifikators",
+ "COUNTRY": "Valsts",
+ "CITY": "Pilsēta",
+ "COMPANY": "Uzņēmums",
+ "CREATED_AT": "Izveidots plkst",
+ "LAST_ACTIVITY": "Pēdējā darbība",
+ "REFERER_LINK": "Atsauces saite",
+ "BLOCKED": "Bloķēts",
+ "BLOCKED_TRUE": "Patiesi",
+ "BLOCKED_FALSE": "Nepatiesi",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Notīrīt filtrus",
+ "UPDATE_SEGMENT": "Atjaunināt segmentu",
+ "APPLY_FILTERS": "Lietot filtrus",
+ "ADD_FILTER": "Pievienot filtru"
+ },
+ "TITLE": "Filtrēt kontaktpersonas",
+ "EDIT_SEGMENT": "Rediģēt segmentu",
+ "SEGMENT": {
+ "LABEL": "Segmenta nosaukums",
+ "INPUT_PLACEHOLDER": "Ievadiet segmenta nosaukumu"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} papildu filtri",
+ "CLEAR_FILTERS": "Notīrīt filtrus"
+ }
+ },
+ "CARD": {
+ "OF": "no",
+ "VIEW_DETAILS": "Skatīt detalizētu informāciju",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Rediģēt kontaktinformāciju",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Ievadiet vārdu"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Ievadiet uzvārdu"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Ievadiet e-pasta adresi",
+ "DUPLICATE": "Šī e-pasta adrese tiek izmantota citai kontaktpersonai."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Ievadiet tālruņa numuru",
+ "DUPLICATE": "Šis tālruņa numurs tiek izmantots citai kontaktpersonai."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Ievadiet pilsētas nosaukumu"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Izvēlieties valsti"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Ievadiet biogrāfiju"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Ievadiet uzņēmuma nosaukumu"
+ }
+ },
+ "UPDATE_BUTTON": "Atjaunināt kontaktpersonu",
+ "SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi atjaunināta",
+ "ERROR_MESSAGE": "Nevar atjaunināt kontaktpersonu. Lūdzu, vēlāk mēģiniet vēlreiz."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Rediģēt sociālās saites",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Pievienot Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Pievienot Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Pievienot Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Pievienot LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Pievienot Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Izveidots {date}",
+ "LAST_ACTIVITY": "Pēdējā aktivitāte {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Neatgriezeniski dzēst šo kontaktpersonu. Šī darbība ir neatgriezeniska",
+ "DELETE_CONTACT": "Dzēst kontaktpersonu",
+ "DELETE_DIALOG": {
+ "TITLE": "Apstiprināt Dzēšanu",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Jā, Dzēst",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi izdzēsta",
+ "ERROR_MESSAGE": "Nevarēja izdzēst kontaktpersonu. Lūdzu, vēlāk pamēģiniet vēlreiz."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Nevar augšupielādēt avataru. Lūdzu, vēlāk mēģiniet vēlreiz.",
+ "SUCCESS_MESSAGE": "Avatars ir veiksmīgi augšupielādēts"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatārs ir veiksmīgi izdzēsts",
+ "ERROR_MESSAGE": "Nevarēja izdzēst avataru. Lūdzu, vēlāk mēģiniet vēlreiz."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atribūti",
+ "HISTORY": "Vēsture",
+ "NOTES": "Piezīmes",
+ "MERGE": "Apvienot"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Ar šo kontaktpersonu nav saistītas iepriekšējās sarunas"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Meklēt atribūtus",
+ "UNUSED_ATTRIBUTES": "{count} Izmantoti atribūti | {count} Neizmantoti atribūti",
+ "EMPTY_STATE": "Šajā kontā nav pieejami pielāgoti kontaktpersonu atribūti. Jūs varat iestatījumos izveidot pielāgotu atribūtu.",
+ "YES": "Jā",
+ "NO": "Nē",
+ "TRIGGER": {
+ "SELECT": "Izvēlieties vērtību",
+ "INPUT": "Ievadiet vērtību"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Nederīgs numurs",
+ "REQUIRED": "Nepieciešama derīga vērtība",
+ "INVALID_INPUT": "Nederīga ievade",
+ "INVALID_URL": "Nederīgs URL",
+ "INVALID_DATE": "Nederīgs datums"
+ },
+ "NO_ATTRIBUTES": "Īpašības nav atrastas",
+ "API": {
+ "SUCCESS_MESSAGE": "Īpašība ir veiksmīgi atjaunināta",
+ "DELETE_SUCCESS_MESSAGE": "Īpašība ir veiksmīgi izdzēsta",
+ "UPDATE_ERROR": "Nevar atjaunināt īpašību. Lūdzu, pamēģiniet vēlāk vēlreiz",
+ "DELETE_ERROR": "Nevar izdzēst īpašību. Lūdzu, pamēģiniet vēlāk vēlreiz"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Apvienot kontaktu",
+ "DESCRIPTION": "Apvienot divus profilus vienā, iekļaujot visus atribūtus un sarunas. Konfliktu gadījumā primārās kontaktpersonas atribūtiem būs prioritāte.",
+ "PRIMARY": "Primārā kontaktpersona",
+ "PRIMARY_HELP_LABEL": "Tiks saglabāts",
+ "PRIMARY_REQUIRED_ERROR": "Pirms turpināt, lūdzu, atlasiet kontaktpersonu, ar kuru apvienot",
+ "PARENT": "Tiks apvienots",
+ "PARENT_HELP_LABEL": "Jādzēš",
+ "EMPTY_STATE": "Netika atrasta neviena kontaktpersona",
+ "PLACEHOLDER": "Meklēt primāro kontaktpersonu",
+ "SEARCH_PLACEHOLDER": "Meklēt kontaktpersonu",
+ "SEARCH_ERROR_MESSAGE": "Radās kļūda meklējot kontaktpersonas. Lūdzu, vēlāk mēģiniet vēlreiz.",
+ "SUCCESS_MESSAGE": "Kontaktpersona ir veiksmīgi apvienota",
+ "ERROR_MESSAGE": "Nevarēja apvienot kontaktpersonas, mēģiniet vēlreiz!",
+ "IS_SEARCHING": "Meklēšana...",
+ "BUTTONS": {
+ "CANCEL": "Atcelt",
+ "CONFIRM": "Apvienot kontaktu"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Pievienot piezīmi",
+ "WROTE": "rakstīja",
+ "YOU": "Jūs",
+ "SAVE": "Saglabāt piezīmi",
+ "ADD_NOTE": "Add contact note",
+ "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ņā.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Šajā kontā nav atrasta neviena kontaktpersona",
+ "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 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Ielādēt vairāk"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Piešķirt Etiķetes",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etiķetes ir veiksmīgi piešķirtas.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "Atlasīti {count}",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Dzēst",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Dzēst kontaktpersonu"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Mēs nevarējām pabeigt meklēšanu. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Apskatīt",
+ "SUCCESS_MESSAGE": "Ziņa veiksmīgi nosūtīta!",
+ "ERROR_MESSAGE": "Veidojot sarunu, radās kļūda. Lūdzu, vēlāk mēģiniet vēlreiz.",
+ "NO_INBOX_ALERT": "Nav pieejamas iesūtnes, lai sāktu sarunu ar šo kontaktpersonu.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "Kam:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Notiek kontaktpersonas izveide..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Izmantojot:",
+ "BUTTON": "Rādīt iesūtnes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Tēma :",
+ "SUBJECT_PLACEHOLDER": "Ievadiet šeit sava e-pasta tēmu",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Rakstiet savu ziņojumu šeit..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Izvēlieties veidni",
+ "SEARCH_PLACEHOLDER": "Meklēt veidnes",
+ "EMPTY_STATE": "Nav atrasta neviena veidne",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp veidne: {templateName}",
+ "VARIABLES": "Mainīgie",
+ "BACK": "Atgriezties",
+ "SEND_MESSAGE": "Sūtīt ziņojumu"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Izvēlieties veidni",
+ "SEARCH_PLACEHOLDER": "Meklēt veidnes",
+ "EMPTY_STATE": "Nav atrasta neviena veidne",
+ "TEMPLATE_PARSER": {
+ "BACK": "Atgriezties",
+ "SEND_MESSAGE": "Sūtīt ziņojumu"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Izmest",
+ "SEND": "Sūtīt ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/contactFilters.json b/app/javascript/dashboard/i18n/locale/lv/contactFilters.json
index 51749df37..ebfb7d407 100644
--- a/app/javascript/dashboard/i18n/locale/lv/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/lv/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Ir mazāks par",
"days_before": "Ir x dienas pirms"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nepieciešama vērtība"
+ },
"ATTRIBUTES": {
"NAME": "Nosaukums",
"EMAIL": "E-pasts",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Izvēles rūtiņa",
"CREATED_AT": "Izveidots",
"LAST_ACTIVITY": "Pēdējās Darbības",
- "REFERER_LINK": "Atsauces sniedzēja saite"
+ "REFERER_LINK": "Atsauces sniedzēja saite",
+ "BLOCKED": "Bloķēts",
+ "LABELS": "Etiķetes"
},
"GROUPS": {
"STANDARD_FILTERS": "Standarta Filtri",
diff --git a/app/javascript/dashboard/i18n/locale/lv/contentTemplates.json b/app/javascript/dashboard/i18n/locale/lv/contentTemplates.json
new file mode 100644
index 000000000..1fd0df160
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Meklēt Veidnes",
+ "NO_TEMPLATES_FOUND": "Veidnes nav atrastas",
+ "NO_CONTENT": "Nav satura",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Valoda",
+ "TEMPLATE_BODY": "Veidnes Pamatteksts",
+ "CATEGORY": "Kategorija"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Teksts"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Mainīgie",
+ "LANGUAGE": "Valoda",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Ievadiet {variable} vērtību",
+ "GO_BACK_LABEL": "Atgriezties",
+ "SEND_MESSAGE_LABEL": "Sūtīt Ziņojumu",
+ "FORM_ERROR_MESSAGE": "Lūdzu, pirms nosūtīšanas aizpildiet visus mainīgos",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Atpakaļ",
+ "SEND_MESSAGE_BUTTON": "Sūtīt Ziņojumu"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/conversation.json b/app/javascript/dashboard/i18n/locale/lv/conversation.json
index 363373426..8d1e4ed8e 100644
--- a/app/javascript/dashboard/i18n/locale/lv/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/lv/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " lai sāktu",
"NO_INBOX_AGENT": "Ak, vai! Izskatās, ka Jūs neesat nevienas iesūtnes dalībnieks. Lūdzu, sazinieties ar savu administratoru",
"SEARCH_MESSAGES": "Meklēt ziņojumus sarunās",
+ "VIEW_ORIGINAL": "Skatīt oriģinālu",
+ "VIEW_TRANSLATED": "Skatīt tulkoto",
"EMPTY_STATE": {
"CMD_BAR": "lai atvērtu komandu izvēlni",
"KEYBOARD_SHORTCUTS": "lai skatītu klaviatūras īsinājumtaustiņus"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Notiek sarunu ielāde",
"CANNOT_REPLY": "Jūs nevarat atbildēt, jo",
"24_HOURS_WINDOW": "24 stundu ziņojuma loga ierobežojums",
+ "48_HOURS_WINDOW": "48 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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Nezināms Fails",
- "SAVE_CONTACT": "Saglabāt",
+ "SAVE_CONTACT": "Saglabāt Kontaktpersonu",
+ "NO_CONTENT": "Nav satura, ko parādīt",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} kopīgoja kontaktpersonu",
+ "LOCATION": "{sender} kopīgoja atrašanās vietu",
+ "FILE": "{sender} kopīgoja failu",
+ "MEETING": "{sender} ir sācis sapulci"
+ },
"UPLOADING_ATTACHMENTS": "Notiek pielikumu augšupielāde...",
"REPLIED_TO_STORY": "Atbildēja uz Jūsu stāstu",
- "UNSUPPORTED_MESSAGE": "Šis ziņojums netiek atbalstīts.",
+ "UNSUPPORTED_MESSAGE": "Šis ziņojums netiek atbalstīts. Šo ziņojumu varat apskatīt Facebook/Instagram lietotnē.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Šis ziņojums netiek atbalstīts. Šo ziņojumu Jūs varat apskatīt lietotnē Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Šis ziņojums netiek atbalstīts. Šo ziņojumu Jūs varat apskatīt lietotnē Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Ziņojums veiksmīgi izdzēsts",
"FAIL_DELETE_MESSSAGE": "Nevarēja izdzēst ziņojumu! Mēģiniet vēlreiz",
"NO_RESPONSE": "Nav atbildes",
+ "RESPONSE": "Atbilde",
"RATING_TITLE": "Vērtējums",
"FEEDBACK_TITLE": "Atsauksmes",
"REPLY_MESSAGE_NOT_FOUND": "Ziņa nav pieejama",
"CARD": {
"SHOW_LABELS": "Rādīt etiķetes",
- "HIDE_LABELS": "Slēpt etiķetes"
+ "HIDE_LABELS": "Slēpt etiķetes",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"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",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Atlikts līdz",
"SNOOZED_UNTIL_TOMORROW": "Atlikts līdz rītdienai",
"SNOOZED_UNTIL_NEXT_WEEK": "Atlikts līdz nākamajai nedēļai",
- "SNOOZED_UNTIL_NEXT_REPLY": "Atlikts līdz nākamajai atbildei"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Atlikts līdz nākamajai atbildei",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "nokavēti",
+ "DUE": "jābeidz"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Atzīmēt kā neapstiprinātu",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Nākamā nedēļa"
}
},
+ "MENTION": {
+ "AGENTS": "Aģenti",
+ "TEAMS": "Komandas"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Atlikt līdz",
"APPLY": "Atlikt",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nav",
"INPUT_PLACEHOLDER": "Izvēlieties prioritāti",
"NO_RESULTS": "Nav atrasts",
- "SUCCESSFUL": "Sarunas Id %{conversationId} prioritāte nomainīta uz %{priority}",
+ "SUCCESSFUL": "Sarunas id {conversationId} prioritāte nomainīta uz {priority}",
"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",
"MARK_AS_UNREAD": "Atzīmēt kā nelasītu",
+ "MARK_AS_READ": "Atzīmēt kā lasītu",
"REOPEN": "Atkārtoti atvērt sarunu",
"SNOOZE": {
"TITLE": "Atlikt",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Piešķirt etiķeti",
"AGENTS_LOADING": "Notiek aģentu ielāde...",
"ASSIGN_TEAM": "Piešķirt komandu",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Sarunas ID %{conversationId} piešķirts \"%{agentName}\"",
+ "SUCCESFUL": "Sarunas id {conversationId} piešķirts \"{agentName}\"",
"FAILED": "Nevarēja piešķirt aģentu. Lūdzu, mēģiniet vēlreiz."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Sarunai ar ID %{conversationId} tika piešķirta etiķete #%{labelName}",
+ "SUCCESFUL": "Sarunai ar id {conversationId} piešķirta etiķete #{labelName}",
"FAILED": "Nevarēja piešķirt etiķeti. Lūdzu, mēģiniet vēlreiz."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Sarunai ar ID %{conversationId} tika piešķirta komanda \"%{team}\"",
+ "SUCCESFUL": "Sarunai ar id {conversationId} tika piešķirta komanda \"{team}\"",
"FAILED": "Nevarēja piešķirt komandu. Lūdzu, mēģiniet vēlreiz."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Atspējot parakstu",
"MSG_INPUT": "Shift + Enter, lai pārietu uz jaunu rindu. Sāciet ar '/' lai izvēlētos sagatavotu atbildi.",
"PRIVATE_MSG_INPUT": "Shift + Enter, lai pārietu uz jaunu rindu. Ziņojums būs redzams tikai Aģentiem",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Ziņojuma paraksts nav nokonfigurēts. Lūdzu, nokonfigurējiet to profila iestatījumos.",
- "CLICK_HERE": "Noklikšķiniet šeit, lai atjauninātu"
+ "COPILOT_MSG_INPUT": "Dodiet copilota papildu ierosinājumus vai uzdodiet jebko citu... Nospiediet Enter, lai nosūtītu turpinājumu",
+ "CLICK_HERE": "Noklikšķiniet šeit, lai atjauninātu",
+ "WHATSAPP_TEMPLATES": "WhatsApp Veidnes"
},
"REPLYBOX": {
"REPLY": "Atbildēt",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Lasīt vairāk",
"DISMISS_REPLY": "Noraidīt atbildi",
"REPLYING_TO": "Atbildot uz:",
- "TIP_FORMAT_ICON": "Rādīt bagātinātā teksta redaktoru",
"TIP_EMOJI_ICON": "Rādīt emocijzīmju atlasītāju",
"TIP_ATTACH_ICON": "Pievienot failus",
"TIP_AUDIORECORDER_ICON": "Ierakstīt audio",
"TIP_AUDIORECORDER_PERMISSION": "Atļaut piekļuvi pie audio",
"TIP_AUDIORECORDER_ERROR": "Nevarēja atvērt audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Velciet un nometiet šeit, lai pievienotu",
"START_AUDIO_RECORDING": "Sākt audio ierakstīšanu",
"STOP_AUDIO_RECORDING": "Apturēt audio ierakstīšanu",
- "": "",
+ "COPILOT_THINKING": "Copilot domā",
"EMAIL_HEAD": {
"TO": "KAM",
"ADD_BCC": "Pievienot bcc",
@@ -176,6 +257,13 @@
"YES": "Nosūtīt",
"CANCEL": "Atcelt"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privāta Piezīme: Redzama tikai Jums un Jūsu komandai",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nevar nosūtīt šo ziņojumu. Lūdzu, vēlāk mēģiniet vēlreiz",
"SENT_BY": "Sūtīja:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nevarēja nosūtīt ziņojumu! Mēģiniet vēlreiz",
"TRY_AGAIN": "mēģināt vēlreiz",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Dzēst",
"CANCEL": "Atcelt"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontaktpersona",
+ "COPILOT": "Kopilots"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Atcelt",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Atcelt",
"SEND_EMAIL_SUCCESS": "Sarunas transkripts tika veiksmīgi nosūtīts",
"SEND_EMAIL_ERROR": "Radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Nosūtīt transkriptu klientam",
"SEND_TO_AGENT": "Nosūtīt transkriptu piešķirtajam aģentam",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Sveicināti 👋, Laipni lūdzam %{installationName}!",
- "DESCRIPTION": "Paldies, ka reģistrējāties. Mēs vēlamies, lai Jūs gūtu maksimālu labumu no %{installationName}. Šeit ir dažas lietas, ko varat darīt %{installationName} lai Jūsu pieredze būtu patīkamāka.",
+ "TITLE": "Sveicināti 👋, Laipni lūdzam {installationName}!",
+ "DESCRIPTION": "Paldies, ka reģistrējāties. Mēs vēlamies, lai Jūs gūtu maksimālu labumu no {installationName}. Šeit ir dažas lietas, ko varat darīt {installationName} lai Jūsu pieredze būtu patīkamāka.",
+ "GREETING_MORNING": "👋 Labrīt, {name}. Laipni lūdzam {installationName}.",
+ "GREETING_AFTERNOON": "👋 Labdien, {name}. Laipni lūdzam {installationName}.",
+ "GREETING_EVENING": "👋 Labvakar, {name}. Laipni lūdzam {installationName}.",
"READ_LATEST_UPDATES": "Izlasīt mūsu aktuālākos jaunumus",
"ALL_CONVERSATION": {
"TITLE": "Visas Jūsu sarunas vienuviet",
- "DESCRIPTION": "Skatīt visas sarunas ar klientiem vienā informācijas panelī. Jūs varat filtrēt sarunas pēc ienākošā kanāla, etiķetes un statusa."
+ "DESCRIPTION": "Skatīt visas sarunas ar klientiem vienā informācijas panelī. Jūs varat filtrēt sarunas pēc ienākošā kanāla, etiķetes un statusa.",
+ "NEW_LINK": "Noklikšķiniet šeit, lai izveidotu iesūtni"
},
"TEAM_MEMBERS": {
"TITLE": "Uzaicināt savas komandas biedrus",
"DESCRIPTION": "Tā kā Jūs gatavojaties runāt ar savu klientu, piesaistiet savus komandas biedrus, lai viņi Jums palīdzētu. Jūs varat uzaicināt savus komandas biedrus, pievienojot viņu e-pasta adreses aģentu sarakstam.",
"NEW_LINK": "Noklikšķiniet šeit, lai uzaicinātu komandas biedru"
},
- "INBOXES": {
- "TITLE": "Pievienot Iesūtnes",
- "DESCRIPTION": "Pievienot dažādus kanālus, caur kuriem Jūsu klienti ar Jums runās. Tie var būt tīmekļa vietņu tiešraides tērzētavas, Jūsu Facebook vai Twitter lapa, vai pat jūsu WhatsApp numurs.",
- "NEW_LINK": "Noklikšķiniet šeit, lai izveidotu iesūtni"
- },
"LABELS": {
"TITLE": "Organizēt sarunas ar etiķetēm",
"DESCRIPTION": "Etiķetes nodrošina vienkāršāku veidu, kā klasificēt sarunu. Izveidojiet dažas etiķetes, piemēram, #atbalsta-pieprasījums, #norēķinu-jautājums utt., lai vēlāk varētu tās izmantot sarunas laikā.",
"NEW_LINK": "Noklikšķiniet šeit, lai izveidotu atzīmes"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Izveidot sagatavotas atbildes",
+ "DESCRIPTION": "Iepriekš sagatavotas atbildes veidnes palīdz ātri reaģēt uz sarunu. Aģenti var izmantot '/' rakstzīmi, kurai seko kods, lai ievietotu atbildi.",
+ "NEW_LINK": "Noklikšķiniet šeit, lai izveidotu sagatavotu atbildi"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Apskatīt visu",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Gaida",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Izveidot Īpašību",
+ "NO_RECORDS_FOUND": "Īpašības nav atrastas",
"UPDATE": {
"SUCCESS": "Īpašība ir veiksmīgi atjaunināta",
"ERROR": "Nevar atjaunināt īpašību. Lūdzu, pamēģiniet vēlāk vēlreiz"
@@ -297,17 +449,18 @@
"TO": "Kam",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Tēma"
+ "SUBJECT": "Tēma",
+ "EXPAND": "Izvērst e-pastu"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Piedalās",
"SIDEBAR_TITLE": "Sarunas dalībnieki",
"NO_RECORDS_FOUND": "Nav atrasts",
"ADD_PARTICIPANTS": "Izvēlieties dalībniekus",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} citi",
- "REMANING_PARTICIPANT_TEXT": "+%{count} cits",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} cilvēki piedalās.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} persona piedalās.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} citi",
+ "REMANING_PARTICIPANT_TEXT": "+{count} cits",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} cilvēki piedalās.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} persona piedalās.",
"NO_PARTICIPANTS_TEXT": "Neviens nepiedalās!",
"WATCH_CONVERSATION": "Pievienoties sarunai",
"YOU_ARE_WATCHING": "Jūs piedalāties",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Oriģinālais Saturs",
"TRANSLATED_CONTENT": "Tulkotais Saturs",
"NO_TRANSLATIONS_AVAILABLE": "Šim saturam nav pieejami tulkojumi"
+ },
+ "TYPING": {
+ "ONE": "{user} raksta",
+ "TWO": "{user} un {secondUser} raksta",
+ "MULTIPLE": "{user} un {count} citi raksta"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Pamēģiniet"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Nevar lejupielādēt pielikumu. Lūdzu, mēģiniet vēlreiz"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/customRole.json b/app/javascript/dashboard/i18n/locale/lv/customRole.json
new file mode 100644
index 000000000..61e1fb05c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Pielāgotas lomas",
+ "LEARN_MORE": "Uzzināt vairāk par pielāgotām lomām",
+ "DESCRIPTION": "Pielāgotas lomas ir lomas, kuras izveido konta īpašnieks vai administrators. Šīs lomas var piešķirt aģentiem, lai definētu viņu piekļuvi un atļaujas kontā. Pielāgotas lomas var izveidot ar īpašām atļaujām un piekļuves līmeņiem, lai tie atbilstu organizācijas prasībām.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Pievienot pielāgotu lomu",
+ "LOADING": "Notiek pielāgotu lomu iegūšana...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu.",
+ "PAYWALL": {
+ "TITLE": "Pārejiet uz maksas versiju, lai izveidotu pielāgotas lomas",
+ "AVAILABLE_ON": "Pielāgotas lomas līdzeklis ir pieejams tikai biznesa un uzņēmuma plānos.",
+ "UPGRADE_PROMPT": "Pārejiet uz maksas versiju, lai iegūtu piekļuvi pie papildu funkcijām. Piemēram: komandas pārvaldībai, automatizācijai, pielāgotiem atribūtiem, un citām.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Pielāgotu lomu funkcija ir pieejama tikai maksas plānos.",
+ "UPGRADE_PROMPT": "Pārejiet uz maksas versiju, lai piekļūtu papildu funkcijām. Piemēram: audita žurnāliem, aģentu kapacitātei, un citām.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ },
+ "LIST": {
+ "404": "Šajā kontā nav pieejamas pielāgotas lomas.",
+ "TITLE": "Pārvaldīt pielāgotas lomas",
+ "DESC": "Pielāgotas lomas ir lomas, kuras izveido konta īpašnieks vai administrators. Šīs lomas var piešķirt aģentiem, lai definētu viņu piekļuvi un atļaujas kontā. Pielāgotas lomas var izveidot ar īpašām atļaujām un piekļuves līmeņiem, lai tie atbilstu organizācijas prasībām.",
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "DESCRIPTION": "Apraksts",
+ "PERMISSIONS": "Atļaujas",
+ "ACTIONS": "Darbības"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Pārvaldīt visas sarunas",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Pārvaldīt nepiešķirtās sarunas un tiem piešķirtās sarunas",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Pārvaldīt iesaistītās sarunas un tiem piešķirtās sarunas",
+ "CONTACT_MANAGE": "Pārvaldīt kontaktpersonas",
+ "REPORT_MANAGE": "Pārvaldīt atskaites",
+ "KNOWLEDGE_BASE_MANAGE": "Pārvaldīt zināšanu bāzi"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Lūdzu, ievadiet vārdu.",
+ "ERROR": "Nepieciešams nosaukums."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Lūdzu, ievadiet aprakstu.",
+ "ERROR": "Nepieciešams apraksts."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Atļaujas",
+ "ERROR": "Nepieciešamas atļaujas."
+ },
+ "CANCEL_BUTTON_TEXT": "Atcelt",
+ "API": {
+ "ERROR_MESSAGE": "Nevarēja izveidot savienojumu ar Woot serveri. Lūdzu mēģiniet vēlreiz."
+ }
+ },
+ "ADD": {
+ "TITLE": "Pievienot pielāgotu lomu",
+ "DESC": " Pielāgotas lomas ļauj izveidot lomas ar īpašām atļaujām un piekļuves līmeņiem, kas atbilst organizācijas prasībām.",
+ "SUBMIT": "Iesniegt",
+ "API": {
+ "SUCCESS_MESSAGE": "Pielāgota loma ir veiksmīgi pievienota."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Rediģēt",
+ "TITLE": "Rediģēt pielāgotu lomu",
+ "DESC": " Pielāgotas lomas ļauj izveidot lomas ar īpašām atļaujām un piekļuves līmeņiem, kas atbilst organizācijas prasībām.",
+ "SUBMIT": "Atjaunināt",
+ "API": {
+ "SUCCESS_MESSAGE": "Pielāgota loma ir veiksmīgi atjaunināta."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Dzēst",
+ "API": {
+ "SUCCESS_MESSAGE": "Pielāgota loma ir veiksmīgi izdzēsta.",
+ "ERROR_MESSAGE": "Nevarēja izveidot savienojumu ar Woot serveri. Lūdzu mēģiniet vēlreiz."
+ },
+ "CONFIRM": {
+ "TITLE": "Apstiprināt dzēšanu",
+ "MESSAGE": "Vai vēlaties izdzēst ",
+ "YES": "Jā, dzēst ",
+ "NO": "Nē, paturēt "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/datePicker.json b/app/javascript/dashboard/i18n/locale/lv/datePicker.json
new file mode 100644
index 000000000..31a6bdb14
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Pielietot",
+ "CLEAR_BUTTON": "Notīrīt",
+ "DATE_RANGE_INPUT": {
+ "START": "Sākuma Datums",
+ "END": "Beigu Datums"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATUMU DIAPAZONS",
+ "LAST_7_DAYS": "Pēdējās 7 dienas",
+ "LAST_30_DAYS": "Pēdējās 30 dienas",
+ "LAST_3_MONTHS": "Pēdējie 3 mēneši",
+ "LAST_6_MONTHS": "Pēdējie 6 mēneši",
+ "LAST_YEAR": "Pagājušais gads",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Pielāgots datumu diapazons"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/general.json b/app/javascript/dashboard/i18n/locale/lv/general.json
new file mode 100644
index 000000000..2cf4e0261
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Rāda {firstIndex}-{lastIndex} no {totalCount} vienībām",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Meklēt",
+ "EMPTY_STATE": "Nav atrasts"
+ },
+ "CLOSE": "Aizvērt",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Izmest",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Jā",
+ "NO": "Nē"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/generalSettings.json b/app/javascript/dashboard/i18n/locale/lv/generalSettings.json
index 3f1429b98..e327cd11c 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": "You have exceeded the agent limit. Your plan only allows {allowedAgents} agents.",
+ "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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Tagad Jūs varat saņemt e-pasta ziņojumus savā pielāgotajā domēnā."
}
},
- "UPDATE_CHATWOOT": "Ir pieejams Chatwoot %{latestChatwootVersion} jauninājums. Lūdzu, atjauniniet savu programmatūru.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Nospiediet enter, lai izvēlētos",
"ENTER_TO_REMOVE": "Nospiediet enter, lai noņemtu",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Izvēlieties vienu",
"SELECT": "Izvēlieties"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Saruna Piešķirta",
"assigned_conversation_new_message": "Jauns ziņojums",
"participating_conversation_new_message": "Jauns ziņojums",
- "conversation_mention": "Pieminēt"
+ "conversation_mention": "Pieminēt",
+ "sla_missed_first_response": "SLA Nokavēts",
+ "sla_missed_next_response": "SLA Nokavēts",
+ "sla_missed_resolution": "SLA Nokavēts"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Bezsaistē"
+ "OFFLINE": "Bezsaistē",
+ "RECONNECTING": "Notiek savienojuma atjaunošana...",
+ "RECONNECT_SUCCESS": "Atkārtoti izveidots savienojums"
},
"BUTTON": {
"REFRESH": "Atjaunot"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Meklēt vai pāriet uz",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Vispārēji",
"REPORTS": "Pārskati",
"CONVERSATION": "Saruna",
+ "BULK_ACTIONS": "Lielapjoma Darbības",
"CHANGE_ASSIGNEE": "Mainīt Pilnvaroto",
"CHANGE_PRIORITY": "Mainīt prioritāti",
"CHANGE_TEAM": "Mainīt Komandu",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Līdz rītdienai",
"UNTIL_NEXT_MONTH": "Līdz nākamajam mēnesim",
"AN_HOUR_FROM_NOW": "Līdz stundai, no šī brīža",
- "CUSTOM": "Pielāgot...",
+ "UNTIL_CUSTOM_TIME": "Pielāgot...",
"CHANGE_APPEARANCE": "Mainīt Izskatu",
"LIGHT_MODE": "Gaišs",
"DARK_MODE": "Tumšs",
diff --git a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
index 081354415..818994fd0 100644
--- a/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/lv/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Palīdzības centrs",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Izveidojiet saviem klientiem pašapkalpošanās palīdzības centru portālus. Palīdziet viņiem ātri atrast atbildes, negaidot. Racionalizējiet pieprasījumus, palieliniet aģentu efektivitāti un paaugstiniet klientu atbalstu.",
+ "CREATE_PORTAL_BUTTON": "Izveidot Portālu"
+ },
"HEADER": {
"FILTER": "Filtrēt pēc",
"SORT": "Kārtot pēc",
@@ -41,6 +46,7 @@
"UPLOADING": "Notiek Augšupielāde...",
"SUCCESS": "Attēls ir veiksmīgi augšupielādēts",
"ERROR": "Augšupielādējot attēlu, radās kļūda",
+ "UN_AUTHORIZED_ERROR": "Jums nav tiesību augšupielādēt attēlus",
"ERROR_FILE_SIZE": "Attēla izmēram ir jābūt mazākam par {size}MB",
"ERROR_FILE_FORMAT": "Attēla formātam ir jābūt jpg, jpeg vai png",
"ERROR_FILE_DIMENSIONS": "Attēla izmēram ir jābūt mazākam par 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Bez kategorijas",
- "SEARCH_RESULTS": "Meklēšanas rezultāti vaicājumam %{query}",
+ "SEARCH_RESULTS": "Meklēšanas rezultāti vaicājumam {query}",
"EMPTY_TEXT": "Meklēt rakstus, ko ievietot atbildēs.",
"SEARCH_LOADER": "Meklēšana...",
"INSERT_ARTICLE": "Ievietot",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portāls veiksmīgi izdzēsts",
"DELETE_ERROR": "Dzēšot portālu, radās kļūda"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Palīdzības centra informācija",
- "route": "new_portal_information",
- "body": "Pamatinformācija par portālu",
- "CREATE_BASIC_SETTING_BUTTON": "Izveidot portāla pamatiestatījumus"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Palīdzības centra informācija",
+ "BODY": "Pamatinformācija par portālu"
},
- {
- "title": "Palīdzības centra pielāgošana",
- "route": "portal_customization",
- "body": "Pielāgot portālu",
- "UPDATE_PORTAL_BUTTON": "Atjaunināt portāla iestatījumus"
+ "CUSTOMIZATION": {
+ "TITLE": "Palīdzības centra pielāgošana",
+ "BODY": "Pielāgot portālu"
},
- {
- "title": "Gatavs",
- "route": "portal_finish",
- "body": "Viss ir gatavs!",
- "FINISH": "Pabeigt"
+ "FINISH": {
+ "TITLE": "Gatavs",
+ "BODY": "Viss ir gatavs!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Atpakaļ",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Pielāgots domēns",
"PLACEHOLDER": "Portāla pielāgots domēns",
- "HELP_TEXT": "Pievienot tikai tad, ja vēlaties saviem portāliem izmantot pielāgotu domēnu. Piemēram: %{exampleURL}",
+ "HELP_TEXT": "Pievienot tikai tad, ja vēlaties saviem portāliem izmantot pielāgotu domēnu. Piemēram: {exampleURL}",
"ERROR": "Ievadiet derīgu domēna URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Mājaslapas saite",
"PLACEHOLDER": "Portāla mājaslapas saite",
- "HELP_TEXT": "Saite, ko izmanto lai atgrieztos no portāla uz sākumlapu. Piemēram: %{exampleURL}",
+ "HELP_TEXT": "Saite, ko izmanto lai atgrieztos no portāla uz sākumlapu. Piemēram: {exampleURL}",
"ERROR": "Ievadiet derīgu sākumlapas URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Lokalizācija veiksmīgi noņemta no portāla",
"ERROR_MESSAGE": "Nevar noņemt lokalizāciju no portāla. Mēģiniet vēlreiz."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Raksts ir veiksmīgi arhivēts"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Izstrādājot rakstu, radās kļūda",
+ "SUCCESS": "Raksts izveidots veiksmīgi"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Dzēšot rakstu, radās kļūda"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Lūdzu, pievienojiet raksta virsrakstu un saturu. Tikai tad Jūs varat atjaunināt iestatījumus"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Izmantot portālu kā headless satura pārvaldības sistēmu ar trešās puses front-end framework, izmantojot mūsu API."
}
}
+ },
+ "LOADING": "Notiek ielāde...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} skatījums | {count} skatījumi",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publicēt",
+ "DRAFT": "Melnraksts",
+ "ARCHIVE": "Arhīvs",
+ "TRANSLATE": "Tulkot",
+ "DELETE": "Dzēst"
+ },
+ "STATUS": {
+ "DRAFT": "Melnraksts",
+ "PUBLISHED": "Publicēts",
+ "ARCHIVED": "Arhivēts"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Bez kategorijas"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Visi raksti",
+ "MINE": "Mani",
+ "DRAFT": "Melnraksts",
+ "PUBLISHED": "Publicēts",
+ "ARCHIVED": "Arhivēts"
+ },
+ "CATEGORY": {
+ "ALL": "Visas kategorijas"
+ },
+ "LOCALE": {
+ "ALL": "Visas lokalizācijas"
+ },
+ "NEW_ARTICLE": "Jauns raksts"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Uzrakstīt rakstu",
+ "SUBTITLE": "Uzrakstīt bagātīgu rakstu, sāksim!",
+ "BUTTON_LABEL": "Jauns raksts"
+ },
+ "MINE": {
+ "TITLE": "Jūs neesat uzrakstījis nevienu rakstu",
+ "SUBTITLE": "Visi raksti, kurus jūs uzrakstījāt, tiek attēloti šeit lai ātri tiem varētu piekļūt."
+ },
+ "DRAFT": {
+ "TITLE": "Projektos nav rakstu",
+ "SUBTITLE": "Šeit parādīsies rakstu melnraksti"
+ },
+ "PUBLISHED": {
+ "TITLE": "Nav publicētu rakstu",
+ "SUBTITLE": "Šeit parādīsies publicētie raksti"
+ },
+ "ARCHIVED": {
+ "TITLE": "Arhīvā nav rakstu",
+ "SUBTITLE": "Arhivēti raksti netiek parādīti portālā. Jūs varat to izmantot, lai atzīmētu novecojušas vai neaktuālas lapas"
+ },
+ "CATEGORY": {
+ "TITLE": "Šajā kategorijā nav neviena raksta",
+ "SUBTITLE": "Šīs kategorijas raksti tiks parādīti šeit"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Tulkot",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "Atlasīti {count}",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Tulkot",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publicēt",
+ "DRAFT": "Melnraksts",
+ "ARCHIVE": "Arhīvs",
+ "TRANSLATE": "Tulkot",
+ "MOVE_TO_CATEGORY": "Kategorija",
+ "DELETE": "Dzēst",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Dzēst",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Jauna kategorija",
+ "EDIT_CATEGORY": "Rediģēt kategoriju",
+ "CATEGORIES_COUNT": "{n} kategorija | {n} kategorijas",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Kategorijas ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Kategorijas nav atrastas",
+ "SUBTITLE": "Šeit tiks parādītas kategorijas. Kategoriju var pievienot, noklikšķinot uz pogas \"Jauna kategorija\"."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} raksts | {count} raksti"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija ir veiksmīgi izveidota",
+ "ERROR_MESSAGE": "Nevar izveidot kategoriju"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija ir veiksmīgi atjaunināta",
+ "ERROR_MESSAGE": "Nevar atjaunināt kategoriju"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategorija ir veiksmīgi izdzēsta",
+ "ERROR_MESSAGE": "Nevar izdzēst kategoriju"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Izveidot kategoriju",
+ "EDIT": "Rediģēt kategoriju",
+ "DESCRIPTION": "Rediģējot kategoriju, kategorija tiks atjaunināta publiskajā portālā.",
+ "PORTAL": "Portāls",
+ "LOCALE": "Lokalizācija"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Kategorijas nosaukums",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Kategorijas slug priekš URL",
+ "ERROR": "Nepieciešams slug",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Lūdzu, sniedziet īsu kategorijas aprakstu.",
+ "ERROR": "Nepieciešams apraksts"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Izveidot",
+ "EDIT": "Atjaunināt",
+ "CANCEL": "Atcelt"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Nav pieejama neviena lokalizācija | {n} lokalizācija | {n} lokalizācijas",
+ "NEW_LOCALE_BUTTON_TEXT": "Jauna lokalizācija",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} raksts | {count} raksti",
+ "CATEGORIES_COUNT": "{count} kategorija | {count} kategorijas",
+ "DEFAULT": "Noklusējums",
+ "DRAFT": "Melnraksts",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Padarīt par noklusēto",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Dzēst"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Pievienot jaunu lokalizāciju",
+ "DESCRIPTION": "Izvēlieties valodu, kurā šis raksts tiks rakstīts. Tas tiks pievienots jūsu tulkojumu sarakstam, un vēlāk varēsit pievienot citus.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Izvēlieties lokalizāciju..."
+ },
+ "STATUS": {
+ "LABEL": "Statuss",
+ "OPTIONS": {
+ "LIVE": "Publicēts",
+ "DRAFT": "Melnraksts"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Lokalizācija ir veiksmīgi pievienota",
+ "ERROR_MESSAGE": "Nevar pievienot lokalizāciju. Mēģiniet vēlreiz."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Notiek saglabāšana...",
+ "SAVED": "Saglabāts"
+ },
+ "PREVIEW": "Priekšskatījums",
+ "PUBLISH": "Publicēt",
+ "DRAFT": "Melnraksts",
+ "ARCHIVE": "Arhīvs",
+ "BACK_TO_ARTICLES": "Atpakaļ uz rakstiem"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Papildu īpašības",
+ "UNCATEGORIZED": "Bez kategorijas",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Raksta īpašības",
+ "META_DESCRIPTION": "Meta apraksts",
+ "META_DESCRIPTION_PLACEHOLDER": "Pievienot meta aprakstu",
+ "META_TITLE": "Meta virsraksts",
+ "META_TITLE_PLACEHOLDER": "Pievienot meta virsrakstu",
+ "META_TAGS": "Meta tagi",
+ "META_TAGS_PLACEHOLDER": "Pievienot meta tagus"
+ },
+ "API": {
+ "ERROR": "Saglabājot rakstu, radās kļūda"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Jauns portāls",
+ "PORTALS": "Portāli",
+ "CREATE_PORTAL": "Izveidot un pārvaldīt vairākus portālus",
+ "ARTICLES": "raksti",
+ "DOMAIN": "domēns",
+ "PORTAL_NAME": "Portāla nosaukums"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Izveidot jaunu portālu",
+ "DESCRIPTION": "Piešķiriet savam portālam nosaukumu un izveidojiet lietotājam draudzīgu vietrāža URL. Vēlāk iestatījumos varat modificēt abus.",
+ "CONFIRM_BUTTON_LABEL": "Izveidot",
+ "NAME": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Lietotāja Rokasgrāmata | Chatwoot",
+ "MESSAGE": "Izvēlieties savam portālam nosaukumu.",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "lietotāja rokasgrāmata",
+ "ERROR": "Nepieciešams slug",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logotips",
+ "IMAGE_UPLOAD_ERROR": "Nevarēja augšupielādēt attēlu! Lūdzu, mēģiniet vēlreiz",
+ "IMAGE_UPLOAD_SUCCESS": "Attēls ir veiksmīgi pievienots. Lūdzu, noklikšķiniet uz saglabāt izmaiņas, lai saglabātu logotipu",
+ "IMAGE_DELETE_SUCCESS": "Logotips veiksmīgi izdzēsts",
+ "IMAGE_DELETE_ERROR": "Nevar izdzēst logotipu",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Attēla izmēram ir jābūt mazākam par {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Portāla nosaukums",
+ "ERROR": "Nepieciešams nosaukums"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Virsraksta teksts",
+ "PLACEHOLDER": "Portāla galvenes teksts"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Lapas nosaukums",
+ "PLACEHOLDER": "Portāla lapas nosaukums"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Mājas lapas saite",
+ "PLACEHOLDER": "Portāla mājaslapas saite",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portāla slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Tiešraides tērzēšanas widget",
+ "PLACEHOLDER": "Izvēlieties tiešraides tērzēšanas widget",
+ "HELP_TEXT": "Izvēlieties tiešsaistes tērzēšanas widget, kas tiks parādīts jūsu palīdzības centrā",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Zīmola krāsa"
+ },
+ "SAVE_CHANGES": "Saglabāt izmaiņas"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Pielāgots domēns",
+ "LABEL": "Pielāgots domēns:",
+ "DESCRIPTION": "Jūs varat izvietot savu portālu pielāgotā domēnā. Piemēram, ja jūsu vietne ir yourdomain.com un vēlaties, lai jūsu portāls būtu pieejams vietnē docs.yourdomain.com, vienkārši ievadiet to šajā laukā.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portāla pielāgots domēns",
+ "EDIT_BUTTON": "Rediģēt",
+ "ADD_BUTTON": "Pievienot pielāgoto domēnu",
+ "STATUS": {
+ "LIVE": "Tiešraide",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Pievienot pielāgoto domēnu",
+ "EDIT_HEADER": "Rediģēt pielāgoto domēnu",
+ "ADD_CONFIRM_BUTTON_LABEL": "Pievienot domēnu",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Atjaunināt domēnu",
+ "LABEL": "Pielāgots domēns",
+ "PLACEHOLDER": "Portāla pielāgots domēns",
+ "ERROR": "Nepieciešams pielāgots domēns",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS konfigurācija",
+ "DESCRIPTION": "Piesakieties sava DNS nodrošinātāja kontā un pievienojiet CNAME ierakstu apakšdomēnam, kas norāda uz chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Nosūtīt"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Dzēst {portalName}",
+ "HEADER": "Dzēst portālu",
+ "DESCRIPTION": "Neatgriezeniski dzēst šo portālu. Šī darbība ir neatgriezeniska",
+ "DIALOG": {
+ "HEADER": "Vai tiešām vēlaties dzēst vietni {portalName}?",
+ "DESCRIPTION": "Šī ir pastāvīga darbība, kuru nevar atsaukt.",
+ "CONFIRM_BUTTON_LABEL": "Dzēst"
+ }
+ },
+ "EDIT_CONFIGURATION": "Rediģēt konfigurāciju"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Izskats",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Noņemt"
+ },
+ "SAVE": "Saglabāt izmaiņas"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portāls ir veiksmīgi izveidots",
+ "ERROR_MESSAGE": "Nevar izveidot portālu"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portāls ir veiksmīgi atjaunināts",
+ "ERROR_MESSAGE": "Nevar atjaunināt portālu"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Notiek Augšupielāde...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Atcelt",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Notiek ģenerēšana...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Pabeigts",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/inbox.json b/app/javascript/dashboard/i18n/locale/lv/inbox.json
index 4a824e2df..6c59d958e 100644
--- a/app/javascript/dashboard/i18n/locale/lv/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/lv/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Iesūtne",
+ "TITLE": "Mana Iesūtne",
"DISPLAY_DROPDOWN": "Parādīt",
"LOADING": "Notiek paziņojumu iegūšana",
- "EOF": "Visi paziņojumi ir ielādēti",
"404": "Šajā grupā nav aktīvu paziņojumu.",
"NO_NOTIFICATIONS": "Nav paziņojumu",
"NOTE": "Paziņojumi no visām abonētajām iesūtnēm",
+ "NO_MESSAGES_AVAILABLE": "Nevar iegūt ziņojumus",
"SNOOZED_UNTIL": "Atlikts līdz",
"SNOOZED_UNTIL_TOMORROW": "Atlikts līdz rītdienai",
"SNOOZED_UNTIL_NEXT_WEEK": "Atlikts līdz nākamajai nedēļai"
},
"ACTION_HEADER": {
"SNOOZE": "Atlikt paziņojumu",
- "DELETE": "Dzēst paziņojumu"
+ "DELETE": "Dzēst paziņojumu",
+ "BACK": "Atpakaļ"
},
"TYPES": {
"CONVERSATION_MENTION": "Jūs esat pieminēts sarunā",
"CONVERSATION_CREATION": "Izveidota jauna saruna",
"CONVERSATION_ASSIGNMENT": "Jums ir piešķirta saruna",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Jauns ziņojums piešķirtajā sarunā",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Jauns ziņojums sarunā, kurā piedalāties"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Jauns ziņojums sarunā, kurā piedalāties",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA pirmā sarunas atbilde nokavēta",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA nākamā sarunas atbilde nokavēta",
+ "SLA_MISSED_RESOLUTION": "SLA sarunas atrisināšanas laiks nokavēts"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Pieminēts",
+ "CONVERSATION_ASSIGNMENT": "Jums piešķirts",
+ "CONVERSATION_CREATION": "Jauna Saruna",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA pārkāpums",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA pārkāpums",
+ "SLA_MISSED_RESOLUTION": "SLA pārkāpums",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Jauns ziņojums",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Jauns ziņojums",
+ "SNOOZED_UNTIL": "Atlikts uz {time}",
+ "SNOOZED_ENDS": "Atlikšana beidzās"
+ },
+ "NO_CONTENT": "Saturs nav pieejams",
"MENU_ITEM": {
"MARK_AS_READ": "Atzīmēt kā lasītu",
"MARK_AS_UNREAD": "Atzīmēt kā nelasītu",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "Visi paziņojumi ir atzīmēti kā lasīti",
"DELETE_ALL": "Visi paziņojumi izdzēsti",
"DELETE_ALL_READ": "Visi lasīšanas paziņojumi ir izdzēsti"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
index f31abe266..5eaa00103 100644
--- a/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Iesūtnes",
- "SIDEBAR_TXT": "Inbox
Chatwoot risinājumam pievienoto tīmekļa vietni vai Facebook lapu sauc par Iesūtni. Jūsu Chatwoot kontā var atrasties neierobežots iesūtņu skaits.
Noklikšķiniet uz Pievienot Iesūtni lai pievienotu tīmekļa vietni vai Facebook lapu.
Informācijas panelī Jūs varat apskatīt visas sarunas, no visām savām iesūtnēm, un atbildēt uz tām cilnē `Sarunas`.
Jūs varat arī apskatīt sarunas, kas piesaistītas noteiktai iesūtnei, noklikšķinot uz iesūtnes nosaukuma informācijas paneļa kreisajā rūtī.
",
+ "DESCRIPTION": "Kanāls ir saziņas veids, ko klients izvēlas saziņai ar jums. Iesūtne ir vieta, kur pārvaldāt mijiedarbības ar noteiktu kanālu. Tas var ietvert saziņu no dažādiem avotiem, piemēram, e-pasta, tiešsaistes tērzēšanas un sociālajiem medijiem.",
+ "LEARN_MORE": "Uzzināt vairāk par iesūtnēm",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Jūsu iesūtne ir atvienota. Jūs nesaņemsiet jaunus ziņojumus, kamēr nebūsiet tos atkārtoti autorizējis.",
+ "CLICK_TO_RECONNECT": "Noklikšķiniet šeit, lai atkārtoti izveidotu savienojumu.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Šim kontam nav pievienota neviena Iesūtne."
},
- "CREATE_FLOW": [
- {
- "title": "Izvēlieties Kanālu",
- "route": "settings_inbox_new",
- "body": "Izvēlieties pakalpojumu sniedzēju, kuru vēlaties integrēt ar Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Izvēlieties Kanālu",
+ "BODY": "Izvēlieties pakalpojumu sniedzēju, kuru vēlaties integrēt ar Chatwoot."
},
- {
- "title": "Izveidot Iesūtni",
- "route": "settings_inboxes_page_channel",
- "body": "Autentificēt savu kontu un izveidot iesūtni."
+ "INBOX": {
+ "TITLE": "Izveidot Iesūtni",
+ "BODY": "Autentificēt savu kontu un izveidot iesūtni."
},
- {
- "title": "Pievienot Aģentus",
- "route": "settings_inboxes_add_agents",
- "body": "Pievienojiet aģentus izveidotajai iesūtnei."
+ "AGENT": {
+ "TITLE": "Pievienot Aģentus",
+ "BODY": "Pievienojiet aģentus izveidotajai iesūtnei."
},
- {
- "title": "Gatavs!",
- "route": "settings_inbox_finish",
- "body": "Jūs varat sākt darboties!"
+ "FINISH": {
+ "TITLE": "Gatavs!",
+ "BODY": "Jūs varat sākt darboties!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Iesūtnes Nosaukums",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Izvēlieties lapu no saraksta",
"INBOX_NAME": "Iesūtnes Nosaukums",
"ADD_NAME": "Pievienojiet savas iesūtnes nosaukumu",
- "PICK_NAME": "Izvēlieties savai iesūtnei nosaukumu",
- "PICK_A_VALUE": "Izvēlieties vērtību"
+ "PICK_NAME": "Lūdzu ievadiet Iesūtnes nosaukumu",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Lai pievienotu savu Twitter profilu kā kanālu, Jums ir jāautentificē savs Twitter profils, noklikšķinot uz \"Pierakstīties ar Twitter\"' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Ievadiet savu Webhook URL",
+ "PLACEHOLDER": "Lūdzu ievadiet Webhook URL",
"ERROR": "Lūdzu, ievadiet derīgu URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Tīmekļa Vietnes Domēns",
"PLACEHOLDER": "Ievadiet savas tīmekļa vietnes domēnu (piemēram: acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "Šis lauks ir nepieciešams"
},
"PHONE_NUMBER": {
- "LABEL": "Tālruņa numurs",
+ "LABEL": "Telefona numurs",
"PLACEHOLDER": "Lūdzu, ievadiet tālruņa numuru, no kura tiks nosūtīts ziņojums.",
"ERROR": "Lūdzu, norādiet derīgu tālruņa numuru, kas sākas ar zīmi “+” un nesatur atstarpes."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API atslēga",
- "PLACEHOLDER": "Lūdzu, ievadiet savu Bandwith API atslēgu",
+ "PLACEHOLDER": "Lūdzu ievadiet Bandwidth API Key",
"ERROR": "Šis lauks ir nepieciešams"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Lūdzu, ievadiet savu Bandwith API Secret",
+ "PLACEHOLDER": "Lūdzu ievadiet Bandwidth API Secret",
"ERROR": "Šis lauks ir nepieciešams"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Sāciet atbalstīt savus klientus, izmantojot WhatsApp.",
"PROVIDERS": {
"LABEL": "API Pakalpojumu Sniedzējs",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Iesūtnes Nosaukums",
"PLACEHOLDER": "Lūdzu, ievadiet iesūtnes nosaukumu",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Pārbaudes Token",
- "PLACEHOLDER": "Ievadiet verifikācijas token, kuru vēlaties nokonfigurēt priekš Facebook webhooks.",
+ "PLACEHOLDER": "Ievadiet verifikācijas token, ko vēlaties izmantot priekš Facebook webhook.",
"ERROR": "Lūdzu, ievadiet derīgu vērtību."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verifikācijas Token"
},
"SUBMIT_BUTTON": "Izveidot WhatsApp kanālu",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Mēs nevarējām saglabāt WhatsApp kanālu"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefona numurs",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Konta SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Atslēgas SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Atslēgas Noslēpums",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Kanāls",
"DESC": "Integrēt ar API kanālu un sākt atbalstīt savus klientus.",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "E-pasta Kanāls",
- "DESC": "Integrēt savu e-pasta iesūtni.",
+ "DESC": "Integrēt sava e-pasta iesūtni.",
"CHANNEL_NAME": {
"LABEL": "Kanāla Nosaukums",
"PLACEHOLDER": "Lūdzu, ievadiet kanāla nosaukumu",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Mēs nevarējām saglabāt e-pasta kanālu"
},
- "FINISH_MESSAGE": "Sākt pārsūtīt savus e-pasta ziņojumus uz tālāk norādīto e-pasta adresi."
+ "FINISH_MESSAGE": "Sākt pārsūtīt savus e-pasta ziņojumus uz tālāk norādīto e-pasta adresi.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Noklikšķiniet šeit",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Kanāls",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Izvēlieties kanālu",
- "DESC": "Chatwoot atbalsta tiešraides tērzēšanas logrīkus, Facebook Messenger, Twitter profilus, WhatsApp, e-pastus kā kanālus. Ja vēlaties izveidot pielāgotu kanālu, varat to izveidot, izmantojot API kanālu. Lai sāktu, izvēlieties vienu no tālāk norādītajiem kanāliem."
+ "DESC": "Chatwoot atbalsta tiešraides tērzēšanas logrīkus, Facebook Messenger, Twitter profilus, WhatsApp, e-pastus kā kanālus. Ja vēlaties izveidot pielāgotu kanālu, varat to izveidot, izmantojot API kanālu. Lai sāktu, izvēlieties vienu no tālāk norādītajiem kanāliem.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Gatavs!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Tīmekļa vietne",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-pasts",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Aģenti",
"DESC": "Šeit Jūs varat pievienot aģentus, lai pārvaldītu savu jaunizveidoto iesūtni. Tikai šiem atlasītajiem aģentiem būs piekļuve Jūsu iesūtnei. Aģenti, kas neietilpst šajā iesūtnē, nevarēs redzēt ziņojumus vai atbildēt uz ziņojumiem šajā iesūtnē, kad būs pierakstījušies sistēmā.
PS: Ja jums kā administratoram ir nepieciešama piekļuve pie visām iesūtnēm, jums ir jāpievieno sevi kā aģentu visām izveidotajām iesūtnēm.",
- "VALIDATION_ERROR": "Pievienojiet savai jaunajai Iesūtnei vismaz vienu aģentu",
+ "VALIDATION_ERROR": "Pievienojiet savai jaunajai iesūtnei vismaz vienu aģentu",
"PICK_AGENTS": "Izvēlieties aģentus priekš iesūtnes"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Lai sāktu, noklikšķiniet uz pogas Pierakstīties ar Microsoft. Jūs tiksit novirzīts uz e-pasta pierakstīšanās lapu. Kad būsiet pieņēmis pieprasītās atļaujas, Jūs tiksit novirzīts atpakaļ uz iesūtnes izveides darbību.",
"EMAIL_PLACEHOLDER": "Ievadiet e-pasta adresi",
- "HELP": "Lai pievienotu savu Microsoft kontu kā kanālu, Jums ir jāautentificē savs Microsoft konts, noklikšķinot uz \"Pierakstīties ar Microsoft\" ",
+ "SIGN_IN": "Pierakstīties ar Microsoft",
"ERROR_MESSAGE": "Veidojot savienojumu ar Microsoft, radās kļūda. Lūdzu, mēģiniet vēlreiz"
+ },
+ "GOOGLE": {
+ "TITLE": "Google e-pasts",
+ "DESCRIPTION": "Lai sāktu, noklikšķiniet uz pogas Pierakstīties ar Google. Jūs tiksit novirzīts uz e-pasta pierakstīšanās lapu. Kad būsiet pieņēmis pieprasītās atļaujas, jūs tiksit novirzīts atpakaļ uz iesūtnes izveides darbību.",
+ "SIGN_IN": "Pierakstīties ar Google",
+ "EMAIL_PLACEHOLDER": "Ievadiet e-pasta adresi",
+ "ERROR_MESSAGE": "Veidojot savienojumu ar Google, radās kļūda. Lūdzu, mēģiniet vēlreiz"
}
},
"DETAILS": {
"LOADING_FB": "Notiek Jūsu autentificēšana, izmantojot Facebook...",
+ "ERROR_FB_LOADING": "Ielādējot Facebook SDK, radās kļūda. Lūdzu, atspējojiet visus reklāmu bloķētājus un mēģiniet vēlreiz no citas pārlūkprogrammas.",
"ERROR_FB_AUTH": "Radās kļūda. Lūdzu, atsvaidziniet lapu...",
"ERROR_FB_UNAUTHORIZED": "Jums nav tiesību veikt šo darbību. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Lūdzu, pārliecinieties, ka Jums ir pilna piekļuve Facebook lapai. Vairāk par Facebook lomām varat lasīt šeit.",
@@ -386,7 +557,10 @@
"MESSAGE": "Tagad Jūs varat izmantot savu jauno Kanālu lai sazinātos ar saviem klientiem. Priecīgu atbalstīšanu",
"BUTTON_TEXT": "Iet uz",
"MORE_SETTINGS": "Papildu iestatījumi",
- "WEBSITE_SUCCESS": "Jūs esat veiksmīgi pabeidzis tīmekļa vietnes kanāla izveidi. Nokopējiet tālāk redzamo kodu un ievietojiet to savā tīmekļa vietnē. Nākamreiz, kad klients izmantos tiešsaistes tērzēšanu, saruna automātiski tiks parādīta Jūsu iesūtnē."
+ "WEBSITE_SUCCESS": "Jūs esat veiksmīgi pabeidzis tīmekļa vietnes kanāla izveidi. Nokopējiet tālāk redzamo kodu un ievietojiet to savā tīmekļa vietnē. Nākamreiz, kad klients izmantos tiešsaistes tērzēšanu, saruna automātiski tiks parādīta Jūsu iesūtnē.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Atkārtoti autorizēties",
"VIEW": "Apskatīt",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sūtītāja vārds",
- "SUB_TEXT": "Izvēlieties vārdu, kas uzrādīsies Jūsu klientam kad viņš saņems e-pasta ziņojumus no Jūsu aģentiem.",
+ "SUB_TEXT": "Izvēlieties vārdu, kas tiks rādīts jūsu klientam, saņemot e-pasta ziņojumus no jūsu aģentiem.",
"FOR_EG": "Piemēram:",
"FRIENDLY": {
"TITLE": "Draudzīgs",
@@ -418,7 +592,7 @@
"SUBTITLE": "Izmantot tikai konfigurēto uzņēmuma nosaukumu kā sūtītāja vārdu e-pasta galvenē."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Konfigurēt uzņēmuma nosaukumu",
+ "BUTTON_TEXT": "Konfigurēt uzņēmuma nosaukumu",
"PLACEHOLDER": "Ievadiet uzņēmuma nosaukumu",
"SAVE_BUTTON_TEXT": "Saglabāt"
}
@@ -432,8 +606,10 @@
"DISABLED": "Atspējots"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Iespējots",
- "DISABLED": "Atspējots"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Iespējot"
@@ -464,7 +640,107 @@
"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",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Apstiprināts",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Tiešraide"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Iestatījumi",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Skripts",
"MESSENGER_SUB_HEAD": "Ievietojiet šo pogu savā body tagā",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Aģenti",
"INBOX_AGENTS_SUB_TEXT": "Pievienot vai noņemt aģentus no šīs iesūtnes",
"AGENT_ASSIGNMENT": "Sarunas Piešķiršana",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Pieturēties pie vienas sarunas",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Iespējot vai atspējot vairākas sarunas vienai un tai pašai kontaktpersonai šajā iesūtnē",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Iesūtnes Iestatījumi",
"INBOX_UPDATE_SUB_TEXT": "Atjaunināt Jūsu iesūtnes iestatījumus",
"AUTO_ASSIGNMENT_SUB_TEXT": "Iespējot vai atspējot jaunu sarunu automātisku piešķiršanu šai iesūtnei pievienotajiem aģentiem.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Izmantojiet šeit uzrādīto `inbox_identifier` token, lai autentificētu savus API klientus.",
"FORWARD_EMAIL_TITLE": "Pārsūtīt uz E-pastu",
"FORWARD_EMAIL_SUB_TEXT": "Sākt pārsūtīt savus e-pasta ziņojumus uz tālāk norādīto e-pasta adresi.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Atļaut ziņojumus pēc sarunas pabeigšanas",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Ļaut galalietotājiem sūtīt ziņojumus pat pēc sarunas atrisināšanas.",
"WHATSAPP_SECTION_SUBHEADER": "Šī API atslēga tiek izmantota integrācijai ar WhatsApp API.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Ievadiet atjaunināto atslēgu, kas tiks izmantota integrācijai ar WhatsApp API.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Ievadiet jauno API atslēgu, kas tiks izmantota integrācijai ar WhatsApp API.",
"WHATSAPP_SECTION_TITLE": "API atslēga",
"WHATSAPP_SECTION_UPDATE_TITLE": "Atjaunināt API atslēgu",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Ievadiet šeit jauno API atslēgu",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Atjaunināt",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Pārbaudes Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Savienot",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verifikācijas Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "Šis marķieris tiek izmantots, lai pārbaudītu webhook endpoint autentiskumu.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Atjaunināt pirms-tērzēšanas veidlapas iestatījumus"
},
"HELP_CENTER": {
"LABEL": "Palīdzības centrs",
"PLACEHOLDER": "Izvēlēties Palīdzības Centru",
"SELECT_PLACEHOLDER": "Izvēlēties Palīdzības Centru",
+ "NONE": "Nav",
"REMOVE": "Noņemt Palīdzības Centru",
"SUB_TEXT": "Pievienot Palīdzības Centru ar iesūtni"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Lūdzu, ievadiet vērtību, kas ir lielāka par 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Ierobežo maksimālo sarunu skaitu no šīs iesūtnes, ko var automātiski piešķirt aģentam"
},
+ "ASSIGNMENT": {
+ "TITLE": "Sarunas Piešķiršana",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktīvs",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Atcelt",
+ "CONFIRM_DELETE": "Dzēst",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Atkārtoti autorizēties",
"SUBTITLE": "Jūsu Facebook savienojuma derīguma termiņš ir beidzies. Lūdzu, atkārtoti pievienojiet savu Facebook lapu, lai turpinātu pakalpojumus",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Valoda",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Atgriezties"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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ā",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Ziņojums nav pieejams priekš apmeklētājiem",
"TOGGLE_HELP": "Iespējojot uzņēmuma pieejamību, tiešraides tērzēšanas logrīkā tiks rādīts darba laiks, pat ja visi aģenti būs bezsaistē. Ārpus darba laika apmeklētājus var brīdināt ar ziņojumu un pirms tērzēšanas veidlapu.",
"DAY": {
+ "DAY": "Diena",
+ "AVAILABILITY": "Pieejamība",
+ "HOURS": "Hours",
"ENABLE": "Iespējot pieejamību šai dienai",
"UNAVAILABLE": "Nav pieejams",
- "HOURS": "darba laiks",
"VALIDATION_ERROR": "Sākuma laikam jābūt pirms slēgšanas laika.",
"CHOOSE": "Izvēlēties"
},
@@ -606,7 +1042,8 @@
"LABEL": "Parole",
"PLACE_HOLDER": "Parole"
},
- "ENABLE_SSL": "Iespējot SSL"
+ "ENABLE_SSL": "Iespējot SSL",
+ "AUTH_MECHANISM": "Autentifikācija"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Dienas laikā"
},
"WIDGET_COLOR_LABEL": "Logrīka Krāsa",
- "WIDGET_BUBBLE_POSITION_LABEL": "Logrīka Burbuļa Pozīcija",
- "WIDGET_BUBBLE_TYPE_LABEL": "Logrīka Burbuļa Tips",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tips:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Tērzējiet ar mums",
- "LABEL": "Logrīka Burbuļa Palaidēja Nosaukums",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Tērzējiet ar mums"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Noklusējums",
- "CHAT": "Tērzēšana"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Parasti atbild dažu minūšu laikā",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\nwindow.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Citi Pakalpojuma Sniedzēji"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Citi Pakalpojuma Sniedzēji",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Tīmekļa vietne",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-pasts",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Kanāls",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/index.js b/app/javascript/dashboard/i18n/locale/lv/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/lv/index.js
+++ b/app/javascript/dashboard/i18n/locale/lv/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
index d0f246695..acd71ffd8 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Notiek Integrāciju Iegūšana",
- "NO_HOOK_CONFIGURED": "Šajā kontā nav nokonfigurēta neviena %{integrationId} integrācija.",
+ "NO_HOOK_CONFIGURED": "Šajā kontā nav nokonfigurēta neviena {integrationId} integrācija.",
"HEADER": "Lietojumprogrammas",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Meklēt...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Iespējots",
"DISABLED": "Atspējots"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Notiek integrāciju hook iegūšana",
"INBOX": "Iesūtne",
+ "ACTIONS": "Darbības",
"DELETE": {
"BUTTON_TEXT": "Dzēst"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Izvēlieties Iesūtni"
},
"SUBMIT": "Izveidot",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Atcelt"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Atvienot"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow ir dabiskas valodas izpratnes platforma, kas ļauj viegli izveidot un integrēt sarunvalodas lietotāja interfeisu jūsu mobilajā lietotnē, tīmekļa lietojumprogrammā, ierīcē, robotprogrammā, interaktīvā balss atbildes sistēmā utt.
Dialogflow integrācija ar %{installationName} ļauj piesaistīt Dialogflow robotam Jūsu Iesūtnes, kas savukārt ļauj robotam sākotnēji apstrādāt vaicājumus un nepieciešamības gadījumā nodot tos aģentam. Dialogflow var izmantot lai kvalificētu izpildāmos darbus un tādā veidā samazinātu aģentu darba slodzi, sniedzot atbildes uz bieži uzdotajiem jautājumiem utt.
Lai pievienotu Dialogflow, Jums ir jāizveido servisa konts savā Google projekta konsolē un jākopīgo akreditācijas dati. Lai iegūtu papildu informāciju, lūdzu, skatiet Dialogflow dokumentāciju."
+ "DIALOGFLOW": "Dialogflow ir dabiskas valodas apstrādes platforma, sarunvalodas interfeisa veidošanai. Integrējot to ar {installationName}, roboti vispirms apstrādās vaicājumus un vajadzības gadījumā pārsūtīs tos aģentiem. Tas palīdz kvalificēt potenciālos klientus un samazināt aģentu darba slodzi, atbildot uz bieži uzdotajiem jautājimiem. Lai pievienotu Dialogflow, pakalpojumā Google Console izveidojiet Service Account un kopīgojiet akreditācijas datus. Sīkāku informāciju skatiet dokumentācijā"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/integrations.json b/app/javascript/dashboard/i18n/locale/lv/integrations.json
index 8fae36d23..0ea682111 100644
--- a/app/javascript/dashboard/i18n/locale/lv/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/lv/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Atcelt",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrācijas",
+ "DESCRIPTION": "Chatwoot integrējas ar vairākiem rīkiem un pakalpojumiem, lai uzlabotu jūsu komandas efektivitāti. Izpētiet tālāk esošo sarakstu, lai konfigurētu savas iecienītākās lietotnes.",
+ "LEARN_MORE": "Uzzināt vairāk par integrācijām",
+ "LOADING": "Integrāciju iegūšana",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain jūsu kontā nav iespējots.",
+ "CLICK_HERE_TO_CONFIGURE": "Noklikšķiniet šeit, lai konfigurētu",
+ "LOADING_CONSOLE": "Notiek Captain konsoles ielāde...",
+ "FAILED_TO_LOAD_CONSOLE": "Neizdevās ielādēt Captain konsoli. Lūdzu, mēģiniet vēlreiz."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Abonētie Notikumi",
+ "LEARN_MORE": "Uzzināt vairāk par webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Atcelt",
"DESC": "Webhook notikumi sniedz Jums reāllaika informāciju par to, kas notiek jūsu Chatwoot kontā. Lūdzu, ievadiet derīgu URL, lai nokonfigurētu atzvanīšanu.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Piemēram: %{webhookExampleURL}",
+ "PLACEHOLDER": "Piemēram: {webhookExampleURL}",
"ERROR": "Lūdzu, ievadiet derīgu URL"
},
"EDIT_SUBMIT": "Atjaunināt webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Šim kontam nav nokonfigurēts neviens webhook.",
"TITLE": "Pārvaldīt webhook",
- "TABLE_HEADER": [
- "Webhook galapunkts",
- "Darbības"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook galapunkts",
+ "ACTIONS": "Darbības"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Rediģēt",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Apstiprināt Dzēšanu",
- "MESSAGE": "Vai tiešām vēlaties izdzēst webhook? (%{webhookURL})",
+ "MESSAGE": "Vai tiešām vēlaties izdzēst webhook? ({webhookURL})",
"YES": "Jā, Dzēst ",
"NO": "Nē, Paturēt"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Dzēst",
"DELETE_CONFIRMATION": {
"TITLE": "Dzēst integrāciju",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Kā izmantot Slack integrāciju?",
- "BODY": "Izmantojot šo integrāciju, visas Jūsu ienākošās sarunas tiks sinhronizētas ar Jūsu Slack workspace kanālu ***%{selectedChannelName}***. Jūs varat pārvaldīt visas savas sarunas ar klientiem savā kanālā un nekad nepalaist garām nevienu ziņojumu.\n\nŠeit ir galvenās integrācijas iezīmes:\n\n**Atbildēt uz sarunām no Slack:** Lai atbildētu uz sarunu Slack kanālā ***%{selectedChannelName}***, uzrakstiet savu ziņojumu un nosūtiet to kā pavedienu. Tas nosūtīs atbildi klientam, izmantojot Chatwoot. Tas ir tik vienkārši!\n\n **Izveidot privātas piezīmes:** Ja vēlaties izveidot privātas piezīmes, nevis atbildes, sāciet ziņojumu ar ***`note:`***. Tas nodrošina, ka jūsu ziņojums ir privāts un nebūs redzams klientam.\n\n**Asociēt aģenta profilu:** Ja personai, kas atbildēja Slack kanālā, ir aģenta profils pakalpojumā Chatwoot, ar tādu pašu e-pasta adresi, atbildes tiks automātiski asociētas ar šo aģenta profilu. Tas nozīmē, ka varat viegli izsekot kurš ko teica un kad. No otras puses, ja atbildētājam nav asociēta aģenta profila, atbildes klientam tiks rādītas no robotprogrammatūras profila.",
+ "BODY": "Izmantojot šo integrāciju, visas jūsu ienākošās sarunas tiks sinhronizētas ar kanālu ***{selectedChannelName}*** jūsu Slack darbvietā. Jūs varat pārvaldīt visas savas klientu sarunas tieši kanālā un nekad nepalaist garām nevienu ziņojumu.\n\nŠādas ir galvenās integrācijas īpašības:\n\n**Atbldēt uz sarunām no Slack:** Lai atbildētu uz sarunu ***{selectedChannelName}*** Slack kanālā, uzrakstiet savu ziņojumu un nosūtiet to kā pavedienu. Šādi tiks izveidota atbilde klientam, izmantojot Chatwoot.\n\n**Izveidot privātas piezīmes:** ja vēlaties izveidot privātas piezīmes, nevis atbildes, sāciet ziņojumu ar ***`note:`***. Tas nodrošina, ka jūsu ziņojums ir privāts un nebūs redzams klientam.\n\n**Saistīt aģenta profilu:** ja personai, kas atbildēja Slack, ir Chatwoot aģenta profils ar to pašu e-pasta adresi, atbildes tiks automātiski saistītas ar šo aģenta profilu. Tas nozīmē, ka varat viegli izsekot kurš ko teica un kad. No otras puses, ja atbildētājam nav saistīta aģenta profila, atbildes klientam tiks rādītas no robotprogrammatūras profila.",
"SELECTED": "izvēlēts"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Palīgs",
- "WITH_AI": " %{option} ar AI ",
+ "WITH_AI": " {option} ar AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Atbildes Ieteikums",
"SUMMARIZE": "Apkopot",
@@ -114,7 +161,29 @@
"EXPAND": "Izvērst",
"MAKE_FRIENDLY": "Mainīt ziņojuma toni uz draudzīgu",
"MAKE_FORMAL": "Izmantot formālu toni",
- "SIMPLIFY": "Vienkāršot"
+ "SIMPLIFY": "Vienkāršot",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesionāls",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Draudzīgs"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Melnraksta saturs",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Pievienot jaunu informācijas paneļa lietotni",
"SIDEBAR_TXT": "Informācijas Paneļa Lietotnes
Informācijas paneļa lietotnes ļauj organizācijām iegult lietojumprogrammu Chatwoot informācijas panelī, lai nodrošinātu kontekstu klientu atbalsta aģentiem. Šī funkcija ļauj Jums izveidot lietojumprogrammu neatkarīgi un iegult to informācijas panelī, lai sniegtu informāciju par lietotāju, viņu pasūtījumiem vai viņu iepriekšējo maksājumu vēsturi.
Kad iegulsiet lietojumprogrammu, izmantojot Chatwoot informācijas paneli, Jūsu lietojumprogramma iegūs sarunas un kontaktpersonas kontekstu kā loga notikumu. Ieviesiet savā lapā ziņojuma notikuma uztvērēju, lai saņemtu kontekstu.
Lai pievienotu jaunu informācijas paneļa lietotni, noklikšķiniet uz pogas 'Pievienot jaunu informācijas paneļa lietotni'.
",
"DESCRIPTION": "Informācijas paneļa lietotnes ļauj organizācijām iegult lietojumprogrammu informācijas panelī, lai nodrošinātu kontekstu klientu atbalsta aģentiem. Šī funkcija ļauj Jums neatkarīgi izveidot lietojumprogrammu un iegult to, lai sniegtu informāciju par lietotāju, viņu pasūtījumiem vai iepriekšējo maksājumu vēsturi.",
+ "LEARN_MORE": "Uzzināt vairāk par Informācijas paneļa Lietotnēm",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Šajā kontā vēl nav nokonfigurēta neviena informācijas paneļa lietotne",
"LOADING": "Notiek informācijas paneļa lietotņu iegūšana...",
- "TABLE_HEADER": [
- "Nosaukums",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Darbības"
+ },
"EDIT_TOOLTIP": "Rediģēt lietotni",
"DELETE_TOOLTIP": "Dzēst lietotni"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Jā, dzēst",
"CONFIRM_NO": "Nē, paturēt",
"TITLE": "Apstipriniet dzēšanu",
- "MESSAGE": "Vai tiešām vēlaties izdzēst lietotni - %{appName}?",
+ "MESSAGE": "Vai tiešām vēlaties izdzēst lietotni - {appName}?",
"API_SUCCESS": "Informācijas paneļa lietotne ir veiksmīgi izdzēsta",
"API_ERROR": "Mēs nevarējām izdzēst lietotni. Lūdzu, vēlāk pamēģiniet vēlreiz"
}
+ },
+ "LINEAR": {
+ "HEADER": "Lineārs",
+ "ADD_OR_LINK_BUTTON": "Izveidot/Saistīt lineāru problēmu",
+ "LOADING": "Notiek lineāru problēmu iegūšana...",
+ "LOADING_ERROR": "Lineāru problēmu iegūšanas laikā radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "CREATE": "Izveidot",
+ "LINK": {
+ "SEARCH": "Meklēt problēmas",
+ "SELECT": "Izvēlieties problēmu",
+ "TITLE": "Saite",
+ "EMPTY_LIST": "Netika atrasta neviena lineāra problēma",
+ "LOADING": "Notiek ielāde",
+ "ERROR": "Lineāru problēmu iegūšanas laikā radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "LINK_SUCCESS": "Problēma ir veiksmīgi sasaistīta",
+ "LINK_ERROR": "Sasaistot problēmu radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "LINK_TITLE": "Saruna (#{conversationId}) ar {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Izveidot/saistīt lineāru problēmu",
+ "DESCRIPTION": "Izveidot lineārus jautājumus no sarunām, vai saistīt esošos netraucētai izsekošanai.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Ievadiet virsrakstu",
+ "REQUIRED_ERROR": "Nepieciešams nosaukums"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Ievadiet aprakstu"
+ },
+ "TEAM": {
+ "LABEL": "Komanda",
+ "PLACEHOLDER": "Izvēlieties komandu",
+ "SEARCH": "Meklēt komandu",
+ "REQUIRED_ERROR": "Nepieciešama komanda"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Uzdevuma saņēmējs",
+ "PLACEHOLDER": "Izvēlēties pilnvaroto",
+ "SEARCH": "Meklēt pilnvaroto"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioritāte",
+ "PLACEHOLDER": "Izvēlieties prioritāti",
+ "SEARCH": "Meklēt prioritāti"
+ },
+ "LABEL": {
+ "LABEL": "Etiķete",
+ "PLACEHOLDER": "Izvēlēties etiķeti",
+ "SEARCH": "Meklēt etiķeti"
+ },
+ "STATUS": {
+ "LABEL": "Statuss",
+ "PLACEHOLDER": "Izvēlēties statusu",
+ "SEARCH": "Meklēt statusu"
+ },
+ "PROJECT": {
+ "LABEL": "Projekts",
+ "PLACEHOLDER": "Izvēlēties projektu",
+ "SEARCH": "Meklēt projektu"
+ }
+ },
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt",
+ "CREATE_SUCCESS": "Problēma ir veiksmīgi izveidota",
+ "CREATE_ERROR": "Veidojot problēmu radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "LOADING_TEAM_ERROR": "Ienesot komandas radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "LOADING_TEAM_ENTITIES_ERROR": "Ienesot komandas entītijas radās kļūda. Lūdzu, mēģiniet vēlreiz"
+ },
+ "ISSUE": {
+ "STATUS": "Statuss",
+ "PRIORITY": "Prioritāte",
+ "ASSIGNEE": "Uzdevuma saņēmējs",
+ "LABELS": "Etiķetes",
+ "CREATED_AT": "Izveidots {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Atsaistīt",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Jā, dzēst",
+ "CANCEL": "Atcelt"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Kapteinis",
+ "HEADER_KNOW_MORE": "Uzzināt vairāk",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asistenti",
+ "SWITCH_ASSISTANT": "Pārslēgties starp palīgiem",
+ "NEW_ASSISTANT": "Izveidot palīgu",
+ "EMPTY_LIST": "Palīgu nav atrasts, lūdzu, izveidojiet kādu, lai sāktu darbu"
+ },
+ "COPILOT": {
+ "TITLE": "Kopilots",
+ "TRY_THESE_PROMPTS": "Pamēģiniet",
+ "PANEL_TITLE": "Sāciet darbu ar Copilot",
+ "KICK_OFF_MESSAGE": "Vai nepieciešams ātrs kopsavilkums, pārbaudīt iepriekšējās sarunas vai sagatavot labāku atbildi? Copilot ir šeit, lai paātrinātu lietas.",
+ "SEND_MESSAGE": "Sūtīt ziņojumu...",
+ "EMPTY_MESSAGE": "Radās kļūda, ģenerējot atbildi. Lūdzu, mēģiniet vēlreiz.",
+ "LOADER": "Kapteinis domā",
+ "YOU": "Jūs",
+ "USE": "Izmantot šo",
+ "RESET": "Atiestatīt",
+ "SHOW_STEPS": "Rādīt soļus",
+ "SELECT_ASSISTANT": "Izvēlēties Asistentu",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Apkopot šo sarunu",
+ "CONTENT": "Apkopojiet galvenos punktus, kas apspriesti starp klientu un atbalsta aģentu, tostarp klienta bažas, jautājumus un risinājumus vai atbildes, ko sniedzis atbalsta aģents"
+ },
+ "SUGGEST": {
+ "LABEL": "Ieteikt atbildi",
+ "CONTENT": "Analizējiet klienta pieprasījumu un sagatavojiet atbildi, kas efektīvi risina viņu bažas vai jautājumus. Pārliecinieties, ka atbilde ir skaidra, kodolīga un sniedz noderīgu informāciju."
+ },
+ "RATE": {
+ "LABEL": "Novērtēt šo sarunu",
+ "CONTENT": "Pārskatiet sarunu, lai redzētu, cik labi tā atbilst klienta vajadzībām. Sniedziet vērtējumu no 5, balstoties uz toni, skaidrību un efektivitāti."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Augstas prioritātes sarunas",
+ "CONTENT": "Dodiet man kopsavilkumu par visām augstas prioritātes atvērtajām sarunām. Iekļaujiet sarunas ID, klienta vārdu (ja pieejams), pēdējā ziņojuma saturu un piešķirto aģentu. Ja nepieciešams, grupējiet pēc statusa."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Kontaktpersonu saraksts",
+ "CONTENT": "Parādiet man top 10 kontaktu sarakstu. Iekļaujiet vārdu, e-pastu vai tālruņa numuru (ja pieejams), pēdējās redzamības laiku, tagus (ja kādi ir)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jūs",
+ "ASSISTANT": "Asistents",
+ "MESSAGE_PLACEHOLDER": "Rakstiet savu ziņojumu...",
+ "HEADER": "Izmēģinājuma laukums",
+ "DESCRIPTION": "Izmantojiet šo izmēģinājuma laukumu, lai sūtītu ziņojumus savam palīgam un pārbaudītu, vai tas atbild precīzi, ātri un ar gaidīto toni.",
+ "CREDIT_NOTE": "Šeit nosūtītie ziņojumi tiks ieskaitīti jūsu Captain kredītos."
+ },
+ "PAYWALL": {
+ "TITLE": "Modernizējiet abonementu, lai izmantotu Captain AI",
+ "AVAILABLE_ON": "Captain nav pieejams bezmaksas abonementā.",
+ "UPGRADE_PROMPT": "Modernizējiet savu abonementu, lai iegūtu piekļuvi viruālajiem asistentiem un copilot.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI ir pieejams tikai Enterprise plānos.",
+ "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."
+ },
+ "BANNER": {
+ "RESPONSES": "Jūs esat izmantojis vairāk kā 80% no sava atbilžu ierobežojuma. Lai turpinātu izmantot Captain AI, lūdzu, atjauniniet abonementu.",
+ "DOCUMENTS": "Sasniegts dokumentu limits. Atjauniniet abonementu, lai turpinātu izmantot Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Atcelt",
+ "CREATE": "Izveidot",
+ "EDIT": "Atjaunināt"
+ },
+ "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?",
+ "DESCRIPTION": "Šī darbība ir pastāvīga. Dzēšot šo asistentu, tas tiks noņemts no visām pievienotajām iesūtnēm un neatgriezeniski dzēstas visas ģenerētās zināšanas.",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Asistents ir veiksmīgi izdzēsts",
+ "ERROR_MESSAGE": "Dzēšot asistentu radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM_DESCRIPTION": "Aizpildiet anketu, lai nosauktu savu asistentu, norādītu tā mērķi un produktu, ko tas atbalstīs.",
+ "CREATE": {
+ "TITLE": "Izveidot asistentu",
+ "SUCCESS_MESSAGE": "Asistents ir veiksmīgi izveidots",
+ "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": "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": "Apraksts",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Produkta Nosaukums",
+ "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",
+ "ALLOW_MEMORIES": "Pārtvert galvenās nianses kā atmiņas no klientu mijiedarbībām.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Iestatījumi",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Dzēst Asistentu",
+ "DESCRIPTION": "Šī darbība ir pastāvīga. Dzēšot šo asistentu, tas tiks noņemts no visām pievienotajām iesūtnēm un neatgriezeniski dzēstas visas ģenerētās zināšanas.",
+ "BUTTON_TEXT": "Dzēst {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Rediģēt Asistentu",
+ "DELETE_ASSISTANT": "Dzēst Asistentu",
+ "VIEW_CONNECTED_INBOXES": "Skatīt pievienotās iesūtnes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Asistenti nav pieejami",
+ "SUBTITLE": "Izveidot palīgu, lai sniegtu lietotājiem ātras un precīzas atbildes. Tas var mācīties no Jūsu palīdzības rakstiem un iepriekšējām sarunām.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Dzēst"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Meklēt..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Dzēst"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Meklēt..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Dzēst"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nosaukums",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Izveidot",
+ "CANCEL": "Atcelt"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Atcelt",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Meklēt..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Dokumenti",
+ "ADD_NEW": "Izveidot jaunu dokumentu",
+ "SELECTED": "Atlasīti {count}",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Dzēst",
+ "BULK_SYNC_BUTTON": "Atjaunot",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Jā, dzēst visu",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Meklēt..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Lapa nav atrasta",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Saistītie bieži uzdotie jautājumi",
+ "DESCRIPTION": "Šie bieži uzdotie jautājumi tiek ģenerēti tieši no dokumenta."
+ },
+ "FORM_DESCRIPTION": "Ievadiet dokumenta URL, lai to pievienotu kā zināšanu avotu, un izvēlieties asistentu, ar kuru to saistīt.",
+ "CREATE": {
+ "TITLE": "Pievienot dokumentu",
+ "SUCCESS_MESSAGE": "Dokuments ir veiksmīgi izveidots",
+ "ERROR_MESSAGE": "Veidojot dokumentu, radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Ievadiet dokumenta URL",
+ "ERROR": "Lūdzu, norādiet pareizu dokumenta URL"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Vai tiešām vēlaties izdzēst šo dokumentu?",
+ "DESCRIPTION": "Šī darbība ir pastāvīga. Dzēšot šo dokumentu visas ģenerētās zināšanas tiks neatgriezeniski izdzēstas.",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Dokuments ir veiksmīgi izdzēsts",
+ "ERROR_MESSAGE": "Dzēšot dokumentu radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Skatīt Saistītās Atbildes",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Dzēst Dokumentu"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Dokumenti nav pieejami",
+ "SUBTITLE": "Jūsu palīgs izmanto dokumentus, lai izveidotu bieži uzdotos jautājumus. Jūs varat importēt dokumentus, lai nodrošinātu kontekstu savam palīgam.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Atvērt norēķinus",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nav",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API atslēga"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Parole",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tips"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numurs",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Nepieciešams"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "Bieži uzdotie jautājumi",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Izveidot jaunu sarakstu ar bieži uzdotiem jautājumiem",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Saruna #{id}"
+ },
+ "SELECTED": "Atlasīti {count}",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Apstiprināt",
+ "BULK_DELETE_BUTTON": "Dzēst",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "Bieži uzdotie jautājumi ir veiksmīgi apstiprināti",
+ "ERROR_MESSAGE": "Apstiprinot bieži uzdotos jautājumus radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Vai dzēst bieži uzdotos jautājumus?",
+ "DESCRIPTION": "Vai tiešām vēlaties dzēst atlasītos bieži uzdotos jautājumus? Šo darbību nevar atsaukt.",
+ "CONFIRM": "Jā, dzēst visu",
+ "SUCCESS_MESSAGE": "Bieži uzdotie jautājumi ir veiksmīgi izdzēsti",
+ "ERROR_MESSAGE": "Dzēšot bieži uzdotos jautājumus radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "DELETE": {
+ "TITLE": "Vai tiešām vēlaties izdzēst šos bieži uzdotos jautājumus?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Bieži uzdotie jautājumi ir veiksmīgi izdzēsti",
+ "ERROR_MESSAGE": "Dzēšot bieži uzdotos jautājumus radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FILTER": {
+ "ASSISTANT": "Asistents: {selected}",
+ "STATUS": "Statuss: {selected}",
+ "ALL_ASSISTANTS": "Visi"
+ },
+ "STATUS": {
+ "TITLE": "Statuss",
+ "PENDING": "Gaida",
+ "APPROVED": "Apstiprināts",
+ "ALL": "Visi"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Pievienot jautājumu un tā atbildi zināšanu bāzei, kā arī izvēlēties asistentu, ar kuru tas būs saistīts.",
+ "CREATE": {
+ "TITLE": "Pievienot bieži uzdotos jautājumus",
+ "SUCCESS_MESSAGE": "Atbilde ir veiksmīgi pievienota.",
+ "ERROR_MESSAGE": "Pievienojot atbildi radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Jautājums",
+ "PLACEHOLDER": "Ievadiet jautājumu šeit",
+ "ERROR": "Lūdzu, ievadiet derīgu jautājumu."
+ },
+ "ANSWER": {
+ "LABEL": "Atbilde",
+ "PLACEHOLDER": "Ievadiet atbildi šeit",
+ "ERROR": "Lūdzu, ievadiet derīgu atbildi."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Atjaunināt bieži uzdotos jautājumus",
+ "SUCCESS_MESSAGE": "Bieži uzdotie jautājumi ir veiksmīgi atjaunināti",
+ "ERROR_MESSAGE": "Atjauninot bieži uzdotos jautājumus, radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "APPROVE_SUCCESS_MESSAGE": "Bieži uzdotie jautājumi tika atzīmēti kā apstiprināti"
+ },
+ "OPTIONS": {
+ "APPROVE": "Apstiprināt",
+ "EDIT_RESPONSE": "Rediģēt",
+ "DELETE_RESPONSE": "Dzēst"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Bieži uzdoto jautājumu saraksti nav atrasti",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "Bieži uzdotie jautājumi palīdz Jūsu asistentam sniegt ātras un precīzas atbildes uz Jūsu klientu jautājumiem. Tos var ģenerēt automātiski no jūsu satura vai pievienot manuāli.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Pievienotās Iesūtnes",
+ "ADD_NEW": "Pievienot jaunu iesūtni",
+ "OPTIONS": {
+ "DISCONNECT": "Atvienot"
+ },
+ "DELETE": {
+ "TITLE": "Vai tiešām vēlaties atvienot iesūtni?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Jā, dzēst",
+ "SUCCESS_MESSAGE": "Iesūtne tika veiksmīgi atvienota.",
+ "ERROR_MESSAGE": "Atvienojot iesūtni radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM_DESCRIPTION": "Izvēlieties iesūtni, lai izveidotu savienojumu ar asistentu.",
+ "CREATE": {
+ "TITLE": "Pievienot Iesūtni",
+ "SUCCESS_MESSAGE": "Iesūtne tika veiksmīgi pievienota.",
+ "ERROR_MESSAGE": "Pievienojot iesūtni radās kļūda. Lūdzu, mēģiniet vēlreiz."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Iesūtne",
+ "PLACEHOLDER": "Izvēlieties iesūtni, lai aktivētu asistentu.",
+ "ERROR": "Nepieciešams izvēlēties iesūtni."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nav Pievienotu Iesūtņu",
+ "SUBTITLE": "Iesūtnes pievienošana ļauj asistentam apstrādāt Jūsu klientu sākotnējos jautājumus, pirms tos pārsūtīt Jums."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
index d83a1c3f3..28cd4c76c 100644
--- a/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/lv/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etiķetes",
"HEADER_BTN_TXT": "Pievienot etiķeti",
"LOADING": "Notiek etiķešu iegūšana",
+ "DESCRIPTION": "Etiķetes palīdz kategorizēt sarunas, interesentus un noteikt to prioritātes. Etiķeti, sarunai vai kontaktpersonai, varat piešķirt Izmantojot sānu paneli.",
+ "LEARN_MORE": "Uzzināt vairāk par etiķetēm",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Meklēt etiķetes...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu",
- "SIDEBAR_TXT": "Etiķetes
Etiķetes palīdz Jums klasificēt sarunas un noteikt tām prioritātes. Jūs varat piešķirt etiķeti sarunai izmantojot sānjoslu.
Etiķetes ir piesaistītas kontam, un tās var izmantot lai izveidotu pielāgotas darbplūsmas jūsu organizācijā. Jūs varat piešķirt pielāgotu krāsu etiķetei, lai etiķeti vieglāk varētu atpazīt. Jūs varēsiet attēlot etiķeti sānjoslā, lai viegli varētu filtrēt sarunas.
",
"LIST": {
"404": "Šajā kontā nav izveidotas etiķetes.",
"TITLE": "Pārvaldīt Etiķetes",
"DESC": "Etiķetes ļauj grupēt sarunas kopā.",
- "TABLE_HEADER": [
- "Nosaukums",
- "Apraksts",
- "Krāsa"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "DESCRIPTION": "Apraksts",
+ "COLOR": "Krāsa",
+ "ACTION": "Darbības"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Atcelt",
"ADD_SELECTED_LABELS": "Pievienot izvēlētās etiķetes",
"ADD_SELECTED_LABEL": "Pievienot izvēlēto etiķeti",
- "ADD_ALL_LABELS": "Pievienot visas etiķetes"
+ "ADD_ALL_LABELS": "Pievienot visas etiķetes",
+ "SUGGESTED_LABELS": "Ieteiktās etiķetes"
},
"ADD": {
"TITLE": "Pievienot etiķeti",
diff --git a/app/javascript/dashboard/i18n/locale/lv/login.json b/app/javascript/dashboard/i18n/locale/lv/login.json
index 0c3782de8..12c87ed0a 100644
--- a/app/javascript/dashboard/i18n/locale/lv/login.json
+++ b/app/javascript/dashboard/i18n/locale/lv/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "E-pasts",
- "PLACEHOLDER": "piemers@firmasnosaukums.com",
+ "PLACEHOLDER": "piemers{'@'}firmasnosaukums.com",
"ERROR": "Lūdzu, ievadiet derīgu e-pasta adresi"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Aizmirsāt savu paroli?",
"CREATE_NEW_ACCOUNT": "Izveidot jaunu kontu",
- "SUBMIT": "Pierakstīties"
+ "SUBMIT": "Pierakstīties",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/macros.json b/app/javascript/dashboard/i18n/locale/lv/macros.json
index 9f3f1f9c5..1b40e4910 100644
--- a/app/javascript/dashboard/i18n/locale/lv/macros.json
+++ b/app/javascript/dashboard/i18n/locale/lv/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "Makro ir saglabātu darbību kopa, kas palīdz klientu apkalpošanas aģentiem viegli veikt uzdevumus. Aģenti var definēt darbību kopu, piemēram, sarunas marķēšanu ar etiķeti, sarunas transkripta nosūtīšanu uz e-pastu, pielāgota atribūta atjaunināšanu utt., un viņi var veikt šīs darbības ar vienu klikšķi.",
+ "LEARN_MORE": "Uzzināt vairāk par makro",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Pievienot jaunu makro",
"HEADER_BTN_TXT_SAVE": "Saglabāt makro",
"LOADING": "Notiek makro iegūšana",
- "SIDEBAR_TXT": "Makro
Makro ir saglabātu darbību kopa, kas palīdz klientu apkalpošanas aģentiem viegli veikt uzdevumus. Aģenti var definēt darbību kopu, piemēram, sarunas atzīmēšanu ar etiķeti, e-pasta transkripta nosūtīšanu, pielāgotas īpašības atjaunināšanu utt. Aģenti var veikt šīs darbības ar vienu klikšķi. Kad aģenti palaidīs makro, darbības tiks veiktas tādā secībā, kādā tās ir definētas. Makro uzlabo produktivitāti un palielina darbību konsekvenci.
Makro var būt noderīgs divos veidos.
Kā aģenta asistents: Ja aģents vairākas reizes veic darbību kopu, viņš to var saglabāt kā makro un izpildīt visas darbības kopā, izmantojot vienu klikšķi.
Kā iespēja uzņemt komandas locekli: Katram aģentam katras sarunas laikā ir jāveic daudzas dažādas pārbaudes/darbības. Jauna atbalsta komandas dalībnieka uzņemšana būs vienkārša, ja kontā būs pieejami iepriekš definēti makro. Tā vietā, lai detalizēti aprakstītu katru darbību, menedžers/komandas vadītājs var norādīt uz makro, kas tiek izmantots dažādos scenārijos.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Radās kļūda. Lūdzu, mēģiniet vēlreiz",
"ORDER_INFO": "Makro darbosies tādā secībā, kādā Jūs pievienosit savas darbības. Jūs varat tos pārkārtot, velkot tos aiz roktura kas atrodas blakus katram mezglam.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nosaukums",
- "Izveidoja",
- "Pēdējo reizi atjaunināja",
- "Redzamība"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nosaukums",
+ "CREATED BY": "Izveidoja",
+ "LAST_UPDATED_BY": "Pēdējo reizi atjaunināja",
+ "VISIBILITY": "Redzamība",
+ "ACTIONS": "Darbības"
+ },
"404": "Nav atrasts neviens makro"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Dzēšot makro radās kļūda. Lūdzu, vēlāk mēģiniet vēlreiz"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Rediģēt makro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Makro Redzamība",
"GLOBAL": {
"LABEL": "Publisks",
- "DESCRIPTION": "Šis makro ir publiski pieejams visiem šī konta aģentiem."
+ "DESCRIPTION": "Šis makro ir publiski pieejams visiem šī konta aģentiem.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privāts",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Izpildīt",
"PREVIEW": "Priekšskatīt Makro",
"EXECUTED_SUCCESSFULLY": "Makro ir veiksmīgi izpildīts"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Nepieciešama atribūta atslēga",
+ "FILTER_OPERATOR_REQUIRED": "Nepieciešams filtra operators",
+ "VALUE_REQUIRED": "Nepieciešama vērtība",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Vērtībai ir jābūt no 1 līdz 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nav",
+ "LOW": "Zema",
+ "MEDIUM": "Vidēja",
+ "HIGH": "Augsta",
+ "URGENT": "Steidzama"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/mfa.json b/app/javascript/dashboard/i18n/locale/lv/mfa.json
new file mode 100644
index 000000000..090d59682
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Iespējots",
+ "DISABLED": "Atspējots",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Notiek ielāde...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopēt",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Atcelt",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Lejupielādēt",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Parole",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Atcelt",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Atcelt",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/onboarding.json b/app/javascript/dashboard/i18n/locale/lv/onboarding.json
new file mode 100644
index 000000000..daca080c3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-pasts",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Tīmekļa vietne",
+ "LANGUAGE": "Valoda",
+ "TIMEZONE": "Laika zona",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Izvēlieties laika joslu",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Notiek saglabāšana...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/report.json b/app/javascript/dashboard/i18n/locale/lv/report.json
index 6fd89a411..c9e32d7d2 100644
--- a/app/javascript/dashboard/i18n/locale/lv/report.json
+++ b/app/javascript/dashboard/i18n/locale/lv/report.json
@@ -3,7 +3,7 @@
"HEADER": "Sarunas",
"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_AGENT_REPORTS": "Lejupielādēt aģentu pārskatus",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Neizdevās izgūt datus. Lūdzu, vēlāk mēģiniet vēlreiz.",
"SUMMARY_FETCHING_FAILED": "Neizdevās izgūt kopsavilkumu. Lūdzu, vēlāk mēģiniet vēlreiz.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Pirmās Atbildes Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_TIME": {
"NAME": "Atrisināšanas Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Atrisināšanas Laiks ir %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Atrisināšanas Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_COUNT": {
"NAME": "Atrisināšanas Skaits",
"DESC": "( Kopā )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Atrisināšanas Skaits",
+ "DESC": "( Kopā )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Nodošanas Skaits",
+ "DESC": "( Kopā )"
+ },
"REPLY_TIME": {
"NAME": "Klienta gaidīšanas laiks",
- "TOOLTIP_TEXT": "Gaidīšanas laiks ir %{metricValue} (pamatojoties uz %{conversationCount} atbildēm)"
+ "TOOLTIP_TEXT": "Gaidīšanas laiks ir {metricValue} (pamatojoties uz {conversationCount} atbildēm)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Pēdējās 7 dienas",
+ "LAST_14_DAYS": "Pēdējās 14 dienas",
"LAST_30_DAYS": "Pēdējās 30 dienas",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Pēdējie 3 mēneši",
"LAST_6_MONTHS": "Pēdējie 6 mēneši",
"LAST_YEAR": "Pagājušais gads",
"CUSTOM_DATE_RANGE": "Pielāgots datumu diapazons"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Pēdējās 7 dienas"
- },
- {
- "id": 1,
- "name": "Pēdējās 30 dienas"
- },
- {
- "id": 2,
- "name": "Pēdējie 3 mēneši"
- },
- {
- "id": 3,
- "name": "Pēdējie 6 mēneši"
- },
- {
- "id": 4,
- "name": "Pagājušais gads"
- },
- {
- "id": 5,
- "name": "Pielāgots datumu diapazons"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Pielietot",
"PLACEHOLDER": "Izvēlieties datumu diapazonu"
@@ -130,14 +116,28 @@
"groupBy": "Mēnesis"
}
],
- "BUSINESS_HOURS": "Darba Laiks"
+ "BUSINESS_HOURS": "Darba Laiks",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Notīrīt filtru",
+ "EMPTY_LIST": "Nav atrasts"
+ },
+ "PAGINATION": {
+ "RESULTS": "Rāda {start} līdz {end} no {total} rezultātiem",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Aģentu Pārskats",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Lejupielādēt aģentu pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Aģentu",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Meklēt aģentus"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -155,13 +155,13 @@
"NAME": "Pirmās Atbildes Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_TIME": {
"NAME": "Atrisināšanas Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Atrisināšanas Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Atrisināšanas Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_COUNT": {
"NAME": "Atrisināšanas Skaits",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Etiķeti",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Meklēt etiķetes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -222,13 +228,13 @@
"NAME": "Pirmās Atbildes Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_TIME": {
"NAME": "Atrisināšanas Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Atrisināšanas Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Atrisināšanas Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_COUNT": {
"NAME": "Atrisināšanas Skaits",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Iesūtnes Pārskats",
+ "DESCRIPTION": "Ātri apskatiet iesūtnes veiktspēju, izmantojot galvenos rādītājus, piemēram, sarunas, atbildes laikus, atrisināšanas laikus un atrisinātos gadījumus. Lai iegūtu plašāku informāciju, noklikšķiniet uz iesūtnes nosaukuma.",
"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_INBOX_REPORTS": "Lejupielādēt iesūtnes pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Iesūtni",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -289,13 +303,13 @@
"NAME": "Pirmās Atbildes Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_TIME": {
"NAME": "Atrisināšanas Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Atrisināšanas Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Atrisināšanas Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_COUNT": {
"NAME": "Atrisināšanas Skaits",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Komandas Pārskats",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Lejupielādēt komandas pārskatus",
"FILTER_DROPDOWN_LABEL": "Izvēlieties Komandu",
+ "FILTERS": {
+ "ADD_FILTER": "Pievienot filtru",
+ "CLEAR_ALL": "Notīrīt visu",
+ "NO_FILTER": "Nav pieejami filtri",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Meklēt komandas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Sarunas",
@@ -356,13 +379,13 @@
"NAME": "Pirmās Atbildes Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Pirmās Atbildes Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_TIME": {
"NAME": "Atrisināšanas Laiks",
"DESC": "( Vidēji )",
"INFO_TEXT": "Kopējais aprēķiniem izmantoto sarunu skaits:",
- "TOOLTIP_TEXT": "Atrisināšanas Laiks ir %{metricValue} (pamatojoties uz %{conversationCount} sarunām)"
+ "TOOLTIP_TEXT": "Atrisināšanas Laiks ir {metricValue} (pamatojoties uz {conversationCount} sarunām)"
},
"RESOLUTION_COUNT": {
"NAME": "Atrisināšanas Skaits",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Pārskati",
- "NO_RECORDS": "CSAT aptaujas atbildes nav pieejamas.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Lejupielādēt CSAT Pārskatus",
"DOWNLOAD_FAILED": "Neizdevās lejupielādēt CSAT Pārskatus",
"FILTERS": {
+ "ADD_FILTER": "Pievienot filtru",
+ "CLEAR_ALL": "Notīrīt visu",
+ "NO_FILTER": "Nav pieejami filtri",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Meklēt aģentus",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Meklēt komandas",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Izvēlieties Aģentus"
+ "LABEL": "Aģents"
+ },
+ "INBOXES": {
+ "LABEL": "Iesūtne"
+ },
+ "TEAMS": {
+ "LABEL": "Komanda"
+ },
+ "RATINGS": {
+ "LABEL": "Vērtējums"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontaktpersona",
- "AGENT_NAME": "Piešķirtais aģents",
+ "AGENT_NAME": "Aģents",
"RATING": "Vērtējums",
- "FEEDBACK_TEXT": "Atsauksmes komentārs"
- }
+ "FEEDBACK_TEXT": "Atsauksmes komentārs",
+ "CONVERSATION": "Saruna",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Atbilde",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Kopējais atbilžu skaits",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Atbildes ātrums",
"TOOLTIP": "Kopējais atbilžu skaits / Kopējais nosūtīto CSAT aptaujas ziņojumu skaits * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Saglabāt",
+ "CANCEL": "Atcelt",
+ "SAVING": "Notiek saglabāšana...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Robotu Atskaites",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "Sarunu Skaits",
+ "TOOLTIP": "Kopējais robota apstrādāto sarunu skaits"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Kopējais atbilžu skaits",
+ "TOOLTIP": "Kopējais robota nosūtīto atbilžu skaits"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Atrisināšanas Apjoms",
+ "TOOLTIP": "Kopējais robota atrisināto sarunu skaits / kopējais robota apstrādāto sarunu skaits * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Nodošanas Apjoms",
+ "TOOLTIP": "Kopējais aģentiem nodoto sarunu skaits / kopējais robota apstrādāto sarunu skaits * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Sarunu Satiksme",
"NO_CONVERSATIONS": "Nav sarunu",
- "CONVERSATION": "%{count} saruna",
- "CONVERSATIONS": "%{count} sarunas"
+ "CONVERSATION": "{count} saruna",
+ "CONVERSATIONS": "{count} sarunas",
+ "DOWNLOAD_REPORT": "Lejupielādēt atskaiti"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Nav sarunu",
+ "CONVERSATION": "{count} saruna",
+ "CONVERSATIONS": "{count} sarunas",
+ "DOWNLOAD_REPORT": "Lejupielādēt atskaiti"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Aģentu sarunas",
@@ -456,7 +553,19 @@
"NO_AGENTS": "Aģentu sarunas nenotiek",
"TABLE_HEADER": {
"AGENT": "Aģents",
- "OPEN": "ATVĒRT",
+ "OPEN": "Atvērt",
+ "UNATTENDED": "Bez uzraudzības",
+ "STATUS": "Statuss"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "Visas Komandas",
+ "HEADER": "Komandu sarunas",
+ "LOADING_MESSAGE": "Notiek komandu metrikas ielāde...",
+ "NO_TEAMS": "Dati nav pieejami",
+ "TABLE_HEADER": {
+ "TEAM": "Komanda",
+ "OPEN": "Atvērt",
"UNATTENDED": "Bez uzraudzības",
"STATUS": "Statuss"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Ceturtdiena",
"FRIDAY": "Piektdiena",
"SATURDAY": "Sestdiena"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Atskaites",
+ "NO_RECORDS": "SLA sarunas nav pieejamas.",
+ "LOADING": "Notiek SLA datu ielāde...",
+ "DOWNLOAD_SLA_REPORTS": "Lejupielādēt SLA atskaites",
+ "DOWNLOAD_FAILED": "Neizdevās lejupielādēt SLA atskaites",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Pievienot filtru",
+ "CLEAR_ALL": "Notīrīt visu",
+ "CLEAR_FILTER": "Notīrīt filtru",
+ "EMPTY_LIST": "Nav atrasts",
+ "NO_FILTER": "Nav pieejami filtri",
+ "SEARCH": "Meklēšanas filtrs",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA nosaukums",
+ "AGENTS": "Aģenta vārds",
+ "INBOXES": "Iesūtnes nosaukums",
+ "LABELS": "Etiķetes nosaukums",
+ "TEAMS": "Komandas nosaukums"
+ },
+ "SLA": "SLA politika",
+ "INBOXES": "Iesūtne",
+ "AGENTS": "Aģents",
+ "LABELS": "Etiķete",
+ "TEAMS": "Komanda"
+ },
+ "WITH": "ar",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Rezultātu Līmenis",
+ "TOOLTIP": "Izveidoto SLA procentuālā daļa tika veiksmīgi pabeigta"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Nokavēto Skaits",
+ "TOOLTIP": "Kopējais nokavēto SLA skaits noteiktā periodā"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Sarunu Skaits",
+ "TOOLTIP": "Kopējais sarunu skaits ar SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Politika",
+ "CONVERSATION": "Saruna",
+ "AGENT": "Aģents"
+ },
+ "VIEW_DETAILS": "Skatīt Detaļas"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Atrisināšanas Skaits",
+ "CONVERSATIONS": "Sarunu skaits"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/search.json b/app/javascript/dashboard/i18n/locale/lv/search.json
index 42c0b0608..2c5225216 100644
--- a/app/javascript/dashboard/i18n/locale/lv/search.json
+++ b/app/javascript/dashboard/i18n/locale/lv/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Visi",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "Vaicājumam '%{query}' nav atrasts neviens %{item} vienums",
- "EMPTY_STATE_FULL": "Vaicājumam '%{query}' nav atrasts neviens rezultāts",
- "PLACEHOLDER_KEYBINDING": "/ fokusēt",
+ "VIEW_MORE": "Skatīt vairāk",
+ "LOAD_MORE": "Ielādēt vairāk",
+ "SEARCHING_DATA": "Meklēšana",
+ "LOADING_DATA": "Notiek ielāde",
+ "EMPTY_STATE": "Vaicājumam '{query}' nav atrasts neviens {item} vienums",
+ "EMPTY_STATE_FULL": "Vaicājumam '{query}' nav atrasts neviens rezultāts",
+ "PLACEHOLDER_KEYBINDING": "/fokusēt",
"INPUT_PLACEHOLDER": "Ievadiet 3, vai vairāk, rakstzīmes, lai meklētu",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Notīrīt visu",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Lai iegūtu labākus meklēšanas rezultātus, meklējiet pēc sarunas Id, e-pasta, tālruņa numura vai ziņām. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Lasīt vairāk",
+ "READ_LESS": "Read less",
"WROTE": "rakstīja:",
- "FROM": "no",
- "EMAIL": "e-pasts"
+ "FROM": "No",
+ "EMAIL": "E-pasts",
+ "EMAIL_SUBJECT": "Tēma",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "izveidots {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Pēdējās 7 dienas",
+ "LAST_30_DAYS": "Pēdējās 30 dienas",
+ "LAST_60_DAYS": "Pēdējās 60 dienas",
+ "LAST_90_DAYS": "Pēdējās 90 dienas",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Pielietot",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Notīrīt filtru"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sūtītājs",
+ "IN": "Iesūtne",
+ "AGENTS": "Aģenti",
+ "CONTACTS": "Kontaktpersonas",
+ "INBOXES": "Iesūtnes",
+ "NO_AGENTS": "Aģenti nav atrasti",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/settings.json b/app/javascript/dashboard/i18n/locale/lv/settings.json
index 05ab720b8..2f8d166d3 100644
--- a/app/javascript/dashboard/i18n/locale/lv/settings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Jūsu parole ir veiksmīgi nomainīta",
"AFTER_EMAIL_CHANGED": "Jūsu profils ir veiksmīgi atjaunināts. Lūdzu, atkārtoti pierakstieties, jo Jūsu akreditācijas dati ir mainīti",
"FORM": {
+ "PICTURE": "Profila Attēls",
"AVATAR": "Profila Attēls",
"ERROR": "Lūdzu, izlabojiet veidlapas kļūdas",
"REMOVE_IMAGE": "Noņemt",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interfeiss",
+ "NOTE": "Pielāgot sava Chatwoot informācijas paneļa izskatu un darbību.",
+ "FONT_SIZE": {
+ "TITLE": "Fonta lielums",
+ "NOTE": "Pielāgot teksta lielumu informācijas panelī, atbilstoši savām vēlmēm.",
+ "UPDATE_SUCCESS": "Fonta iestatījumi ir veiksmīgi atjaunināti",
+ "UPDATE_ERROR": "Atjauninot fonta iestatījumus radās kļūda. Lūdzu, mēģiniet vēlreiz",
+ "OPTIONS": {
+ "SMALLER": "Mazāks",
+ "SMALL": "Mazs",
+ "DEFAULT": "Noklusējums",
+ "LARGE": "Liels",
+ "LARGER": "Lielāks",
+ "EXTRA_LARGE": "Īpaši Liels"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personīgais ziņojuma paraksts",
"NOTE": "Izveidot unikālu ziņojuma parakstu, kas parādās katra ziņojuma beigās, kuru sūtāt no jebkuras iesūtnes. Varat arī iekļaut attēlu, kas tiek atbalstīts tiešraidē, e-pastā un API iesūtnēs.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Paraksts ir veiksmīgi saglabāts",
"IMAGE_UPLOAD_ERROR": "Nevarēja augšupielādēt attēlu! Lūdzu, mēģiniet vēlreiz",
"IMAGE_UPLOAD_SUCCESS": "Attēls ir veiksmīgi pievienots. Lūdzu, noklikšķiniet uz saglabāt, lai saglabātu parakstu",
- "IMAGE_UPLOAD_SIZE_ERROR": "Attēla izmēram ir jābūt mazākam par {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Attēla izmēram ir jābūt mazākam par {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Ziņojuma Paraksts",
@@ -54,15 +81,45 @@
"NOTE": "Paroles atjaunināšana varētu atiestatīt jūsu pierakstīšanos vairākās ierīcēs.",
"BTN_TEXT": "Mainīt paroli"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Piekļuves Token",
- "NOTE": "Šo token var izmantot, ja veidojat uz API balstītu integrāciju"
+ "NOTE": "Šo token var izmantot, ja veidojat uz API balstītu integrāciju",
+ "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 Paziņojumi",
- "NOTE": "Iespējot audio paziņojumus informācijas panelī jauniem ziņojumiem un sarunām.",
+ "TITLE": "Audio Brīdinājumi",
+ "NOTE": "Ieslēgt audio brīdinājumus informācijas panelī, priekš jauniem ziņojumiem un sarunām.",
+ "PLAY": "Atskaņot skaņu",
+ "ALERT_TYPES": {
+ "NONE": "Nav",
+ "MINE": "Piešķirts",
+ "ALL": "Visi",
+ "ASSIGNED": "Man piešķirtās sarunas",
+ "UNASSIGNED": "Nepiešķirtās sarunas",
+ "NOTME": "Atvērt citiem piešķirtās sarunas"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Jūs neesat izvēlējies nevienu opciju, jūs nesaņemsiet audio brīdinājumus.",
+ "ASSIGNED": "Jūs saņemsiet brīdinājumus par jums piešķirtajām sarunām.",
+ "UNASSIGNED": "Jūs saņemsiet brīdinājumus par nepiešķirtām sarunām.",
+ "NOTME": "Jūs saņemsiet brīdinājumus par sarunām, kas piešķirtas citiem.",
+ "ASSIGNED+UNASSIGNED": "Jūs saņemsiet brīdinājumus par piešķirtajām sarunām un visām bez uzraudzības atstātām sarunām.",
+ "ASSIGNED+NOTME": "Jūs saņemsiet brīdinājumus par sarunām, kas piešķirtas jums un citiem, bet ne par sarunām, kas nav piešķirtas.",
+ "NOTME+UNASSIGNED": "Jūs saņemsiet brīdinājumus par sarunām, kas ir bez uzraudzības, kā arī par sarunām, kas piešķirtas citiem.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Jūs saņemsiet brīdinājumus par visām sarunām."
+ },
"ALERT_TYPE": {
- "TITLE": "Brīdinājumu notikumi:",
+ "TITLE": "Brīdinājuma notikumi sarunām",
"NONE": "Nav",
"ASSIGNED": "Piešķirtās Sarunas",
"ALL_CONVERSATIONS": "Visas Sarunas"
@@ -74,7 +131,9 @@
"TITLE": "Brīdinājumu nosacījumi:",
"CONDITION_ONE": "Sūtīt audio brīdinājumus tikai tad, ja pārlūkprogrammas logs nav aktīvs",
"CONDITION_TWO": "Sūtīt brīdinājumus ik pēc 30 sekundēm, līdz visas piešķirtās sarunas ir izlasītas"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Automātiskā atskaņošana jūsu pārlūkprogrammā ir atspējota. Lai automātiski dzirdētu brīdinājumus, pārlūkprogrammas iestatījumos iespējojiet skaņas atļauju vai mijiedarbojieties ar lapu.",
+ "READ_MORE": "Lasīt vairāk"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-pasta Ziņojumi",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Nosūtīt e -pasta paziņojumus, kad tiek izveidota jauna saruna",
"CONVERSATION_MENTION": "Nosūtīt e -pasta paziņojumus, kad tiekat pieminēts sarunā",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nosūtīt e -pasta paziņojumus, kad piešķirtā sarunā tiek izveidots jauns ziņojums",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Sūtīt e-pasta paziņojumus, kad sarunā tiek izveidots jauns ziņojums"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Sūtīt e-pasta paziņojumus, kad sarunā tiek izveidots jauns ziņojums",
+ "SLA_MISSED_FIRST_RESPONSE": "Nosūtīt e-pasta paziņojumus, ja sarunā tiek nokavēts pirmās atbildes SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Nosūtīt e-pasta paziņojumus, ja sarunā tiek nokavēts nākamās atbildes SLA",
+ "SLA_MISSED_RESOLUTION": "Nosūtīt e-pasta paziņojumus, ja sarunā tiek nokavēts atrisināšanas SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Paziņojumu preferences",
+ "TYPE_TITLE": "Paziņojuma veids",
+ "EMAIL": "E-pasts",
+ "PUSH": "Push paziņojums",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Tiek izveidota jauna saruna",
+ "CONVERSATION_ASSIGNED": "Jums ir piešķirta saruna",
+ "CONVERSATION_MENTION": "Jūs esat pieminēts sarunā",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Piešķirtajā sarunā ir izveidots jauns ziņojums",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Dalības sarunā ir izveidots jauns ziņojums",
+ "SLA_MISSED_FIRST_RESPONSE": "Sarunā ir nokavēts pirmās atbildes SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Sarunā ir nokavēts nākamās atbildes SLA",
+ "SLA_MISSED_RESOLUTION": "Sarunā ir nokavēts atrisināšanas SLA"
+ },
+ "BROWSER_PERMISSION": "Iespējojiet push paziņojumus savā pārlūkprogrammā, lai varētu tos saņemt"
},
"API": {
"UPDATE_SUCCESS": "Jūsu paziņojumu preferences ir veiksmīgi atjauninātas",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nosūtīt push paziņojumus, kad piešķirtā sarunā tiek izveidots jauns ziņojums",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Sūtīt push paziņojumus, kad sarunā tiek izveidots jauns ziņojums",
"HAS_ENABLED_PUSH": "Jūs esat iespējojis push šajā pārlūkprogrammā.",
- "REQUEST_PUSH": "Iespējot push paziņojumus"
+ "REQUEST_PUSH": "Iespējot push paziņojumus",
+ "SLA_MISSED_FIRST_RESPONSE": "Nosūtīt push paziņojumus, ja sarunā tiek nokavēts pirmās atbildes SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Nosūtīt push paziņojumus, ja sarunā tiek nokavēts nākamās atbildes SLA",
+ "SLA_MISSED_RESOLUTION": "Nosūtīt push paziņojumus, ja sarunā tiek nokavēts atrisināšanas SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profila Attēls"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Pieejamība",
- "STATUSES_LIST": [
- "Tiešsaistē",
- "Aizņemts",
- "Bezsaistē"
- ],
+ "STATUS": {
+ "ONLINE": "Tiešsaistē",
+ "BUSY": "Aizņemts",
+ "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",
@@ -147,13 +230,17 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Mainīt",
- "CHANGE_ACCOUNTS": "Pārslēgt Kontu",
- "CONTACT_SUPPORT": "Sazināties ar Atbalsta Dienestu",
+ "CHANGE_ACCOUNTS": "Pārslēgt kontu",
+ "SWITCH_ACCOUNT": "Pārslēgt kontu",
+ "CONTACT_SUPPORT": "Sazināties ar atbalstu",
"SELECTOR_SUBTITLE": "Izvēlieties kontu no šī saraksta",
- "PROFILE_SETTINGS": "Profila Iestatījumi",
- "KEYBOARD_SHORTCUTS": "Tastatūras Īsinājumtaustiņi",
- "APPEARANCE": "Mainīt Izskatu",
- "SUPER_ADMIN_CONSOLE": "Superadministratora Konsole",
+ "PROFILE_SETTINGS": "Profila iestatījumi",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Tastatūras īsinājumtaustiņi",
+ "APPEARANCE": "Mainīt izskatu",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin konsole",
+ "DOCS": "Lasīt dokumentāciju",
+ "CHANGELOG": "Changelog",
"LOGOUT": "Izrakstīties"
},
"APP_GLOBAL": {
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Konts Iesaldēts",
"MESSAGE": "Jūsu konts ir iesaldēts. Lai iegūtu papildu informāciju, lūdzu, sazinieties ar atbalsta komandu."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Izrakstīties"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Lejupielādēt",
"UPLOADING": "Notiek augšupielāde...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Šis stāsts vairs nav pieejams."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Šis stāsts vairs nav pieejams.",
+ "INSTAGRAM_STORY_REPLY": "Atbildēja uz Jūsu stāstu:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Skatīt kartē"
},
"FORM_BUBBLE": {
"SUBMIT": "Iesniegt"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Šis attēls vairs nav pieejams.",
+ "LOADING_FAILED": "Ielāde neizdevās"
}
},
"CONFIRM_EMAIL": "Notiek pārbaude...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "Nav vienumu",
"CURRENTLY_VIEWING_ACCOUNT": "Pašlaik skatās:",
"SWITCH": "Pārslēgt",
+ "INBOX_VIEW": "Iesūtnes Skats",
"CONVERSATIONS": "Sarunas",
- "INBOX": "Iesūtne",
+ "INBOX": "Mana Iesūtne",
"ALL_CONVERSATIONS": "Visas Sarunas",
"MENTIONED_CONVERSATIONS": "Pieminēšanas",
"PARTICIPATING_CONVERSATIONS": "Piedalās",
@@ -208,6 +308,18 @@
"REPORTS": "Pārskati",
"SETTINGS": "Iestatījumi",
"CONTACTS": "Kontaktpersonas",
+ "ACTIVE": "Aktīvs",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Asistenti",
+ "CAPTAIN_DOCUMENTS": "Dokumenti",
+ "CAPTAIN_RESPONSES": "Bieži uzdotie jautājumi",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Iesūtnes",
+ "CAPTAIN_SETTINGS": "Iestatījumi",
"HOME": "Sākums",
"AGENTS": "Aģenti",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Jauna iesūtne",
"REPORTS_CONVERSATION": "Sarunas",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Tiešraides tērzēšana",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampaņas",
"ONGOING": "Notiekošs",
"ONE_OFF": "Vienreizējs",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Aģenti",
"REPORTS_LABEL": "Etiķetes",
"REPORTS_INBOX": "Iesūtne",
"REPORTS_TEAM": "Komanda",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Iestatīt sevi kā",
+ "SET_YOUR_AVAILABILITY": "Iestatīt savu pieejamību",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Pielāgotas lomas",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Pārskats",
- "FACEBOOK_REAUTHORIZE": "Jūsu Facebook savienojuma derīguma termiņš ir beidzies. Lūdzu, atkārtoti pievienojiet savu Facebook lapu, lai turpinātu pakalpojumus",
+ "REAUTHORIZE": "Jūsu iesūtnes savienojuma termiņš ir beidzies. Lūdzu, pievienojiet vēlreiz\n lai turpinātu saņemt un sūtīt ziņas",
"HELP_CENTER": {
"TITLE": "Palīdzības centrs",
- "ALL_ARTICLES": "Visi Raksti",
- "MY_ARTICLES": "Mani Raksti",
- "DRAFT": "Melnraksts",
- "ARCHIVED": "Arhivēts",
- "CATEGORY": "Kategorija",
- "SETTINGS": "Iestatījumi",
- "CATEGORY_EMPTY_MESSAGE": "Kategorijas nav atrastas"
+ "ARTICLES": "Raksti",
+ "CATEGORIES": "Kategorijas",
+ "LOCALES": "Lokalizācijas",
+ "SETTINGS": "Iestatījumi"
},
+ "CHANNELS": "Kanāli",
"SET_AUTO_OFFLINE": {
"TEXT": "Automātiski atzīmēt bezsaistē",
- "INFO_TEXT": "Ļaut sistēmai, kad neizmantojat lietotni vai informācijas paneli, automātiski atzīmēt Jūs bezsaistē."
+ "INFO_TEXT": "Ļaut sistēmai, kad neizmantojat lietotni vai informācijas paneli, automātiski atzīmēt Jūs bezsaistē.",
+ "INFO_SHORT": "Automātiski atzīmēt bezsaistē, kad neizmantojat lietotni."
},
- "DOCS": "Lasīt dokumentus"
+ "DOCS": "Lasīt dokumentus",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Asistents",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Īpašības",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Norēķini",
+ "DESCRIPTION": "Pārvaldiet savu abonementu šeit. Modernizējiet abonementu un iegūstiet papildu funkcijas savai komandai.",
"CURRENT_PLAN": {
"TITLE": "Pašreizējais Norēķinu Plāns",
- "PLAN_NOTE": "Šobrīd Jūs abonējat **%{plan}** plānu ar **%{quantity}** licencēm"
+ "PLAN_NOTE": "Šobrīd Jūs abonējat **{plan}** plānu ar **{quantity}** licencēm",
+ "SEAT_COUNT": "Lietotāju skaits",
+ "RENEWS_ON": "Atjaunojas"
},
+ "VIEW_PRICING": "Skatīt Izcenojumu",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Pārvaldīt savu abonementu",
"DESCRIPTION": "Apskatīt iepriekšējos rēķinus, rediģēt norēķinu informāciju vai atcelt abonementu.",
"BUTTON_TXT": "Doties uz norēķinu portālu"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Pārvaldīt Captain AI lietošanu un kredītus.",
+ "BUTTON_TXT": "Iegādāties vairāk kredītu",
+ "DOCUMENTS": "Dokumenti",
+ "RESPONSES": "Atbildes",
+ "UPGRADE": "Captain nav pieejams bezmaksas abonementā. Modernizējiet abonementu tūlīt, lai piekļūtu asistentiem un copilot.",
+ "REFRESH_CREDITS": "Atjaunot"
+ },
"CHAT_WITH_US": {
"TITLE": "Nepieciešama palīdzība?",
"DESCRIPTION": "Vai Jūs saskārāties ar kādām problēmām norēķinu laikā? Mēs esam šeit, lai palīdzētu.",
"BUTTON_TXT": "Tērzēt ar mums"
},
- "NO_BILLING_USER": "Jūsu norēķinu konts tiek konfigurēts. Lūdzu, atsvaidziniet lapu un mēģiniet vēlreiz."
+ "NO_BILLING_USER": "Jūsu norēķinu konts tiek konfigurēts. Lūdzu, atsvaidziniet lapu un mēģiniet vēlreiz.",
+ "TOPUP": {
+ "BUY_CREDITS": "Iegādāties vairāk kredītu",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Piezīme:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Atcelt",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Atgriezties",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Kopēts starpliktuvē",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Meklēt īpašības"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Atrisināt sarunu",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Atrisināt sarunu",
+ "CANCEL": "Atcelt"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Izvēlieties opciju"
+ },
+ "CHECKBOX": {
+ "YES": "Jā",
+ "NO": "Nē"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ak, vai! Mēs nevarējām atrast nevienu chatwoot kontu. Lūdzu, izveidojiet jaunu kontu, lai turpinātu.",
@@ -294,7 +624,8 @@
"LABEL": "Uzņēmuma Nosaukums",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Iesniegt"
+ "SUBMIT": "Iesniegt",
+ "CANCEL": "Atcelt"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Doties uz Pārskatu sānjoslu",
"MOVE_TO_NEXT_TAB": "Pāriet uz sarunu saraksta nākamo cilni",
"GO_TO_SETTINGS": "Doties uz Iestatījumiem",
- "SWITCH_CONVERSATION_STATUS": "Pārslēgties uz nākamās sarunas statusu",
"SWITCH_TO_PRIVATE_NOTE": "Pārslēgties uz Privāto Piezīmi",
"SWITCH_TO_REPLY": "Pārslēgties uz Atbildi",
"TOGGLE_SNOOZE_DROPDOWN": "Pārslēgt atlikšanas nolaižamo izvēlni"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioritāte",
+ "ACTIVE": "Aktīvs",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Rediģēt"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Atcelt"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts:",
+ "PLACEHOLDER": "Ievadiet aprakstu"
+ },
+ "STATUS": {
+ "LABEL": "Statuss:",
+ "PLACEHOLDER": "Izvēlēties statusu",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Pievienot"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Rediģēt"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Atcelt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Apraksts:",
+ "PLACEHOLDER": "Ievadiet aprakstu"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Pievienot"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Dzēst",
+ "CANCEL_BUTTON_LABEL": "Atcelt"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/signup.json b/app/javascript/dashboard/i18n/locale/lv/signup.json
index 7374b9abd..8748e7803 100644
--- a/app/javascript/dashboard/i18n/locale/lv/signup.json
+++ b/app/javascript/dashboard/i18n/locale/lv/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Izveidot kontu",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Reģistrēt",
"TESTIMONIAL_HEADER": "Viss, kas nepieciešams, ir viens solis, lai virzītos uz priekšu",
"TESTIMONIAL_CONTENT": "Jūs esat viena soļa attālumā no klientu piesaistīšanas, noturēšanas un jaunu klientu atrašanas.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Darba e-pasts",
- "PLACEHOLDER": "Ievadiet savu darba e-pasta adresi. Piemēram, bruce@wayne.enterprises",
+ "PLACEHOLDER": "Ievadiet savu darba e-pasta adresi. Piemēram, bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Lūdzu, ievadiet derīgu darba e-pasta adresi."
},
"PASSWORD": {
"LABEL": "Parole",
"PLACEHOLDER": "Parole",
"ERROR": "Parole ir pārāk īsa",
- "IS_INVALID_PASSWORD": "Parolei ir jāsatur vismaz 1 lielais burts, 1 mazais burts, 1 cipars un 1 speciālā rakstzīme."
+ "IS_INVALID_PASSWORD": "Parolei ir jāsatur vismaz 1 lielais burts, 1 mazais burts, 1 cipars un 1 speciālā rakstzīme.",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Apstipriniet paroli",
"PLACEHOLDER": "Apstipriniet paroli",
- "ERROR": "Parole nesakrīt."
+ "ERROR": "Paroles nesakrīt."
},
"API": {
- "SUCCESS_MESSAGE": "Reģistrācija sekmīga",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Nevarēja izveidot savienojumu ar Woot serveri. Lūdzu mēģiniet vēlreiz."
},
"SUBMIT": "Izveidot kontu",
- "HAVE_AN_ACCOUNT": "Jau ir konts?"
+ "HAVE_AN_ACCOUNT": "Jau ir konts?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Sūtīt verifikācijas e-pastu atkārtoti",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/sla.json b/app/javascript/dashboard/i18n/locale/lv/sla.json
index 24e332661..502a317f0 100644
--- a/app/javascript/dashboard/i18n/locale/lv/sla.json
+++ b/app/javascript/dashboard/i18n/locale/lv/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Pievienot SLA",
+ "HEADER": "Servisa Līmeņa Līgumi",
+ "ADD_ACTION": "Pievienot SLA",
+ "ADD_ACTION_LONG": "Izveidot jaunu SLA politiku",
+ "DESCRIPTION": "Pakalpojuma līmeņa līgumi (SLA) ir līgumi, kas nosaka skaidras cerības starp jūsu komandu un klientiem. Tie nosaka atbildes un atrisināšanas laika standartus, veidojot pārskatatbildības sistēmu un nodrošinot konsekventu, augstas kvalitātes pieredzi.",
+ "LEARN_MORE": "Uzzināt vairāk par SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Notiek SLA iegūšana",
- "SEARCH_404": "Šim vaicājumam nav atbilstošu vienumu",
- "SIDEBAR_TXT": "SLA
Uztveriet Pakalpojuma Līmeņa Vienošanos (SLA) kā draudzīgu solījumu starp pakalpojumu sniedzēju un klientu.
Šis solījums skaidri nosaka cik ātri komanda reaģēs uz problēmām un nodrošina, ka Jūs vienmēr saņemsiet uzticamu un izcilu pakalpojumu!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Pārejiet uz maksas versiju, lai izveidotu SLA",
+ "AVAILABLE_ON": "SLA funkcija ir pieejama tikai Business un Enterprise versijās.",
+ "UPGRADE_PROMPT": "Pārejiet uz maksas versiju, lai iegūtu piekļuvi pie papildu funkcijām. Piemēram: komandas pārvaldībai, automatizācijai, pielāgotiem atribūtiem, un citām.",
+ "UPGRADE_NOW": "Pāriet uz maksas versiju tagad",
+ "CANCEL_ANYTIME": "Jūs varat jebkurā laikā mainīt vai atcelt savu versiju"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SLA funkcija ir pieejama tikai maksas versijās.",
+ "UPGRADE_PROMPT": "Pārejiet uz maksas versiju, lai piekļūtu papildu funkcijām. Piemēram: audita žurnāliem, aģentu kapacitātei, un citām.",
+ "ASK_ADMIN": "Lai pārietu uz maksas versiju, lūdzu sazinieties ar savu administratoru."
+ },
"LIST": {
"404": "Šim kontam nav piesaistīti SLA līgumi.",
- "TITLE": "Pārvaldīt SLA",
- "DESC": "SLA: Draudzīgi solījumi priekš lieliska servisa!",
- "TABLE_HEADER": [
- "Nosaukums",
- "Apraksts",
- "FRT",
- "NRT",
- "RT",
- "Darba Laiks"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Uzņēmuma klientu izvirzītās problēmas, kurām nepieciešama tūlītēja uzmanība.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Uzņēmuma klientu izvirzītās problēmas, uz kurām ātri jāreaģē."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "Pirmās atbildes laika slieksnis",
+ "NRT": "Nākamās atbildes laika slieksnis",
+ "RT": "Atrisināšanas laika slieksnis",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Pievienot SLA",
- "DESC": "SLA: Draudzīgi solījumi priekš lieliska servisa!",
+ "DESC": "Draudzīgi solījumi priekš lieliska servisa!",
"API": {
"SUCCESS_MESSAGE": "SLA ir veiksmīgi pievienots",
"ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
}
},
- "EDIT": {
- "TITLE": "Rediģēt SLA",
+ "DELETE": {
+ "TITLE": "Dzēst SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA ir veiksmīgi atjaunināts",
+ "SUCCESS_MESSAGE": "SLA ir veiksmīgi izdzēsts",
"ERROR_MESSAGE": "Radās kļūda. Lūdzu, mēģiniet vēlreiz"
+ },
+ "CONFIRM": {
+ "TITLE": "Apstiprināt Dzēšanu",
+ "MESSAGE": "Vai tiešām vēlaties dzēst ",
+ "YES": "Jā, Dzēst ",
+ "NO": "Nē, Paturēt "
}
+ },
+ "EVENTS": {
+ "TITLE": "Nokavētie SLA",
+ "FRT": "Pirmās reakcijas laiks",
+ "NRT": "Nākamās reakcijas laiks",
+ "RT": "Atrisināšanas laiks",
+ "SHOW_MORE": "{count} vairāk",
+ "HIDE": "Slēpt {count} rindas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/snooze.json b/app/javascript/dashboard/i18n/locale/lv/snooze.json
new file mode 100644
index 000000000..35bcb5168
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "darba laiks",
+ "DAY": "diena",
+ "DAYS": "days",
+ "WEEK": "nedēļa",
+ "WEEKS": "weeks",
+ "MONTH": "mēnesis",
+ "MONTHS": "months",
+ "YEAR": "mēnesis",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "rītdiena",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "nākamā nedēļa",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "no",
+ "AFTER": "after",
+ "WEEK": "nedēļa",
+ "DAY": "diena"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json b/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
index 7e178ed59..0176b02c5 100644
--- a/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/lv/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Izveidot jaunu komandu",
"HEADER": "Komandas",
- "SIDEBAR_TXT": "Komandas
Komandas ļauj kārtot aģentus grupās, pamatojoties uz viņu pienākumiem.
Aģents var atrasties vairākās komandās. Jūs varat piešķirt sarunas komandai, kad sadarbojaties.
",
+ "LOADING": "Notiek komandu iegūšana",
+ "DESCRIPTION": "Komandas ļauj organizēt aģentus grupās, pamatojoties uz viņu pienākumiem. Aģents var piederēt vairākām komandām. Kad strādājat sadarbojoties, varat piešķirt sarunas noteiktām komandām.",
+ "LEARN_MORE": "Uzzināt vairāk par komandām",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Meklēt komandas...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Šajā kontā nav izveidota neviena komanda.",
- "EDIT_TEAM": "Rediģēt komandu"
+ "EDIT_TEAM": "Rediģēt komandu",
+ "NONE": "Nav"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Pievienot komandai aģentus",
- "TITLE": "Pievienot aģentus komandai - %{teamName}",
+ "TITLE": "Pievienot aģentus komandai - {teamName}",
"DESC": "Pievienot aģentus savai jaunizveidotajai komandai. Tas ļauj sarunās sadarboties kā komandai, kā arī saņemt paziņojumus par jauniem notikumiem tajā pašā sarunā."
},
- "WIZARD": [
- {
- "title": "Izveidot",
- "route": "settings_teams_new",
- "body": "Izveidot jaunu aģentu komandu."
- },
- {
- "title": "Pievienot Aģentus",
- "route": "settings_teams_add_agents",
- "body": "Pievienot komandai aģentus."
- },
- {
- "title": "Pabeigt",
- "route": "settings_teams_finish",
- "body": "Jūs varat sākt darboties!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Izveidot",
+ "BODY": "Izveidot jaunu aģentu komandu."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Pievienot Aģentus",
+ "BODY": "Pievienot komandai aģentus."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Pabeigt",
+ "BODY": "Jūs varat sākt darboties!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Atjaunināt aģentus komandā",
- "TITLE": "Pievienot aģentus komandai - %{teamName}",
+ "TITLE": "Pievienot aģentus komandai - {teamName}",
"DESC": "Pievienot aģentus savai jaunizveidotajai komandai. Visi pievienotie aģenti tiks informēti, kad saruna tiks piešķirta šai komandai."
},
- "WIZARD": [
- {
- "title": "Komandas informācija",
- "route": "settings_teams_edit",
- "body": "Mainīt nosaukumu, aprakstu un citu informāciju."
- },
- {
- "title": "Rediģēt Aģentus",
- "route": "settings_teams_edit_members",
- "body": "Rediģēt savas komandas aģentus."
- },
- {
- "title": "Pabeigt",
- "route": "settings_teams_edit_finish",
- "body": "Jūs varat sākt darboties!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Komandas informācija",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Mainīt nosaukumu, aprakstu un citu informāciju."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Rediģēt Aģentus",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Rediģēt savas komandas aģentus."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Pabeigt",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Jūs varat sākt darboties!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Nevarēja saglabāt komandas informāciju. Lūdzu, mēģiniet vēlreiz."
},
"AGENTS": {
- "AGENT": "AĢENTS",
- "EMAIL": "Epasts",
+ "AGENT": "Aģents",
+ "EMAIL": "E-pasts",
"BUTTON_TEXT": "Pievienot aģentus",
"ADD_AGENTS": "Notiek aģentu pievienošana Jūsu komandai...",
"SELECT": "izvēlēties",
"SELECT_ALL": "izvēlēties visus aģentus",
- "SELECTED_COUNT": "%{selected} no %{total} aģentiem ir izvēlēti."
+ "SELECTED_COUNT": "{selected} no {total} aģentiem ir atlasīti."
},
"ADD": {
- "TITLE": "Pievienot aģentus komandai - %{teamName}",
+ "TITLE": "Pievienot aģentus komandai - {teamName}",
"DESC": "Pievienot aģentus savai jaunizveidotajai komandai. Tas ļauj sarunās sadarboties kā komandai, tā arī saņemt paziņojumus par jauniem notikumiem tajā pašā sarunā.",
"SELECT": "izvēlēties",
"SELECT_ALL": "izvēlēties visus aģentus",
- "SELECTED_COUNT": "%{selected} no %{total} aģentiem ir atlasīti.",
+ "SELECTED_COUNT": "{selected} no {total} aģentiem ir atlasīti.",
"BUTTON_TEXT": "Pievienot aģentus",
"AGENT_VALIDATION_ERROR": "Izvēlieties vismaz vienu aģentu."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Nevarēja izdzēst komandu. Lūdzu, mēģiniet vēlreiz."
},
"CONFIRM": {
- "TITLE": "Vai esat pārliecināts, ka vēlaties izdzēst - %{teamName}",
+ "TITLE": "Vai tiešām vēlaties dzēst komandu?",
"PLACE_HOLDER": "Lūdzu, uzrakstiet {teamName} lai apstiprinātu",
"MESSAGE": "Komandas dzēšana noņems komandas uzdevumu no sarunām, kas piešķirtas šai komandai.",
"YES": "Dzēst ",
diff --git a/app/javascript/dashboard/i18n/locale/lv/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/lv/whatsappTemplates.json
index 5efbf01eb..29a6e3dd1 100644
--- a/app/javascript/dashboard/i18n/locale/lv/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/lv/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "WhatsApp Veidnes",
- "SUBTITLE": "Izvēlieties WhatsApp veidni, kuru vēlaties nosūtīt",
- "TEMPLATE_SELECTED_SUBTITLE": "Apstrādāt %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Meklēt Veidnes",
- "NO_TEMPLATES_FOUND": "Veidnes nav atrastas",
- "LABELS": {
- "LANGUAGE": "Valoda",
- "TEMPLATE_BODY": "Veidnes Pamatteksts",
- "CATEGORY": "Kategorija"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Mainīgie",
- "VARIABLE_PLACEHOLDER": "Ievadiet %{variable} vērtību",
- "GO_BACK_LABEL": "Atgriezties",
- "SEND_MESSAGE_LABEL": "Sūtīt Ziņojumu",
- "FORM_ERROR_MESSAGE": "Lūdzu, pirms nosūtīšanas aizpildiet visus mainīgos"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "WhatsApp Veidnes",
+ "SUBTITLE": "Izvēlieties WhatsApp veidni, kuru vēlaties nosūtīt",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Meklēt Veidnes",
+ "NO_TEMPLATES_FOUND": "Veidnes nav atrastas",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategorija",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Valoda",
+ "TEMPLATE_BODY": "Veidnes Pamatteksts",
+ "CATEGORY": "Kategorija"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Mainīgie",
+ "LANGUAGE": "Valoda",
+ "CATEGORY": "Kategorija",
+ "VARIABLE_PLACEHOLDER": "Ievadiet {variable} vērtību",
+ "GO_BACK_LABEL": "Atgriezties",
+ "SEND_MESSAGE_LABEL": "Sūtīt Ziņojumu",
+ "FORM_ERROR_MESSAGE": "Lūdzu, pirms nosūtīšanas aizpildiet visus mainīgos",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/lv/yearInReview.json b/app/javascript/dashboard/i18n/locale/lv/yearInReview.json
new file mode 100644
index 000000000..d14712cf8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/lv/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Aizvērt",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "sarunas",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Lejupielādēt",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json
index 8fb896cb2..3dd44f7c6 100644
--- a/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ml/advancedFilters.json
@@ -2,9 +2,9 @@
"FILTER": {
"TITLE": "സംഭാഷണങ്ങൾ തരം തിരിക്കുക",
"SUBTITLE": "Add your filters below and hit 'Apply filters' to cut through the chat clutter.",
- "EDIT_CUSTOM_FILTER": "Edit Folder",
- "CUSTOM_VIEWS_SUBTITLE": "Add or remove filters and update your folder.",
- "ADD_NEW_FILTER": "Add filter",
+ "EDIT_CUSTOM_FILTER": "ഫോൾഡർ എഡിറ്റ് ചെയ്യുക",
+ "CUSTOM_VIEWS_SUBTITLE": "ഫിൽട്ടറുകൾ ചേർക്കുക അല്ലെങ്കിൽ നീക്കം ചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ ഫോൾഡർ അപ്ഡേറ്റ് ചെയ്യുക.",
+ "ADD_NEW_FILTER": "ഫിൽട്ടർ ചേർക്കുക",
"FILTER_DELETE_ERROR": "Oops, looks like we can't save nothing! Please add at least one filter to save it.",
"SUBMIT_BUTTON_LABEL": "ഫിൽട്ടറുകൾ പ്രയോഗിക്കുക",
"UPDATE_BUTTON_LABEL": "Update folder",
@@ -18,17 +18,27 @@
"AND": "ഒപ്പം",
"OR": "അഥവാ"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "തുല്യമാണ്",
"not_equal_to": "തുല്യമല്ല",
- "contains": "അടങ്ങിയിരിക്കുന്നു",
"does_not_contain": "ഉൾപ്പെട്ടിട്ടില്ല",
"is_present": "നിലവിലുണ്ട്",
"is_not_present": "നിലവിലില്ല",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "തുല്യമാണ്",
+ "notEqualTo": "തുല്യമല്ല",
+ "contains": "അടങ്ങിയിരിക്കുന്നു",
+ "doesNotContain": "ഉൾപ്പെട്ടിട്ടില്ല",
+ "isPresent": "നിലവിലുണ്ട്",
+ "isNotPresent": "നിലവിലില്ല",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/ml/agentBots.json b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
index d7f5d9d2c..1b9ea6c25 100644
--- a/app/javascript/dashboard/i18n/locale/ml/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ml/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,7 @@
"SELECT_PLACEHOLDER": "Select bot"
},
"ADD": {
- "TITLE": "Configure new bot",
+ "TITLE": "Add Bot",
"CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
"API": {
"SUCCESS_MESSAGE": "Bot added successfully.",
@@ -40,16 +33,23 @@
}
},
"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": "വെബ്ഹുക്ക് യുആർഎൽ",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക",
+ "COPY_SUCCESS": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി",
+ "TOGGLE": "രഹസ്യ ദൃശ്യത ടോഗിൾ ചെയ്യുക",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "സമാപ്തം",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
index 32825a222..a8cb5b653 100644
--- a/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "ഏജന്റുമാർ",
"HEADER_BTN_TXT": "ഏജന്റിനെ ചേർക്കുക",
"LOADING": "ഏജന്റ് പട്ടിക ലഭ്യമാക്കുന്നു",
- "SIDEBAR_TXT": " ഏജന്റുമാർ b>
നിങ്ങളുടെ ഉപഭോക്തൃ പിന്തുണാ ടീമിലെ ഒരു അംഗമാണ് ഏജൻറ് .
നിങ്ങളുടെ ഉപയോക്താക്കളിൽ നിന്നുള്ള സന്ദേശങ്ങൾ കാണാനും മറുപടി നൽകാനും ഏജന്റുമാർക്ക് കഴിയും. നിലവിൽ നിങ്ങളുടെ accountലുള്ള എല്ലാ ഏജന്റുമാരെയും പട്ടിക കാണിക്കുന്നു.
ഒരു പുതിയ ഏജന്റിനെ ചേർക്കാൻ ഏജന്റിനെ ചേർക്കുക b> ക്ലിക്കുചെയ്യുക. നിങ്ങൾ ചേർത്ത ഏജന്റിന് അവരുടെ account സജീവമാക്കുന്നതിന് ഒരു സ്ഥിരീകരണ ലിങ്ക് ഉള്ള ഒരു ഇമെയിൽ ലഭിക്കും, അതിനുശേഷം അവർക്ക് Chatwoot ആക്സസ് ചെയ്യാനും സന്ദേശങ്ങളോട് പ്രതികരിക്കാനും കഴിയും.
ചാറ്റ്വൂട്ടിന്റെ സവിശേഷതകളിലേക്കുള്ള ആക്സസ് ഇനിപ്പറയുന്ന റോളുകളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്.
ഏജൻറ് - ഈ റോൾ ഉള്ള ഏജന്റുമാർക്ക് ഇൻബോക്സുകൾ, റിപ്പോർട്ടുകൾ, സംഭാഷണങ്ങൾ എന്നിവ മാത്രമേ ആക്സസ് ചെയ്യാൻ കഴിയൂ. അവർക്ക് മറ്റ് ഏജന്റുമാരുമായോ തങ്ങളുമായോ സംഭാഷണങ്ങൾ നിയോഗിക്കാനും സംഭാഷണങ്ങൾ പരിഹരിക്കാനും കഴിയും. സാധാരണ ഏജന്റുമാരുടെ പ്രത്യേകാവകാശങ്ങൾ.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "അഡ്മിനിസ്ട്രേറ്റർ",
"AGENT": "ഏജന്റ്"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "ഈ അക്കൗണ്ടുമായി ബന്ധപ്പെട്ട ഏജന്റുകളൊന്നുമില്ല",
"TITLE": "നിങ്ങളുടെ ടീമിലെ ഏജന്റുമാരെ മാനേജുചെയ്യുക",
@@ -17,7 +19,8 @@
"STATUS": "സ്റ്റാറ്റസ്",
"ACTIONS": "പ്രവർത്തനങ്ങൾ",
"VERIFIED": "പരിശോധിച്ചു",
- "VERIFICATION_PENDING": "പരിശോധന തീർപ്പുകൽപ്പിച്ചിട്ടില്ല"
+ "VERIFICATION_PENDING": "പരിശോധന തീർപ്പുകൽപ്പിച്ചിട്ടില്ല",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "നിങ്ങളുടെ ടീമിലേക്ക് ഏജന്റിനെ ചേർക്കുക",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "വൂട്ട് സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
}
},
+ "SEARCH_PLACEHOLDER": "ഏജന്റുകളെ തിരയുക...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "ഒരു ഫലവും കണ്ടെത്താനായില്ല."
},
@@ -103,6 +108,9 @@
"AGENT": "ഏജന്റിനെ തിരഞ്ഞെടുക്കുക",
"TEAM": "ടീം തിരഞ്ഞെടുക്കുക"
},
+ "LIST": {
+ "NONE": "ഒന്നുമില്ല"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "ഏജന്റകളെ ഒന്നും കണ്ടെത്താൻ സാധിച്ചില്ല",
diff --git a/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
index 768b1727a..9caaf966a 100644
--- a/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "ഇഷ്ടാനുസൃത ആട്രിബ്യൂട്ടുകൾ",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "സംഭാഷണം",
+ "CONTACT": "ബന്ധപ്പെടുക",
+ "COMPANY": "കമ്പനി"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "സൃഷ്ടിക്കുക",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "നിങ്ങൾക്ക് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ - %{attributeName}",
+ "TITLE": "നിങ്ങൾക്ക് ഇല്ലാതാക്കണമെന്ന് തീർച്ചയാണോ - {attributeName}",
"PLACE_HOLDER": "സ്ഥിരീകരിക്കാൻ {attributeName} എന്ന് ടൈപ്പ് ചെയ്യുക",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "ഇല്ലാതാക്കുക ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "ഇഷ്ടാനുസൃത ആട്രിബ്യൂട്ടുകൾ",
"CONVERSATION": "സംഭാഷണം",
- "CONTACT": "ബന്ധപ്പെടുക"
+ "CONTACT": "ബന്ധപ്പെടുക",
+ "COMPANY": "കമ്പനി"
},
"LIST": {
- "TABLE_HEADER": [
- "പേര്",
- "വിവരണം",
- "തരം",
- "കീ"
- ],
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "DESCRIPTION": "വിവരണം",
+ "TYPE": "തരം",
+ "KEY": "കീ"
+ },
"BUTTONS": {
"EDIT": "എഡിറ്റുചെയ്യുക",
"DELETE": "ഇല്ലാതാക്കുക"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/auditLogs.json b/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
index d855ca946..f9150aa51 100644
--- a/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ml/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP വിലാസം"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP വിലാസം"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 832c26aa2..5aa7fc497 100644
--- a/app/javascript/dashboard/i18n/locale/ml/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "സൃഷ്ടിക്കുക",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "പേര്",
- "വിവരണം",
- "സജീവമാണ്",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "ACTIVE": "സജീവമാണ്",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "അപ്ലോഡുചെയ്യുന്നു...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "ഒന്നുമില്ല",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "സ്വകാര്യ കുറിപ്പ്",
+ "MESSAGE_CONTAINS": "Message Contains",
+ "EMAIL": "ഇമെയിൽ",
+ "INBOX": "ഇൻബോക്സ്",
+ "CONVERSATION_LANGUAGE": "Conversation Language",
+ "PHONE_NUMBER": "ഫോൺ നമ്പർ",
+ "STATUS": "സ്റ്റാറ്റസ്",
+ "BROWSER_LANGUAGE": "ബ്രൗസറിന്റെ ഭാഷ",
+ "MAIL_SUBJECT": "Email Subject",
+ "COUNTRY_NAME": "രാജ്യം",
+ "COMPANY_NAME": "കമ്പനി",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "ലേബലുകൾ"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
index 54c937673..47c6c7a73 100644
--- a/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ml/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "ഏജന്റിനെ തിരഞ്ഞെടുക്കുക",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "നിയോഗിക്കുക",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "റദ്ദാക്കുക",
+ "SEARCH_INPUT_PLACEHOLDER": "തിരയുക",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "ടീം തിരഞ്ഞെടുക്കുക",
"NONE": "ഒന്നുമില്ല",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/campaign.json b/app/javascript/dashboard/i18n/locale/ml/campaign.json
index 50a13d788..d2cec0e86 100644
--- a/app/javascript/dashboard/i18n/locale/ml/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ml/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "പ്രചാരണങ്ങൾ",
- "SIDEBAR_TXT": "സജീവമായ സന്ദേശങ്ങൾ ഉപഭോക്താവിനെ അവരുടെ കോൺടാക്റ്റുകളിലേക്ക് ഔട്ട്ബൗണ്ട് സന്ദേശങ്ങൾ അയയ്ക്കാൻ അനുവദിക്കുന്നു, ഇത് കൂടുതൽ സംഭാഷണങ്ങൾക്ക് കാരണമാകും. ഒരു പുതിയ കാമ്പെയ്ൻ സൃഷ്ടിക്കാൻ കാമ്പെയ്ൻ ചേർക്കുക എന്നതിൽ ക്ലിക്കുചെയ്യുക. എഡിറ്റ് അല്ലെങ്കിൽ ഡിലീറ്റ് ബട്ടണിൽ ക്ലിക്കുചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് നിലവിലുള്ള ഒരു കാമ്പെയ്ൻ എഡിറ്റ് ചെയ്യാനോ ഇല്ലാതാക്കാനോ കഴിയും.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "ഒറ്റത്തവണ കാമ്പെയ്ൻ സൃഷ്ടിക്കുക",
- "ONGOING": "നടന്നുകൊണ്ടിരിക്കുന്ന ഒരു കാമ്പെയ്ൻ സൃഷ്ടിക്കുക"
- },
- "ADD": {
- "TITLE": "ഒരു കാമ്പെയ്ൻ സൃഷ്ടിക്കുക",
- "DESC": "സജീവമായ സന്ദേശങ്ങൾ ഉപഭോക്താവിനെ അവരുടെ കോൺടാക്റ്റുകളിലേക്ക് ഔട്ട്ബൗണ്ട് സന്ദേശങ്ങൾ അയയ്ക്കാൻ അനുവദിക്കുന്നു, ഇത് കൂടുതൽ സംഭാഷണങ്ങൾക്ക് കാരണമാകും.",
- "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
- "CREATE_BUTTON_TEXT": "സൃഷ്ടിക്കുക",
- "FORM": {
- "TITLE": {
- "LABEL": "തലക്കെട്ട്",
- "PLACEHOLDER": "കാമ്പെയ്നിന്റെ പേര് നൽകുക",
- "ERROR": "ശീർഷകം ആവശ്യമാണ്"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
+ "DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
},
- "SCHEDULED_AT": {
- "LABEL": "ഷെഡ്യൂൾ ചെയ്ത സമയം",
- "PLACEHOLDER": "ദയവായി സമയം തിരഞ്ഞെടുക്കുക",
- "CONFIRM": "സ്ഥിരീകരിക്കുക",
- "ERROR": "ഷെഡ്യൂൾ ചെയ്ത സമയം ആവശ്യമാണ്"
- },
- "AUDIENCE": {
- "LABEL": "പ്രേക്ഷകർ",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "പ്രേക്ഷകർ ആവശ്യമാണ്"
- },
- "INBOX": {
- "LABEL": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
- "PLACEHOLDER": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
- "ERROR": "ഇൻബോക്സ് ആവശ്യമാണ്"
- },
- "MESSAGE": {
- "LABEL": "സന്ദേശം",
- "PLACEHOLDER": "ദയവായി പ്രചാരണ സന്ദേശം നൽകുക",
- "ERROR": "സന്ദേശം ആവശ്യമാണ്"
- },
- "SENT_BY": {
- "LABEL": "അയച്ചത്",
- "PLACEHOLDER": "കാമ്പെയ്നിന്റെ ഉള്ളടക്കം തിരഞ്ഞെടുക്കുക",
- "ERROR": "അയച്ചയാളെ ആവശ്യമുണ്ട്"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "ദയവായി URL നൽകുക",
- "ERROR": "ദയവായി സാധുവായ ഒരു യുആർഎൽ നൽകുക"
- },
- "TIME_ON_PAGE": {
- "LABEL": "പേജിലെ സമയം (സെക്കൻഡ്)",
- "PLACEHOLDER": "ദയവായി സമയം നൽകുക",
- "ERROR": "പേജിൽ സമയം ആവശ്യമാണ്"
- },
- "ENABLED": "പ്രചാരണം പ്രവർത്തനക്ഷമമാക്കുക",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "പ്രചാരണം ചേർക്കുക"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "അയച്ചത്",
+ "BOT": "ബോട്ട്",
+ "FROM": "നിന്ന്",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "കാമ്പെയ്ൻ വിജയകരമായി സൃഷ്ടിച്ചു",
- "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
+ "CREATE_BUTTON_TEXT": "സൃഷ്ടിക്കുക",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "തലക്കെട്ട്",
+ "PLACEHOLDER": "കാമ്പെയ്നിന്റെ പേര് നൽകുക",
+ "ERROR": "ശീർഷകം ആവശ്യമാണ്"
+ },
+ "MESSAGE": {
+ "LABEL": "സന്ദേശം",
+ "PLACEHOLDER": "ദയവായി പ്രചാരണ സന്ദേശം നൽകുക",
+ "ERROR": "സന്ദേശം ആവശ്യമാണ്"
+ },
+ "INBOX": {
+ "LABEL": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "PLACEHOLDER": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "ERROR": "ഇൻബോക്സ് ആവശ്യമാണ്"
+ },
+ "SENT_BY": {
+ "LABEL": "അയച്ചത്",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "അയച്ചയാളെ ആവശ്യമുണ്ട്"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "ദയവായി URL നൽകുക",
+ "ERROR": "ദയവായി സാധുവായ ഒരു യുആർഎൽ നൽകുക"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "പേജിലെ സമയം (സെക്കൻഡ്)",
+ "PLACEHOLDER": "ദയവായി സമയം നൽകുക",
+ "ERROR": "പേജിൽ സമയം ആവശ്യമാണ്"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "പ്രചാരണം പ്രവർത്തനക്ഷമമാക്കുക",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "ഇല്ലാതാക്കുക",
- "CONFIRM": {
- "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
- "MESSAGE": "ഇല്ലാതാക്കുമെന്ന് ഉറപ്പാണോ?",
- "YES": "അതെ, ഇല്ലാതാക്കുക ",
- "NO": "ഇല്ല, സൂക്ഷിക്കുക"
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "പൂർത്തിയാക്കി",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
+ "CREATE_BUTTON_TEXT": "സൃഷ്ടിക്കുക",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "തലക്കെട്ട്",
+ "PLACEHOLDER": "കാമ്പെയ്നിന്റെ പേര് നൽകുക",
+ "ERROR": "ശീർഷകം ആവശ്യമാണ്"
+ },
+ "MESSAGE": {
+ "LABEL": "സന്ദേശം",
+ "PLACEHOLDER": "ദയവായി പ്രചാരണ സന്ദേശം നൽകുക",
+ "ERROR": "സന്ദേശം ആവശ്യമാണ്"
+ },
+ "INBOX": {
+ "LABEL": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "PLACEHOLDER": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "ERROR": "ഇൻബോക്സ് ആവശ്യമാണ്"
+ },
+ "AUDIENCE": {
+ "LABEL": "പ്രേക്ഷകർ",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "പ്രേക്ഷകർ ആവശ്യമാണ്"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "ഷെഡ്യൂൾ ചെയ്ത സമയം",
+ "PLACEHOLDER": "ദയവായി സമയം തിരഞ്ഞെടുക്കുക",
+ "ERROR": "ഷെഡ്യൂൾ ചെയ്ത സമയം ആവശ്യമാണ്"
+ },
+ "BUTTONS": {
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "പൂർത്തിയാക്കി",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
+ "CREATE_BUTTON_TEXT": "സൃഷ്ടിക്കുക",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "തലക്കെട്ട്",
+ "PLACEHOLDER": "കാമ്പെയ്നിന്റെ പേര് നൽകുക",
+ "ERROR": "ശീർഷകം ആവശ്യമാണ്"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "ഇൻബോക്സ് ആവശ്യമാണ്"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "പ്രേക്ഷകർ",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "പ്രേക്ഷകർ ആവശ്യമാണ്"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "ഷെഡ്യൂൾ ചെയ്ത സമയം",
+ "PLACEHOLDER": "ദയവായി സമയം തിരഞ്ഞെടുക്കുക",
+ "ERROR": "ഷെഡ്യൂൾ ചെയ്ത സമയം ആവശ്യമാണ്"
+ },
+ "BUTTONS": {
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "ഇല്ലാതാക്കുമെന്ന് ഉറപ്പാണോ?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "ഇല്ലാതാക്കുക",
"API": {
"SUCCESS_MESSAGE": "കാമ്പെയ്ൻ വിജയകരമായി ഇല്ലാതാക്കിയിരിക്കുന്നു",
- "ERROR_MESSAGE": "കാമ്പെയ്ൻ ഇല്ലാതാക്കാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
+ "ERROR_MESSAGE": "ഒരു തെറ്റുണ്ടായി. ദയവായി വീണ്ടും ശ്രമിക്കുക."
}
- },
- "EDIT": {
- "TITLE": "പ്രചാരണം എഡിറ്റ് ചെയ്യുക",
- "UPDATE_BUTTON_TEXT": "അപ്ഡേറ്റ്",
- "API": {
- "SUCCESS_MESSAGE": "കാമ്പെയ്ൻ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
- "ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "കാമ്പെയ്നുകൾ ലോഡുചെയ്യുന്നു...",
- "404": "ഈ ഇൻബോക്സിനായി കാമ്പെയ്നുകളൊന്നും സൃഷ്ടിച്ചിട്ടില്ല.",
- "TABLE_HEADER": {
- "TITLE": "തലക്കെട്ട്",
- "MESSAGE": "സന്ദേശം",
- "INBOX": "ഇൻബോക്സ്",
- "STATUS": "സ്റ്റാറ്റസ്",
- "SENDER": "അയച്ചയാൾ",
- "URL": "URL",
- "SCHEDULED_AT": "ഷെഡ്യൂൾ ചെയ്ത സമയം",
- "TIME_ON_PAGE": "സമയം(സെക്കൻഡ്)",
- "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു"
- },
- "BUTTONS": {
- "ADD": "ചേർക്കുക",
- "EDIT": "എഡിറ്റുചെയ്യുക",
- "DELETE": "ഇല്ലാതാക്കുക"
- },
- "STATUS": {
- "ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
- "DISABLED": "പ്രവർത്തനരഹിതമാക്കി",
- "COMPLETED": "പൂർത്തിയാക്കി",
- "ACTIVE": "സജീവമാണ്"
- },
- "SENDER": {
- "BOT": "ബോട്ട്"
- }
- },
- "ONE_OFF": {
- "HEADER": "ഒരു ഓഫ് കാമ്പെയ്നുകൾ",
- "404": "ആരും ഓഫ് കാമ്പെയ്നുകൾ സൃഷ്ടിച്ചിട്ടില്ല",
- "INBOXES_NOT_FOUND": "ദയവായി ഒരു എസ്എംഎസ് ഇൻബോക്സ് സൃഷ്ടിച്ച് കാമ്പെയ്നുകൾ ചേർക്കാൻ ആരംഭിക്കുക"
- },
- "ONGOING": {
- "HEADER": "നടന്നുകൊണ്ടിരിക്കുന്ന പ്രചാരണങ്ങൾ",
- "404": "നിലവിലുള്ള പ്രചാരണങ്ങളൊന്നും സൃഷ്ടിച്ചിട്ടില്ല",
- "INBOXES_NOT_FOUND": "ദയവായി ഒരു വെബ്സൈറ്റ് ഇൻബോക്സ് സൃഷ്ടിച്ച് കാമ്പെയ്നുകൾ ചേർക്കാൻ ആരംഭിക്കുക"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
index f6e09a6d9..a52931335 100644
--- a/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "ക്യാൻഡ് പ്രതികരണങ്ങൾ",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "ഈ അക്കൗണ്ടിൽ ക്യാൻഡ് പ്രതികരണങ്ങളൊന്നും ലഭ്യമല്ല.",
"TITLE": "ക്യാൻഡ് പ്രതികരണങ്ങൾ നിയന്ത്രിക്കുക",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "ഉള്ളടക്കം",
- "പ്രവർത്തനങ്ങൾ"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "ഉള്ളടക്കം",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/ml/chatlist.json b/app/javascript/dashboard/i18n/locale/ml/chatlist.json
index 21dbecffb..87889d266 100644
--- a/app/javascript/dashboard/i18n/locale/ml/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ml/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "ഈ ഗ്രൂപ്പിൽ സജീവ സംഭാഷണങ്ങളൊന്നുമില്ല."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "സംഭാഷണങ്ങൾ",
"MENTION_HEADING": "പരാമർശിക്കുന്നു",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "സ്ഥാനം"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "ഒരു യു. ആർ. എൽ പങ്കിട്ടു"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "ഉള്ളടക്കമൊന്നും ലഭ്യമല്ല",
"HIDE_QUOTED_TEXT": "ഉദ്ധരിച്ച വാചകം മറയ്ക്കുക",
"SHOW_QUOTED_TEXT": "ഉദ്ധരിച്ച വാചകം കാണിക്കുക",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/companies.json b/app/javascript/dashboard/i18n/locale/ml/companies.json
new file mode 100644
index 000000000..9dab0321c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "പേര്",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "കോൺടാക്റ്റുകൾ",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "കോൺടാക്റ്റുകൾ ലോഡുചെയ്യുന്നു...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "കമ്പനി",
+ "CONTACT_LABEL": "ബന്ധപ്പെടുക",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "റദ്ദാക്കുക"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "പേര്",
+ "DOMAIN": "ഡൊമെയ്ൻ"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/components.json b/app/javascript/dashboard/i18n/locale/ml/components.json
new file mode 100644
index 000000000..54177eb35
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "ഒരു ഫലവും കണ്ടെത്താനായില്ല.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "ഒരു ഫലവും കണ്ടെത്താനായില്ല.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "റദ്ദാക്കുക",
+ "CONFIRM": "സ്ഥിരീകരിക്കുക"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/contact.json b/app/javascript/dashboard/i18n/locale/ml/contact.json
index 4a5f438a5..54cd3b7ad 100644
--- a/app/javascript/dashboard/i18n/locale/ml/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ml/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP വിലാസം",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "പുതിയ സന്ദേശം",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "ഈ കോൺടാക്റ്റുമായി മുമ്പത്തെ സംഭാഷണങ്ങളൊന്നും ബന്ധപ്പെടുത്തിയിട്ടില്ല.",
"TITLE": "മുമ്പത്തെ സംഭാഷണങ്ങൾ"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "ഇഷ്ടാനുസൃത ആട്രിബ്യൂട്ടുകൾ",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "മുമ്പത്തെ സംഭാഷണങ്ങൾ"
+ "PREVIOUS_CONVERSATIONS": "മുമ്പത്തെ സംഭാഷണങ്ങൾ",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "കോൺടാക്റ്റ് എഡിറ്റുചെയ്യുക",
"DESC": "കോൺടാക്റ്റ് വിശദാംശങ്ങൾ എഡിറ്റുചെയ്യുക"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "കോൺടാക്റ്റിനെക്കുറിച്ചുള്ള അടിസ്ഥാന വിവര വിശദാംശങ്ങൾ ചേർക്കുക."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV ഫയൽ",
- "SUBMIT": "Import",
- "CANCEL": "റദ്ദാക്കുക"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "ഇല്ല, സൂക്ഷിക്കുക"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "കോൺടാക്റ്റ് ഇല്ലാതാക്കുക",
"TITLE": "കോൺടാക്റ്റ് ഇല്ലാതാക്കുക",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "കോൺടാക്റ്റുകൾ",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "തിരയുക",
- "SEARCH_INPUT_PLACEHOLDER": "കോൺടാക്റ്റുകൾക്കായി തിരയുക",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "ഫിൽട്ടർ സേവ് ചെയുക",
- "FILTER_CONTACTS_DELETE": "ഫിൽട്ടർ ഇല്ലാതാക്കുക",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "കോൺടാക്റ്റുകൾ ലോഡുചെയ്യുന്നു...",
- "404": "കോൺടാക്റ്റുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "പേര്",
- "PHONE_NUMBER": "ഫോൺ നമ്പർ",
- "CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "LAST_ACTIVITY": "അവസാന പ്രവർത്തനം",
- "CREATED_AT": "Created At",
- "COUNTRY": "രാജ്യം",
- "CITY": "നഗരം",
- "SOCIAL_PROFILES": "സോഷ്യൽ പ്രൊഫൈലുകൾ",
- "COMPANY": "കമ്പനി",
- "EMAIL_ADDRESS": "ഇമെയിൽ വിലാസം"
- },
- "VIEW_DETAILS": "വിശദാംശങ്ങൾ കാണുക"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "കോൺടാക്റ്റുകൾ",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "ചേർക്കുക",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "ചേർക്കുക",
- "PLACEHOLDER": "Add a note",
- "TITLE": "ഒരു കുറിപ്പ് സൃഷ്ടിക്കാൻ Shift + Enter"
- },
- "CONTENT_HEADER": {
- "DELETE": "കുറിപ്പ് ഇല്ലാതാക്കുക"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "പ്രവർത്തനങ്ങൾ"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "സംഭാഷണങ്ങൾ"
+ "SOCIAL_PROFILES": "സോഷ്യൽ പ്രൊഫൈലുകൾ"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "ക്ലിപ്പ്ബോർഡിലേക്ക് വിജയകരമായി പകർത്തി",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "കോൺടാക്റ്റുകൾ",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "സന്ദേശം",
+ "SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "കോൺടാക്റ്റുകൾ"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "ഈ ഇമെയിൽ വിലാസം മറ്റൊരു കോൺടാക്റ്റിനായി ഉപയോഗത്തിലാണ്.",
+ "PHONE_NUMBER_DUPLICATE": "ഈ ഫോൺ നമ്പർ മറ്റൊരു കോൺടാക്റ്റിനായി ഉപയോഗിക്കുന്നു.",
+ "SUCCESS_MESSAGE": "കോൺടാക്റ്റ് വിജയകരമായി സേവ് ചെയ്തിരിക്കുന്നു",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV ഫയൽ:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "മാറ്റം വരുത്തുക",
+ "CANCEL": "റദ്ദാക്കുക",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "പേര്",
+ "EMAIL": "ഇമെയിൽ",
+ "PHONE_NUMBER": "ഫോൺ നമ്പർ",
+ "COMPANY": "കമ്പനി",
+ "COUNTRY": "രാജ്യം",
+ "CITY": "നഗരം",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "നിങ്ങൾക്ക് ഈ ഫിൽട്ടർ സേവ് ചെയ്യണോ?",
+ "CONFIRM": "ഫിൽട്ടർ സേവ് ചെയുക",
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "പേര്",
+ "EMAIL": "ഇമെയിൽ",
+ "PHONE_NUMBER": "ഫോൺ നമ്പർ",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "രാജ്യം",
+ "CITY": "നഗരം",
+ "COMPANY": "കമ്പനി",
+ "CREATED_AT": "എന്ന സ്ഥലത്ത് സൃഷ്ടിച്ചു",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "റഫറർ ലിങ്ക്",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "ഫിൽട്ടറുകൾ പ്രയോഗിക്കുക",
+ "ADD_FILTER": "ഫിൽട്ടർ ചേർക്കുക"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "വിശദാംശങ്ങൾ കാണുക",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "കോൺടാക്റ്റ് വിശദാംശങ്ങൾ എഡിറ്റുചെയ്യുക",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "ഈ ഇമെയിൽ വിലാസം മറ്റൊരു കോൺടാക്റ്റിനായി ഉപയോഗത്തിലാണ്."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "ഈ ഫോൺ നമ്പർ മറ്റൊരു കോൺടാക്റ്റിനായി ഉപയോഗിക്കുന്നു."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "കമ്പനിയുടെ പേര് നൽകുക"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "കോൺടാക്റ്റ് ഇല്ലാതാക്കുക",
+ "DELETE_DIALOG": {
+ "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "കോൺടാക്റ്റ് വിജയകരമായി ഇല്ലാതാക്കിയിരിക്കുന്നു",
+ "ERROR_MESSAGE": "കോൺടാക്റ്റ് ഇല്ലാതാക്കാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "ഈ കോൺടാക്റ്റുമായി മുമ്പത്തെ സംഭാഷണങ്ങളൊന്നും ബന്ധപ്പെടുത്തിയിട്ടില്ല"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "കോൺടാക്റ്റ് ലയിപ്പിക്കുക",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "റദ്ദാക്കുക",
+ "CONFIRM": "കോൺടാക്റ്റ് ലയിപ്പിക്കുക"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "കോൺടാക്റ്റുകളൊന്നും നിങ്ങളുടെ തിരയലുമായി പൊരുത്തപ്പെടുന്നില്ല",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "ഇല്ലാതാക്കുക",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "കോൺടാക്റ്റ് ഇല്ലാതാക്കുക"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "കാണുക",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "നിങ്ങളുടെ സന്ദേശം ഇവിടെ എഴുതുക..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/contactFilters.json b/app/javascript/dashboard/i18n/locale/ml/contactFilters.json
index fc4451d34..3b89f3a5d 100644
--- a/app/javascript/dashboard/i18n/locale/ml/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ml/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "പേര്",
"EMAIL": "ഇമെയിൽ",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "അവസാന പ്രവർത്തനം",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "ലേബലുകൾ"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/ml/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ml/contentTemplates.json
new file mode 100644
index 000000000..ff9caa482
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "മടങ്ങിപ്പോവുക",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/conversation.json b/app/javascript/dashboard/i18n/locale/ml/conversation.json
index 8d41845cf..d4cd56854 100644
--- a/app/javascript/dashboard/i18n/locale/ml/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ml/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " ആരംഭിക്കുന്നതിന്",
"NO_INBOX_AGENT": "നിങ്ങൾ ഏതെങ്കിലും ഇൻബോക്സിന്റെ ഭാഗമല്ലെന്ന് തോന്നുന്നു. നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററുമായി ബന്ധപ്പെടുക",
"SEARCH_MESSAGES": "സംഭാഷണങ്ങളിൽ സന്ദേശങ്ങൾക്കായി തിരയുക",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "സംഭാഷണങ്ങൾ ലോഡു ചെയ്യുന്നു",
"CANNOT_REPLY": "നിങ്ങൾക്ക് മറുപടി നൽകാൻ കഴിയില്ല",
"24_HOURS_WINDOW": "24 മണിക്കൂർ സന്ദേശ വിൻഡോ നിയന്ത്രണം",
+ "48_HOURS_WINDOW": "48 മണിക്കൂർ സന്ദേശ വിൻഡോ നിയന്ത്രണം",
+ "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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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": "ഡൗൺലോഡ്",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Uploading attachments...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "പരിഹരിക്കുക",
"REOPEN_ACTION": "വീണ്ടും തുറക്കുക",
"OPEN_ACTION": "സജീവം",
+ "MORE_ACTIONS": "More actions",
"OPEN": "കൂടുതൽ",
"CLOSE": "അടയ്ക്കുക",
"DETAILS": "വിശദാംശങ്ങൾ",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "ഏജന്റുമാർ",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "ഒന്നുമില്ല",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "ഒരു ഫലവും കണ്ടെത്താനായില്ല",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "സംഭാഷണം വീണ്ടും തുറക്കുക",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "പുതിയ ലൈനിനു വേണ്ടി ഷിഫ്റ്റ് + എന്റർ അടിക്കുക. ഒരു ക്യാൻഡ് പ്രതികരണം തിരഞ്ഞു എടുക്കാൻ വേണ്ടി '/ ' വച്ച് ടൈപ്പ് ചെയ്തു തുടങ്ങുക.",
"PRIVATE_MSG_INPUT": "പുതിയ ലൈനിനു വേണ്ടി ഷിഫ്റ്റ് + എന്റർ അടിക്കുക. ഇത് ഏജന്റുമാർക്ക് മാത്രമേ ദൃശ്യമാകൂ",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "കോപ്പൈലറ്റിന് അധിക പ്രോംപ്റ്റുകൾ നൽകുക, അല്ലെങ്കിൽ എന്തെങ്കിലും ചോദിക്കാം... ഫോളോ-അപ്പ് അയയ്ക്കാൻ എൻറർ അമർത്തുക",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "മറുപടി",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
"TIP_EMOJI_ICON": "Show emoji selector",
"TIP_ATTACH_ICON": "Attach files",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "കോപ്പൈലറ്റ് ചിന്തിക്കുന്നു",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "അയയ്ക്കുക",
"CANCEL": "റദ്ദാക്കുക"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "സ്വകാര്യ കുറിപ്പ്: നിങ്ങൾക്കും നിങ്ങളുടെ ടീമിനും മാത്രം ദൃശ്യമാണ്",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "അയച്ചത്:",
"BOT": "ബോട്ട്",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "സന്ദേശം അയയ്ക്കാനായില്ല! വീണ്ടും ശ്രമിക്കുക",
"TRY_AGAIN": "വീണ്ടും ശ്രമിക്കുക",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "ഇല്ലാതാക്കുക",
"CANCEL": "റദ്ദാക്കുക"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "ബന്ധപ്പെടുക",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "റദ്ദാക്കുക",
"SEND_EMAIL_SUCCESS": "ചാറ്റ് ട്രാൻസ്ക്രിപ്റ്റ് വിജയകരമായി അയച്ചു",
"SEND_EMAIL_ERROR": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "ഉപഭോക്താവിന് ട്രാൻസ്ക്രിപ്റ്റ് അയയ്ക്കുക",
"SEND_TO_AGENT": "നിയുക്ത ഏജന്റിന് ട്രാൻസ്ക്രിപ്റ്റ് അയയ്ക്കുക",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"CONVERSATION_ACTIONS": "Conversation Actions",
"CONVERSATION_LABELS": "സംഭാഷണ ലേബലുകൾ",
"CONVERSATION_INFO": "Conversation Information",
+ "CONTACT_NOTES": "Contact Notes",
"CONTACT_ATTRIBUTES": "Contact Attributes",
"PREVIOUS_CONVERSATION": "മുമ്പത്തെ സംഭാഷണങ്ങൾ",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "കെട്ടിക്കിടക്കുന്നു",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "ഒരു ഫലവും കണ്ടെത്താനായില്ല",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/customRole.json b/app/javascript/dashboard/i18n/locale/ml/customRole.json
new file mode 100644
index 000000000..28ff309ef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "DESCRIPTION": "വിവരണം",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "റദ്ദാക്കുക",
+ "API": {
+ "ERROR_MESSAGE": "സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "സമർപ്പിക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "എഡിറ്റുചെയ്യുക",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "അപ്ഡേറ്റ്",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "ഇല്ലാതാക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "ഏജന്റുമാർ
ഒരു ഏജൻറ് നിങ്ങളുടെ ഉപഭോക്തൃ പിന്തുണാ ടീമിലെ ഒരു അംഗമാണ്.
ഏജന്റുമാർക്ക് നിങ്ങളുടെ ഉപയോക്താക്കളിൽ നിന്നുള്ള സന്ദേശങ്ങൾ കാണാനും മറുപടി നൽകാനും കഴിയും. നിങ്ങളുടെ അക്കൗണ്ടിലുള്ള എല്ലാ ഏജന്റുമാരെയും ഈ പട്ടിക കാണിക്കുന്നു. p>
ഒരു പുതിയ ഏജന്റിനെ ചേർക്കുന്നതിന് ഏജന്റിനെ ചേർക്കുക b> ബട്ടൺ ക്ലിക്കുചെയ്യുക. നിങ്ങൾ ചേർത്ത ഏജന്റിന് അവരുടെ അക്കൗണ്ട് സജീവമാക്കുന്നതിന് ഒരു സ്ഥിരീകരണ ലിങ്കുള്ള ഇമെയിൽ ലഭിക്കും. അതിനുശേഷം അവർക്ക് ചാറ്റ് വൂട്ട് ആക്സസ് ചെയ്യാനും സന്ദേശങ്ങളോട് പ്രതികരിക്കാനും കഴിയും.
ചാറ്റ് വൂട്ടിന്റെ സവിശേഷതകളിലേക്കുള്ള ആക്സസ് ഇനിപ്പറയുന്ന റോളുകളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്.
ഏജൻറ് b> - ഈ റോൾ ഉള്ള ഏജന്റുമാർക്ക് ഇൻബോക്സുകൾ, റിപ്പോർട്ടുകൾ, സംഭാഷണങ്ങൾ എന്നിവ മാത്രമേ ആക്സസ് ചെയ്യാൻ കഴിയൂ. അവർക്ക് മറ്റ് ഏജന്റുമാരുടെയോ അല്ലെങ്കിൽ തങ്ങളുടേയോ സംഭാഷണങ്ങൾ നിർണ്ണയിക്കാനും സംഭാഷണങ്ങൾ പരിഹരിക്കാനും കഴിയും.
അഡ്മിനിസ്ട്രേറ്റർ - ഒരു സാധാരണ ഏജന്റിന്റെ പ്രത്യേകാവകാശങ്ങളോടൊപ്പം ക്രമീകരണങ്ങളും ബില്ലിംഗും ഉൾപ്പെടെ നിങ്ങളുടെ അക്കൗണ്ടിൽ ലഭ്യമായ എല്ലാ ചാറ്റ് വൂട്ട് സവിശേഷതകളിലേക്കും ആക്സസ് ഉണ്ടായിരിക്കുക. p> ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/datePicker.json b/app/javascript/dashboard/i18n/locale/ml/datePicker.json
new file mode 100644
index 000000000..55f2f471e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "അപേക്ഷിക്കുക",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "കഴിഞ്ഞ 7 ദിവസം",
+ "LAST_30_DAYS": "കഴിഞ്ഞ 30 ദിവസം",
+ "LAST_3_MONTHS": "കഴിഞ്ഞ 3 മാസം",
+ "LAST_6_MONTHS": "കഴിഞ്ഞ 6 മാസം",
+ "LAST_YEAR": "കഴിഞ്ഞ വർഷം",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "ഇഷ്ടാനുസൃത തീയതി ശ്രേണി"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/general.json b/app/javascript/dashboard/i18n/locale/ml/general.json
new file mode 100644
index 000000000..33a6e0240
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "തിരയുക",
+ "EMPTY_STATE": "ഒരു ഫലവും കണ്ടെത്താനായില്ല"
+ },
+ "CLOSE": "അടയ്ക്കുക",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/generalSettings.json b/app/javascript/dashboard/i18n/locale/ml/generalSettings.json
index ddeed8fc8..065a7d6f0 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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": "നിങ്ങളുടെ അക്കൗണ്ടിനായി ഇമെയിലുകളുമായുള്ള സംഭാഷണ തുടർച്ച പ്രവർത്തനക്ഷമമാക്കി.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "നിങ്ങളുടെ ഇഷ്ടാനുസൃത ഡൊമെയ്നിൽ നിങ്ങൾക്ക് ഇപ്പോൾ ഇമെയിലുകൾ സ്വീകരിക്കാൻ കഴിയും."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "ഓഫ്ലൈൻ"
+ "OFFLINE": "ഓഫ്ലൈൻ",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "റിപ്പോർട്ടുകൾ",
"CONVERSATION": "സംഭാഷണം",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
index 68e4794c5..b4594ce6b 100644
--- a/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ml/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "അപ്ലോഡുചെയ്യുന്നു...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "മടങ്ങിപ്പോവുക",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "ഇല്ലാതാക്കുക"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "എന്റേത്",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "SELECTED_COUNT": "{count} തിരഞ്ഞെടുക്കപ്പെട്ടത്",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "ഇല്ലാതാക്കുക",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "ഇല്ലാതാക്കുക",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "നാമം ആവശ്യമാണ്"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "വിവരണം ആവശ്യമാണ്"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "EDIT": "അപ്ഡേറ്റ്",
+ "CANCEL": "റദ്ദാക്കുക"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "ഇല്ലാതാക്കുക"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "സ്റ്റാറ്റസ്",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "സൃഷ്ടിക്കുക",
+ "NAME": {
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "നാമം ആവശ്യമാണ്"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "നാമം ആവശ്യമാണ്"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "എഡിറ്റുചെയ്യുക",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "അയയ്ക്കുക"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "ഇല്ലാതാക്കുക"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "നീക്കം ചെയ്യുക"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "അപ്ലോഡുചെയ്യുന്നു...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "റദ്ദാക്കുക",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "പൂർത്തിയാക്കി",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/inbox.json b/app/javascript/dashboard/i18n/locale/ml/inbox.json
index 63fce6b2a..3b376d0a8 100644
--- a/app/javascript/dashboard/i18n/locale/ml/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ml/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "ഇൻബോക്സ്",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "മടങ്ങിപ്പോവുക"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "പുതിയ സന്ദേശം",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "പുതിയ സന്ദേശം",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "ഉള്ളടക്കമൊന്നും ലഭ്യമല്ല",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
index 5dfd3e3ad..3869e919e 100644
--- a/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/inboxMgmt.json
@@ -1,37 +1,41 @@
{
"INBOX_MGMT": {
"HEADER": "ഇൻബോക്സുകൾ",
- "SIDEBAR_TXT": "
ഇൻബോക്സ്
നിങ്ങൾ ഒരു വെബ്സൈറ്റ് അല്ലെങ്കിൽ ഒരു ഫേസ്ബുക്ക് പേജ് ചാറ്റ്വൂട്ടിലേക്ക് ബന്ധിപ്പിക്കുമ്പോൾ, അതിനെ ഇൻബോക്സ് എന്ന് വിളിക്കുന്നു. നിങ്ങളുടെ ചാറ്റ്വൂട്ട് അക്ക in ണ്ടിൽ പരിധിയില്ലാത്ത ഇൻബോക്സുകൾ നേടാൻ കഴിയും.
ഒരു വെബ്സൈറ്റോ ഫേസ്ബുക്ക് പേജോ ബന്ധിപ്പിക്കുന്നതിന് ഇൻബോക്സ് ചേർക്കുക ക്ലിക്കുചെയ്യുക.
ഡാഷ്ബോർഡിൽ, നിങ്ങളുടെ എല്ലാ ഇൻബോക്സുകളിൽ നിന്നുമുള്ള എല്ലാ സംഭാഷണങ്ങളും ഒരൊറ്റ സ്ഥലത്ത് കാണാനും `സംഭാഷണങ്ങൾ 'ടാബിന് കീഴിൽ അവയോട് പ്രതികരിക്കാനും കഴിയും.
ഡാഷ്ബോർഡിന്റെ ഇടത് പാളിയിലെ ഇൻബോക്സ് നാമത്തിൽ ക്ലിക്കുചെയ്തുകൊണ്ട് നിങ്ങൾക്ക് ഇൻബോക്സിന് പ്രത്യേകമായുള്ള സംഭാഷണങ്ങളും കാണാൻ കഴിയും.
",
+ "DESCRIPTION": "ഒരു ചാനൽ നിങ്ങളുടെ ഉപഭോക്താവ് നിങ്ങളുമായി ആശയവിനിമയം നടത്താൻ തിരഞ്ഞെടുക്കുന്ന ആശയവിനിമയ മാർഗമാണ്. ഒരു ഇൻബോക്സ് ഒരു പ്രത്യേക ചാനലിനുള്ള ഇടപെടലുകൾ നിങ്ങൾ നിയന്ത്രിക്കുന്ന സ്ഥലം ആണ്. ഇത് ഇമെയിൽ, ലൈവ് ചാറ്റ്, സോഷ്യൽ മീഡിയ തുടങ്ങിയ വിവിധ ഉറവിടങ്ങളിൽ നിന്നുള്ള ആശയവിനിമയങ്ങൾ ഉൾക്കൊള്ളാം.",
+ "LEARN_MORE": "ഇൻബോക്സുകൾക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "COUNT": "{n} ഇൻബോക്സ് | {n} ഇൻബോക്സുകൾ",
+ "SEARCH_PLACEHOLDER": "ഇൻബോക്സുകൾ തിരയുക...",
+ "NO_RESULTS": "നിങ്ങളുടെ തിരച്ചിലുമായി പൊരുത്തപ്പെടുന്ന ഇൻബോക്സുകൾ കണ്ടെത്തിയില്ല",
+ "RECONNECTION_REQUIRED": "നിങ്ങളുടെ ഇൻബോക്സ് ബന്ധം നഷ്ടപ്പെട്ടു. നിങ്ങൾ വീണ്ടും അംഗീകാരം നൽകുന്നത് വരെ പുതിയ സന്ദേശങ്ങൾ ലഭിക്കില്ല.",
+ "CLICK_TO_RECONNECT": "പുനഃബന്ധിപ്പിക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "നിങ്ങളുടെ WhatsApp ബിസിനസ് രജിസ്ട്രേഷൻ പൂർത്തിയാകാത്തതാണ്. വീണ്ടും ബന്ധിപ്പിക്കുന്നതിന് മുമ്പ് Meta Business Manager-ൽ നിങ്ങളുടെ പ്രദർശന നാമത്തിന്റെ നില പരിശോധിക്കുക.",
+ "COMPLETE_REGISTRATION": "രജിസ്ട്രേഷൻ പൂർത്തിയാക്കുക",
"LIST": {
"404": "ഈ അക്കൗണ്ടിലേക്കു ഇൻബോക്സുകളൊന്നും ബന്ധിപ്പിച്ചിട്ടില്ല."
},
- "CREATE_FLOW": [
- {
- "title": "ചാനൽ തിരഞ്ഞെടുക്കുക",
- "route": "settings_inbox_new",
- "body": "ചാറ്റ് വൂട്ടുമായി സംയോജിപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന ദാതാവിനെ തിരഞ്ഞെടുക്കുക."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "ചാനൽ തിരഞ്ഞെടുക്കുക",
+ "BODY": "ചാറ്റ് വൂട്ടുമായി സംയോജിപ്പിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന ദാതാവിനെ തിരഞ്ഞെടുക്കുക."
},
- {
- "title": "ഇൻബോക്സ് സൃഷ്ടിക്കുക",
- "route": "settings_inboxes_page_channel",
- "body": "നിങ്ങളുടെ അക്കൗണ്ട് പ്രാമാണീകരിക്കുകയും ഇൻബോക്സ് സൃഷ്ടിക്കുകയും ചെയ്യുക."
+ "INBOX": {
+ "TITLE": "ഇൻബോക്സ് സൃഷ്ടിക്കുക",
+ "BODY": "നിങ്ങളുടെ അക്കൗണ്ട് പ്രാമാണീകരിക്കുകയും ഇൻബോക്സ് സൃഷ്ടിക്കുകയും ചെയ്യുക."
},
- {
- "title": "ഏജന്റുമാരെ ചേർക്കുക",
- "route": "settings_inboxes_add_agents",
- "body": "സൃഷ്ടിച്ച ഇൻബോക്സിലേക്ക് ഏജന്റുമാരെ ചേർക്കുക."
+ "AGENT": {
+ "TITLE": "ഏജന്റുമാരെ ചേർക്കുക",
+ "BODY": "സൃഷ്ടിച്ച ഇൻബോക്സിലേക്ക് ഏജന്റുമാരെ ചേർക്കുക."
},
- {
- "title": "പൊളിച്ചു!",
- "route": "settings_inbox_finish",
- "body": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
+ "FINISH": {
+ "TITLE": "വോയ്ലാ!",
+ "BODY": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "ഇൻബോക്സ് നാമം",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "PLACEHOLDER": "നിങ്ങളുടെ ഇൻബോക്സ് പേര് നൽകുക (ഉദാ: Acme Inc)",
+ "ERROR": "ദയവായി സാധുവായ ഇൻബോക്സ് പേര് നൽകുക"
},
"WEBSITE_NAME": {
"LABEL": "വെബ്സൈറ്റിന്റെ പേര്",
@@ -43,12 +47,29 @@
"CHOOSE_PLACEHOLDER": "ലിസ്റ്റിൽ നിന്ന് ഒരു പേജ് തിരഞ്ഞെടുക്കുക",
"INBOX_NAME": "ഇൻബോക്സ് നാമം",
"ADD_NAME": "നിങ്ങളുടെ ഇൻബോക്സിനായി ഒരു പേര് ചേർക്കുക",
- "PICK_NAME": "നിങ്ങളുടെ ഇൻബോക്സിന്റെ പേര് തിരഞ്ഞെടുക്കുക",
- "PICK_A_VALUE": "ഒരു മൂല്യം തിരഞ്ഞെടുക്കുക"
+ "PICK_NAME": "നിങ്ങളുടെ ഇൻബോക്സിന് ഒരു പേര് തിരഞ്ഞെടുക്കുക",
+ "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 സന്ദേശങ്ങൾ അയക്കാനും സ്വീകരിക്കാനും കഴിയില്ല."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "TikTok ഉപയോഗിച്ച് തുടരുക",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "നിങ്ങളുടെ TikTok പ്രൊഫൈൽ ബന്ധിപ്പിക്കുക",
+ "HELP": "'TikTok ഉപയോഗിച്ച് തുടരുക' ക്ലിക്കുചെയ്ത് നിങ്ങളുടെ TikTok പ്രൊഫൈൽ പ്രാമാണീകരിച്ച് നിങ്ങളുടെ TikTok പ്രൊഫൈൽ ഒരു ചാനലായി ചേർക്കണം ",
+ "ERROR_MESSAGE": "TikTok-ലേക്ക് കണക്ട് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "ERROR_AUTH": "TikTok-ലേക്ക് കണക്ട് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"TWITTER": {
"HELP": "നിങ്ങളുടെ ട്വിറ്റർ പ്രൊഫൈൽ ഒരു ചാനലായി ചേർക്കുന്നതിന്, 'ട്വിറ്ററിനൊപ്പം പ്രവേശിക്കുക' ക്ലിക്കുചെയ്ത് നിങ്ങളുടെ ട്വിറ്റർ പ്രൊഫൈൽ പ്രാമാണീകരിക്കേണ്ടതുണ്ട് ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "ERROR_MESSAGE": "Twitter-ലേക്ക് കണക്ട് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
"TWEETS": {
"ENABLE": "സൂചിപ്പിച്ച ട്വീറ്റുകളിൽ നിന്ന് സംഭാഷണങ്ങൾ സൃഷ്ടിക്കുക"
}
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "വെബ്ഹുക്ക് യുആർഎൽ",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ വെബ്ഹുക്ക് URL നൽകുക",
"ERROR": "ദയവായി സാധുവായ ഒരു യുആർഎൽ നൽകുക"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക",
+ "COPY_SUCCESS": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി",
+ "TOGGLE": "രഹസ്യ ദൃശ്യത ടോഗിൾ ചെയ്യുക",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "വെബ്സൈറ്റ് ഡൊമെയ്ൻ",
"PLACEHOLDER": "നിങ്ങളുടെ വെബ്സൈറ്റ് ഡൊമെയ്ൻ നൽകുക (ഉദാ: punnyalan.com)"
@@ -88,11 +117,11 @@
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "പ്രതികരണ സമയം സജ്ജമാക്കുക",
+ "IN_A_FEW_MINUTES": "ചില നിമിഷങ്ങൾക്കുള്ളിൽ",
+ "IN_A_FEW_HOURS": "ചില മണിക്കൂറുകൾക്കുള്ളിൽ",
+ "IN_A_DAY": "ഒരു ദിവസത്തിനുള്ളിൽ",
+ "HELP_TEXT": "ഈ മറുപടി സമയം ലൈവ് ചാറ്റ് വിഡ്ജറ്റിൽ പ്രദർശിപ്പിക്കും"
},
"WIDGET_COLOR": {
"LABEL": "വിജറ്റ് നിറം",
@@ -100,33 +129,33 @@
},
"SUBMIT_BUTTON": "ഇൻബോക്സ് സൃഷ്ടിക്കുക",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "ഞങ്ങൾ ഒരു വെബ്സൈറ്റ് ചാനൽ സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല, ദയവായി വീണ്ടും ശ്രമിക്കുക"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp ചാനൽ",
+ "DESC": "Twilio സംയോജിപ്പിച്ച് SMS അല്ലെങ്കിൽ WhatsApp വഴി നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"ACCOUNT_SID": {
"LABEL": "അക്കൗണ്ട് എസ്ഐഡി",
"PLACEHOLDER": "ദയവായി നിങ്ങളുടെ ട്വിലിയോ അക്കൗണ്ട് എസ്ഐഡി നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
+ "USE_API_KEY": "API കീ പ്രാമാണീകരണം ഉപയോഗിക്കുക",
+ "LABEL": "API കീ SID",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ API കീ SID നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
+ "LABEL": "API കീ രഹസ്യം",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ API കീ രഹസ്യം നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
+ "LABEL": "മെസേജിംഗ് സർവീസ് SID",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ Twilio Messaging Service SID നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "USE_MESSAGING_SERVICE": "Twilio Messaging Service ഉപയോഗിക്കുക"
},
"CHANNEL_TYPE": {
"LABEL": "ചാനൽ തരം",
@@ -139,17 +168,17 @@
},
"CHANNEL_NAME": {
"LABEL": "ഇൻബോക്സ് നാമം",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "ദയവായി ഒരു ഇൻബോക്സ് പേര് നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"PHONE_NUMBER": {
- "LABEL": "ഫോൺ നമ്പർ",
+ "LABEL": "ഫോൺ നമ്പർ",
"PLACEHOLDER": "ദയവായി സന്ദേശം അയയ്ക്കുന്ന ഫോൺ നമ്പർ നൽകുക.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "ദയവായി `+` ചിഹ്നത്തോടെ ആരംഭിക്കുന്ന, ഇടവേളകളില്ലാത്ത സാധുവായ ഫോൺ നമ്പർ നൽകുക."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
+ "TITLE": "കോൾബാക്ക് URL",
+ "SUBTITLE": "Twilio-യിൽ സന്ദേശം കോൾബാക്ക് URL ഇവിടെ നൽകിയ URL ഉപയോഗിച്ച് ക്രമീകരിക്കണം."
},
"SUBMIT_BUTTON": "ട്വിലിയോ ചാനൽ സൃഷ്ടിക്കുക",
"API": {
@@ -157,111 +186,189 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "എസ്എംഎസ് ചാനൽ",
+ "DESC": "എസ്എംഎസിലൂടെ നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API പ്രൊവൈഡർ",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "ഞങ്ങൾ SMS ചാനൽ സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
+ "LABEL": "അക്കൗണ്ട് ഐഡി",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ Bandwidth അക്കൗണ്ട് ഐഡി നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "LABEL": "API കീ",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ ബാൻഡ്വിഡ്ത്ത് API കീ നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "LABEL": "API രഹസ്യം",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ ബാൻഡ്വിഡ്ത്ത് API രഹസ്യം നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
+ "LABEL": "അപ്ലിക്കേഷൻ ഐഡി",
+ "PLACEHOLDER": "ദയവായി നിങ്ങളുടെ Bandwidth അപ്ലിക്കേഷൻ ഐഡി നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"INBOX_NAME": {
"LABEL": "ഇൻബോക്സ് നാമം",
- "PLACEHOLDER": "Please enter a inbox name",
+ "PLACEHOLDER": "ദയവായി ഒരു ഇൻബോക്സ് പേര് നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"PHONE_NUMBER": {
"LABEL": "ഫോൺ നമ്പർ",
"PLACEHOLDER": "ദയവായി സന്ദേശം അയയ്ക്കുന്ന ഫോൺ നമ്പർ നൽകുക.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "ദയവായി `+` ചിഹ്നത്തോടെ ആരംഭിക്കുന്ന, ഇടവേളകളില്ലാത്ത സാധുവായ ഫോൺ നമ്പർ നൽകുക."
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "ബാൻഡ്വിഡ്ത് ചാനൽ സൃഷ്ടിക്കുക",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "ബാൻഡ്വിഡ്ത് ക്രെഡൻഷ്യലുകൾ സ്ഥിരീകരിക്കാൻ സാധിച്ചില്ല, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "TITLE": "കോൾബാക്ക് URL",
+ "SUBTITLE": "ഇവിടെ നൽകിയിരിക്കുന്ന URL ഉപയോഗിച്ച് ബാൻഡ്വിഡ്തിൽ മെസേജ് കോൾബാക്ക് URL ക്രമീകരിക്കണം."
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "വാട്ട്സ്ആപ്പ് ചാനൽ",
+ "DESC": "വാട്ട്സ്ആപ്പിലൂടെ നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API പ്രൊവൈഡർ",
+ "WHATSAPP_EMBEDDED": "WhatsApp ബിസിനസ്",
"TWILIO": "Twilio",
- "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD": "WhatsApp ക്ലൗഡ്",
+ "WHATSAPP_CLOUD_DESC": "Meta വഴി വേഗത്തിലുള്ള ക്രമീകരണം",
+ "TWILIO_DESC": "Twilio ക്രെഡൻഷ്യലുകൾ വഴി ബന്ധിപ്പിക്കുക",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "നിങ്ങളുടെ API പ്രൊവൈഡർ തിരഞ്ഞെടുക്കുക",
+ "DESCRIPTION": "നിങ്ങളുടെ WhatsApp പ്രൊവൈഡർ തിരഞ്ഞെടുക്കുക. ക്രമീകരണം ആവശ്യമില്ലാത്ത Meta വഴി നേരിട്ട് ബന്ധിപ്പിക്കാം, അല്ലെങ്കിൽ നിങ്ങളുടെ അക്കൗണ്ട് ക്രെഡൻഷ്യലുകൾ ഉപയോഗിച്ച് Twilio വഴി ബന്ധിപ്പിക്കാം."
+ },
"INBOX_NAME": {
"LABEL": "ഇൻബോക്സ് നാമം",
- "PLACEHOLDER": "Please enter an inbox name",
+ "PLACEHOLDER": "ദയവായി ഒരു ഇൻബോക്സ് പേര് നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"PHONE_NUMBER": {
"LABEL": "ഫോൺ നമ്പർ",
"PLACEHOLDER": "ദയവായി സന്ദേശം അയയ്ക്കുന്ന ഫോൺ നമ്പർ നൽകുക.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "ERROR": "ദയവായി `+` ചിഹ്നത്തോടെ ആരംഭിക്കുന്ന, ഇടവേളകളില്ലാത്ത സാധുവായ ഫോൺ നമ്പർ നൽകുക."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ഫോൺ നമ്പർ ഐഡി",
+ "PLACEHOLDER": "Facebook ഡെവലപ്പർ ഡാഷ്ബോർഡിൽ നിന്ന് ലഭിച്ച ഫോൺ നമ്പർ ഐഡി നൽകുക.",
+ "ERROR": "ദയവായി സാധുവായ മൂല്യം നൽകുക."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "ബിസിനസ് അക്കൗണ്ട് ഐഡി",
+ "PLACEHOLDER": "Facebook ഡെവലപ്പർ ഡാഷ്ബോർഡിൽ നിന്ന് ലഭിച്ച ബിസിനസ് അക്കൗണ്ട് ഐഡി നൽകുക.",
+ "ERROR": "ദയവായി സാധുവായ മൂല്യം നൽകുക."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "വെബ്ഹുക്ക് സ്ഥിരീകരണ ടോക്കൺ",
+ "PLACEHOLDER": "Facebook വെബ്ഹുക്കുകൾക്കായി ക്രമീകരിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന ഒരു സ്ഥിരീകരണ ടോക്കൺ നൽകുക.",
+ "ERROR": "ദയവായി സാധുവായ മൂല്യം നൽകുക."
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "API കീ",
+ "SUBTITLE": "WhatsApp API കീ ക്രമീകരിക്കുക.",
+ "PLACEHOLDER": "API കീ",
+ "ERROR": "ദയവായി സാധുവായ മൂല്യം നൽകുക."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
+ "TITLE": "കോൾബാക്ക് URL",
+ "SUBTITLE": "Facebook Developer പോർട്ടലിൽ താഴെ കാണിച്ചിരിക്കുന്ന മൂല്യങ്ങളോടെ webhook URLയും verification tokenഉം ക്രമീകരിക്കണം.",
"WEBHOOK_URL": "വെബ്ഹുക്ക് യുആർഎൽ",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook പരിശോധന ടോക്കൺ"
+ },
+ "SUBMIT_BUTTON": "WhatsApp ചാനൽ സൃഷ്ടിക്കുക",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Meta ഉപയോഗിച്ച് വേഗത്തിലുള്ള ക്രമീകരണം",
+ "DESC": "പുതിയ നമ്പറുകൾ വേഗത്തിൽ ബന്ധിപ്പിക്കാൻ WhatsApp Embedded Signup ഫ്ലോ ഉപയോഗിക്കുക. നിങ്ങളുടെ WhatsApp ബിസിനസ് അക്കൗണ്ടിൽ ലോഗിൻ ചെയ്യാൻ Meta-യിലേക്ക് റീഡയറക്ട് ചെയ്യപ്പെടും. അഡ്മിൻ ആക്സസ് ഉണ്ടെങ്കിൽ ക്രമീകരണം സുഖകരവും എളുപ്പവുമാകും.",
+ "BENEFITS": {
+ "TITLE": "എംബെഡഡ് സൈൻഅപ്പ് ന്റെ ഗുണങ്ങൾ:",
+ "EASY_SETUP": "മാനുവൽ ക്രമീകരണം ആവശ്യമില്ല",
+ "SECURE_AUTH": "സുരക്ഷിതമായ OAuth അടിസ്ഥാനത്തിലുള്ള പ്രാമാണീകരണം",
+ "AUTO_CONFIG": "സ്വയം പ്രവർത്തിക്കുന്ന webhook, ഫോൺ നമ്പർ ക്രമീകരണം"
+ },
+ "LEARN_MORE": {
+ "TEXT": "ഇന്റഗ്രേറ്റഡ് സൈൻഅപ്പ്, വിലനിർണ്ണയം, പരിമിതികൾ എന്നിവയെക്കുറിച്ച് കൂടുതൽ അറിയാൻ {link} സന്ദർശിക്കുക.",
+ "LINK_TEXT": "ഈ ലിങ്ക്"
+ },
+ "SUBMIT_BUTTON": "WhatsApp ബിസിനസ്സുമായി ബന്ധിപ്പിക്കുക",
+ "AUTH_PROCESSING": "Meta-യുമായി പ്രാമാണീകരിക്കുന്നു",
+ "WAITING_FOR_BUSINESS_INFO": "ദയവായി Meta വിൻഡോയിൽ ബിസിനസ് ക്രമീകരണം പൂർത്തിയാക്കുക...",
+ "PROCESSING": "നിങ്ങളുടെ WhatsApp ബിസിനസ് അക്കൗണ്ട് ക്രമീകരിക്കുന്നു",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK ലോഡിംഗ്...",
+ "CANCELLED": "WhatsApp സൈൻഅപ്പ് റദ്ദാക്കി",
+ "SUCCESS_TITLE": "WhatsApp ബിസിനസ് അക്കൗണ്ട് ബന്ധിപ്പിച്ചു!",
+ "WAITING_FOR_AUTH": "അധികാരപത്രം ലഭിക്കാൻ കാത്തിരിക്കുന്നു...",
+ "INVALID_BUSINESS_DATA": "Facebook-ൽ നിന്നുള്ള ബിസിനസ് ഡാറ്റ അസാധുവാണ്. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "SIGNUP_ERROR": "സൈൻഅപ്പ് പിഴവ് സംഭവിച്ചു",
+ "AUTH_NOT_COMPLETED": "അധികാരപത്രം പൂർത്തിയാക്കിയിട്ടില്ല. ദയവായി പ്രക്രിയ വീണ്ടും ആരംഭിക്കുക.",
+ "SUCCESS_FALLBACK": "WhatsApp ബിസിനസ് അക്കൗണ്ട് വിജയകരമായി ക്രമീകരിച്ചു",
+ "MANUAL_FALLBACK": "നിങ്ങളുടെ നമ്പർ ഇതിനകം WhatsApp ബിസിനസ് പ്ലാറ്റ്ഫോം (API) യുമായി ബന്ധിപ്പിച്ചിട്ടുണ്ടെങ്കിൽ, അല്ലെങ്കിൽ നിങ്ങൾ ഒരു ടെക് പ്രൊവൈഡറായി നിങ്ങളുടെ സ്വന്തം നമ്പർ ഓൺബോർഡ് ചെയ്യുകയാണെങ്കിൽ, ദയവായി {link} ഫ്ലോ ഉപയോഗിക്കുക",
+ "MANUAL_LINK_TEXT": "മാനുവൽ സെറ്റപ്പ് ഫ്ലോ",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "ഞങ്ങൾ WhatsApp ചാനൽ സേവ് ചെയ്യാൻ കഴിഞ്ഞില്ല"
+ }
+ },
+ "VOICE": {
+ "TITLE": "വോയ്സ് ചാനൽ",
+ "DESC": "Twilio Voice സംയോജിപ്പിച്ച് ഫോൺ കോൾ വഴി നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
+ "PHONE_NUMBER": {
+ "LABEL": "ഫോൺ നമ്പർ",
+ "PLACEHOLDER": "നിങ്ങളുടെ ഫോൺ നമ്പർ നൽകുക (ഉദാ. +1234567890)",
+ "ERROR": "ദയവായി E.164 ഫോർമാറ്റിലുള്ള സാധുവായ ഫോൺ നമ്പർ നൽകുക (ഉദാ. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "അക്കൗണ്ട് എസ്ഐഡി",
+ "PLACEHOLDER": "നിങ്ങളുടെ Twilio അക്കൗണ്ട് SID നൽകുക",
+ "REQUIRED": "അക്കൗണ്ട് SID ആവശ്യമാണ്"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "ഓത്ത് ടോക്കൺ",
+ "PLACEHOLDER": "നിങ്ങളുടെ Twilio ഓത്ത് ടോക്കൺ നൽകുക",
+ "REQUIRED": "ഓത്ത് ടോക്കൺ ആവശ്യമാണ്"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API കീ SID",
+ "PLACEHOLDER": "നിങ്ങളുടെ Twilio API കീ SID നൽകുക",
+ "REQUIRED": "API കീ SID ആവശ്യമാണ്"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API കീ രഹസ്യം",
+ "PLACEHOLDER": "നിങ്ങളുടെ Twilio API കീ രഹസ്യം നൽകുക",
+ "REQUIRED": "API കീ സീക്രട്ട് ആവശ്യമാണ്"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio വോയ്സ് URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "ഈ URL നിങ്ങളുടെ Twilio ഫോൺ നമ്പറിലും TwiML ആപ്പിലും വോയ്സ് URL ആയി ക്രമീകരിക്കുക.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio സ്റ്റാറ്റസ് കോൾബാക്ക് URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "നിങ്ങളുടെ Twilio ഫോൺ നമ്പറിൽ സ്റ്റാറ്റസ് കോൾബാക്ക് URL ആയി ഈ URL ക്രമീകരിക്കുക."
+ },
+ "SUBMIT_BUTTON": "വോയ്സ് ചാനൽ സൃഷ്ടിക്കുക",
+ "API": {
+ "ERROR_MESSAGE": "വോയ്സ് ചാനൽ സൃഷ്ടിക്കാൻ സാധിച്ചില്ല"
}
},
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "API ചാനൽ",
+ "DESC": "API ചാനലുമായി സംയോജിപ്പിച്ച് നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"CHANNEL_NAME": {
"LABEL": "ചാനലിന്റെ പേര്",
"PLACEHOLDER": "ഈ ചാനലിനു ദയവായി ഒരു പേര് നൽകുക",
@@ -269,17 +376,17 @@
},
"WEBHOOK_URL": {
"LABEL": "വെബ്ഹുക്ക് യുആർഎൽ",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "ഇവന്റുകളിൽ കോൾബാക്കുകൾ സ്വീകരിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്ന URL ക്രമീകരിക്കുക.",
"PLACEHOLDER": "വെബ്ഹുക്ക് യുആർഎൽ"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "API ചാനൽ സൃഷ്ടിക്കുക",
"API": {
"ERROR_MESSAGE": "We were not able to save the api channel"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "ഇമെയിൽ ചാനൽ",
+ "DESC": "നിങ്ങളുടെ ഇമെയിൽ ഇൻബോക്സ് സംയോജിപ്പിക്കുക.",
"CHANNEL_NAME": {
"LABEL": "ചാനലിന്റെ പേര്",
"PLACEHOLDER": "ഈ ചാനലിനു ദയവായി ഒരു പേര് നൽകുക",
@@ -290,63 +397,119 @@
"SUBTITLE": "Email where your customers sends you support tickets",
"PLACEHOLDER": "ഇമെയിൽ"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "ഇമെയിൽ ചാനൽ സൃഷ്ടിക്കുക",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "ഇമെയിൽ ചാനൽ സംരക്ഷിക്കാൻ സാധിച്ചില്ല"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "നിങ്ങളുടെ ഇമെയിൽ ഇൻബോക്സ് വിജയകരമായി സൃഷ്ടിച്ചു! ഇമെയിലുകൾ അയയ്ക്കാനും സ്വീകരിക്കാനും SMTP, IMAP ക്രെഡൻഷ്യലുകൾ ക്രമീകരിക്കേണ്ടതാണ്. ഈ ക്രമീകരണങ്ങൾ ഇല്ലാതെ, ഇമെയിലുകൾ പ്രോസസ്സ് ചെയ്യപ്പെടുകയില്ല.",
+ "FORWARDING_ADDRESS_LABEL": "ഇമെയിലുകൾ ഈ വിലാസത്തിലേക്ക് ഫോർവേഡ് ചെയ്യുക:",
+ "CONFIGURE_SMTP_IMAP_LINK": "ഇവിടെ ക്ലിക്കു ചെയ്യുക",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE ചാനൽ",
+ "DESC": "LINE ചാനലുമായി സംയോജിപ്പിച്ച് നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"CHANNEL_NAME": {
"LABEL": "ചാനലിന്റെ പേര്",
"PLACEHOLDER": "ഈ ചാനലിനു ദയവായി ഒരു പേര് നൽകുക",
"ERROR": "ഈ ഫീൽഡ് ആവശ്യമാണ്"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE ചാനൽ ഐഡി",
+ "PLACEHOLDER": "LINE ചാനൽ ഐഡി"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE ചാനൽ രഹസ്യം",
+ "PLACEHOLDER": "LINE ചാനൽ രഹസ്യം"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE ചാനൽ ടോക്കൺ",
+ "PLACEHOLDER": "LINE ചാനൽ ടോക്കൺ"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE ചാനൽ സൃഷ്ടിക്കുക",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "LINE ചാനൽ സംരക്ഷിക്കാൻ സാധിച്ചില്ല"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "കോൾബാക്ക് URL",
+ "SUBTITLE": "LINE ആപ്ലിക്കേഷനിൽ വെബ്ഹുക്ക് URL ഇവിടെ നൽകിയ URL ഉപയോഗിച്ച് ക്രമീകരിക്കണം."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "ടെലഗ്രാം ചാനൽ",
+ "DESC": "ടെലഗ്രാം ചാനലുമായി സംയോജിപ്പിച്ച് നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കാൻ ആരംഭിക്കുക.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "ബോട്ട് ടോക്കൺ",
+ "SUBTITLE": "Telegram BotFather-ൽ നിന്ന് നിങ്ങൾക്ക് ലഭിച്ച ബോട്ട് ടോക്കൺ ക്രമീകരിക്കുക.",
+ "PLACEHOLDER": "ബോട്ട് ടോക്കൺ"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram ചാനൽ സൃഷ്ടിക്കുക",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Telegram ചാനൽ സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "ഒരു ചാനൽ തിരഞ്ഞെടുക്കുക",
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "സജ്ജീകരണം പൂർത്തിയാക്കുക",
+ "TITLE_FINISH": "വോയ്ലാ!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "വെബ്സൈറ്റ്",
+ "DESCRIPTION": "ലൈവ്-ചാറ്റ് വിഡ്ജറ്റ് സൃഷ്ടിക്കുക"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "നിങ്ങളുടെ Facebook പേജ് കണക്ട് ചെയ്യുക"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "WhatsApp-ൽ നിങ്ങളുടെ ഉപഭോക്താക്കളെ പിന്തുണയ്ക്കുക"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "ഇമെയിൽ",
+ "DESCRIPTION": "Gmail, Outlook, അല്ലെങ്കിൽ മറ്റ് പ്രൊവൈഡർമാരുമായി കണക്ട് ചെയ്യുക"
+ },
+ "SMS": {
+ "TITLE": "എസ്എംഎസ്",
+ "DESCRIPTION": "Twilio അല്ലെങ്കിൽ bandwidth ഉപയോഗിച്ച് SMS ചാനൽ സംയോജിപ്പിക്കുക"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "ഞങ്ങളുടെ API ഉപയോഗിച്ച് ഒരു കസ്റ്റം ചാനൽ സൃഷ്ടിക്കുക"
+ },
+ "TELEGRAM": {
+ "TITLE": "ടെലഗ്രാം",
+ "DESCRIPTION": "Bot ടോക്കൺ ഉപയോഗിച്ച് Telegram ചാനൽ ക്രമീകരിക്കുക"
+ },
+ "LINE": {
+ "TITLE": "ലൈൻ",
+ "DESCRIPTION": "നിങ്ങളുടെ ലൈൻ ചാനൽ സംയോജിപ്പിക്കുക"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "നിങ്ങളുടെ Instagram അക്കൗണ്ട് ബന്ധിപ്പിക്കുക"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "നിങ്ങളുടെ TikTok അക്കൗണ്ട് കണക്ട് ചെയ്യുക"
+ },
+ "VOICE": {
+ "TITLE": "വോയ്സ്",
+ "DESCRIPTION": "Twilio Voice-നൊപ്പം സംയോജിപ്പിക്കുക"
+ }
+ }
},
"AGENTS": {
"TITLE": "ഏജന്റുമാർ",
"DESC": "നിങ്ങളുടെ പുതുതായി സൃഷ്ടിച്ച ഇൻബോക്സ് മാനേജു ചെയ്യുന്നതിന് ഇവിടെ നിങ്ങൾക്ക് ഏജന്റുമാരെ ചേർക്കാൻ കഴിയും. ഈ തിരഞ്ഞെടുത്ത ഏജന്റുമാർക്ക് മാത്രമേ നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് ആക്സസ് ഉണ്ടായിരിക്കുകയുള്ളൂ. ഈ ഇൻബോക്സിന്റെ ഭാഗമല്ലാത്ത ഏജന്റുമാർക്ക് ഈ ഇൻബോക്സിലെ സന്ദേശങ്ങൾ കാണാനോ പ്രതികരിക്കാനോ കഴിയില്ല.
ഒരു അഡ്മിനിസ്ട്രേറ്റർ എന്ന നിലയിൽ, നിങ്ങൾക്ക് എല്ലാ ഇൻബോക്സുകളിലേക്കും ആക്സസ് ആവശ്യമുണ്ടെങ്കിൽ, നിങ്ങൾ സൃഷ്ടിക്കുന്ന എല്ലാ ഇൻബോക്സുകളിലേക്കും നിങ്ങൾ സ്വയം ഏജന്റായി ചേർക്കണം.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "VALIDATION_ERROR": "നിങ്ങളുടെ പുതിയ ഇൻബോക്സിലേക്ക് കുറഞ്ഞത് ഒരു ഏജന്റ് ചേർക്കുക",
+ "PICK_AGENTS": "ഇൻബോക്സിനായി ഏജന്റുകൾ തിരഞ്ഞെടുക്കുക"
},
"DETAILS": {
"TITLE": "ഇൻബോക്സ് വിശദാംശങ്ങൾ",
@@ -357,22 +520,30 @@
"DESC": "നിങ്ങളുടെ ഫേസ്ബുക്ക് പേജ് ചാറ്റ് വൂട്ടുമായി സമന്വയിപ്പിക്കുന്നത് നിങ്ങൾ വിജയകരമായി പൂർത്തിയാക്കി. അടുത്ത തവണ ഒരു ഉപയോക്താവ് നിങ്ങളുടെ പേജിലേക്ക് സന്ദേശമയയ്ക്കുമ്പോൾ, സംഭാഷണം ഓട്ടോമാറ്റിക്കലി നിങ്ങളുടെ ഇൻബോക്സിൽ ദൃശ്യമാകും.
നിങ്ങൾക്ക് എളുപ്പത്തിൽ സംയോജിപ്പിക്കാൻ കഴിയുന്ന ഒരു വിജറ്റ് സ്ക്രിപ്റ്റും ഞങ്ങൾ നിങ്ങൾക്ക് നൽകുന്നു. ഇത് നിങ്ങളുടെ വെബ്സൈറ്റിലേക്ക് ചേർക്കുക. ഇത് നിങ്ങളുടെ വെബ്സൈറ്റിൽ തത്സമയമായിക്കഴിഞ്ഞാൽ, ഉപയോക്താക്കൾക്ക് നിങ്ങളുടെ വെബ്സൈറ്റിൽ നിന്ന് നിങ്ങൾക്ക് സന്ദേശം അയയ്ക്കാൻ കഴിയും, ഒപ്പം സംഭാഷണം ചാറ്റ് വൂട്ടിൽ തന്നെ ദൃശ്യമാകും.
കൊള്ളാം, അല്ലേ? :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "നിങ്ങളുടെ ഇമെയിൽ പ്രൊവൈഡർ തിരഞ്ഞെടുക്കുക",
+ "DESCRIPTION": "താഴെ നൽകിയ പട്ടികയിൽ നിന്ന് ഒരു ഇമെയിൽ പ്രൊവൈഡർ തിരഞ്ഞെടുക്കുക. നിങ്ങളുടെ ഇമെയിൽ പ്രൊവൈഡർ പട്ടികയിൽ കാണുന്നില്ലെങ്കിൽ, മറ്റ് പ്രൊവൈഡർ ഓപ്ഷൻ തിരഞ്ഞെടുക്കുകയും IMAP, SMTP ക്രെഡൻഷ്യലുകൾ നൽകുകയും ചെയ്യാം."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft ഇമെയിൽ",
+ "DESCRIPTION": "തുടങ്ങാൻ Microsoft-ൽ സൈൻ ഇൻ ചെയ്യുക ബട്ടൺ ക്ലിക്ക് ചെയ്യുക. നിങ്ങൾ ഇമെയിൽ സൈൻ ഇൻ പേജിലേക്ക് റീഡയറക്ട് ചെയ്യപ്പെടും. ആവശ്യമായ അനുമതികൾ അംഗീകരിച്ചാൽ, നിങ്ങൾ വീണ്ടും ഇൻബോക്സ് സൃഷ്ടിക്കൽ ഘട്ടത്തിലേക്ക് റീഡയറക്ട് ചെയ്യപ്പെടും.",
+ "EMAIL_PLACEHOLDER": "ഇമെയിൽ വിലാസം നൽകുക",
+ "SIGN_IN": "Microsoft ഉപയോഗിച്ച് സൈൻ ഇൻ ചെയ്യുക",
+ "ERROR_MESSAGE": "Microsoft-യുമായി ബന്ധിപ്പിക്കുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "GOOGLE": {
+ "TITLE": "Google ഇമെയിൽ",
+ "DESCRIPTION": "തുടങ്ങാൻ Google-ൽ സൈൻ ഇൻ ബട്ടൺ ക്ലിക്ക് ചെയ്യുക. നിങ്ങൾ ഇമെയിൽ സൈൻ ഇൻ പേജിലേക്ക് റീഡയറക്ട് ചെയ്യപ്പെടും. ആവശ്യപ്പെട്ട അനുമതികൾ നിങ്ങൾ അംഗീകരിച്ചാൽ, നിങ്ങൾ വീണ്ടും ഇൻബോക്സ് സൃഷ്ടിക്കൽ ഘട്ടത്തിലേക്ക് റീഡയറക്ട് ചെയ്യപ്പെടും.",
+ "SIGN_IN": "Google-ൽ സൈൻ ഇൻ ചെയ്യുക",
+ "EMAIL_PLACEHOLDER": "ഇമെയിൽ വിലാസം നൽകുക",
+ "ERROR_MESSAGE": "Google-യുമായി ബന്ധിപ്പിക്കുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
}
},
"DETAILS": {
"LOADING_FB": "ഫേസ്ബുക് ഉപയോഗിച്ച് നിങ്ങളെ പ്രാമാണീകരിക്കുന്നു...",
+ "ERROR_FB_LOADING": "Facebook SDK ലോഡ് ചെയ്യുന്നതിൽ പിശക്. ദയവായി ഏതെങ്കിലും അഡ്ബ്ലോക്കർകൾ അപ്രാപ്തമാക്കി മറ്റൊരു ബ്രൗസറിൽ വീണ്ടും ശ്രമിക്കുക.",
"ERROR_FB_AUTH": "എന്തോ കുഴപ്പം സംഭവിച്ചു, ദയവായി പേജ് പുതുക്കുക...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
+ "ERROR_FB_UNAUTHORIZED": "ഈ പ്രവർത്തനം നടത്താൻ നിങ്ങൾക്ക് അനുമതി ഇല്ല. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "ഫേസ്ബുക്ക് പേജിൽ പൂർണ്ണ നിയന്ത്രണത്തോടെ ആക്സസ് ഉള്ളതായി ഉറപ്പാക്കുക. ഫേസ്ബുക്ക് റോളുകൾക്കുറിച്ച് കൂടുതൽ വായിക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക.",
"CREATING_CHANNEL": "നിങ്ങളുടെ ഇൻബോക്സ് സൃഷ്ടിച്ചു കൊണ്ട് ഇരിക്കുകയാണ്...",
"TITLE": "ഇൻബോക്സ് വിശദാംശങ്ങൾ കോൺഫിഗർ ചെയ്യുക",
"DESC": ""
@@ -383,10 +554,13 @@
},
"FINISH": {
"TITLE": "നിങ്ങളുടെ ഇൻബോക്സ് തയ്യാറാണ്!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
+ "MESSAGE": "ഇപ്പോൾ നിങ്ങളുടെ പുതിയ ചാനലിലൂടെ നിങ്ങളുടെ ഉപഭോക്താക്കളുമായി ബന്ധപ്പെടാം. സന്തോഷകരമായ പിന്തുണ നൽകുക",
"BUTTON_TEXT": "എന്നെ അവിടേക്ക് കൊണ്ടുപോകുക",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "നിങ്ങൾ ഒരു വെബ്സൈറ്റ് ചാനൽ സൃഷ്ടിക്കുന്നത് വിജയകരമായി പൂർത്തിയാക്കി. ചുവടെ കാണിച്ചിരിക്കുന്ന കോഡ് പകർത്തി നിങ്ങളുടെ വെബ്സൈറ്റിൽ ചേർക്കുക. അടുത്ത തവണ ഒരു ഉപഭോക്താവ് തത്സമയ ചാറ്റ് ഉപയോഗിക്കുമ്പോൾ, സംഭാഷണം ഓട്ടോമാറ്റിക് ആയി നിങ്ങളുടെ ഇൻബോക്സിൽ ദൃശ്യമാകും."
+ "MORE_SETTINGS": "കൂടുതൽ ക്രമീകരണങ്ങൾ",
+ "WEBSITE_SUCCESS": "നിങ്ങൾ ഒരു വെബ്സൈറ്റ് ചാനൽ സൃഷ്ടിക്കുന്നത് വിജയകരമായി പൂർത്തിയാക്കി. ചുവടെ കാണിച്ചിരിക്കുന്ന കോഡ് പകർത്തി നിങ്ങളുടെ വെബ്സൈറ്റിൽ ചേർക്കുക. അടുത്ത തവണ ഒരു ഉപഭോക്താവ് തത്സമയ ചാറ്റ് ഉപയോഗിക്കുമ്പോൾ, സംഭാഷണം ഓട്ടോമാറ്റിക് ആയി നിങ്ങളുടെ ഇൻബോക്സിൽ ദൃശ്യമാകും.",
+ "WHATSAPP_QR_INSTRUCTION": "നിങ്ങളുടെ WhatsApp ഇൻബോക്സ് വേഗത്തിൽ പരിശോധിക്കാൻ മുകളിൽ കാണുന്ന QR കോഡ് സ്കാൻ ചെയ്യുക",
+ "MESSENGER_QR_INSTRUCTION": "നിങ്ങളുടെ Facebook Messenger ഇൻബോക്സ് വേഗത്തിൽ പരിശോധിക്കാൻ മുകളിൽ കാണുന്ന QR കോഡ് സ്കാൻ ചെയ്യുക",
+ "TELEGRAM_QR_INSTRUCTION": "നിങ്ങളുടെ Telegram ഇൻബോക്സ് വേഗത്തിൽ പരിശോധിക്കാൻ മുകളിൽ കാണുന്ന QR കോഡ് സ്കാൻ ചെയ്യുക"
},
"REAUTH": "വീണ്ടും അംഗീകാരം നൽകുക",
"VIEW": "കാണുക",
@@ -394,7 +568,7 @@
"API": {
"SUCCESS_MESSAGE": "വിജറ്റ് നിറം വിജയകരമായി അപ്ഡേറ്റു ചെയ്തു",
"AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "ഓട്ടോമാറ്റിക് അസൈൻമെന്റ് വിജയകരമായി അപ്ഡേറ്റുചെയ്തു",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "ERROR_MESSAGE": "ഇൻബോക്സ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
@@ -405,22 +579,22 @@
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "അയച്ചവന്റെ പേര്",
+ "SUB_TEXT": "നിങ്ങളുടെ ഏജന്റുകളിൽ നിന്ന് ഇമെയിലുകൾ ലഭിക്കുമ്പോൾ ഉപഭോക്താവിന് കാണിക്കുന്ന പേര് തിരഞ്ഞെടുക്കുക.",
+ "FOR_EG": "ഉദാ:",
"FRIENDLY": {
- "TITLE": "Friendly",
+ "TITLE": "സ്നേഹപൂർവ്വം",
"FROM": "നിന്ന്",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "SUBTITLE": "അയച്ചവന്റെ പേരിൽ മറുപടി അയച്ച ഏജന്റിന്റെ പേര് ചേർക്കുക, ഇത് സ്നേഹപൂർവ്വമാക്കാൻ."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "പ്രൊഫഷണൽ",
+ "SUBTITLE": "ഇമെയിൽ ഹെഡറിൽ അയയ്ക്കുന്ന പേരായി ക്രമീകരിച്ച ബിസിനസ് പേര് മാത്രം ഉപയോഗിക്കുക."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "നിങ്ങളുടെ ബിസിനസ് പേര് ക്രമീകരിക്കുക",
+ "PLACEHOLDER": "നിങ്ങളുടെ ബിസിനസ് പേര് നൽകുക",
+ "SAVE_BUTTON_TEXT": "സേവ് ചെയ്യുക"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
@@ -432,171 +606,433 @@
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
- "DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
+ "ENABLED": "അടുത്തതേ സംഭാഷണം വീണ്ടും തുറക്കുക",
+ "DISABLED": "പുതിയ സംഭാഷണങ്ങൾ സൃഷ്ടിക്കുക",
+ "ENABLED_DESCRIPTION": "ഒരു കോൺടാക്ട് വീണ്ടും സന്ദേശം അയച്ചാൽ, മുൻപ് ഉണ്ടായിരുന്ന സംഭാഷണം വീണ്ടും തുറക്കും.",
+ "DISABLED_DESCRIPTION": "മുൻപ് പരിഹരിച്ച ശേഷം ഓരോ തവണയും പുതിയൊരു സംഭാഷണം സൃഷ്ടിക്കും."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "സജീവമാക്കുക"
}
},
"DELETE": {
"BUTTON_TEXT": "ഇല്ലാതാക്കുക",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "AVATAR_DELETE_BUTTON_TEXT": "അവതാർ ഇല്ലാതാക്കുക",
"CONFIRM": {
"TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
"MESSAGE": "ഇല്ലാതാക്കണമെന്നു ഉറപ്പാണോ ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
+ "PLACE_HOLDER": "ദയവായി സ്ഥിരീകരിക്കാൻ {inboxName} ടൈപ്പ് ചെയ്യുക",
"YES": "അതെ, ഇല്ലാതാക്കുക ",
"NO": "ഇല്ല, സൂക്ഷിക്കുക"
},
"API": {
"SUCCESS_MESSAGE": "ഇൻബോക്സ് വിജയകരമായി ഇല്ലാതാക്കിയിരിക്കുന്നു",
"ERROR_MESSAGE": "ഇൻബോക്സ് ഇല്ലാതാക്കാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "AVATAR_SUCCESS_MESSAGE": "ഇൻബോക്സ് അവതാർ വിജയകരമായി മായ്ചു",
+ "AVATAR_ERROR_MESSAGE": "ഇൻബോക്സ് അവതാർ മായ്ക്കാൻ സാധിച്ചില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
}
},
"TABS": {
"SETTINGS": "ക്രമീകരണങ്ങൾ",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
+ "COLLABORATORS": "സഹപ്രവർത്തകർ",
+ "CONFIGURATION": "ക്രമീകരണം",
"CAMPAIGN": "പ്രചാരണങ്ങൾ",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "PRE_CHAT_FORM": "പ്രീ ചാറ്റ് ഫോം",
+ "BUSINESS_HOURS": "ബിസിനസ് മണിക്കൂറുകൾ",
+ "WIDGET_BUILDER": "വിഡ്ജറ്റ് നിർമ്മാതാവ്",
+ "BOT_CONFIGURATION": "ബോട്ട് ക്രമീകരണം",
+ "ACCOUNT_HEALTH": "അക്കൗണ്ട് ആരോഗ്യ നില",
+ "CSAT": "CSAT",
+ "VOICE": "വോയ്സ്",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "ചാനൽ മുൻഗണനകൾ",
+ "WIDGET_FEATURES": "വിഡ്ജറ്റ് സവിശേഷതകൾ",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "നിങ്ങളുടെ WhatsApp അക്കൗണ്ട് നിയന്ത്രിക്കുക",
+ "DESCRIPTION": "നിങ്ങളുടെ WhatsApp അക്കൗണ്ട് നില, സന്ദേശ പരിധികൾ, ഗുണനിലവാരം പരിശോധിക്കുക. ആവശ്യമായെങ്കിൽ ക്രമീകരണങ്ങൾ പുതുക്കുക അല്ലെങ്കിൽ പ്രശ്നങ്ങൾ പരിഹരിക്കുക",
+ "GO_TO_SETTINGS": "Meta Business Manager-ലേക്ക് പോകുക",
+ "NO_DATA": "ആരോഗ്യ ഡാറ്റ ലഭ്യമല്ല",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "ഫോൺ നമ്പർ പ്രദർശിപ്പിക്കുക",
+ "TOOLTIP": "ഉപഭോക്താക്കൾക്ക് കാണിക്കുന്ന ഫോൺ നമ്പർ"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "ബിസിനസ് പേര്",
+ "TOOLTIP": "WhatsApp വഴി സ്ഥിരീകരിച്ച ബിസിനസ് പേര്"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "പ്രദർശന നാമത്തിന്റെ നില",
+ "TOOLTIP": "നിങ്ങളുടെ ബിസിനസ് നാമം സ്ഥിരീകരണത്തിന്റെ നില"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "ഗുണമേന്മാ റേറ്റിംഗ്",
+ "TOOLTIP": "നിങ്ങളുടെ അക്കൗണ്ടിന്റെ WhatsApp ഗുണമേന്മാ റേറ്റിംഗ്"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "സന്ദേശം പരിധി നില",
+ "TOOLTIP": "നിങ്ങളുടെ അക്കൗണ്ടിനുള്ള പ്രതിദിന സന്ദേശ പരിധി"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "അക്കൗണ്ട് മോഡ്",
+ "TOOLTIP": "നിങ്ങളുടെ WhatsApp അക്കൗണ്ടിന്റെ നിലവിലെ പ്രവർത്തന മോഡ്"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "റേറ്റിംഗ് ലഭ്യമല്ല"
+ },
+ "STATUSES": {
+ "APPROVED": "അംഗീകൃതം",
+ "PENDING_REVIEW": "പരിശോധനയ്ക്ക് കാത്തിരിക്കുന്നു",
+ "AVAILABLE_WITHOUT_REVIEW": "പരിശോധന കൂടാതെ ലഭ്യമാണ്",
+ "REJECTED": "നിഷേധിച്ചു",
+ "DECLINED": "തള്ളിവെച്ചു",
+ "NON_EXISTS": "അസ്തിത്വമില്ല"
+ },
+ "MODES": {
+ "SANDBOX": "സാൻഡ്ബോക്സ്",
+ "LIVE": "ലൈവ്"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook ക്രമീകരണം",
+ "DESCRIPTION": "ഉപഭോക്താക്കളിൽ നിന്ന് സന്ദേശങ്ങൾ സ്വീകരിക്കാൻ നിങ്ങളുടെ WhatsApp ബിസിനസ് അക്കൗണ്ടിന് Webhook URL ആവശ്യമാണ്",
+ "ACTION_REQUIRED": "Webhook ക്രമീകരിച്ചിട്ടില്ല",
+ "REGISTER_BUTTON": "Webhook രജിസ്റ്റർ ചെയ്യുക",
+ "REGISTER_SUCCESS": "Webhook വിജയകരമായി രജിസ്റ്റർ ചെയ്തു",
+ "REGISTER_ERROR": "Webhook രജിസ്റ്റർ ചെയ്യാൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "CONFIGURED_SUCCESS": "Webhook വിജയകരമായി ക്രമീകരിച്ചു",
+ "URL_MISMATCH": "Webhook URL പൊരുത്തക്കേട്"
+ }
},
"SETTINGS": "ക്രമീകരണങ്ങൾ",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "LABEL": "സവിശേഷതകൾ",
+ "DISPLAY_FILE_PICKER": "വിഡ്ജറ്റിൽ ഫയൽ തിരഞ്ഞെടുക്കുന്നവ കാണിക്കുക",
+ "DISPLAY_EMOJI_PICKER": "വിഡ്ജറ്റിൽ ഇമോജി പിക്കർ പ്രദർശിപ്പിക്കുക",
+ "ALLOW_END_CONVERSATION": "ഉപയോക്താക്കൾക്ക് വിഡ്ജറ്റിൽ നിന്ന് സംഭാഷണം അവസാനിപ്പിക്കാൻ അനുവദിക്കുക",
+ "USE_INBOX_AVATAR_FOR_BOT": "ബോട്ട്ക്കായി ഇൻബോക്സ് പേര്യും അവതാറും ഉപയോഗിക്കുക"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "മെസഞ്ചർ സ്ക്രിപ്റ്റ്",
"MESSENGER_SUB_HEAD": "ഈ ബട്ടൺ നിങ്ങളുടെ ബോഡി ടാഗിനുള്ളിൽ സ്ഥാപിക്കുക",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "അനുമതിയുള്ള ഡൊമെയ്നുകൾ",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "രഹസ്യ കീ",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "ഏജന്റുമാർ",
"INBOX_AGENTS_SUB_TEXT": "ഈ ഇൻബോക്സിൽ നിന്ന് ഏജന്റുമാരെ ചേർക്കുക അല്ലെങ്കിൽ നീക്കംചെയ്യുക",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
+ "AGENT_ASSIGNMENT": "സംവാദ നിയോഗം",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "സംവാദ നിയോഗം ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
"UPDATE": "അപ്ഡേറ്റ്",
- "ENABLE_EMAIL_COLLECT_BOX": "Enable email collect box",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Enable or disable email collect box on new conversation",
+ "ENABLE_EMAIL_COLLECT_BOX": "ഇമെയിൽ ശേഖരണ ബോക്സ് സജീവമാക്കുക",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "പുതിയ സംഭാഷണത്തിൽ ഇമെയിൽ ശേഖരണ ബോക്സ് സജീവമാക്കുക അല്ലെങ്കിൽ അപ്രാപ്തമാക്കുക",
"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",
+ "SENDER_NAME_SECTION": "ഇമെയിലിൽ ഏജന്റ് പേര് സജീവമാക്കുക",
+ "SENDER_NAME_SECTION_TEXT": "ഇമെയിലിൽ ഏജന്റിന്റെ പേര് കാണിക്കുന്നതിനെ സജ്ജമാക്കുക/അസജ്ജമാക്കുക, അസജ്ജമാക്കിയാൽ ബിസിനസ് പേര് കാണിക്കും",
"ENABLE_CONTINUITY_VIA_EMAIL": "ഇമെയിൽ വഴി സംഭാഷണ തുടർച്ച പ്രവർത്തനക്ഷമമാക്കുക",
"ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "ബന്ധപ്പെടാനുള്ള ഇമെയിൽ വിലാസം ലഭ്യമാണെങ്കിൽ സംഭാഷണങ്ങൾ ഇമെയിൽ വഴി തുടരും.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "സംഭാഷണ റൂട്ടിംഗ്",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "ഇതിനകം ഉള്ള കോൺടാക്റ്റുകൾക്കായി സംഭാഷണം സൃഷ്ടിക്കൽ ക്രമീകരിക്കുക",
+ "INBOX_UPDATE_TITLE": "ഇൻബോക്സ് ക്രമീകരണങ്ങൾ",
+ "INBOX_UPDATE_SUB_TEXT": "നിങ്ങളുടെ ഇൻബോക്സ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
"AUTO_ASSIGNMENT_SUB_TEXT": "പുതിയ സംഭാഷണങ്ങളിൽ ലഭ്യമായ ഏജന്റുമാരുടെ ഓട്ടോമാറ്റിക് അസൈൻമെന്റ് പ്രാപ്തമാക്കുകയോ അപ്രാപ്തമാക്കുകയോ ചെയ്യുക",
- "HMAC_VERIFICATION": "User Identity Validation",
+ "HMAC_VERIFICATION": "ഉപയോക്തൃ തിരിച്ചറിയൽ സ്ഥിരീകരണം",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "നിങ്ങൾക്ക് കൂടുതൽ വായിക്കാം.",
+ "HMAC_MANDATORY_VERIFICATION": "ഉപയോക്തൃ തിരിച്ചറിയൽ സ്ഥിരീകരണം നിർബന്ധമാക്കുക",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "INBOX_IDENTIFIER": "ഇൻബോക്സ് ഐഡന്റിഫയർ",
+ "INBOX_IDENTIFIER_SUB_TEXT": "നിങ്ങളുടെ API ക്ലയന്റുകളെ പ്രാമാണീകരിക്കാൻ ഇവിടെ കാണിക്കുന്ന `inbox_identifier` ടോക്കൺ ഉപയോഗിക്കുക.",
+ "FORWARD_EMAIL_TITLE": "ഇമെയിലിലേക്ക് ഫോർവേഡ് ചെയ്യുക",
+ "FORWARD_EMAIL_SUB_TEXT": "താഴെ കൊടുത്തിരിക്കുന്ന ഇമെയിൽ വിലാസത്തിലേക്ക് നിങ്ങളുടെ ഇമെയിലുകൾ ഫോർവേഡ് ചെയ്യാൻ ആരംഭിക്കുക.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "ഈ ഇൻസ്റ്റാളേഷനിൽ നിങ്ങളുടെ ഇൻബോക്സിലേക്ക് ഇമെയിൽ ഫോർവേഡിംഗ് നിലവിൽ അപ്രാപ്തമാണ്. ഈ സവിശേഷത ഉപയോഗിക്കാൻ, നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്റർ ഇത് സജീവമാക്കണം. തുടരാൻ അവരുമായി ബന്ധപ്പെടുക.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "സംഭാഷണം പരിഹരിച്ചതിന് ശേഷം സന്ദേശങ്ങൾ അനുവദിക്കുക",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "സംഭാഷണം പരിഹരിച്ചതിന് ശേഷവും സന്ദേശങ്ങൾ അയയ്ക്കാൻ അന്തിമ ഉപയോക്താക്കളെ അനുവദിക്കുക.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
+ "WHATSAPP_SECTION_SUBHEADER": "WhatsApp API-കളുമായി സംയോജിപ്പിക്കാൻ ഈ API കീ ഉപയോഗിക്കുന്നു.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API-കളുമായി സംയോജിപ്പിക്കാൻ ഉപയോഗിക്കുന്ന പുതിയ API കീ നൽകുക.",
+ "WHATSAPP_SECTION_TITLE": "API കീ",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API കീ അപ്ഡേറ്റ് ചെയ്യുക",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "പുതിയ API കീ ഇവിടെ നൽകുക",
"WHATSAPP_SECTION_UPDATE_BUTTON": "അപ്ഡേറ്റ്",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp എംബെഡഡ് സൈൻഅപ്പ്",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "ഈ ഇൻബോക്സ് WhatsApp എംബെഡഡ് സൈൻഅപ്പ് വഴി ബന്ധിപ്പിച്ചിരിക്കുന്നു.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "നിങ്ങളുടെ WhatsApp ബിസിനസ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ ഈ ഇൻബോക്സ് പുനഃക്രമീകരിക്കാം.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "പുനഃക്രമീകരിക്കുക",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp ബിസിനസുമായി ബന്ധിപ്പിക്കുക",
+ "WHATSAPP_CONNECT_SUBHEADER": "സൗകര്യപ്രദമായ മാനേജ്മെന്റിനായി WhatsApp എംബെഡഡ് സൈൻഅപ്പിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "ഈ ഇൻബോക്സ് WhatsApp ബിസിനസുമായി ബന്ധിപ്പിച്ച് മെച്ചപ്പെട്ട ഫീച്ചറുകളും എളുപ്പമുള്ള മാനേജ്മെന്റും നേടുക.",
+ "WHATSAPP_CONNECT_BUTTON": "ബന്ധിപ്പിക്കുക",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp ബിസിനസുമായി വിജയകരമായി ബന്ധിപ്പിച്ചു!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp ബിസിനസുമായി ബന്ധിപ്പിക്കാൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp ബിസിനസ് വിജയകരമായി പുനഃക്രമീകരിച്ചു!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp ബിസിനസ് പുനഃക്രമീകരിക്കാൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp ആപ്പ് ഐഡി ക്രമീകരിച്ചിട്ടില്ല. ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp കോൺഫിഗറേഷൻ ഐഡി ക്രമീകരിച്ചിട്ടില്ല. ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp ലോഗിൻ റദ്ദാക്കി. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook സ്ഥിരീകരണ ടോക്കൺ",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "ഈ ടോക്കൺ വെബ്ഹുക്ക് എൻഡ്പോയിന്റിന്റെ യഥാർത്ഥത സ്ഥിരീകരിക്കാൻ ഉപയോഗിക്കുന്നു.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "ടെംപ്ലേറ്റുകൾ സമന്വയിപ്പിക്കുക",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "നിങ്ങളുടെ ലഭ്യമായ ടെംപ്ലേറ്റുകൾ അപ്ഡേറ്റ് ചെയ്യാൻ WhatsApp-ൽ നിന്ന് സന്ദേശ ടെംപ്ലേറ്റുകൾ മാനുവലായി സമന്വയിപ്പിക്കുക.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "ടെംപ്ലേറ്റുകൾ സമന്വയിപ്പിക്കുക",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "ടെംപ്ലേറ്റുകൾ സമന്വയം വിജയകരമായി ആരംഭിച്ചു. അപ്ഡേറ്റ് ചെയ്യാൻ കുറച്ച് മിനിറ്റുകൾ എടുക്കാം.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "പ്രീ ചാറ്റ് ഫോമിന്റെ ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "സഹായ കേന്ദ്രം",
+ "PLACEHOLDER": "സഹായ കേന്ദ്രം തിരഞ്ഞെടുക്കുക",
+ "SELECT_PLACEHOLDER": "സഹായ കേന്ദ്രം തിരഞ്ഞെടുക്കുക",
+ "NONE": "ഒന്നുമില്ല",
+ "REMOVE": "സഹായ കേന്ദ്രം നീക്കംചെയ്യുക",
+ "SUB_TEXT": "ഇൻബോക്സിനൊപ്പം സഹായ കേന്ദ്രം ചേർക്കുക"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "സ്വയം നിയോഗം പരിധി",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "ദയവായി 0-ൽ കൂടുതൽ മൂല്യം നൽകുക",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "ഈ ഇൻബോക്സിൽ നിന്നുള്ള conversations-ന്റെ പരമാവധി എണ്ണം ഒരു ഏജന്റിന് സ്വയം നിയോഗിക്കപ്പെടാൻ പരിധി നിശ്ചയിക്കുക"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "സംവാദ നിയോഗം",
+ "DESCRIPTION": "നിയോഗ നയങ്ങളുടെ അടിസ്ഥാനത്തിൽ ലഭ്യമായ ഏജന്റുകൾക്ക് സ്വയം വരവു വരുന്ന സംവാദങ്ങൾ നിയോഗിക്കുക",
+ "ENABLE_AUTO_ASSIGNMENT": "സ്വയംസംവാദ നിയോഗം സജീവമാക്കുക",
+ "DEFAULT_RULES_TITLE": "ഡിഫോൾട്ട് അസൈൻമെന്റ് നിയമങ്ങൾ",
+ "DEFAULT_RULES_DESCRIPTION": "എല്ലാ സംഭാഷണങ്ങൾക്കും ഡിഫോൾട്ട് അസൈൻമെന്റ് പെരുമാറ്റം ഉപയോഗിക്കുന്നു",
+ "DEFAULT_RULE_1": "ആദ്യമേ സൃഷ്ടിച്ച സംഭാഷണങ്ങൾ ആദ്യം",
+ "DEFAULT_RULE_2": "റൗണ്ട് റോബിൻ വിതരണം",
+ "CUSTOMIZE_WITH_POLICY": "അസൈൻമെന്റ് നയം ഉപയോഗിച്ച് ഇഷ്ടാനുസൃതമാക്കുക",
+ "USING_POLICY": "ഈ ഇൻബോക്സിനായി ഇഷ്ടാനുസൃത നിയോഗ നയം ഉപയോഗിക്കുന്നു",
+ "CUSTOMIZE_POLICY": "നിയോഗ നയത്തോടെ ഇഷ്ടാനുസൃതമാക്കുക",
+ "DELETE_POLICY": "നയം ഇല്ലാതാക്കുക",
+ "POLICY_LABEL": "നിയോഗ നയം",
+ "ASSIGNMENT_ORDER_LABEL": "നിയോഗ ക്രമം",
+ "ASSIGNMENT_METHOD_LABEL": "നിയുക്തി രീതി",
+ "POLICY_STATUS": {
+ "ACTIVE": "സജീവമാണ്",
+ "INACTIVE": "സജീവമല്ല"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "ഏറ്റവും പഴക്കം ചെന്നത്",
+ "LONGEST_WAITING": "ഏറ്റവും കൂടുതൽ കാത്തിരിപ്പ്"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "റൗണ്ട് റോബിൻ",
+ "BALANCED": "സമതുലിതമായ നിയോഗം"
+ },
+ "UPGRADE_PROMPT": "കസ്റ്റം നിയോഗ നയങ്ങൾ ബിസിനസ് പ്ലാനിൽ ലഭ്യമാണ്",
+ "UPGRADE_TO_BUSINESS": "ബിസിനസിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുക",
+ "DEFAULT_POLICY_LINKED": "ഡിഫോൾട്ട് നയം ബന്ധിപ്പിച്ചു",
+ "DEFAULT_POLICY_DESCRIPTION": "ഈ ഇൻബോക്സിലെ ഏജന്റുകൾക്ക് സംഭാഷണങ്ങൾ എങ്ങനെ നിയോഗിക്കപ്പെടുമെന്ന് ഇഷ്ടാനുസൃതമാക്കാൻ ഒരു കസ്റ്റം നിയോഗ നയം ബന്ധിപ്പിക്കുക.",
+ "LINK_EXISTING_POLICY": "ഇതുവരെ ഉള്ള നയം ബന്ധിപ്പിക്കുക",
+ "CREATE_NEW_POLICY": "പുതിയ നയം സൃഷ്ടിക്കുക",
+ "NO_POLICIES": "നിർദ്ദേശ നയങ്ങൾ കണ്ടെത്തിയില്ല",
+ "VIEW_ALL_POLICIES": "എല്ലാ നയങ്ങളും കാണുക",
+ "CURRENT_BEHAVIOR": "ഇപ്പോൾ ഡിഫോൾട്ട് നിർദ്ദേശ പെരുമാറ്റം ഉപയോഗിക്കുന്നു:",
+ "LINK_SUCCESS": "അസൈൻമെന്റ് നയം വിജയകരമായി ബന്ധിപ്പിച്ചു",
+ "LINK_ERROR": "അസൈൻമെന്റ് നയം ബന്ധിപ്പിക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "അസൈൻമെന്റ് നയം ഇല്ലാതാക്കണോ?",
+ "DELETE_CONFIRM_MESSAGE": "ഈ ഇൻബോക്സിൽ നിന്നുള്ള അസൈൻമെന്റ് നയം നീക്കംചെയ്യാൻ നിങ്ങൾക്ക് ഉറപ്പുണ്ടോ? ഇൻബോക്സ് ഡിഫോൾട്ട് അസൈൻമെന്റ് നിയമങ്ങളിലേക്ക് മടങ്ങും.",
+ "CANCEL": "റദ്ദാക്കുക",
+ "CONFIRM_DELETE": "ഇല്ലാതാക്കുക",
+ "DELETE_SUCCESS": "അസൈൻമെന്റ് നയം വിജയകരമായി നീക്കംചെയ്തു",
+ "DELETE_ERROR": "അസൈൻമെന്റ് നയം നീക്കം ചെയ്യാൻ പരാജയപ്പെട്ടു"
},
"FACEBOOK_REAUTHORIZE": {
"TITLE": "വീണ്ടും അംഗീകാരം നൽകുക",
- "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
+ "SUBTITLE": "നിങ്ങളുടെ Facebook കണക്ഷൻ കാലഹരണപ്പെട്ടു, സേവനങ്ങൾ തുടരാൻ ദയവായി നിങ്ങളുടെ Facebook പേജ് വീണ്ടും കണക്ട് ചെയ്യുക",
+ "MESSAGE_SUCCESS": "പുനർകണക്ഷൻ വിജയകരമായി പൂർത്തിയായി",
"MESSAGE_ERROR": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "ഉപയോക്തൃ വിവരങ്ങൾ സംഭരിക്കാൻ പ്രീ ചാറ്റ് ഫോമുകൾ സഹായിക്കുന്നു, അവർ നിങ്ങളുമായി സംഭാഷണം ആരംഭിക്കുന്നതിന് മുമ്പ്.",
+ "SET_FIELDS": "പ്രി ചാറ്റ് ഫോമിലെ ഫീൽഡുകൾ",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
+ "FIELDS": "ഫീൽഡുകൾ",
+ "LABEL": "ലേബൽ",
+ "PLACE_HOLDER": "പ്ലേസ്ഹോൾഡർ",
"KEY": "കീ",
"TYPE": "തരം",
- "REQUIRED": "Required"
+ "REQUIRED": "ആവശ്യമാണ്"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "പ്രീ ചാറ്റ് ഫോം സജീവമാക്കുക",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "അതെ",
+ "DISABLED": "ഇല്ല"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "ചാറ്റ് മുമ്പ് സന്ദേശം",
+ "PLACEHOLDER": "ഫോം കൂടെ ഉപയോക്താക്കൾക്ക് ഈ സന്ദേശം കാണാനാകും"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "ചാറ്റ് ആരംഭിക്കുന്നതിന് മുമ്പ് സന്ദർശകർ അവരുടെ പേര്, ഇമെയിൽ വിലാസം നൽകണം"
+ }
+ },
+ "CSAT": {
+ "TITLE": "CSAT സജീവമാക്കുക",
+ "SUBTITLE": "സംഭാഷണങ്ങളുടെ അവസാനം സ്വയം CSAT സർവേകൾ ആരംഭിച്ച് ഉപഭോക്താക്കൾ അവരുടെ പിന്തുണാനുഭവത്തെക്കുറിച്ച് എങ്ങനെ അനുഭവപ്പെടുന്നു എന്ന് മനസിലാക്കുക. സംതൃപ്തി പ്രവണതകൾ പിന്തുടരുകയും മെച്ചപ്പെടുത്തലിനുള്ള മേഖലകൾ തിരിച്ചറിയുകയും ചെയ്യുക.",
+ "DISPLAY_TYPE": {
+ "LABEL": "പ്രദർശന തരം"
+ },
+ "MESSAGE": {
+ "LABEL": "സന്ദേശം",
+ "PLACEHOLDER": "ഫോം ഉപയോഗിച്ച് ഉപയോക്താക്കളെ കാണിക്കാൻ ഒരു സന്ദേശം നൽകുക"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "ബട്ടൺ ടെക്സ്റ്റ്",
+ "PLACEHOLDER": "ദയവായി ഞങ്ങളെ റേറ്റ് ചെയ്യുക"
+ },
+ "LANGUAGE": {
+ "LABEL": "ഭാഷ",
+ "PLACEHOLDER": "ടെംപ്ലേറ്റ് ഭാഷ തിരഞ്ഞെടുക്കുക"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "സന്ദേശം മുൻകാഴ്ച",
+ "TOOLTIP": "WhatsApp പ്ലാറ്റ്ഫോമിൽ പ്രദർശിപ്പിക്കുമ്പോൾ ഇത് ചെറിയ വ്യത്യാസം ഉണ്ടാകാം."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "WhatsApp അംഗീകൃതം",
+ "PENDING": "WhatsApp അംഗീകാരം കാത്തിരിക്കുന്നു",
+ "REJECTED": "ടെംപ്ലേറ്റ് Meta നിരസിച്ചു",
+ "DEFAULT": "WhatsApp അംഗീകാരം ആവശ്യമാണ്",
+ "NOT_FOUND": "ടെംപ്ലേറ്റ് മെറ്റാ പ്ലാറ്റ്ഫോമിൽ നിലവിലില്ല."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp ടെംപ്ലേറ്റ് വിജയകരമായി സൃഷ്ടിക്കുകയും അംഗീകാരത്തിനായി അയയ്ക്കുകയും ചെയ്തു",
+ "ERROR_MESSAGE": "WhatsApp ടെംപ്ലേറ്റ് സൃഷ്ടിക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "സർവേ വിശദാംശങ്ങൾ തിരുത്തുക",
+ "DESCRIPTION": "മുൻ ടെംപ്ലേറ്റ് നീക്കം ചെയ്ത് പുതിയത് സൃഷ്ടിക്കും, അത് വീണ്ടും WhatsApp അംഗീകാരത്തിനായി അയയ്ക്കും",
+ "CONFIRM": "പുതിയ ടെംപ്ലേറ്റ് സൃഷ്ടിക്കുക",
+ "CANCEL": "വീണ്ടും മടങ്ങുക"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "ഉപയോഗയോഗ്യത പരിശോധിക്കുക",
+ "HELPER_NOTE": "സബ്മിഷൻ ചെയ്യുന്നതിന് മുമ്പ് ഈ സന്ദേശം പരിശോധിച്ച് Utility യുടെ അനുയോജ്യത മെച്ചപ്പെടുത്തുക. സിസ്റ്റം റിപ്പോർട്ടിംഗിനുള്ള ബട്ടണുകളോടുകൂടിയ ഒരു പ്രത്യേക CSAT ടെംപ്ലേറ്റ് സൃഷ്ടിച്ച് അത് Utility ആയി സമർപ്പിക്കും; ഉള്ളടക്കത്തിന്റെ അടിസ്ഥാനത്തിൽ Meta അത് Marketing ആയി പുന: വർഗ്ഗീകരിക്കാം.",
+ "RESULT_LABEL": "മെറ്റാ വിഭാഗ പ്രവചനം",
+ "GUIDANCE_NOTE": "ഇത് ഒരു മാർഗ്ഗനിർദ്ദേശ പരിശോധനയാണ്, മെറ്റാ അംഗീകാരം ഉറപ്പാക്കുന്നില്ല.",
+ "SUGGESTION_LABEL": "സൂചിപ്പിച്ച ഉപയോഗയോഗ്യ സുരക്ഷിത പുനഃരചനം",
+ "APPLY": "ഈ പുനഃരചനം ഉപയോഗിക്കുക",
+ "ERROR_MESSAGE": "സന്ദേശം വിശകലനം ചെയ്യാൻ കഴിഞ്ഞില്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "സാധ്യതയുള്ള ഉപകാരപ്രദം",
+ "LIKELY_MARKETING": "സാധ്യതയുള്ള മാർക്കറ്റിംഗ്",
+ "UNCLEAR": "വിവരണം ആവശ്യമാണ്"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "സർവേ നിയമം",
+ "DESCRIPTION_PREFIX": "സംഭാഷണം ഉണ്ടെങ്കിൽ സർവേ അയയ്ക്കുക",
+ "DESCRIPTION_SUFFIX": "ലേബലുകളിൽ ഏതെങ്കിലും",
+ "OPERATOR": {
+ "CONTAINS": "അടങ്ങിയിരിക്കുന്നു",
+ "DOES_NOT_CONTAINS": "ഉൾപ്പെട്ടിട്ടില്ല"
+ },
+ "SELECT_PLACEHOLDER": "ലേബലുകൾ തിരഞ്ഞെടുക്കുക"
+ },
+ "NOTE": "കുറിപ്പ്: CSAT സർവേകൾ ഓരോ സംഭാഷണത്തിനും ഒരിക്കൽ മാത്രമേ അയയ്ക്കൂ",
+ "WHATSAPP_NOTE": "കുറിപ്പ്: നിങ്ങൾ സംരക്ഷിക്കുമ്പോൾ, സിസ്റ്റം WhatsApp-ൽ ഒരു സമർപ്പിത CSAT ടെംപ്ലേറ്റ് സൃഷ്ടിക്കുന്നു (റിപ്പോർട്ടുകളിൽ റേറ്റിംഗ്, ഫീഡ്ബാക്ക് പിടിക്കാൻ ഉപയോഗിക്കുന്നു) Utility ആയി അംഗീകാരത്തിന് സമർപ്പിക്കുന്നു. ഉള്ളടക്കത്തിന്റെ അടിസ്ഥാനത്തിൽ Meta ഇതിനെ Marketing ആയി വർഗ്ഗീകരിക്കാം. അംഗീകാരം കഴിഞ്ഞാൽ, സർവേ നിയമപ്രകാരം ഓരോ സംഭാഷണത്തിനും ഒരിക്കൽ മാത്രം സർവേകൾ അയയ്ക്കപ്പെടും.",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "CSAT ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക."
}
},
"BUSINESS_HOURS": {
- "TITLE": "Set your availability",
- "SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "നിങ്ങളുടെ ലഭ്യത സജ്ജമാക്കുക",
+ "SUBTITLE": "നിങ്ങളുടെ ലൈവ്ചാറ്റ് വിഡ്ജറ്റിൽ നിങ്ങളുടെ ലഭ്യത സജ്ജമാക്കുക",
+ "WEEKLY_TITLE": "നിങ്ങളുടെ ആഴ്ചവാര സമയങ്ങൾ സജ്ജമാക്കുക",
+ "TIMEZONE_LABEL": "സമയമേഖല തിരഞ്ഞെടുക്കുക",
+ "UPDATE": "ബിസിനസ് മണിക്കൂറുകളുടെ ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
+ "TOGGLE_AVAILABILITY": "ഈ ഇൻബോക്സിന് ബിസിനസ് ലഭ്യത സജീവമാക്കുക",
+ "UNAVAILABLE_MESSAGE_LABEL": "സന്ദർശകർക്കുള്ള ലഭ്യമല്ലാത്ത സന്ദേശം",
+ "TOGGLE_HELP": "ബിസിനസ് ലഭ്യത സജ്ജമാക്കുന്നത് എല്ലാ ഏജന്റുകളും ഓഫ്ലൈൻ ആയാലും ലൈവ് ചാറ്റ് വിഡ്ജറ്റിൽ ലഭ്യമായ മണിക്കൂറുകൾ കാണിക്കും. ലഭ്യമായ സമയത്തിന് പുറത്തുള്ള സന്ദർശകർക്ക് സന്ദേശവും പ്രീ-ചാറ്റ് ഫോമും ഉപയോഗിച്ച് മുന്നറിയിപ്പ് നൽകാം.",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "ദിവസം",
+ "AVAILABILITY": "ലഭ്യത",
+ "HOURS": "മണിക്കൂറുകൾ",
+ "ENABLE": "ഈ ദിവസത്തിന് ലഭ്യത സജ്ജമാക്കുക",
+ "UNAVAILABLE": "ലഭ്യമല്ല",
+ "VALIDATION_ERROR": "ആരംഭ സമയമത് അവസാന സമയത്തിന് മുമ്പായിരിക്കണം.",
+ "CHOOSE": "തിരഞ്ഞെടുക്കുക"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "മുഴുവൻ ദിവസം"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "നിങ്ങളുടെ IMAP വിശദാംശങ്ങൾ സജ്ജമാക്കുക",
+ "NOTE_TEXT": "SMTP സജ്ജമാക്കാൻ, ദയവായി IMAP ക്രമീകരിക്കുക.",
+ "UPDATE": "IMAP ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
+ "TOGGLE_AVAILABILITY": "ഈ ഇൻബോക്സിനായി IMAP കോൺഫിഗറേഷൻ സജീവമാക്കുക",
+ "TOGGLE_HELP": "IMAP സജ്ജമാക്കുന്നത് ഉപയോക്താവിന് ഇമെയിൽ സ്വീകരിക്കാൻ സഹായിക്കും",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "IMAP ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ സാധിച്ചില്ല"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "വിലാസം",
+ "PLACE_HOLDER": "വിലാസം (ഉദാ: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "പോർട്ട്",
+ "PLACE_HOLDER": "പോർട്ട്"
},
"LOGIN": {
"LABEL": "സൈൻ ഇൻ",
@@ -606,29 +1042,30 @@
"LABEL": "പാസ്വേഡ്",
"PLACE_HOLDER": "പാസ്വേഡ്"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL സജീവമാക്കുക",
+ "AUTH_MECHANISM": "പ്രാമാണീകരണം"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "നിങ്ങളുടെ MICROSOFT അക്കൗണ്ട് വീണ്ടും അനുമതി നൽകുക"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "നിങ്ങളുടെ SMTP വിശദാംശങ്ങൾ സജ്ജമാക്കുക",
+ "UPDATE": "SMTP ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
+ "TOGGLE_AVAILABILITY": "ഈ ഇൻബോക്സിനായി SMTP കോൺഫിഗറേഷൻ സജീവമാക്കുക",
+ "TOGGLE_HELP": "SMTP സജീവമാക്കുന്നത് ഉപയോക്താവിന് ഇമെയിൽ അയയ്ക്കാൻ സഹായിക്കും",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "SMTP ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയുന്നില്ല"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "വിലാസം",
+ "PLACE_HOLDER": "വിലാസം (ഉദാ: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "പോർട്ട്",
+ "PLACE_HOLDER": "പോർട്ട്"
},
"LOGIN": {
"LABEL": "സൈൻ ഇൻ",
@@ -639,23 +1076,23 @@
"PLACE_HOLDER": "പാസ്വേഡ്"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "ഡൊമെയ്ൻ",
+ "PLACE_HOLDER": "ഡൊമെയ്ൻ"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "എൻക്രിപ്ഷൻ",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "ഓപ്പൺ SSL പരിശോധന മോഡ്",
+ "AUTH_MECHANISM": "പ്രാമാണീകരണം"
},
- "NOTE": "Note: ",
+ "NOTE": "കുറിപ്പ്: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "വെബ്സൈറ്റ് അവതാർ",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "SUCCESS_MESSAGE": "അവതാർ വിജയകരമായി നീക്കം ചെയ്തു",
"ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
}
}
@@ -663,53 +1100,54 @@
"WEBSITE_NAME": {
"LABEL": "വെബ്സൈറ്റിന്റെ പേര്",
"PLACE_HOLDER": "നിങ്ങളുടെ വെബ്സൈറ്റിന്റെ പേര് നൽകുക (ഉദാ: പുണ്ണ്യാളൻ അഗർബത്തീസ്)",
- "ERROR": "Please enter a valid website name"
+ "ERROR": "ദയവായി സാധുവായ വെബ്സൈറ്റ് പേര് നൽകുക"
},
"WELCOME_HEADING": {
"LABEL": "സ്വാഗത തലക്കെട്ട്",
- "PLACE_HOLDER": "Hi there!"
+ "PLACE_HOLDER": "ഹായ്!"
},
"WELCOME_TAGLINE": {
"LABEL": "ടാഗ്ലൈൻ സ്വാഗതം",
"PLACE_HOLDER": "ഞങ്ങളുമായി കണക്റ്റുചെയ്യുന്നത് ഞങ്ങൾ ലളിതമാക്കുന്നു. ഞങ്ങളോട് എന്തും ചോദിക്കുക, അല്ലെങ്കിൽ നിങ്ങളുടെ ഫീഡ്ബാക്ക് പങ്കിടുക."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "പ്രതികരണ സമയം",
+ "IN_A_FEW_MINUTES": "ചില മിനിറ്റുകളിൽ",
+ "IN_A_FEW_HOURS": "ചില മണിക്കൂറുകളിൽ",
+ "IN_A_DAY": "ഒരു ദിവസത്തിനുള്ളിൽ"
},
"WIDGET_COLOR_LABEL": "വിജറ്റ് നിറം",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "ബബിൾ",
+ "WIDGET_BUBBLE_POSITION_LABEL": "സ്ഥാനം:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "തരം:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "ഞങ്ങളുമായി ചാറ്റുചെയ്യുക",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "ലോഞ്ചർ ശീർഷകം",
"PLACE_HOLDER": "ഞങ്ങളുമായി ചാറ്റുചെയ്യുക"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "വിഡ്ജറ്റ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "വിഡ്ജറ്റ് ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "വിഡ്ജറ്റ് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിയുന്നില്ല"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "മുൻകാഴ്ച",
+ "SCRIPT": "സ്ക്രിപ്റ്റ്"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "ഇടത്",
+ "RIGHT": "വലത്"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "സ്റ്റാൻഡേർഡ്",
+ "EXPANDED_BUBBLE": "വിസ്തൃത ബബിൾ"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "ഡീഫോൾട്ട്",
+ "CHAT": "ചാറ്റ് മോഡ്"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "സാധാരണയായി കുറച്ച് മിനിറ്റിനുള്ളിൽ മറുപടി നൽകുന്നു",
@@ -722,18 +1160,43 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
+ "ONLINE": "ഞങ്ങൾ ഓൺലൈനിലാണ്",
"OFFLINE": "ഞങ്ങൾ ഇപ്പോൾ അകലെയാണ്"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "ഹായ്",
+ "AGENT_MESSAGE": "ഹലോ"
},
"BRANDING_TEXT": "പ്രായോജകർ Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Microsoft-നൊപ്പം കണക്ട് ചെയ്യുക"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Google-നൊപ്പം കണക്ട് ചെയ്യുക"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "മറ്റു പ്രൊവൈഡറുകൾ",
+ "DESCRIPTION": "മറ്റു പ്രൊവൈഡറുകളുമായി ബന്ധിപ്പിക്കുക"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "മെസഞ്ചർ",
+ "WEB_WIDGET": "വെബ്സൈറ്റ്",
+ "TWITTER_PROFILE": "ട്വിറ്റർ",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "എസ്എംഎസ്",
+ "EMAIL": "ഇമെയിൽ",
+ "TELEGRAM": "ടെലഗ്രാം",
+ "LINE": "ലൈൻ",
+ "API": "API ചാനൽ",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "വോയ്സ്"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/index.js b/app/javascript/dashboard/i18n/locale/ml/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ml/index.js
+++ b/app/javascript/dashboard/i18n/locale/ml/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
index 694b691cc..2c3fae56b 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
"DISABLED": "പ്രവർത്തനരഹിതമാക്കി"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "ഇൻബോക്സ്",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ",
"DELETE": {
"BUTTON_TEXT": "ഇല്ലാതാക്കുക"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "സൃഷ്ടിക്കുക",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "റദ്ദാക്കുക"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/integrations.json b/app/javascript/dashboard/i18n/locale/ml/integrations.json
index 3c2bd3b27..f862e89ab 100644
--- a/app/javascript/dashboard/i18n/locale/ml/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ml/integrations.json
@@ -1,30 +1,76 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "ഷോപ്പിഫൈ",
+ "DELETE": {
+ "TITLE": "Shopify ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കുക",
+ "MESSAGE": "Shopify ഇന്റഗ്രേഷൻ നീക്കം ചെയ്യാൻ നിങ്ങൾക്ക് ഉറപ്പുണ്ടോ?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify സ്റ്റോർ കണക്ട് ചെയ്യുക",
+ "LABEL": "സ്റ്റോർ URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "നിങ്ങളുടെ Shopify സ്റ്റോറിന്റെ myshopify.com URL നൽകുക",
+ "CANCEL": "റദ്ദാക്കുക",
+ "SUBMIT": "സ്റ്റോർ കണക്റ്റ് ചെയ്യുക"
+ },
+ "ERROR": "Shopify-യുമായി ബന്ധപ്പെടുന്നതിൽ പിശക് സംഭവിച്ചു. ദയവായി വീണ്ടും ശ്രമിക്കുക അല്ലെങ്കിൽ പ്രശ്നം തുടരുകയാണെങ്കിൽ പിന്തുണയെ ബന്ധപ്പെടുക."
+ },
"HEADER": "സംയോജനങ്ങൾ",
+ "DESCRIPTION": "Chatwoot നിങ്ങളുടെ ടീമിന്റെ കാര്യക്ഷമത മെച്ചപ്പെടുത്താൻ നിരവധി ടൂളുകളും സേവനങ്ങളും സംയോജിപ്പിക്കുന്നു. നിങ്ങളുടെ പ്രിയപ്പെട്ട ആപ്പുകൾ ക്രമീകരിക്കാൻ താഴെ നൽകിയ പട്ടിക പരിശോധിക്കുക.",
+ "LEARN_MORE": "ഇന്റഗ്രേഷനുകൾക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "LOADING": "ഇന്റഗ്രേഷനുകൾ നേടുന്നു",
+ "SEARCH_PLACEHOLDER": "ഇന്റഗ്രേഷനുകൾ തിരയുക...",
+ "NO_RESULTS": "നിങ്ങളുടെ തിരച്ചിലുമായി പൊരുത്തപ്പെടുന്ന ഇന്റഗ്രേഷനുകൾ ഒന്നും കണ്ടെത്തിയില്ല",
+ "CAPTAIN": {
+ "DISABLED": "നിങ്ങളുടെ അക്കൗണ്ടിൽ Captain സജീവമല്ല.",
+ "CLICK_HERE_TO_CONFIGURE": "ക്രമീകരിക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക",
+ "LOADING_CONSOLE": "Captain കൺസോൾ ലോഡുചെയ്യുന്നു...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain Console ലോഡ് ചെയ്യാൻ പരാജയപ്പെട്ടു. ദയവായി പുനഃപ്രവർത്തിപ്പിച്ച് വീണ്ടും ശ്രമിക്കുക."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "സബ്സ്ക്രൈബ് ചെയ്ത ഇവന്റുകൾ",
+ "LEARN_MORE": "വെബ്ഹുക്കുകൾക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "SECRET": {
+ "LABEL": "രഹസ്യം",
+ "COPY": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുക",
+ "COPY_SUCCESS": "രഹസ്യം ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തി",
+ "TOGGLE": "രഹസ്യ ദൃശ്യത ടോഗിൾ ചെയ്യുക",
+ "CREATED_DESC": "നിങ്ങളുടെ webhook സൃഷ്ടിക്കപ്പെട്ടിരിക്കുന്നു. webhook ഒപ്പുകൾ സ്ഥിരീകരിക്കാൻ താഴെ കാണുന്ന രഹസ്യം ഉപയോഗിക്കുക. ദയവായി ഇപ്പോൾ ഇത് പകർത്തുക — പിന്നീട് webhook എഡിറ്റ് ഫോമിൽ ഇത് കണ്ടെത്താനും കഴിയും.",
+ "DONE": "സമാപ്തം"
+ },
+ "COUNT": "{n} വെബ്ഹുക്ക് | {n} വെബ്ഹുക്കുകൾ",
+ "SEARCH_PLACEHOLDER": "വെബ്ഹുക്കുകൾ തിരയുക...",
+ "NO_RESULTS": "നിങ്ങളുടെ തിരച്ചിലുമായി പൊരുത്തപ്പെടുന്ന വെബ്ഹുക്കുകൾ ഒന്നും കണ്ടെത്തിയില്ല",
"FORM": {
"CANCEL": "റദ്ദാക്കുക",
"DESC": "നിങ്ങളുടെ ചാറ്റ് വൂട്ട് അക്കൗണ്ടിൽ എന്താണ് സംഭവിക്കുന്നതെന്നതിനെക്കുറിച്ചുള്ള തത്സമയ വിവരങ്ങൾ വെബ്ഹൂക്ക് ഇവന്റുകൾ നൽകുന്നു. ഒരു കോൾബാക്ക് കോൺഫിഗർ ചെയ്യുന്നതിന് സാധുവായ ഒരു യുആർഎൽ നൽകുക.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "ഇവന്റുകൾ",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "സംവാദം സൃഷ്ടിച്ചു",
+ "CONVERSATION_STATUS_CHANGED": "സംവാദത്തിന്റെ നില മാറ്റപ്പെട്ടു",
+ "CONVERSATION_UPDATED": "സംവാദം അപ്ഡേറ്റ് ചെയ്തു",
+ "MESSAGE_CREATED": "സന്ദേശം സൃഷ്ടിച്ചു",
+ "MESSAGE_UPDATED": "സന്ദേശം അപ്ഡേറ്റ് ചെയ്തു",
+ "WEBWIDGET_TRIGGERED": "ഉപയോക്താവ് ലൈവ് ചാറ്റ് വിഡ്ജറ്റ് തുറന്നു",
+ "CONTACT_CREATED": "ബന്ധപ്പെടൽ സൃഷ്ടിച്ചു",
+ "CONTACT_UPDATED": "ബന്ധപ്പെടൽ അപ്ഡേറ്റ് ചെയ്തു",
+ "CONVERSATION_TYPING_ON": "സംഭാഷണം ടൈപ്പിംഗ് ഓൺ",
+ "CONVERSATION_TYPING_OFF": "സംവാദം ടൈപ്പിംഗ് ഓഫ്",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook നാമം",
+ "PLACEHOLDER": "വെബ്ഹുക്ക് നാമം നൽകുക"
+ },
"END_POINT": {
"LABEL": "വെബ്ഹുക്ക് യുആർഎൽ",
- "PLACEHOLDER": "ഉദാഹരണം: https://example/api/webhook",
+ "PLACEHOLDER": "ഉദാഹരണം: {webhookExampleURL}",
"ERROR": "ദയവായി സാധുവായ ഒരു യുആർഎൽ നൽകുക"
},
- "EDIT_SUBMIT": "Update webhook",
+ "EDIT_SUBMIT": "വെബ്ഹുക്ക് അപ്ഡേറ്റ് ചെയ്യുക",
"ADD_SUBMIT": "വെബ്ഹുക്ക് സൃഷ്ടിക്കുക"
},
"TITLE": "വെബ്ഹൂക്ക്",
@@ -37,16 +83,16 @@
"LIST": {
"404": "ഈ അക്കൗണ്ടിനായി വെബ്ഹൂക്കുകളൊന്നും ക്രമീകരിച്ചിട്ടില്ല.",
"TITLE": "വെബ്ഹൂക്കുകൾ നിയന്ത്രിക്കുക",
- "TABLE_HEADER": [
- "വെബ്ഹൂക്ക് എൻഡ്പോയിന്റ്",
- "പ്രവർത്തനങ്ങൾ"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "വെബ്ഹൂക്ക് എൻഡ്പോയിന്റ്",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ }
},
"EDIT": {
"BUTTON_TEXT": "എഡിറ്റുചെയ്യുക",
"TITLE": "വെബ്ഹുക്ക് എഡിറ്റ് ചെയ്യുക",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
+ "SUCCESS_MESSAGE": "വെബ്ഹുക്ക് ക്രമീകരണം വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
"ERROR_MESSAGE": "വൂട്ട് സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
}
},
@@ -54,7 +100,7 @@
"CANCEL": "റദ്ദാക്കുക",
"TITLE": "പുതിയ വെബ്ഹൂക്ക് ഉണ്ടാക്കുക",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
+ "SUCCESS_MESSAGE": "Webhook ക്രമീകരണം വിജയകരമായി ചേർത്തു",
"ERROR_MESSAGE": "വൂട്ട് സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
}
},
@@ -66,91 +112,114 @@
},
"CONFIRM": {
"TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "നിങ്ങൾക്ക് വെബ്ഹുക്ക് ({webhookURL}) ഇല്ലാതാക്കണമെന്ന് ഉറപ്പാണോ",
"YES": "അതെ, ഇല്ലാതാക്കുക ",
"NO": "ഇല്ല, സൂക്ഷിക്കുക"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "ഇല്ലാതാക്കുക",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കുക",
+ "MESSAGE": "നിങ്ങൾ ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കാൻ ഉറപ്പാണോ? ഇത് ചെയ്യുന്നതിലൂടെ നിങ്ങളുടെ Slack വർക്ക്സ്പേസിലെ സംഭാഷണങ്ങളിലേക്ക് പ്രവേശനം നഷ്ടപ്പെടും."
},
"HELP_TEXT": {
"TITLE": "സ്ലാക്ക് ഇന്റഗ്രേഷൻ ഉപയോഗിക്കുന്നു",
- "BODY": "
ചാറ്റ്വൂട്ട് ഇപ്പോൾ വരുന്ന എല്ലാ സംഭാഷണങ്ങളും ഉപഭോക്തൃ-സംഭാഷണങ്ങൾ നിങ്ങളുടെ മന്ദഗതിയിലുള്ള ജോലിസ്ഥലത്തെ ചാനലിലേക്ക് സമന്വയിപ്പിക്കും.
ഒരു മറുപടി നൽകുന്നു. ഉപഭോക്തൃ-സംഭാഷണങ്ങൾ സ്ലാക്ക് ചാനലിലെ സംഭാഷണ ത്രെഡ്, ചാറ്റ്വൂട്ടിലൂടെ ഉപഭോക്താവിന് ഒരു പ്രതികരണം സൃഷ്ടിക്കും.
എന്നതിൽ മറുപടികൾ ആരംഭിക്കുക കുറിപ്പ്: മറുപടികൾക്ക് പകരം സ്വകാര്യ കുറിപ്പുകൾ സൃഷ്ടിക്കുക.
സ്ലാക്കിലുള്ള റിപ്ലയർക്ക് ചാറ്റ്വൂട്ടിൽ ഒരു ഏജന്റ് പ്രൊഫൈൽ ഉണ്ടെങ്കിൽ അതേ ഇമെയിലിന് കീഴിൽ, മറുപടികൾ അതിനനുസരിച്ച് ബന്ധപ്പെടുത്തും.
p>
റിപ്ലെയർക്ക് അനുബന്ധ ഏജന്റ് പ്രൊഫൈൽ ഇല്ലെങ്കിൽ, മറുപടികൾ ബോട്ട് പ്രൊഫൈലിൽ നിന്നായിരിക്കും.
",
- "SELECTED": "selected"
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
+ "SELECTED": "തിരഞ്ഞെടുത്തത്"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
+ "OPTION_LABEL": "ഒരു ചാനൽ തിരഞ്ഞെടുക്കുക",
"UPDATE": "അപ്ഡേറ്റ്",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "BUTTON_TEXT": "ചാനൽ ബന്ധിപ്പിക്കുക",
+ "DESCRIPTION": "നിങ്ങളുടെ Slack വർക്ക്സ്പേസ് ഇപ്പോൾ Chatwoot-നൊപ്പം ബന്ധിപ്പിച്ചിരിക്കുന്നു. എങ്കിലും, ഇന്റഗ്രേഷൻ നിലവിൽ പ്രവർത്തനരഹിതമാണ്. ഇന്റഗ്രേഷൻ സജീവമാക്കി ഒരു ചാനൽ Chatwoot-നോട് ബന്ധിപ്പിക്കാൻ, ദയവായി താഴെയുള്ള ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.\n\n**കുറിപ്പ്:** നിങ്ങൾ ഒരു സ്വകാര്യ ചാനൽ ബന്ധിപ്പിക്കാൻ ശ്രമിക്കുന്നുവെങ്കിൽ, ഈ ഘട്ടം തുടരുന്നതിന് മുമ്പ് Slack ചാനലിൽ Chatwoot ആപ്പ് ചേർക്കുക.",
+ "ATTENTION_REQUIRED": "ശ്രദ്ധ ആവശ്യമാണ്",
+ "EXPIRED": "നിങ്ങളുടെ Slack ഇന്റഗ്രേഷൻ കാലഹരണപ്പെട്ടു. Slack-ൽ സന്ദേശങ്ങൾ സ്വീകരിക്കാൻ തുടരുമെങ്കിൽ, ദയവായി ഇന്റഗ്രേഷൻ നീക്കം ചെയ്ത് നിങ്ങളുടെ വർക്ക്സ്പേസ് വീണ്ടും കണക്ട് ചെയ്യുക."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "ഇന്റഗ്രേഷൻ അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പിഴവ് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "UPDATE_SUCCESS": "ചാനൽ വിജയകരമായി ബന്ധിപ്പിച്ചു",
+ "FAILED_TO_FETCH_CHANNELS": "Slack-ൽ നിന്നുള്ള ചാനലുകൾ ലഭിക്കുന്നതിൽ പിഴവ് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "ചേരാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക",
+ "LEAVE_THE_ROOM": "റൂം വിട്ടു പോകുക",
+ "START_VIDEO_CALL_HELP_TEXT": "ഉപഭോക്താവുമായി പുതിയ വീഡിയോ കോൾ ആരംഭിക്കുക",
+ "JOIN_ERROR": "കോളിൽ ചേരുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "CREATE_ERROR": "യോഗം ലിങ്ക് സൃഷ്ടിക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "എഐ സഹായം",
+ "WITH_AI": " AI ഉപയോഗിച്ച് {option} ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "പ്രതികരണ നിർദ്ദേശം",
+ "SUMMARIZE": "സംക്ഷേപിക്കുക",
+ "REPHRASE": "എഴുത്ത് മെച്ചപ്പെടുത്തുക",
+ "FIX_SPELLING_GRAMMAR": "വ്യാകരണം, വാക്ക് തെറ്റുകൾ ശരിയാക്കുക",
+ "SHORTEN": "ചുരുക്കുക",
+ "EXPAND": "വിസ്തീർണ്ണമാക്കുക",
+ "MAKE_FRIENDLY": "സന്ദേശത്തിന്റെ ശൈലി സൗഹൃദപരമായി മാറ്റുക",
+ "MAKE_FORMAL": "ആധുനിക ശൈലി ഉപയോഗിക്കുക",
+ "SIMPLIFY": "സരളമാക്കുക",
+ "CONFIDENT": "വിശ്വാസമുള്ള ശൈലി ഉപയോഗിക്കുക",
+ "PROFESSIONAL": "പ്രൊഫഷണൽ ശൈലി ഉപയോഗിക്കുക",
+ "CASUAL": "സൗഹൃദപരമായ ശൈലി ഉപയോഗിക്കുക",
+ "STRAIGHTFORWARD": "സരളമായ ശൈലി ഉപയോഗിക്കുക"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "പ്രതികരണം മെച്ചപ്പെടുത്തുക",
+ "IMPROVE_REPLY_SELECTION": "തിരഞ്ഞെടുപ്പ് മെച്ചപ്പെടുത്തുക",
+ "CHANGE_TONE": {
+ "TITLE": "ശൈലി മാറ്റുക",
+ "OPTIONS": {
+ "PROFESSIONAL": "പ്രൊഫഷണൽ",
+ "CASUAL": "സൗഹൃദപരമായ",
+ "STRAIGHTFORWARD": "സരളമായ",
+ "CONFIDENT": "ആത്മവിശ്വാസമുള്ള",
+ "FRIENDLY": "സ്നേഹപൂർവ്വം"
+ }
+ },
+ "GRAMMAR": "വ്യാകരണം & വാക്ക് തെറ്റുകൾ ശരിയാക്കുക",
+ "SUGGESTION": "ഒരു മറുപടി നിർദ്ദേശിക്കുക",
+ "SUMMARIZE": "സംഭാഷണം സംക്ഷേപിക്കുക",
+ "ASK_COPILOT": "കോപ്പൈലോട്ടിനോട് ചോദിക്കുക"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "ഡ്രാഫ്റ്റ് ഉള്ളടക്കം",
+ "GENERATED_TITLE": "സൃഷ്ടിച്ച ഉള്ളടക്കം",
+ "AI_WRITING": "AI എഴുതുന്നു",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "ഈ നിർദ്ദേശം ഉപയോഗിക്കുക",
"CANCEL": "റദ്ദാക്കുക"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "OpenAI-യുമായി സംയോജിപ്പിക്കുക",
+ "DESC": "OpenAI-യുടെ GPT മോഡലുകളുമായി നിങ്ങളുടെ ഡാഷ്ബോർഡിലേക്ക് ആധുനിക AI സവിശേഷതകൾ കൊണ്ടുവരൂ. ആരംഭിക്കാൻ, നിങ്ങളുടെ OpenAI അക്കൗണ്ടിൽ നിന്നുള്ള API കീ നൽകുക.",
+ "KEY_PLACEHOLDER": "നിങ്ങളുടെ OpenAI API കീ നൽകുക",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "സഹായം വേണോ?",
+ "DISMISS": "നിരസിക്കുക",
+ "FINISH": "സജ്ജീകരണം പൂർത്തിയാക്കുക"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "നിങ്ങൾക്ക് OpenAI ഇന്റഗ്രേഷൻ പിന്നീട് എപ്പോൾ വേണമെങ്കിലും സജ്ജീകരിക്കാം.",
+ "SUCCESS_MESSAGE": "OpenAI ഇന്റഗ്രേഷൻ വിജയകരമായി സജ്ജമാക്കി"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "AI ഉപയോഗിച്ച് മെച്ചപ്പെടുത്തുക",
+ "SUMMARY_TITLE": "AI ഉപയോഗിച്ചുള്ള സംക്ഷേപം",
+ "REPLY_TITLE": "AI ഉപയോഗിച്ച് മറുപടി നിർദ്ദേശം",
+ "SUBTITLE": "നിങ്ങളുടെ നിലവിലെ ഡ്രാഫ്റ്റ് അടിസ്ഥാനമാക്കി AI ഉപയോഗിച്ച് മെച്ചപ്പെട്ട മറുപടി സൃഷ്ടിക്കും.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "ശൈലി",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "പ്രൊഫഷണൽ",
+ "FRIENDLY": "സ്നേഹപൂർവ്വം"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "സൃഷ്ടിക്കുക",
+ "GENERATING": "സൃഷ്ടിക്കുന്നു...",
"CANCEL": "റദ്ദാക്കുക"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
@@ -165,49 +234,870 @@
"BUTTON_TEXT": "ബന്ധിപ്പിക്കുക"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "ഡാഷ്ബോർഡ് ആപ്പുകൾ",
+ "HEADER_BTN_TXT": "പുതിയ ഡാഷ്ബോർഡ് ആപ്പ് ചേർക്കുക",
+ "SIDEBAR_TXT": "ഡാഷ്ബോർഡ് ആപ്പുകൾ
ഡാഷ്ബോർഡ് ആപ്പുകൾ സംഘടനകൾക്ക് Chatwoot ഡാഷ്ബോർഡിനുള്ളിൽ ഒരു ആപ്പ് ഉൾപ്പെടുത്താൻ അനുവദിക്കുന്നു, ഇത് കസ്റ്റമർ സപ്പോർട്ട് ഏജന്റുകൾക്ക് പ്രാസംഗികമായ വിവരങ്ങൾ നൽകുന്നു. ഈ സവിശേഷത നിങ്ങൾക്ക് സ്വതന്ത്രമായി ഒരു ആപ്പ് സൃഷ്ടിച്ച് അത് ഡാഷ്ബോർഡിൽ ഉൾപ്പെടുത്താൻ സഹായിക്കുന്നു, ഉപയോക്തൃ വിവരങ്ങൾ, അവരുടെ ഓർഡറുകൾ, അല്ലെങ്കിൽ മുൻപുള്ള പേയ്മെന്റ് ചരിത്രം നൽകാൻ.
Chatwoot ഡാഷ്ബോർഡിൽ നിങ്ങളുടെ ആപ്പ് ഉൾപ്പെടുത്തുമ്പോൾ, സംഭാഷണവും കോൺടാക്റ്റും സംബന്ധിച്ച പ്രാസംഗിക വിവരങ്ങൾ വിൻഡോ ഇവന്റ് ആയി ലഭിക്കും. നിങ്ങളുടെ പേജിൽ മെസേജ് ഇവന്റ് ലിസണർ നടപ്പിലാക്കി ഈ പ്രാസംഗിക വിവരങ്ങൾ സ്വീകരിക്കാം.
പുതിയ ഡാഷ്ബോർഡ് ആപ്പ് ചേർക്കാൻ, 'പുതിയ ഡാഷ്ബോർഡ് ആപ്പ് ചേർക്കുക' ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.
",
+ "DESCRIPTION": "ഡാഷ്ബോർഡ് ആപ്പുകൾ സംഘടനകൾക്ക് ഡാഷ്ബോർഡിനുള്ളിൽ ഒരു ആപ്ലിക്കേഷൻ ഉൾപ്പെടുത്താൻ അനുവദിക്കുന്നു, ഇത് കസ്റ്റമർ സപ്പോർട്ട് ഏജന്റുകൾക്ക് സാന്ദർഭ്യം നൽകുന്നു. ഈ ഫീച്ചർ നിങ്ങൾക്ക് സ്വതന്ത്രമായി ഒരു ആപ്ലിക്കേഷൻ സൃഷ്ടിച്ച് അത് ഉൾപ്പെടുത്താൻ അനുവദിക്കുന്നു, ഉപയോക്തൃ വിവരങ്ങൾ, അവരുടെ ഓർഡറുകൾ, അല്ലെങ്കിൽ മുമ്പത്തെ പേയ്മെന്റ് ചരിത്രം നൽകാൻ.",
+ "LEARN_MORE": "ഡാഷ്ബോർഡ് ആപ്പുകൾക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "COUNT": "{n} ഡാഷ്ബോർഡ് ആപ്പ് | {n} ഡാഷ്ബോർഡ് ആപ്പുകൾ",
+ "SEARCH_PLACEHOLDER": "ഡാഷ്ബോർഡ് ആപ്പുകൾ തിരയുക...",
+ "NO_RESULTS": "നിങ്ങളുടെ തിരച്ചിലുമായി പൊരുത്തപ്പെടുന്ന ഡാഷ്ബോർഡ് ആപ്പുകൾ ഒന്നും കണ്ടെത്തിയില്ല",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "പേര്",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "ഈ അക്കൗണ്ടിൽ ഇതുവരെ ഡാഷ്ബോർഡ് ആപ്പുകൾ ക്രമീകരിച്ചിട്ടില്ല",
+ "LOADING": "ഡാഷ്ബോർഡ് ആപ്പുകൾ കൊണ്ടുവരുന്നു...",
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "ENDPOINT": "എൻഡ്പോയിന്റ്",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ },
+ "EDIT_TOOLTIP": "ആപ്പ് തിരുത്തുക",
+ "DELETE_TOOLTIP": "ആപ്പ് ഇല്ലാതാക്കുക"
},
"FORM": {
"TITLE_LABEL": "പേര്",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_PLACEHOLDER": "നിങ്ങളുടെ ഡാഷ്ബോർഡ് ആപ്പിന് ഒരു പേര് നൽകുക",
+ "TITLE_ERROR": "ഡാഷ്ബോർഡ് ആപ്പിന് ഒരു പേര് ആവശ്യമാണ്",
+ "URL_LABEL": "എൻഡ്പോയിന്റ്",
+ "URL_PLACEHOLDER": "നിങ്ങളുടെ ആപ്പ് ഹോസ്റ്റ് ചെയ്യുന്ന എന്റ്പോയിന്റ് URL നൽകുക",
+ "URL_ERROR": "സാധുവായ URL ആവശ്യമാണ്"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "പുതിയ ഡാഷ്ബോർഡ് ആപ്പ് ചേർക്കുക",
"FORM_SUBMIT": "സമർപ്പിക്കുക",
"FORM_CANCEL": "റദ്ദാക്കുക",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "ഡാഷ്ബോർഡ് ആപ്പ് വിജയകരമായി ക്രമീകരിച്ചു",
+ "API_ERROR": "ഞങ്ങൾ ഒരു ആപ്പ് സൃഷ്ടിക്കാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
+ "HEADER": "ഡാഷ്ബോർഡ് ആപ്പ് തിരുത്തുക",
"FORM_SUBMIT": "അപ്ഡേറ്റ്",
"FORM_CANCEL": "റദ്ദാക്കുക",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "ഡാഷ്ബോർഡ് ആപ്പ് വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "API_ERROR": "ആപ്പ് അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "അതെ, ഇല്ലാതാക്കുക",
+ "CONFIRM_NO": "ഇല്ല, സൂക്ഷിക്കുക",
+ "TITLE": "അഴിച്ചുവിടൽ സ്ഥിരീകരിക്കുക",
+ "MESSAGE": "നിങ്ങൾക്ക് {appName} ആപ്പ് ഇല്ലാതാക്കാൻ ഉറപ്പാണോ?",
+ "API_SUCCESS": "ഡാഷ്ബോർഡ് ആപ്പ് വിജയകരമായി അഴിച്ചുവിടപ്പെട്ടു",
+ "API_ERROR": "ആപ്പ് ഇല്ലാതാക്കാൻ കഴിഞ്ഞില്ല. ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "ലീനിയർ",
+ "ADD_OR_LINK_BUTTON": "Linear പ്രശ്നം സൃഷ്ടിക്കുക/ബന്ധിപ്പിക്കുക",
+ "LOADING": "Linear പ്രശ്നങ്ങൾ കൊണ്ടുവരുന്നു...",
+ "LOADING_ERROR": "ലീനിയർ പ്രശ്നങ്ങൾ ലഭ്യമാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "LINK": {
+ "SEARCH": "പ്രശ്നങ്ങൾ തിരയുക",
+ "SELECT": "പ്രശ്നം തിരഞ്ഞെടുക്കുക",
+ "TITLE": "ലിങ്ക്",
+ "EMPTY_LIST": "ലീനിയർ പ്രശ്നങ്ങൾ കണ്ടെത്തിയില്ല",
+ "LOADING": "ലോഡിംഗ്",
+ "ERROR": "ലീനിയർ പ്രശ്നങ്ങൾ ലഭിക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "LINK_SUCCESS": "പ്രശ്നം വിജയകരമായി ബന്ധിപ്പിച്ചു",
+ "LINK_ERROR": "പ്രശ്നം ലിങ്ക് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "LINK_TITLE": "{name} എന്നയാളുമായി സംഭാഷണം (#{conversationId})"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "ലീനിയർ പ്രശ്നം സൃഷ്ടിക്കുക/ലിങ്ക് ചെയ്യുക",
+ "DESCRIPTION": "സംഭാഷണങ്ങളിൽ നിന്ന് Linear പ്രശ്നങ്ങൾ സൃഷ്ടിക്കുക, അല്ലെങ്കിൽ സുതാര്യമായ ട്രാക്കിംഗിനായി നിലവിലുള്ളവ ബന്ധിപ്പിക്കുക.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "തലക്കെട്ട്",
+ "PLACEHOLDER": "ശീർഷകം നൽകുക",
+ "REQUIRED_ERROR": "ശീർഷകം ആവശ്യമാണ്"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "വിവരണം നൽകുക"
+ },
+ "TEAM": {
+ "LABEL": "ടീം",
+ "PLACEHOLDER": "ടീം തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "ടീം തിരയുക",
+ "REQUIRED_ERROR": "ടീം ആവശ്യമാണ്"
+ },
+ "ASSIGNEE": {
+ "LABEL": "അസൈനി",
+ "PLACEHOLDER": "അസൈനി തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "അസൈനി തിരയുക"
+ },
+ "PRIORITY": {
+ "LABEL": "പ്രാധാന്യം",
+ "PLACEHOLDER": "പ്രാധാന്യം തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "പ്രാധാന്യം തിരയുക"
+ },
+ "LABEL": {
+ "LABEL": "ലേബൽ",
+ "PLACEHOLDER": "ലേബൽ തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "തിരയൽ ലേബൽ"
+ },
+ "STATUS": {
+ "LABEL": "സ്റ്റാറ്റസ്",
+ "PLACEHOLDER": "സ്റ്റാറ്റസ് തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "സ്ഥിതി തിരയുക"
+ },
+ "PROJECT": {
+ "LABEL": "പ്രോജക്ട്",
+ "PLACEHOLDER": "പ്രോജക്ട് തിരഞ്ഞെടുക്കുക",
+ "SEARCH": "പ്രോജക്ട് തിരയുക"
+ }
+ },
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക",
+ "CREATE_SUCCESS": "പ്രശ്നം വിജയകരമായി സൃഷ്ടിച്ചു",
+ "CREATE_ERROR": "ഇഷ്യൂ സൃഷ്ടിക്കുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "LOADING_TEAM_ERROR": "ടീമുകൾ ലഭ്യമാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "LOADING_TEAM_ENTITIES_ERROR": "ടീം ഘടകങ്ങൾ ലഭ്യമാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "ISSUE": {
+ "STATUS": "സ്റ്റാറ്റസ്",
+ "PRIORITY": "പ്രാധാന്യം",
+ "ASSIGNEE": "നിയുക്തന്",
+ "LABELS": "ലേബലുകൾ",
+ "CREATED_AT": "സൃഷ്ടിച്ചത് {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "അൺലിങ്ക് ചെയ്യുക",
+ "SUCCESS": "പ്രശ്നം വിജയകരമായി അൺലിങ്ക് ചെയ്തു",
+ "ERROR": "പ്രശ്നം അൺലിങ്ക് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "NO_LINKED_ISSUES": "ബന്ധപ്പെട്ട പ്രശ്നങ്ങൾ കണ്ടെത്തിയില്ല",
+ "DELETE": {
+ "TITLE": "ഇന്റഗ്രേഷൻ നീക്കം ചെയ്യാൻ നിങ്ങൾ ഉറപ്പാണോ?",
+ "MESSAGE": "നിങ്ങൾ ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കാൻ ഉറപ്പാണോ?",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "CTA": {
+ "TITLE": "Linear-ലേക്ക് കണക്ട് ചെയ്യുക",
+ "AGENT_DESCRIPTION": "Linear വർക്ക്സ്പേസ് കണക്ട് ചെയ്തിട്ടില്ല. ഈ ഇന്റഗ്രേഷൻ ഉപയോഗിക്കാൻ നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ വർക്ക്സ്പേസ് കണക്ട് ചെയ്യാൻ അഭ്യർത്ഥിക്കുക.",
+ "DESCRIPTION": "Linear വർക്സ്പേസ് ബന്ധിപ്പിച്ചിട്ടില്ല. ഈ ഇന്റഗ്രേഷൻ ഉപയോഗിക്കാൻ നിങ്ങളുടെ വർക്സ്പേസ് ബന്ധിപ്പിക്കാൻ താഴെയുള്ള ബട്ടൺ ക്ലിക്ക് ചെയ്യുക.",
+ "BUTTON_TEXT": "Linear വർക്സ്പേസ് ബന്ധിപ്പിക്കുക"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "നിങ്ങൾക്ക് Notion ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കാൻ ഉറപ്പാണോ?",
+ "MESSAGE": "ഈ ഇന്റഗ്രേഷൻ ഇല്ലാതാക്കുന്നത് നിങ്ങളുടെ Notion വർക്ക്സ്പേസിലേക്കുള്ള ആക്സസ് നീക്കം ചെയ്യുകയും ബന്ധപ്പെട്ട എല്ലാ പ്രവർത്തനങ്ങളും നിർത്തുകയും ചെയ്യും.",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "ക്യാപ്റ്റൻ",
+ "HEADER_KNOW_MORE": "കൂടുതൽ അറിയുക",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "സഹായികൾ",
+ "SWITCH_ASSISTANT": "അസിസ്റ്റന്റുകൾ തമ്മിൽ മാറുക",
+ "NEW_ASSISTANT": "അസിസ്റ്റന്റ് സൃഷ്ടിക്കുക",
+ "EMPTY_LIST": "സഹായികൾ ഒന്നും കണ്ടെത്തിയില്ല, ആരംഭിക്കാൻ ഒരു സഹായി സൃഷ്ടിക്കുക"
+ },
+ "COPILOT": {
+ "TITLE": "കോപ്പൈലറ്റ്",
+ "TRY_THESE_PROMPTS": "ഈ പ്രോംപ്റ്റുകൾ പരീക്ഷിക്കുക",
+ "PANEL_TITLE": "കോപ്പൈലറ്റുമായി ആരംഭിക്കുക",
+ "KICK_OFF_MESSAGE": "വേഗത്തിലുള്ള സംക്ഷേപം വേണമോ, മുമ്പത്തെ സംഭാഷണങ്ങൾ പരിശോധിക്കണോ, അല്ലെങ്കിൽ മികച്ച മറുപടി തയ്യാറാക്കണോ? കാര്യങ്ങൾ വേഗത്തിലാക്കാൻ കോപ്പൈലറ്റ് ഇവിടെ ഉണ്ട്.",
+ "SEND_MESSAGE": "സന്ദേശം അയയ്ക്കുക...",
+ "EMPTY_MESSAGE": "പ്രതികരണം സൃഷ്ടിക്കുന്നതിൽ പിശക് സംഭവിച്ചു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "LOADER": "ക്യാപ്റ്റൻ ചിന്തിക്കുന്നു",
+ "YOU": "നിങ്ങൾ",
+ "USE": "ഇത് ഉപയോഗിക്കുക",
+ "RESET": "പുനഃസജ്ജമാക്കുക",
+ "SHOW_STEPS": "പടികൾ കാണിക്കുക",
+ "SELECT_ASSISTANT": "സഹായി തിരഞ്ഞെടുക്കുക",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "ഈ സംഭാഷണം സംക്ഷേപിക്കുക",
+ "CONTENT": "ഉപഭോക്താവും പിന്തുണ ഏജന്റും തമ്മിൽ ചർച്ച ചെയ്ത പ്രധാന കാര്യങ്ങൾ, ഉപഭോക്താവിന്റെ ആശങ്കകൾ, ചോദ്യങ്ങൾ, പിന്തുണ ഏജന്റ് നൽകിയ പരിഹാരങ്ങൾ അല്ലെങ്കിൽ പ്രതികരണങ്ങൾ എന്നിവ സംക്ഷേപിക്കുക"
+ },
+ "SUGGEST": {
+ "LABEL": "ഒരു ഉത്തരം നിർദ്ദേശിക്കുക",
+ "CONTENT": "ഉപഭോക്താവിന്റെ ചോദ്യം വിശകലനം ചെയ്ത്, അവരുടെ ആശങ്കകൾ അല്ലെങ്കിൽ ചോദ്യങ്ങൾ ഫലപ്രദമായി പരിഹരിക്കുന്ന ഒരു മറുപടി രൂപരേഖ തയ്യാറാക്കുക. മറുപടി വ്യക്തവും സംക്ഷിപ്തവുമായിരിക്കണം, സഹായകരമായ വിവരങ്ങൾ നൽകണം."
+ },
+ "RATE": {
+ "LABEL": "ഈ സംഭാഷണത്തിന് റേറ്റിംഗ് നൽകുക",
+ "CONTENT": "ഉപഭോക്താവിന്റെ ആവശ്യങ്ങൾ എത്രമാത്രം പൂരിപ്പിക്കുന്നുവെന്ന് കാണാൻ സംഭാഷണം അവലോകനം ചെയ്യുക. ടോൺ, വ്യക്തത, ഫലപ്രാപ്തി എന്നിവയുടെ അടിസ്ഥാനത്തിൽ 5-ൽ നിന്ന് റേറ്റിംഗ് പങ്കുവെക്കുക."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "ഉയർന്ന പ്രാധാന്യമുള്ള സംഭാഷണങ്ങൾ",
+ "CONTENT": "എല്ലാ ഉയർന്ന പ്രാധാന്യമുള്ള തുറന്ന സംഭാഷണങ്ങളുടെ ഒരു സംക്ഷിപ്തം നൽകുക. സംഭാഷണ ഐഡി, ഉപഭോക്തൃ പേര് (ലഭ്യമായാൽ), അവസാന സന്ദേശത്തിന്റെ ഉള്ളടക്കം, നിയുക്ത ഏജന്റ് എന്നിവ ഉൾപ്പെടുത്തുക. പ്രസക്തമായെങ്കിൽ നിലയനുസരിച്ച് ഗ്രൂപ്പ് ചെയ്യുക."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "ബന്ധപ്പെടലുകളുടെ പട്ടിക",
+ "CONTENT": "മുകളിൽ 10 ബന്ധപ്പെടലുകളുടെ പട്ടിക കാണിക്കുക. പേര്, ഇമെയിൽ അല്ലെങ്കിൽ ഫോൺ നമ്പർ (ലഭ്യമായെങ്കിൽ), അവസാനമായി കാണപ്പെട്ട സമയം, ടാഗുകൾ (എങ്കിൽ) ഉൾപ്പെടുത്തുക."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "നിങ്ങൾ",
+ "ASSISTANT": "സഹായി",
+ "MESSAGE_PLACEHOLDER": "നിങ്ങളുടെ സന്ദേശം ടൈപ്പുചെയ്യുക...",
+ "HEADER": "പ്ലേഗ്രൗണ്ട്",
+ "DESCRIPTION": "നിങ്ങളുടെ അസിസ്റ്റന്റിന് സന്ദേശങ്ങൾ അയയ്ക്കാനും അത് ശരിയായി, വേഗത്തിൽ, നിങ്ങൾ പ്രതീക്ഷിക്കുന്ന ശൈലിയിൽ പ്രതികരിക്കുന്നുണ്ടോ എന്ന് പരിശോധിക്കാനും ഈ പ്ലേഗ്രൗണ്ട് ഉപയോഗിക്കുക.",
+ "CREDIT_NOTE": "ഇവിടെ അയച്ച സന്ദേശങ്ങൾ നിങ്ങളുടെ Captain ക്രെഡിറ്റുകളിൽ ഉൾപ്പെടും."
+ },
+ "PAYWALL": {
+ "TITLE": "Captain AI ഉപയോഗിക്കാൻ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "AVAILABLE_ON": "Captain സൗജന്യ പ്ലാനിൽ ലഭ്യമല്ല.",
+ "UPGRADE_PROMPT": "ഞങ്ങളുടെ അസിസ്റ്റന്റുകളും കോപൈലറ്റും ഉൾപ്പെടെ കൂടുതൽ സവിശേഷതകൾ ലഭിക്കാൻ നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "UPGRADE_NOW": "ഇപ്പോൾ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "CANCEL_ANYTIME": "നിങ്ങളുടെ പ്ലാൻ എപ്പോഴും മാറ്റുകയോ റദ്ദാക്കുകയോ ചെയ്യാം"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "ക്യാപ്റ്റൻ AI എന്റർപ്രൈസ് പ്ലാനുകളിൽ മാത്രമേ ലഭ്യമാകൂ.",
+ "UPGRADE_PROMPT": "നമ്മുടെ അസിസ്റ്റന്റുകൾ, കോപൈലറ്റ് എന്നിവയ്ക്ക് ആക്സസ് നേടാൻ നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "ASK_ADMIN": "ദയവായി അപ്ഗ്രേഡിനായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ സമീപിക്കുക."
+ },
+ "BANNER": {
+ "RESPONSES": "നിങ്ങൾ നിങ്ങളുടെ പ്രതികരണ പരിധിയുടെ 80% ക്കും മുകളിൽ ഉപയോഗിച്ചു. Captain AI തുടർച്ചയായി ഉപയോഗിക്കാൻ, ദയവായി അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "DOCUMENTS": "ഡോക്യുമെന്റ് പരിധി എത്തി. Captain AI ഉപയോഗം തുടരാൻ അപ്ഗ്രേഡ് ചെയ്യുക."
+ },
+ "FORM": {
+ "CANCEL": "റദ്ദാക്കുക",
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "EDIT": "അപ്ഡേറ്റ്"
+ },
+ "ASSISTANTS": {
+ "HEADER": "സഹായികൾ",
+ "NO_ASSISTANTS_AVAILABLE": "നിങ്ങളുടെ അക്കൗണ്ടിൽ സഹായികൾ ലഭ്യമല്ല.",
+ "ADD_NEW": "ഒരു പുതിയ അസിസ്റ്റന്റ് സൃഷ്ടിക്കുക",
+ "DELETE": {
+ "TITLE": "അസിസ്റ്റന്റ് ഇല്ലാതാക്കാൻ നിങ്ങൾ ഉറപ്പാണോ?",
+ "DESCRIPTION": "ഈ പ്രവർത്തനം സ്ഥിരമാണ്. ഈ അസിസ്റ്റന്റിനെ ഇല്ലാതാക്കുന്നത് എല്ലാ ബന്ധിപ്പിച്ച ഇൻബോക്സുകളിൽ നിന്നും അത് നീക്കം ചെയ്യുകയും സൃഷ്ടിച്ച എല്ലാ അറിവുകളും സ്ഥിരമായി മായ്ച്ചു കളയുകയും ചെയ്യും.",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "അസിസ്റ്റന്റ് വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "അസിസ്റ്റന്റ് ഇല്ലാതാക്കുന്നതിൽ പിഴവ് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM_DESCRIPTION": "നിങ്ങളുടെ അസിസ്റ്റന്റിന് പേര് നൽകാൻ, അതിന്റെ ഉദ്ദേശ്യം വിവരിക്കാൻ, അത് പിന്തുണയ്ക്കുന്ന ഉൽപ്പന്നം വ്യക്തമാക്കാൻ താഴെ വിവരങ്ങൾ പൂരിപ്പിക്കുക.",
+ "CREATE": {
+ "TITLE": "ഒരു അസിസ്റ്റന്റ് സൃഷ്ടിക്കുക",
+ "SUCCESS_MESSAGE": "അസിസ്റ്റന്റ് വിജയകരമായി സൃഷ്ടിച്ചു",
+ "ERROR_MESSAGE": "അസിസ്റ്റന്റ് സൃഷ്ടിക്കുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM": {
+ "UPDATE": "അപ്ഡേറ്റ്",
+ "SECTIONS": {
+ "BASIC_INFO": "അടിസ്ഥാന വിവരങ്ങൾ",
+ "SYSTEM_MESSAGES": "സിസ്റ്റം സന്ദേശങ്ങൾ",
+ "INSTRUCTIONS": "നിർദ്ദേശങ്ങൾ",
+ "FEATURES": "സവിശേഷതകൾ",
+ "TOOLS": "ഉപകരണങ്ങൾ "
+ },
+ "NAME": {
+ "LABEL": "പേര്",
+ "PLACEHOLDER": "അസിസ്റ്റന്റിന്റെ പേര് നൽകുക",
+ "ERROR": "പേര് ആവശ്യമാണ്"
+ },
+ "TEMPERATURE": {
+ "LABEL": "പ്രതികരണ താപനില",
+ "DESCRIPTION": "അസിസ്റ്റന്റിന്റെ പ്രതികരണങ്ങൾ എത്ര സൃഷ്ടിപരമായോ നിയന്ത്രിതമായോ ആയിരിക്കണമെന്ന് ക്രമീകരിക്കുക. കുറഞ്ഞ മൂല്യങ്ങൾ കൂടുതൽ കേന്ദ്രീകൃതവും നിർണായകവുമായ പ്രതികരണങ്ങൾ നൽകും, ഉയർന്ന മൂല്യങ്ങൾ കൂടുതൽ സൃഷ്ടിപരവും വ്യത്യസ്തവുമായ ഔട്ട്പുട്ടുകൾ അനുവദിക്കും."
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "അസിസ്റ്റന്റിന്റെ വിവരണം നൽകുക",
+ "ERROR": "വിവരണം ആവശ്യമാണ്"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "ഉൽപ്പന്നത്തിന്റെ പേര്",
+ "PLACEHOLDER": "ഉൽപ്പന്നത്തിന്റെ പേര് നൽകുക",
+ "ERROR": "ഉൽപ്പന്നത്തിന്റെ പേര് ആവശ്യമാണ്"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "സ്വാഗത സന്ദേശം",
+ "PLACEHOLDER": "സ്വാഗത സന്ദേശം നൽകുക"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "ഹാൻഡ്ഓഫ് സന്ദേശം",
+ "PLACEHOLDER": "ഹാൻഡ്ഓഫ് സന്ദേശം നൽകുക"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "പരിഹാര സന്ദേശം",
+ "PLACEHOLDER": "പരിഹാര സന്ദേശം നൽകുക"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "നിർദ്ദേശങ്ങൾ",
+ "PLACEHOLDER": "അസിസ്റ്റന്റിനായി നിർദ്ദേശങ്ങൾ നൽകുക"
+ },
+ "FEATURES": {
+ "TITLE": "സവിശേഷതകൾ",
+ "ALLOW_CONVERSATION_FAQS": "പരിഹരിച്ച സംഭാഷണങ്ങളിൽ നിന്ന് FAQകൾ സൃഷ്ടിക്കുക",
+ "ALLOW_MEMORIES": "ഉപഭോക്തൃ ഇടപെടലുകളിൽ നിന്നുള്ള പ്രധാന വിവരങ്ങൾ ഓർമ്മകളായി പിടിക്കുക.",
+ "ALLOW_CITATIONS": "പ്രതികരണങ്ങളിൽ ഉറവിട ഉദ്ധരണികൾ ഉൾപ്പെടുത്തുക",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "അസിസ്റ്റന്റിനെ അപ്ഡേറ്റ് ചെയ്യുക",
+ "SUCCESS_MESSAGE": "അസിസ്റ്റന്റ് വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "അസിസ്റ്റന്റ് അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "NOT_FOUND": "അസിസ്റ്റന്റ് കണ്ടെത്താനായില്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "SETTINGS": {
+ "HEADER": "ക്രമീകരണങ്ങൾ",
+ "BASIC_SETTINGS": {
+ "TITLE": "അടിസ്ഥാന ക്രമീകരണങ്ങൾ",
+ "DESCRIPTION": "സംവാദം അവസാനിപ്പിക്കുമ്പോൾ അല്ലെങ്കിൽ മനുഷ്യനിലേക്ക് കൈമാറുമ്പോൾ അസിസ്റ്റന്റ് പറയുന്നതിനെ ഇഷ്ടാനുസൃതമാക്കുക."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "സിസ്റ്റം ക്രമീകരണങ്ങൾ",
+ "DESCRIPTION": "സംവാദം അവസാനിപ്പിക്കുമ്പോഴും മനുഷ്യനിലേക്ക് കൈമാറുമ്പോഴും അസിസ്റ്റന്റ് പറയുന്നതു ഇഷ്ടാനുസൃതമാക്കുക."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "വിനോദകരമായ കാര്യങ്ങൾ",
+ "DESCRIPTION": "അസിസ്റ്റന്റിന് കൂടുതൽ നിയന്ത്രണം ചേർക്കുക. (കഥപോലെ കൂടുതൽ ദൃശ്യമായി: ക്വറി ഗാർഡ്റെയിൽ → സീനാരിയോകൾ → ഔട്ട്പുട്ട്) ഉപയോക്താവിനെ ഇത് ഉപയോഗിക്കാൻ പ്രേരിപ്പിക്കുന്നു.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "ഗാർഡ്റെയിൽസ്",
+ "DESCRIPTION": "കാര്യങ്ങൾ ട്രാക്കിൽ സൂക്ഷിക്കുന്നു—നിങ്ങളുടെ അസിസ്റ്റന്റ് മറുപടി നൽകേണ്ട തരം ചോദ്യങ്ങൾ മാത്രം, പരിധി കടക്കാത്തതും വിഷയത്തിന് പുറത്തുള്ളതുമായ ഒന്നും ഇല്ല."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "മറുപടി മാർഗ്ഗനിർദ്ദേശങ്ങൾ",
+ "DESCRIPTION": "നിങ്ങളുടെ അസിസ്റ്റന്റിന്റെ മറുപടികളുടെ അന്തരീക്ഷവും ഘടനയും—വ്യക്തവും സൗഹൃദപരവുമോ? ചുരുങ്ങിയതും തിളക്കമുള്ളതുമായോ? വിശദമായും ഔപചാരികവുമായോ?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "അസിസ്റ്റന്റ് ഇല്ലാതാക്കുക",
+ "DESCRIPTION": "ഈ പ്രവർത്തനം സ്ഥിരമാണ്. ഈ അസിസ്റ്റന്റ് ഇല്ലാതാക്കുന്നത് എല്ലാ ബന്ധിപ്പിച്ച ഇൻബോക്സുകളിൽ നിന്നും അത് നീക്കംചെയ്യുകയും സൃഷ്ടിച്ച എല്ലാ അറിവുകളും സ്ഥിരമായി മായ്ക്കുകയും ചെയ്യും.",
+ "BUTTON_TEXT": "{assistantName} ഇല്ലാതാക്കുക"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "അസിസ്റ്റന്റ് തിരുത്തുക",
+ "DELETE_ASSISTANT": "അസിസ്റ്റന്റ് ഇല്ലാതാക്കുക",
+ "VIEW_CONNECTED_INBOXES": "കണക്ട് ചെയ്ത ഇൻബോക്സുകൾ കാണുക"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "സഹായികൾ ലഭ്യമല്ല",
+ "SUBTITLE": "നിങ്ങളുടെ ഉപയോക്താക്കൾക്ക് വേഗവും കൃത്യവുമായ മറുപടികൾ നൽകാൻ ഒരു അസിസ്റ്റന്റ് സൃഷ്ടിക്കുക. ഇത് നിങ്ങളുടെ സഹായ ലേഖനങ്ങളിലെയും മുൻ സംഭാഷണങ്ങളിലെയും അടിസ്ഥാനത്തിൽ പഠിക്കാം.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "ക്യാപ്റ്റൻ അസിസ്റ്റന്റ്",
+ "NOTE": "Captain Assistant നേരിട്ട് ഉപഭോക്താക്കളുമായി ഇടപഴകുന്നു, നിങ്ങളുടെ സഹായ ഡോക്യുമെന്റുകളും മുമ്പത്തെ സംഭാഷണങ്ങളും പഠിച്ച്, തൽക്ഷണവും കൃത്യവുമായ മറുപടികൾ നൽകുന്നു. ഇത് പ്രാഥമിക ചോദ്യങ്ങൾ കൈകാര്യം ചെയ്ത്, ആവശ്യമായപ്പോൾ ഏജന്റിലേക്ക് കൈമാറുന്നതിന് മുമ്പ് വേഗത്തിലുള്ള പരിഹാരങ്ങൾ നൽകുന്നു."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "ഗാർഡ്റെയിൽസ്",
+ "DESCRIPTION": "വസ്തുക്കൾ പാതയിൽ നിർത്തുന്നു—നിങ്ങളുടെ അസിസ്റ്റന്റ് ഉത്തരം നൽകേണ്ടതായ ചോദ്യങ്ങളേ മാത്രം, അതിലപ്പുറം അല്ലെങ്കിൽ വിഷയം വിട്ടുപോകുന്ന ഒന്നും ഇല്ല.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ഇനം തിരഞ്ഞെടുക്കപ്പെട്ടു | {count} ഇനങ്ങൾ തിരഞ്ഞെടുക്കപ്പെട്ടു",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "UNSELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കാതിരിക്കുക ({count})",
+ "BULK_DELETE_BUTTON": "ഇല്ലാതാക്കുക"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "ഉദാഹരണ ഗാർഡ്റെയിൽസ്",
+ "ADD": "എല്ലാം ചേർക്കുക",
+ "ADD_SINGLE": "ഇത് ചേർക്കുക",
+ "SAVE": "ചേർക്കുകയും സംരക്ഷിക്കുകയും ചെയ്യുക (↵)",
+ "PLACEHOLDER": "മറ്റൊരു ഗാർഡ്രെയിൽ ടൈപ്പ് ചെയ്യുക..."
+ },
+ "NEW": {
+ "TITLE": "ഒരു ഗാർഡ്രെയിൽ ചേർക്കുക",
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക",
+ "PLACEHOLDER": "മറ്റൊരു ഗാർഡ്റെയിൽ ടൈപ്പ് ചെയ്യുക...",
+ "TEST_ALL": "എല്ലാം പരിശോധിക്കുക"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "തിരയുക..."
+ },
+ "EMPTY_MESSAGE": "ഗാർഡ്രെയിൽസ് കണ്ടെത്തിയില്ല. ആരംഭിക്കാൻ ഉദാഹരണങ്ങൾ സൃഷ്ടിക്കുക അല്ലെങ്കിൽ ചേർക്കുക.",
+ "SEARCH_EMPTY_MESSAGE": "ഈ തിരച്ചിലിനായി ഗാർഡ്റെയിൽസ് ഒന്നും കണ്ടെത്തിയില്ല.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "ഗാർഡ്രെയിൽസ് വിജയകരമായി ചേർത്തു",
+ "ERROR": "ഗാർഡ്രെയിൽസ് ചേർക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "UPDATE": {
+ "SUCCESS": "ഗാർഡ്റെയിൽസ് വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR": "ഗാർഡ്റെയിൽസ് അപ്ഡേറ്റ് ചെയ്യുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "DELETE": {
+ "SUCCESS": "ഗാർഡ്രെയിൽസ് വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR": "ഗാർഡ്രെയിൽസ് ഇല്ലാതാക്കുന്നതിൽ പിഴവ് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "പ്രതികരണ മാർഗ്ഗനിർദ്ദേശങ്ങൾ",
+ "DESCRIPTION": "നിങ്ങളുടെ അസിസ്റ്റന്റിന്റെ മറുപടികളുടെ സ്വഭാവവും ഘടനയും—വ്യക്തവും സൗഹൃദപരവുമോ? ചുരുങ്ങിയതും തിളക്കമുള്ളതുമായോ? വിശദമായും ഔപചാരികവുമായോ?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ഇനം തിരഞ്ഞെടുക്കപ്പെട്ടു | {count} ഇനങ്ങൾ തിരഞ്ഞെടുക്കപ്പെട്ടു",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "UNSELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കാതാക്കുക ({count})",
+ "BULK_DELETE_BUTTON": "ഇല്ലാതാക്കുക"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "ഉദാഹരണ പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ",
+ "ADD": "എല്ലാം ചേർക്കുക",
+ "ADD_SINGLE": "ഇത് ചേർക്കുക",
+ "SAVE": "ചേർക്കുക ಮತ್ತು സേവ് ചെയ്യുക (↵)",
+ "PLACEHOLDER": "മറ്റൊരു പ്രതികരണ മാർഗ്ഗനിർദ്ദേശം ടൈപ്പ് ചെയ്യുക..."
+ },
+ "NEW": {
+ "TITLE": "ഒരു പ്രതികരണ മാർഗരേഖ ചേർക്കുക",
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക",
+ "PLACEHOLDER": "മറ്റൊരു പ്രതികരണ മാർഗരേഖ ടൈപ്പ് ചെയ്യുക...",
+ "TEST_ALL": "എല്ലാം പരീക്ഷിക്കുക"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "തിരയുക..."
+ },
+ "EMPTY_MESSAGE": "പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ കണ്ടെത്തിയില്ല. ആരംഭിക്കാൻ ഉദാഹരണങ്ങൾ സൃഷ്ടിക്കുക അല്ലെങ്കിൽ ചേർക്കുക.",
+ "SEARCH_EMPTY_MESSAGE": "ഈ തിരച്ചിലിനായി പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ കണ്ടെത്തിയില്ല.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ വിജയകരമായി ചേർത്തു",
+ "ERROR": "പ്രതികരണ മാർഗ്ഗനിർദ്ദേശങ്ങൾ ചേർക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "UPDATE": {
+ "SUCCESS": "പ്രതികരണ മാർഗ്ഗനിർദ്ദേശങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR": "പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "DELETE": {
+ "SUCCESS": "പ്രതികരണ മാർഗ്ഗനിർദ്ദേശങ്ങൾ വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR": "പ്രതികരണ മാർഗനിർദ്ദേശങ്ങൾ ഇല്ലാതാക്കുന്നതിൽ പിഴവുണ്ടായി, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "സന്നിവേശങ്ങൾ",
+ "DESCRIPTION": "നിങ്ങളുടെ അസിസ്റ്റന്റിന് ചില പശ്ചാത്തലങ്ങൾ നൽകുക—ഉദാഹരണത്തിന് “ഉപയോക്താവ് തടസ്സപ്പെട്ടപ്പോൾ എന്ത് ചെയ്യണം,” അല്ലെങ്കിൽ “റിഫണ്ട് അഭ്യർത്ഥനയ്ക്കിടെ എങ്ങനെ പെരുമാറണം.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} ഇനം തിരഞ്ഞെടുക്കപ്പെട്ടു | {count} ഇനങ്ങൾ തിരഞ്ഞെടുക്കപ്പെട്ടു",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "UNSELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കാതിരിക്കുക ({count})",
+ "BULK_DELETE_BUTTON": "ഇല്ലാതാക്കുക"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "ഉദാഹരണ സീനാരിയോകൾ",
+ "ADD": "എല്ലാം ചേർക്കുക",
+ "ADD_SINGLE": "ഇത് ചേർക്കുക",
+ "TOOLS_USED": "ഉപയോഗിച്ച ഉപകരണങ്ങൾ :"
+ },
+ "NEW": {
+ "CREATE": "ഒരു സീനാരിയോ ചേർക്കുക",
+ "TITLE": "ഒരു സീനാരിയോ സൃഷ്ടിക്കുക",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "തലക്കെട്ട്",
+ "PLACEHOLDER": "സീനാരിയോയ്ക്ക് ഒരു പേര് നൽകുക",
+ "ERROR": "സീനാരിയോയുടെ പേര് ആവശ്യമാണ്"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "ഈ സീനാരിയോ എങ്ങനെ എവിടെ ഉപയോഗിക്കുമെന്ന് വിവരിക്കുക",
+ "ERROR": "സീനാരിയോ വിവരണം ആവശ്യമാണ്"
+ },
+ "INSTRUCTION": {
+ "LABEL": "എങ്ങനെ കൈകാര്യം ചെയ്യാം",
+ "PLACEHOLDER": "ഈ സീനാരിയോ എങ്ങനെ എവിടെ കൈകാര്യം ചെയ്യപ്പെടും എന്ന് വിവരിക്കുക",
+ "ERROR": "സീനാരിയോ ഉള്ളടക്കം ആവശ്യമാണ്"
+ },
+ "CREATE": "സൃഷ്ടിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "റദ്ദാക്കുക",
+ "UPDATE": "മാറ്റങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "തിരയുക..."
+ },
+ "EMPTY_MESSAGE": "ഏതെങ്കിലും സീനാരിയോകളും കണ്ടെത്തിയില്ല. ആരംഭിക്കാൻ ഉദാഹരണങ്ങൾ സൃഷ്ടിക്കുക അല്ലെങ്കിൽ ചേർക്കുക.",
+ "SEARCH_EMPTY_MESSAGE": "ഈ തിരച്ചിലിനായി യാതൊരു സീനാരിയോയും കണ്ടെത്തിയില്ല.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "സീനാരിയോകൾ വിജയകരമായി ചേർത്തു",
+ "ERROR": "സീനാരിയോകൾ ചേർക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "UPDATE": {
+ "SUCCESS": "സീനാരിയോകൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR": "സീനാരിയോകൾ അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "DELETE": {
+ "SUCCESS": "സീനാരിയോകൾ വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR": "സീനാരിയോകൾ ഇല്ലാതാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "ഡോക്യുമെന്റുകൾ",
+ "ADD_NEW": "ഒരു പുതിയ ഡോക്യുമെന്റ് സൃഷ്ടിക്കുക",
+ "SELECTED": "{count} തിരഞ്ഞെടുക്കപ്പെട്ടത്",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "UNSELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കൽ ഒഴിവാക്കുക ({count})",
+ "BULK_DELETE_BUTTON": "ഇല്ലാതാക്കുക",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "അതെ, എല്ലാം ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "ബന്ധപ്പെട്ട സാധാരണ ചോദിക്കപ്പെടുന്ന ചോദ്യങ്ങൾ",
+ "DESCRIPTION": "ഈ സാധാരണ ചോദിക്കപ്പെടുന്ന ചോദ്യങ്ങൾ രേഖയിൽ നിന്നു നേരിട്ട് സൃഷ്ടിച്ചവയാണ്."
+ },
+ "FORM_DESCRIPTION": "ഡോക്യുമെന്റിന്റെ URL നൽകുക, അതിനെ ഒരു നോളജ് സോഴ്സ് ആയി ചേർക്കാൻ, കൂടാതെ അത് ബന്ധിപ്പിക്കാനുള്ള അസിസ്റ്റന്റിനെ തിരഞ്ഞെടുക്കുക.",
+ "CREATE": {
+ "TITLE": "ഒരു ഡോക്യുമെന്റ് ചേർക്കുക",
+ "SUCCESS_MESSAGE": "ഡോക്യുമെന്റ് വിജയകരമായി സൃഷ്ടിച്ചു",
+ "ERROR_MESSAGE": "ഡോക്യുമെന്റ് സൃഷ്ടിക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "ഡോക്യുമെന്റ് തരം",
+ "URL": "URL",
+ "PDF": "PDF ഫയൽ"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "ഡോക്യുമെന്റിന്റെ URL നൽകുക",
+ "ERROR": "ഡോക്യുമെന്റിനായി സാധുവായ URL നൽകുക"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF ഫയൽ",
+ "CHOOSE_FILE": "PDF ഫയൽ തിരഞ്ഞെടുക്കുക",
+ "ERROR": "ദയവായി ഒരു PDF ഫയൽ തിരഞ്ഞെടുക്കുക",
+ "HELP_TEXT": "പരമാവധി ഫയൽ വലുപ്പം: 10MB",
+ "INVALID_TYPE": "ദയവായി സാധുവായ PDF ഫയൽ തിരഞ്ഞെടുക്കുക",
+ "TOO_LARGE": "ഫയൽ വലുപ്പം 10MB പരിധി കടന്നുപോയി"
+ },
+ "NAME": {
+ "LABEL": "ഡോക്യുമെന്റ് പേര് (ഐച്ഛികം)",
+ "PLACEHOLDER": "ഡോക്യുമെന്റിന് ഒരു പേര് നൽകുക"
+ }
+ },
+ "DELETE": {
+ "TITLE": "നിങ്ങൾക്ക് ഈ ഡോക്യുമെന്റ് ഇല്ലാതാക്കാൻ ഉറപ്പാണോ?",
+ "DESCRIPTION": "ഈ പ്രവർത്തനം സ്ഥിരമാണ്. ഈ ഡോക്യുമെന്റ് ഇല്ലാതാക്കുന്നത് സൃഷ്ടിച്ച എല്ലാ അറിവുകളും സ്ഥിരമായി ഇല്ലാതാക്കും.",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "ഡോക്യുമെന്റ് വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "ഡോക്യുമെന്റ് ഇല്ലാതാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "ബന്ധപ്പെട്ട പ്രതികരണങ്ങൾ കാണുക",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "ഡോക്യുമെന്റ് ഇല്ലാതാക്കുക"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "പ്രമാണങ്ങൾ ലഭ്യമല്ല",
+ "SUBTITLE": "നിങ്ങളുടെ അസിസ്റ്റന്റിന് FAQകൾ സൃഷ്ടിക്കാൻ ഡോക്യുമെന്റുകൾ ഉപയോഗിക്കുന്നു. അസിസ്റ്റന്റിന് സാന്ദർഭ്യം നൽകാൻ നിങ്ങൾക്ക് ഡോക്യുമെന്റുകൾ ഇറക്കുമതി ചെയ്യാം.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "ക്യാപ്റ്റൻ ഡോക്യുമെന്റ്",
+ "NOTE": "Captain-ലുള്ള ഒരു ഡോക്യുമെന്റ് അസിസ്റ്റന്റിനുള്ള അറിവ് വിഭവമായി സേവനം ചെയ്യുന്നു. നിങ്ങളുടെ സഹായ കേന്ദ്രം അല്ലെങ്കിൽ മാർഗ്ഗനിർദ്ദേശങ്ങൾ ബന്ധിപ്പിച്ച്, Captain ഉള്ളടക്കം വിശകലനം ചെയ്ത് ഉപഭോക്തൃ ചോദനകൾക്ക് കൃത്യമായ മറുപടികൾ നൽകാൻ കഴിയും."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "ഉപകരണങ്ങൾ",
+ "ADD_NEW": "പുതിയ ഉപകരണം സൃഷ്ടിക്കുക",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "ഇവിടെ ഇഷ്ടാനുസൃത ഉപകരണങ്ങൾ ലഭ്യമല്ല",
+ "SUBTITLE": "നിങ്ങളുടെ അസിസ്റ്റന്റിനെ ബാഹ്യ API-കളുമായി സേവനങ്ങളുമായി ബന്ധിപ്പിക്കാൻ ഇഷ്ടാനുസൃത ഉപകരണങ്ങൾ സൃഷ്ടിക്കുക, അതിലൂടെ അത് നിങ്ങളുടെ പക്കൽ നിന്ന് ഡാറ്റ എടുക്കുകയും പ്രവർത്തനങ്ങൾ നടത്തുകയും ചെയ്യാൻ കഴിയും.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "കസ്റ്റം ടൂളുകൾ",
+ "NOTE": "കസ്റ്റം ടൂളുകൾ നിങ്ങളുടെ അസിസ്റ്റന്റിന് ബാഹ്യ API-കളുമായി സേവനങ്ങളുമായി ഇടപഴകാൻ അനുവദിക്കുന്നു. ഡാറ്റ നേടാൻ, പ്രവർത്തനങ്ങൾ നടത്താൻ, അല്ലെങ്കിൽ നിങ്ങളുടെ നിലവിലുള്ള സിസ്റ്റങ്ങളുമായി സംയോജിപ്പിക്കാൻ ടൂളുകൾ സൃഷ്ടിച്ച് നിങ്ങളുടെ അസിസ്റ്റന്റിന്റെ കഴിവുകൾ മെച്ചപ്പെടുത്തുക."
+ }
+ },
+ "FORM_DESCRIPTION": "ബാഹ്യ API-കളുമായി ബന്ധിപ്പിക്കാൻ നിങ്ങളുടെ കസ്റ്റം ടൂൾ ക്രമീകരിക്കുക",
+ "OPTIONS": {
+ "EDIT_TOOL": "ടൂൾ എഡിറ്റ് ചെയ്യുക",
+ "DELETE_TOOL": "ടൂൾ ഇല്ലാതാക്കുക"
+ },
+ "CREATE": {
+ "TITLE": "കസ്റ്റം ടൂൾ സൃഷ്ടിക്കുക",
+ "SUCCESS_MESSAGE": "കസ്റ്റം ടൂൾ വിജയകരമായി സൃഷ്ടിച്ചു",
+ "ERROR_MESSAGE": "കസ്റ്റം ടൂൾ സൃഷ്ടിക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "EDIT": {
+ "TITLE": "കസ്റ്റം ടൂൾ എഡിറ്റ് ചെയ്യുക",
+ "SUCCESS_MESSAGE": "കസ്റ്റം ടൂൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "കസ്റ്റം ടൂൾ അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ },
+ "DELETE": {
+ "TITLE": "കസ്റ്റം ടൂൾ ഇല്ലാതാക്കുക",
+ "DESCRIPTION": "ഈ കസ്റ്റം ടൂൾ നീക്കംചെയ്യാൻ നിങ്ങൾക്ക് ഉറപ്പുണ്ടോ? ഈ പ്രവർത്തനം മടക്കാനാകില്ല.",
+ "CONFIRM": "അതെ, നീക്കംചെയ്യുക",
+ "SUCCESS_MESSAGE": "കസ്റ്റം ടൂൾ വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "കസ്റ്റം ടൂൾ ഇല്ലാതാക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "ഉപകരണത്തിന്റെ പേര്",
+ "PLACEHOLDER": "ഓർഡർ ലുക്കപ്പ്",
+ "ERROR": "ടൂൾ നാമം ആവശ്യമാണ്",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം",
+ "PLACEHOLDER": "ഓർഡർ ഐഡിയുടെ അടിസ്ഥാനത്തിൽ ഓർഡർ വിശദാംശങ്ങൾ പരിശോധിക്കുന്നു"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "രീതി"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "എൻഡ്പോയിന്റ് URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "സാധുവായ URL ആവശ്യമാണ്"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "പ്രാമാണീകരണ തരം"
+ },
+ "AUTH_TYPES": {
+ "NONE": "ഒന്നുമില്ല",
+ "BEARER": "ബിയറർ ടോക്കൺ",
+ "BASIC": "ബേസിക് ഓത്ത്",
+ "API_KEY": "API കീ"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "ബിയറർ ടോക്കൺ",
+ "BEARER_TOKEN_PLACEHOLDER": "നിങ്ങളുടെ ബിയറർ ടോക്കൺ നൽകുക",
+ "USERNAME": "ഉപയോക്തൃനാമം",
+ "USERNAME_PLACEHOLDER": "ഉപയോക്തൃനാമം നൽകുക",
+ "PASSWORD": "പാസ്വേഡ്",
+ "PASSWORD_PLACEHOLDER": "പാസ്വേഡ് നൽകുക",
+ "API_KEY": "ഹെഡർ നാമം",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "ഹെഡർ മൂല്യം",
+ "API_VALUE_PLACEHOLDER": "API കീ മൂല്യം നൽകുക"
+ },
+ "PARAMETERS": {
+ "LABEL": "പരാമീറ്ററുകൾ",
+ "HELP_TEXT": "ഉപയോക്തൃ ചോദനകളിൽ നിന്ന് എടുക്കേണ്ട പരാമീറ്ററുകൾ നിർവചിക്കുക"
+ },
+ "ADD_PARAMETER": "പാരാമീറ്റർ ചേർക്കുക",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "പാരാമീറ്റർ പേര് (ഉദാ., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "ടൈപ്പ്"
+ },
+ "PARAM_TYPES": {
+ "STRING": "സ്ട്രിംഗ്",
+ "NUMBER": "സംഖ്യ",
+ "BOOLEAN": "ബൂളിയൻ",
+ "ARRAY": "അറേ",
+ "OBJECT": "ഓബ്ജക്ട്"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "പാരാമീറ്ററിന്റെ വിവരണം"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "ആവശ്യമാണ്"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "അഭ്യർത്ഥന ബോഡി ടെംപ്ലേറ്റ് (ഐച്ഛികം)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "പ്രതികരണ ടെംപ്ലേറ്റ് (ഐച്ഛികം)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "പാരാമീറ്റർ നാമം ആവശ്യമാണ്"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "അടിക്കുറിപ്പുകൾ",
+ "PENDING_FAQS": "പെൻഡിംഗ് എഫ്എക്യുസുകൾ",
+ "ADD_NEW": "പുതിയ FAQ സൃഷ്ടിക്കുക",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "സംഭാഷണം #{id}"
+ },
+ "SELECTED": "{count} തിരഞ്ഞെടുക്കപ്പെട്ടത്",
+ "SELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കുക ({count})",
+ "UNSELECT_ALL": "എല്ലാം തിരഞ്ഞെടുക്കൽ ഒഴിവാക്കുക ({count})",
+ "SEARCH_PLACEHOLDER": "FAQകൾ തിരയുക...",
+ "BULK_APPROVE_BUTTON": "അംഗീകാരം നൽകുക",
+ "BULK_DELETE_BUTTON": "ഇല്ലാതാക്കുക",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs വിജയകരമായി അംഗീകരിച്ചു",
+ "ERROR_MESSAGE": "FAQs അംഗീകരിക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "BULK_DELETE": {
+ "TITLE": "FAQകൾ ഇല്ലാതാക്കണോ?",
+ "DESCRIPTION": "തിരഞ്ഞെടുത്ത FAQകൾ ഇല്ലാതാക്കാൻ നിങ്ങൾക്ക് ഉറപ്പാണോ? ഈ പ്രവർത്തനം തിരുത്താനാകില്ല.",
+ "CONFIRM": "അതെ, എല്ലാം ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "FAQകൾ വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "FAQ കളെ ഇല്ലാതാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "DELETE": {
+ "TITLE": "നിങ്ങൾക്ക് FAQ ഇല്ലാതാക്കാൻ ഉറപ്പാണോ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "FAQ വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "FAQ ഇല്ലാതാക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FILTER": {
+ "ASSISTANT": "സഹായി: {selected}",
+ "STATUS": "സ്ഥിതി: {selected}",
+ "ALL_ASSISTANTS": "എല്ലാം"
+ },
+ "STATUS": {
+ "TITLE": "സ്റ്റാറ്റസ്",
+ "PENDING": "കെട്ടിക്കിടക്കുന്നു",
+ "APPROVED": "അംഗീകൃതം",
+ "ALL": "എല്ലാം"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "ക്യാപ്റ്റൻ നിങ്ങളുടെ ഉപഭോക്താക്കൾ അന്വേഷിച്ച ചില സാധാരണ ചോദിച്ച ചോദ്യങ്ങൾ കണ്ടെത്തി.",
+ "ACTION": "പരിശോധിക്കാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക"
+ },
+ "FORM_DESCRIPTION": "ഒരു ചോദ്യം അതിന്റെ അനുയോജ്യമായ ഉത്തരം അറിവ് അടിസ്ഥാനത്തിലേക്ക് ചേർക്കുക, കൂടാതെ അത് ബന്ധപ്പെട്ടിരിക്കേണ്ട അസിസ്റ്റന്റിനെ തിരഞ്ഞെടുക്കുക.",
+ "CREATE": {
+ "TITLE": "ഒരു FAQ ചേർക്കുക",
+ "SUCCESS_MESSAGE": "പ്രതികരണം വിജയകരമായി ചേർത്തു.",
+ "ERROR_MESSAGE": "പ്രതികരണം ചേർക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "ചോദ്യം",
+ "PLACEHOLDER": "ചോദ്യം ഇവിടെ നൽകുക",
+ "ERROR": "ദയവായി സാധുവായ ഒരു ചോദ്യം നൽകുക."
+ },
+ "ANSWER": {
+ "LABEL": "ഉത്തരം",
+ "PLACEHOLDER": "ഉത്തരം ഇവിടെ നൽകുക",
+ "ERROR": "ദയവായി സാധുവായ ഒരു ഉത്തരം നൽകുക."
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ അപ്ഡേറ്റ് ചെയ്യുക",
+ "SUCCESS_MESSAGE": "FAQ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "FAQ അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ അംഗീകൃതമായി അടയാളപ്പെടുത്തി"
+ },
+ "OPTIONS": {
+ "APPROVE": "അംഗീകരിക്കുക",
+ "EDIT_RESPONSE": "എഡിറ്റുചെയ്യുക",
+ "DELETE_RESPONSE": "ഇല്ലാതാക്കുക"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "ഏതെങ്കിലും FAQ കണ്ടെത്തിയില്ല",
+ "NO_PENDING_TITLE": "പരിശോധിക്കാനുള്ള കൂടുതൽ പendente FAQകൾ ഇല്ല",
+ "SUBTITLE": "FAQകൾ നിങ്ങളുടെ അസിസ്റ്റന്റിന് നിങ്ങളുടെ ഉപഭോക്താക്കളിൽ നിന്നുള്ള ചോദ്യങ്ങൾക്ക് വേഗവും കൃത്യവുമായ ഉത്തരങ്ങൾ നൽകാൻ സഹായിക്കുന്നു. അവ നിങ്ങളുടെ ഉള്ളടക്കത്തിൽ നിന്ന് സ്വയം സൃഷ്ടിക്കപ്പെടാം അല്ലെങ്കിൽ കൈമാറി ചേർക്കാം.",
+ "CLEAR_SEARCH": "സജീവമായ ഫിൽട്ടറുകൾ മായ്ക്കുക",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "ക്യാപ്റ്റൻ എഫ്എക്യു",
+ "NOTE": "Captain FAQs സാധാരണ ഉപഭോക്തൃ ചോദ്യങ്ങൾ കണ്ടെത്തുന്നു—നിങ്ങളുടെ നോളജ് ബേസിൽ ഇല്ലാത്തതോ അല്ലെങ്കിൽ പലപ്പോഴും ചോദിക്കപ്പെടുന്നതോ ആയ ചോദ്യങ്ങൾ—മറ്റുള്ളവയ്ക്ക് അനുയോജ്യമായ FAQs സൃഷ്ടിച്ച് പിന്തുണ മെച്ചപ്പെടുത്തുന്നു. ഓരോ നിർദ്ദേശവും നിങ്ങൾ പരിശോധിച്ച് അംഗീകരിക്കാമോ നിരസിക്കാമോ എന്ന് തീരുമാനിക്കാം."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "കണക്ട് ചെയ്ത ഇൻബോക്സുകൾ",
+ "ADD_NEW": "പുതിയ ഇൻബോക്സ് കണക്ട് ചെയ്യുക",
+ "OPTIONS": {
+ "DISCONNECT": "ഡിസ്കണക്ട് ചെയ്യുക"
+ },
+ "DELETE": {
+ "TITLE": "ഇൻബോക്സ് ഡിസ്കണക്ട് ചെയ്യാൻ നിങ്ങൾ ഉറപ്പാണോ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "അതെ, ഇല്ലാതാക്കുക",
+ "SUCCESS_MESSAGE": "ഇൻബോക്സ് വിജയകരമായി ബന്ധം മുറിച്ചു.",
+ "ERROR_MESSAGE": "ഇൻബോക്സ് ബന്ധം വിച്ഛേദിക്കുന്നതിൽ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM_DESCRIPTION": "അസിസ്റ്റന്റുമായി ബന്ധിപ്പിക്കാൻ ഒരു ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക.",
+ "CREATE": {
+ "TITLE": "ഒരു ഇൻബോക്സ് ബന്ധിപ്പിക്കുക",
+ "SUCCESS_MESSAGE": "ഇൻബോക്സ് വിജയകരമായി ബന്ധിപ്പിച്ചു.",
+ "ERROR_MESSAGE": "ഇൻബോക്സ് ബന്ധിപ്പിക്കുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "ഇൻബോക്സ്",
+ "PLACEHOLDER": "അസിസ്റ്റന്റിനെ വിന്യസിക്കാൻ ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക.",
+ "ERROR": "ഒരു ഇൻബോക്സ് തിരഞ്ഞെടുപ്പ് ആവശ്യമാണ്."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "കണക്ട് ചെയ്ത ഇൻബോക്സുകൾ ഇല്ല",
+ "SUBTITLE": "ഒരു ഇൻബോക്സ് കണക്ട് ചെയ്യുന്നത് അസിസ്റ്റന്റിന് നിങ്ങളുടെ ഉപഭോക്താക്കളിൽ നിന്നുള്ള പ്രാഥമിക ചോദ്യങ്ങൾ കൈകാര്യം ചെയ്യാൻ സഹായിക്കുന്നു, പിന്നീട് അവരെ നിങ്ങളിലേക്ക് മാറ്റും."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
index b1a55d097..2f6842bbe 100644
--- a/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ml/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "ലേബലുകൾ",
"HEADER_BTN_TXT": "ലേബൽ ചേർക്കുക",
"LOADING": "ലേബലുകൾ ലഭ്യമാക്കുന്നു",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "ലേബലുകൾ തിരയുക...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല",
- "SIDEBAR_TXT": " ലേബലുകൾ
സംഭാഷണങ്ങൾ തരംതിരിക്കാനും മുൻഗണന നൽകാനും ലേബലുകൾ നിങ്ങളെ സഹായിക്കുന്നു. സൈഡ്പാനലിൽ നിന്നുള്ള സംഭാഷണത്തിലേക്ക് നിങ്ങൾക്ക് ലേബൽ നൽകാം.
ലേബലുകൾ അക്ക with ണ്ടുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു കൂടാതെ നിങ്ങളുടെ ഓർഗനൈസേഷനിൽ ഇച്ഛാനുസൃത വർക്ക്ഫ്ലോകൾ സൃഷ്ടിക്കാനും ഇത് ഉപയോഗിക്കാം. നിങ്ങൾക്ക് ഒരു ലേബലിന് ഇഷ്ടാനുസൃത നിറം നൽകാനാകും, ഇത് ലേബൽ തിരിച്ചറിയുന്നത് എളുപ്പമാക്കുന്നു. സംഭാഷണങ്ങൾ എളുപ്പത്തിൽ ഫിൽറ്റർ ചെയ്യുന്നതിന് സൈഡ്ബാറിൽ ലേബൽ പ്രദർശിപ്പിക്കാൻ നിങ്ങൾക്ക് കഴിയും.
",
"LIST": {
"404": "ഈ അക്കൗണ്ടിൽ ലേബലുകളൊന്നും ലഭ്യമല്ല.",
"TITLE": "ലേബലുകൾ നിയന്ത്രിക്കുക",
"DESC": "സംഭാഷണങ്ങൾ ഒരുമിച്ച് ഗ്രൂപ്പുചെയ്യാൻ ലേബലുകൾ നിങ്ങളെ അനുവദിക്കുന്നു.",
- "TABLE_HEADER": [
- "പേര്",
- "വിവരണം",
- "നിറം"
- ]
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "DESCRIPTION": "വിവരണം",
+ "COLOR": "നിറം",
+ "ACTION": "പ്രവർത്തനങ്ങൾ"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "ലേബൽ ചേർക്കുക",
diff --git a/app/javascript/dashboard/i18n/locale/ml/login.json b/app/javascript/dashboard/i18n/locale/ml/login.json
index a0e830e84..b168600f1 100644
--- a/app/javascript/dashboard/i18n/locale/ml/login.json
+++ b/app/javascript/dashboard/i18n/locale/ml/login.json
@@ -3,7 +3,7 @@
"TITLE": "ചാറ്റ് വൂട്ടിലേക്ക് ലോഗിൻ ചെയ്യുക",
"EMAIL": {
"LABEL": "ഇമെയിൽ",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "ദയവായി സാധുവായ ഒരു ഇമെയിൽ വിലാസം നൽകുക"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "നിങ്ങളുടെ പാസ്വേഡ് മറന്നോ?",
"CREATE_NEW_ACCOUNT": "പുതിയ അക്കൗണ്ട് സൃഷ്ടിക്കുക",
- "SUBMIT": "സൈൻ ഇൻ"
+ "SUBMIT": "സൈൻ ഇൻ",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/macros.json b/app/javascript/dashboard/i18n/locale/ml/macros.json
index d983d85e8..ec64b36c4 100644
--- a/app/javascript/dashboard/i18n/locale/ml/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ml/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "പേര്",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "പേര്",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "പ്രവർത്തനങ്ങൾ"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/mfa.json b/app/javascript/dashboard/i18n/locale/ml/mfa.json
new file mode 100644
index 000000000..fc360e139
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "പ്രവർത്തനക്ഷമമാക്കി",
+ "DISABLED": "പ്രവർത്തനരഹിതമാക്കി",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "പകർത്തുക",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "റദ്ദാക്കുക",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "ഡൗൺലോഡ്",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "പാസ്വേഡ്",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "റദ്ദാക്കുക",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "റദ്ദാക്കുക",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/onboarding.json b/app/javascript/dashboard/i18n/locale/ml/onboarding.json
new file mode 100644
index 000000000..d6826670e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "ഇമെയിൽ",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "സമയമേഖല തിരഞ്ഞെടുക്കുക",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "തുടരുക",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/report.json b/app/javascript/dashboard/i18n/locale/ml/report.json
index 0abfb4b34..60473893c 100644
--- a/app/javascript/dashboard/i18n/locale/ml/report.json
+++ b/app/javascript/dashboard/i18n/locale/ml/report.json
@@ -3,7 +3,7 @@
"HEADER": "സംഭാഷണങ്ങൾ",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
- "DOWNLOAD_AGENT_REPORTS": "ഏജന്റ് റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "മിഴിവ് സമയം",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "മിഴിവ് എണ്ണം",
"DESC": "( ആകെ )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "മിഴിവ് എണ്ണം",
+ "DESC": "(ആകെ)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(ആകെ)"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "കഴിഞ്ഞ 7 ദിവസം",
+ "LAST_14_DAYS": "കഴിഞ്ഞ 14 ദിവസം",
"LAST_30_DAYS": "കഴിഞ്ഞ 30 ദിവസം",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "കഴിഞ്ഞ 3 മാസം",
"LAST_6_MONTHS": "കഴിഞ്ഞ 6 മാസം",
"LAST_YEAR": "കഴിഞ്ഞ വർഷം",
"CUSTOM_DATE_RANGE": "ഇഷ്ടാനുസൃത തീയതി ശ്രേണി"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "കഴിഞ്ഞ 7 ദിവസം"
- },
- {
- "id": 1,
- "name": "കഴിഞ്ഞ 30 ദിവസം"
- },
- {
- "id": 2,
- "name": "കഴിഞ്ഞ 3 മാസം"
- },
- {
- "id": 3,
- "name": "കഴിഞ്ഞ 6 മാസം"
- },
- {
- "id": 4,
- "name": "കഴിഞ്ഞ വർഷം"
- },
- {
- "id": 5,
- "name": "ഇഷ്ടാനുസൃത തീയതി ശ്രേണി"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "അപേക്ഷിക്കുക",
"PLACEHOLDER": "തീയതി ശ്രേണി തിരഞ്ഞെടുക്കുക"
@@ -130,14 +116,28 @@
"groupBy": "മാസം"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "ഒരു ഫലവും കണ്ടെത്താനായില്ല"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "ഏജന്റുമാരുടെ അവലോകനം",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_AGENT_REPORTS": "ഏജന്റ് റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ഏജന്റ് തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ഏജന്റുകളെ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "മിഴിവ് സമയം",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "മിഴിവ് എണ്ണം",
@@ -201,10 +201,16 @@
},
"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": "ലേബൽ റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ലേബൽ തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "ലേബലുകൾ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "മിഴിവ് സമയം",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "മിഴിവ് എണ്ണം",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "ഇൻബോക്സ് അവലോകനം",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_INBOX_REPORTS": "ഇൻബോക്സ് റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "മിഴിവ് സമയം",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "മിഴിവ് എണ്ണം",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "ടീം അവലോകനം",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "ചാർട്ട് ഡാറ്റ ലോഡു ചെയ്യുകയാണ്...",
"NO_ENOUGH_DATA": "റിപ്പോർട്ട് സൃഷ്ടിക്കുന്നതിന് ആവശ്യമായ ഡാറ്റ ഞങ്ങൾക്ക് ലഭിച്ചിട്ടില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക.",
"DOWNLOAD_TEAM_REPORTS": "ടീം റിപ്പോർട്ടുകൾ ഡൗൺലോഡ് ചെയ്യുക",
"FILTER_DROPDOWN_LABEL": "ടീം തിരഞ്ഞെടുക്കുക",
+ "FILTERS": {
+ "ADD_FILTER": "ഫിൽട്ടർ ചേർക്കുക",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "ടീമുകളെ തിരയുക"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "സംഭാഷണങ്ങൾ",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "മിഴിവ് സമയം",
"DESC": "( ശരാശരി )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "മിഴിവ് എണ്ണം",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT റിപ്പോർട്ടുകൾ",
- "NO_RECORDS": "CSAT സർവേ പ്രതികരണങ്ങളൊന്നും ലഭ്യമല്ല.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "ഫിൽട്ടർ ചേർക്കുക",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "ഏജന്റുകളെ തിരയുക",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "ടീമുകളെ തിരയുക",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "ഏജന്റ്"
+ },
+ "INBOXES": {
+ "LABEL": "ഇൻബോക്സ്"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "ബന്ധപ്പെടുക",
- "AGENT_NAME": "നിയോഗിച്ച ഏജന്റ്",
+ "AGENT_NAME": "ഏജന്റ്",
"RATING": "റേറ്റിംഗ്",
- "FEEDBACK_TEXT": "ഫീഡ്ബാക്ക് അഭിപ്രായം"
- }
+ "FEEDBACK_TEXT": "ഫീഡ്ബാക്ക് അഭിപ്രായം",
+ "CONVERSATION": "സംഭാഷണം",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "ആകെ പ്രതികരണങ്ങൾ",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "പ്രതികരണ നിരക്ക്",
"TOOLTIP": "മൊത്തം പ്രതികരണങ്ങളുടെ എണ്ണം / അയച്ച CSAT സർവേ സന്ദേശങ്ങളുടെ ആകെ എണ്ണം * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "റദ്ദാക്കുക",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "ഏജന്റ്",
- "OPEN": "OPEN",
+ "OPEN": "സജീവം",
+ "UNATTENDED": "Unattended",
+ "STATUS": "സ്റ്റാറ്റസ്"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "സജീവം",
"UNATTENDED": "Unattended",
"STATUS": "സ്റ്റാറ്റസ്"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "ഫിൽട്ടർ ചേർക്കുക",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "ഒരു ഫലവും കണ്ടെത്താനായില്ല",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "ലേബൽ നാമം",
+ "TEAMS": "ടീമിന്റെ പേര്"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "ഇൻബോക്സ്",
+ "AGENTS": "ഏജന്റ്",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "സംഭാഷണം",
+ "AGENT": "ഏജന്റ്"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "മിഴിവ് എണ്ണം",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/search.json b/app/javascript/dashboard/i18n/locale/ml/search.json
index 30472e868..cf4c56e93 100644
--- a/app/javascript/dashboard/i18n/locale/ml/search.json
+++ b/app/javascript/dashboard/i18n/locale/ml/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "എല്ലാം",
+ "ALL": "All results",
"CONTACTS": "കോൺടാക്റ്റുകൾ",
"CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "കോൺടാക്റ്റുകൾ",
"CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "ബോട്ട്",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "നിന്ന്",
- "EMAIL": "ഇമെയിൽ"
+ "FROM": "From",
+ "EMAIL": "ഇമെയിൽ",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "കഴിഞ്ഞ 7 ദിവസം",
+ "LAST_30_DAYS": "കഴിഞ്ഞ 30 ദിവസം",
+ "LAST_60_DAYS": "കഴിഞ്ഞ 60 ദിവസം",
+ "LAST_90_DAYS": "കഴിഞ്ഞ 90 ദിവസം",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "അപേക്ഷിക്കുക",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "അയച്ചയാൾ",
+ "IN": "ഇൻബോക്സ്",
+ "AGENTS": "ഏജന്റുമാർ",
+ "CONTACTS": "കോൺടാക്റ്റുകൾ",
+ "INBOXES": "ഇൻബോക്സുകൾ",
+ "NO_AGENTS": "ഏജന്റകളെ ഒന്നും കണ്ടെത്താൻ സാധിച്ചില്ല",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/settings.json b/app/javascript/dashboard/i18n/locale/ml/settings.json
index e9f539c2b..42db3b355 100644
--- a/app/javascript/dashboard/i18n/locale/ml/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/settings.json
@@ -3,13 +3,14 @@
"LINK": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
"TITLE": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
"BTN_TEXT": "പ്രൊഫൈൽ അപ്ഡേറ്റ് ചെയ്യുക",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
+ "DELETE_AVATAR": "അവതാർ നീക്കം ചെയ്യുക",
+ "AVATAR_DELETE_SUCCESS": "അവതാർ വിജയകരമായി നീക്കം ചെയ്തു",
+ "AVATAR_DELETE_FAILED": "അവതാർ ഇല്ലാതാക്കുന്നതിൽ പിഴവ് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "UPDATE_SUCCESS": "നിങ്ങളുടെ പ്രൊഫൈൽ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "PASSWORD_UPDATE_SUCCESS": "നിങ്ങളുടെ പാസ്വേഡ് വിജയകരമായി മാറ്റി",
"AFTER_EMAIL_CHANGED": "നിങ്ങളുടെ പ്രൊഫൈൽ വിജയകരമായി അപ്ഡേറ്റു ചെയ്തിരിക്കുന്നു, ലോഗിൻ ക്രെഡൻഷ്യലുകൾ മാറ്റിയതിനാൽ ദയവായി വീണ്ടും ലോഗിൻ ചെയ്യുക",
"FORM": {
+ "PICTURE": "പ്രൊഫൈൽ ചിത്രം",
"AVATAR": "പ്രൊഫൈൽ ചിത്രം",
"ERROR": "ദയവായി ഫോമിലെ പിശകുകൾ പരിഹരിക്കുക",
"REMOVE_IMAGE": "നീക്കം ചെയ്യുക",
@@ -20,85 +21,166 @@
"NOTE": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം നിങ്ങളുടെ ഐഡന്റിറ്റിയാണ്, ഒപ്പം ലോഗിൻ ചെയ്യാൻ ഇതാണ് ഉപയോഗിക്കേണ്ടത്."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "സന്ദേശങ്ങൾ അയയ്ക്കാനുള്ള ഹോട്ട്കീ",
+ "NOTE": "നിങ്ങളുടെ എഴുതാനുള്ള ഇഷ്ടാനുസരണം ഹോട്ട്കീ (Enter അല്ലെങ്കിൽ Cmd/Ctrl+Enter) തിരഞ്ഞെടുക്കാം.",
+ "UPDATE_SUCCESS": "നിങ്ങളുടെ ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "എന്റർ (↵)",
+ "CONTENT": "അയയ്ക്കൽ ബട്ടൺ ക്ലിക്ക് ചെയ്യാതെ Enter കീ അമർത്തി സന്ദേശങ്ങൾ അയയ്ക്കുക."
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "സന്ദേശങ്ങൾ അയയ്ക്കാൻ അയയ്ക്കൽ ബട്ടൺ ക്ലിക്കുചെയ്യുന്നതിന് പകരം Cmd/Ctrl + Enter കീ അമർത്തുക."
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "ഇന്റർഫേസ്",
+ "NOTE": "നിങ്ങളുടെ Chatwoot ഡാഷ്ബോർഡിന്റെ രൂപവും അനുഭവവും ഇഷ്ടാനുസൃതമാക്കുക.",
+ "FONT_SIZE": {
+ "TITLE": "ഫോണ്ട് വലിപ്പം",
+ "NOTE": "നിങ്ങളുടെ ഇഷ്ടാനുസരണം ഡാഷ്ബോർഡിലെ എഴുത്തിന്റെ വലിപ്പം ക്രമീകരിക്കുക.",
+ "UPDATE_SUCCESS": "നിങ്ങളുടെ ഫോണ്ട് ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "UPDATE_ERROR": "ഫോണ്ട് ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "OPTIONS": {
+ "SMALLER": "ചെറുതായി",
+ "SMALL": "ചെറുത്",
+ "DEFAULT": "ഡിഫോൾട്ട്",
+ "LARGE": "വലുത്",
+ "LARGER": "കൂടുതൽ വലുത്",
+ "EXTRA_LARGE": "അധികം വലുത്"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "പ്രിയപ്പെട്ട ഭാഷ",
+ "NOTE": "നിങ്ങൾ ഉപയോഗിക്കാൻ ആഗ്രഹിക്കുന്ന ഭാഷ തിരഞ്ഞെടുക്കുക.",
+ "UPDATE_SUCCESS": "നിങ്ങളുടെ ഭാഷാ ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "UPDATE_ERROR": "ഭാഷാ ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുമ്പോൾ ഒരു പിശക് സംഭവിച്ചു, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "USE_ACCOUNT_DEFAULT": "അക്കൗണ്ട് ഡിഫോൾട്ട് ഉപയോഗിക്കുക"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "വ്യക്തിഗത സന്ദേശ ഒപ്പ്",
+ "NOTE": "നിങ്ങൾ അയക്കുന്ന ഓരോ സന്ദേശത്തിന്റെയും അവസാനം പ്രത്യക്ഷപ്പെടുന്ന ഒരു വ്യത്യസ്ത സന്ദേശ ഒപ്പ് സൃഷ്ടിക്കുക. ലൈവ്-ചാറ്റ്, ഇമെയിൽ, API ഇൻബോക്സുകളിൽ പിന്തുണയ്ക്കുന്ന ഒരു ഇൻലൈൻ ചിത്രം ഉൾപ്പെടുത്താനും നിങ്ങൾക്ക് കഴിയും.",
+ "BTN_TEXT": "സന്ദേശ ഒപ്പ് സംരക്ഷിക്കുക",
+ "API_ERROR": "ഒപ്പ് സംരക്ഷിക്കാൻ കഴിഞ്ഞില്ല! വീണ്ടും ശ്രമിക്കുക",
+ "API_SUCCESS": "ഒപ്പ് വിജയകരമായി സംരക്ഷിച്ചു",
+ "IMAGE_UPLOAD_ERROR": "ചിത്രം അപ്ലോഡ് ചെയ്യാൻ കഴിഞ്ഞില്ല! വീണ്ടും ശ്രമിക്കുക",
+ "IMAGE_UPLOAD_SUCCESS": "ചിത്രം വിജയകരമായി ചേർത്തു. സിഗ്നേച്ചർ സേവ് ചെയ്യാൻ ദയവായി സേവ് ക്ലിക്ക് ചെയ്യുക",
+ "IMAGE_UPLOAD_SIZE_ERROR": "ചിത്രത്തിന്റെ വലുപ്പം {size}MB-ൽ കുറവായിരിക്കണം",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "സന്ദേശ ഒപ്പ്",
+ "ERROR": "സന്ദേശ ഒപ്പ് ശൂന്യമാകരുത്",
+ "PLACEHOLDER": "ഇവിടെ നിങ്ങളുടെ വ്യക്തിഗത സന്ദേശ ഒപ്പ് ചേർക്കുക."
},
"PASSWORD_SECTION": {
"TITLE": "പാസ്വേഡ്",
"NOTE": "നിങ്ങളുടെ പാസ്വേഡ് അപ്ഡേറ്റ് ചെയ്യുന്നത് ഒന്നിലധികം ഉപകരണങ്ങളിൽ നിങ്ങളുടെ ലോഗിനുകൾ പുനഃസജ്ജീകരിക്കും.",
- "BTN_TEXT": "Change password"
+ "BTN_TEXT": "പാസ്വേഡ് മാറ്റുക"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "സുരക്ഷ",
+ "NOTE": "നിങ്ങളുടെ അക്കൗണ്ടിനായി അധിക സുരക്ഷാ സവിശേഷതകൾ നിയന്ത്രിക്കുക.",
+ "MFA_BUTTON": "രണ്ട് ഘട്ടം സ്ഥിരീകരണം നിയന്ത്രിക്കുക"
},
"ACCESS_TOKEN": {
"TITLE": "ആക്സസ് ടോക്കൺ",
- "NOTE": "നിങ്ങൾ ഒരു എപിഐ അടിസ്ഥാനമാക്കിയുള്ള സംയോജനം നിർമ്മിക്കുകയാണെങ്കിൽ ഈ ടോക്കൺ ഉപയോഗിക്കാൻ കഴിയും"
+ "NOTE": "നിങ്ങൾ ഒരു എപിഐ അടിസ്ഥാനമാക്കിയുള്ള സംയോജനം നിർമ്മിക്കുകയാണെങ്കിൽ ഈ ടോക്കൺ ഉപയോഗിക്കാൻ കഴിയും",
+ "COPY": "പകർത്തുക",
+ "RESET": "പുനഃസജ്ജമാക്കുക",
+ "CONFIRM_RESET": "നിങ്ങൾക്ക് ഉറപ്പാണോ?",
+ "CONFIRM_HINT": "സ്ഥിരീകരിക്കാൻ വീണ്ടും ക്ലിക്ക് ചെയ്യുക",
+ "RESET_SUCCESS": "ആക്സസ് ടോക്കൺ വിജയകരമായി പുനഃസൃഷ്ടിച്ചു",
+ "RESET_ERROR": "ആക്സസ് ടോക്കൺ പുനഃസൃഷ്ടിക്കാൻ കഴിയുന്നില്ല. ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "ഓഡിയോ അലർട്ടുകൾ",
+ "NOTE": "പുതിയ സന്ദേശങ്ങൾക്കും സംഭാഷണങ്ങൾക്കും ഡാഷ്ബോർഡിൽ ഓഡിയോ അലർട്ടുകൾ സജീവമാക്കുക.",
+ "PLAY": "ശബ്ദം പ്ലേ ചെയ്യുക",
+ "ALERT_TYPES": {
"NONE": "ഒന്നുമില്ല",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "MINE": "നിയോഗിച്ചിരിക്കുന്നു",
+ "ALL": "എല്ലാം",
+ "ASSIGNED": "എനിക്ക് നിയോഗിച്ച സംഭാഷണങ്ങൾ",
+ "UNASSIGNED": "നിയോഗിക്കാത്ത സംഭാഷണങ്ങൾ",
+ "NOTME": "മറ്റുള്ളവർക്കു നിയോഗിച്ച തുറന്ന സംഭാഷണങ്ങൾ"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "നിങ്ങൾ ഏതെങ്കിലും ഓപ്ഷനുകൾ തിരഞ്ഞെടുക്കാത്തതിനാൽ, നിങ്ങൾക്ക് യാതൊരു ഓഡിയോ അലർട്ടുകളും ലഭിക്കില്ല.",
+ "ASSIGNED": "നിങ്ങൾക്ക് നിങ്ങൾക്ക് നിയോഗിച്ച സംഭാഷണങ്ങൾക്ക് അലർട്ടുകൾ ലഭിക്കും.",
+ "UNASSIGNED": "നിങ്ങൾക്ക് ഏത് നിയോഗിക്കപ്പെട്ടിട്ടില്ലാത്ത സംഭാഷണങ്ങൾക്കും അലർട്ടുകൾ ലഭിക്കും.",
+ "NOTME": "മറ്റുള്ളവർക്ക് നിയോഗിച്ച സംഭാഷണങ്ങൾക്ക് നിങ്ങൾക്ക് അലർട്ടുകൾ ലഭിക്കും.",
+ "ASSIGNED+UNASSIGNED": "നിങ്ങൾക്ക് നിങ്ങൾക്ക് നിയോഗിച്ച സംഭാഷണങ്ങൾക്കും ഏത് പരിചരിക്കപ്പെടാത്തവയ്ക്കും അലർട്ടുകൾ ലഭിക്കും.",
+ "ASSIGNED+NOTME": "നിങ്ങൾക്ക് നല്കപ്പെട്ടും മറ്റുള്ളവർക്കും നല്കപ്പെട്ട സംഭാഷണങ്ങൾക്ക് അലർട്ടുകൾ ലഭിക്കും, എന്നാൽ നല്കപ്പെടാത്തവയ്ക്ക് ലഭിക്കില്ല.",
+ "NOTME+UNASSIGNED": "നിങ്ങൾക്ക് ശ്രദ്ധിക്കപ്പെടാത്ത സംഭാഷണങ്ങൾക്കും മറ്റുള്ളവർക്കു നല്കപ്പെട്ടവയ്ക്കും അലർട്ടുകൾ ലഭിക്കും.",
+ "ASSIGNED+NOTME+UNASSIGNED": "എല്ലാ സംഭാഷണങ്ങൾക്കും നിങ്ങൾക്ക് അലർട്ടുകൾ ലഭിക്കും."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "സംഭാഷണങ്ങളുടെ അലർട്ട് ഇവന്റുകൾ",
+ "NONE": "ഒന്നുമില്ല",
+ "ASSIGNED": "നിയുക്തമായ സംഭാഷണങ്ങൾ",
+ "ALL_CONVERSATIONS": "എല്ലാ സംഭാഷണങ്ങളും"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "അലർട്ട് ടോൺ:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "അലർട്ട് നിബന്ധനകൾ:",
+ "CONDITION_ONE": "ബ്രൗസർ വിൻഡോ സജീവമല്ലെങ്കിൽ മാത്രമേ ഓഡിയോ അലർട്ടുകൾ അയയ്ക്കൂ",
+ "CONDITION_TWO": "എല്ലാ നിയോഗിച്ച സംഭാഷണങ്ങളും വായിച്ചെടുക്കുന്നത് വരെ ഓരോ 30 സെക്കന്റിലും അലർട്ടുകൾ അയയ്ക്കുക"
+ },
+ "SOUND_PERMISSION_ERROR": "നിങ്ങളുടെ ബ്രൗസറിൽ ഓട്ടോപ്ലേ അപ്രാപ്തമാണ്. അലർട്ടുകൾ സ്വയം കേൾക്കാൻ, നിങ്ങളുടെ ബ്രൗസർ ക്രമീകരണങ്ങളിൽ ശബ്ദാനുമതി സജീവമാക്കുക അല്ലെങ്കിൽ പേജുമായി ഇടപെടുക.",
+ "READ_MORE": "കൂടുതൽ വായിക്കുക"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "ഇമെയിൽ അറിയിപ്പുകൾ",
"NOTE": "നിങ്ങളുടെ ഇമെയിൽ അറിയിപ്പ് മുൻഗണനകൾ ഇവിടെ അപ്ഡേറ്റു ചെയ്യുക",
"CONVERSATION_ASSIGNMENT": "ഒരു സംഭാഷണം എനിക്ക് നിയോഗിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
"CONVERSATION_CREATION": "ഒരു പുതിയ സംഭാഷണം സൃഷ്ടിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "CONVERSATION_MENTION": "നിങ്ങളെ ഒരു സംഭാഷണത്തിൽ പരാമർശിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "നിയമിത സംഭാഷണത്തിൽ പുതിയ സന്ദേശം സൃഷ്ടിക്കുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "പങ്കെടുക്കുന്ന സംഭാഷണത്തിൽ പുതിയ സന്ദേശം ഉണ്ടാകുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "SLA_MISSED_FIRST_RESPONSE": "സംഭാഷണം ആദ്യ പ്രതികരണ SLA നഷ്ടപ്പെട്ടപ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "SLA_MISSED_NEXT_RESPONSE": "സംഭാഷണം അടുത്ത പ്രതികരണ SLA നഷ്ടപ്പെട്ടപ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "SLA_MISSED_RESOLUTION": "സംവാദം പരിഹാര SLA നഷ്ടപ്പെടുമ്പോൾ ഇമെയിൽ അറിയിപ്പുകൾ അയയ്ക്കുക"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "അറിയിപ്പുകളുടെ മുൻഗണനകൾ",
+ "TYPE_TITLE": "അറിയിപ്പ് തരം",
+ "EMAIL": "ഇമെയിൽ",
+ "PUSH": "പുഷ് അറിയിപ്പ്",
+ "TYPES": {
+ "CONVERSATION_CREATED": "ഒരു പുതിയ സംഭാഷണം സൃഷ്ടിക്കപ്പെട്ടു",
+ "CONVERSATION_ASSIGNED": "ഒരു സംഭാഷണം നിങ്ങളെ നിയോഗിച്ചു",
+ "CONVERSATION_MENTION": "ഒരു സംഭാഷണത്തിൽ നിങ്ങളെ പരാമർശിച്ചു",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "നീയോഗിച്ച സംഭാഷണത്തിൽ ഒരു പുതിയ സന്ദേശം സൃഷ്ടിക്കപ്പെട്ടു",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "പങ്കെടുത്തിരിക്കുന്ന സംഭാഷണത്തിൽ ഒരു പുതിയ സന്ദേശം സൃഷ്ടിക്കപ്പെട്ടു",
+ "SLA_MISSED_FIRST_RESPONSE": "ഒരു സംഭാഷണം ആദ്യ പ്രതികരണ SLA നഷ്ടപ്പെടുന്നു",
+ "SLA_MISSED_NEXT_RESPONSE": "ഒരു സംഭാഷണം അടുത്ത പ്രതികരണ SLA നഷ്ടപ്പെടുന്നു",
+ "SLA_MISSED_RESOLUTION": "ഒരു സംഭാഷണം പരിഹാര SLA നഷ്ടപ്പെടുന്നു"
+ },
+ "BROWSER_PERMISSION": "നിങ്ങളുടെ ബ്രൗസറിന് പുഷ് അറിയിപ്പുകൾ സജ്ജമാക്കുക, അതിലൂടെ നിങ്ങൾക്ക് അവ സ്വീകരിക്കാനാകും"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
+ "UPDATE_SUCCESS": "നിങ്ങളുടെ അറിയിപ്പ് മുൻഗണനകൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
"UPDATE_ERROR": "മുൻഗണനകൾ അപ്ഡേറ്റു ചെയ്യുമ്പോൾ ഒരു പിശക് ഉണ്ട്, ദയവായി വീണ്ടും ശ്രമിക്കുക"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "TITLE": "പുഷ് അറിയിപ്പുകൾ",
+ "NOTE": "നിങ്ങളുടെ പുഷ് അറിയിപ്പ് മുൻഗണനകൾ ഇവിടെ അപ്ഡേറ്റ് ചെയ്യുക",
+ "CONVERSATION_ASSIGNMENT": "ഒരു സംഭാഷണം എനിക്ക് നിയോഗിക്കുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "CONVERSATION_CREATION": "ഒരു പുതിയ സംഭാഷണം സൃഷ്ടിക്കുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "CONVERSATION_MENTION": "നിങ്ങളെ ഒരു സംഭാഷണത്തിൽ പരാമർശിക്കുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "നിയമിത സംഭാഷണത്തിൽ പുതിയ സന്ദേശം സൃഷ്ടിക്കുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "പങ്കെടുക്കുന്ന സംഭാഷണത്തിൽ പുതിയ സന്ദേശം ഉണ്ടാകുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "HAS_ENABLED_PUSH": "ഈ ബ്രൗസറിനായി നിങ്ങൾ പുഷ് സജ്ജമാക്കിയിട്ടുണ്ട്.",
+ "REQUEST_PUSH": "പുഷ് അറിയിപ്പുകൾ സജ്ജമാക്കുക",
+ "SLA_MISSED_FIRST_RESPONSE": "സംവാദം ആദ്യ പ്രതികരണ SLA നഷ്ടപ്പെടുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "SLA_MISSED_NEXT_RESPONSE": "സംവാദം അടുത്ത പ്രതികരണ SLA നഷ്ടപ്പെടുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക",
+ "SLA_MISSED_RESOLUTION": "സംവാദം പരിഹാര SLA നഷ്ടപ്പെടുമ്പോൾ പുഷ് അറിയിപ്പുകൾ അയയ്ക്കുക"
},
"PROFILE_IMAGE": {
"LABEL": "പ്രൊഫൈൽ ചിത്രം"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "ലഭ്യത",
- "STATUSES_LIST": [
- "ഓൺലൈൻ",
- "തിരക്ക്",
- "ഓഫ്ലൈൻ"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "STATUS": {
+ "ONLINE": "ഓൺലൈൻ",
+ "BUSY": "തിരക്ക്",
+ "OFFLINE": "ഓഫ്ലൈൻ"
+ },
+ "SET_AVAILABILITY_SUCCESS": "ലഭ്യത വിജയകരമായി സജ്ജമാക്കി",
+ "SET_AVAILABILITY_ERROR": "ലഭ്യത സജ്ജമാക്കാൻ കഴിഞ്ഞില്ല, ദയവായി വീണ്ടും ശ്രമിക്കുക",
+ "IMPERSONATING_ERROR": "ഉപയോക്താവായി നടിച്ച് കൊണ്ടിരിക്കുമ്പോൾ ലഭ്യത മാറ്റാൻ കഴിയില്ല"
},
"EMAIL": {
"LABEL": "നിങ്ങളുടെ ഇമെയിൽ വിലാസം",
@@ -129,9 +212,9 @@
"PLACEHOLDER": "ദയവായി നിങ്ങളുടെ ഇമെയിൽ വിലാസം നൽകുക, ഇത് സംഭാഷണങ്ങളിൽ ദൃശ്യമാകും"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "നിലവിലെ പാസ്വേഡ്",
+ "ERROR": "ദയവായി നിലവിലെ പാസ്വേഡ് നൽകുക",
+ "PLACEHOLDER": "ദയവായി നിലവിലെ പാസ്വേഡ് നൽകുക"
},
"PASSWORD": {
"LABEL": "പുതിയ പാസ്വേഡ്",
@@ -147,47 +230,62 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "മാറ്റം വരുത്തുക",
- "CHANGE_ACCOUNTS": "അക്കൗണ്ട് സ്വിച്ചുചെയ്യുക",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "അക്കൗണ്ട് മാറ്റുക",
+ "SWITCH_ACCOUNT": "അക്കൗണ്ട് മാറ്റുക",
+ "CONTACT_SUPPORT": "സഹായവുമായി ബന്ധപ്പെടുക",
"SELECTOR_SUBTITLE": "ഇനിപ്പറയുന്ന ലിസ്റ്റിൽ നിന്ന് ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കുക",
"PROFILE_SETTINGS": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "ലോഗൗട്ട്"
+ "YEAR_IN_REVIEW": "വാർഷിക അവലോകനം",
+ "KEYBOARD_SHORTCUTS": "കീബോർഡ് ഷോർട്ട്കട്ടുകൾ",
+ "APPEARANCE": "ദൃശ്യ രൂപം മാറ്റുക",
+ "SUPER_ADMIN_CONSOLE": "സൂപ്പർ അഡ്മിൻ കൺസോൾ",
+ "DOCS": "ഡോക്യുമെന്റേഷൻ വായിക്കുക",
+ "CHANGELOG": "ചേഞ്ച്ലോഗ്",
+ "LOGOUT": "ലോഗ് ഔട്ട്"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "ദിവസത്തെ ട്രയൽ ശേഷിക്കുന്നു.",
"TRAIL_BUTTON": "ഇപ്പോൾ വാങ്ങുക",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "DELETED_USER": "നീക്കം ചെയ്ത ഉപയോക്താവ്",
+ "EMAIL_VERIFICATION_PENDING": "നിങ്ങൾ ഇമെയിൽ വിലാസം സ്ഥിരീകരിച്ചിട്ടില്ലെന്ന് തോന്നുന്നു. ദയവായി സ്ഥിരീകരണ ഇമെയിൽ ലഭിച്ചിട്ടുണ്ടോ എന്ന് നിങ്ങളുടെ ഇൻബോക്സ് പരിശോധിക്കുക.",
+ "RESEND_VERIFICATION_MAIL": "സ്ഥിരീകരണ ഇമെയിൽ വീണ്ടും അയയ്ക്കുക",
+ "EMAIL_VERIFICATION_SENT": "പരിശോധന ഇമെയിൽ അയച്ചിട്ടുണ്ട്. ദയവായി നിങ്ങളുടെ ഇൻബോക്സ് പരിശോധിക്കുക.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "അക്കൗണ്ട് സസ്പെൻഡ് ചെയ്തു",
+ "MESSAGE": "നിങ്ങളുടെ അക്കൗണ്ട് സസ്പെൻഡ് ചെയ്തു. കൂടുതൽ വിവരങ്ങൾക്ക് സഹായ സംഘത്തെ സമീപിക്കുക."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "എന്തെങ്കിലും അക്കൗണ്ട് കണ്ടെത്തിയില്ല",
+ "MESSAGE_CLOUD": "നിങ്ങൾ ഇപ്പോൾ ഏതെങ്കിലും അക്കൗണ്ടിന്റെ ഭാഗമല്ല. ഇത് ഒരു പിശക് ആണെന്ന് നിങ്ങൾ കരുതുന്നുവെങ്കിൽ, ദയവായി ഞങ്ങളുടെ പിന്തുണ ടീമിനെ സമീപിക്കുക.",
+ "MESSAGE_SELF_HOSTED": "നിങ്ങൾ ഇപ്പോൾ ഏതെങ്കിലും അക്കൗണ്ടിന്റെ ഭാഗമല്ല. ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ സമീപിക്കുക.",
+ "LOGOUT": "ലോഗ് ഔട്ട് ചെയ്യുക"
}
},
"COMPONENTS": {
"CODE": {
"BUTTON_TEXT": "പകർത്തുക",
- "CODEPEN": "Open in CodePen",
+ "CODEPEN": "CodePen-ൽ തുറക്കുക",
"COPY_SUCCESSFUL": "കോഡ് ക്ലിപ്പ്ബോർഡിലേക്ക് വിജയകരമായി പകർത്തി"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "കൂടുതൽ കാണിക്കുക",
+ "SHOW_LESS": "കുറഞ്ഞത് കാണിക്കുക"
},
"FILE_BUBBLE": {
"DOWNLOAD": "ഡൗൺലോഡ്",
"UPLOADING": "അപ്ലോഡുചെയ്യുന്നു...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "ഈ സ്റ്റോറി ഇനി ലഭ്യമല്ല.",
+ "INSTAGRAM_STORY_REPLY": "നിങ്ങളുടെ സ്റ്റോറിയിൽ മറുപടി നൽകിയിരിക്കുന്നു:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "മാപ്പിൽ കാണുക"
},
"FORM_BUBBLE": {
"SUBMIT": "സമർപ്പിക്കുക"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "ഈ ചിത്രം ഇനി ലഭ്യമല്ല.",
+ "LOADING_FAILED": "ലോഡിംഗ് പരാജയപ്പെട്ടു"
}
},
"CONFIRM_EMAIL": "പരിശോധിച്ചുറപ്പിക്കുന്നു...",
@@ -197,91 +295,323 @@
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
+ "NO_ITEMS": "ഇനങ്ങൾ ഇല്ല",
+ "CURRENTLY_VIEWING_ACCOUNT": "ഇപ്പോൾ കാണുന്നത്:",
+ "SWITCH": "മാറ്റുക",
+ "INBOX_VIEW": "ഇൻബോക്സ് കാഴ്ച",
"CONVERSATIONS": "സംഭാഷണങ്ങൾ",
- "INBOX": "ഇൻബോക്സ്",
- "ALL_CONVERSATIONS": "All Conversations",
+ "INBOX": "എന്റെ ഇൻബോക്സ്",
+ "ALL_CONVERSATIONS": "എല്ലാ സംഭാഷണങ്ങളും",
"MENTIONED_CONVERSATIONS": "പരാമർശിക്കുന്നു",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
+ "PARTICIPATING_CONVERSATIONS": "പങ്കെടുത്തുകൊണ്ടിരിക്കുന്നു",
+ "UNATTENDED_CONVERSATIONS": "പരിചരിക്കപ്പെടാത്തത്",
"REPORTS": "റിപ്പോർട്ടുകൾ",
"SETTINGS": "ക്രമീകരണങ്ങൾ",
"CONTACTS": "കോൺടാക്റ്റുകൾ",
+ "ACTIVE": "സജീവമാണ്",
+ "COMPANIES": "കമ്പനികൾ",
+ "ALL_COMPANIES": "എല്ലാ കമ്പനികളും",
+ "CAPTAIN": "ക്യാപ്റ്റൻ",
+ "CAPTAIN_ASSISTANTS": "അസിസ്റ്റന്റുകൾ",
+ "CAPTAIN_DOCUMENTS": "ഡോക്യുമെന്റുകൾ",
+ "CAPTAIN_RESPONSES": "അടിക്കുറിപ്പുകൾ",
+ "CAPTAIN_TOOLS": "ഉപകരണങ്ങൾ",
+ "CAPTAIN_SCENARIOS": "സന്നിവേശങ്ങൾ",
+ "CAPTAIN_PLAYGROUND": "പ്ലേഗ്രൗണ്ട്",
+ "CAPTAIN_INBOXES": "ഇൻബോക്സുകൾ",
+ "CAPTAIN_SETTINGS": "ക്രമീകരണങ്ങൾ",
"HOME": "ഹോം",
"AGENTS": "ഏജന്റുമാർ",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
+ "AGENT_BOTS": "ബോട്ടുകൾ",
+ "AUDIT_LOGS": "ഓഡിറ്റ് ലോഗുകൾ",
"INBOXES": "ഇൻബോക്സുകൾ",
- "NOTIFICATIONS": "Notifications",
+ "NOTIFICATIONS": "അറിയിപ്പുകൾ",
"CANNED_RESPONSES": "ക്യാൻഡ് പ്രതികരണങ്ങൾ",
"INTEGRATIONS": "സംയോജനങ്ങൾ",
"PROFILE_SETTINGS": "പ്രൊഫൈൽ ക്രമീകരണങ്ങൾ",
"ACCOUNT_SETTINGS": "അക്കൗണ്ട് ക്രമീകരണങ്ങൾ",
- "APPLICATIONS": "Applications",
+ "APPLICATIONS": "അപ്ലിക്കേഷനുകൾ",
"LABELS": "ലേബലുകൾ",
"CUSTOM_ATTRIBUTES": "ഇഷ്ടാനുസൃത ആട്രിബ്യൂട്ടുകൾ",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
+ "AUTOMATION": "ഓട്ടോമേഷൻ",
+ "MACROS": "മാക്രോകൾ",
+ "TEAMS": "ടീമുകൾ",
+ "BILLING": "ബില്ലിംഗ്",
"CUSTOM_VIEWS_FOLDER": "ഫോൾഡറുകൾ",
"CUSTOM_VIEWS_SEGMENTS": "അംശങ്ങൾ",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
+ "ALL_CONTACTS": "എല്ലാ കോൺടാക്റ്റുകളും",
+ "TAGGED_WITH": "ടാഗ് ചെയ്തിരിക്കുന്നത്",
+ "NEW_LABEL": "പുതിയ ലേബൽ",
+ "NEW_TEAM": "പുതിയ ടീം",
+ "NEW_INBOX": "പുതിയ ഇൻബോക്സ്",
"REPORTS_CONVERSATION": "സംഭാഷണങ്ങൾ",
"CSAT": "CSAT",
+ "LIVE_CHAT": "ലൈവ് ചാറ്റ്",
+ "SMS": "എസ്എംഎസ്",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "പ്രചാരണങ്ങൾ",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "ONGOING": "നടന്നു കൊണ്ടിരിക്കുന്നു",
+ "ONE_OFF": "ഒരിക്കൽ മാത്രം",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "ബോട്ട്",
"REPORTS_AGENT": "ഏജന്റുമാർ",
"REPORTS_LABEL": "ലേബലുകൾ",
"REPORTS_INBOX": "ഇൻബോക്സ്",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_TEAM": "ടീം",
+ "AGENT_ASSIGNMENT": "ഏജന്റ് നിയോഗം",
+ "SET_AVAILABILITY_TITLE": "താങ്കളെ ആയി സജ്ജമാക്കുക",
+ "SET_YOUR_AVAILABILITY": "നിങ്ങളുടെ ലഭ്യത സജ്ജമാക്കുക",
"SLA": "SLA",
- "BETA": "Beta",
+ "CUSTOM_ROLES": "സ്വകാര്യ റോളുകൾ",
+ "BETA": "ബീറ്റ",
"REPORTS_OVERVIEW": "അവലോകനം",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "നിങ്ങളുടെ ഇൻബോക്സ് കണക്ഷൻ കാലഹരണപ്പെട്ടു, ദയവായി വീണ്ടും കണക്ട് ചെയ്യുക\nസന്ദേശങ്ങൾ സ്വീകരിക്കുകയും അയയ്ക്കുകയും തുടരാൻ",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "ക്രമീകരണങ്ങൾ",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "സഹായ കേന്ദ്രം",
+ "ARTICLES": "ലേഖനങ്ങൾ",
+ "CATEGORIES": "വിഭാഗങ്ങൾ",
+ "LOCALES": "പ്രാദേശികങ്ങൾ",
+ "SETTINGS": "ക്രമീകരണങ്ങൾ"
},
+ "CHANNELS": "ചാനലുകൾ",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "സ്വയം ഓഫ്ലൈൻ ആയി അടയാളപ്പെടുത്തുക",
+ "INFO_TEXT": "നിങ്ങൾ ആപ്പ് അല്ലെങ്കിൽ ഡാഷ്ബോർഡ് ഉപയോഗിക്കാത്തപ്പോൾ സിസ്റ്റം സ്വയം നിങ്ങളെ ഓഫ്ലൈൻ ആയി അടയാളപ്പെടുത്തട്ടെ.",
+ "INFO_SHORT": "ആപ്പ് ഉപയോഗിക്കാത്തപ്പോൾ സ്വയം ഓട്ടോമാറ്റിക്കായി ഓഫ്ലൈൻ ആയി അടയാളപ്പെടുത്തുക."
},
- "DOCS": "Read docs"
+ "DOCS": "ഡോക്യുമെന്റുകൾ വായിക്കുക",
+ "SECURITY": "സുരക്ഷ",
+ "CAPTAIN_AI": "ക്യാപ്റ്റൻ",
+ "CONVERSATION_WORKFLOW": "സംവാദ പ്രവാഹം"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "ക്യാപ്റ്റൻ ക്രമീകരണങ്ങൾ",
+ "DESCRIPTION": "ക്യാപ്റ്റനായി നിങ്ങളുടെ AI മോഡലുകളും ഫീച്ചറുകളും ക്രമീകരിക്കുക. ക്യാപ്റ്റൻ ക്രെഡിറ്റ് അടിസ്ഥാനത്തിലുള്ള ബില്ലിംഗ് പിന്തുടരുന്നു, തിരഞ്ഞെടുക്കപ്പെട്ട മോഡലിന്റെ അടിസ്ഥാനത്തിൽ ക്യാപ്റ്റൻ എടുക്കുന്ന ഓരോ പ്രവർത്തനത്തിനും നിങ്ങൾക്ക് ക്രെഡിറ്റുകൾ ചാർജ് ചെയ്യപ്പെടും.",
+ "LOADING": "ക്യാപ്റ്റൻ കോൺഫിഗറേഷൻ ലോഡ് ചെയ്യുന്നു...",
+ "LINK_TEXT": "ക്യാപ്റ്റൻ ക്രെഡിറ്റുകൾക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "NOT_ENABLED": "നിങ്ങളുടെ അക്കൗണ്ടിന് ക്യാപ്റ്റൻ സജ്ജമാക്കിയിട്ടില്ല. ക്യാപ്റ്റൻ ഫീച്ചറുകൾ ഉപയോഗിക്കാൻ ദയവായി നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "MODEL_CONFIG": {
+ "TITLE": "മോഡൽ കോൺഫിഗറേഷൻ",
+ "DESCRIPTION": "വിവിധ ഫീച്ചറുകൾക്കായി AI മോഡലുകൾ തിരഞ്ഞെടുക്കുക.",
+ "SELECT_MODEL": "മോഡൽ തിരഞ്ഞെടുക്കുക",
+ "CREDITS_PER_MESSAGE": "{credits} ക്രെഡിറ്റ്/സന്ദേശം",
+ "COMING_SOON": "വളരെ ഉടൻ",
+ "EDITOR": {
+ "TITLE": "എഡിറ്റർ സവിശേഷതകൾ",
+ "DESCRIPTION": "നിങ്ങളുടെ സന്ദേശ എഡിറ്ററിൽ സ്മാർട്ട് കോമ്പോസ്, വ്യാകരണ തിരുത്തലുകൾ, ടോൺ ക്രമീകരണങ്ങൾ, ഉള്ളടക്ക മെച്ചപ്പെടുത്തൽ എന്നിവയ്ക്ക് ശക്തി നൽകുന്നു."
+ },
+ "ASSISTANT": {
+ "TITLE": "അസിസ്റ്റന്റ്",
+ "DESCRIPTION": "ഉപഭോക്തൃ ഇടപെടലുകൾക്കായി സ്വയംപ്രവർത്തിക്കുന്ന പ്രതികരണങ്ങൾ, സംഭാഷണ സംഗ്രഹങ്ങൾ, ബുദ്ധിമുട്ടുള്ള മറുപടി നിർദ്ദേശങ്ങൾ എന്നിവ കൈകാര്യം ചെയ്യുന്നു."
+ },
+ "COPILOT": {
+ "TITLE": "കോ-പൈലറ്റ്",
+ "DESCRIPTION": "സംഭാഷണങ്ങളുടെ സമയത്ത് യാഥാർത്ഥ്യപരമായ സാന്ദർഭിക നിർദ്ദേശങ്ങൾ, അറിവ് അടിസ്ഥാന ശുപാർശകൾ, പ്രോആക്റ്റീവ് ഉൾക്കാഴ്ചകൾ നൽകുന്നു."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "സവിശേഷതകൾ",
+ "DESCRIPTION": "AI-ശക്തിയുള്ള ഫീച്ചറുകൾ സജീവമാക്കുക അല്ലെങ്കിൽ അപ്രാപ്തമാക്കുക.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "ഓഡിയോ ട്രാൻസ്ക്രിപ്ഷൻ",
+ "DESCRIPTION": "വോയ്സ് സന്ദേശങ്ങളും കോൾ റെക്കോർഡിംഗുകളും സ്വയം തിരയാവുന്ന ടെക്സ്റ്റ് ട്രാൻസ്ക്രിപ്റ്റുകളായി മാറ്റുക."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "ഹെൽപ്പ് സെന്റർ സെർച്ച് ഇൻഡക്സിംഗ്",
+ "DESCRIPTION": "നിങ്ങളുടെ ഹെൽപ്പ് സെന്റർ ലേഖനങ്ങളിൽ സാന്ദർഭിക ബോധമുള്ള AI ഉപയോഗിച്ച് തിരയുക."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "ലേബൽ നിർദ്ദേശം",
+ "DESCRIPTION": "സംവാദങ്ങളുടെ ഉള്ളടക്ക വിശകലനവും സാഹചര്യവും അടിസ്ഥാനമാക്കി സ്വയംപ്രേരിതമായി അനുയോജ്യമായ ലേബലുകളും ടാഗുകളും നിർദ്ദേശിക്കുക.",
+ "MODEL_TITLE": "ലേബൽ നിർദ്ദേശ മോഡൽ",
+ "MODEL_DESCRIPTION": "സംവാദങ്ങൾ വിശകലനം ചെയ്ത് അനുയോജ്യമായ ലേബലുകൾ നിർദ്ദേശിക്കാൻ ഉപയോഗിക്കാനുള്ള AI മോഡൽ തിരഞ്ഞെടുക്കുക"
+ }
+ },
+ "API": {
+ "SUCCESS": "ക്യാപ്റ്റൻ ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു.",
+ "ERROR": "Captain ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "ബില്ലിംഗ്",
+ "DESCRIPTION": "നിങ്ങളുടെ സബ്സ്ക്രിപ്ഷൻ ഇവിടെ നിയന്ത്രിക്കുക, നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക, നിങ്ങളുടെ ടീമിനായി കൂടുതൽ നേടുക.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "നിലവിലെ പ്ലാൻ",
+ "PLAN_NOTE": "നിങ്ങൾ നിലവിൽ **{plan}** പ്ലാനിൽ **{quantity}** ലൈസൻസുകളോടെ സബ്സ്ക്രൈബ് ചെയ്തിരിക്കുന്നു",
+ "SEAT_COUNT": "സീറ്റുകളുടെ എണ്ണം",
+ "RENEWS_ON": "പുതുക്കുന്നത്"
},
+ "VIEW_PRICING": "വിലകൾ കാണുക",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "നിങ്ങളുടെ സബ്സ്ക്രിപ്ഷൻ നിയന്ത്രിക്കുക",
+ "DESCRIPTION": "നിങ്ങളുടെ മുൻ ഇൻവോയിസുകൾ കാണുക, ബില്ലിംഗ് വിശദാംശങ്ങൾ തിരുത്തുക, അല്ലെങ്കിൽ സബ്സ്ക്രിപ്ഷൻ റദ്ദാക്കുക.",
+ "BUTTON_TXT": "ബില്ലിംഗ് പോർട്ടലിലേക്ക് പോകുക"
+ },
+ "CAPTAIN": {
+ "TITLE": "ക്യാപ്റ്റൻ",
+ "DESCRIPTION": "ക്യാപ്റ്റൻ AI-യുടെ ഉപയോഗവും ക്രെഡിറ്റുകളും നിയന്ത്രിക്കുക.",
+ "BUTTON_TXT": "കൂടുതൽ ക്രെഡിറ്റുകൾ വാങ്ങുക",
+ "DOCUMENTS": "ഡോക്യുമെന്റുകൾ",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain സൗജന്യ പ്ലാനിൽ ലഭ്യമല്ല, അസിസ്റ്റന്റുകൾ, കോപൈലറ്റ് എന്നിവയ്ക്ക് ആക്സസ് നേടാൻ ഇപ്പോൾ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "REFRESH_CREDITS": "പുതുക്കുക"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "സഹായം വേണോ?",
+ "DESCRIPTION": "ബില്ലിംഗ് സംബന്ധിച്ച പ്രശ്നങ്ങളുണ്ടോ? ഞങ്ങൾ സഹായത്തിനായി ഇവിടെ ഉണ്ടാകുന്നു.",
"BUTTON_TXT": "ഞങ്ങളുമായി ചാറ്റുചെയ്യുക"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "നിങ്ങളുടെ ബില്ലിംഗ് അക്കൗണ്ട് ക്രമീകരിക്കപ്പെടുകയാണ്. ദയവായി പേജ് റിഫ്രഷ് ചെയ്ത് വീണ്ടും ശ്രമിക്കുക.",
+ "TOPUP": {
+ "BUY_CREDITS": "കൂടുതൽ ക്രെഡിറ്റുകൾ വാങ്ങുക",
+ "MODAL_TITLE": "AI ക്രെഡിറ്റുകൾ വാങ്ങുക",
+ "MODAL_DESCRIPTION": "Captain AI-ക്കായി അധിക ക്രെഡിറ്റുകൾ വാങ്ങുക.",
+ "CREDITS": "ക്രെഡിറ്റുകൾ",
+ "ONE_TIME": "ഒരിക്കൽ മാത്രം",
+ "POPULAR": "ഏറ്റവും പ്രശസ്തം",
+ "NOTE_TITLE": "കുറിപ്പ്:",
+ "NOTE_DESCRIPTION": "ക്രെഡിറ്റുകൾ ഉടൻ ചേർക്കപ്പെടുകയും 6 മാസത്തിനുള്ളിൽ കാലഹരണപ്പെടുകയും ചെയ്യും. ക്രെഡിറ്റുകൾ ഉപയോഗിക്കാൻ സജീവ സബ്സ്ക്രിപ്ഷൻ ആവശ്യമാണ്. വാങ്ങിയ ക്രെഡിറ്റുകൾ നിങ്ങളുടെ മാസാന്ത പ്ലാൻ ക്രെഡിറ്റുകൾ ഉപയോഗിച്ചതിന് ശേഷം ഉപയോക്താവാകും.",
+ "CANCEL": "റദ്ദാക്കുക",
+ "PURCHASE": "ക്രെഡിറ്റുകൾ വാങ്ങുക",
+ "LOADING": "ഓപ്ഷനുകൾ ലോഡ് ചെയ്യുന്നു...",
+ "FETCH_ERROR": "ക്രെഡിറ്റ് ഓപ്ഷനുകൾ ലോഡ് ചെയ്യാൻ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "PURCHASE_ERROR": "വാങ്ങൽ പ്രക്രിയ പരാജയപ്പെട്ടു. ദയവായി വീണ്ടും ശ്രമിക്കുക.",
+ "PURCHASE_SUCCESS": "നിങ്ങളുടെ അക്കൗണ്ടിലേക്ക് {credits} ക്രെഡിറ്റുകൾ വിജയകരമായി ചേർത്തു",
+ "CONFIRM": {
+ "TITLE": "വാങ്ങൽ സ്ഥിരീകരിക്കുക",
+ "DESCRIPTION": "നിങ്ങൾ {amount} വിലയ്ക്ക് {credits} ക്രെഡിറ്റുകൾ വാങ്ങാൻ പോകുന്നു.",
+ "INSTANT_DEDUCTION_NOTE": "സ്ഥിരപ്പെടുത്തിയ കാർഡിൽ സ്ഥിരീകരണത്തിന് ശേഷം ഉടൻ പണം വെട്ടിച്ചേർക്കും.",
+ "GO_BACK": "പിന്നിലേക്ക് പോകുക",
+ "CONFIRM_PURCHASE": "വാങ്ങൽ സ്ഥിരീകരിക്കുക"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "സുരക്ഷ",
+ "DESCRIPTION": "നിങ്ങളുടെ അക്കൗണ്ട് സുരക്ഷാ ക്രമീകരണങ്ങൾ നിയന്ത്രിക്കുക.",
+ "LINK_TEXT": "SAML SSOയെക്കുറിച്ച് കൂടുതൽ അറിയുക",
+ "SAML_DISABLED_MESSAGE": "SAML SSO ഇപ്പോൾ പ്രവർത്തനരഹിതമാണ്. ഈ സവിശേഷത സജീവമാക്കാൻ ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ ബന്ധപ്പെടുക.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "നിങ്ങളുടെ അക്കൗണ്ടിനായി SAML സിംഗിൾ സൈൻ-ഓൺ ക്രമീകരിക്കുക. ഉപയോക്താക്കൾ ഇമെയിൽ/പാസ്വേഡ് ഉപയോഗിക്കുന്നതിന് പകരം നിങ്ങളുടെ ഐഡന്റിറ്റി പ്രൊവൈഡറിലൂടെ പ്രാമാണീകരിക്കും.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "അസർഷൻ കൺസ്യൂമർ സർവീസ് URL - SAML പ്രതികരണങ്ങളുടെ ലക്ഷ്യസ്ഥാനമായി നിങ്ങളുടെ IdP-യിൽ ഈ URL ക്രമീകരിക്കുക"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "SAML പ്രാമാണീകരണ അഭ്യർത്ഥനകൾ അയയ്ക്കപ്പെടുന്ന URL",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "PEM ഫോർമാറ്റിലുള്ള സൈൻ ചെയ്യൽ സർട്ടിഫിക്കറ്റ്",
+ "HELP": "SAML പ്രതികരണങ്ങൾ പരിശോധിക്കാൻ നിങ്ങളുടെ ഐഡന്റിറ്റി പ്രൊവൈഡറിന്റെ പബ്ലിക് സർട്ടിഫിക്കറ്റ്",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "ഫിംഗർപ്രിന്റ്",
+ "TOOLTIP": "സർട്ടിഫിക്കറ്റിന്റെ SHA-1 ഫിംഗർപ്രിന്റ് - നിങ്ങളുടെ IdP കോൺഫിഗറേഷനിൽ സർട്ടിഫിക്കറ്റ് സ്ഥിരീകരിക്കാൻ ഇത് ഉപയോഗിക്കുക"
+ },
+ "COPY_SUCCESS": "കോഡ് ക്ലിപ്പ്ബോർഡിലേക്ക് വിജയകരമായി പകർത്തി",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP എന്റിറ്റി ഐഡി",
+ "HELP": "സേവനദാതാവായി ഈ ആപ്ലിക്കേഷനു വേണ്ടി യുണീക്ക് ഐഡന്റിഫയർ (സ്വയം സൃഷ്ടിച്ചത്).",
+ "TOOLTIP": "സേവനദാതാവായി Chatwoot ന്റെ യുണീക്ക് ഐഡന്റിഫയർ - നിങ്ങളുടെ IdP ക്രമീകരണങ്ങളിൽ ഇത് ക്രമീകരിക്കുക"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "ഐഡന്റിറ്റി പ്രൊവൈഡർ എന്റിറ്റി ഐഡി",
+ "HELP": "നിങ്ങളുടെ ഐഡന്റിറ്റി പ്രൊവൈഡറിനുള്ള ഏകത്വ ഐഡന്റിഫയർ (സാധാരണയായി IdP കോൺഫിഗറേഷനിൽ കാണപ്പെടുന്നു)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യുക",
+ "API": {
+ "SUCCESS": "SAML ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR": "SAML ക്രമീകരണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു",
+ "ERROR_LOADING": "SAML ക്രമീകരണങ്ങൾ ലോഡ് ചെയ്യാൻ പരാജയപ്പെട്ടു",
+ "DISABLED": "SAML ക്രമീകരണങ്ങൾ വിജയകരമായി അപ്രാപ്തമാക്കി"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, ഐഡന്റിറ്റി പ്രൊവൈഡർ Entity ID, സർട്ടിഫിക്കറ്റ് എന്നിവ ആവശ്യമായ ഫീൽഡുകളാണ്",
+ "SSO_URL_ERROR": "ദയവായി സാധുവായ SSO URL നൽകുക",
+ "CERTIFICATE_ERROR": "സർട്ടിഫിക്കറ്റ് ആവശ്യമാണ്",
+ "IDP_ENTITY_ID_ERROR": "ഐഡന്റിറ്റി പ്രൊവൈഡർ എന്റിറ്റി ഐഡി ആവശ്യമാണ്"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO ഫീച്ചർ എന്റർപ്രൈസ് പ്ലാനുകളിൽ മാത്രമേ ലഭ്യമാകൂ.",
+ "UPGRADE_PROMPT": "SAML സിംഗിൾ സൈൻ-ഓൺ ഉൾപ്പെടെയുള്ള മറ്റ് ആധുനിക സുരക്ഷാ ഫീച്ചറുകൾ ഉപയോഗിക്കാൻ എന്റർപ്രൈസ് പ്ലാനിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "ASK_ADMIN": "അപ്ഗ്രേഡിനായി ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ സമീപിക്കുക."
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO സജീവമാക്കാൻ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "AVAILABLE_ON": "SAML SSO ഫീച്ചർ എന്റർപ്രൈസ് പ്ലാനുകളിൽ മാത്രമേ ലഭ്യമാകൂ.",
+ "UPGRADE_PROMPT": "SAML സിംഗിൾ സൈൻ-ഓൺ ഉൾപ്പെടെ മറ്റ് പുരോഗമന ഫീച്ചറുകൾ ലഭിക്കാൻ നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "UPGRADE_NOW": "ഇപ്പോൾ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "CANCEL_ANYTIME": "നിങ്ങൾക്ക് എപ്പോഴും നിങ്ങളുടെ പ്ലാൻ മാറ്റാനും റദ്ദാക്കാനും കഴിയും"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML ഗുണലക്ഷണ ക്രമീകരണം",
+ "DESCRIPTION": "താഴെപ്പറയുന്ന ഗുണലക്ഷണ മാപ്പിംഗ് നിങ്ങളുടെ ഐഡന്റിറ്റി പ്രൊവൈഡറിൽ ക്രമീകരിക്കണം"
+ },
+ "INFO_SECTION": {
+ "TITLE": "സർവീസ് പ്രൊവൈഡർ വിവരങ്ങൾ",
+ "TOOLTIP": "ഈ മൂല്യങ്ങൾ പകർത്തി നിങ്ങളുടെ ഐഡന്റിറ്റി പ്രൊവൈഡറിൽ ക്രമീകരിച്ച് SAML ബന്ധം സ്ഥാപിക്കുക"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "സംവാദ പ്രവാഹങ്ങൾ",
+ "DESCRIPTION": "സംവാദ പരിഹാരത്തിനായി നിയമങ്ങളും ആവശ്യമായ ഫീൽഡുകളും ക്രമീകരിക്കുക."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "പരിഹാരത്തിന് ആവശ്യമായ ഗുണങ്ങൾ",
+ "DESCRIPTION": "ഒരു സംഭാഷണം പരിഹരിക്കുമ്പോൾ, ഏജന്റുകൾക്ക് ഈ ഗുണലക്ഷണങ്ങൾ പൂരിപ്പിക്കാൻ പ്രേരിപ്പിക്കപ്പെടും, അവർ ഇതുവരെ പൂരിപ്പിച്ചിട്ടില്ലെങ്കിൽ.",
+ "NO_ATTRIBUTES": "ഇപ്പോൾ വരെ ഗുണലക്ഷണങ്ങൾ ചേർത്തിട്ടില്ല",
+ "ADD": {
+ "TITLE": "ഗുണലക്ഷണങ്ങൾ ചേർക്കുക",
+ "SEARCH_PLACEHOLDER": "ഗുണലക്ഷണങ്ങൾ തിരയുക"
+ },
+ "SAVE": {
+ "SUCCESS": "ആവശ്യമായ ഗുണലക്ഷണങ്ങൾ അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR": "ആവശ്യമായ ഗുണങ്ങൾ അപ്ഡേറ്റ് ചെയ്യാൻ കഴിഞ്ഞില്ല, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "MODAL": {
+ "TITLE": "സംഭാഷണം പരിഹരിക്കുക",
+ "DESCRIPTION": "ഈ സംഭാഷണം പരിഹരിക്കുന്നതിന് മുമ്പ് താഴെ കാണുന്ന കസ്റ്റം ഗുണങ്ങൾ പൂരിപ്പിക്കുക",
+ "ACTIONS": {
+ "RESOLVE": "സംഭാഷണം പരിഹരിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "ഒരു കുറിപ്പ് എഴുതുക...",
+ "NUMBER": "ഒരു നമ്പർ നൽകുക",
+ "LINK": "ഒരു ലിങ്ക് ചേർക്കുക",
+ "DATE": "ഒരു തീയതി തിരഞ്ഞെടുക്കുക",
+ "LIST": "ഒരു ഓപ്ഷൻ തിരഞ്ഞെടുക്കുക"
+ },
+ "CHECKBOX": {
+ "YES": "അതെ",
+ "NO": "ഇല്ല"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "ആവശ്യമായ ഗുണങ്ങൾ ഉപയോഗിക്കാൻ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "AVAILABLE_ON": "ആവശ്യമായ സംഭാഷണ ഗുണങ്ങൾ ബിസിനസ്സ്, എന്റർപ്രൈസ് പ്ലാനുകളിൽ ലഭ്യമാണ്.",
+ "UPGRADE_PROMPT": "സംഭാഷണം പരിഹരിക്കുന്നതിന് മുമ്പ് ഏജന്റുമാരെ ആവശ്യമായ ഗുണങ്ങൾ പൂരിപ്പിക്കാൻ പ്രേരിപ്പിക്കാൻ നിങ്ങളുടെ പ്ലാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "UPGRADE_NOW": "ഇപ്പോൾ അപ്ഗ്രേഡ് ചെയ്യുക",
+ "CANCEL_ANYTIME": "നിങ്ങളുടെ പ്ലാൻ എപ്പോഴും മാറ്റുകയോ റദ്ദാക്കുകയോ ചെയ്യാം"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "ആവശ്യമായ സംഭാഷണ ഗുണങ്ങൾ പണമടയ്ക്കുന്ന പ്ലാനുകളിൽ ലഭ്യമാണ്.",
+ "UPGRADE_PROMPT": "സംഭാഷണം തീരുന്നതിന് മുമ്പ് ആവശ്യമായ ഗുണങ്ങൾ നിർബന്ധമാക്കാൻ പണമടയ്ക്കുന്ന പ്ലാനിലേക്ക് അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "ASK_ADMIN": "അപ്ഗ്രേഡിനായി ദയവായി നിങ്ങളുടെ അഡ്മിനിസ്ട്രേറ്ററെ സമീപിക്കുക."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
+ "NO_ACCOUNT_WARNING": "അയ്യോ! ഞങ്ങൾക്ക് ഏതെങ്കിലും Chatwoot അക്കൗണ്ടുകൾ കണ്ടെത്താനായില്ല. തുടരാൻ ദയവായി ഒരു പുതിയ അക്കൗണ്ട് സൃഷ്ടിക്കുക.",
"NEW_ACCOUNT": "പുതിയ അക്കൗണ്ട്",
"SELECTOR_SUBTITLE": "അക്കൗണ്ട് ഒരു പുതിയ അക്കൗണ്ട് വിജയകരമായി സൃഷ്ടിക്കുക",
"API": {
@@ -294,32 +624,300 @@
"LABEL": "കമ്പനിയുടെ പേര്",
"PLACEHOLDER": "പുണ്ണ്യാളൻ അഗർബത്തീസ്"
},
- "SUBMIT": "സമർപ്പിക്കുക"
+ "SUBMIT": "സമർപ്പിക്കുക",
+ "CANCEL": "റദ്ദാക്കുക"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "എല്ലാ ഷോർട്ട്കട്ടുകളും കാണുക",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "സംഭാഷണം തുറക്കുക",
+ "RESOLVE_AND_NEXT": "പരിഹരിച്ച് അടുത്തതിലേക്ക് നീങ്ങുക",
+ "NAVIGATE_DROPDOWN": "ഡ്രോപ്പ്ഡൗൺ ഇനങ്ങളിൽ നാവിഗേറ്റ് ചെയ്യുക",
+ "RESOLVE_CONVERSATION": "സംവാദം പരിഹരിക്കുക",
+ "GO_TO_CONVERSATION_DASHBOARD": "സംവാദ ഡാഷ്ബോർഡിലേക്ക് പോകുക",
+ "ADD_ATTACHMENT": "അറ്റാച്ച്മെന്റ് ചേർക്കുക",
+ "GO_TO_CONTACTS_DASHBOARD": "Contacts ഡാഷ്ബോർഡിലേക്ക് പോകുക",
+ "TOGGLE_SIDEBAR": "സൈഡ്ബാർ ടോഗിൾ ചെയ്യുക",
+ "GO_TO_REPORTS_SIDEBAR": "റിപ്പോർട്ടുകൾ സൈഡ്ബാറിലേക്ക് പോകുക",
+ "MOVE_TO_NEXT_TAB": "സംവാദ പട്ടികയിലെ അടുത്ത ടാബിലേക്ക് നീങ്ങുക",
+ "GO_TO_SETTINGS": "സെറ്റിംഗ്സിലേക്ക് പോകുക",
+ "SWITCH_TO_PRIVATE_NOTE": "സ്വകാര്യ കുറിപ്പിലേക്ക് മാറുക",
+ "SWITCH_TO_REPLY": "പ്രതികരണത്തിലേക്ക് മാറുക",
+ "TOGGLE_SNOOZE_DROPDOWN": "സ്നൂസ് ഡ്രോപ്പ്ഡൗൺ ടോഗിൾ ചെയ്യുക"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "ഏജന്റ് നിയോഗം",
+ "DESCRIPTION": "ഇൻബോക്സുകളും ഏജന്റുമാരുടെയും ആവശ്യങ്ങൾ അടിസ്ഥാനമാക്കി ജോലി ഭാരം ഫലപ്രദമായി നിയന്ത്രിക്കുകയും സംഭാഷണങ്ങൾ റൂട്ടുചെയ്യുകയും ചെയ്യാൻ നയം നിർവചിക്കുക. കൂടുതൽ അറിയാൻ ഇവിടെ ക്ലിക്ക് ചെയ്യുക"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "നിയുക്തി നയം",
+ "DESCRIPTION": "ഇൻബോക്സുകളിൽ സംഭാഷണങ്ങൾ എങ്ങനെ നിയുക്തമാക്കപ്പെടുന്നു എന്ന് നിയന്ത്രിക്കുക.",
+ "FEATURES": [
+ "സംഭാഷണങ്ങളുടെ അടിസ്ഥാനത്തിൽ സമമായി അല്ലെങ്കിൽ ലഭ്യമായ ശേഷിയനുസരിച്ച് നിയുക്തമാക്കുക",
+ "ഏതെങ്കിലും ഏജന്റിനെ അധികഭാരം നൽകാതിരിക്കാൻ നീതിപൂർവ്വമായ വിതരണം നിയമങ്ങൾ ചേർക്കുക",
+ "ഒരു നയത്തിലേക്ക് ഇൻബോക്സുകൾ ചേർക്കുക - ഓരോ ഇൻബോക്സിനും ഒരു നയം"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "ഏജന്റ് ശേഷി നയം",
+ "DESCRIPTION": "ഏജന്റുമാർക്ക് ജോലി ഭാരം നിയന്ത്രിക്കുക.",
+ "FEATURES": [
+ "ഇൻബോക്സിന് പരമാവധി സംഭാഷണങ്ങൾ നിർവചിക്കുക",
+ "ലേബലുകളും സമയവും അടിസ്ഥാനമാക്കി വ്യത്യാസങ്ങൾ സൃഷ്ടിക്കുക",
+ "ഒരു നയത്തിലേക്ക് ഏജന്റുമാർ ചേർക്കുക - ഓരോ ഏജന്റിനും ഒരു നയം"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "നിയുക്തി നയം",
+ "CREATE_POLICY": "പുതിയ നയം"
+ },
+ "CARD": {
+ "ORDER": "ക്രമം",
+ "PRIORITY": "പ്രാധാന്യം",
+ "ACTIVE": "സജീവമാണ്",
+ "INACTIVE": "സജീവമല്ല",
+ "POPOVER": "ചേർത്ത ഇൻബോക്സുകൾ",
+ "EDIT": "എഡിറ്റുചെയ്യുക"
+ },
+ "NO_RECORDS_FOUND": "അസൈൻമെന്റ് നയങ്ങൾ കണ്ടെത്തിയില്ല"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "അസൈൻമെന്റ് നയം സൃഷ്ടിക്കുക"
+ },
+ "CREATE_BUTTON": "പോളിസി സൃഷ്ടിക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "അസൈൻമെന്റ് പോളിസി വിജയകരമായി സൃഷ്ടിച്ചു",
+ "ERROR_MESSAGE": "അസൈൻമെന്റ് പോളിസി സൃഷ്ടിക്കാൻ പരാജയപ്പെട്ടു",
+ "INBOX_LINKED": "ഇൻബോക്സ് നയം ബന്ധിപ്പിച്ചു"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "അസൈൻമെന്റ് പോളിസി തിരുത്തുക"
+ },
+ "EDIT_BUTTON": "പോളിസി അപ്ഡേറ്റ് ചെയ്യുക",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "ഇൻബോക്സ് ചേർക്കുക",
+ "DESCRIPTION": "{inboxName} ഇൻബോക്സ് മറ്റൊരു നയവുമായി ഇതിനകം ബന്ധിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾക്ക് ഇത് ഈ നയവുമായി ബന്ധിപ്പിക്കാൻ ഉറപ്പാണോ? ഇത് മറ്റൊരു നയത്തിൽ നിന്ന് ബന്ധമൊഴിയിക്കും.",
+ "CONFIRM_BUTTON_LABEL": "തുടരുക",
+ "CANCEL_BUTTON_LABEL": "റദ്ദാക്കുക"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "ഇൻബോക്സ് നയവുമായി ബന്ധിപ്പിക്കുക",
+ "DESCRIPTION": "ഈ ഇൻബോക്സ് അസൈൻമെന്റ് നയവുമായി ബന്ധിപ്പിക്കണോ?",
+ "LINK_BUTTON": "ഇൻബോക്സ് ബന്ധിപ്പിക്കുക",
+ "CANCEL_BUTTON": "വിടുക"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "അസൈൻമെന്റ് നയം വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "അസൈൻമെന്റ് നയം അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "പോളിസിയിലേക്ക് ഇൻബോക്സ് വിജയകരമായി ചേർത്തു",
+ "ERROR_MESSAGE": "പോളിസിയിലേക്ക് ഇൻബോക്സ് ചേർക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "പോളിസിയിൽ നിന്ന് ഇൻബോക്സ് വിജയകരമായി നീക്കം ചെയ്തു",
+ "ERROR_MESSAGE": "പോളിസിയിൽ നിന്ന് ഇൻബോക്സ് നീക്കം ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "പോളിസി പേര്:",
+ "PLACEHOLDER": "പോളിസി പേര് നൽകുക"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം:",
+ "PLACEHOLDER": "വിവരണം നൽകുക"
+ },
+ "STATUS": {
+ "LABEL": "സ്ഥിതി:",
+ "PLACEHOLDER": "സ്ഥിതി തിരഞ്ഞെടുക്കുക",
+ "ACTIVE": "പോളിസി സജീവമാണ്",
+ "INACTIVE": "പോളിസി സജീവമല്ല"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "നിയോഗം ക്രമം",
+ "ROUND_ROBIN": {
+ "LABEL": "റൗണ്ട് റോബിൻ",
+ "DESCRIPTION": "ഏജന്റുമാരിൽ സമമായി സംഭാഷണങ്ങൾ നിയോഗിക്കുക."
+ },
+ "BALANCED": {
+ "LABEL": "സമതുലിതം",
+ "DESCRIPTION": "ലഭ്യമായ ശേഷിയുടെ അടിസ്ഥാനത്തിൽ സംഭാഷണങ്ങൾ നിയോഗിക്കുക.",
+ "PREMIUM_MESSAGE": "സമതുലിതമായ നിയോഗവും ഏജന്റ് ശേഷി മാനേജ്മെന്റും ലഭിക്കാൻ അപ്ഗ്രേഡ് ചെയ്യുക.",
+ "PREMIUM_BADGE": "പ്രീമിയം"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "നിയോഗ മുൻഗണന",
+ "EARLIEST_CREATED": {
+ "LABEL": "ആദ്യമായി സൃഷ്ടിച്ചത്",
+ "DESCRIPTION": "ആദ്യമായി സൃഷ്ടിച്ച സംഭാഷണം ആദ്യം നിയോഗിക്കപ്പെടും."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "ഏറ്റവും നീണ്ട സമയം കാത്തിരിക്കുന്ന",
+ "DESCRIPTION": "ഏറ്റവും നീണ്ട സമയം കാത്തിരിക്കുന്ന സംഭാഷണം ആദ്യം നിയോഗിക്കപ്പെടും."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "ന്യായമായ വിതരണം നയം",
+ "DESCRIPTION": "ഏജന്റുമാരെ അധികം ഭാരമുള്ളതാക്കാതിരിക്കാൻ ഒരു സമയപരിധിയിൽ ഓരോ ഏജന്റിനും നിയോഗിക്കാവുന്ന പരമാവധി സംഭാഷണങ്ങളുടെ എണ്ണം സജ്ജമാക്കുക. ഈ ആവശ്യമായ ഫീൽഡ് ഡിഫോൾട്ടായി മണിക്കൂറിന് 100 സംഭാഷണങ്ങളാണ്.",
+ "INPUT_MAX": "പരമാവധി നിയോഗിക്കുക",
+ "DURATION": "ഓരോ ഏജന്റിനും ഓരോ"
+ },
+ "INBOXES": {
+ "LABEL": "ചേർത്ത ഇൻബോക്സുകൾ",
+ "DESCRIPTION": "ഈ നയം ബാധകമാകുന്ന ഇൻബോക്സുകൾ ചേർക്കുക.",
+ "ADD_BUTTON": "ഇൻബോക്സ് ചേർക്കുക",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ചേർക്കാൻ ഇൻബോക്സുകൾ തിരയുകയും തിരഞ്ഞെടുക്കുകയും ചെയ്യുക",
+ "ADD_BUTTON": "ചേർക്കുക"
+ },
+ "EMPTY_STATE": "ഈ നയത്തിലേക്ക് ഒരു ഇൻബോക്സ് ചേർത്തിട്ടില്ല, ആരംഭിക്കാൻ ഒരു ഇൻബോക്സ് ചേർക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "നയത്തിലേക്ക് ഇൻബോക്സ് വിജയകരമായി ചേർത്തു",
+ "ERROR_MESSAGE": "നയത്തിലേക്ക് ഇൻബോക്സ് ചേർക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "അസൈൻമെന്റ് നയം വിജയകരമായി മായ്ച്ചു",
+ "ERROR_MESSAGE": "അസൈൻമെന്റ് നയം മായ്ക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "ഏജന്റ് ശേഷി",
+ "CREATE_POLICY": "പുതിയ നയം"
+ },
+ "CARD": {
+ "POPOVER": "ചേർത്ത ഏജന്റുമാർ",
+ "EDIT": "എഡിറ്റുചെയ്യുക"
+ },
+ "NO_RECORDS_FOUND": "ഏജന്റ് ശേഷി നയങ്ങൾ കണ്ടെത്തിയില്ല"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "ഏജന്റ് ശേഷി നയം സൃഷ്ടിക്കുക"
+ },
+ "CREATE_BUTTON": "നയം സൃഷ്ടിക്കുക",
+ "API": {
+ "SUCCESS_MESSAGE": "ഏജന്റ് ശേഷി നയം വിജയകരമായി സൃഷ്ടിച്ചു",
+ "ERROR_MESSAGE": "ഏജന്റ് ശേഷി നയം സൃഷ്ടിക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "ഏജന്റ് ശേഷി നയം തിരുത്തുക"
+ },
+ "EDIT_BUTTON": "നയം അപ്ഡേറ്റ് ചെയ്യുക",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "ഏജന്റ് ചേർക്കുക",
+ "DESCRIPTION": "{agentName} ഇതിനകം മറ്റൊരു നയവുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു. നിങ്ങൾക്ക് ഇത് ഈ നയവുമായി ബന്ധിപ്പിക്കണമെന്ന് ഉറപ്പാണോ? ഇത് മറ്റൊരു നയത്തിൽ നിന്ന് ബന്ധമൊഴിയിക്കും.",
+ "CONFIRM_BUTTON_LABEL": "തുടരുക",
+ "CANCEL_BUTTON_LABEL": "റദ്ദാക്കുക"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "ഏജന്റ് ശേഷി നയം വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "ഏജന്റ് ശേഷി നയം അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "നയത്തിലേക്ക് ഏജന്റ് വിജയകരമായി ചേർത്തു",
+ "ERROR_MESSAGE": "നയത്തിലേക്ക് ഏജന്റ് ചേർക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "നയത്തിൽ നിന്ന് ഏജന്റ് വിജയകരമായി നീക്കം ചെയ്തു",
+ "ERROR_MESSAGE": "പോളിസിയിൽ നിന്ന് ഏജന്റ് നീക്കം ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "ഇൻബോക്സ് പരിധി വിജയകരമായി ചേർത്തു",
+ "ERROR_MESSAGE": "ഇൻബോക്സ് പരിധി ചേർക്കാൻ പരാജയപ്പെട്ടു"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "ഇൻബോക്സ് പരിധി വിജയകരമായി അപ്ഡേറ്റ് ചെയ്തു",
+ "ERROR_MESSAGE": "ഇൻബോക്സ് പരിധി അപ്ഡേറ്റ് ചെയ്യാൻ പരാജയപ്പെട്ടു"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "ഇൻബോക്സ് പരിധി വിജയകരമായി ഇല്ലാതാക്കി",
+ "ERROR_MESSAGE": "ഇൻബോക്സ് പരിധി ഇല്ലാതാക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "പോളിസി പേര്:",
+ "PLACEHOLDER": "പോളിസി പേര് നൽകുക"
+ },
+ "DESCRIPTION": {
+ "LABEL": "വിവരണം:",
+ "PLACEHOLDER": "വിവരണം നൽകുക"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "ഇൻബോക്സ് ശേഷി പരിധികൾ",
+ "ADD_BUTTON": "ഇൻബോക്സ് ചേർക്കുക",
+ "FIELD": {
+ "SELECT_INBOX": "ഇൻബോക്സ് തിരഞ്ഞെടുക്കുക",
+ "MAX_CONVERSATIONS": "പരമാവധി സംഭാഷണങ്ങൾ",
+ "SET_LIMIT": "പരിധി നിശ്ചയിക്കുക"
+ },
+ "EMPTY_STATE": "ഇൻബോക്സ് പരിധി സജ്ജമാക്കിയിട്ടില്ല"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "വിലക്കൽ നിയമങ്ങൾ",
+ "DESCRIPTION": "താഴെ പറയുന്ന നിബന്ധനകൾ പാലിക്കുന്ന സംഭാഷണങ്ങൾ ഏജന്റ് ശേഷിയിൽ ഉൾപ്പെടില്ല",
+ "TAGS": {
+ "LABEL": "നിശ്ചിത ലേബലുകൾ അടങ്ങിയ സംഭാഷണങ്ങൾ ഒഴിവാക്കുക",
+ "ADD_TAG": "ലേബൽ ചേർക്കുക",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "തിരയുകയും ചേർക്കാൻ ടാഗുകൾ തിരഞ്ഞെടുക്കുകയും ചെയ്യുക"
+ },
+ "EMPTY_STATE": "ഈ നയത്തിൽ ടാഗുകൾ ചേർത്തിട്ടില്ല."
+ },
+ "DURATION": {
+ "LABEL": "നിശ്ചിത ദൈർഘ്യമേൽപ്പിച്ച പഴക്കമുള്ള സംഭാഷണങ്ങൾ ഒഴിവാക്കുക",
+ "PLACEHOLDER": "സമയം സജ്ജമാക്കുക"
+ }
+ },
+ "USERS": {
+ "LABEL": "നിയുക്തമാക്കിയ ഏജന്റുമാർ",
+ "DESCRIPTION": "ഈ നയം ബാധകമാകുന്ന ഏജന്റുകളെ ചേർക്കുക.",
+ "ADD_BUTTON": "ഏജന്റ് ചേർക്കുക",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ചേർക്കാൻ ഏജന്റുകളെ തിരയുകയും തിരഞ്ഞെടുക്കുകയും ചെയ്യുക",
+ "ADD_BUTTON": "ചേർക്കുക"
+ },
+ "EMPTY_STATE": "ഏജന്റുമാരില്ല",
+ "API": {
+ "SUCCESS_MESSAGE": "ഏജന്റ് നയത്തിലേക്ക് വിജയകരമായി ചേർത്തു",
+ "ERROR_MESSAGE": "പോളിസിലേക്ക് ഏജന്റ് ചേർക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "ഏജന്റ് ശേഷി നയം വിജയകരമായി മായ്ചു",
+ "ERROR_MESSAGE": "ഏജന്റ് ശേഷി നയം മായ്ക്കാൻ പരാജയപ്പെട്ടു"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "നയം മായ്ക്കുക",
+ "DESCRIPTION": "നിങ്ങൾക്ക് ഈ നയം ഇല്ലാതാക്കാൻ ഉറപ്പാണോ? ഈ പ്രവർത്തനം തിരുത്താനാകില്ല.",
+ "CONFIRM_BUTTON_LABEL": "ഇല്ലാതാക്കുക",
+ "CANCEL_BUTTON_LABEL": "റദ്ദാക്കുക"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/signup.json b/app/javascript/dashboard/i18n/locale/ml/signup.json
index e4d2ef6b7..7ca726e57 100644
--- a/app/javascript/dashboard/i18n/locale/ml/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ml/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "രജിസ്റ്റർ",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "പാസ്വേഡ്",
"PLACEHOLDER": "പാസ്വേഡ്",
"ERROR": "പാസ്വേഡ് വളരെ ചെറുതാണ്",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "പാസ്വേഡ് സ്ഥിരീകരിക്കുക",
"PLACEHOLDER": "പാസ്വേഡ് സ്ഥിരീകരിക്കുക",
- "ERROR": "പാസ്വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല"
+ "ERROR": "പാസ്വേഡുകൾ പൊരുത്തപ്പെടുന്നില്ല."
},
"API": {
- "SUCCESS_MESSAGE": "രജിസ്ട്രേഷൻ വിജയകരമാണ്",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "സെർവറിലേക്ക് കണക്റ്റുചെയ്യാനായില്ല, ദയവായി പിന്നീട് വീണ്ടും ശ്രമിക്കുക"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "സ്ഥിരീകരണ ഇമെയിൽ വീണ്ടും അയയ്ക്കുക",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/sla.json b/app/javascript/dashboard/i18n/locale/ml/sla.json
index 927c6cd3e..cf9fba6b0 100644
--- a/app/javascript/dashboard/i18n/locale/ml/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ml/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "ഈ ചോദ്യവുമായി പൊരുത്തപ്പെടുന്ന ഇനങ്ങളൊന്നുമില്ല",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "പേര്",
- "വിവരണം",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "ഒരു പിശക് ഉണ്ടായിരുന്നു, ദയവായി വീണ്ടും ശ്രമിക്കുക"
+ },
+ "CONFIRM": {
+ "TITLE": "ഇല്ലാതാക്കൽ സ്ഥിരീകരിക്കുക",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "അതെ, ഇല്ലാതാക്കുക ",
+ "NO": "ഇല്ല, സൂക്ഷിക്കുക"
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "ആദ്യ പ്രതികരണ സമയം",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/snooze.json b/app/javascript/dashboard/i18n/locale/ml/snooze.json
new file mode 100644
index 000000000..fea5ee21b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "ദിവസം",
+ "DAYS": "days",
+ "WEEK": "ദിവസം",
+ "WEEKS": "weeks",
+ "MONTH": "ആഴ്ച",
+ "MONTHS": "months",
+ "YEAR": "മാസം",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "ദിവസം",
+ "DAY": "ദിവസം"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
index c701528cb..5648756f9 100644
--- a/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ml/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "ടീമുകളെ തിരയുക...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "ഒന്നുമില്ല"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "സൃഷ്ടിക്കുക",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "ഏജന്റുമാരെ ചേർക്കുക",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "സൃഷ്ടിക്കുക",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "ഏജന്റുമാരെ ചേർക്കുക",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "എല്ലാം ഭംഗിയായി പാപര്യവസാനിച്ചിരിക്കുന്നു. വരൂ നമുക്ക് പോകാം!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "ഏജന്റ്",
"EMAIL": "ഇമെയിൽ",
"BUTTON_TEXT": "ഏജന്റുമാരെ ചേർക്കുക",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "ഏജന്റുമാരെ ചേർക്കുക",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "ഇല്ലാതാക്കുക ",
diff --git a/app/javascript/dashboard/i18n/locale/ml/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ml/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/ml/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ml/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ml/yearInReview.json b/app/javascript/dashboard/i18n/locale/ml/yearInReview.json
new file mode 100644
index 000000000..3d1aed964
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ml/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "അടയ്ക്കുക",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "സംഭാഷണങ്ങൾ",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "ഡൗൺലോഡ്",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "സംഭാഷണം പങ്കിടുക"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json
index e9a375515..891e95bef 100644
--- a/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ms/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "DAN",
"OR": "ATAU"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Sama dengan",
"not_equal_to": "Tak sama dengan",
- "contains": "Mengandungi",
"does_not_contain": "Tidak mengandungi",
"is_present": "Sedia ada",
"is_not_present": "Tidak sedia ada",
"is_greater_than": "Adalah lebih besar",
"is_less_than": "Adalah lebih kurang",
"days_before": "Adalah x hari sebelum",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Sama dengan",
+ "notEqualTo": "Tak sama dengan",
+ "contains": "Mengandungi",
+ "doesNotContain": "Tidak mengandungi",
+ "isPresent": "Sedia ada",
+ "isNotPresent": "Tidak sedia ada",
+ "isGreaterThan": "Adalah lebih besar",
+ "isLessThan": "Adalah lebih kurang",
+ "daysBefore": "Adalah x hari sebelum",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Benar",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nilai diperlukan",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/ms/agentBots.json b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
index 9442f6951..11144f058 100644
--- a/app/javascript/dashboard/i18n/locale/ms/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ms/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Tindakan-tindakan"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Salin rahsia ke papan klip",
+ "COPY_SUCCESS": "Rahsia disalin ke papan klip",
+ "TOGGLE": "Togol keterlihatan rahsia",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Selesai",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
index eb331f5f5..9b0625a04 100644
--- a/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Ejen",
"HEADER_BTN_TXT": "Tambahkan ejen",
"LOADING": "Mendapatkan senarai ejen",
- "SIDEBAR_TXT": "Ejen
Seorang Ejen adalah ahli sistem bantuan anda.
Ejen boleh membaca dan menjawab mesej dari pengguna pengguna anda
Klik di Tambah Ejen untuk menambah bilangan ejen. Ejen yang ditambah akan menerima emel dengan pengesahan untuk mengaktifkan akaun mereka, selepas itu, mereka boleh akses Chatwoot dan respon kepada mesej.
Akses ke ciri-ciri Chatwoot adalah berdasarkan kepada peranan peranan berikut.
Ejen - Ejen dengan peranan ini boleh akses inbox, repot dan perbualan. Mereka boleh tugaskan perbualan kepada ejen lain atau mereka sendiri dan boleh selesaikan sendiri.
Pentadbir - Pentadbir boleh akses semua ciri-ciri Chatwoot yang dibenarkan terhadap akaun anda termasuk, settings dan apa apa yang ejen biasa boleh lakukan.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Pentadbir",
"AGENT": "Ejen"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Tiada ejen yang dikaitkan ke akaun ini",
"TITLE": "Tadbir ejen dalam pasukan anda",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Tindakan-tindakan",
"VERIFIED": "Disahkan",
- "VERIFICATION_PENDING": "Pengesahan belum lagi selesai"
+ "VERIFICATION_PENDING": "Pengesahan belum lagi selesai",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Tambahkan ejen ke pasukan anda",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
}
},
+ "SEARCH_PLACEHOLDER": "Cari ejen...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Tiada dijumpa."
},
@@ -103,6 +108,9 @@
"AGENT": "Pilih ejen",
"TEAM": "Pilih pasukan"
},
+ "LIST": {
+ "NONE": "Tiada"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Tiada ejen dijumpa",
diff --git a/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
index ce5ed05b9..0ad3b8a8c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Penyesuian Atribut",
"HEADER_BTN_TXT": "Tambahkan Atribut Penyesuian",
"LOADING": "Mendapatkan atribut penyesuian",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Teks",
+ "NUMBER": "Nombor",
+ "LINK": "Pautan",
+ "DATE": "Date",
+ "LIST": "Senarai",
+ "CHECKBOX": "Kotak Semak"
+ },
"ADD": {
"TITLE": "Tambahkan Atribut Penyesuian",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Company"
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Padamkan"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/auditLogs.json b/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
index 80c19feef..23d80ed57 100644
--- a/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ms/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 a006eaed5..7bb1ccda1 100644
--- a/app/javascript/dashboard/i18n/locale/ms/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Tindakan-tindakan"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploading...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Nilai diperlukan",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Tiada",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Nota Peribadi",
+ "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",
+ "COMPANY_NAME": "Company",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
index 16551c556..08f2c63ec 100644
--- a/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ms/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Pilih ejen",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "Tiada",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Batalkan",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Pilih pasukan",
"NONE": "Tiada",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/campaign.json b/app/javascript/dashboard/i18n/locale/ms/campaign.json
index 777818c73..6e925ff36 100644
--- a/app/javascript/dashboard/i18n/locale/ms/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ms/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Batalkan",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Padamkan",
- "CONFIRM": {
- "TITLE": "Pasti Padamkan",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Ya, Padamkan ",
- "NO": "Tidak, simpankan "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Sedang Diproses",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Sedang Diproses",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Adakan anda pasti untuk padamkan?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Padamkan",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Padamkan"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
index 03571837a..f24445cb3 100644
--- a/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Tindakan-tindakan"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Tindakan-tindakan"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/ms/chatlist.json b/app/javascript/dashboard/i18n/locale/ms/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/ms/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ms/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/companies.json b/app/javascript/dashboard/i18n/locale/ms/companies.json
new file mode 100644
index 000000000..c3fb0079a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nama",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kenalan",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Company",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Batalkan"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nama",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/components.json b/app/javascript/dashboard/i18n/locale/ms/components.json
new file mode 100644
index 000000000..815db3f80
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Tiada dijumpa.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Tiada dijumpa.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Batalkan",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/contact.json b/app/javascript/dashboard/i18n/locale/ms/contact.json
index 634182e05..161429452 100644
--- a/app/javascript/dashboard/i18n/locale/ms/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ms/contact.json
@@ -1,6 +1,6 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
+ "NOT_AVAILABLE": "Tidak Tersedia",
"EMAIL_ADDRESS": "Emel",
"PHONE_NUMBER": "Phone number",
"IDENTIFIER": "Identifier",
@@ -8,18 +8,27 @@
"COMPANY": "Company",
"LOCATION": "Location",
"BROWSER_LANGUAGE": "Bahasa Pelayar",
- "CONVERSATION_TITLE": "Conversation Details",
+ "CONVERSATION_TITLE": "Butiran Perbualan",
"VIEW_PROFILE": "View Profile",
- "BROWSER": "Browser",
- "OS": "Operating System",
- "INITIATED_FROM": "Initiated from",
- "INITIATED_AT": "Initiated at",
+ "BROWSER": "Pelayar",
+ "OS": "Sistem Operasi",
+ "INITIATED_FROM": "Dimulakan dari",
+ "INITIATED_AT": "Dimulakan pada",
"IP_ADDRESS": "IP Address",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
- "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
- "TITLE": "Previous Conversations"
+ "NO_RECORDS_FOUND": "Tiada perbualan terdahulu yang berkaitan dengan kenalan ini.",
+ "TITLE": "Perbualan Terdahulu"
},
"LABELS": {
"CONTACT": {
@@ -43,12 +52,13 @@
"UNMUTE_CONTACT": "Unblock Contact",
"MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
"UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "SEND_TRANSCRIPT": "Hantar Transkrip",
+ "EDIT_LABEL": "Sunting",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Custom Attributes",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "PREVIOUS_CONVERSATIONS": "Previous Conversations",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edit contact",
"DESC": "Edit contact details"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Batalkan"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to download.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Pasti Padamkan",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Tetapkan penapis",
- "FILTER_CONTACTS_DELETE": "Padam tapisan",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Nama",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Dicipta Pada",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Emel"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacts",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Message",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacts"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "This email address is in use for another contact.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Change",
+ "CANCEL": "Batalkan",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to download.",
+ "ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Nama",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "COMPANY": "Company",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Adakah kamu ingin menetapkan penapis ini?",
+ "CONFIRM": "Tetapkan penapis",
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Pasti Padamkan",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Baik, Padamkan",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nama",
+ "EMAIL": "Email",
+ "PHONE_NUMBER": "Phone number",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Company",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Perujuk pautan",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Benar",
+ "BLOCKED_FALSE": "Tidak benar",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Tetapkan tapisan",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edit contact details",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "This email address is in use for another contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Enter the company name"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Pasti Padamkan",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Baik, Padamkan",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "There are no previous conversations associated to this contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Batalkan",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "No contacts matches your search 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Padamkan",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "View",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/contactFilters.json b/app/javascript/dashboard/i18n/locale/ms/contactFilters.json
index 6fd151efa..8bf0cb5fa 100644
--- a/app/javascript/dashboard/i18n/locale/ms/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ms/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Adalah x hari sebelum"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Nilai diperlukan"
+ },
"ATTRIBUTES": {
"NAME": "Nama",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Kotak Semak",
"CREATED_AT": "Dicipta Pada",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Penapis Standard",
diff --git a/app/javascript/dashboard/i18n/locale/ms/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ms/contentTemplates.json
new file mode 100644
index 000000000..68b6b100a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Teks"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/conversation.json b/app/javascript/dashboard/i18n/locale/ms/conversation.json
index c90833552..450f1d88c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ms/conversation.json
@@ -1,326 +1,490 @@
{
"CONVERSATION": {
- "SELECT_A_CONVERSATION": "Please select a conversation from left pane",
- "CSAT_REPLY_MESSAGE": "Please rate the conversation",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
- "DASHBOARD_APP_TAB_MESSAGES": "Messages",
- "UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
- "NO_MESSAGE_2": " to send a message to your page!",
- "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.",
- "NO_INBOX_2": " to get started",
- "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
- "SEARCH_MESSAGES": "Search for messages in conversations",
+ "SELECT_A_CONVERSATION": "Sila pilih perbualan dari panel kiri",
+ "CSAT_REPLY_MESSAGE": "Sila nilai perbualan ini",
+ "404": "Maaf, kami tidak dapat menemui perbualan tersebut. Sila cuba lagi",
+ "SWITCH_VIEW_LAYOUT": "Tukar susun atur",
+ "DASHBOARD_APP_TAB_MESSAGES": "Mesej",
+ "UNVERIFIED_SESSION": "Identiti pengguna ini belum disahkan",
+ "NO_MESSAGE_1": "Uh oh! Nampaknya tiada mesej daripada pelanggan dalam peti masuk anda.",
+ "NO_MESSAGE_2": " untuk menghantar mesej ke halaman anda!",
+ "NO_INBOX_1": "Hola! Nampaknya anda belum menambah sebarang peti masuk lagi.",
+ "NO_INBOX_2": " untuk bermula",
+ "NO_INBOX_AGENT": "Uh Oh! Nampaknya anda bukan sebahagian daripada mana-mana peti masuk. Sila hubungi pentadbir anda",
+ "SEARCH_MESSAGES": "Cari mesej dalam perbualan",
+ "VIEW_ORIGINAL": "Lihat asal",
+ "VIEW_TRANSLATED": "Lihat terjemahan",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "untuk buka menu arahan",
+ "KEYBOARD_SHORTCUTS": "untuk lihat pintasan papan kekunci"
},
"SEARCH": {
- "TITLE": "Search messages",
- "RESULT_TITLE": "Search Results",
- "LOADING_MESSAGE": "Crunching data...",
- "PLACEHOLDER": "Type any text to search messages",
- "NO_MATCHING_RESULTS": "No results found."
+ "TITLE": "Cari mesej",
+ "RESULT_TITLE": "Keputusan Carian",
+ "LOADING_MESSAGE": "Memproses data...",
+ "PLACEHOLDER": "Taip sebarang teks untuk cari mesej",
+ "NO_MATCHING_RESULTS": "Tiada keputusan dijumpai."
},
- "UNREAD_MESSAGES": "Unread Messages",
- "UNREAD_MESSAGE": "Unread Message",
- "CLICK_HERE": "Click here",
- "LOADING_INBOXES": "Loading inboxes",
- "LOADING_CONVERSATIONS": "Loading Conversations",
- "CANNOT_REPLY": "You cannot reply due to",
- "24_HOURS_WINDOW": "24 hour message window restriction",
- "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",
- "REPLYING_TO": "You are replying to:",
- "REMOVE_SELECTION": "Remove Selection",
- "DOWNLOAD": "Download",
- "UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
- "UPLOADING_ATTACHMENTS": "Uploading attachments...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
- "NO_RESPONSE": "No response",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "UNREAD_MESSAGES": "Mesej Belum Dibaca",
+ "UNREAD_MESSAGE": "Mesej Belum Dibaca",
+ "CLICK_HERE": "Klik di sini",
+ "LOADING_INBOXES": "Memuatkan peti masuk",
+ "LOADING_CONVERSATIONS": "Memuatkan Perbualan",
+ "CANNOT_REPLY": "Anda tidak boleh membalas kerana",
+ "24_HOURS_WINDOW": "Sekatan tetingkap mesej 24 jam",
+ "48_HOURS_WINDOW": "Sekatan tetingkap mesej 48 jam",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
+ "NOT_ASSIGNED_TO_YOU": "Perbualan ini tidak ditugaskan kepada anda. Adakah anda ingin menugaskan perbualan ini kepada diri anda?",
+ "ASSIGN_TO_ME": "Tugaskan kepada saya",
+ "BOT_HANDOFF_MESSAGE": "Anda sedang membalas perbualan yang kini dikendalikan oleh pembantu atau bot.",
+ "BOT_HANDOFF_ACTION": "Tandakan terbuka dan tugaskan kepada anda",
+ "BOT_HANDOFF_REOPEN_ACTION": "Tandakan perbualan terbuka",
+ "BOT_HANDOFF_SUCCESS": "Perbualan telah diserahkan kepada anda",
+ "BOT_HANDOFF_ERROR": "Gagal mengambil alih perbualan. Sila cuba lagi.",
+ "TWILIO_WHATSAPP_CAN_REPLY": "Anda hanya boleh membalas perbualan ini menggunakan mesej templat kerana",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "Sekatan tetingkap mesej 24 jam",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "Akaun Instagram ini telah dipindahkan ke peti masuk saluran Instagram baru. Semua mesej baru akan dipaparkan di sana. Anda tidak akan dapat menghantar mesej dari perbualan ini lagi.",
+ "REPLYING_TO": "Anda sedang membalas kepada:",
+ "REMOVE_SELECTION": "Buang Pilihan",
+ "DOWNLOAD": "Muat Turun",
+ "UNKNOWN_FILE_TYPE": "Fail Tidak Dikenali",
+ "SAVE_CONTACT": "Simpan Kenalan",
+ "NO_CONTENT": "Tiada kandungan untuk dipaparkan",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
+ "UPLOADING_ATTACHMENTS": "Memuat naik lampiran...",
+ "REPLIED_TO_STORY": "Membalas cerita anda",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "Mesej ini tidak disokong. Anda boleh melihat mesej ini di aplikasi Facebook Messenger.",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "Mesej ini tidak disokong. Anda boleh melihat mesej ini di aplikasi Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Mesej ini tidak disokong. Anda boleh melihat mesej ini di aplikasi TikTok.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "Mesej berjaya dipadam",
+ "FAIL_DELETE_MESSSAGE": "Tidak dapat memadam mesej! Sila cuba lagi",
+ "NO_RESPONSE": "Tiada respons",
+ "RESPONSE": "Respons",
+ "RATING_TITLE": "Penilaian",
+ "FEEDBACK_TITLE": "Maklum Balas",
+ "REPLY_MESSAGE_NOT_FOUND": "Mesej tidak tersedia",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "Tunjukkan label",
+ "HIDE_LABELS": "Sembunyikan label",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Panggilan masuk",
+ "OUTGOING_CALL": "Panggilan keluar",
+ "CALL_IN_PROGRESS": "Panggilan sedang berlangsung",
+ "NO_ANSWER": "Tiada jawapan",
+ "NO_ANSWER_OUTBOUND_LABEL": "Tiada jawapan",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Panggilan terlepas",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Panggilan tamat",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Belum dijawab",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "Mereka menjawab",
+ "YOU_ANSWERED": "Anda menjawab",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Sertai panggilan",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
- "RESOLVE_ACTION": "Resolve",
- "REOPEN_ACTION": "Reopen",
- "OPEN_ACTION": "Open",
- "OPEN": "More",
- "CLOSE": "Close",
- "DETAILS": "details",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
- },
- "RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
- "SNOOZE_UNTIL": "Snooze",
- "SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
- "TOMORROW": "Tomorrow",
- "NEXT_WEEK": "Next week"
+ "RESOLVE_ACTION": "Selesaikan",
+ "REOPEN_ACTION": "Buka semula",
+ "OPEN_ACTION": "Buka",
+ "MORE_ACTIONS": "Tindakan lain",
+ "OPEN": "Lagi",
+ "CLOSE": "Tutup",
+ "DETAILS": "butiran",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "Ditangguhkan sehingga",
+ "SNOOZED_UNTIL_TOMORROW": "Ditangguhkan sehingga esok",
+ "SNOOZED_UNTIL_NEXT_WEEK": "Ditangguhkan sehingga minggu depan",
+ "SNOOZED_UNTIL_NEXT_REPLY": "Ditangguhkan sehingga balasan seterusnya",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "terlepas",
+ "DUE": "tertunggak"
}
},
+ "RESOLVE_DROPDOWN": {
+ "MARK_PENDING": "Tandakan sebagai tertunda",
+ "SNOOZE_UNTIL": "Tangguhkan",
+ "SNOOZE": {
+ "TITLE": "Tangguhkan sehingga",
+ "NEXT_REPLY": "Balasan seterusnya",
+ "TOMORROW": "Esok",
+ "NEXT_WEEK": "Minggu depan"
+ }
+ },
+ "MENTION": {
+ "AGENTS": "Ejen",
+ "TEAMS": "Pasukan"
+ },
"CUSTOM_SNOOZE": {
- "TITLE": "Snooze until",
- "APPLY": "Snooze",
+ "TITLE": "Tangguhkan sehingga",
+ "APPLY": "Tangguhkan",
"CANCEL": "Batalkan"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "Keutamaan",
"OPTIONS": {
"NONE": "Tiada",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "URGENT": "Segera",
+ "HIGH": "Tinggi",
+ "MEDIUM": "Sederhana",
+ "LOW": "Rendah"
},
"CHANGE_PRIORITY": {
"SELECT_PLACEHOLDER": "Tiada",
- "INPUT_PLACEHOLDER": "Select priority",
+ "INPUT_PLACEHOLDER": "Pilih keutamaan",
"NO_RESULTS": "Tiada dijumpa",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
+ "FAILED": "Gagal menukar keutamaan. Sila cuba lagi."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "Adakah anda pasti mahu memadam perbualan ini?",
+ "CONFIRM": "Padamkan"
+ },
"CARD_CONTEXT_MENU": {
- "PENDING": "Mark as pending",
- "RESOLVED": "Mark as resolved",
- "MARK_AS_UNREAD": "Mark as unread",
- "REOPEN": "Reopen conversation",
+ "PENDING": "Tandakan sebagai tertunda",
+ "RESOLVED": "Tandakan sebagai selesai",
+ "MARK_AS_UNREAD": "Tandakan sebagai belum dibaca",
+ "MARK_AS_READ": "Tandakan sebagai sudah dibaca",
+ "REOPEN": "Buka semula perbualan",
"SNOOZE": {
- "TITLE": "Snooze",
- "NEXT_REPLY": "Until next reply",
- "TOMORROW": "Until tomorrow",
- "NEXT_WEEK": "Until next week"
+ "TITLE": "Tangguhkan",
+ "NEXT_REPLY": "Sehingga balasan seterusnya",
+ "TOMORROW": "Sehingga esok",
+ "NEXT_WEEK": "Sehingga minggu depan"
},
- "ASSIGN_AGENT": "Assign agent",
- "ASSIGN_LABEL": "Assign label",
- "AGENTS_LOADING": "Loading agents...",
- "ASSIGN_TEAM": "Assign team",
+ "ASSIGN_AGENT": "Tugaskan ejen",
+ "ASSIGN_LABEL": "Tugaskan label",
+ "AGENTS_LOADING": "Memuatkan ejen...",
+ "ASSIGN_TEAM": "Tugaskan pasukan",
+ "DELETE": "Padam perbualan",
+ "OPEN_IN_NEW_TAB": "Buka dalam tab baru",
+ "COPY_LINK": "Salin pautan perbualan",
+ "COPY_LINK_SUCCESS": "Pautan perbualan disalin ke papan klip",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
- "FAILED": "Couldn't assign agent. Please try again."
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
+ "FAILED": "Gagal menugaskan ejen. Sila cuba lagi."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
- "FAILED": "Couldn't assign label. Please try again."
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
+ "FAILED": "Gagal menugaskan label. Sila cuba lagi."
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Gagal mengeluarkan label. Sila cuba lagi."
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
+ "FAILED": "Gagal menugaskan pasukan. Sila cuba lagi."
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
- "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "MESSAGE_SIGN_TOOLTIP": "Tandatangan mesej",
+ "ENABLE_SIGN_TOOLTIP": "Dayakan tandatangan",
+ "DISABLE_SIGN_TOOLTIP": "Nyahdayakan tandatangan",
+ "MSG_INPUT": "Shift + enter untuk baris baru. Mula dengan '/' untuk memilih Respons Sedia Ada.",
+ "PRIVATE_MSG_INPUT": "Shift + enter untuk baris baru. Ini hanya akan kelihatan kepada Ejen",
+ "MESSAGING_RESTRICTED": "Anda tidak boleh membalas perbualan ini",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Anda hanya boleh membalas menggunakan mesej templat disebabkan had tetingkap mesej 24 jam",
+ "MESSAGING_RESTRICTED_API": "Anda hanya boleh membalas menggunakan mesej templat disebabkan had tetingkap mesej",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Tandatangan mesej belum dikonfigurasikan, sila konfigurasikan dalam tetapan profil.",
+ "COPILOT_MSG_INPUT": "Berikan arahan tambahan kepada copilot, atau tanya apa-apa lagi... Tekan enter untuk hantar susulan",
+ "CLICK_HERE": "Klik di sini untuk kemas kini",
+ "WHATSAPP_TEMPLATES": "Templat Whatsapp"
},
"REPLYBOX": {
- "REPLY": "Reply",
- "PRIVATE_NOTE": "Private Note",
- "SEND": "Send",
- "CREATE": "Add Note",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
- "TIP_EMOJI_ICON": "Show emoji selector",
- "TIP_ATTACH_ICON": "Attach files",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "REPLY": "Balas",
+ "PRIVATE_NOTE": "Nota Peribadi",
+ "SEND": "Hantar",
+ "CREATE": "Tambah Nota",
+ "INSERT_READ_MORE": "Baca lagi",
+ "DISMISS_REPLY": "Tutup balasan",
+ "REPLYING_TO": "Membalas kepada:",
+ "TIP_EMOJI_ICON": "Tunjukkan pemilih emoji",
+ "TIP_ATTACH_ICON": "Lampirkan fail",
+ "TIP_AUDIORECORDER_ICON": "Rakam audio",
+ "TIP_AUDIORECORDER_PERMISSION": "Benarkan akses ke audio",
+ "TIP_AUDIORECORDER_ERROR": "Tidak dapat membuka audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "Seret dan lepaskan di sini untuk melampirkan",
+ "START_AUDIO_RECORDING": "Mula rakaman audio",
+ "STOP_AUDIO_RECORDING": "Hentikan rakaman audio",
+ "COPILOT_THINKING": "Copilot sedang berfikir",
"EMAIL_HEAD": {
"TO": "TO",
- "ADD_BCC": "Add bcc",
+ "ADD_BCC": "Tambah bcc",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "Emel dipisahkan dengan koma",
+ "ERROR": "Sila masukkan alamat emel yang sah"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "Emel dipisahkan dengan koma",
+ "ERROR": "Sila masukkan alamat emel yang sah"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
+ "TITLE": "Pembolehubah tidak ditakrifkan",
"MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
"CONFIRM": {
- "YES": "Send",
+ "YES": "Hantar",
"CANCEL": "Batalkan"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Sertakan benang emel yang dipetik",
+ "DISABLE_TOOLTIP": "Jangan sertakan benang emel yang dipetik",
+ "REMOVE_PREVIEW": "Alih keluar benang emel yang dipetik",
+ "COLLAPSE": "Kuncupkan pratonton",
+ "EXPAND": "Kembangkan pratonton"
}
},
- "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
- "CHANGE_STATUS": "Conversation status changed",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "Conversation Assignee changed",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "Conversation team changed",
+ "VISIBLE_TO_AGENTS": "Nota Peribadi: Hanya boleh dilihat oleh anda dan pasukan anda",
+ "CHANGE_STATUS": "Status perbualan telah diubah",
+ "CHANGE_STATUS_FAILED": "Perubahan status perbualan gagal",
+ "CHANGE_AGENT": "Penugas Perbualan telah diubah",
+ "CHANGE_AGENT_FAILED": "Penukaran penugas gagal",
+ "ASSIGN_LABEL_SUCCESFUL": "Label berjaya ditetapkan",
+ "ASSIGN_LABEL_FAILED": "Penetapan label gagal",
+ "CHANGE_TEAM": "Pasukan perbualan telah diubah",
+ "SUCCESS_DELETE_CONVERSATION": "Perbualan berjaya dipadam",
+ "FAIL_DELETE_CONVERSATION": "Tidak dapat memadam perbualan! Sila cuba lagi",
"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:",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
+ "MESSAGE_ERROR": "Tidak dapat menghantar mesej ini, sila cuba lagi kemudian",
+ "SENT_BY": "Dihantar oleh:",
"BOT": "Bot",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "NATIVE_APP": "Aplikasi asli",
+ "NATIVE_APP_ADVISORY": "Mesej ini dihantar dari aplikasi asli. Balas dari Chatwoot untuk mengekalkan tetingkap mesej.",
+ "SEND_FAILED": "Tidak dapat menghantar mesej! Sila cuba lagi",
+ "TRY_AGAIN": "cuba lagi",
"ASSIGNMENT": {
- "SELECT_AGENT": "Select Agent",
- "REMOVE": "Remove",
- "ASSIGN": "Assign"
+ "SELECT_AGENT": "Pilih Ejen",
+ "REMOVE": "Alih keluar",
+ "ASSIGN": "Tugaskan"
},
"CONTEXT_MENU": {
- "COPY": "Copy",
- "REPLY_TO": "Reply to this message",
+ "COPY": "Salin",
+ "REPLY_TO": "Balas mesej ini",
"DELETE": "Padamkan",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "CREATE_A_CANNED_RESPONSE": "Tambah ke balasan sedia ada",
+ "TRANSLATE": "Terjemah",
+ "COPY_PERMALINK": "Salin pautan ke mesej",
+ "LINK_COPIED": "URL mesej telah disalin ke papan klip",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
+ "TITLE": "Adakah anda pasti mahu memadam mesej ini?",
+ "MESSAGE": "Anda tidak boleh membatalkan tindakan ini",
"DELETE": "Padamkan",
"CANCEL": "Batalkan"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Hubungi",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Panggilan masuk",
+ "OUTGOING_CALL": "Panggilan keluar",
+ "CALL_IN_PROGRESS": "Panggilan sedang berlangsung",
+ "NOT_ANSWERED_YET": "Belum dijawab",
+ "HANDLED_IN_ANOTHER_TAB": "Sedang diuruskan di tab lain",
+ "REJECT_CALL": "Tolak",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Sertai panggilan",
+ "END_CALL": "Tamatkan panggilan",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
- "TITLE": "Send conversation transcript",
- "DESC": "Send a copy of the conversation transcript to the specified email address",
- "SUBMIT": "Submit",
+ "TITLE": "Hantar transkrip perbualan",
+ "DESC": "Hantar salinan transkrip perbualan ke alamat emel yang ditetapkan",
+ "SUBMIT": "Hantar",
"CANCEL": "Batalkan",
- "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
- "SEND_EMAIL_ERROR": "There was an error, please try again",
+ "SEND_EMAIL_SUCCESS": "Transkrip perbualan berjaya dihantar",
+ "SEND_EMAIL_ERROR": "Terdapat ralat, sila cuba lagi",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Transkrip emel tidak tersedia pada pelan anda sekarang. Sila naik taraf untuk menggunakan ciri ini.",
"FORM": {
- "SEND_TO_CONTACT": "Send the transcript to the customer",
- "SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address",
+ "SEND_TO_CONTACT": "Hantar transkrip kepada pelanggan",
+ "SEND_TO_AGENT": "Hantar transkrip kepada ejen yang ditugaskan",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "Hantar transkrip ke alamat emel lain",
"EMAIL": {
- "PLACEHOLDER": "Enter an email address",
- "ERROR": "Please enter a valid email address"
+ "PLACEHOLDER": "Masukkan alamat emel",
+ "ERROR": "Sila masukkan alamat emel yang sah"
}
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
- "READ_LATEST_UPDATES": "Read our latest updates",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
+ "READ_LATEST_UPDATES": "Baca kemas kini terkini kami",
"ALL_CONVERSATION": {
- "TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "TITLE": "Semua perbualan anda di satu tempat",
+ "DESCRIPTION": "Lihat semua perbualan daripada pelanggan anda dalam satu papan pemuka. Anda boleh menapis perbualan mengikut saluran masuk, label dan status.",
+ "NEW_LINK": "Klik di sini untuk mencipta peti masuk"
},
"TEAM_MEMBERS": {
- "TITLE": "Invite your team members",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "Click here to invite a team member"
- },
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
+ "TITLE": "Jemput ahli pasukan anda",
+ "DESCRIPTION": "Oleh kerana anda sedang bersedia untuk bercakap dengan pelanggan anda, bawa rakan sepasukan anda untuk membantu. Anda boleh menjemput rakan sepasukan dengan menambah alamat emel mereka ke senarai ejen.",
+ "NEW_LINK": "Klik di sini untuk menjemput ahli pasukan"
},
"LABELS": {
- "TITLE": "Organize conversations with labels",
- "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
- "NEW_LINK": "Click here to create tags"
+ "TITLE": "Susun perbualan dengan label",
+ "DESCRIPTION": "Label memudahkan anda mengkategorikan perbualan anda. Cipta beberapa label seperti #support-enquiry, #billing-question dan lain-lain, supaya anda boleh menggunakannya dalam perbualan kemudian.",
+ "NEW_LINK": "Klik di sini untuk mencipta tag"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Cipta respons siap",
+ "DESCRIPTION": "Templat balasan pantas yang telah ditulis membantu anda membalas perbualan dengan cepat. Ejen boleh menaip aksara '/' diikuti dengan kod pendek untuk memasukkan respons.",
+ "NEW_LINK": "Klik di sini untuk mencipta respons siap"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Assigned Agent",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "Assigned Team",
+ "ASSIGNEE_LABEL": "Ejen Ditugaskan",
+ "SELF_ASSIGN": "Tugaskan kepada saya",
+ "TEAM_LABEL": "Pasukan Ditugaskan",
"SELECT": {
- "PLACEHOLDER": "None"
+ "PLACEHOLDER": "Tiada"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
- "CONVERSATION_LABELS": "Conversation Labels",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
- "PREVIOUS_CONVERSATION": "Previous Conversations",
- "MACROS": "Macros"
+ "CONTACT_DETAILS": "Butiran Kenalan",
+ "CONVERSATION_ACTIONS": "Tindakan Perbualan",
+ "CONVERSATION_LABELS": "Label Perbualan",
+ "CONVERSATION_INFO": "Maklumat Perbualan",
+ "CONTACT_NOTES": "Nota Kenalan",
+ "CONTACT_ATTRIBUTES": "Atribut Kenalan",
+ "PREVIOUS_CONVERSATION": "Perbualan Sebelumnya",
+ "MACROS": "Makro",
+ "LINEAR_ISSUES": "Isu Linear Berkaitan",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Ralat memuatkan pesanan",
+ "NO_SHOPIFY_ORDERS": "Tiada pesanan ditemui",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Dalam Proses",
+ "AUTHORIZED": "Dibenarkan",
+ "PARTIALLY_PAID": "Dibayar Sebahagian",
+ "PAID": "Dibayar",
+ "PARTIALLY_REFUNDED": "Dikembalikan Sebahagian",
+ "REFUNDED": "Dikembalikan",
+ "VOIDED": "Dibatalkan"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Telah Dipenuhi",
+ "PARTIALLY_FULFILLED": "Sebahagiannya Dipenuhi",
+ "UNFULFILLED": "Belum Dipenuhi"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
+ "ADD_BUTTON_TEXT": "Cipta atribut",
+ "NO_RECORDS_FOUND": "Tiada atribut ditemui",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "Atribut berjaya dikemas kini",
+ "ERROR": "Tidak dapat mengemas kini atribut. Sila cuba lagi kemudian"
},
"ADD": {
- "TITLE": "Add",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "Tambah",
+ "SUCCESS": "Atribut berjaya ditambah",
+ "ERROR": "Tidak dapat menambah atribut. Sila cuba lagi kemudian"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "Atribut berjaya dipadam",
+ "ERROR": "Tidak dapat memadam atribut. Sila cuba lagi kemudian"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "Tambah atribut",
+ "PLACEHOLDER": "Cari atribut",
+ "NO_RESULT": "Tiada atribut ditemui"
}
},
"EMAIL_HEADER": {
- "FROM": "From",
- "TO": "To",
+ "FROM": "Daripada",
+ "TO": "Kepada",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subjek",
+ "EXPAND": "Kembangkan emel"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
+ "SIDEBAR_MENU_TITLE": "Peserta",
+ "SIDEBAR_TITLE": "Peserta perbualan",
"NO_RECORDS_FOUND": "Tiada dijumpa",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "ADD_PARTICIPANTS": "Pilih peserta",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "WATCH_CONVERSATION": "Sertai perbualan",
+ "YOU_ARE_WATCHING": "Anda sedang menyertai",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini, sila cuba lagi!",
+ "SUCCESS_MESSAGE": "Peserta dikemas kini!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
+ "TITLE": "Lihat kandungan yang diterjemah",
"DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "ORIGINAL_CONTENT": "Kandungan Asal",
+ "TRANSLATED_CONTENT": "Kandungan Terjemahan",
+ "NO_TRANSLATIONS_AVAILABLE": "Tiada terjemahan tersedia untuk kandungan ini"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Cuba arahan ini"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Tidak dapat memuat turun lampiran. Sila cuba lagi"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/customRole.json b/app/javascript/dashboard/i18n/locale/ms/customRole.json
new file mode 100644
index 000000000..df47b9045
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Tindakan-tindakan"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Nama diperlukan."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Batalkan",
+ "API": {
+ "ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Submit",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Padamkan",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Adakan anda pasti untuk padamkan ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/datePicker.json b/app/javascript/dashboard/i18n/locale/ms/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/general.json b/app/javascript/dashboard/i18n/locale/ms/general.json
new file mode 100644
index 000000000..7a1f5321c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "Tiada dijumpa"
+ },
+ "CLOSE": "Close",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/generalSettings.json b/app/javascript/dashboard/i18n/locale/ms/generalSettings.json
index 9c5a720aa..a0a651d49 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
index 3b7dc5276..4b1da6590 100644
--- a/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ms/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "Pusat Bantuan",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Cipta portal pusat bantuan layan diri untuk pelanggan anda. Bantu mereka mencari jawapan dengan cepat, tanpa perlu menunggu. Permudahkan pertanyaan, tingkatkan kecekapan ejen, dan tingkatkan sokongan pelanggan.",
+ "CREATE_PORTAL_BUTTON": "Cipta Portal"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
- "NEW_BUTTON": "New Article",
+ "FILTER": "Tapis mengikut",
+ "SORT": "Susun mengikut",
+ "LOCALE": "Lokal",
+ "SETTINGS_BUTTON": "Tetapan",
+ "NEW_BUTTON": "Artikel Baru",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "Diterbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVED": "Diarkibkan"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "Semua Artikel",
+ "MINE": "Artikel Saya",
+ "DRAFT": "Artikel Draf",
+ "ARCHIVED": "Artikel Arkib"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "Pilih lokal",
+ "PLACEHOLDER": "Pilih lokal",
+ "NO_RESULT": "Tiada lokal ditemui",
+ "SEARCH_PLACEHOLDER": "Cari lokal"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "Semua Artikel",
+ "PUBLISH_BUTTON": "Terbitkan",
+ "MOVE_TO_ARCHIVE_BUTTON": "Pindah ke arkib",
+ "PREVIEW": "Pratonton",
+ "ADD_TRANSLATION": "Tambah terjemahan",
+ "OPEN_SIDEBAR": "Buka bar sisi",
+ "CLOSE_SIDEBAR": "Tutup bar sisi",
+ "SAVING": "Menyimpan...",
+ "SAVED": "Telah Disimpan"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
- "UPLOADING": "Uploading...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "TITLE": "Muat naik imej",
+ "UPLOADING": "Sedang memuat naik...",
+ "SUCCESS": "Imej berjaya dimuat naik",
+ "ERROR": "Ralat semasa memuat naik imej",
+ "UN_AUTHORIZED_ERROR": "Anda tidak dibenarkan memuat naik imej",
+ "ERROR_FILE_SIZE": "Saiz imej harus kurang daripada {size}MB",
+ "ERROR_FILE_FORMAT": "Format imej harus jpg, jpeg atau png",
+ "ERROR_FILE_DIMENSIONS": "Dimensi imej harus kurang daripada 2000 x 2000"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "Tetapan Artikel",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "Kategori",
+ "TITLE": "Pilih kategori",
+ "PLACEHOLDER": "Pilih kategori",
+ "NO_RESULT": "Tiada kategori ditemui",
+ "SEARCH_PLACEHOLDER": "Cari kategori"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "Pengarang",
+ "TITLE": "Pilih pengarang",
+ "PLACEHOLDER": "Pilih pengarang",
+ "NO_RESULT": "Tiada pengarang ditemui",
+ "SEARCH_PLACEHOLDER": "Cari pengarang"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "Tajuk meta",
+ "PLACEHOLDER": "Tambah tajuk meta"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "Deskripsi meta",
+ "PLACEHOLDER": "Tambah penerangan meta anda untuk hasil SEO yang lebih baik..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "Tag meta",
+ "PLACEHOLDER": "Tambah tag meta yang dipisahkan dengan koma..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "Arkibkan artikel",
+ "DELETE": "Padam artikel"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "Tidak Dikategorikan",
+ "SEARCH_RESULTS": "Keputusan carian untuk {query}",
+ "EMPTY_TEXT": "Cari artikel untuk dimasukkan ke dalam balasan.",
+ "SEARCH_LOADER": "Sedang mencari...",
+ "INSERT_ARTICLE": "Sisipkan",
+ "NO_RESULT": "Tiada artikel dijumpai",
+ "COPY_LINK": "Salin pautan artikel ke papan klip",
+ "OPEN_LINK": "Buka artikel dalam tab baru",
+ "PREVIEW_LINK": "Pratonton artikel"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "Portal",
+ "DEFAULT": "Lalai",
+ "NEW_BUTTON": "Portal Baru",
+ "ACTIVE_BADGE": "aktif",
+ "CHOOSE_LOCALE_LABEL": "Pilih lokal",
+ "LOADING_MESSAGE": "Memuatkan portal...",
+ "ARTICLES_LABEL": "artikel",
+ "NO_PORTALS_MESSAGE": "Tiada portal yang tersedia",
+ "ADD_NEW_LOCALE": "Tambah lokal baru",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
+ "TITLE": "Portal",
+ "PORTAL_SETTINGS": "Tetapan portal",
+ "SUBTITLE": "Anda mempunyai pelbagai portal dan boleh mempunyai lokal berbeza untuk setiap portal.",
"CANCEL_BUTTON_LABEL": "Batalkan",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "CHOOSE_LOCALE_BUTTON": "Pilih Lokasi"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
- "SETTINGS": "Settings",
+ "COUNT_LABEL": "artikel",
+ "ADD": "Tambah lokal",
+ "VISIT": "Lawati laman",
+ "SETTINGS": "Tetapan",
"DELETE": "Padamkan"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "Konfigurasi Portal",
"ITEMS": {
"NAME": "Nama",
- "DOMAIN": "Custom domain",
+ "DOMAIN": "Domain tersuai",
"SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "TITLE": "Tajuk portal",
+ "THEME": "Warna tema",
+ "SUB_TEXT": "Teks sub portal"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "Tempat setempat tersedia",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
+ "NAME": "Nama tempat setempat",
+ "CODE": "Kod tempat setempat",
+ "ARTICLE_COUNT": "Bilangan artikel",
+ "CATEGORIES": "Bilangan kategori",
+ "SWAP": "Tukar",
"DELETE": "Padamkan",
- "DEFAULT_LOCALE": "Default"
+ "DEFAULT_LOCALE": "Lalai"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "Padam portal",
+ "MESSAGE": "Adakah anda pasti mahu memadam portal ini",
+ "YES": "Ya, padam portal",
+ "NO": "Tidak, simpan portal",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "Portal berjaya dipadam",
+ "DELETE_ERROR": "Ralat semasa memadam portal"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "Arahan CNAME berjaya dihantar",
+ "ERROR_MESSAGE": "Ralat semasa menghantar arahan CNAME"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "Sunting portal",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "Maklumat asas"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "Penyesuaian portal"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "Kategori"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "Lokal"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "Kategori dalam",
+ "NEW_CATEGORY": "Kategori baru",
"TABLE": {
"NAME": "Nama",
- "DESCRIPTION": "Description",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "DESCRIPTION": "Penerangan",
+ "LOCALE": "Lokal",
+ "ARTICLE_COUNT": "Bilangan artikel",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "Sunting kategori",
+ "DELETE": "Padam kategori"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "Tiada kategori ditemui"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "Kemas kini tetapan asas"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Maklumat pusat bantuan",
+ "BODY": "Maklumat asas tentang portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Penyesuaian pusat bantuan",
+ "BODY": "Sesuaikan portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "Anda sudah bersedia!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
- "BACK_BUTTON": "Back",
+ "BACK_BUTTON": "Kembali",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "Buat Portal",
+ "TITLE": "Maklumat pusat bantuan",
+ "CREATE_BASIC_SETTING_BUTTON": "Buat tetapan asas portal"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "Penyesuaian portal",
+ "TITLE": "Penyesuaian pusat bantuan",
+ "UPDATE_PORTAL_BUTTON": "Kemas kini tetapan portal"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "Voila!🎉 Anda sudah bersedia!",
+ "MESSAGE": "Anda kini boleh melihat portal yang telah dibuat ini di halaman semua portal anda.",
+ "FINISH": "Pergi ke halaman semua portal"
}
},
"LOGO": {
"LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "UPLOAD_BUTTON": "Muat naik logo",
+ "HELP_TEXT": "Logo ini akan dipaparkan pada tajuk portal.",
+ "IMAGE_UPLOAD_SUCCESS": "Logo berjaya dimuat naik",
+ "IMAGE_UPLOAD_ERROR": "Logo berjaya dipadam",
+ "IMAGE_DELETE_ERROR": "Ralat semasa memadam logo"
},
"NAME": {
"LABEL": "Nama",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nama portal",
+ "HELP_TEXT": "Nama ini akan digunakan dalam portal yang dihadapi oleh umum secara dalaman.",
+ "ERROR": "Nama diperlukan"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "PLACEHOLDER": "Slug portal untuk url",
+ "ERROR": "Slug diperlukan"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "Domain Tersuai",
+ "PLACEHOLDER": "Domain tersuai portal",
+ "HELP_TEXT": "Tambah hanya jika anda ingin menggunakan domain tersuai untuk portal anda. Contoh: {exampleURL}",
+ "ERROR": "Masukkan URL domain yang sah"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "Pautan Halaman Utama",
+ "PLACEHOLDER": "Pautan halaman utama portal",
+ "HELP_TEXT": "Pautan yang digunakan untuk kembali dari portal ke halaman utama. Contoh: {exampleURL}",
+ "ERROR": "Masukkan URL halaman utama yang sah"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "Warna tema portal",
+ "HELP_TEXT": "Warna ini akan dipaparkan sebagai warna tema untuk portal."
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "Tajuk Halaman",
+ "PLACEHOLDER": "Tajuk halaman portal",
+ "HELP_TEXT": "Tajuk halaman akan digunakan dalam portal yang dihadapi oleh orang awam.",
+ "ERROR": "Tajuk halaman diperlukan"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "Teks Tajuk",
+ "PLACEHOLDER": "Teks tajuk portal",
+ "HELP_TEXT": "Teks tajuk Portal akan digunakan dalam portal yang dihadapi oleh orang awam.",
+ "ERROR": "Teks tajuk portal diperlukan"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "Portal berjaya dibuat.",
+ "ERROR_MESSAGE_FOR_BASIC": "Tidak dapat membuat portal. Sila cuba lagi.",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "Portal berjaya dikemas kini.",
+ "ERROR_MESSAGE_FOR_UPDATE": "Tidak dapat mengemas kini portal. Sila cuba lagi."
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
+ "TITLE": "Tambah lokal baru",
+ "SUB_TITLE": "Ini menambah locale baru ke dalam senarai terjemahan yang tersedia.",
"PORTAL": "Portal",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "Lokal",
+ "PLACEHOLDER": "Pilih locale",
+ "ERROR": "Locale diperlukan"
},
"BUTTONS": {
- "CREATE": "Create locale",
+ "CREATE": "Cipta lokal",
"CANCEL": "Batalkan"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "Lokal berjaya ditambah",
+ "ERROR_MESSAGE": "Tidak dapat menambah lokal. Sila cuba lagi."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "Lokal lalai berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini lokal lalai. Sila cuba lagi."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "Lokal berjaya dikeluarkan dari portal",
+ "ERROR_MESSAGE": "Tidak dapat mengeluarkan lokal dari portal. Sila cuba lagi."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "Memuatkan artikel...",
+ "404": "Tiada artikel yang sepadan dengan carian anda 🔍",
+ "NO_ARTICLES": "Tiada artikel yang tersedia",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
+ "TITLE": "Tajuk",
+ "CATEGORY": "Kategori",
+ "READ_COUNT": "Tontonan",
"STATUS": "Status",
- "LAST_EDITED": "Last edited"
+ "LAST_EDITED": "Terakhir disunting"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "oleh",
+ "AUTHOR_NOT_AVAILABLE": "Pengarang tidak tersedia"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "Memuatkan artikel...",
+ "TITLE_PLACEHOLDER": "Tajuk artikel di sini",
+ "CONTENT_PLACEHOLDER": "Tulis artikel anda di sini",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "Ralat semasa menyimpan artikel"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "Ralat semasa menerbitkan artikel",
+ "SUCCESS": "Artikel berjaya diterbitkan"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "Ralat semasa mengarkibkan artikel",
+ "SUCCESS": "Artikel berjaya diarkibkan"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Ralat semasa merangka artikel",
+ "SUCCESS": "Artikel berjaya dirangka"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
"TITLE": "Pasti Padamkan",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
- "NO": "No, Keep it"
+ "MESSAGE": "Adakah anda pasti mahu memadam artikel ini?",
+ "YES": "Ya, Padam",
+ "NO": "Tidak, Simpan"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "Artikel berjaya dipadam",
+ "ERROR_MESSAGE": "Ralat semasa memadam artikel"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Tidak dapat menyusun semula artikel. Sila cuba lagi."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Tidak dapat menyusun semula kategori. Sila cuba lagi."
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "Sila tambah tajuk dan kandungan artikel sebelum anda boleh mengemas kini tetapan"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "Cari artikel"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
+ "TITLE": "Buat kategori",
+ "SUB_TITLE": "Kategori ini akan digunakan dalam portal yang dihadapi umum untuk mengkategorikan artikel.",
"PORTAL": "Portal",
- "LOCALE": "Locale",
+ "LOCALE": "Lokal",
"NAME": {
"LABEL": "Nama",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nama kategori",
+ "HELP_TEXT": "Nama kategori dan ikon akan digunakan dalam portal yang dihadapi umum untuk mengkategorikan artikel.",
+ "ERROR": "Nama diperlukan"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "PLACEHOLDER": "Slug kategori untuk url",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug diperlukan"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Berikan penerangan ringkas tentang kategori.",
+ "ERROR": "Penerangan diperlukan"
},
"BUTTONS": {
- "CREATE": "Create category",
+ "CREATE": "Cipta kategori",
"CANCEL": "Batalkan"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "Kategori berjaya dibuat",
+ "ERROR_MESSAGE": "Tidak dapat membuat kategori"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
+ "TITLE": "Sunting kategori",
+ "SUB_TITLE": "Menyunting kategori akan mengemas kini kategori dalam portal yang dihadapi umum.",
"PORTAL": "Portal",
- "LOCALE": "Locale",
+ "LOCALE": "Lokal",
"NAME": {
"LABEL": "Nama",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "PLACEHOLDER": "Nama kategori",
+ "HELP_TEXT": "Nama kategori dan ikon akan digunakan dalam portal awam untuk mengkategorikan artikel.",
+ "ERROR": "Nama diperlukan"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "PLACEHOLDER": "Slug kategori untuk url",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "Slug diperlukan"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Berikan penerangan ringkas tentang kategori tersebut.",
+ "ERROR": "Penerangan diperlukan"
},
"BUTTONS": {
- "CREATE": "Update category",
+ "CREATE": "Kemas kini kategori",
"CANCEL": "Batalkan"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "Kategori berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini kategori"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "Kategori berjaya dipadam",
+ "ERROR_MESSAGE": "Tidak dapat memadam kategori"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
- "CANCEL": "Close",
- "BACK": "Back",
- "BACK_RESULTS": "Back to results"
+ "TITLE": "Cari artikel",
+ "PLACEHOLDER": "Cari artikel",
+ "NO_RESULT": "Tiada artikel dijumpai",
+ "SEARCHING": "Sedang mencari...",
+ "SEARCH_BUTTON": "Cari",
+ "INSERT_ARTICLE": "Masukkan pautan",
+ "IFRAME_ERROR": "URL kosong atau tidak sah. Tidak dapat memaparkan kandungan.",
+ "OPEN_ARTICLE_SEARCH": "Masukkan artikel dari Pusat Bantuan",
+ "SUCCESS_ARTICLE_INSERTED": "Artikel berjaya dimasukkan",
+ "PREVIEW_LINK": "Pratonton artikel",
+ "CANCEL": "Tutup",
+ "BACK": "Kembali",
+ "BACK_RESULTS": "Kembali ke keputusan"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "Pusat Bantuan",
+ "DESCRIPTION": "Cipta portal layan diri mesra pengguna. Bantu pengguna anda mengakses artikel dan mendapatkan sokongan 24/7. Tingkatkan langganan anda untuk mengaktifkan ciri ini.",
+ "SELF_HOSTED_DESCRIPTION": "Cipta portal layan diri mesra pengguna. Bantu pengguna anda mengakses artikel dan mendapatkan sokongan 24/7. Sila hubungi pentadbir anda untuk mengaktifkan ciri ini.",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "Ketahui lebih lanjut",
+ "UPGRADE": "Tingkatkan"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "Pelbagai portal",
+ "DESCRIPTION": "Cipta pelbagai portal pusat bantuan untuk produk yang berbeza menggunakan akaun yang sama."
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "Sokongan penuh untuk lokal",
+ "DESCRIPTION": "Lokalkan portal dalam bahasa anda. Kami menyokong semua lokal dan membenarkan terjemahan untuk setiap artikel."
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "Reka bentuk mesra SEO",
+ "DESCRIPTION": "Sesuaikan tag meta anda untuk meningkatkan keterlihatan anda di enjin carian dengan halaman mesra SEO kami."
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "Sokongan API penuh",
+ "DESCRIPTION": "Gunakan portal sebagai CMS tanpa kepala dengan rangka kerja front-end pihak ketiga menggunakan API kami."
}
}
+ },
+ "LOADING": "Memuatkan...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} tontonan | {count} tontonan",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Arkib",
+ "TRANSLATE": "Terjemah",
+ "DELETE": "Padamkan"
+ },
+ "STATUS": {
+ "DRAFT": "Draf",
+ "PUBLISHED": "Diterbitkan",
+ "ARCHIVED": "Diarkibkan"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Tidak Dikategorikan"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Semua artikel",
+ "MINE": "Milik saya",
+ "DRAFT": "Draf",
+ "PUBLISHED": "Diterbitkan",
+ "ARCHIVED": "Diarkibkan"
+ },
+ "CATEGORY": {
+ "ALL": "Semua kategori"
+ },
+ "LOCALE": {
+ "ALL": "Semua lokasi"
+ },
+ "NEW_ARTICLE": "Artikel baru"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Tulis artikel",
+ "SUBTITLE": "Tulis artikel yang kaya, mari kita mulakan!",
+ "BUTTON_LABEL": "Artikel baru"
+ },
+ "MINE": {
+ "TITLE": "Anda belum menulis sebarang artikel di sini",
+ "SUBTITLE": "Semua artikel yang anda tulis akan dipaparkan di sini untuk akses cepat."
+ },
+ "DRAFT": {
+ "TITLE": "Tiada artikel dalam draf",
+ "SUBTITLE": "Artikel draf akan muncul di sini"
+ },
+ "PUBLISHED": {
+ "TITLE": "Tiada artikel yang diterbitkan",
+ "SUBTITLE": "Artikel yang diterbitkan akan muncul di sini"
+ },
+ "ARCHIVED": {
+ "TITLE": "Tiada artikel dalam arkib",
+ "SUBTITLE": "Artikel yang diarkibkan tidak dipaparkan di portal, anda boleh menggunakannya untuk menandakan halaman yang usang atau tidak lagi digunakan"
+ },
+ "CATEGORY": {
+ "TITLE": "Tiada artikel dalam kategori ini",
+ "SUBTITLE": "Artikel dalam kategori ini akan dipaparkan di sini"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Terjemah",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "SELECTED_COUNT": "{count} dipilih",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Terjemah",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Arkib",
+ "TRANSLATE": "Terjemah",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Padamkan",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Padamkan",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Kategori baru",
+ "EDIT_CATEGORY": "Sunting kategori",
+ "CATEGORIES_COUNT": "{n} kategori | {n} kategori",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Kategori ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} artikel) | {categoryName} ({categoryCount} artikel)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Tiada kategori ditemui",
+ "SUBTITLE": "Kategori akan dipaparkan di sini. Anda boleh menambah kategori dengan mengklik butang 'Kategori Baru'."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} artikel | {count} artikel"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori berjaya dibuat",
+ "ERROR_MESSAGE": "Tidak dapat membuat kategori"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini kategori"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategori berjaya dipadam",
+ "ERROR_MESSAGE": "Tidak dapat memadam kategori"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Buat kategori",
+ "EDIT": "Sunting kategori",
+ "DESCRIPTION": "Menyunting kategori akan mengemas kini kategori di portal yang dihadapi umum.",
+ "PORTAL": "Portal",
+ "LOCALE": "Lokal"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Nama kategori",
+ "ERROR": "Nama diperlukan"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug kategori untuk url",
+ "ERROR": "Slug diperlukan",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Berikan penerangan ringkas tentang kategori.",
+ "ERROR": "Penerangan diperlukan"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Cipta",
+ "EDIT": "Kemas kini",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Tiada lokal tersedia | {n} lokal | {n} lokal",
+ "NEW_LOCALE_BUTTON_TEXT": "Lokal baru",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} artikel | {count} artikel",
+ "CATEGORIES_COUNT": "{count} kategori | {count} kategori",
+ "DEFAULT": "Lalai",
+ "DRAFT": "Draf",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Jadikan lalai",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Padamkan"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Tambah lokal baru",
+ "DESCRIPTION": "Pilih bahasa di mana artikel ini akan ditulis. Ini akan ditambah ke senarai terjemahan anda, dan anda boleh menambah lebih banyak kemudian.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Pilih lokal..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Diterbitkan",
+ "DRAFT": "Draf"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Lokal berjaya ditambah",
+ "ERROR_MESSAGE": "Tidak dapat menambah lokal. Sila cuba lagi."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Menyimpan...",
+ "SAVED": "Disimpan"
+ },
+ "PREVIEW": "Pratonton",
+ "PUBLISH": "Terbitkan",
+ "DRAFT": "Draf",
+ "ARCHIVE": "Arkib",
+ "BACK_TO_ARTICLES": "Kembali ke artikel"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Lebih banyak sifat",
+ "UNCATEGORIZED": "Tidak dikategorikan",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Sifat artikel",
+ "META_DESCRIPTION": "Penerangan meta",
+ "META_DESCRIPTION_PLACEHOLDER": "Tambah penerangan meta",
+ "META_TITLE": "Tajuk meta",
+ "META_TITLE_PLACEHOLDER": "Tambah tajuk meta",
+ "META_TAGS": "Tag meta",
+ "META_TAGS_PLACEHOLDER": "Tambah tag meta"
+ },
+ "API": {
+ "ERROR": "Ralat semasa menyimpan artikel"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Portal baru",
+ "PORTALS": "Portal",
+ "CREATE_PORTAL": "Cipta dan uruskan pelbagai portal",
+ "ARTICLES": "artikel",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Nama portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Cipta portal baru",
+ "DESCRIPTION": "Berikan nama kepada portal anda dan cipta URL slug yang mesra pengguna. Anda boleh mengubah kedua-duanya kemudian dalam tetapan.",
+ "CONFIRM_BUTTON_LABEL": "Cipta",
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Panduan Pengguna | Chatwoot",
+ "MESSAGE": "Pilih nama untuk portal anda.",
+ "ERROR": "Nama diperlukan"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "panduan-pengguna",
+ "ERROR": "Slug diperlukan",
+ "FORMAT_ERROR": "Sila masukkan slug yang sah, contohnya: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Gagal memuat naik imej! Sila cuba lagi",
+ "IMAGE_UPLOAD_SUCCESS": "Imej berjaya ditambah. Sila klik simpan perubahan untuk menyimpan logo",
+ "IMAGE_DELETE_SUCCESS": "Logo berjaya dipadam",
+ "IMAGE_DELETE_ERROR": "Tidak dapat memadam logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Saiz imej harus kurang daripada {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Nama portal",
+ "ERROR": "Nama diperlukan"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Teks tajuk",
+ "PLACEHOLDER": "Teks pengepala portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Tajuk halaman",
+ "PLACEHOLDER": "Tajuk halaman portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Pautan halaman utama",
+ "PLACEHOLDER": "Pautan halaman utama portal",
+ "ERROR": "Masukkan URL yang sah. Pautan Halaman Utama mesti bermula dengan 'http://' atau 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug portal"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Widget sembang langsung",
+ "PLACEHOLDER": "Pilih widget sembang langsung",
+ "HELP_TEXT": "Pilih widget sembang langsung yang akan muncul di pusat bantuan anda",
+ "NONE_OPTION": "Tiada widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Warna jenama"
+ },
+ "SAVE_CHANGES": "Simpan perubahan"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domain tersuai",
+ "LABEL": "Domain tersuai:",
+ "DESCRIPTION": "Anda boleh menghoskan portal anda pada domain tersuai. Contohnya, jika laman web anda adalah yourdomain.com dan anda mahu portal anda tersedia di docs.yourdomain.com, masukkan sahaja alamat itu dalam medan ini.",
+ "STATUS_DESCRIPTION": "Portal khusus anda akan mula berfungsi sebaik sahaja ia disahkan.",
+ "PLACEHOLDER": "Domain khusus portal",
+ "EDIT_BUTTON": "Sunting",
+ "ADD_BUTTON": "Tambah domain khusus",
+ "STATUS": {
+ "LIVE": "Aktif",
+ "PENDING": "Menunggu pengesahan",
+ "ERROR": "Pengesahan gagal"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Tambah domain khusus",
+ "EDIT_HEADER": "Sunting domain khusus",
+ "ADD_CONFIRM_BUTTON_LABEL": "Tambah domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Kemas kini domain",
+ "LABEL": "Domain tersuai",
+ "PLACEHOLDER": "Domain tersuai portal",
+ "ERROR": "Domain tersuai diperlukan",
+ "FORMAT_ERROR": "Sila masukkan URL domain yang sah contohnya docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "Konfigurasi DNS",
+ "DESCRIPTION": "Log masuk ke akaun anda dengan penyedia DNS anda, dan tambah rekod CNAME untuk subdomain yang menunjuk ke chatwoot.help",
+ "COPY": "Berjaya menyalin CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Hantar arahan",
+ "DESCRIPTION": "Jika anda lebih suka seseorang dari pasukan pembangunan anda mengendalikan langkah ini, anda boleh masukkan alamat emel di bawah, dan kami akan menghantar arahan yang diperlukan kepada mereka.",
+ "PLACEHOLDER": "Masukkan emel mereka",
+ "ERROR": "Masukkan alamat emel yang sah",
+ "SEND_BUTTON": "Hantar"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Padam {portalName}",
+ "HEADER": "Padam portal",
+ "DESCRIPTION": "Padam portal ini secara kekal. Tindakan ini tidak boleh dibatalkan",
+ "DIALOG": {
+ "HEADER": "Anda pasti mahu memadam {portalName}?",
+ "DESCRIPTION": "Ini adalah tindakan kekal yang tidak boleh dibatalkan.",
+ "CONFIRM_BUTTON_LABEL": "Padamkan"
+ }
+ },
+ "EDIT_CONFIGURATION": "Sunting konfigurasi"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Padam"
+ },
+ "SAVE": "Simpan perubahan"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal berjaya dibuat",
+ "ERROR_MESSAGE": "Tidak dapat membuat portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Muat Naik Dokumen PDF",
+ "DESCRIPTION": "Muat naik dokumen PDF untuk menjana Soalan Lazim secara automatik menggunakan AI",
+ "DRAG_DROP_TEXT": "Seret dan lepaskan fail PDF anda di sini, atau klik untuk memilih",
+ "SELECT_FILE": "Pilih Fail PDF",
+ "ADDITIONAL_CONTEXT_LABEL": "Konteks Tambahan (Pilihan)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Berikan sebarang konteks tambahan atau arahan untuk penjanaan FAQ...",
+ "UPLOADING": "Memuat naik...",
+ "UPLOAD": "Muat Naik & Proses",
+ "CANCEL": "Batalkan",
+ "ERROR_INVALID_TYPE": "Sila pilih fail PDF yang sah",
+ "ERROR_FILE_TOO_LARGE": "Saiz fail mesti kurang daripada 512MB",
+ "ERROR_UPLOAD_FAILED": "Gagal memuat naik PDF. Sila cuba lagi."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "Dokumen PDF",
+ "DESCRIPTION": "Urus dokumen PDF yang dimuat naik dan jana Soalan Lazim daripadanya",
+ "UPLOAD_PDF": "Muat naik PDF",
+ "UPLOAD_FIRST_PDF": "Muat naik PDF pertama anda",
+ "UPLOADED_BY": "Dimuat naik oleh",
+ "GENERATE_FAQS": "Jana Soalan Lazim",
+ "GENERATING": "Sedang menjana...",
+ "CONFIRM_DELETE": "Adakah anda pasti mahu memadam {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "Tiada dokumen PDF lagi",
+ "DESCRIPTION": "Muat naik dokumen PDF untuk menjana FAQ secara automatik menggunakan AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Sedia",
+ "PROCESSING": "Sedang Diproses",
+ "PROCESSED": "Selesai",
+ "FAILED": "Gagal"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Penjanaan Kandungan",
+ "DESCRIPTION": "Muat naik dokumen PDF untuk menjana kandungan FAQ secara automatik menggunakan AI",
+ "UPLOAD_TITLE": "Muat Naik Dokumen PDF",
+ "DRAG_DROP": "Seret dan lepaskan fail PDF anda di sini, atau klik untuk memilih",
+ "SELECT_FILE": "Pilih Fail PDF",
+ "UPLOADING": "Memproses dokumen...",
+ "UPLOAD_SUCCESS": "Dokumen berjaya diproses!",
+ "UPLOAD_ERROR": "Gagal memuat naik dokumen. Sila cuba lagi.",
+ "INVALID_FILE_TYPE": "Sila pilih fail PDF yang sah",
+ "FILE_TOO_LARGE": "Saiz fail mesti kurang daripada 512MB",
+ "GENERATED_CONTENT": "Kandungan FAQ yang Dijana",
+ "PUBLISH_SELECTED": "Terbitkan Yang Dipilih",
+ "PUBLISHING": "Menerbitkan...",
+ "FROM_DOCUMENT": "Daripada dokumen",
+ "NO_CONTENT": "Tiada kandungan yang dijana tersedia. Muat naik dokumen PDF untuk memulakan.",
+ "LOADING": "Memuatkan kandungan yang dijana..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/inbox.json b/app/javascript/dashboard/i18n/locale/ms/inbox.json
index bca81b233..7bf546094 100644
--- a/app/javascript/dashboard/i18n/locale/ms/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ms/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
index 6c9b031c1..dfd586a29 100644
--- a/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/inboxMgmt.json
@@ -1,50 +1,71 @@
{
"INBOX_MGMT": {
- "HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "HEADER": "Peti Masuk",
+ "DESCRIPTION": "Saluran adalah cara komunikasi yang dipilih pelanggan anda untuk berinteraksi dengan anda. Peti masuk adalah tempat anda menguruskan interaksi untuk saluran tertentu. Ia boleh merangkumi komunikasi dari pelbagai sumber seperti emel, sembang langsung, dan media sosial.",
+ "LEARN_MORE": "Ketahui lebih lanjut tentang peti masuk",
+ "COUNT": "{n} peti masuk | {n} peti masuk",
+ "SEARCH_PLACEHOLDER": "Cari peti masuk...",
+ "NO_RESULTS": "Tiada peti masuk ditemui yang sepadan dengan carian anda",
+ "RECONNECTION_REQUIRED": "Peti masuk anda terputus sambungan. Anda tidak akan menerima mesej baru sehingga anda mengesahkannya semula.",
+ "CLICK_TO_RECONNECT": "Klik di sini untuk menyambung semula.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Selesaikan Pendaftaran",
"LIST": {
- "404": "There are no inboxes attached to this account."
+ "404": "Tiada peti masuk yang disambungkan ke akaun ini."
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Pilih Saluran",
+ "BODY": "Choose the provider you want to integrate with Chatwoot."
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "Buat Peti Masuk",
+ "BODY": "Sahkan akaun anda dan cipta peti masuk."
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "Tambah Ejen",
+ "BODY": "Tambah ejen ke peti masuk yang telah dibuat."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "Selesai!",
+ "BODY": "Anda sudah bersedia untuk memulakan!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
+ "LABEL": "Nama Peti Masuk",
"PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "ERROR": "Sila masukkan nama peti masuk yang sah"
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
+ "LABEL": "Nama Laman Web",
"PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
},
"FB": {
"HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.",
- "CHOOSE_PAGE": "Choose Page",
- "CHOOSE_PLACEHOLDER": "Select a page from the list",
- "INBOX_NAME": "Inbox Name",
- "ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "CHOOSE_PAGE": "Pilih Halaman",
+ "CHOOSE_PLACEHOLDER": "Pilih halaman dari senarai",
+ "INBOX_NAME": "Nama Peti Masuk",
+ "ADD_NAME": "Tambah nama untuk peti masuk anda",
+ "PICK_NAME": "Pilih Nama untuk Peti Masuk anda",
+ "PICK_A_VALUE": "Pilih nilai",
+ "CREATE_INBOX": "Buat Peti 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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
@@ -54,101 +75,109 @@
}
},
"WEBSITE_CHANNEL": {
- "TITLE": "Website channel",
+ "TITLE": "Saluran laman web",
"DESC": "Create a channel for your website and start supporting your customers via our website widget.",
- "LOADING_MESSAGE": "Creating Website Support Channel",
+ "LOADING_MESSAGE": "Mencipta Saluran Sokongan Laman Web",
"CHANNEL_AVATAR": {
"LABEL": "Channel Avatar"
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "Please enter a valid URL"
+ "PLACEHOLDER": "Please enter your Webhook URL",
+ "ERROR": "Sila masukkan URL yang sah"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Salin rahsia ke papan klip",
+ "COPY_SUCCESS": "Rahsia disalin ke papan klip",
+ "TOGGLE": "Togol keterlihatan rahsia",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
"LABEL": "Website Domain",
"PLACEHOLDER": "Enter your website domain (eg: acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Welcome Heading",
- "PLACEHOLDER": "Hi there !"
+ "LABEL": "Tajuk Selamat Datang",
+ "PLACEHOLDER": "Hai di sana !"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "Tajuk Selamat Datang",
+ "PLACEHOLDER": "Kami memudahkan anda untuk berhubung dengan kami. Tanyakan apa sahaja, atau kongsi maklum balas anda."
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Channel greeting message",
+ "LABEL": "Mesej salam saluran",
"PLACEHOLDER": "Acme Inc typically replies in a few hours."
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "Enable channel greeting",
"HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
- "ENABLED": "Enabled",
+ "ENABLED": "Diaktifkan",
"DISABLED": "Disabled"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
+ "TITLE": "Tetapkan masa balasan",
+ "IN_A_FEW_MINUTES": "Dalam beberapa minit",
+ "IN_A_FEW_HOURS": "Dalam beberapa jam",
+ "IN_A_DAY": "Dalam sehari",
"HELP_TEXT": "This reply time will be displayed on the live chat widget"
},
"WIDGET_COLOR": {
"LABEL": "Widget Color",
"PLACEHOLDER": "Update the widget color used in widget"
},
- "SUBMIT_BUTTON": "Create inbox",
+ "SUBMIT_BUTTON": "Cipta peti masuk",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "Kami tidak dapat mencipta saluran laman web, sila cuba lagi"
}
},
"TWILIO": {
"TITLE": "Twilio SMS/WhatsApp Channel",
"DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
"ACCOUNT_SID": {
- "LABEL": "Account SID",
+ "LABEL": "SID Akaun",
"PLACEHOLDER": "Please enter your Twilio Account SID",
- "ERROR": "This field is required"
+ "ERROR": "Medan ini diperlukan"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
- "ERROR": "This field is required"
+ "USE_API_KEY": "Gunakan Pengesahan Kunci API",
+ "LABEL": "SID Kunci API",
+ "PLACEHOLDER": "Sila masukkan SID Kunci API anda",
+ "ERROR": "Medan ini diperlukan"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
- "ERROR": "This field is required"
+ "LABEL": "Rahsia Kunci API",
+ "PLACEHOLDER": "Sila masukkan Rahsia Kunci API anda",
+ "ERROR": "Medan ini diperlukan"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
+ "LABEL": "SID Perkhidmatan Mesej",
"PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
- "ERROR": "This field is required",
+ "ERROR": "Medan ini diperlukan",
"USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
},
"CHANNEL_TYPE": {
- "LABEL": "Channel Type",
- "ERROR": "Please select your Channel Type"
+ "LABEL": "Jenis Saluran",
+ "ERROR": "Sila pilih Jenis Saluran anda"
},
"AUTH_TOKEN": {
"LABEL": "Auth Token",
"PLACEHOLDER": "Please enter your Twilio Auth Token",
- "ERROR": "This field is required"
+ "ERROR": "Medan ini diperlukan"
},
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Peti Masuk",
+ "PLACEHOLDER": "Sila masukkan nama peti masuk",
+ "ERROR": "Medan ini diperlukan"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Nombor Telefon",
+ "PLACEHOLDER": "Sila masukkan nombor telefon yang akan digunakan untuk menghantar mesej.",
+ "ERROR": "Sila berikan nombor telefon yang sah yang bermula dengan tanda `+` dan tidak mengandungi ruang."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
+ "TITLE": "URL Panggilan Balik",
"SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
},
"SUBMIT_BUTTON": "Create Twilio Channel",
@@ -157,53 +186,53 @@
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "Saluran SMS",
+ "DESC": "Mula menyokong pelanggan anda melalui SMS.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Pembekal API",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "Kami tidak dapat menyimpan saluran SMS"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
+ "LABEL": "ID Akaun",
"PLACEHOLDER": "Please enter your Bandwidth Account ID",
- "ERROR": "This field is required"
+ "ERROR": "Medan ini diperlukan"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
- "ERROR": "This field is required"
+ "LABEL": "Kunci API",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
+ "ERROR": "Medan ini diperlukan"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
- "ERROR": "This field is required"
+ "LABEL": "Rahsia API",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
+ "ERROR": "Medan ini diperlukan"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
+ "LABEL": "ID Aplikasi",
"PLACEHOLDER": "Please enter your Bandwidth Application ID",
- "ERROR": "This field is required"
+ "ERROR": "Medan ini diperlukan"
},
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Peti Masuk",
+ "PLACEHOLDER": "Sila masukkan nama peti masuk",
+ "ERROR": "Medan ini diperlukan"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Nombor telefon",
+ "PLACEHOLDER": "Sila masukkan nombor telefon yang akan digunakan untuk menghantar mesej.",
+ "ERROR": "Sila berikan nombor telefon yang sah yang bermula dengan tanda `+` dan tidak mengandungi ruang."
},
"SUBMIT_BUTTON": "Create Bandwidth Channel",
"API": {
"ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
+ "TITLE": "URL Panggilan Balik",
"SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
}
}
@@ -212,228 +241,375 @@
"TITLE": "WhatsApp Channel",
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Penyedia API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Pilih penyedia API anda",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter an inbox name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Peti Masuk",
+ "PLACEHOLDER": "Sila masukkan nama peti masuk",
+ "ERROR": "Medan ini diperlukan"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "Nombor telefon",
+ "PLACEHOLDER": "Sila masukkan nombor telefon yang akan digunakan untuk menghantar mesej.",
+ "ERROR": "Sila berikan nombor telefon yang sah yang bermula dengan tanda `+` dan tidak mengandungi ruang."
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
+ "LABEL": "ID nombor telefon",
"PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "ERROR": "Sila masukkan nilai yang sah."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
+ "LABEL": "ID Akaun Perniagaan",
"PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "ERROR": "Sila masukkan nilai yang sah."
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
+ "ERROR": "Sila masukkan nilai yang sah."
},
"API_KEY": {
- "LABEL": "API key",
+ "LABEL": "Kunci API",
"SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "PLACEHOLDER": "Kunci API",
+ "ERROR": "Sila masukkan nilai yang sah."
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
+ "TITLE": "URL Panggilan Balik",
"SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
"WEBHOOK_URL": "Webhook URL",
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Gunakan aliran Pendaftaran Terbenam WhatsApp untuk menyambungkan nombor baru dengan cepat. Anda akan dialihkan ke Meta untuk log masuk ke akaun WhatsApp Business anda. Mempunyai akses pentadbir akan membantu menjadikan tetapan lebih lancar dan mudah.",
+ "BENEFITS": {
+ "TITLE": "Kelebihan Pendaftaran Terbenam:",
+ "EASY_SETUP": "Tiada konfigurasi manual diperlukan",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "Untuk mengetahui lebih lanjut mengenai pendaftaran bersepadu, harga, dan had, lawati {link}.",
+ "LINK_TEXT": "pautan ini"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Menunggu pengesahan...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Ralat semasa pendaftaran berlaku",
+ "AUTH_NOT_COMPLETED": "Pengesahan tidak selesai. Sila mulakan semula proses.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "aliran tetapan manual",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Saluran Suara",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Nombor Telefon",
+ "PLACEHOLDER": "Masukkan nombor telefon anda (contoh: +1234567890)",
+ "ERROR": "Sila berikan nombor telefon yang sah dalam format E.164 (contoh: +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID Akaun",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "SID Akaun diperlukan"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Auth Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "SID Kunci API",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "SID Kunci API diperlukan"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "Rahsia Kunci API",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "Rahsia Kunci API diperlukan"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Buat Saluran Suara",
+ "API": {
+ "ERROR_MESSAGE": "Kami tidak dapat membuat saluran suara"
+ }
+ },
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "Saluran API",
+ "DESC": "Integrasi dengan saluran API dan mula menyokong pelanggan anda.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Saluran",
+ "PLACEHOLDER": "Sila masukkan nama saluran",
+ "ERROR": "Medan ini diperlukan"
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "Buat Saluran API",
"API": {
"ERROR_MESSAGE": "We were not able to save the api channel"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "Saluran Emel",
+ "DESC": "Gabungkan peti masuk emel anda.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Saluran",
+ "PLACEHOLDER": "Sila masukkan nama saluran",
+ "ERROR": "Medan ini diperlukan"
},
"EMAIL": {
- "LABEL": "Email",
+ "LABEL": "Emel",
"SUBTITLE": "Email where your customers sends you support tickets",
- "PLACEHOLDER": "Email"
+ "PLACEHOLDER": "Emel"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "Buat Saluran Emel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "Kami tidak dapat menyimpan saluran emel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Teruskan emel ke alamat ini:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klik di sini",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "Saluran LINE",
+ "DESC": "Gabungkan dengan saluran LINE dan mula menyokong pelanggan anda.",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "Nama Saluran",
+ "PLACEHOLDER": "Sila masukkan nama saluran",
+ "ERROR": "Medan ini diperlukan"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "ID Saluran LINE",
+ "PLACEHOLDER": "ID Saluran LINE"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "Rahsia Saluran LINE",
+ "PLACEHOLDER": "Rahsia Saluran LINE"
},
"LINE_CHANNEL_TOKEN": {
"LABEL": "LINE Channel Token",
"PLACEHOLDER": "LINE Channel Token"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "Buat Saluran LINE",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "Kami tidak dapat menyimpan saluran LINE"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
+ "TITLE": "URL Panggilan Balik",
"SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Saluran Telegram",
+ "DESC": "Gabungkan dengan saluran Telegram dan mula menyokong pelanggan anda.",
"BOT_TOKEN": {
"LABEL": "Bot Token",
"SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
"PLACEHOLDER": "Bot Token"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Buat Saluran Telegram",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "Kami tidak dapat menyimpan saluran telegram"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "Pilih saluran",
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Selesaikan tetapan",
+ "TITLE_FINISH": "Selesai!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Laman Web",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "Emel",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Suara",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Ejen",
- "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "DESC": "Di sini anda boleh menambah ejen untuk mengurus peti masuk yang baru anda cipta. Hanya ejen yang dipilih ini akan mempunyai akses ke peti masuk anda. Ejen yang bukan sebahagian daripada peti masuk ini tidak akan dapat melihat atau membalas mesej dalam peti masuk ini apabila mereka log masuk.
PS: Sebagai pentadbir, jika anda memerlukan akses ke semua peti masuk, anda harus menambah diri anda sebagai ejen ke semua peti masuk yang anda cipta.",
+ "VALIDATION_ERROR": "Tambah sekurang-kurangnya seorang ejen ke Peti Masuk baru anda",
+ "PICK_AGENTS": "Pilih ejen untuk peti masuk"
},
"DETAILS": {
- "TITLE": "Inbox Details",
- "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification."
+ "TITLE": "Butiran Peti Masuk",
+ "DESC": "Daripada menu lungsur di bawah, pilih Halaman Facebook yang anda ingin sambungkan ke Chatwoot. Anda juga boleh memberikan nama khusus kepada peti masuk anda untuk pengenalan yang lebih baik."
},
"FINISH": {
- "TITLE": "Nailed It!",
- "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)"
+ "TITLE": "Berjaya!",
+ "DESC": "Anda telah berjaya menyelesaikan integrasi Halaman Facebook anda dengan Chatwoot. Kali berikutnya pelanggan menghantar mesej ke Halaman anda, perbualan akan muncul secara automatik di peti masuk anda.
Kami juga menyediakan skrip widget yang boleh anda tambahkan dengan mudah ke laman web anda. Setelah ia aktif di laman web anda, pelanggan boleh menghantar mesej terus dari laman web tanpa menggunakan alat luaran dan perbualan akan muncul di sini, di Chatwoot.
Hebat, bukan? Kami memang berusaha sedemikian :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "Pilih penyedia emel anda",
+ "DESCRIPTION": "Pilih penyedia emel dari senarai di bawah. Jika anda tidak melihat penyedia emel anda dalam senarai, anda boleh memilih pilihan penyedia lain dan berikan kelayakan IMAP dan SMTP."
},
"MICROSOFT": {
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "EMAIL_PLACEHOLDER": "Masukkan alamat emel",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Masukkan alamat emel",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Authenticating you with Facebook...",
- "ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
+ "ERROR_FB_AUTH": "Ada masalah, Sila muat semula halaman...",
+ "ERROR_FB_UNAUTHORIZED": "Anda tidak dibenarkan untuk melakukan tindakan ini. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creating your Inbox...",
+ "CREATING_CHANNEL": "Sedang membuat Peti Masuk anda...",
"TITLE": "Configure Inbox Details",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents",
- "ADD_AGENTS": "Adding Agents to your Inbox..."
+ "BUTTON_TEXT": "Tambah ejen",
+ "ADD_AGENTS": "Menambah Ejen ke Peti Masuk anda..."
},
"FINISH": {
- "TITLE": "Your Inbox is ready!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "TITLE": "Peti Masuk anda sudah sedia!",
+ "MESSAGE": "Anda kini boleh berinteraksi dengan pelanggan anda melalui Saluran baru anda. Selamat memberi sokongan",
+ "BUTTON_TEXT": "Bawa saya ke sana",
+ "MORE_SETTINGS": "Tetapan lanjut",
+ "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Imbas kod QR di atas untuk menguji peti masuk Telegram anda dengan cepat"
},
- "REAUTH": "Reauthorize",
- "VIEW": "View",
+ "REAUTH": "Benarkan semula",
+ "VIEW": "Lihat",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Inbox settings updated successfully",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "Tetapan peti masuk berjaya dikemas kini",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Penugasan automatik dikemas kini dengan jayanya",
+ "ERROR_MESSAGE": "Kami tidak dapat mengemas kini tetapan peti masuk. Sila cuba lagi kemudian."
},
"EMAIL_COLLECT_BOX": {
- "ENABLED": "Enabled",
+ "ENABLED": "Diaktifkan",
"DISABLED": "Disabled"
},
"ENABLE_CSAT": {
- "ENABLED": "Enabled",
+ "ENABLED": "Diaktifkan",
"DISABLED": "Disabled"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "Nama penghantar",
+ "SUB_TEXT": "Pilih nama yang dipaparkan kepada pelanggan anda apabila mereka menerima emel daripada ejen anda.",
+ "FOR_EG": "Contohnya:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "Mesra",
+ "FROM": "daripada",
+ "SUBTITLE": "Tambah nama ejen yang menghantar balasan dalam nama penghantar untuk menjadikannya mesra."
},
"PROFESSIONAL": {
- "TITLE": "Professional",
+ "TITLE": "Profesional",
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "Configure your business name",
+ "PLACEHOLDER": "Masukkan nama perniagaan anda",
+ "SAVE_BUTTON_TEXT": "Simpan"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
- "ENABLED": "Enabled",
+ "ENABLED": "Diaktifkan",
"DISABLED": "Disabled"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
- "ENABLED": "Enabled",
+ "ENABLED": "Diaktifkan",
"DISABLED": "Disabled"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Buka semula perbualan yang sama",
+ "DISABLED": "Buat perbualan baru",
+ "ENABLED_DESCRIPTION": "Apabila seseorang kenalan menghantar mesej lagi, perbualan sebelumnya akan dibuka semula.",
+ "DISABLED_DESCRIPTION": "Perbualan baru akan diwujudkan setiap kali selepas perbualan sebelumnya diselesaikan."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -445,30 +621,130 @@
"CONFIRM": {
"TITLE": "Pasti Padamkan",
"MESSAGE": "Adakan anda pasti untuk padamkan ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
+ "PLACE_HOLDER": "Sila taip {inboxName} untuk mengesahkan",
"YES": "Ya, Padamkan ",
"NO": "Tidak, simpankan "
},
"API": {
- "SUCCESS_MESSAGE": "Inbox deleted successfully",
- "ERROR_MESSAGE": "Could not delete inbox. Please try again later.",
+ "SUCCESS_MESSAGE": "Peti masuk berjaya dipadamkan",
+ "ERROR_MESSAGE": "Tidak dapat memadam peti masuk. Sila cuba lagi kemudian.",
"AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
"AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
}
},
"TABS": {
- "SETTINGS": "Settings",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
+ "SETTINGS": "Tetapan",
+ "COLLABORATORS": "Rakan Kerjasama",
+ "CONFIGURATION": "Konfigurasi",
+ "CAMPAIGN": "Kempen",
+ "PRE_CHAT_FORM": "Borang Pra Sembang",
+ "BUSINESS_HOURS": "Waktu Perniagaan",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Konfigurasi Bot",
+ "ACCOUNT_HEALTH": "Kesihatan Akaun",
+ "CSAT": "CSAT",
+ "VOICE": "Suara",
+ "CALLS": "Calls"
},
- "SETTINGS": "Settings",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Keutamaan Saluran",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Data kesihatan tidak tersedia",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Paparkan nombor telefon",
+ "TOOLTIP": "Nombor telefon yang dipaparkan kepada pelanggan"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Nama perniagaan",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Status nama paparan",
+ "TOOLTIP": "Status pengesahan nama perniagaan anda"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Penilaian kualiti",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Tahap had penghantaran mesej",
+ "TOOLTIP": "Had penghantaran mesej harian untuk akaun anda"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Mod akaun",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Penilaian tidak tersedia"
+ },
+ "STATUSES": {
+ "APPROVED": "Diluluskan",
+ "PENDING_REVIEW": "Sedang Disemak",
+ "AVAILABLE_WITHOUT_REVIEW": "Tersedia Tanpa Semakan",
+ "REJECTED": "Ditolak",
+ "DECLINED": "Ditolak",
+ "NON_EXISTS": "Tidak wujud"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Langsung"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
+ },
+ "SETTINGS": "Tetapan",
"FEATURES": {
- "LABEL": "Features",
+ "LABEL": "Ciri-ciri",
"DISPLAY_FILE_PICKER": "Display file picker on the widget",
"DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
"ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
@@ -477,166 +753,327 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Place this button inside your body tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Kunci Rahsia",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Ejen",
- "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
- "UPDATE": "Update",
+ "INBOX_AGENTS_SUB_TEXT": "Tambah atau keluarkan ejen dari peti masuk ini",
+ "AGENT_ASSIGNMENT": "Penugasan Perbualan",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "Kemas kini tetapan penugasan perbualan",
+ "UPDATE": "Kemas kini",
"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",
+ "SENDER_NAME_SECTION_TEXT": "Dayakan/Matikan paparan nama Ejen dalam emel, jika dimatikan ia akan memaparkan nama perniagaan",
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Perbualan akan diteruskan melalui emel jika alamat emel kenalan tersedia.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
+ "INBOX_UPDATE_TITLE": "Tetapan Peti Masuk",
+ "INBOX_UPDATE_SUB_TEXT": "Kemas kini tetapan peti masuk anda",
"AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
- "HMAC_VERIFICATION": "User Identity Validation",
+ "HMAC_VERIFICATION": "Pengesahan Identiti Pengguna",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "Anda boleh baca lebih lanjut di sini.",
+ "HMAC_MANDATORY_VERIFICATION": "Kuatkuasakan Pengesahan Identiti Pengguna",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
+ "INBOX_IDENTIFIER": "Pengecam Peti Masuk",
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
+ "FORWARD_EMAIL_TITLE": "Teruskan ke Emel",
+ "FORWARD_EMAIL_SUB_TEXT": "Mula hantar emel anda ke alamat emel berikut.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "Benarkan mesej selepas perbualan diselesaikan",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Benarkan pengguna akhir menghantar mesej walaupun selepas perbualan diselesaikan.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
- "WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Masukkan kunci API baru yang akan digunakan untuk integrasi dengan API WhatsApp.",
+ "WHATSAPP_SECTION_TITLE": "Kunci API",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Kemas Kini Kunci API",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Masukkan Kunci API baru di sini",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "Kemas kini",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Konfigurasi Semula",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Sambung",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "ID aplikasi WhatsApp belum dikonfigurasi. Sila hubungi pentadbir anda.",
+ "WHATSAPP_CONFIG_ID_MISSING": "ID konfigurasi WhatsApp belum dikonfigurasi. Sila hubungi pentadbir anda.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Penyelarasan templat berjaya dimulakan. Ia mungkin mengambil masa beberapa minit untuk dikemas kini.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Kemas kini Tetapan Borang Pra Sembang"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "Pusat Bantuan",
+ "PLACEHOLDER": "Pilih Pusat Bantuan",
+ "SELECT_PLACEHOLDER": "Pilih Pusat Bantuan",
+ "NONE": "Tiada",
+ "REMOVE": "Alih Keluar Pusat Bantuan",
+ "SUB_TEXT": "Lampirkan Pusat Bantuan dengan peti masuk"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "Had penugasan automatik",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Sila masukkan nilai yang lebih besar daripada 0",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Hadkan bilangan maksimum perbualan dari peti masuk ini yang boleh ditugaskan secara automatik kepada ejen"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "Penugasan Perbualan",
+ "DESCRIPTION": "Secara automatik menetapkan perbualan masuk kepada ejen yang tersedia berdasarkan polisi penugasan",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Peraturan tugasan lalai",
+ "DEFAULT_RULES_DESCRIPTION": "Menggunakan tingkah laku tugasan lalai untuk semua perbualan",
+ "DEFAULT_RULE_1": "Perbualan yang dibuat paling awal dahulu",
+ "DEFAULT_RULE_2": "Pengagihan secara pusingan",
+ "CUSTOMIZE_WITH_POLICY": "Sesuaikan dengan polisi penugasan",
+ "USING_POLICY": "Menggunakan polisi penugasan khusus untuk peti masuk ini",
+ "CUSTOMIZE_POLICY": "Sesuaikan dengan polisi tugasan",
+ "DELETE_POLICY": "Padam polisi",
+ "POLICY_LABEL": "Polisi penugasan",
+ "ASSIGNMENT_ORDER_LABEL": "Susunan Penugasan",
+ "ASSIGNMENT_METHOD_LABEL": "Kaedah Penugasan",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Tidak aktif"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Dicipta paling awal",
+ "LONGEST_WAITING": "Menunggu paling lama"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Giliran bulat",
+ "BALANCED": "Penugasan seimbang"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Tingkatkan ke Perniagaan",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Buat polisi baru",
+ "NO_POLICIES": "Tiada polisi penugasan ditemui",
+ "VIEW_ALL_POLICIES": "Lihat semua polisi",
+ "CURRENT_BEHAVIOR": "Sedang menggunakan tingkah laku tugasan lalai:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Gagal memautkan dasar tugasan"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Padam polisi tugasan?",
+ "DELETE_CONFIRM_MESSAGE": "Adakah anda pasti mahu mengeluarkan polisi tugasan ini dari peti masuk ini? Peti masuk akan kembali kepada peraturan tugasan lalai.",
+ "CANCEL": "Batalkan",
+ "CONFIRM_DELETE": "Padamkan",
+ "DELETE_SUCCESS": "Dasar tugasan berjaya dipadam",
+ "DELETE_ERROR": "Gagal memadam dasar tugasan"
},
"FACEBOOK_REAUTHORIZE": {
- "TITLE": "Reauthorize",
+ "TITLE": "Benarkan semula",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
- "MESSAGE_ERROR": "There was an error, please try again"
+ "MESSAGE_SUCCESS": "Sambungan semula berjaya",
+ "MESSAGE_ERROR": "Terdapat ralat, sila cuba lagi"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "Borang pra sembang membolehkan anda menangkap maklumat pengguna sebelum mereka memulakan perbualan dengan anda.",
+ "SET_FIELDS": "Medan borang pra sembang",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
+ "FIELDS": "Medan",
"LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "PLACE_HOLDER": "Tempat letak",
+ "KEY": "Kunci",
+ "TYPE": "Jenis",
+ "REQUIRED": "Diperlukan"
},
"ENABLE": {
"LABEL": "Enable pre chat form",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "Ya",
+ "DISABLED": "Tidak"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "Mesej pra sembang",
+ "PLACEHOLDER": "Mesej ini akan kelihatan kepada pengguna bersama-sama dengan borang"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "Pelawat perlu memberikan nama dan alamat emel mereka sebelum memulakan sembang"
+ }
+ },
+ "CSAT": {
+ "TITLE": "Aktifkan CSAT",
+ "SUBTITLE": "Secara automatik memicu tinjauan CSAT pada akhir perbualan untuk memahami perasaan pelanggan tentang pengalaman sokongan mereka. Jejaki tren kepuasan dan kenal pasti bidang untuk penambahbaikan dari masa ke masa.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Jenis paparan"
+ },
+ "MESSAGE": {
+ "LABEL": "Mesej",
+ "PLACEHOLDER": "Sila masukkan mesej untuk dipaparkan kepada pengguna bersama borang"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Teks butang",
+ "PLACEHOLDER": "Sila beri penilaian kepada kami"
+ },
+ "LANGUAGE": {
+ "LABEL": "Bahasa",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Sunting butiran tinjauan",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Kembali"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Semak kesesuaian utiliti",
+ "HELPER_NOTE": "Semak mesej ini sebelum penghantaran untuk meningkatkan kesesuaian Utility. Sistem mencipta templat CSAT khusus dengan butang untuk melaporkan dan menghantarnya sebagai Utility; Meta mungkin masih mengklasifikasikannya semula sebagai Pemasaran berdasarkan kandungan.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Penulisan semula yang dicadangkan selamat untuk utiliti",
+ "APPLY": "Gunakan penulisan semula ini",
+ "ERROR_MESSAGE": "Tidak dapat menganalisis mesej. Sila cuba lagi.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Kemungkinan Utiliti",
+ "LIKELY_MARKETING": "Kemungkinan Pemasaran",
+ "UNCLEAR": "Perlu penjelasan"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Peraturan tinjauan",
+ "DESCRIPTION_PREFIX": "Hantar tinjauan jika perbualan",
+ "DESCRIPTION_SUFFIX": "mana-mana label",
+ "OPERATOR": {
+ "CONTAINS": "mengandungi",
+ "DOES_NOT_CONTAINS": "tidak mengandungi"
+ },
+ "SELECT_PLACEHOLDER": "pilih label"
+ },
+ "NOTE": "Nota: Tinjauan CSAT hanya dihantar sekali bagi setiap perbualan",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "Tetapan CSAT berjaya dikemas kini",
+ "ERROR_MESSAGE": "Kami tidak dapat mengemas kini tetapan CSAT. Sila cuba lagi kemudian."
}
},
"BUSINESS_HOURS": {
"TITLE": "Set your availability",
"SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
+ "WEEKLY_TITLE": "Tetapkan waktu mingguan anda",
+ "TIMEZONE_LABEL": "Pilih zon waktu",
+ "UPDATE": "Kemas kini tetapan waktu perniagaan",
"TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
+ "UNAVAILABLE_MESSAGE_LABEL": "Mesej tidak tersedia untuk pelawat",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Hari",
+ "AVAILABILITY": "Ketersediaan",
+ "HOURS": "Jam",
"ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "UNAVAILABLE": "Tidak tersedia",
+ "VALIDATION_ERROR": "Masa mula harus sebelum masa tutup.",
+ "CHOOSE": "Pilih"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "Sepanjang Hari"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
+ "SUBTITLE": "Tetapkan butiran IMAP anda",
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
+ "UPDATE": "Kemas kini tetapan IMAP",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Mengaktifkan IMAP akan membantu pengguna menerima emel",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "Tetapan IMAP berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini tetapan IMAP"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "Alamat",
+ "PLACE_HOLDER": "Alamat (Contoh: imap.gmail.com)"
},
"PORT": {
"LABEL": "Port",
"PLACE_HOLDER": "Port"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "Log masuk",
+ "PLACE_HOLDER": "Log masuk"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "Kata Laluan",
+ "PLACE_HOLDER": "Kata Laluan"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Pengesahan"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "Benarkan semula akaun MICROSOFT anda"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
+ "SUBTITLE": "Tetapkan butiran SMTP anda",
+ "UPDATE": "Kemas kini tetapan SMTP",
"TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "TOGGLE_HELP": "Mengaktifkan SMTP akan membantu pengguna menghantar emel",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "Tetapan SMTP berjaya dikemas kini",
+ "ERROR_MESSAGE": "Tidak dapat mengemas kini tetapan SMTP"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "Alamat",
+ "PLACE_HOLDER": "Alamat (Contoh: smtp.gmail.com)"
},
"PORT": {
"LABEL": "Port",
"PLACE_HOLDER": "Port"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "Log masuk",
+ "PLACE_HOLDER": "Log masuk"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "Kata Laluan",
+ "PLACE_HOLDER": "Kata Laluan"
},
"DOMAIN": {
"LABEL": "Domain",
@@ -646,9 +1083,9 @@
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
"OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "AUTH_MECHANISM": "Pengesahan"
},
- "NOTE": "Note: ",
+ "NOTE": "Nota: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
@@ -656,36 +1093,37 @@
"DELETE": {
"API": {
"SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "ERROR_MESSAGE": "Terdapat ralat, sila cuba lagi"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
+ "LABEL": "Nama Laman Web",
"PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "ERROR": "Sila masukkan nama laman web yang sah"
},
"WELCOME_HEADING": {
- "LABEL": "Welcome Heading",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "Tajuk Selamat Datang",
+ "PLACE_HOLDER": "Hai di sana!"
},
"WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "Tajuk Selamat Datang",
+ "PLACE_HOLDER": "Kami memudahkan anda untuk berhubung dengan kami. Tanyakan apa sahaja, atau kongsi maklum balas anda."
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "Masa Balas",
+ "IN_A_FEW_MINUTES": "Dalam beberapa minit",
+ "IN_A_FEW_HOURS": "Dalam beberapa jam",
+ "IN_A_DAY": "Dalam sehari"
},
"WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Buah Gelembung",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Posisi:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Jenis:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
- "DEFAULT": "Chat with us",
- "LABEL": "Widget Bubble Launcher Title",
- "PLACE_HOLDER": "Chat with us"
+ "DEFAULT": "Bual dengan kami",
+ "LABEL": "Tajuk Pelancar",
+ "PLACE_HOLDER": "Bual dengan kami"
},
"UPDATE": {
"BUTTON_TEXT": "Update Widget Settings",
@@ -695,45 +1133,70 @@
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "Pratonton",
+ "SCRIPT": "Skrip"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "Kiri",
+ "RIGHT": "Kanan"
},
"WIDGET_BUBBLE_TYPE": {
"STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "EXPANDED_BUBBLE": "Buah Gelembung Diperluas"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "Lalai",
+ "CHAT": "Mod sembang"
},
"REPLY_TIME": {
- "IN_A_FEW_MINUTES": "Typically replies in a few minutes",
- "IN_A_FEW_HOURS": "Typically replies in a few hours",
- "IN_A_DAY": "Typically replies in a day"
+ "IN_A_FEW_MINUTES": "Biasanya membalas dalam beberapa minit",
+ "IN_A_FEW_HOURS": "Biasanya membalas dalam beberapa jam",
+ "IN_A_DAY": "Biasanya membalas dalam sehari"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Start Conversation",
- "CHAT_INPUT_PLACEHOLDER": "Type your message"
+ "START_CONVERSATION_BUTTON_TEXT": "Mula Perbualan",
+ "CHAT_INPUT_PLACEHOLDER": "Taip mesej anda"
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "We are away at the moment"
+ "ONLINE": "Kami Dalam Talian",
+ "OFFLINE": "Kami sedang tidak tersedia buat masa ini"
},
- "USER_MESSAGE": "Hi",
+ "USER_MESSAGE": "Hai",
"AGENT_MESSAGE": "Hello"
},
"BRANDING_TEXT": "Powered by Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Pembekal Lain",
+ "DESCRIPTION": "Sambungkan dengan Pembekal Lain"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Laman Web",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "Emel",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Saluran API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Suara"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/index.js b/app/javascript/dashboard/i18n/locale/ms/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ms/index.js
+++ b/app/javascript/dashboard/i18n/locale/ms/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
index df25d3fca..f172d8beb 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Tindakan-tindakan",
"DELETE": {
"BUTTON_TEXT": "Padamkan"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Batalkan"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/integrations.json b/app/javascript/dashboard/i18n/locale/ms/integrations.json
index d2d4fbaf3..3cca29ddb 100644
--- a/app/javascript/dashboard/i18n/locale/ms/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ms/integrations.json
@@ -1,156 +1,225 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Padam Integrasi Shopify",
+ "MESSAGE": "Adakah anda pasti ingin memadam integrasi Shopify?"
+ },
+ "STORE_URL": {
+ "TITLE": "Sambungkan Kedai Shopify",
+ "LABEL": "URL Kedai",
+ "PLACEHOLDER": "kedai-anda.myshopify.com",
+ "HELP": "Masukkan URL myshopify.com kedai Shopify anda",
+ "CANCEL": "Batalkan",
+ "SUBMIT": "Sambungkan Kedai"
+ },
+ "ERROR": "Terdapat ralat semasa menyambung ke Shopify. Sila cuba lagi atau hubungi sokongan jika masalah berterusan."
+ },
+ "HEADER": "Integrasi",
+ "DESCRIPTION": "Chatwoot berintegrasi dengan pelbagai alat dan perkhidmatan untuk meningkatkan kecekapan pasukan anda. Terokai senarai di bawah untuk mengkonfigurasi aplikasi kegemaran anda.",
+ "LEARN_MORE": "Ketahui lebih lanjut mengenai integrasi",
+ "LOADING": "Mengambil integrasi",
+ "SEARCH_PLACEHOLDER": "Cari integrasi...",
+ "NO_RESULTS": "Tiada integrasi ditemui yang sepadan dengan carian anda",
+ "CAPTAIN": {
+ "DISABLED": "Captain tidak diaktifkan pada akaun anda.",
+ "CLICK_HERE_TO_CONFIGURE": "Klik di sini untuk konfigurasi",
+ "LOADING_CONSOLE": "Memuatkan Konsol Captain...",
+ "FAILED_TO_LOAD_CONSOLE": "Gagal memuatkan Konsol Captain. Sila muat semula dan cuba lagi."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "Acara Langganan",
+ "LEARN_MORE": "Ketahui lebih lanjut tentang webhook",
+ "SECRET": {
+ "LABEL": "Rahsia",
+ "COPY": "Salin rahsia ke papan klip",
+ "COPY_SUCCESS": "Rahsia disalin ke papan klip",
+ "TOGGLE": "Togol keterlihatan rahsia",
+ "CREATED_DESC": "Webhook anda telah dibuat. Gunakan rahsia di bawah untuk mengesahkan tandatangan webhook. Sila salin sekarang — anda juga boleh menemuinya kemudian dalam borang suntingan webhook.",
+ "DONE": "Selesai"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Cari webhook...",
+ "NO_RESULTS": "Tiada webhook ditemui yang sepadan dengan carian anda",
"FORM": {
"CANCEL": "Batalkan",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
+ "DESC": "Peristiwa webhook memberikan anda maklumat masa nyata tentang apa yang berlaku dalam akaun Chatwoot anda. Sila masukkan URL yang sah untuk mengkonfigurasi panggilan balik.",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "Acara",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "Perbualan Dicipta",
+ "CONVERSATION_STATUS_CHANGED": "Status Perbualan Ditukar",
+ "CONVERSATION_UPDATED": "Perbualan Dikemas Kini",
+ "MESSAGE_CREATED": "Mesej dicipta",
+ "MESSAGE_UPDATED": "Mesej dikemas kini",
+ "WEBWIDGET_TRIGGERED": "Widget sembang langsung dibuka oleh pengguna",
+ "CONTACT_CREATED": "Kenalan dicipta",
+ "CONTACT_UPDATED": "Kenalan dikemas kini",
+ "CONVERSATION_TYPING_ON": "Perbualan Mengetik Aktif",
+ "CONVERSATION_TYPING_OFF": "Perbualan Mengetik Tidak Aktif",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Nama webhook",
+ "PLACEHOLDER": "Masukkan nama webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
+ "PLACEHOLDER": "Contoh: {webhookExampleURL}",
+ "ERROR": "Sila masukkan URL yang sah"
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "Create webhook"
+ "EDIT_SUBMIT": "Kemas kini webhook",
+ "ADD_SUBMIT": "Buat webhook"
},
"TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "CONFIGURE": "Konfigurasi",
+ "HEADER": "Tetapan webhook",
+ "HEADER_BTN_TXT": "Tambah webhook baharu",
+ "LOADING": "Mengambil webhook yang dilampirkan",
+ "SEARCH_404": "Tiada item yang sepadan dengan carian ini",
+ "SIDEBAR_TXT": "Webhooks
Webhooks adalah panggilan balik HTTP yang boleh ditetapkan untuk setiap akaun. Ia dicetuskan oleh peristiwa seperti penciptaan mesej dalam Chatwoot. Anda boleh mencipta lebih daripada satu webhook untuk akaun ini.
Untuk mencipta webhook, klik pada butang Tambah webhook baru. Anda juga boleh memadam mana-mana webhook sedia ada dengan mengklik butang Padam.
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Tindakan-tindakan"
- ]
+ "404": "Tiada webhook dikonfigurasikan untuk akaun ini.",
+ "TITLE": "Urus webhook",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Titik akhir webhook",
+ "ACTIONS": "Tindakan-tindakan"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
- "TITLE": "Edit webhook",
+ "BUTTON_TEXT": "Sunting",
+ "TITLE": "Sunting webhook",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
+ "SUCCESS_MESSAGE": "Konfigurasi webhook berjaya dikemas kini",
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
}
},
"ADD": {
"CANCEL": "Batalkan",
- "TITLE": "Add new webhook",
+ "TITLE": "Tambah webhook baharu",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
+ "SUCCESS_MESSAGE": "Konfigurasi webhook berjaya ditambah",
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
}
},
"DELETE": {
"BUTTON_TEXT": "Padamkan",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
+ "SUCCESS_MESSAGE": "Webhook berjaya dipadamkan",
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
},
"CONFIRM": {
"TITLE": "Pasti Padamkan",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Ya, Padamkan ",
- "NO": "No, Keep it"
+ "NO": "Tidak, Simpan"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Padamkan",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "Padam integrasi",
+ "MESSAGE": "Adakah anda pasti mahu memadam integrasi ini? Melakukannya akan menyebabkan kehilangan akses ke perbualan di ruang kerja Slack anda."
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "BODY": "Dengan integrasi ini, semua perbualan masuk anda akan diselaraskan ke saluran ***{selectedChannelName}*** di ruang kerja Slack anda. Anda boleh mengurus semua perbualan pelanggan anda terus dalam saluran tersebut dan tidak akan terlepas sebarang mesej.\n\nBerikut adalah ciri utama integrasi ini:\n\n**Balas perbualan dari dalam Slack:** Untuk membalas perbualan di saluran Slack ***{selectedChannelName}***, hanya taip mesej anda dan hantar sebagai thread. Ini akan mencipta balasan kepada pelanggan melalui Chatwoot. Mudah sahaja!\n\n**Cipta nota peribadi:** Jika anda ingin mencipta nota peribadi dan bukannya balasan, mulakan mesej anda dengan ***`note:`***. Ini memastikan mesej anda kekal peribadi dan tidak akan kelihatan kepada pelanggan.\n\n**Kaitkan profil ejen:** Jika individu yang membalas di Slack mempunyai profil ejen di Chatwoot dengan emel yang sama, balasan akan dikaitkan secara automatik dengan profil ejen tersebut. Ini membolehkan anda menjejak siapa yang berkata apa dan bila. Jika pembalas tidak mempunyai profil ejen yang dikaitkan, balasan akan dipaparkan daripada profil bot kepada pelanggan.",
+ "SELECTED": "dipilih"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
- "UPDATE": "Update",
- "BUTTON_TEXT": "Connect channel",
+ "OPTION_LABEL": "Pilih saluran",
+ "UPDATE": "Kemas kini",
+ "BUTTON_TEXT": "Sambungkan saluran",
"DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "ATTENTION_REQUIRED": "Perhatian diperlukan",
+ "EXPIRED": "Integrasi Slack anda telah tamat tempoh. Untuk terus menerima mesej di Slack, sila padam integrasi dan sambungkan ruang kerja anda semula."
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "Terdapat ralat semasa mengemas kini integrasi, sila cuba lagi",
+ "UPDATE_SUCCESS": "Saluran berjaya disambungkan",
+ "FAILED_TO_FETCH_CHANNELS": "Terdapat ralat semasa mendapatkan saluran dari Slack, sila cuba lagi"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "Klik di sini untuk sertai",
+ "LEAVE_THE_ROOM": "Tinggalkan bilik",
+ "START_VIDEO_CALL_HELP_TEXT": "Mulakan panggilan video baru dengan pelanggan",
+ "JOIN_ERROR": "Terdapat ralat semasa menyertai panggilan, sila cuba lagi",
+ "CREATE_ERROR": "Terdapat ralat semasa membuat pautan mesyuarat, sila cuba lagi"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "Bantuan AI",
+ "WITH_AI": " {option} dengan AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "Cadangan Balasan",
+ "SUMMARIZE": "Ringkaskan",
+ "REPHRASE": "Perbaiki Penulisan",
+ "FIX_SPELLING_GRAMMAR": "Betulkan Ejaan dan Tatabahasa",
+ "SHORTEN": "Pendekkan",
+ "EXPAND": "Kembangkan",
+ "MAKE_FRIENDLY": "Tukar nada mesej kepada mesra",
+ "MAKE_FORMAL": "Gunakan nada formal",
+ "SIMPLIFY": "Permudahkan",
+ "CONFIDENT": "Gunakan nada yakin",
+ "PROFESSIONAL": "Gunakan nada profesional",
+ "CASUAL": "Gunakan nada santai",
+ "STRAIGHTFORWARD": "Gunakan nada terus-terang"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Perbaiki balasan",
+ "IMPROVE_REPLY_SELECTION": "Perbaiki pilihan",
+ "CHANGE_TONE": {
+ "TITLE": "Tukar nada",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesional",
+ "CASUAL": "Santai",
+ "STRAIGHTFORWARD": "Terus-terang",
+ "CONFIDENT": "Yakin",
+ "FRIENDLY": "Mesra"
+ }
+ },
+ "GRAMMAR": "Betulkan tatabahasa & ejaan",
+ "SUGGESTION": "Cadangkan balasan",
+ "SUMMARIZE": "Ringkaskan perbualan",
+ "ASK_COPILOT": "Tanya Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "Draf kandungan",
+ "GENERATED_TITLE": "Kandungan dijana",
+ "AI_WRITING": "AI sedang menulis",
"BUTTONS": {
- "APPLY": "Use this suggestion",
+ "APPLY": "Gunakan cadangan ini",
"CANCEL": "Batalkan"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "Integrasi dengan OpenAI",
+ "DESC": "Bawa ciri AI canggih ke papan pemuka anda dengan model GPT OpenAI. Untuk memulakan, masukkan kunci API dari akaun OpenAI anda.",
+ "KEY_PLACEHOLDER": "Masukkan kunci API OpenAI anda",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "Perlukan bantuan?",
+ "DISMISS": "Tutup",
+ "FINISH": "Selesai Persediaan"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "Anda boleh menyediakan integrasi OpenAI kemudian bila-bila masa anda mahu.",
+ "SUCCESS_MESSAGE": "Integrasi OpenAI berjaya disediakan"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "Tingkatkan Dengan AI",
+ "SUMMARY_TITLE": "Ringkasan dengan AI",
+ "REPLY_TITLE": "Cadangan balasan dengan AI",
+ "SUBTITLE": "Balasan yang dipertingkatkan akan dijana menggunakan AI, berdasarkan draf semasa anda.",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "Nada",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "Profesional",
+ "FRIENDLY": "Mesra"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
+ "GENERATE": "Jana",
+ "GENERATING": "Sedang menjana...",
"CANCEL": "Batalkan"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
@@ -158,56 +227,877 @@
"DELETE": {
"BUTTON_TEXT": "Padamkan",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "Integrasi berjaya dipadam"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "Sambung"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "Apl Papan Pemuka",
+ "HEADER_BTN_TXT": "Tambah apl papan pemuka baru",
+ "SIDEBAR_TXT": "Aplikasi Papan Pemuka
Aplikasi Papan Pemuka membolehkan organisasi menyematkan aplikasi di dalam papan pemuka Chatwoot untuk menyediakan konteks bagi ejen sokongan pelanggan. Ciri ini membolehkan anda mencipta aplikasi secara bebas dan menyematkannya di dalam papan pemuka untuk menyediakan maklumat pengguna, pesanan mereka, atau sejarah pembayaran mereka sebelum ini.
Apabila anda menyematkan aplikasi anda menggunakan papan pemuka dalam Chatwoot, aplikasi anda akan menerima konteks perbualan dan kenalan sebagai acara tetingkap. Laksanakan pendengar untuk acara mesej pada halaman anda untuk menerima konteks tersebut.
Untuk menambah aplikasi papan pemuka baru, klik pada butang 'Tambah aplikasi papan pemuka baru'.
",
+ "DESCRIPTION": "Aplikasi Papan Pemuka membolehkan organisasi menyematkan aplikasi di dalam papan pemuka untuk menyediakan konteks bagi ejen sokongan pelanggan. Ciri ini membolehkan anda mencipta aplikasi secara bebas dan menyematkannya untuk menyediakan maklumat pengguna, pesanan mereka, atau sejarah pembayaran mereka sebelum ini.",
+ "LEARN_MORE": "Ketahui lebih lanjut mengenai Aplikasi Papan Pemuka",
+ "COUNT": "{n} aplikasi papan pemuka | {n} aplikasi papan pemuka",
+ "SEARCH_PLACEHOLDER": "Cari aplikasi papan pemuka...",
+ "NO_RESULTS": "Tiada aplikasi papan pemuka ditemui yang sepadan dengan carian anda",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Nama",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "Tiada apl papan pemuka yang dikonfigurasikan pada akaun ini lagi",
+ "LOADING": "Sedang mengambil aplikasi papan pemuka...",
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "ENDPOINT": "Titik Akhir",
+ "ACTIONS": "Tindakan-tindakan"
+ },
+ "EDIT_TOOLTIP": "Sunting aplikasi",
+ "DELETE_TOOLTIP": "Padam aplikasi"
},
"FORM": {
"TITLE_LABEL": "Nama",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_PLACEHOLDER": "Masukkan nama untuk aplikasi papan pemuka anda",
+ "TITLE_ERROR": "Nama untuk aplikasi papan pemuka diperlukan",
+ "URL_LABEL": "Titik akhir",
+ "URL_PLACEHOLDER": "Masukkan URL titik akhir di mana apl anda dihoskan",
+ "URL_ERROR": "URL yang sah diperlukan"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
- "FORM_SUBMIT": "Submit",
+ "HEADER": "Tambah aplikasi papan pemuka baru",
+ "FORM_SUBMIT": "Hantar",
"FORM_CANCEL": "Batalkan",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "API_SUCCESS": "Apl papan pemuka berjaya dikonfigurasikan",
+ "API_ERROR": "Kami tidak dapat mencipta aplikasi. Sila cuba lagi kemudian"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
- "FORM_SUBMIT": "Update",
+ "HEADER": "Sunting aplikasi papan pemuka",
+ "FORM_SUBMIT": "Kemas kini",
"FORM_CANCEL": "Batalkan",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "API_SUCCESS": "Aplikasi papan pemuka berjaya dikemas kini",
+ "API_ERROR": "Kami tidak dapat mengemas kini aplikasi. Sila cuba lagi kemudian"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "Ya, padamkan",
+ "CONFIRM_NO": "Tidak, simpan",
+ "TITLE": "Sahkan penghapusan",
+ "MESSAGE": "Adakah anda pasti untuk memadam aplikasi - {appName}?",
+ "API_SUCCESS": "Aplikasi papan pemuka berjaya dipadam",
+ "API_ERROR": "Kami tidak dapat memadam aplikasi. Sila cuba lagi kemudian"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Cipta/Sambung Isu Linear",
+ "LOADING": "Sedang mengambil isu linear...",
+ "LOADING_ERROR": "Terdapat ralat semasa mengambil isu linear, sila cuba lagi",
+ "CREATE": "Cipta",
+ "LINK": {
+ "SEARCH": "Cari isu",
+ "SELECT": "Pilih isu",
+ "TITLE": "Pautan",
+ "EMPTY_LIST": "Tiada isu linear ditemui",
+ "LOADING": "Memuat",
+ "ERROR": "Terdapat ralat semasa mendapatkan isu linear, sila cuba lagi",
+ "LINK_SUCCESS": "Isu berjaya dipautkan",
+ "LINK_ERROR": "Terdapat ralat semasa memautkan isu, sila cuba lagi",
+ "LINK_TITLE": "Perbualan (#{conversationId}) dengan {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Cipta/pautkan isu linear",
+ "DESCRIPTION": "Cipta isu Linear dari perbualan, atau pautkan yang sedia ada untuk penjejakan yang lancar.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tajuk",
+ "PLACEHOLDER": "Masukkan tajuk",
+ "REQUIRED_ERROR": "Tajuk diperlukan"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Masukkan keterangan"
+ },
+ "TEAM": {
+ "LABEL": "Pasukan",
+ "PLACEHOLDER": "Pilih pasukan",
+ "SEARCH": "Cari pasukan",
+ "REQUIRED_ERROR": "Pasukan diperlukan"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Penugasan",
+ "PLACEHOLDER": "Pilih penugasan",
+ "SEARCH": "Cari penugasan"
+ },
+ "PRIORITY": {
+ "LABEL": "Keutamaan",
+ "PLACEHOLDER": "Pilih keutamaan",
+ "SEARCH": "Cari keutamaan"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Pilih label",
+ "SEARCH": "Label carian"
+ },
+ "STATUS": {
+ "LABEL": "Keadaan",
+ "PLACEHOLDER": "Pilih status",
+ "SEARCH": "Cari status"
+ },
+ "PROJECT": {
+ "LABEL": "Projek",
+ "PLACEHOLDER": "Pilih projek",
+ "SEARCH": "Cari projek"
+ }
+ },
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan",
+ "CREATE_SUCCESS": "Isu berjaya dibuat",
+ "CREATE_ERROR": "Terdapat ralat semasa mencipta isu, sila cuba lagi",
+ "LOADING_TEAM_ERROR": "Terdapat ralat semasa mendapatkan pasukan, sila cuba lagi",
+ "LOADING_TEAM_ENTITIES_ERROR": "Terdapat ralat semasa mendapatkan entiti pasukan, sila cuba lagi"
+ },
+ "ISSUE": {
+ "STATUS": "Keadaan",
+ "PRIORITY": "Keutamaan",
+ "ASSIGNEE": "Penugasan",
+ "LABELS": "Label",
+ "CREATED_AT": "Dicipta pada {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Nyahpaut",
+ "SUCCESS": "Isu berjaya dinyahpaut",
+ "ERROR": "Terdapat ralat semasa menyahpaut isu, sila cuba lagi"
+ },
+ "NO_LINKED_ISSUES": "Tiada isu berkaitan ditemui",
+ "DELETE": {
+ "TITLE": "Adakah anda pasti mahu memadam integrasi ini?",
+ "MESSAGE": "Adakah anda pasti mahu memadam integrasi ini?",
+ "CONFIRM": "Ya, padamkan",
+ "CANCEL": "Batalkan"
+ },
+ "CTA": {
+ "TITLE": "Sambungkan ke Linear",
+ "AGENT_DESCRIPTION": "Ruang kerja Linear tidak disambungkan. Mohon pentadbir anda untuk menyambungkan ruang kerja bagi menggunakan integrasi ini.",
+ "DESCRIPTION": "Ruang kerja Linear tidak disambungkan. Klik butang di bawah untuk menyambungkan ruang kerja anda bagi menggunakan integrasi ini.",
+ "BUTTON_TEXT": "Sambungkan ruang kerja Linear"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Adakah anda pasti mahu memadam integrasi Notion?",
+ "MESSAGE": "Memadam integrasi ini akan mengalih keluar akses ke ruang kerja Notion anda dan menghentikan semua fungsi berkaitan.",
+ "CONFIRM": "Ya, padam",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Kapten",
+ "HEADER_KNOW_MORE": "Ketahui lebih lanjut",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Pembantu",
+ "SWITCH_ASSISTANT": "Bertukar antara pembantu",
+ "NEW_ASSISTANT": "Cipta Pembantu",
+ "EMPTY_LIST": "Tiada pembantu ditemui, sila cipta satu untuk memulakan"
+ },
+ "COPILOT": {
+ "TITLE": "Kopilot",
+ "TRY_THESE_PROMPTS": "Cuba arahan ini",
+ "PANEL_TITLE": "Mulakan dengan Copilot",
+ "KICK_OFF_MESSAGE": "Perlukan ringkasan cepat, mahu semak perbualan lalu, atau draf balasan yang lebih baik? Copilot di sini untuk mempercepatkan semuanya.",
+ "SEND_MESSAGE": "Hantar mesej...",
+ "EMPTY_MESSAGE": "Terdapat ralat semasa menjana respons. Sila cuba lagi.",
+ "LOADER": "Kapten sedang berfikir",
+ "YOU": "Anda",
+ "USE": "Gunakan ini",
+ "RESET": "Tetapkan Semula",
+ "SHOW_STEPS": "Tunjukkan langkah",
+ "SELECT_ASSISTANT": "Pilih Pembantu",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Ringkaskan perbualan ini",
+ "CONTENT": "Ringkaskan perkara utama yang dibincangkan antara pelanggan dan ejen sokongan, termasuk kebimbangan pelanggan, soalan, serta penyelesaian atau jawapan yang diberikan oleh ejen sokongan"
+ },
+ "SUGGEST": {
+ "LABEL": "Cadangkan jawapan",
+ "CONTENT": "Analisis pertanyaan pelanggan, dan drafkan jawapan yang berkesan menangani kebimbangan atau soalan mereka. Pastikan balasan jelas, ringkas, dan memberikan maklumat yang berguna."
+ },
+ "RATE": {
+ "LABEL": "Nilai perbualan ini",
+ "CONTENT": "Semak perbualan untuk melihat sejauh mana ia memenuhi keperluan pelanggan. Berikan penilaian daripada 5 berdasarkan nada, kejelasan, dan keberkesanan."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Perbualan keutamaan tinggi",
+ "CONTENT": "Berikan saya ringkasan semua perbualan terbuka keutamaan tinggi. Sertakan ID perbualan, nama pelanggan (jika ada), kandungan mesej terakhir, dan ejen yang ditugaskan. Kumpulkan mengikut status jika berkaitan."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Senaraikan kenalan",
+ "CONTENT": "Tunjukkan saya senarai 10 kenalan teratas. Sertakan nama, emel atau nombor telefon (jika ada), masa terakhir dilihat, tag (jika ada)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Anda",
+ "ASSISTANT": "Pembantu",
+ "MESSAGE_PLACEHOLDER": "Taip mesej anda...",
+ "HEADER": "Tempat Permainan",
+ "DESCRIPTION": "Gunakan ruang ujian ini untuk menghantar mesej kepada pembantu anda dan periksa sama ada ia memberi respons dengan tepat, pantas, dan dalam nada yang anda jangkakan.",
+ "CREDIT_NOTE": "Mesej yang dihantar di sini akan dikira ke arah kredit Captain anda."
+ },
+ "PAYWALL": {
+ "TITLE": "Tingkat taraf untuk menggunakan Captain AI",
+ "AVAILABLE_ON": "Captain tidak tersedia pada pelan percuma.",
+ "UPGRADE_PROMPT": "Tingkatkan pelan anda untuk mendapatkan akses kepada pembantu kami, copilot dan banyak lagi.",
+ "UPGRADE_NOW": "Tingkatkan sekarang",
+ "CANCEL_ANYTIME": "Anda boleh menukar atau membatalkan pelan anda bila-bila masa"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI hanya tersedia dalam pelan Enterprise.",
+ "UPGRADE_PROMPT": "Tingkatkan pelan anda untuk mendapatkan akses kepada pembantu kami, copilot dan banyak lagi.",
+ "ASK_ADMIN": "Sila hubungi pentadbir anda untuk peningkatan."
+ },
+ "BANNER": {
+ "RESPONSES": "Anda telah menggunakan lebih daripada 80% had respons anda. Untuk terus menggunakan Captain AI, sila tingkatkan pelan anda.",
+ "DOCUMENTS": "Had dokumen telah dicapai. Tingkatkan pelan untuk terus menggunakan Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Batalkan",
+ "CREATE": "Cipta",
+ "EDIT": "Kemas kini"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Pembantu",
+ "NO_ASSISTANTS_AVAILABLE": "Tiada pembantu tersedia dalam akaun anda.",
+ "ADD_NEW": "Cipta pembantu baru",
+ "DELETE": {
+ "TITLE": "Adakah anda pasti untuk memadam pembantu ini?",
+ "DESCRIPTION": "Tindakan ini adalah kekal. Memadam pembantu ini akan mengeluarkannya dari semua peti masuk yang disambungkan dan memadamkan semua pengetahuan yang dijana secara kekal.",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "Pembantu telah berjaya dipadamkan",
+ "ERROR_MESSAGE": "Terdapat ralat semasa memadam pembantu, sila cuba lagi."
+ },
+ "FORM_DESCRIPTION": "Isikan butiran di bawah untuk menamakan pembantu anda, terangkan tujuannya, dan nyatakan produk yang akan disokong.",
+ "CREATE": {
+ "TITLE": "Cipta pembantu",
+ "SUCCESS_MESSAGE": "Pembantu telah berjaya dicipta",
+ "ERROR_MESSAGE": "Terdapat ralat semasa mencipta pembantu, sila cuba lagi."
+ },
+ "FORM": {
+ "UPDATE": "Kemas kini",
+ "SECTIONS": {
+ "BASIC_INFO": "Maklumat Asas",
+ "SYSTEM_MESSAGES": "Mesej Sistem",
+ "INSTRUCTIONS": "Arahan",
+ "FEATURES": "Ciri-ciri",
+ "TOOLS": "Alat "
+ },
+ "NAME": {
+ "LABEL": "Nama",
+ "PLACEHOLDER": "Masukkan nama pembantu",
+ "ERROR": "Nama diperlukan"
+ },
+ "TEMPERATURE": {
+ "LABEL": "Suhu Respons",
+ "DESCRIPTION": "Laraskan sejauh mana kreativiti atau kekangan dalam respons pembantu. Nilai yang lebih rendah menghasilkan respons yang lebih fokus dan deterministik, manakala nilai yang lebih tinggi membenarkan output yang lebih kreatif dan pelbagai."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Masukkan penerangan pembantu",
+ "ERROR": "Penerangan diperlukan"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Nama Produk",
+ "PLACEHOLDER": "Masukkan nama produk",
+ "ERROR": "Nama produk diperlukan"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Mesej Selamat Datang",
+ "PLACEHOLDER": "Masukkan mesej selamat datang"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Mesej Penyerahan",
+ "PLACEHOLDER": "Masukkan mesej penyerahan"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Mesej Penyelesaian",
+ "PLACEHOLDER": "Masukkan mesej penyelesaian"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Arahan",
+ "PLACEHOLDER": "Masukkan arahan untuk pembantu"
+ },
+ "FEATURES": {
+ "TITLE": "Ciri-ciri",
+ "ALLOW_CONVERSATION_FAQS": "Hasilkan Soalan Lazim daripada perbualan yang diselesaikan",
+ "ALLOW_MEMORIES": "Tangkap butiran penting sebagai memori daripada interaksi pelanggan.",
+ "ALLOW_CITATIONS": "Sertakan petikan sumber dalam jawapan",
+ "ALLOW_CONTACT_ATTRIBUTES": "Benarkan akses kepada maklumat kenalan"
+ }
+ },
+ "EDIT": {
+ "TITLE": "Kemas kini pembantu",
+ "SUCCESS_MESSAGE": "Pembantu telah berjaya dikemas kini",
+ "ERROR_MESSAGE": "Terdapat ralat semasa mengemas kini pembantu, sila cuba lagi.",
+ "NOT_FOUND": "Tidak dapat mencari pembantu. Sila cuba lagi."
+ },
+ "SETTINGS": {
+ "HEADER": "Tetapan",
+ "BASIC_SETTINGS": {
+ "TITLE": "Tetapan asas",
+ "DESCRIPTION": "Sesuaikan apa yang pembantu katakan apabila menamatkan perbualan atau memindahkan kepada manusia."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "Tetapan sistem",
+ "DESCRIPTION": "Sesuaikan apa yang pembantu katakan apabila menamatkan perbualan atau memindahkan kepada manusia."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "Perkara yang Menghiburkan",
+ "DESCRIPTION": "Tambah lebih kawalan kepada pembantu. (sedikit lebih visual seperti cerita: Kawalan pertanyaan → senario → output) Menggalakkan pengguna untuk benar-benar menggunakan ini.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Panduan keselamatan",
+ "DESCRIPTION": "Menjaga agar semuanya berjalan lancar—hanya jenis soalan yang anda mahu pembantu anda jawab, tiada yang terlarang atau di luar topik."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Garis panduan respons",
+ "DESCRIPTION": "Gaya dan struktur balasan pembantu anda—jelas dan mesra? Pendek dan padat? Terperinci dan formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Padam Pembantu",
+ "DESCRIPTION": "Tindakan ini adalah kekal. Memadam pembantu ini akan mengeluarkannya dari semua peti masuk yang disambungkan dan memadamkan semua pengetahuan yang dijana secara kekal.",
+ "BUTTON_TEXT": "Padam {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Sunting Pembantu",
+ "DELETE_ASSISTANT": "Padam Pembantu",
+ "VIEW_CONNECTED_INBOXES": "Lihat peti masuk yang disambungkan"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Tiada pembantu tersedia",
+ "SUBTITLE": "Cipta pembantu untuk memberikan respons yang pantas dan tepat kepada pengguna anda. Ia boleh belajar daripada artikel bantuan dan perbualan lalu anda.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Assistant",
+ "NOTE": "Pembantu Captain berinteraksi terus dengan pelanggan, belajar dari dokumen bantuan dan perbualan lalu anda, dan memberikan respons segera dan tepat. Ia mengendalikan pertanyaan awal, menyediakan penyelesaian pantas sebelum menyerahkan kepada ejen jika perlu."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Panduan Keselamatan",
+ "DESCRIPTION": "Memastikan semuanya berjalan lancar—hanya jenis soalan yang anda mahu pembantu anda jawab, tiada yang terlarang atau di luar topik.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Padamkan"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Contoh panduan keselamatan",
+ "ADD": "Tambah semua",
+ "ADD_SINGLE": "Tambah ini",
+ "SAVE": "Tambah dan simpan (↵)",
+ "PLACEHOLDER": "Taip panduan keselamatan lain..."
+ },
+ "NEW": {
+ "TITLE": "Tambah penghadang",
+ "CREATE": "Cipta",
+ "CANCEL": "Batalkan",
+ "PLACEHOLDER": "Taip penghadang lain...",
+ "TEST_ALL": "Uji semua"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cari..."
+ },
+ "EMPTY_MESSAGE": "Tiada garispanduan ditemui. Cipta atau tambah contoh untuk bermula.",
+ "SEARCH_EMPTY_MESSAGE": "Tiada kawalan ditemui untuk carian ini.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Kawalan berjaya ditambah",
+ "ERROR": "Ralat berlaku semasa menambah kawalan, sila cuba lagi."
+ },
+ "UPDATE": {
+ "SUCCESS": "Kawalan berjaya dikemas kini",
+ "ERROR": "Ralat berlaku semasa mengemas kini kawalan, sila cuba lagi."
+ },
+ "DELETE": {
+ "SUCCESS": "Kawalan berjaya dipadam",
+ "ERROR": "Ralat berlaku semasa memadam kawalan, sila cuba lagi."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Garis Panduan Respons",
+ "DESCRIPTION": "Suasana dan struktur balasan pembantu anda—jelas dan mesra? Pendek dan padat? Terperinci dan formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Padamkan"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Contoh garis panduan respons",
+ "ADD": "Tambah semua",
+ "ADD_SINGLE": "Tambah ini",
+ "SAVE": "Tambah dan simpan (↵)",
+ "PLACEHOLDER": "Taip panduan respons lain..."
+ },
+ "NEW": {
+ "TITLE": "Tambah panduan respons",
+ "CREATE": "Cipta",
+ "CANCEL": "Batalkan",
+ "PLACEHOLDER": "Taip panduan respons lain...",
+ "TEST_ALL": "Uji semua"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cari..."
+ },
+ "EMPTY_MESSAGE": "Tiada panduan respons dijumpai. Cipta atau tambah contoh untuk mula.",
+ "SEARCH_EMPTY_MESSAGE": "Tiada panduan respons dijumpai untuk carian ini.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Panduan Respons berjaya ditambah",
+ "ERROR": "Ralat berlaku semasa menambah panduan respons, sila cuba lagi."
+ },
+ "UPDATE": {
+ "SUCCESS": "Panduan Respons berjaya dikemas kini",
+ "ERROR": "Ralat berlaku semasa mengemas kini panduan respons, sila cuba lagi."
+ },
+ "DELETE": {
+ "SUCCESS": "Panduan Respons berjaya dipadam",
+ "ERROR": "Ralat berlaku semasa memadam panduan respons, sila cuba lagi."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Senario",
+ "DESCRIPTION": "Berikan pembantu anda sedikit konteks—seperti “apa yang perlu dilakukan apabila pengguna tersekat,” atau “cara bertindak semasa permintaan bayaran balik.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Padamkan"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Senario contoh",
+ "ADD": "Tambah semua",
+ "ADD_SINGLE": "Tambah ini",
+ "TOOLS_USED": "Alat yang digunakan :"
+ },
+ "NEW": {
+ "CREATE": "Tambah senario",
+ "TITLE": "Cipta senario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tajuk",
+ "PLACEHOLDER": "Masukkan nama untuk senario",
+ "ERROR": "Nama senario diperlukan"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Terangkan bagaimana dan di mana senario ini akan digunakan",
+ "ERROR": "Penerangan senario diperlukan"
+ },
+ "INSTRUCTION": {
+ "LABEL": "Cara mengendalikan",
+ "PLACEHOLDER": "Terangkan bagaimana dan di mana senario ini akan dikendalikan",
+ "ERROR": "Kandungan senario diperlukan"
+ },
+ "CREATE": "Buat",
+ "CANCEL": "Batalkan"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Batalkan",
+ "UPDATE": "Kemas kini perubahan"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Cari..."
+ },
+ "EMPTY_MESSAGE": "Tiada senario ditemui. Buat atau tambah contoh untuk bermula.",
+ "SEARCH_EMPTY_MESSAGE": "Tiada senario ditemui untuk carian ini.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Senario berjaya ditambah",
+ "ERROR": "Terdapat ralat semasa menambah senario, sila cuba lagi."
+ },
+ "UPDATE": {
+ "SUCCESS": "Senario berjaya dikemas kini",
+ "ERROR": "Terdapat ralat semasa mengemas kini senario, sila cuba lagi."
+ },
+ "DELETE": {
+ "SUCCESS": "Senario berjaya dipadam",
+ "ERROR": "Terdapat ralat semasa memadam senario, sila cuba lagi."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Dokumen",
+ "ADD_NEW": "Cipta dokumen baru",
+ "SELECTED": "{count} dipilih",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Padamkan",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Ya, padam semua",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Gagal"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Soalan Lazim Berkaitan",
+ "DESCRIPTION": "Soalan Lazim ini dijana terus daripada dokumen."
+ },
+ "FORM_DESCRIPTION": "Masukkan URL dokumen untuk menambahnya sebagai sumber pengetahuan dan pilih pembantu untuk dikaitkan dengannya.",
+ "CREATE": {
+ "TITLE": "Tambah dokumen",
+ "SUCCESS_MESSAGE": "Dokumen telah berjaya dicipta",
+ "ERROR_MESSAGE": "Terdapat ralat semasa mencipta dokumen, sila cuba lagi."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Jenis Dokumen",
+ "URL": "Pautan",
+ "PDF": "Fail PDF"
+ },
+ "URL": {
+ "LABEL": "Pautan",
+ "PLACEHOLDER": "Masukkan URL dokumen",
+ "ERROR": "Sila berikan URL yang sah untuk dokumen"
+ },
+ "PDF_FILE": {
+ "LABEL": "Fail PDF",
+ "CHOOSE_FILE": "Pilih fail PDF",
+ "ERROR": "Sila pilih fail PDF",
+ "HELP_TEXT": "Saiz fail maksimum: 10MB",
+ "INVALID_TYPE": "Sila pilih fail PDF yang sah",
+ "TOO_LARGE": "Saiz fail melebihi had 10MB"
+ },
+ "NAME": {
+ "LABEL": "Nama Dokumen (Pilihan)",
+ "PLACEHOLDER": "Masukkan nama untuk dokumen"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Adakah anda pasti mahu memadam dokumen ini?",
+ "DESCRIPTION": "Tindakan ini adalah kekal. Memadam dokumen ini akan memadamkan semua pengetahuan yang dijana secara kekal.",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "Dokumen telah berjaya dipadam",
+ "ERROR_MESSAGE": "Terdapat ralat semasa memadam dokumen, sila cuba lagi."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "Lihat Respons Berkaitan",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Padam Dokumen"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Tiada dokumen tersedia",
+ "SUBTITLE": "Dokumen digunakan oleh pembantu anda untuk menjana Soalan Lazim. Anda boleh mengimport dokumen untuk memberikan konteks kepada pembantu anda.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain Document",
+ "NOTE": "Dokumen dalam Captain berfungsi sebagai sumber pengetahuan untuk pembantu. Dengan menyambungkan pusat bantuan atau panduan anda, Captain boleh menganalisis kandungan dan memberikan respons tepat untuk pertanyaan pelanggan."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Alat",
+ "ADD_NEW": "Cipta alat baru",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "Tiada alat tersuai tersedia",
+ "SUBTITLE": "Cipta alat khusus untuk menyambungkan pembantu anda dengan API dan perkhidmatan luaran, membolehkannya mendapatkan data dan melaksanakan tindakan bagi pihak anda.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Alat Tersuai",
+ "NOTE": "Alat khusus membolehkan pembantu anda berinteraksi dengan API dan perkhidmatan luaran. Cipta alat untuk mendapatkan data, melaksanakan tindakan, atau mengintegrasi dengan sistem sedia ada anda untuk meningkatkan keupayaan pembantu anda."
+ }
+ },
+ "FORM_DESCRIPTION": "Konfigurasikan alat tersuai anda untuk berhubung dengan API luaran",
+ "OPTIONS": {
+ "EDIT_TOOL": "Sunting alat",
+ "DELETE_TOOL": "Padam alat"
+ },
+ "CREATE": {
+ "TITLE": "Cipta Alat Tersuai",
+ "SUCCESS_MESSAGE": "Alat tersuai berjaya dicipta",
+ "ERROR_MESSAGE": "Gagal mencipta alat tersuai"
+ },
+ "EDIT": {
+ "TITLE": "Sunting Alat Tersuai",
+ "SUCCESS_MESSAGE": "Alat tersuai berjaya dikemas kini",
+ "ERROR_MESSAGE": "Gagal mengemas kini alat tersuai"
+ },
+ "DELETE": {
+ "TITLE": "Padam Alat Tersuai",
+ "DESCRIPTION": "Adakah anda pasti mahu memadam alat tersuai ini? Tindakan ini tidak boleh dibatalkan.",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "Alat tersuai berjaya dipadam",
+ "ERROR_MESSAGE": "Gagal memadam alat tersuai"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Nama Alat",
+ "PLACEHOLDER": "Semak Pesanan",
+ "ERROR": "Nama alat diperlukan",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Mencari butiran pesanan mengikut ID pesanan"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Kaedah"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "URL Titik Akhir",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "URL yang sah diperlukan"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Jenis Pengesahan"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Tiada",
+ "BEARER": "Bearer Token",
+ "BASIC": "Pengesahan Asas",
+ "API_KEY": "Kunci API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Masukkan token bearer anda",
+ "USERNAME": "Nama pengguna",
+ "USERNAME_PLACEHOLDER": "Masukkan nama pengguna",
+ "PASSWORD": "Kata laluan",
+ "PASSWORD_PLACEHOLDER": "Masukkan kata laluan",
+ "API_KEY": "Nama Header",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Nilai Header",
+ "API_VALUE_PLACEHOLDER": "Masukkan nilai kunci API"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameter",
+ "HELP_TEXT": "Tentukan parameter yang akan diambil daripada pertanyaan pengguna"
+ },
+ "ADD_PARAMETER": "Tambah Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Nama parameter (contoh: order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Jenis"
+ },
+ "PARAM_TYPES": {
+ "STRING": "Rentetan",
+ "NUMBER": "Nombor",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Objek"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Penerangan parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Diperlukan"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Templat Badan Permintaan (Pilihan)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Templat Respons (Pilihan)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Nama parameter diperlukan"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "Soalan Lazim",
+ "PENDING_FAQS": "Soalan Lazim Tertunggak",
+ "ADD_NEW": "Buat FAQ baru",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Perbualan #{id}"
+ },
+ "SELECTED": "{count} dipilih",
+ "SELECT_ALL": "Pilih semua ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Cari Soalan Lazim...",
+ "BULK_APPROVE_BUTTON": "Luluskan",
+ "BULK_DELETE_BUTTON": "Padamkan",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "Soalan Lazim berjaya diluluskan",
+ "ERROR_MESSAGE": "Terdapat ralat semasa meluluskan Soalan Lazim, sila cuba lagi."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Padam Soalan Lazim?",
+ "DESCRIPTION": "Adakah anda pasti mahu memadam Soalan Lazim yang dipilih? Tindakan ini tidak boleh dibatalkan.",
+ "CONFIRM": "Ya, padam semua",
+ "SUCCESS_MESSAGE": "Soalan Lazim berjaya dipadam",
+ "ERROR_MESSAGE": "Terdapat ralat semasa memadam Soalan Lazim, sila cuba lagi."
+ },
+ "DELETE": {
+ "TITLE": "Adakah anda pasti untuk memadam FAQ ini?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "FAQ berjaya dipadam",
+ "ERROR_MESSAGE": "Terdapat ralat semasa memadam FAQ, sila cuba lagi."
+ },
+ "FILTER": {
+ "ASSISTANT": "Pembantu: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Semua"
+ },
+ "STATUS": {
+ "TITLE": "Keadaan",
+ "PENDING": "Dalam Talian",
+ "APPROVED": "Diluluskan",
+ "ALL": "Semua"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain telah menemui beberapa FAQ yang dicari oleh pelanggan anda.",
+ "ACTION": "Klik di sini untuk semak"
+ },
+ "FORM_DESCRIPTION": "Tambah soalan dan jawapan yang sepadan ke dalam pangkalan pengetahuan dan pilih pembantu yang sepatutnya dikaitkan dengannya.",
+ "CREATE": {
+ "TITLE": "Tambah Soalan Lazim",
+ "SUCCESS_MESSAGE": "Respons telah berjaya ditambah.",
+ "ERROR_MESSAGE": "Ralat berlaku semasa menambah respons. Sila cuba lagi."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Soalan",
+ "PLACEHOLDER": "Masukkan soalan di sini",
+ "ERROR": "Sila berikan soalan yang sah."
+ },
+ "ANSWER": {
+ "LABEL": "Jawapan",
+ "PLACEHOLDER": "Masukkan jawapan di sini",
+ "ERROR": "Sila berikan jawapan yang sah."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Kemas kini FAQ",
+ "SUCCESS_MESSAGE": "FAQ telah berjaya dikemas kini",
+ "ERROR_MESSAGE": "Terdapat ralat semasa mengemas kini FAQ, sila cuba lagi",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ telah ditandakan sebagai diluluskan"
+ },
+ "OPTIONS": {
+ "APPROVE": "Luluskan",
+ "EDIT_RESPONSE": "Sunting",
+ "DELETE_RESPONSE": "Padamkan"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Tiada Soalan Lazim Dijumpai",
+ "NO_PENDING_TITLE": "Tiada lagi Soalan Lazim tertunda untuk disemak",
+ "SUBTITLE": "Soalan Lazim membantu pembantu anda memberikan jawapan yang cepat dan tepat kepada soalan daripada pelanggan anda. Ia boleh dijana secara automatik daripada kandungan anda atau boleh ditambah secara manual.",
+ "CLEAR_SEARCH": "Kosongkan penapis aktif",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain FAQ",
+ "NOTE": "Soalan Lazim Captain mengesan soalan pelanggan yang biasa—sama ada yang tiada dalam pangkalan pengetahuan anda atau sering ditanya—dan menghasilkan Soalan Lazim yang berkaitan untuk meningkatkan sokongan. Anda boleh menyemak setiap cadangan dan memutuskan sama ada untuk meluluskan atau menolaknya."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Petibek Bersambung",
+ "ADD_NEW": "Sambungkan peti masuk baru",
+ "OPTIONS": {
+ "DISCONNECT": "Putuskan sambungan"
+ },
+ "DELETE": {
+ "TITLE": "Adakah anda pasti untuk memutuskan sambungan peti masuk?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ya, padam",
+ "SUCCESS_MESSAGE": "Peti masuk berjaya diputuskan sambungannya.",
+ "ERROR_MESSAGE": "Terdapat ralat semasa memutuskan sambungan peti masuk, sila cuba lagi."
+ },
+ "FORM_DESCRIPTION": "Pilih peti masuk untuk disambungkan dengan pembantu.",
+ "CREATE": {
+ "TITLE": "Sambungkan Peti Masuk",
+ "SUCCESS_MESSAGE": "Peti masuk berjaya disambungkan.",
+ "ERROR_MESSAGE": "Ralat berlaku semasa menyambungkan peti masuk. Sila cuba lagi."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Peti Masuk",
+ "PLACEHOLDER": "Pilih peti masuk untuk melaksanakan pembantu.",
+ "ERROR": "Pemilihan peti masuk diperlukan."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Tiada Peti Masuk Bersambung",
+ "SUBTITLE": "Menyambungkan peti masuk membolehkan pembantu mengendalikan soalan awal daripada pelanggan anda sebelum memindahkannya kepada anda."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
index c96071bc8..b4f42d7c2 100644
--- a/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ms/labelsMgmt.json
@@ -1,76 +1,82 @@
{
"LABEL_MGMT": {
- "HEADER": "Labels",
- "HEADER_BTN_TXT": "Add label",
- "LOADING": "Fetching labels",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
+ "HEADER": "Label",
+ "HEADER_BTN_TXT": "Tambah label",
+ "LOADING": "Memuatkan label",
+ "DESCRIPTION": "Label membantu anda mengkategorikan dan mengutamakan perbualan dan prospek. Anda boleh menetapkan label kepada perbualan atau kenalan menggunakan panel sisi.",
+ "LEARN_MORE": "Ketahui lebih lanjut tentang label",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Cari label...",
+ "NO_RESULTS": "Tiada label ditemui yang sepadan dengan carian anda",
+ "SEARCH_404": "Tiada item yang sepadan dengan pertanyaan ini",
"LIST": {
- "404": "There are no labels available in this account.",
- "TITLE": "Manage labels",
- "DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Nama",
- "Description",
- "Color"
- ]
+ "404": "Tiada label tersedia dalam akaun ini.",
+ "TITLE": "Urus label",
+ "DESC": "Label membolehkan anda mengumpulkan perbualan bersama-sama.",
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "DESCRIPTION": "Penerangan",
+ "COLOR": "Warna",
+ "ACTION": "Tindakan-tindakan"
+ }
},
"FORM": {
"NAME": {
- "LABEL": "Label Name",
- "PLACEHOLDER": "Label name",
- "REQUIRED_ERROR": "Label name is required",
- "MINIMUM_LENGTH_ERROR": "Minimum length 2 is required",
- "VALID_ERROR": "Only Alphabets, Numbers, Hyphen and Underscore are allowed"
+ "LABEL": "Nama Label",
+ "PLACEHOLDER": "Nama label",
+ "REQUIRED_ERROR": "Nama label diperlukan",
+ "MINIMUM_LENGTH_ERROR": "Panjang minimum 2 diperlukan",
+ "VALID_ERROR": "Hanya Alfabet, Nombor, Tanda Hubung dan Garis Bawah dibenarkan"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Label Description"
+ "LABEL": "Penerangan",
+ "PLACEHOLDER": "Penerangan Label"
},
"COLOR": {
- "LABEL": "Color"
+ "LABEL": "Warna"
},
"SHOW_ON_SIDEBAR": {
- "LABEL": "Show label on sidebar"
+ "LABEL": "Tunjukkan label pada bar sisi"
},
- "EDIT": "Edit",
- "CREATE": "Create",
+ "EDIT": "Sunting",
+ "CREATE": "Cipta",
"DELETE": "Padamkan",
"CANCEL": "Batalkan"
},
"SUGGESTIONS": {
"TOOLTIP": {
- "SINGLE_SUGGESTION": "Add label to conversation",
- "MULTIPLE_SUGGESTION": "Select this label",
- "DESELECT": "Deselect label",
- "DISMISS": "Dismiss suggestion"
+ "SINGLE_SUGGESTION": "Tambah label ke perbualan",
+ "MULTIPLE_SUGGESTION": "Pilih label ini",
+ "DESELECT": "Nyahpilih label",
+ "DISMISS": "Tolak cadangan"
},
"POWERED_BY": "Chatwoot AI",
- "DISMISS": "Dismiss",
- "ADD_SELECTED_LABELS": "Add selected labels",
- "ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "DISMISS": "Tolak",
+ "ADD_SELECTED_LABELS": "Tambah label yang dipilih",
+ "ADD_SELECTED_LABEL": "Tambah label yang dipilih",
+ "ADD_ALL_LABELS": "Tambah semua label",
+ "SUGGESTED_LABELS": "Label yang dicadangkan"
},
"ADD": {
- "TITLE": "Add label",
- "DESC": "Labels let you group the conversations together.",
+ "TITLE": "Tambah label",
+ "DESC": "Label membolehkan anda mengelompokkan perbualan bersama-sama.",
"API": {
- "SUCCESS_MESSAGE": "Label added successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "Label berjaya ditambah",
+ "ERROR_MESSAGE": "Terdapat ralat, sila cuba lagi"
}
},
"EDIT": {
- "TITLE": "Edit label",
+ "TITLE": "Sunting label",
"API": {
- "SUCCESS_MESSAGE": "Label updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "Label berjaya dikemas kini",
+ "ERROR_MESSAGE": "Terdapat ralat, sila cuba lagi"
}
},
"DELETE": {
"BUTTON_TEXT": "Padamkan",
"API": {
- "SUCCESS_MESSAGE": "Label deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "Label berjaya dipadam",
+ "ERROR_MESSAGE": "Terdapat ralat, sila cuba lagi"
},
"CONFIRM": {
"TITLE": "Pasti Padamkan",
diff --git a/app/javascript/dashboard/i18n/locale/ms/login.json b/app/javascript/dashboard/i18n/locale/ms/login.json
index 858d40656..a34ed1783 100644
--- a/app/javascript/dashboard/i18n/locale/ms/login.json
+++ b/app/javascript/dashboard/i18n/locale/ms/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/macros.json b/app/javascript/dashboard/i18n/locale/ms/macros.json
index b7db3339f..546579b7f 100644
--- a/app/javascript/dashboard/i18n/locale/ms/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ms/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nama",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nama",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Tindakan-tindakan"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Nilai diperlukan",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/mfa.json b/app/javascript/dashboard/i18n/locale/ms/mfa.json
new file mode 100644
index 000000000..6aece3913
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Batalkan",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Batalkan",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Batalkan",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/onboarding.json b/app/javascript/dashboard/i18n/locale/ms/onboarding.json
new file mode 100644
index 000000000..cde30bd99
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Pilih zon waktu",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Teruskan",
+ "SAVING": "Menyimpan...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/report.json b/app/javascript/dashboard/i18n/locale/ms/report.json
index 38a1e7df5..e990aa448 100644
--- a/app/javascript/dashboard/i18n/locale/ms/report.json
+++ b/app/javascript/dashboard/i18n/locale/ms/report.json
@@ -3,7 +3,7 @@
"HEADER": "Conversations",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Resolution Count",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Last 7 days",
+ "LAST_14_DAYS": "Last 14 days",
"LAST_30_DAYS": "Last 30 days",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tiada dijumpa"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_AGENT_REPORTS": "Download agent reports",
"FILTER_DROPDOWN_LABEL": "Select Agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cari ejen"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Loading chart data...",
"NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Cari pasukan"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversations",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Resolution Time",
"DESC": "( Avg )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Resolution Count",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Cari ejen",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Cari pasukan",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Ejen"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Ejen",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Batalkan",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,7 +553,19 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Ejen",
- "OPEN": "OPEN",
+ "OPEN": "Open",
+ "UNATTENDED": "Unattended",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Tiada dijumpa",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent name",
+ "INBOXES": "Inbox name",
+ "LABELS": "Label name",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Ejen",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Ejen"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Resolution Count",
+ "CONVERSATIONS": "No. of conversations"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/search.json b/app/javascript/dashboard/i18n/locale/ms/search.json
index 107e64fd8..747956e00 100644
--- a/app/javascript/dashboard/i18n/locale/ms/search.json
+++ b/app/javascript/dashboard/i18n/locale/ms/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Ejen",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "Tiada ejen dijumpa",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/settings.json b/app/javascript/dashboard/i18n/locale/ms/settings.json
index 6eb09f3d7..27a3f423c 100644
--- a/app/javascript/dashboard/i18n/locale/ms/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/settings.json
@@ -1,325 +1,923 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
+ "LINK": "Tetapan akaun profil",
+ "TITLE": "Tetapan profil pengguna",
+ "BTN_TEXT": "Kemas kini profil",
+ "DELETE_AVATAR": "Padam Avatar",
+ "AVATAR_DELETE_SUCCESS": "Avatar telah berjaya dipadam",
+ "AVATAR_DELETE_FAILED": "Terdapat ralat semasa memadam avatar, sila cuba lagi",
+ "UPDATE_SUCCESS": "Profil anda telah berjaya dikemas kini",
+ "PASSWORD_UPDATE_SUCCESS": "Katalaluan anda telah berjaya ditukar",
+ "AFTER_EMAIL_CHANGED": "Profil anda telah berjaya dikemas kini. Sila log masuk semula kerana kelayakan log masuk anda telah berubah.",
"FORM": {
- "AVATAR": "Profile Image",
- "ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "PICTURE": "Gambar Profil",
+ "AVATAR": "Imej profil",
+ "ERROR": "Sila baiki ralat borang",
+ "REMOVE_IMAGE": "Padam",
+ "UPLOAD_IMAGE": "Muat naik imej",
+ "UPDATE_IMAGE": "Kemas kini imej",
"PROFILE_SECTION": {
- "TITLE": "Profile",
- "NOTE": "Your email address is your identity and is used to log in."
+ "TITLE": "Profil",
+ "NOTE": "Alamat emel anda adalah identiti anda dan digunakan untuk log masuk."
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "Kekunci pintas untuk hantar mesej",
+ "NOTE": "Anda boleh memilih kekunci pintas (sama ada Enter atau Cmd/Ctrl+Enter) berdasarkan keutamaan menulis anda.",
+ "UPDATE_SUCCESS": "Tetapan anda telah berjaya dikemas kini",
"CARD": {
"ENTER_KEY": {
"HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "CONTENT": "Hantar mesej dengan menekan kekunci Enter dan bukannya klik butang hantar."
},
"CMD_ENTER_KEY": {
"HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "CONTENT": "Hantar mesej dengan menekan kekunci Cmd/Ctrl + Enter dan bukannya klik butang hantar."
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Antara Muka",
+ "NOTE": "Sesuaikan rupa dan rasa papan pemuka Chatwoot anda.",
+ "FONT_SIZE": {
+ "TITLE": "Saiz fon",
+ "NOTE": "Laraskan saiz teks di seluruh papan pemuka mengikut keutamaan anda.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Lebih Kecil",
+ "SMALL": "Kecil",
+ "DEFAULT": "Lalai",
+ "LARGE": "Besar",
+ "LARGER": "Lebih Besar",
+ "EXTRA_LARGE": "Sangat Besar"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Bahasa Pilihan",
+ "NOTE": "Pilih bahasa yang anda ingin gunakan.",
+ "UPDATE_SUCCESS": "Tetapan Bahasa anda telah berjaya dikemas kini",
+ "UPDATE_ERROR": "Terdapat ralat semasa mengemas kini tetapan bahasa, sila cuba lagi",
+ "USE_ACCOUNT_DEFAULT": "Gunakan tetapan akaun lalai"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "Tandatangan mesej peribadi",
+ "NOTE": "Cipta tandatangan mesej unik yang akan muncul di akhir setiap mesej yang anda hantar dari mana-mana peti masuk. Anda juga boleh memasukkan imej sebaris, yang disokong dalam peti masuk sembang langsung, e-mel, dan API.",
+ "BTN_TEXT": "Simpan tandatangan mesej",
+ "API_ERROR": "Tidak dapat menyimpan tandatangan! Sila cuba lagi",
+ "API_SUCCESS": "Tandatangan berjaya disimpan",
+ "IMAGE_UPLOAD_ERROR": "Tidak dapat memuat naik imej! Sila cuba lagi",
+ "IMAGE_UPLOAD_SUCCESS": "Imej berjaya ditambah. Sila klik simpan untuk menyimpan tandatangan",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "Tandatangan Mesej",
+ "ERROR": "Tandatangan Mesej tidak boleh kosong",
+ "PLACEHOLDER": "Masukkan tandatangan mesej peribadi anda di sini."
},
"PASSWORD_SECTION": {
- "TITLE": "Password",
- "NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
+ "TITLE": "Kata Laluan",
+ "NOTE": "Mengemas kini kata laluan anda akan menetapkan semula log masuk anda pada pelbagai peranti.",
+ "BTN_TEXT": "Tukar kata laluan"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "Keselamatan",
+ "NOTE": "Urus ciri keselamatan tambahan untuk akaun anda.",
+ "MFA_BUTTON": "Urus Pengesahan Dua Faktor"
},
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "NOTE": "Token ini boleh digunakan jika anda membina integrasi berasaskan API",
+ "COPY": "Salin",
+ "RESET": "Tetapkan Semula",
+ "CONFIRM_RESET": "Adakah anda pasti?",
+ "CONFIRM_HINT": "Klik sekali lagi untuk mengesahkan",
+ "RESET_SUCCESS": "Token akses berjaya dijana semula",
+ "RESET_ERROR": "Tidak dapat menjana semula token akses. Sila cuba lagi"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
- "ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Amaran Audio",
+ "NOTE": "Dayakan amaran audio di papan pemuka untuk mesej dan perbualan baru.",
+ "PLAY": "Mainkan bunyi",
+ "ALERT_TYPES": {
"NONE": "Tiada",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "MINE": "Ditugaskan",
+ "ALL": "Semua",
+ "ASSIGNED": "Perbualan yang ditugaskan kepada saya",
+ "UNASSIGNED": "Perbualan yang tidak ditugaskan",
+ "NOTME": "Perbualan terbuka yang ditugaskan kepada orang lain"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "Anda belum memilih sebarang pilihan, anda tidak akan menerima sebarang amaran audio.",
+ "ASSIGNED": "Anda akan menerima amaran untuk perbualan yang ditugaskan kepada anda.",
+ "UNASSIGNED": "Anda akan menerima amaran untuk sebarang perbualan yang tidak ditugaskan.",
+ "NOTME": "Anda akan menerima amaran untuk perbualan yang ditugaskan kepada orang lain.",
+ "ASSIGNED+UNASSIGNED": "Anda akan menerima amaran untuk perbualan yang ditugaskan kepada anda dan juga yang tidak dihadiri.",
+ "ASSIGNED+NOTME": "Anda akan menerima amaran untuk perbualan yang ditugaskan kepada anda dan orang lain, tetapi tidak untuk yang tidak ditugaskan.",
+ "NOTME+UNASSIGNED": "Anda akan menerima amaran untuk perbualan yang tidak dijaga dan yang ditugaskan kepada orang lain.",
+ "ASSIGNED+NOTME+UNASSIGNED": "Anda akan menerima amaran untuk semua perbualan."
+ },
+ "ALERT_TYPE": {
+ "TITLE": "Peristiwa amaran untuk perbualan",
+ "NONE": "Tiada",
+ "ASSIGNED": "Perbualan Ditugaskan",
+ "ALL_CONVERSATIONS": "Semua Perbualan"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "Nada amaran:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "Syarat amaran:",
+ "CONDITION_ONE": "Hantar amaran audio hanya jika tetingkap pelayar tidak aktif",
+ "CONDITION_TWO": "Hantar amaran setiap 30 saat sehingga semua perbualan yang ditugaskan dibaca"
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay dinyahaktifkan dalam pelayar anda. Untuk mendengar amaran secara automatik, aktifkan kebenaran bunyi dalam tetapan pelayar anda atau berinteraksi dengan halaman.",
+ "READ_MORE": "Baca lebih lanjut"
},
"EMAIL_NOTIFICATIONS_SECTION": {
- "TITLE": "Email Notifications",
- "NOTE": "Update your email notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "TITLE": "Pemberitahuan Emel",
+ "NOTE": "Kemas kini pilihan pemberitahuan emel anda di sini",
+ "CONVERSATION_ASSIGNMENT": "Hantar pemberitahuan emel apabila perbualan ditugaskan kepada saya",
+ "CONVERSATION_CREATION": "Hantar pemberitahuan emel apabila perbualan baru dibuat",
+ "CONVERSATION_MENTION": "Hantar pemberitahuan emel apabila anda disebut dalam perbualan",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Hantar pemberitahuan emel apabila mesej baru dibuat dalam perbualan yang ditugaskan",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Hantar pemberitahuan emel apabila mesej baru dibuat dalam perbualan yang disertai",
+ "SLA_MISSED_FIRST_RESPONSE": "Hantar pemberitahuan emel apabila perbualan terlepas SLA tindak balas pertama",
+ "SLA_MISSED_NEXT_RESPONSE": "Hantar notifikasi emel apabila perbualan terlepas SLA tindak balas seterusnya",
+ "SLA_MISSED_RESOLUTION": "Hantar notifikasi emel apabila perbualan terlepas SLA penyelesaian"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Keutamaan notifikasi",
+ "TYPE_TITLE": "Jenis notifikasi",
+ "EMAIL": "Emel",
+ "PUSH": "Notifikasi tolak",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Perbualan baru telah dibuat",
+ "CONVERSATION_ASSIGNED": "Perbualan telah ditugaskan kepada anda",
+ "CONVERSATION_MENTION": "Anda disebut dalam perbualan",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Mesej baru telah dibuat dalam perbualan yang ditugaskan",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Mesej baru telah dibuat dalam perbualan yang anda sertai",
+ "SLA_MISSED_FIRST_RESPONSE": "Perbualan terlepas SLA tindak balas pertama",
+ "SLA_MISSED_NEXT_RESPONSE": "Perbualan terlepas SLA tindak balas seterusnya",
+ "SLA_MISSED_RESOLUTION": "Perbualan terlepas SLA penyelesaian"
+ },
+ "BROWSER_PERMISSION": "Dayakan notifikasi tolak untuk pelayar anda supaya anda boleh menerimanya"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
- "UPDATE_ERROR": "There is an error while updating the preferences, please try again"
+ "UPDATE_SUCCESS": "Keutamaan notifikasi anda berjaya dikemas kini",
+ "UPDATE_ERROR": "Terdapat ralat semasa mengemas kini keutamaan, sila cuba lagi"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "TITLE": "Notifikasi Tolak",
+ "NOTE": "Kemas kini keutamaan notifikasi tolak anda di sini",
+ "CONVERSATION_ASSIGNMENT": "Hantar notifikasi tolak apabila perbualan ditugaskan kepada saya",
+ "CONVERSATION_CREATION": "Hantar pemberitahuan push apabila perbualan baru dibuat",
+ "CONVERSATION_MENTION": "Hantar pemberitahuan push apabila anda disebut dalam perbualan",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Hantar pemberitahuan push apabila mesej baru dibuat dalam perbualan yang ditugaskan",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Hantar pemberitahuan push apabila mesej baru dibuat dalam perbualan yang disertai",
+ "HAS_ENABLED_PUSH": "Anda telah mengaktifkan push untuk pelayar ini.",
+ "REQUEST_PUSH": "Aktifkan pemberitahuan push",
+ "SLA_MISSED_FIRST_RESPONSE": "Hantar pemberitahuan push apabila perbualan terlepas SLA respons pertama",
+ "SLA_MISSED_NEXT_RESPONSE": "Hantar pemberitahuan push apabila perbualan terlepas SLA respons seterusnya",
+ "SLA_MISSED_RESOLUTION": "Hantar pemberitahuan push apabila perbualan terlepas SLA penyelesaian"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "Imej Profil"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "Nama penuh anda",
+ "ERROR": "Sila masukkan nama penuh yang sah",
+ "PLACEHOLDER": "Sila masukkan nama penuh anda"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "Nama paparan",
+ "ERROR": "Sila masukkan nama paparan yang sah",
+ "PLACEHOLDER": "Sila masukkan nama paparan, ini akan dipaparkan dalam perbualan"
},
"AVAILABILITY": {
- "LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "LABEL": "Ketersediaan",
+ "STATUS": {
+ "ONLINE": "Dalam Talian",
+ "BUSY": "Bersibuk",
+ "OFFLINE": "Luar Talian"
+ },
+ "SET_AVAILABILITY_SUCCESS": "Ketersediaan telah ditetapkan dengan jayanya",
+ "SET_AVAILABILITY_ERROR": "Tidak dapat menetapkan ketersediaan, sila cuba lagi",
+ "IMPERSONATING_ERROR": "Tidak boleh menukar ketersediaan semasa menyamar sebagai pengguna"
},
"EMAIL": {
- "LABEL": "Your email address",
- "ERROR": "Please enter a valid email address",
- "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations"
+ "LABEL": "Alamat emel anda",
+ "ERROR": "Sila masukkan alamat emel yang sah",
+ "PLACEHOLDER": "Sila masukkan alamat emel anda, ini akan dipaparkan dalam perbualan"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "Kata laluan semasa",
+ "ERROR": "Sila masukkan kata laluan semasa",
+ "PLACEHOLDER": "Sila masukkan kata laluan semasa"
},
"PASSWORD": {
- "LABEL": "New password",
- "ERROR": "Please enter a password of length 6 or more",
- "PLACEHOLDER": "Please enter a new password"
+ "LABEL": "Kata laluan baru",
+ "ERROR": "Sila masukkan kata laluan dengan panjang 6 atau lebih",
+ "PLACEHOLDER": "Sila masukkan kata laluan baru"
},
"PASSWORD_CONFIRMATION": {
- "LABEL": "Confirm new password",
- "ERROR": "Confirm password should match the password",
- "PLACEHOLDER": "Please re-enter your new password"
+ "LABEL": "Sahkan kata laluan baru",
+ "ERROR": "Sahkan kata laluan mesti sama dengan kata laluan",
+ "PLACEHOLDER": "Sila masukkan semula kata laluan baru anda"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
- "SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "CHANGE_AVAILABILITY_STATUS": "Tukar",
+ "CHANGE_ACCOUNTS": "Tukar akaun",
+ "SWITCH_ACCOUNT": "Tukar akaun",
+ "CONTACT_SUPPORT": "Hubungi sokongan",
+ "SELECTOR_SUBTITLE": "Pilih akaun dari senarai berikut",
+ "PROFILE_SETTINGS": "Tetapan profil",
+ "YEAR_IN_REVIEW": "Tahun dalam Ulasan",
+ "KEYBOARD_SHORTCUTS": "Pintasan papan kekunci",
+ "APPEARANCE": "Tukar penampilan",
+ "SUPER_ADMIN_CONSOLE": "Konsol SuperAdmin",
+ "DOCS": "Baca dokumentasi",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log keluar"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "days trial remaining.",
- "TRAIL_BUTTON": "Buy Now",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "TRIAL_MESSAGE": "hari percubaan tinggal.",
+ "TRAIL_BUTTON": "Beli Sekarang",
+ "DELETED_USER": "Pengguna Dipadam",
+ "EMAIL_VERIFICATION_PENDING": "Nampaknya anda belum mengesahkan alamat emel anda. Sila semak peti masuk anda untuk emel pengesahan.",
+ "RESEND_VERIFICATION_MAIL": "Hantar semula emel pengesahan",
+ "EMAIL_VERIFICATION_SENT": "Emel pengesahan telah dihantar. Sila semak peti masuk anda.",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "Akaun Digantung",
+ "MESSAGE": "Akaun anda digantung. Sila hubungi pasukan sokongan untuk maklumat lanjut."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "Tiada akaun ditemui",
+ "MESSAGE_CLOUD": "Anda tidak tergolong dalam mana-mana akaun sekarang. Jika anda rasa ini satu kesilapan, sila hubungi pasukan sokongan kami.",
+ "MESSAGE_SELF_HOSTED": "Anda tidak tergolong dalam mana-mana akaun sekarang. Sila hubungi pentadbir anda.",
+ "LOGOUT": "Log keluar"
}
},
"COMPONENTS": {
"CODE": {
- "BUTTON_TEXT": "Copy",
- "CODEPEN": "Open in CodePen",
+ "BUTTON_TEXT": "Salin",
+ "CODEPEN": "Buka di CodePen",
"COPY_SUCCESSFUL": "Code copied to clipboard successfully"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "Tunjukkan Lagi",
+ "SHOW_LESS": "Tunjukkan Kurang"
},
"FILE_BUBBLE": {
- "DOWNLOAD": "Download",
- "UPLOADING": "Uploading...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "DOWNLOAD": "Muat Turun",
+ "UPLOADING": "Memuat naik...",
+ "INSTAGRAM_STORY_UNAVAILABLE": "Cerita ini tidak lagi tersedia.",
+ "INSTAGRAM_STORY_REPLY": "Membalas cerita anda:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "Lihat pada peta"
},
"FORM_BUBBLE": {
- "SUBMIT": "Submit"
+ "SUBMIT": "Hantar"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "Imej ini tidak lagi tersedia.",
+ "LOADING_FAILED": "Muat turun gagal"
}
},
- "CONFIRM_EMAIL": "Verifying...",
+ "CONFIRM_EMAIL": "Mengesahkan...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Add Inbox"
+ "NEW_INBOX": "Tambah Peti Masuk"
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
- "REPORTS": "Reports",
- "SETTINGS": "Settings",
- "CONTACTS": "Contacts",
- "HOME": "Home",
+ "NO_ITEMS": "Tiada item",
+ "CURRENTLY_VIEWING_ACCOUNT": "Sedang melihat:",
+ "SWITCH": "Tukar",
+ "INBOX_VIEW": "Paparan Peti Masuk",
+ "CONVERSATIONS": "Perbualan",
+ "INBOX": "Peti Masuk Saya",
+ "ALL_CONVERSATIONS": "Semua Perbualan",
+ "MENTIONED_CONVERSATIONS": "Sebutan",
+ "PARTICIPATING_CONVERSATIONS": "Menyertai",
+ "UNATTENDED_CONVERSATIONS": "Tidak Dijaga",
+ "REPORTS": "Laporan",
+ "SETTINGS": "Tetapan",
+ "CONTACTS": "Kenalan",
+ "ACTIVE": "Aktif",
+ "COMPANIES": "Syarikat",
+ "ALL_COMPANIES": "Semua Syarikat",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Pembantu",
+ "CAPTAIN_DOCUMENTS": "Dokumen",
+ "CAPTAIN_RESPONSES": "Soalan Lazim",
+ "CAPTAIN_TOOLS": "Alat",
+ "CAPTAIN_SCENARIOS": "Senario",
+ "CAPTAIN_PLAYGROUND": "Padang Permainan",
+ "CAPTAIN_INBOXES": "Petak Masuk",
+ "CAPTAIN_SETTINGS": "Tetapan",
+ "HOME": "Laman Utama",
"AGENTS": "Ejen",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Inboxes",
- "NOTIFICATIONS": "Notifications",
- "CANNED_RESPONSES": "Canned Responses",
- "INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
- "ACCOUNT_SETTINGS": "Account Settings",
- "APPLICATIONS": "Applications",
- "LABELS": "Labels",
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
- "REPORTS_CONVERSATION": "Conversations",
+ "AGENT_BOTS": "Bot",
+ "AUDIT_LOGS": "Log Audit",
+ "INBOXES": "Peti Masuk",
+ "NOTIFICATIONS": "Pemberitahuan",
+ "CANNED_RESPONSES": "Respons Sedia Ada",
+ "INTEGRATIONS": "Integrasi",
+ "PROFILE_SETTINGS": "Tetapan Profil",
+ "ACCOUNT_SETTINGS": "Tetapan Akaun",
+ "APPLICATIONS": "Aplikasi",
+ "LABELS": "Label",
+ "CUSTOM_ATTRIBUTES": "Atribut Tersuai",
+ "AUTOMATION": "Automasi",
+ "MACROS": "Makro",
+ "TEAMS": "Pasukan",
+ "BILLING": "Pengebilan",
+ "CUSTOM_VIEWS_FOLDER": "Folder",
+ "CUSTOM_VIEWS_SEGMENTS": "Segmen",
+ "ALL_CONTACTS": "Semua Kenalan",
+ "TAGGED_WITH": "Ditandai dengan",
+ "NEW_LABEL": "Label baru",
+ "NEW_TEAM": "Pasukan baru",
+ "NEW_INBOX": "Peti masuk baru",
+ "REPORTS_CONVERSATION": "Perbualan",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
+ "LIVE_CHAT": "Sembang Langsung",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "Kempen",
+ "ONGOING": "Sedang Berlangsung",
+ "ONE_OFF": "Sekali sahaja",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Ejen",
- "REPORTS_LABEL": "Labels",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "REPORTS_LABEL": "Label",
+ "REPORTS_INBOX": "Petibek",
+ "REPORTS_TEAM": "Pasukan",
+ "AGENT_ASSIGNMENT": "Penugasan Ejen",
+ "SET_AVAILABILITY_TITLE": "Tetapkan diri anda sebagai",
+ "SET_YOUR_AVAILABILITY": "Tetapkan ketersediaan anda",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Peranan Tersuai",
"BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REPORTS_OVERVIEW": "Gambaran Keseluruhan",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "Pusat Bantuan",
+ "ARTICLES": "Artikel",
+ "CATEGORIES": "Kategori",
+ "LOCALES": "Lokal",
+ "SETTINGS": "Tetapan"
},
+ "CHANNELS": "Saluran",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "Tandakan luar talian secara automatik",
+ "INFO_TEXT": "Biarkan sistem menandakan anda luar talian secara automatik apabila anda tidak menggunakan aplikasi atau papan pemuka.",
+ "INFO_SHORT": "Tandakan luar talian secara automatik apabila anda tidak menggunakan aplikasi."
},
- "DOCS": "Read docs"
+ "DOCS": "Baca dokumen",
+ "SECURITY": "Keselamatan",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Aliran Kerja Perbualan"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Tetapan Captain",
+ "DESCRIPTION": "Konfigurasikan model AI dan ciri untuk Captain anda. Captain menggunakan pengebilan berasaskan kredit, anda akan dikenakan kredit untuk setiap tindakan yang diambil Captain berdasarkan model yang dipilih.",
+ "LOADING": "Memuatkan konfigurasi Captain...",
+ "LINK_TEXT": "Ketahui lebih lanjut tentang Kredit Captain",
+ "NOT_ENABLED": "Captain tidak diaktifkan untuk akaun anda. Sila naik taraf pelan anda untuk mengakses ciri Captain.",
+ "MODEL_CONFIG": {
+ "TITLE": "Konfigurasi Model",
+ "DESCRIPTION": "Pilih model AI untuk ciri yang berbeza.",
+ "SELECT_MODEL": "Pilih model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Akan datang",
+ "EDITOR": {
+ "TITLE": "Ciri Penyunting",
+ "DESCRIPTION": "Menguatkuasakan penulisan pintar, pembetulan tatabahasa, pelarasan nada, dan penambahbaikan kandungan dalam penyunting mesej anda."
+ },
+ "ASSISTANT": {
+ "TITLE": "Pembantu",
+ "DESCRIPTION": "Mengendalikan respons automatik, ringkasan perbualan, dan cadangan balasan pintar untuk interaksi pelanggan."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Menyediakan cadangan kontekstual masa nyata, saranan pangkalan pengetahuan, dan pandangan proaktif semasa perbualan."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Ciri-ciri",
+ "DESCRIPTION": "Dayakan atau nyahdayakan ciri yang dikuasakan AI.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transkripsi Audio",
+ "DESCRIPTION": "Secara automatik menukar mesej suara dan rakaman panggilan kepada transkrip teks yang boleh dicari."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Pengindeksan Carian Pusat Bantuan",
+ "DESCRIPTION": "Gunakan AI untuk carian yang peka konteks dalam artikel pusat bantuan anda."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Cadangan Label",
+ "DESCRIPTION": "Secara automatik mencadangkan label dan tag yang relevan untuk perbualan berdasarkan analisis kandungan dan konteks.",
+ "MODEL_TITLE": "Model Cadangan Label",
+ "MODEL_DESCRIPTION": "Pilih model AI untuk menganalisis perbualan dan mencadangkan label yang sesuai"
+ }
+ },
+ "API": {
+ "SUCCESS": "Tetapan Captain berjaya dikemas kini.",
+ "ERROR": "Gagal mengemas kini tetapan Captain. Sila cuba lagi."
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "Pengebilan",
+ "DESCRIPTION": "Urus langganan anda di sini, naik taraf pelan anda dan dapatkan lebih untuk pasukan anda.",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "Pelan Semasa",
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Bilangan tempat duduk",
+ "RENEWS_ON": "Diperbaharui pada"
},
+ "VIEW_PRICING": "Lihat Harga",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "Urus langganan anda",
+ "DESCRIPTION": "Lihat invois anda sebelum ini, sunting butiran bil anda, atau batalkan langganan anda.",
+ "BUTTON_TXT": "Pergi ke portal bil"
+ },
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Urus penggunaan dan kredit untuk Captain AI.",
+ "BUTTON_TXT": "Beli lebih banyak kredit",
+ "DOCUMENTS": "Dokumen",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain tidak tersedia dalam pelan percuma, naik taraf sekarang untuk mendapatkan akses kepada pembantu, copilot dan lain-lain.",
+ "REFRESH_CREDITS": "Segarkan"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
- "BUTTON_TXT": "Chat with us"
+ "TITLE": "Perlukan bantuan?",
+ "DESCRIPTION": "Adakah anda menghadapi sebarang masalah dalam pengebilan? Kami sedia membantu.",
+ "BUTTON_TXT": "Bual dengan kami"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Akaun pengebilan anda sedang dikonfigurasikan. Sila segarkan halaman dan cuba lagi.",
+ "TOPUP": {
+ "BUY_CREDITS": "Beli lebih banyak kredit",
+ "MODAL_TITLE": "Beli Kredit AI",
+ "MODAL_DESCRIPTION": "Beli kredit tambahan untuk Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "sekali sahaja",
+ "POPULAR": "Paling Popular",
+ "NOTE_TITLE": "Nota:",
+ "NOTE_DESCRIPTION": "Kredit ditambah serta-merta dan tamat tempoh dalam 6 bulan. Langganan aktif diperlukan untuk menggunakan kredit. Kredit yang dibeli akan digunakan selepas kredit pelan bulanan anda.",
+ "CANCEL": "Batalkan",
+ "PURCHASE": "Beli Kredit",
+ "LOADING": "Memuatkan pilihan...",
+ "FETCH_ERROR": "Gagal memuatkan pilihan kredit. Sila cuba lagi.",
+ "PURCHASE_ERROR": "Gagal memproses pembelian. Sila cuba lagi.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Sahkan Pembelian",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Kad yang disimpan akan dikenakan caj serta-merta selepas pengesahan.",
+ "GO_BACK": "Kembali",
+ "CONFIRM_PURCHASE": "Sahkan Pembelian"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Keselamatan",
+ "DESCRIPTION": "Urus tetapan keselamatan akaun anda.",
+ "LINK_TEXT": "Ketahui lebih lanjut tentang SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO kini dinyahaktifkan. Sila hubungi pentadbir anda untuk mengaktifkan ciri ini.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Konfigurasikan log masuk tunggal SAML untuk akaun anda. Pengguna akan mengesahkan identiti melalui penyedia identiti anda dan bukannya menggunakan emel/kata laluan.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "URL Perkhidmatan Pengguna Pengesahan - Konfigurasikan URL ini dalam IdP anda sebagai destinasi untuk respons SAML"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "URL di mana permintaan pengesahan SAML akan dihantar",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Sijil tandatangan dalam format PEM",
+ "HELP": "Sijil awam dari penyedia identiti anda yang digunakan untuk mengesahkan respons SAML",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Cap jari",
+ "TOOLTIP": "Cap jari SHA-1 sijil - Gunakan ini untuk mengesahkan sijil dalam konfigurasi IdP anda"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Pengecam unik untuk aplikasi ini sebagai penyedia perkhidmatan (auto-dihasilkan).",
+ "TOOLTIP": "Pengecam unik untuk Chatwoot sebagai Penyedia Perkhidmatan - Konfigurasikan ini dalam tetapan IdP anda"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "ID Entiti Penyedia Identiti",
+ "HELP": "Pengenal unik untuk penyedia identiti anda (biasanya ditemui dalam konfigurasi IdP)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Kemas kini Tetapan SAML",
+ "API": {
+ "SUCCESS": "Tetapan SAML berjaya dikemas kini",
+ "ERROR": "Gagal mengemas kini tetapan SAML",
+ "ERROR_LOADING": "Gagal memuatkan tetapan SAML",
+ "DISABLED": "Tetapan SAML berjaya dinyahaktifkan"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "URL SSO, ID Entiti Penyedia Identiti, dan Sijil adalah medan wajib",
+ "SSO_URL_ERROR": "Sila masukkan URL SSO yang sah",
+ "CERTIFICATE_ERROR": "Sijil diperlukan",
+ "IDP_ENTITY_ID_ERROR": "ID Entiti Penyedia Identiti diperlukan"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Ciri SAML SSO hanya tersedia dalam pelan Enterprise.",
+ "UPGRADE_PROMPT": "Tingkatkan ke pelan Enterprise untuk mengakses SAML single sign-on dan ciri keselamatan lanjutan lain.",
+ "ASK_ADMIN": "Sila hubungi pentadbir anda untuk peningkatan."
+ },
+ "PAYWALL": {
+ "TITLE": "Tingkatkan untuk mengaktifkan SAML SSO",
+ "AVAILABLE_ON": "Ciri SAML SSO hanya tersedia dalam pelan Enterprise.",
+ "UPGRADE_PROMPT": "Tingkatkan pelan anda untuk mendapatkan akses kepada SAML single sign-on dan ciri lanjutan lain.",
+ "UPGRADE_NOW": "Tingkatkan sekarang",
+ "CANCEL_ANYTIME": "Anda boleh menukar atau membatalkan pelan anda bila-bila masa"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "Tetapan Atribut SAML",
+ "DESCRIPTION": "Pemetaan atribut berikut mesti dikonfigurasikan dalam penyedia identiti anda"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Maklumat Penyedia Perkhidmatan",
+ "TOOLTIP": "Salin nilai ini dan konfigurasikan dalam Penyedia Identiti anda untuk mewujudkan sambungan SAML"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Aliran Kerja Perbualan",
+ "DESCRIPTION": "Konfigurasikan peraturan dan medan yang diperlukan untuk penyelesaian perbualan."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Atribut yang diperlukan semasa penyelesaian",
+ "DESCRIPTION": "Apabila menyelesaikan perbualan, ejen akan diminta untuk mengisi atribut ini jika belum diisi.",
+ "NO_ATTRIBUTES": "Tiada atribut ditambah lagi",
+ "ADD": {
+ "TITLE": "Tambah Atribut",
+ "SEARCH_PLACEHOLDER": "Cari atribut"
+ },
+ "SAVE": {
+ "SUCCESS": "Atribut yang diperlukan telah dikemas kini",
+ "ERROR": "Tidak dapat mengemas kini atribut yang diperlukan, sila cuba lagi"
+ },
+ "MODAL": {
+ "TITLE": "Selesaikan perbualan",
+ "DESCRIPTION": "Sila isi atribut tersuai berikut sebelum menyelesaikan perbualan ini",
+ "ACTIONS": {
+ "RESOLVE": "Selesaikan perbualan",
+ "CANCEL": "Batalkan"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Tulis nota...",
+ "NUMBER": "Masukkan nombor",
+ "LINK": "Tambah pautan",
+ "DATE": "Pilih tarikh",
+ "LIST": "Pilih pilihan"
+ },
+ "CHECKBOX": {
+ "YES": "Ya",
+ "NO": "Tidak"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Tingkatkan untuk menggunakan atribut wajib",
+ "AVAILABLE_ON": "Ciri atribut perbualan wajib tersedia pada pelan Perniagaan dan Perusahaan.",
+ "UPGRADE_PROMPT": "Tingkatkan pelan anda untuk menggesa ejen mengisi atribut wajib sebelum penyelesaian perbualan.",
+ "UPGRADE_NOW": "Tingkatkan sekarang",
+ "CANCEL_ANYTIME": "Anda boleh menukar atau membatalkan pelan anda bila-bila masa"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Ciri atribut perbualan wajib tersedia pada pelan berbayar.",
+ "UPGRADE_PROMPT": "Tingkatkan ke pelan berbayar untuk menguatkuasakan atribut wajib sebelum penyelesaian perbualan.",
+ "ASK_ADMIN": "Sila hubungi pentadbir anda untuk peningkatan."
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "Uh oh! Kami tidak dapat menemui sebarang akaun Chatwoot. Sila buat akaun baru untuk meneruskan.",
+ "NEW_ACCOUNT": "Akaun Baru",
+ "SELECTOR_SUBTITLE": "Buat akaun baru",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
+ "SUCCESS_MESSAGE": "Akaun berjaya dibuat",
+ "EXIST_MESSAGE": "Akaun sudah wujud",
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
},
"FORM": {
"NAME": {
- "LABEL": "Company Name",
+ "LABEL": "Nama Syarikat",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "Submit"
+ "SUBMIT": "Hantar",
+ "CANCEL": "Batalkan"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "Lihat semua pintasan",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "Buka perbualan",
+ "RESOLVE_AND_NEXT": "Selesaikan dan terus ke seterusnya",
+ "NAVIGATE_DROPDOWN": "Navigasi item dropdown",
+ "RESOLVE_CONVERSATION": "Selesaikan Perbualan",
+ "GO_TO_CONVERSATION_DASHBOARD": "Pergi ke Papan Pemuka Perbualan",
+ "ADD_ATTACHMENT": "Tambah Lampiran",
+ "GO_TO_CONTACTS_DASHBOARD": "Pergi ke Papan Pemuka Kenalan",
+ "TOGGLE_SIDEBAR": "Togol Bar Sisi",
+ "GO_TO_REPORTS_SIDEBAR": "Pergi ke bar sisi Laporan",
+ "MOVE_TO_NEXT_TAB": "Berpindah ke tab seterusnya dalam senarai perbualan",
+ "GO_TO_SETTINGS": "Pergi ke Tetapan",
+ "SWITCH_TO_PRIVATE_NOTE": "Beralih ke Nota Peribadi",
+ "SWITCH_TO_REPLY": "Beralih ke Balasan",
+ "TOGGLE_SNOOZE_DROPDOWN": "Togol menu lungsur snooze"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Penugasan ejen",
+ "DESCRIPTION": "Tentukan polisi untuk menguruskan beban kerja dengan berkesan dan menghala perbualan berdasarkan keperluan peti masuk dan ejen. Ketahui lebih lanjut di sini"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Polisi penugasan",
+ "DESCRIPTION": "Urus cara perbualan ditugaskan dalam peti masuk.",
+ "FEATURES": [
+ "Tugaskan mengikut perbualan secara seimbang atau mengikut kapasiti tersedia",
+ "Tambah peraturan pengagihan adil untuk mengelakkan beban berlebihan pada mana-mana ejen",
+ "Tambah peti masuk ke dalam polisi - satu polisi bagi setiap peti masuk"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Polisi kapasiti ejen",
+ "DESCRIPTION": "Urus beban kerja untuk ejen.",
+ "FEATURES": [
+ "Tentukan maksimum perbualan setiap peti masuk",
+ "Buat pengecualian berdasarkan label dan masa",
+ "Tambah ejen ke polisi - satu polisi setiap ejen"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Polisi penugasan",
+ "CREATE_POLICY": "Polisi baru"
+ },
+ "CARD": {
+ "ORDER": "Susunan",
+ "PRIORITY": "Keutamaan",
+ "ACTIVE": "Aktif",
+ "INACTIVE": "Tidak aktif",
+ "POPOVER": "Peti masuk yang ditambah",
+ "EDIT": "Sunting"
+ },
+ "NO_RECORDS_FOUND": "Tiada polisi penugasan ditemui"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Buat polisi penugasan"
+ },
+ "CREATE_BUTTON": "Buat polisi",
+ "API": {
+ "SUCCESS_MESSAGE": "Polisi penugasan berjaya dibuat",
+ "ERROR_MESSAGE": "Gagal membuat polisi penugasan",
+ "INBOX_LINKED": "Peti masuk telah dipautkan ke polisi"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Sunting polisi penugasan"
+ },
+ "EDIT_BUTTON": "Kemas kini polisi",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Tambah peti masuk",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Teruskan",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Pautkan peti masuk ke polisi",
+ "DESCRIPTION": "Adakah anda ingin pautkan peti masuk ini ke polisi tugasan?",
+ "LINK_BUTTON": "Pautkan peti masuk",
+ "CANCEL_BUTTON": "Langkau"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Polisi tugasan berjaya dikemas kini",
+ "ERROR_MESSAGE": "Gagal mengemas kini polisi tugasan"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Peti masuk berjaya ditambah ke polisi",
+ "ERROR_MESSAGE": "Gagal menambah peti masuk ke polisi"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Peti masuk berjaya dikeluarkan dari polisi",
+ "ERROR_MESSAGE": "Gagal mengeluarkan peti masuk dari polisi"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama polisi:",
+ "PLACEHOLDER": "Masukkan nama polisi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan:",
+ "PLACEHOLDER": "Masukkan penerangan"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Pilih status",
+ "ACTIVE": "Polisi aktif",
+ "INACTIVE": "Polisi tidak aktif"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Susunan tugasan",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Agihkan perbualan secara sama rata antara ejen."
+ },
+ "BALANCED": {
+ "LABEL": "Seimbang",
+ "DESCRIPTION": "Agihkan perbualan berdasarkan kapasiti yang tersedia.",
+ "PREMIUM_MESSAGE": "Tingkatkan untuk mengakses pengagihan seimbang dan pengurusan kapasiti ejen.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Keutamaan penugasan",
+ "EARLIEST_CREATED": {
+ "LABEL": "Dicipta paling awal",
+ "DESCRIPTION": "Perbualan yang dicipta terlebih dahulu akan diberikan tugasan terlebih dahulu."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Menunggu paling lama",
+ "DESCRIPTION": "Perbualan yang menunggu paling lama akan diberikan tugasan terlebih dahulu."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Polisi pengagihan adil",
+ "DESCRIPTION": "Tetapkan bilangan maksimum perbualan yang boleh diberikan kepada setiap ejen dalam jangka masa tertentu untuk mengelakkan beban berlebihan pada mana-mana ejen. Medan wajib ini ditetapkan secara lalai kepada 100 perbualan setiap jam.",
+ "INPUT_MAX": "Agihkan maksima",
+ "DURATION": "Perbualan setiap ejen dalam setiap"
+ },
+ "INBOXES": {
+ "LABEL": "Petibuk yang ditambah",
+ "DESCRIPTION": "Tambah petibuk yang mana polisi ini akan digunakan.",
+ "ADD_BUTTON": "Tambah petibuk",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cari dan pilih petibuk untuk ditambah",
+ "ADD_BUTTON": "Tambah"
+ },
+ "EMPTY_STATE": "Tiada peti masuk ditambah ke dasar ini, tambah peti masuk untuk memulakan",
+ "API": {
+ "SUCCESS_MESSAGE": "Peti masuk berjaya ditambah ke dasar",
+ "ERROR_MESSAGE": "Gagal menambah peti masuk ke dasar"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Dasar penugasan berjaya dipadam",
+ "ERROR_MESSAGE": "Gagal memadam dasar penugasan"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Kapasiti ejen",
+ "CREATE_POLICY": "Dasar baru"
+ },
+ "CARD": {
+ "POPOVER": "Ejen yang ditambah",
+ "EDIT": "Sunting"
+ },
+ "NO_RECORDS_FOUND": "Tiada dasar kapasiti ejen ditemui"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Cipta dasar kapasiti ejen"
+ },
+ "CREATE_BUTTON": "Cipta dasar",
+ "API": {
+ "SUCCESS_MESSAGE": "Dasar kapasiti ejen berjaya dicipta",
+ "ERROR_MESSAGE": "Gagal mencipta dasar kapasiti ejen"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Sunting dasar kapasiti ejen"
+ },
+ "EDIT_BUTTON": "Kemas kini dasar",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Tambah ejen",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Teruskan",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Dasar kapasiti ejen berjaya dikemas kini",
+ "ERROR_MESSAGE": "Gagal mengemas kini dasar kapasiti ejen"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Ejen berjaya ditambah ke polisi",
+ "ERROR_MESSAGE": "Gagal menambah ejen ke polisi"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Ejen berjaya dikeluarkan dari polisi",
+ "ERROR_MESSAGE": "Gagal mengeluarkan ejen dari polisi"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Had peti masuk berjaya ditambah",
+ "ERROR_MESSAGE": "Gagal menambah had peti masuk"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Had peti masuk berjaya dikemas kini",
+ "ERROR_MESSAGE": "Gagal mengemas kini had peti masuk"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Had peti masuk berjaya dipadam",
+ "ERROR_MESSAGE": "Gagal memadam had peti masuk"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nama polisi:",
+ "PLACEHOLDER": "Masukkan nama polisi"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Penerangan:",
+ "PLACEHOLDER": "Masukkan penerangan"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Had kapasiti peti masuk",
+ "ADD_BUTTON": "Tambah peti masuk",
+ "FIELD": {
+ "SELECT_INBOX": "Pilih peti masuk",
+ "MAX_CONVERSATIONS": "Perbualan maksimum",
+ "SET_LIMIT": "Tetapkan had"
+ },
+ "EMPTY_STATE": "Tiada had peti masuk ditetapkan"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Peraturan pengecualian",
+ "DESCRIPTION": "Perbualan yang memenuhi syarat berikut tidak akan dikira dalam kapasiti ejen",
+ "TAGS": {
+ "LABEL": "Kecualikan perbualan yang ditandai dengan label tertentu",
+ "ADD_TAG": "tambah tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cari dan pilih tag untuk ditambah"
+ },
+ "EMPTY_STATE": "Tiada tag ditambah pada polisi ini."
+ },
+ "DURATION": {
+ "LABEL": "Kecualikan perbualan yang lebih lama daripada tempoh yang ditetapkan",
+ "PLACEHOLDER": "Tetapkan masa"
+ }
+ },
+ "USERS": {
+ "LABEL": "Ejen yang ditugaskan",
+ "DESCRIPTION": "Tambah ejen yang polisi ini akan digunakan.",
+ "ADD_BUTTON": "Tambah ejen",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Cari dan pilih ejen untuk ditambah",
+ "ADD_BUTTON": "Tambah"
+ },
+ "EMPTY_STATE": "Tiada ejen ditambah",
+ "API": {
+ "SUCCESS_MESSAGE": "Ejen berjaya ditambah ke polisi",
+ "ERROR_MESSAGE": "Gagal menambah ejen ke polisi"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Polisi kapasiti ejen berjaya dipadam",
+ "ERROR_MESSAGE": "Gagal memadam polisi kapasiti ejen"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Padam polisi",
+ "DESCRIPTION": "Adakah anda pasti mahu memadam polisi ini? Tindakan ini tidak boleh dibatalkan.",
+ "CONFIRM_BUTTON_LABEL": "Padamkan",
+ "CANCEL_BUTTON_LABEL": "Batalkan"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/signup.json b/app/javascript/dashboard/i18n/locale/ms/signup.json
index dafa02ebc..d6b60efa7 100644
--- a/app/javascript/dashboard/i18n/locale/ms/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ms/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Masalah untuk hubungi Woot Server, Sila cuba sebentar lagi"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Hantar semula emel pengesahan",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/sla.json b/app/javascript/dashboard/i18n/locale/ms/sla.json
index 6f4ef3905..126cee48e 100644
--- a/app/javascript/dashboard/i18n/locale/ms/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ms/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Nama",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Pasti Padamkan",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ya, Padamkan ",
+ "NO": "Tidak, simpankan "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/snooze.json b/app/javascript/dashboard/i18n/locale/ms/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
index 7f46b151d..83132e93a 100644
--- a/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ms/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Cari pasukan...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "Tiada"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "Emel",
+ "AGENT": "Ejen",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/ms/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ms/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/ms/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ms/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ms/yearInReview.json b/app/javascript/dashboard/i18n/locale/ms/yearInReview.json
new file mode 100644
index 000000000..414cee310
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ms/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Close",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json b/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json
index 170f01d7f..a991cb25b 100644
--- a/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ne/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/ne/agentBots.json b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
index fb744b4a9..c17ec60d0 100644
--- a/app/javascript/dashboard/i18n/locale/ne/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/ne/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Actions"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
index b563de61f..24cd59e37 100644
--- a/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/agentMgmt.json
@@ -1,13 +1,15 @@
{
"AGENT_MGMT": {
- "HEADER": "Agents",
- "HEADER_BTN_TXT": "Add Agent",
- "LOADING": "Fetching Agent List",
- "SIDEBAR_TXT": "Agents
An Agent is a member of your Customer Support team.
Agents will be able to view and reply to messages from your users. The list shows all agents currently in your account.
Click on Add Agent to add a new agent. Agent you add will receive an email with a confirmation link to activate their account, after which they can access Chatwoot and respond to messages.
Access to Chatwoot's features are based on following roles.
Agent - Agents with this role can only access inboxes, reports and conversations. They can assign conversations to other agents or themselves and resolve conversations.
Administrator - Administrator will have access to all Chatwoot features enabled for your account, including settings, along with all of a normal agents' privileges.
",
+ "HEADER": "एजेन्टहरू",
+ "HEADER_BTN_TXT": "एजेन्ट थप गर्नुहोस्",
+ "LOADING": "एजेन्ट सूची ल्याउँदैछ",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "There are no agents associated to this account",
"TITLE": "Manage agents in your team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Actions",
"VERIFIED": "Verified",
- "VERIFICATION_PENDING": "Verification Pending"
+ "VERIFICATION_PENDING": "Verification Pending",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Add agent to your team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
}
},
+ "SEARCH_PLACEHOLDER": "Search agents...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "No results found."
},
@@ -103,6 +108,9 @@
"AGENT": "Select agent",
"TEAM": "Select team"
},
+ "LIST": {
+ "NONE": "None"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "No agents found",
diff --git a/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
index 64a0e83d6..52b47ea11 100644
--- a/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Custom Attributes",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "कम्पनी"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Create",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Delete ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Custom Attributes",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "कम्पनी"
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Edit",
"DELETE": "Delete"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/auditLogs.json b/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
index bb3007975..df236f5b5 100644
--- a/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/ne/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "There are no items matching this query",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Address"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Address"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 8d211d0c5..669be472c 100644
--- a/app/javascript/dashboard/i18n/locale/ne/automation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Create",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Actions"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "अपलोड गर्दै...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "None",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "निजी नोट",
+ "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",
+ "COMPANY_NAME": "कम्पनी",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Labels"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
index 6af8316e9..7002ff610 100644
--- a/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/ne/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Assign",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "कुनै छैन",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Cancel",
+ "SEARCH_INPUT_PLACEHOLDER": "Search",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/campaign.json b/app/javascript/dashboard/i18n/locale/ne/campaign.json
index bbcc463ee..d7e5dfe3f 100644
--- a/app/javascript/dashboard/i18n/locale/ne/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/ne/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Cancel",
- "CREATE_BUTTON_TEXT": "Create",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Please enter a valid URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sent by",
+ "BOT": "Bot",
+ "FROM": "from",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sent by",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Please enter a valid URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Delete",
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete?",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "प्रक्रिया हुँदैछ",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Message",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "प्रक्रिया हुँदैछ",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "CREATE_BUTTON_TEXT": "Create",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Create",
+ "CANCEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Are you sure to delete?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Delete",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Update",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Message",
- "INBOX": "Inbox",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Edit",
- "DELETE": "Delete"
- },
- "STATUS": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
index b19386c24..2a9dd154c 100644
--- a/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Canned Responses",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "There are no items matching this query.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "There are no canned responses available in this account.",
"TITLE": "Manage canned responses",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Content",
- "Actions"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Content",
+ "ACTIONS": "Actions"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/ne/chatlist.json b/app/javascript/dashboard/i18n/locale/ne/chatlist.json
index 1458bf58a..1384dae2b 100644
--- a/app/javascript/dashboard/i18n/locale/ne/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/ne/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "There are no active conversations in this group."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversations",
"MENTION_HEADING": "Mentions",
"UNATTENDED_HEADING": "Unattended",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Location"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "has shared a url"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/companies.json b/app/javascript/dashboard/i18n/locale/ne/companies.json
new file mode 100644
index 000000000..5ed2159b1
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Name",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "गुणहरू",
+ "CONTACTS": "सम्पर्कहरू",
+ "HISTORY": "इतिहास",
+ "NOTES": "टिप्पणीहरू"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Loading contacts...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "सम्पर्क थप्नुहोस्",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "कुनै सम्पर्क फेला परेन.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "कम्पनी",
+ "CONTACT_LABEL": "सम्पर्क",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancel"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "सिर्जना गरिएको {date}",
+ "LAST_ACTIVE": "अन्तिम सक्रिय {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Name",
+ "DOMAIN": "डोमेन"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/components.json b/app/javascript/dashboard/i18n/locale/ne/components.json
new file mode 100644
index 000000000..3ee865a89
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "No results found.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "No results found.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancel",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/contact.json b/app/javascript/dashboard/i18n/locale/ne/contact.json
index 64bbdb547..566a2161e 100644
--- a/app/javascript/dashboard/i18n/locale/ne/contact.json
+++ b/app/javascript/dashboard/i18n/locale/ne/contact.json
@@ -1,382 +1,666 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Not Available",
- "EMAIL_ADDRESS": "Email Address",
- "PHONE_NUMBER": "Phone number",
- "IDENTIFIER": "Identifier",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
- "COMPANY": "Company",
- "LOCATION": "Location",
- "BROWSER_LANGUAGE": "Browser Language",
- "CONVERSATION_TITLE": "Conversation Details",
- "VIEW_PROFILE": "View Profile",
- "BROWSER": "Browser",
- "OS": "Operating System",
- "INITIATED_FROM": "Initiated from",
- "INITIATED_AT": "Initiated at",
- "IP_ADDRESS": "IP Address",
- "CREATED_AT_LABEL": "Created",
- "NEW_MESSAGE": "New message",
+ "NOT_AVAILABLE": "उपलब्ध छैन",
+ "EMAIL_ADDRESS": "इमेल ठेगाना",
+ "PHONE_NUMBER": "फोन नम्बर",
+ "IDENTIFIER": "पहिचानकर्ता",
+ "COPY_SUCCESSFUL": "क्लिपबोर्डमा सफलतापूर्वक प्रतिलिपि गरियो",
+ "COMPANY": "कम्पनी",
+ "LOCATION": "स्थान",
+ "BROWSER_LANGUAGE": "ब्राउजर भाषा",
+ "CONVERSATION_TITLE": "संवाद विवरण",
+ "VIEW_PROFILE": "प्रोफाइल हेर्नुहोस्",
+ "BROWSER": "ब्राउजर",
+ "OS": "अपरेटिङ सिस्टम",
+ "INITIATED_FROM": "बाट सुरु गरिएको",
+ "INITIATED_AT": "मा सुरु गरिएको",
+ "IP_ADDRESS": "IP ठेगाना",
+ "CREATED_AT_LABEL": "सिर्जना गरिएको",
+ "NEW_MESSAGE": "नयाँ सन्देश",
+ "CALL": "कल गर्नुहोस्",
+ "CALL_INITIATED": "सम्पर्कलाई कल गर्दै…",
+ "CALL_FAILED": "फोन कल सुरु गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "भ्वाइस इन्बक्स छान्नुहोस्"
+ },
"CONVERSATIONS": {
- "NO_RECORDS_FOUND": "There are no previous conversations associated to this contact.",
- "TITLE": "Previous Conversations"
+ "NO_RECORDS_FOUND": "यस सम्पर्कसँग सम्बन्धित कुनै अघिल्लो कुराकानीहरू छैनन्।",
+ "TITLE": "अघिल्लो कुराकानीहरू"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Contact Labels",
- "ERROR": "Couldn't update labels"
+ "TITLE": "सम्पर्क लेबलहरू",
+ "ERROR": "लेबलहरू अपडेट गर्न सकिएन"
},
"CONVERSATION": {
- "TITLE": "Conversation Labels",
- "ADD_BUTTON": "Add Labels"
+ "TITLE": "संवाद लेबलहरू",
+ "ADD_BUTTON": "लेबलहरू थप्नुहोस्"
},
"LABEL_SELECT": {
- "TITLE": "Add Labels",
- "PLACEHOLDER": "Search labels",
- "NO_RESULT": "No labels found",
- "CREATE_LABEL": "Create new label"
+ "TITLE": "लेबलहरू थप्नुहोस्",
+ "PLACEHOLDER": "लेबलहरू खोज्नुहोस्",
+ "NO_RESULT": "कुनै लेबल फेला परेन",
+ "CREATE_LABEL": "नयाँ लेबल सिर्जना गर्नुहोस्"
}
},
- "MERGE_CONTACT": "Merge contact",
- "CONTACT_ACTIONS": "Contact actions",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
- "SEND_TRANSCRIPT": "Send Transcript",
- "EDIT_LABEL": "Edit",
+ "MERGE_CONTACT": "सम्पर्क मर्ज गर्नुहोस्",
+ "CONTACT_ACTIONS": "सम्पर्क कार्यहरू",
+ "MUTE_CONTACT": "सम्पर्क ब्लक गर्नुहोस्",
+ "UNMUTE_CONTACT": "सम्पर्क अनब्लक गर्नुहोस्",
+ "MUTED_SUCCESS": "यो सम्पर्क सफलतापूर्वक ब्लक गरियो। तपाईंलाई भविष्यका कुनै पनि कुराकानीको सूचना दिइने छैन।",
+ "UNMUTED_SUCCESS": "यो सम्पर्क सफलतापूर्वक अनब्लक गरियो।",
+ "SEND_TRANSCRIPT": "प्रतिलिपि पठाउनुहोस्",
+ "EDIT_LABEL": "सम्पादन गर्नुहोस्",
"SIDEBAR_SECTIONS": {
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Previous Conversations"
+ "CUSTOM_ATTRIBUTES": "अनुकूलित विशेषताहरू",
+ "CONTACT_LABELS": "सम्पर्क लेबलहरू",
+ "PREVIOUS_CONVERSATIONS": "अघिल्लो कुराकानीहरू",
+ "NO_RECORDS_FOUND": "कुनै विशेषता फेला परेन"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Edit Contact",
- "TITLE": "Edit contact",
- "DESC": "Edit contact details"
- },
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Cancel"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "There was an error, please try again"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "There was an error, please try again",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "No, Keep it"
- }
+ "BUTTON_LABEL": "सम्पर्क सम्पादन गर्नुहोस्",
+ "TITLE": "सम्पर्क सम्पादन गर्नुहोस्",
+ "DESC": "सम्पर्क विवरण सम्पादन गर्नुहोस्"
},
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Delete Contact",
- "TITLE": "Delete contact",
- "DESC": "Delete contact details",
+ "BUTTON_LABEL": "सम्पर्क मेटाउनुहोस्",
+ "TITLE": "सम्पर्क मेटाउनुहोस्",
+ "DESC": "सम्पर्क विवरण मेटाउनुहोस्",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "YES": "Yes, Delete",
- "NO": "No, Keep"
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "MESSAGE": "के तपाईं यो मेटाउन निश्चित हुनुहुन्छ ",
+ "YES": "हो, मेटाउनुहोस्",
+ "NO": "होइन, राख्नुहोस्"
},
"API": {
- "SUCCESS_MESSAGE": "Contact deleted successfully",
- "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "सम्पर्क मेटाउन सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
}
},
"CONTACT_FORM": {
"FORM": {
"SUBMIT": "बुझाउनुहोस्",
- "CANCEL": "Cancel",
+ "CANCEL": "रद्द गर्नुहोस्",
"AVATAR": {
- "LABEL": "Contact Avatar"
+ "LABEL": "सम्पर्क अवतार"
},
"NAME": {
- "PLACEHOLDER": "Enter the full name of the contact",
- "LABEL": "Full Name"
+ "PLACEHOLDER": "सम्पर्कको पूरा नाम प्रविष्ट गर्नुहोस्",
+ "LABEL": "पूरा नाम"
},
"BIO": {
- "PLACEHOLDER": "Enter the bio of the contact",
- "LABEL": "Bio"
+ "PLACEHOLDER": "सम्पर्कको बायो प्रविष्ट गर्नुहोस्",
+ "LABEL": "परिचय"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Enter the email address of the contact",
- "LABEL": "Email Address",
- "DUPLICATE": "This email address is in use for another contact.",
- "ERROR": "Please enter a valid email address."
+ "PLACEHOLDER": "सम्पर्कको इमेल ठेगाना प्रविष्ट गर्नुहोस्",
+ "LABEL": "इमेल ठेगाना",
+ "DUPLICATE": "यो इमेल ठेगाना अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।",
+ "ERROR": "कृपया मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्।"
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Enter the phone number of the contact",
- "LABEL": "Phone Number",
+ "PLACEHOLDER": "सम्पर्कको फोन नम्बर प्रविष्ट गर्नुहोस्",
+ "LABEL": "फोन नम्बर",
"HELP": "Phone number should be of E.164 format eg: +1415555555 [+][country code][area code][local phone number]",
- "ERROR": "Phone number should be either empty or of E.164 format",
- "DIAL_CODE_ERROR": "Please select a dial code from the list",
- "DUPLICATE": "This phone number is in use for another contact."
+ "ERROR": "फोन नम्बर खाली वा E.164 ढाँचामा हुनुपर्छ",
+ "DIAL_CODE_ERROR": "कृपया सूचीबाट डायल कोड चयन गर्नुहोस्",
+ "DUPLICATE": "यो फोन नम्बर अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।"
},
"LOCATION": {
- "PLACEHOLDER": "Enter the location of the contact",
- "LABEL": "Location"
+ "PLACEHOLDER": "सम्पर्कको स्थान प्रविष्ट गर्नुहोस्",
+ "LABEL": "स्थान"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Enter the company name",
- "LABEL": "Company Name"
+ "PLACEHOLDER": "कम्पनीको नाम प्रविष्ट गर्नुहोस्",
+ "LABEL": "कम्पनी नाम"
},
"COUNTRY": {
- "PLACEHOLDER": "Enter the country name",
- "LABEL": "Country Name",
- "SELECT_PLACEHOLDER": "Select",
- "REMOVE": "Remove",
- "SELECT_COUNTRY": "Select Country"
+ "PLACEHOLDER": "देशको नाम प्रविष्ट गर्नुहोस्",
+ "LABEL": "देशको नाम",
+ "SELECT_PLACEHOLDER": "छान्नुहोस्",
+ "REMOVE": "हटाउनुहोस्",
+ "SELECT_COUNTRY": "देश छान्नुहोस्"
},
"CITY": {
- "PLACEHOLDER": "Enter the city name",
- "LABEL": "City Name"
+ "PLACEHOLDER": "सहरको नाम लेख्नुहोस्",
+ "LABEL": "सहरको नाम"
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
- "PLACEHOLDER": "Enter the Facebook username",
+ "PLACEHOLDER": "Facebook प्रयोगकर्ता नाम लेख्नुहोस्",
"LABEL": "Facebook"
},
"TWITTER": {
- "PLACEHOLDER": "Enter the Twitter username",
+ "PLACEHOLDER": "Twitter प्रयोगकर्ता नाम लेख्नुहोस्",
"LABEL": "Twitter"
},
"LINKEDIN": {
- "PLACEHOLDER": "Enter the LinkedIn username",
+ "PLACEHOLDER": "LinkedIn प्रयोगकर्ता नाम लेख्नुहोस्",
"LABEL": "LinkedIn"
},
"GITHUB": {
- "PLACEHOLDER": "Enter the Github username",
+ "PLACEHOLDER": "Github प्रयोगकर्ता नाम लेख्नुहोस्",
"LABEL": "Github"
}
}
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "Contact avatar deleted successfully",
- "ERROR_MESSAGE": "Could not delete the contact avatar. Please try again later."
+ "SUCCESS_MESSAGE": "सम्पर्क अवतार सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "सम्पर्कको अवतार मेटाउन सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
}
},
- "SUCCESS_MESSAGE": "Contact saved successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक सुरक्षित गरियो",
+ "ERROR_MESSAGE": "त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Start conversation",
- "TITLE": "New conversation",
- "DESC": "Start a new conversation by sending a new message.",
- "NO_INBOX": "Couldn't find an inbox to initiate a new conversation with this contact.",
+ "BUTTON_LABEL": "संवाद सुरु गर्नुहोस्",
+ "TITLE": "नयाँ संवाद",
+ "DESC": "नयाँ सन्देश पठाएर नयाँ कुराकानी सुरु गर्नुहोस्।",
+ "NO_INBOX": "यस सम्पर्कसँग नयाँ कुराकानी सुरु गर्न इनबक्स फेला परेन।",
"FORM": {
"TO": {
- "LABEL": "To"
+ "LABEL": "लाई"
},
"INBOX": {
"LABEL": "Inbox",
- "PLACEHOLDER": "Choose source inbox",
- "ERROR": "Select an inbox"
+ "PLACEHOLDER": "स्रोत इनबक्स छान्नुहोस्",
+ "ERROR": "इनबक्स छान्नुहोस्"
},
"SUBJECT": {
- "LABEL": "Subject",
- "PLACEHOLDER": "Subject",
- "ERROR": "Subject can't be empty"
+ "LABEL": "विषय",
+ "PLACEHOLDER": "विषय",
+ "ERROR": "विषय खाली हुन सक्दैन"
},
"MESSAGE": {
- "LABEL": "Message",
- "PLACEHOLDER": "Write your message here",
- "ERROR": "Message can't be empty"
+ "LABEL": "सन्देश",
+ "PLACEHOLDER": "यहाँ तपाईंको सन्देश लेख्नुहोस्",
+ "ERROR": "सन्देश खाली हुन सक्दैन"
},
"ATTACHMENTS": {
- "SELECT": "Choose files",
- "HELP_TEXT": "Drag and drop files here or choose files to attach"
+ "SELECT": "फाइलहरू छान्नुहोस्",
+ "HELP_TEXT": "यहाँ फाइलहरू तान्नुहोस् वा संलग्न गर्न फाइलहरू छान्नुहोस्"
},
- "SUBMIT": "Send message",
- "CANCEL": "Cancel",
- "SUCCESS_MESSAGE": "Message sent!",
- "GO_TO_CONVERSATION": "View",
- "ERROR_MESSAGE": "Couldn't send! try again"
+ "SUBMIT": "सन्देश पठाउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "SUCCESS_MESSAGE": "सन्देश पठाइयो!",
+ "GO_TO_CONVERSATION": "हेर्नुहोस्",
+ "ERROR_MESSAGE": "पठाउन सकिएन! कृपया फेरि प्रयास गर्नुहोस्"
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacts",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Search",
- "SEARCH_INPUT_PLACEHOLDER": "Search for contacts",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Loading contacts...",
- "404": "No contacts matches your search 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Name",
- "PHONE_NUMBER": "Phone Number",
- "CONVERSATIONS": "Conversations",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Company",
- "EMAIL_ADDRESS": "Email Address"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacts",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "conversations"
+ "SOCIAL_PROFILES": "सामाजिक प्रोफाइलहरू"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
- "BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
- "COPY_SUCCESSFUL": "Copied to clipboard successfully",
+ "BUTTON": "अनुकूलित विशेषता थप्नुहोस्",
+ "COPY_SUCCESSFUL": "क्लिपबोर्डमा सफलतापूर्वक प्रतिलिपि गरियो",
+ "SHOW_MORE": "सबै विशेषताहरू देखाउनुहोस्",
+ "SHOW_LESS": "कम विशेषताहरू देखाउनुहोस्",
"ACTIONS": {
- "COPY": "Copy attribute",
- "DELETE": "Delete attribute",
- "EDIT": "Edit attribute"
+ "COPY": "विशेषता प्रतिलिपि गर्नुहोस्",
+ "DELETE": "विशेषता मेटाउनुहोस्",
+ "EDIT": "विशेषता सम्पादन गर्नुहोस्"
},
"ADD": {
- "TITLE": "Create custom attribute",
- "DESC": "Add custom information to this contact."
+ "TITLE": "अनुकूलित विशेषता सिर्जना गर्नुहोस्",
+ "DESC": "यस सम्पर्कमा कस्टम जानकारी थप्नुहोस्।"
},
"FORM": {
- "CREATE": "Add attribute",
- "CANCEL": "Cancel",
+ "CREATE": "विशेषता थप्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
"NAME": {
- "LABEL": "Custom attribute name",
- "PLACEHOLDER": "Eg: shopify id",
- "ERROR": "Invalid custom attribute name"
+ "LABEL": "अनुकूलित गुण नाम",
+ "PLACEHOLDER": "जस्तै: shopify id",
+ "ERROR": "अवैध अनुकूलित गुण नाम"
},
"VALUE": {
- "LABEL": "Attribute value",
- "PLACEHOLDER": "Eg: 11901 "
+ "LABEL": "गुणस्तर मान",
+ "PLACEHOLDER": "जस्तै: 11901 "
},
"ADD": {
- "TITLE": "Create new attribute ",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "नयाँ विशेषता सिर्जना गर्नुहोस्",
+ "SUCCESS": "विशेषता सफलतापूर्वक थपियो",
+ "ERROR": "विशेषता थप्न सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्"
},
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "विशेषता सफलतापूर्वक अपडेट गरियो",
+ "ERROR": "विशेषता अपडेट गर्न सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "विशेषता सफलतापूर्वक मेटाइयो",
+ "ERROR": "विशेषता मेटाउन सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "विशेषताहरू थप्नुहोस्",
+ "PLACEHOLDER": "विशेषताहरू खोज्नुहोस्",
+ "NO_RESULT": "कुनै गुण फेला परेन"
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Select value",
- "SEARCH_INPUT_PLACEHOLDER": "Search value",
- "NO_RESULT": "No result found"
+ "PLACEHOLDER": "मान चयन गर्नुहोस्",
+ "SEARCH_INPUT_PLACEHOLDER": "मान खोज्नुहोस्",
+ "NO_RESULT": "कुनै परिणाम फेला परेन"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valid value is required",
- "INVALID_URL": "Invalid URL",
- "INVALID_INPUT": "Invalid Input"
+ "REQUIRED": "वैध मान आवश्यक छ",
+ "INVALID_URL": "अवैध URL",
+ "INVALID_INPUT": "अवैध इनपुट"
}
},
"MERGE_CONTACTS": {
- "TITLE": "Merge contacts",
+ "TITLE": "सम्पर्कहरू मर्ज गर्नुहोस्",
"DESCRIPTION": "Merge contacts to combine two profiles into one, including all attributes and conversations. In case of conflict, the Primary contact’ s attributes will take precedence.",
"PRIMARY": {
- "TITLE": "Primary contact",
- "HELP_LABEL": "To be deleted"
+ "TITLE": "प्राथमिक सम्पर्क",
+ "HELP_LABEL": "मेटाउनुपर्ने"
},
"PARENT": {
- "TITLE": "Contact to merge",
- "PLACEHOLDER": "Search for a contact",
- "HELP_LABEL": "To be kept"
+ "TITLE": "मर्ज गर्नुपर्ने सम्पर्क",
+ "PLACEHOLDER": "सम्पर्क खोज्नुहोस्",
+ "HELP_LABEL": "राख्नुपर्ने"
},
"SUMMARY": {
- "TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "TITLE": "सारांश",
+ "DELETE_WARNING": "{primaryContactName} को सम्पर्क मेटाइनेछ।",
+ "ATTRIBUTE_WARNING": "{primaryContactName} को सम्पर्क विवरण {parentContactName} मा प्रतिलिपि गरिनेछ।"
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "केही समस्या भयो। कृपया पछि फेरि प्रयास गर्नुहोस्।"
},
"FORM": {
- "SUBMIT": " Merge contacts",
- "CANCEL": "Cancel",
+ "SUBMIT": "सम्पर्कहरू मर्ज गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
"CHILD_CONTACT": {
- "ERROR": "Select a child contact to merge"
+ "ERROR": "मर्ज गर्नका लागि चाइल्ड सम्पर्क छान्नुहोस्"
},
- "SUCCESS_MESSAGE": "Contact merged successfully",
- "ERROR_MESSAGE": "Could not merge contacts, try again!"
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक मर्ज गरियो",
+ "ERROR_MESSAGE": "सम्पर्कहरू मर्ज गर्न सकिएन, पुन: प्रयास गर्नुहोस्!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(पहिचान: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "सम्पर्कहरू",
+ "SEARCH_TITLE": "सम्पर्कहरू खोज्नुहोस्",
+ "ACTIVE_TITLE": "सक्रिय सम्पर्कहरू",
+ "SEARCH_PLACEHOLDER": "खोज्नुहोस्...",
+ "MESSAGE_BUTTON": "सन्देश",
+ "SEND_MESSAGE": "सन्देश पठाउनुहोस्",
+ "BLOCK_CONTACT": "सम्पर्क ब्लक गर्नुहोस्",
+ "UNBLOCK_CONTACT": "सम्पर्क अनब्लक गर्नुहोस्",
+ "BREADCRUMB": {
+ "CONTACTS": "सम्पर्कहरू"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "सम्पर्क थप्नुहोस्",
+ "EXPORT_CONTACT": "सम्पर्कहरू निर्यात गर्नुहोस्",
+ "IMPORT_CONTACT": "सम्पर्कहरू आयात गर्नुहोस्",
+ "SAVE_CONTACT": "सम्पर्क सुरक्षित गर्नुहोस्",
+ "EMAIL_ADDRESS_DUPLICATE": "यो इमेल ठेगाना अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।",
+ "PHONE_NUMBER_DUPLICATE": "यो फोन नम्बर अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।",
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक सुरक्षित गरियो",
+ "ERROR_MESSAGE": "सम्पर्क बचत गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ },
+ "BLOCK_SUCCESS_MESSAGE": "यो सम्पर्क सफलतापूर्वक ब्लक गरियो",
+ "BLOCK_ERROR_MESSAGE": "सम्पर्क ब्लक गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "UNBLOCK_SUCCESS_MESSAGE": "यो सम्पर्क सफलतापूर्वक अनब्लक गरियो",
+ "UNBLOCK_ERROR_MESSAGE": "सम्पर्क अनब्लक गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "IMPORT_CONTACT": {
+ "TITLE": "सम्पर्कहरू आयात गर्नुहोस्",
+ "DESCRIPTION": "CSV फाइल मार्फत सम्पर्कहरू आयात गर्नुहोस्।",
+ "DOWNLOAD_LABEL": "नमूना CSV डाउनलोड गर्नुहोस्।",
+ "LABEL": "CSV फाइल:",
+ "CHOOSE_FILE": "फाइल छान्नुहोस्",
+ "CHANGE": "परिवर्तन गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "IMPORT": "आयात गर्नुहोस्",
+ "SUCCESS_MESSAGE": "आयात पूरा भएपछि तपाईंलाई इमेलमार्फत सूचित गरिनेछ।",
+ "ERROR_MESSAGE": "त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "सम्पर्कहरू निर्यात गर्नुहोस्",
+ "DESCRIPTION": "तपाईंका सम्पर्कहरूको विस्तृत विवरण सहित छिटो csv फाइल निर्यात गर्नुहोस्",
+ "CONFIRM": "निर्यात गर्नुहोस्",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
+ },
+ "SORT_BY": {
+ "LABEL": "द्वारा क्रमबद्ध गर्नुहोस्",
+ "OPTIONS": {
+ "NAME": "नाम",
+ "EMAIL": "इमेल",
+ "PHONE_NUMBER": "फोन नम्बर",
+ "COMPANY": "कम्पनी",
+ "COUNTRY": "देश",
+ "CITY": "सहर",
+ "LAST_ACTIVITY": "अन्तिम क्रियाकलाप",
+ "CREATED_AT": "सिर्जना मिति"
+ }
+ },
+ "ORDER": {
+ "LABEL": "क्रमबद्ध गर्दै",
+ "OPTIONS": {
+ "ASCENDING": "बढ्दो क्रममा",
+ "DESCENDING": "घट्दो क्रममा"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "के तपाईं यो फिल्टर सुरक्षित गर्न चाहनुहुन्छ?",
+ "CONFIRM": "फिल्टर सुरक्षित गर्नुहोस्",
+ "LABEL": "नाम",
+ "PLACEHOLDER": "फिल्टरको नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "वैध नाम प्रविष्ट गर्नुहोस्",
+ "SUCCESS_MESSAGE": "फिल्टर सफलतापूर्वक सुरक्षित गरियो",
+ "ERROR_MESSAGE": "फिल्टर बचत गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "DESCRIPTION": "के तपाईं साँच्चिकै यो फिल्टर मेटाउन चाहनुहुन्छ?",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "CANCEL": "होइन, रद्द गर्नुहोस्",
+ "SUCCESS_MESSAGE": "फिल्टर सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "फिल्टर मेटाउन सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "नाम",
+ "EMAIL": "इमेल",
+ "PHONE_NUMBER": "फोन नम्बर",
+ "IDENTIFIER": "पहिचानकर्ता",
+ "COUNTRY": "देश",
+ "CITY": "सहर",
+ "COMPANY": "कम्पनी",
+ "CREATED_AT": "सिर्जना मिति",
+ "LAST_ACTIVITY": "अन्तिम क्रियाकलाप",
+ "REFERER_LINK": "रेफरर लिंक",
+ "BLOCKED": "ब्लक गरिएको",
+ "BLOCKED_TRUE": "साँचो",
+ "BLOCKED_FALSE": "गलत",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "फिल्टरहरू खाली गर्नुहोस्",
+ "UPDATE_SEGMENT": "सेगमेन्ट अपडेट गर्नुहोस्",
+ "APPLY_FILTERS": "फिल्टरहरू लागू गर्नुहोस्",
+ "ADD_FILTER": "फिल्टर थप्नुहोस्"
+ },
+ "TITLE": "सम्पर्कहरू फिल्टर गर्नुहोस्",
+ "EDIT_SEGMENT": "सेगमेन्ट सम्पादन गर्नुहोस्",
+ "SEGMENT": {
+ "LABEL": "सेगमेन्ट नाम",
+ "INPUT_PLACEHOLDER": "सेगमेन्टको नाम प्रविष्ट गर्नुहोस्"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} थप फिल्टरहरू",
+ "CLEAR_FILTERS": "फिल्टरहरू खाली गर्नुहोस्"
+ }
+ },
+ "CARD": {
+ "OF": "को",
+ "VIEW_DETAILS": "विवरण हेर्नुहोस्",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "सम्पर्क विवरण सम्पादन गर्नुहोस्",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "पहिलो नाम प्रविष्ट गर्नुहोस्"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "थर प्रविष्ट गर्नुहोस्"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "इमेल ठेगाना प्रविष्ट गर्नुहोस्",
+ "DUPLICATE": "यो इमेल ठेगाना अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।"
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "फोन नम्बर प्रविष्ट गर्नुहोस्",
+ "DUPLICATE": "यो फोन नम्बर अर्को सम्पर्कका लागि प्रयोग भइरहेको छ।"
+ },
+ "CITY": {
+ "PLACEHOLDER": "सहरको नाम प्रविष्ट गर्नुहोस्"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "देश चयन गर्नुहोस्"
+ },
+ "BIO": {
+ "PLACEHOLDER": "बायो प्रविष्ट गर्नुहोस्"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "कम्पनीको नाम प्रविष्ट गर्नुहोस्"
+ }
+ },
+ "UPDATE_BUTTON": "सम्पर्क अद्यावधिक गर्नुहोस्",
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR_MESSAGE": "सम्पर्क अपडेट गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "सामाजिक लिंकहरू सम्पादन गर्नुहोस्",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Facebook थप्नुहोस्"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Github थप्नुहोस्"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Instagram थप्नुहोस्"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Telegram थप्नुहोस्"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "TikTok थप्नुहोस्"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "LinkedIn थप्नुहोस्"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Twitter थप्नुहोस्"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "यो क्रिया स्थायी र उल्ट्याउन सकिँदैन।",
+ "BUTTON": "अहिले मेटाउनुहोस्"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "सिर्जना गरिएको {date}",
+ "LAST_ACTIVITY": "अन्तिम सक्रिय {date}",
+ "DELETE_CONTACT_DESCRIPTION": "यो सम्पर्क स्थायी रूपमा मेटाइनेछ। यो क्रिया उल्ट्याउन सकिँदैन।",
+ "DELETE_CONTACT": "सम्पर्क मेटाउनुहोस्",
+ "DELETE_DIALOG": {
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "DESCRIPTION": "के तपाईं यो सम्पर्क मेटाउन निश्चित हुनुहुन्छ?",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "API": {
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "सम्पर्क मेटाउन सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "अवतार अपलोड गर्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "SUCCESS_MESSAGE": "अवतार सफलतापूर्वक अपलोड गरियो"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "अवतार सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "अवतार मेटाउन सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "गुणहरू",
+ "HISTORY": "इतिहास",
+ "NOTES": "टिप्पणीहरू",
+ "MERGE": "मर्ज गर्नुहोस्"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "यस सम्पर्कसँग सम्बन्धित कुनै अघिल्लो कुराकानीहरू छैनन्"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "गुणहरू खोज्नुहोस्",
+ "UNUSED_ATTRIBUTES": "{count} प्रयोग गरिएको गुण | {count} प्रयोग नगरिएको गुणहरू",
+ "EMPTY_STATE": "यस खातामा कुनै कस्टम सम्पर्क विशेषताहरू उपलब्ध छैनन्। तपाईं सेटिङहरूमा कस्टम विशेषता सिर्जना गर्न सक्नुहुन्छ।",
+ "YES": "हो",
+ "NO": "होइन",
+ "TRIGGER": {
+ "SELECT": "मान चयन गर्नुहोस्",
+ "INPUT": "मान प्रविष्ट गर्नुहोस्"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "अवैध नम्बर",
+ "REQUIRED": "वैध मान आवश्यक छ",
+ "INVALID_INPUT": "अवैध इनपुट",
+ "INVALID_URL": "अवैध URL",
+ "INVALID_DATE": "अवैध मिति"
+ },
+ "NO_ATTRIBUTES": "कुनै विशेषता फेला परेन",
+ "API": {
+ "SUCCESS_MESSAGE": "गुण सफलतापूर्वक अपडेट गरियो",
+ "DELETE_SUCCESS_MESSAGE": "गुण सफलतापूर्वक मेटाइयो",
+ "UPDATE_ERROR": "गुण अपडेट गर्न सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्",
+ "DELETE_ERROR": "गुण मेटाउन सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्"
+ }
+ },
+ "MERGE": {
+ "TITLE": "सम्पर्क मर्ज गर्नुहोस्",
+ "DESCRIPTION": "दुई प्रोफाइलहरूलाई सबै विशेषता र कुराकानीहरू सहित एकमा मिलाउनुहोस्। विवाद भएमा, प्राथमिक सम्पर्कका विशेषताहरू प्राथमिकता पाउनेछन्।",
+ "PRIMARY": "प्राथमिक सम्पर्क",
+ "PRIMARY_HELP_LABEL": "सेभ गर्नुपर्ने",
+ "PRIMARY_REQUIRED_ERROR": "अगाडि बढ्नुअघि मर्ज गर्नुपर्ने सम्पर्क चयन गर्नुहोस्",
+ "PARENT": "मर्ज गर्नुपर्ने",
+ "PARENT_HELP_LABEL": "मेटाइनेछ",
+ "EMPTY_STATE": "कुनै सम्पर्क फेला परेन",
+ "PLACEHOLDER": "प्राथमिक सम्पर्क खोज्नुहोस्",
+ "SEARCH_PLACEHOLDER": "सम्पर्क खोज्नुहोस्",
+ "SEARCH_ERROR_MESSAGE": "सम्पर्कहरू खोज्न सकिएन। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "SUCCESS_MESSAGE": "सम्पर्क सफलतापूर्वक मर्ज गरियो",
+ "ERROR_MESSAGE": "सम्पर्कहरू मर्ज गर्न सकिएन, कृपया फेरि प्रयास गर्नुहोस्!",
+ "IS_SEARCHING": "खोज्दै...",
+ "BUTTONS": {
+ "CANCEL": "रद्द गर्नुहोस्",
+ "CONFIRM": "सम्पर्क मर्ज गर्नुहोस्"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "टिप्पणी थप्नुहोस्",
+ "WROTE": "लेख्यो",
+ "YOU": "तपाईं",
+ "SAVE": "टिप्पणी सुरक्षित गर्नुहोस्",
+ "ADD_NOTE": "सम्पर्क टिप्पणी थप्नुहोस्",
+ "EXPAND": "विस्तार गर्नुहोस्",
+ "COLLAPSE": "सङ्कुचन गर्नुहोस्",
+ "NO_NOTES": "कुनै नोटहरू छैनन्, तपाईं सम्पर्क विवरण पृष्ठबाट नोटहरू थप्न सक्नुहुन्छ।",
+ "EMPTY_STATE": "यस सम्पर्कसँग सम्बन्धित कुनै नोटहरू छैनन्। माथि रहेको बाकसमा टाइप गरेर नोट थप्न सक्नुहुन्छ।",
+ "CONVERSATION_EMPTY_STATE": "अहिलेसम्म कुनै नोटहरू छैनन्। एउटा नोट सिर्जना गर्न Add note बटन प्रयोग गर्नुहोस्।"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "यस खातामा कुनै सम्पर्क फेला परेन",
+ "SUBTITLE": "तलको बटनमा क्लिक गरेर नयाँ सम्पर्कहरू थप्न सुरु गर्नुहोस्",
+ "BUTTON_LABEL": "सम्पर्क थप्नुहोस्",
+ "SEARCH_EMPTY_STATE_TITLE": "तपाईंको खोजीमा कुनै सम्पर्क मेल खाँदैन 🔍",
+ "LIST_EMPTY_STATE_TITLE": "यस दृश्यमा कुनै सम्पर्क उपलब्ध छैन 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "हाल कुनै सम्पर्क सक्रिय छैन 🌙"
+ },
+ "LOAD_MORE": "थप लोड गर्नुहोस्"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "लेबलहरू तोक्नुहोस्",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "लेबलहरू सफलतापूर्वक असाइन गरियो।",
+ "ASSIGN_LABELS_FAILED": "लेबलहरू तोक्न असफल भयो",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "चयनित सम्पर्कहरूमा थप्न चाहनुभएको लेबलहरू छान्नुहोस्।",
+ "NO_LABELS_FOUND": "अहिलेसम्म कुनै लेबलहरू उपलब्ध छैनन्।",
+ "SELECTED_COUNT": "{count} चयन गरियो",
+ "CLEAR_SELECTION": "चयन सफा गर्नुहोस्",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "DELETE_CONTACTS": "मेटाउनुहोस्",
+ "DELETE_SUCCESS": "सम्पर्कहरू सफलतापूर्वक मेटाइयो।",
+ "DELETE_FAILED": "सम्पर्कहरू मेटाउन असफल।",
+ "DELETE_DIALOG": {
+ "TITLE": "छानिएका सम्पर्कहरू मेटाउनुहोस्",
+ "SINGULAR_TITLE": "छानिएको सम्पर्क मेटाउनुहोस्",
+ "DESCRIPTION": "यसले चयनित {count} सम्पर्कहरू स्थायी रूपमा मेटाउनेछ। यो क्रिया उल्ट्याउन सकिँदैन।",
+ "SINGULAR_DESCRIPTION": "यसले चयनित सम्पर्क स्थायी रूपमा मेटाउनेछ। यो क्रिया उल्ट्याउन सकिँदैन।",
+ "CONFIRM_MULTIPLE": "सम्पर्कहरू मेटाउनुहोस्",
+ "CONFIRM_SINGLE": "सम्पर्क मेटाउनुहोस्"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "हामीले खोजी पूरा गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "हेर्नुहोस्",
+ "SUCCESS_MESSAGE": "सन्देश सफलतापूर्वक पठाइयो!",
+ "ERROR_MESSAGE": "कुराकानी सिर्जना गर्दा त्रुटि भयो। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "NO_INBOX_ALERT": "यस सम्पर्कसँग कुराकानी सुरु गर्न उपलब्ध कुनै इनबक्सहरू छैनन्।",
+ "CONTACT_SELECTOR": {
+ "LABEL": "लाई:",
+ "TAG_INPUT_PLACEHOLDER": "नाम, इमेल वा फोन नम्बरले खोज्न कम्तिमा 2 अक्षर प्रविष्ट गर्नुहोस्",
+ "CONTACT_CREATING": "सम्पर्क सिर्जना हुँदैछ..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "मार्फत:",
+ "BUTTON": "इनबक्सहरू देखाउनुहोस्"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "विषय :",
+ "SUBJECT_PLACEHOLDER": "यहाँ तपाईंको इमेल विषय प्रविष्ट गर्नुहोस्",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "इमेलले खोज्न कम्तिमा 2 अक्षर प्रविष्ट गर्नुहोस्",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "इमेलले खोज्न कम्तिमा 2 अक्षर प्रविष्ट गर्नुहोस्",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "यहाँ तपाईंको सन्देश लेख्नुहोस्..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "टेम्प्लेट चयन गर्नुहोस्",
+ "SEARCH_PLACEHOLDER": "टेम्प्लेटहरू खोज्नुहोस्",
+ "EMPTY_STATE": "टेम्प्लेटहरू फेला परेनन्",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "परिवर्तनीयहरू",
+ "BACK": "फिर्ता जानुहोस्",
+ "SEND_MESSAGE": "सन्देश पठाउनुहोस्"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "टेम्प्लेट चयन गर्नुहोस्",
+ "SEARCH_PLACEHOLDER": "टेम्प्लेटहरू खोज्नुहोस्",
+ "EMPTY_STATE": "कुनै ढाँचा फेला परेन",
+ "TEMPLATE_PARSER": {
+ "BACK": "फिर्ता जानुहोस्",
+ "SEND_MESSAGE": "सन्देश पठाउनुहोस्"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "रद्द गर्नुहोस्",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/contactFilters.json b/app/javascript/dashboard/i18n/locale/ne/contactFilters.json
index 6a9424c3c..4cc1fe59b 100644
--- a/app/javascript/dashboard/i18n/locale/ne/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/ne/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Name",
"EMAIL": "Email",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labels"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/ne/contentTemplates.json b/app/javascript/dashboard/i18n/locale/ne/contentTemplates.json
new file mode 100644
index 000000000..79c2c8c64
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Back",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/conversation.json b/app/javascript/dashboard/i18n/locale/ne/conversation.json
index 287da1292..706834290 100644
--- a/app/javascript/dashboard/i18n/locale/ne/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/ne/conversation.json
@@ -1,326 +1,490 @@
{
"CONVERSATION": {
- "SELECT_A_CONVERSATION": "Please select a conversation from left pane",
- "CSAT_REPLY_MESSAGE": "Please rate the conversation",
- "404": "Sorry, we cannot find the conversation. Please try again",
- "SWITCH_VIEW_LAYOUT": "Switch the layout",
- "DASHBOARD_APP_TAB_MESSAGES": "Messages",
- "UNVERIFIED_SESSION": "The identity of this user is not verified",
- "NO_MESSAGE_1": "Uh oh! Looks like there are no messages from customers in your inbox.",
- "NO_MESSAGE_2": " to send a message to your page!",
- "NO_INBOX_1": "Hola! Looks like you haven't added any inboxes yet.",
- "NO_INBOX_2": " to get started",
- "NO_INBOX_AGENT": "Uh Oh! Looks like you are not part of any inbox. Please contact your administrator",
- "SEARCH_MESSAGES": "Search for messages in conversations",
+ "SELECT_A_CONVERSATION": "कृपया बाँया प्यानबाट एउटा कुराकानी छान्नुहोस्",
+ "CSAT_REPLY_MESSAGE": "कृपया कुराकानीको मूल्याङ्कन गर्नु",
+ "404": "माफ गर्नुहोस्, हामी वार्ता फेला पार्न सकेनौं। कृपया फेरि प्रयास गर्नुहोस्",
+ "SWITCH_VIEW_LAYOUT": "लेआउट परिवर्तन गर्नुहोस्",
+ "DASHBOARD_APP_TAB_MESSAGES": "सन्देशहरू",
+ "UNVERIFIED_SESSION": "यस प्रयोगकर्ताको पहिचान प्रमाणित गरिएको छैन",
+ "NO_MESSAGE_1": "उफ! तपाईंको इनबक्समा ग्राहकबाट कुनै सन्देश छैन।",
+ "NO_MESSAGE_2": " तपाईँको पृष्ठमा सन्देश पठाउन!",
+ "NO_INBOX_1": "होल्ला! तपाईंले अहिलेसम्म कुनै इनबक्स थप्नुभएको छैन।",
+ "NO_INBOX_2": " सुरु गर्न",
+ "NO_INBOX_AGENT": "उफ! तपाईं कुनै इनबक्समा सहभागी हुनुहुन्न जस्तो देखिन्छ। कृपया आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।",
+ "SEARCH_MESSAGES": "वार्तालापमा सन्देश खोज्नुहोस्",
+ "VIEW_ORIGINAL": "मूल हेर्नुहोस्",
+ "VIEW_TRANSLATED": "अनुवादित हेर्नुहोस्",
"EMPTY_STATE": {
- "CMD_BAR": "to open command menu",
- "KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
+ "CMD_BAR": "कमाण्ड मेनु खोल्न",
+ "KEYBOARD_SHORTCUTS": "किबोर्ड सर्टकटहरू हेर्न"
},
"SEARCH": {
- "TITLE": "Search messages",
- "RESULT_TITLE": "Search Results",
- "LOADING_MESSAGE": "Crunching data...",
- "PLACEHOLDER": "Type any text to search messages",
- "NO_MATCHING_RESULTS": "No results found."
+ "TITLE": "सन्देश खोज्नुहोस्",
+ "RESULT_TITLE": "खोज परिणामहरू",
+ "LOADING_MESSAGE": "डाटा प्रशोधन हुँदैछ...",
+ "PLACEHOLDER": "सन्देश खोज्न कुनैपनि पाठ टाइप गर्नुहोस्",
+ "NO_MATCHING_RESULTS": "कुनै परिणाम फेला परेन।"
},
- "UNREAD_MESSAGES": "Unread Messages",
- "UNREAD_MESSAGE": "Unread Message",
- "CLICK_HERE": "Click here",
- "LOADING_INBOXES": "Loading inboxes",
- "LOADING_CONVERSATIONS": "Loading Conversations",
- "CANNOT_REPLY": "You cannot reply due to",
- "24_HOURS_WINDOW": "24 hour message window restriction",
- "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",
- "REPLYING_TO": "You are replying to:",
- "REMOVE_SELECTION": "Remove Selection",
+ "UNREAD_MESSAGES": "पढ्न बाँकी सन्देशहरू",
+ "UNREAD_MESSAGE": "पढ्न बाँकी सन्देश",
+ "CLICK_HERE": "यहाँ क्लिक गर्नुहोस्",
+ "LOADING_INBOXES": "इनबक्सहरू लोड हुँदैछन्",
+ "LOADING_CONVERSATIONS": "संवादहरू लोड हुँदैछ",
+ "CANNOT_REPLY": "तपाईंले जवाफ दिन सक्नुहुन्न कारण:",
+ "24_HOURS_WINDOW": "२४ घण्टे सन्देश विन्डो प्रतिबन्ध",
+ "48_HOURS_WINDOW": "48 घण्टे सन्देश विन्डो प्रतिबन्ध",
+ "API_HOURS_WINDOW": "You can only reply to this conversation within {hours} hours",
+ "NOT_ASSIGNED_TO_YOU": "यो कुराकानी तपाईंलाई सौंपिएको छैन। के तपाईं यो कुराकानी आफैंलाई सौंप्न चाहनुहुन्छ?",
+ "ASSIGN_TO_ME": "मलाई तोक्नुहोस्",
+ "BOT_HANDOFF_MESSAGE": "तपाईं अहिले सहायक वा बोटले ह्यान्डल गरिरहेको कुराकानीमा जवाफ दिइरहनुभएको छ।",
+ "BOT_HANDOFF_ACTION": "खोलिएको मार्क गर्नुहोस् र तपाईंलाई सौंप्नुहोस्",
+ "BOT_HANDOFF_REOPEN_ACTION": "कुराकानी खोलिएको मार्क गर्नुहोस्",
+ "BOT_HANDOFF_SUCCESS": "वार्ता तपाईंलाई सुम्पिएको छ",
+ "BOT_HANDOFF_ERROR": "कुराकानी सम्हाल्न सकेन। कृपया फेरि प्रयास गर्नुहोस्।",
+ "TWILIO_WHATSAPP_CAN_REPLY": "२४ घण्टे सन्देश विन्डो प्रतिबन्धका कारण तपाईंले यस कुराकानीमा टेम्प्लेट सन्देश प्रयोग गरेर मात्र जवाफ दिन सक्नुहुन्छ",
+ "TWILIO_WHATSAPP_24_HOURS_WINDOW": "२४ घण्टे सन्देश विन्डो प्रतिबन्ध",
+ "OLD_INSTAGRAM_INBOX_REPLY_BANNER": "यो Instagram खाता नयाँ Instagram च्यानल इनबक्समा सारिएको छ। सबै नयाँ सन्देशहरू त्यहाँ देखिनेछन्। तपाईं अब यस कुराकानीबाट सन्देश पठाउन सक्नुहुन्न।",
+ "REPLYING_TO": "तपाईंले यसलाई जवाफ दिँदै हुनुहुन्छ:",
+ "REMOVE_SELECTION": "चयन हटाउनुहोस्",
"DOWNLOAD": "डाउनलोड",
- "UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
- "UPLOADING_ATTACHMENTS": "Uploading attachments...",
- "REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
- "UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
- "UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
- "SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
- "FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
- "NO_RESPONSE": "No response",
- "RATING_TITLE": "Rating",
- "FEEDBACK_TITLE": "Feedback",
- "REPLY_MESSAGE_NOT_FOUND": "Message not available",
+ "UNKNOWN_FILE_TYPE": "अज्ञात फाइल",
+ "SAVE_CONTACT": "सम्पर्क बचत गर्नु",
+ "NO_CONTENT": "देखाउन सामग्री छैन",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
+ "UPLOADING_ATTACHMENTS": "संलग्न फाइलहरू अपलोड हुँदैछन्...",
+ "REPLIED_TO_STORY": "तपाईंको स्टोरीमा जवाफ दिइयो",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
+ "UNSUPPORTED_MESSAGE_FACEBOOK": "यो सन्देश समर्थन गरिएको छैन। तपाईं यो सन्देश Facebook Messenger एपमा हेर्न सक्नुहुन्छ।",
+ "UNSUPPORTED_MESSAGE_INSTAGRAM": "यो सन्देश समर्थन गरिएको छैन। तपाईं यो सन्देश Instagram एपमा हेर्न सक्नुहुन्छ।",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "यो सन्देश समर्थन गरिएको छैन। तपाईंले यो सन्देश TikTok एपमा हेर्न सक्नुहुन्छ।",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
+ "SUCCESS_DELETE_MESSAGE": "सन्देश सफलतापूर्वक मेटाइयो",
+ "FAIL_DELETE_MESSSAGE": "सन्देश मेटाउन सकिएन! फेरि प्रयास गर्नुहोस्",
+ "NO_RESPONSE": "कुनै प्रतिक्रिया छैन",
+ "RESPONSE": "प्रतिक्रिया",
+ "RATING_TITLE": "मूल्याङ्कन",
+ "FEEDBACK_TITLE": "प्रतिक्रिया",
+ "REPLY_MESSAGE_NOT_FOUND": "सन्देश उपलब्ध छैन",
"CARD": {
- "SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "SHOW_LABELS": "लेबलहरू देखाउनुहोस्",
+ "HIDE_LABELS": "लेबलहरू लुकाउनुहोस्",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "आउँदै गरेको कल",
+ "OUTGOING_CALL": "जाने कल",
+ "CALL_IN_PROGRESS": "कल जारी छ",
+ "NO_ANSWER": "उत्तर छैन",
+ "NO_ANSWER_OUTBOUND_LABEL": "उत्तर छैन",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "छुटेको कल",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "कल समाप्त भयो",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "अझै जवाफ दिइएको छैन",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "उनीहरूले जवाफ दिए",
+ "YOU_ANSWERED": "तपाईंले जवाफ दिनुभयो",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "कलमा सामेल हुनुहोस्",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
- "RESOLVE_ACTION": "Resolve",
- "REOPEN_ACTION": "Reopen",
- "OPEN_ACTION": "Open",
- "OPEN": "More",
+ "RESOLVE_ACTION": "समाधान गर्नुहोस्",
+ "REOPEN_ACTION": "फेरि खोल्नुहोस्",
+ "OPEN_ACTION": "खोल्नुहोस्",
+ "MORE_ACTIONS": "थप कार्यहरू",
+ "OPEN": "थप",
"CLOSE": "बन्दा गार्नुहोस्",
- "DETAILS": "details",
- "SNOOZED_UNTIL": "Snoozed until",
- "SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
- "SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "DETAILS": "विवरणहरू",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
+ "SNOOZED_UNTIL": "यस मितिसम्म सुस्काइयो",
+ "SNOOZED_UNTIL_TOMORROW": "भोलिसम्म सुताइएको",
+ "SNOOZED_UNTIL_NEXT_WEEK": "अर्को हप्ता सम्म सुताइएको",
+ "SNOOZED_UNTIL_NEXT_REPLY": "अर्को जवाफ सम्म सुताइएको",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "छुट्यो",
+ "DUE": "म्याद"
+ }
},
"RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Mark as pending",
- "SNOOZE_UNTIL": "Snooze",
+ "MARK_PENDING": "पेन्डिङको रूपमा चिन्ह लगाउनुहोस्",
+ "SNOOZE_UNTIL": "सुस्काउनुहोस्",
"SNOOZE": {
- "TITLE": "Snooze until",
- "NEXT_REPLY": "Next reply",
- "TOMORROW": "Tomorrow",
- "NEXT_WEEK": "Next week"
+ "TITLE": "यस मितिसम्म सुताउनुहोस्",
+ "NEXT_REPLY": "अर्को जवाफ",
+ "TOMORROW": "भोलि",
+ "NEXT_WEEK": "अर्को हप्ता"
}
},
+ "MENTION": {
+ "AGENTS": "एजेन्टहरू",
+ "TEAMS": "टोलीहरू"
+ },
"CUSTOM_SNOOZE": {
- "TITLE": "Snooze until",
- "APPLY": "Snooze",
- "CANCEL": "Cancel"
+ "TITLE": "यस मितिसम्म सुस्काउनुहोस्",
+ "APPLY": "सुस्काउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
},
"PRIORITY": {
- "TITLE": "Priority",
+ "TITLE": "प्राथमिकता",
"OPTIONS": {
- "NONE": "None",
- "URGENT": "Urgent",
- "HIGH": "High",
- "MEDIUM": "Medium",
- "LOW": "Low"
+ "NONE": "कुनै पनि छैन",
+ "URGENT": "तात्कालिक",
+ "HIGH": "उच्च",
+ "MEDIUM": "मध्यम",
+ "LOW": "तल्लो"
},
"CHANGE_PRIORITY": {
- "SELECT_PLACEHOLDER": "None",
- "INPUT_PLACEHOLDER": "Select priority",
- "NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
- "FAILED": "Couldn't change priority. Please try again."
+ "SELECT_PLACEHOLDER": "कुनै छैन",
+ "INPUT_PLACEHOLDER": "प्राथमिकता छान्नुहोस्",
+ "NO_RESULTS": "कुनै परिणाम फेला परेन",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
+ "FAILED": "प्राथमिकता परिवर्तन गर्न सकेन। कृपया फेरि प्रयास गर्नुहोस्।"
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Delete conversation #{conversationId}",
+ "DESCRIPTION": "के तपाईं पक्का यो कुराकानी मेटाउन चाहनुहुन्छ?",
+ "CONFIRM": "हटाउनुहोस्"
+ },
"CARD_CONTEXT_MENU": {
- "PENDING": "Mark as pending",
- "RESOLVED": "Mark as resolved",
- "MARK_AS_UNREAD": "Mark as unread",
- "REOPEN": "Reopen conversation",
+ "PENDING": "पेन्डिङको रूपमा चिन्ह लगाउनुहोस्",
+ "RESOLVED": "समाधान भएको रूपमा चिन्ह लगाउनुहोस्",
+ "MARK_AS_UNREAD": "अपढिएको रूपमा चिन्ह लगाउनुहोस्",
+ "MARK_AS_READ": "पढिएको रूपमा चिन्ह लगाउनुहोस्",
+ "REOPEN": "वार्ता पुन: खोल्नुहोस्",
"SNOOZE": {
- "TITLE": "Snooze",
- "NEXT_REPLY": "Until next reply",
- "TOMORROW": "Until tomorrow",
- "NEXT_WEEK": "Until next week"
+ "TITLE": "स्नूज",
+ "NEXT_REPLY": "अर्को जवाफसम्म",
+ "TOMORROW": "भोलिसम्म",
+ "NEXT_WEEK": "अर्को हप्ता सम्म"
},
- "ASSIGN_AGENT": "Assign agent",
- "ASSIGN_LABEL": "Assign label",
- "AGENTS_LOADING": "Loading agents...",
- "ASSIGN_TEAM": "Assign team",
+ "ASSIGN_AGENT": "एजेन्ट तोक्नुहोस्",
+ "ASSIGN_LABEL": "लेबल तोक्नुहोस्",
+ "AGENTS_LOADING": "एजेन्टहरू लोड हुँदैछ...",
+ "ASSIGN_TEAM": "टोली तोक्नुहोस्",
+ "DELETE": "वार्ता हटाउनुहोस्",
+ "OPEN_IN_NEW_TAB": "नयाँ ट्याबमा खोल्नुहोस्",
+ "COPY_LINK": "वार्ताको लिङ्क प्रतिलिपि गर्नुहोस्",
+ "COPY_LINK_SUCCESS": "वार्ताको लिङ्क क्लिपबोर्डमा प्रतिलिपि गरियो",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
- "FAILED": "Couldn't assign agent. Please try again."
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
+ "FAILED": "एजेन्ट सौंप्न सकेन। कृपया फेरि प्रयास गर्नुहोस्।"
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
- "FAILED": "Couldn't assign label. Please try again."
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
+ "FAILED": "लेबल सौंप्न सकेन। कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "लेबल हटाउन सकेन। कृपया फेरि प्रयास गर्नुहोस्।"
},
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
- "FAILED": "Couldn't assign team. Please try again."
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
+ "FAILED": "टिम सौंप्न सकेन। कृपया फेरि प्रयास गर्नुहोस्।"
}
}
},
"FOOTER": {
- "MESSAGE_SIGN_TOOLTIP": "Message signature",
- "ENABLE_SIGN_TOOLTIP": "Enable signature",
- "DISABLE_SIGN_TOOLTIP": "Disable signature",
- "MSG_INPUT": "Shift + enter for new line. Start with '/' to select a Canned Response.",
- "PRIVATE_MSG_INPUT": "Shift + enter for new line. This will be visible only to Agents",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "MESSAGE_SIGN_TOOLTIP": "सन्देश हस्ताक्षर",
+ "ENABLE_SIGN_TOOLTIP": "हस्ताक्षर सक्षम गर्नुहोस्",
+ "DISABLE_SIGN_TOOLTIP": "हस्ताक्षर अक्षम गर्नुहोस्",
+ "MSG_INPUT": "Shift + enter नयाँ लाइनको लागि। क्यान्ड रिस्पोन्स छान्न '/' बाट सुरु गर्नुहोस्।",
+ "PRIVATE_MSG_INPUT": "नयाँ लाइनका लागि Shift + Enter थिच्नुहोस्। यो केवल एजेन्टहरूलाई मात्र देखिनेछ।",
+ "MESSAGING_RESTRICTED": "तपाईं यस कुराकानीमा जवाफ दिन सक्नुहुन्न",
+ "MESSAGING_RESTRICTED_WHATSAPP": "२४ घण्टाको सन्देश सीमाका कारण तपाईंले टेम्प्लेट सन्देश मात्र पठाउन सक्नुहुन्छ",
+ "MESSAGING_RESTRICTED_API": "सन्देश सीमाका कारण तपाईंले टेम्प्लेट सन्देश मात्र पठाउन सक्नुहुन्छ",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "सन्देश हस्ताक्षर कन्फिगर गरिएको छैन, कृपया प्रोफाइल सेटिङहरूमा कन्फिगर गर्नुहोस्।",
+ "COPILOT_MSG_INPUT": "Copilot लाई थप निर्देशन दिनुहोस् वा अरू केही सोध्नुहोस्... पछ्याउने सन्देश पठाउन Enter थिच्नुहोस्",
+ "CLICK_HERE": "अपडेट गर्न यहाँ क्लिक गर्नुहोस्",
+ "WHATSAPP_TEMPLATES": "Whatsapp टेम्प्लेटहरू"
},
"REPLYBOX": {
- "REPLY": "Reply",
- "PRIVATE_NOTE": "Private Note",
- "SEND": "Send",
- "CREATE": "Add Note",
- "INSERT_READ_MORE": "Read more",
- "DISMISS_REPLY": "Dismiss reply",
- "REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Show rich text editor",
- "TIP_EMOJI_ICON": "Show emoji selector",
- "TIP_ATTACH_ICON": "Attach files",
- "TIP_AUDIORECORDER_ICON": "Record audio",
- "TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
- "TIP_AUDIORECORDER_ERROR": "Could not open the audio",
- "DRAG_DROP": "Drag and drop here to attach",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "REPLY": "जवाफ दिनु",
+ "PRIVATE_NOTE": "निजी नोट",
+ "SEND": "पठाउनुहोस्",
+ "CREATE": "नोट थप्नुहोस्",
+ "INSERT_READ_MORE": "थप पढ्नुहोस्",
+ "DISMISS_REPLY": "जवाफ हटाउनुहोस्",
+ "REPLYING_TO": "जवाफ दिँदै:",
+ "TIP_EMOJI_ICON": "इमोजी चयनकर्ता देखाउनुहोस्",
+ "TIP_ATTACH_ICON": "फाइलहरू संलग्न गर्नुहोस्",
+ "TIP_AUDIORECORDER_ICON": "अडियो रेकर्ड गर्नुहोस्",
+ "TIP_AUDIORECORDER_PERMISSION": "अडियो पहुँच अनुमति दिनुहोस्",
+ "TIP_AUDIORECORDER_ERROR": "अडियो खोल्न सकिएन",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
+ "DRAG_DROP": "यहाँ तान्नुहोस् र छोड्नुहोस् संलग्न गर्न",
+ "START_AUDIO_RECORDING": "अडियो रेकर्डिङ सुरु गर्नुहोस्",
+ "STOP_AUDIO_RECORDING": "अडियो रेकर्डिङ रोक्नुहोस्",
+ "COPILOT_THINKING": "Copilot सोच्दैछ",
"EMAIL_HEAD": {
- "TO": "TO",
- "ADD_BCC": "Add bcc",
+ "TO": "प्रति",
+ "ADD_BCC": "Bcc थप्नुहोस्",
"CC": {
"LABEL": "CC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "इमेलहरू अल्पविरामले छुट्याइएको",
+ "ERROR": "कृपया मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्"
},
"BCC": {
"LABEL": "BCC",
- "PLACEHOLDER": "Emails separated by commas",
- "ERROR": "Please enter valid email addresses"
+ "PLACEHOLDER": "इमेलहरू अल्पविरामले छुट्याइएको",
+ "ERROR": "कृपया मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्"
}
},
"UNDEFINED_VARIABLES": {
- "TITLE": "Undefined variables",
+ "TITLE": "अपरिभाषित भेरिएबलहरू",
"MESSAGE": "You have {undefinedVariablesCount} undefined variables in your message: {undefinedVariables}. Would you like to send the message anyway?",
"CONFIRM": {
- "YES": "Send",
- "CANCEL": "Cancel"
+ "YES": "पठाउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "उद्धृत इमेल थ्रेड समावेश गर्नुहोस्",
+ "DISABLE_TOOLTIP": "उद्धृत इमेल थ्रेड समावेश नगर्नुहोस्",
+ "REMOVE_PREVIEW": "उद्धृत इमेल थ्रेड हटाउनुहोस्",
+ "COLLAPSE": "पूर्वावलोकन संक्षिप्त गर्नुहोस्",
+ "EXPAND": "पूर्वावलोकन विस्तार गर्नुहोस्"
}
},
- "VISIBLE_TO_AGENTS": "Private Note: Only visible to you and your team",
- "CHANGE_STATUS": "Conversation status changed",
- "CHANGE_STATUS_FAILED": "Conversation status change failed",
- "CHANGE_AGENT": "Conversation Assignee changed",
- "CHANGE_AGENT_FAILED": "Assignee change failed",
- "ASSIGN_LABEL_SUCCESFUL": "Label assigned successfully",
- "ASSIGN_LABEL_FAILED": "Label assignment failed",
- "CHANGE_TEAM": "Conversation team changed",
+ "VISIBLE_TO_AGENTS": "निजी नोट: केवल तपाईं र तपाईंको टिमलाई देखिन्छ",
+ "CHANGE_STATUS": "संवाद स्थिति परिवर्तन भयो",
+ "CHANGE_STATUS_FAILED": "संवाद स्थिति परिवर्तन असफल भयो",
+ "CHANGE_AGENT": "संवाद जिम्मेवार परिवर्तन गरियो",
+ "CHANGE_AGENT_FAILED": "जिम्मेवारी परिवर्तन असफल भयो",
+ "ASSIGN_LABEL_SUCCESFUL": "लेबल सफलतापूर्वक तोकियो",
+ "ASSIGN_LABEL_FAILED": "लेबल तोक्न असफल भयो",
+ "CHANGE_TEAM": "कुराकानी टोली परिवर्तन गरियो",
+ "SUCCESS_DELETE_CONVERSATION": "वार्ता सफलतापूर्वक हटाइयो",
+ "FAIL_DELETE_CONVERSATION": "वार्ता हटाउन सकिएन! फेरि प्रयास गर्नुहोस्",
"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:",
- "BOT": "Bot",
- "SEND_FAILED": "Couldn't send message! Try again",
- "TRY_AGAIN": "retry",
+ "FILE_TYPE_NOT_SUPPORTED": "यो {fileName} फाइल प्रकार यस कुराकानीमा समर्थित छैन",
+ "MESSAGE_ERROR": "यो सन्देश पठाउन सकिएन, कृपया पछि प्रयास गर्नुहोस्",
+ "SENT_BY": "पठाउने:",
+ "BOT": "बोट",
+ "NATIVE_APP": "नेभेटिभ एप",
+ "NATIVE_APP_ADVISORY": "यो सन्देश नेटिभ एपबाट पठाइएको हो। सन्देश विन्डो कायम राख्न Chatwoot बाट जवाफ दिनुहोस्।",
+ "SEND_FAILED": "सन्देश पठाउन सकेन! फेरि प्रयास गर्नु",
+ "TRY_AGAIN": "फेरि प्रयास गर्नुहोस्",
"ASSIGNMENT": {
- "SELECT_AGENT": "Select Agent",
- "REMOVE": "Remove",
- "ASSIGN": "Assign"
+ "SELECT_AGENT": "एजेन्ट छान्नुहोस्",
+ "REMOVE": "हटाउनुहोस्",
+ "ASSIGN": "तोकिनुहोस्"
},
"CONTEXT_MENU": {
- "COPY": "Copy",
- "REPLY_TO": "Reply to this message",
- "DELETE": "Delete",
- "CREATE_A_CANNED_RESPONSE": "Add to canned responses",
- "TRANSLATE": "Translate",
- "COPY_PERMALINK": "Copy link to the message",
- "LINK_COPIED": "Message URL copied to the clipboard",
+ "COPY": "प्रतिलिपि गर्नुहोस्",
+ "REPLY_TO": "यो सन्देशमा जवाफ दिनुहोस्",
+ "DELETE": "हटाउनुहोस्",
+ "CREATE_A_CANNED_RESPONSE": "क्यान्ड प्रतिक्रियामा थप्नुहोस्",
+ "TRANSLATE": "अनुवाद गर्नुहोस्",
+ "COPY_PERMALINK": "सन्देशको लिङ्क प्रतिलिपि गर्नुहोस्",
+ "LINK_COPIED": "सन्देश URL क्लिपबोर्डमा प्रतिलिपि गरियो",
"DELETE_CONFIRMATION": {
- "TITLE": "Are you sure you want to delete this message?",
- "MESSAGE": "You cannot undo this action",
- "DELETE": "Delete",
- "CANCEL": "Cancel"
+ "TITLE": "के तपाईं यो सन्देश मेटाउन निश्चित हुनुहुन्छ?",
+ "MESSAGE": "यो कार्य फिर्ता गर्न सकिँदैन",
+ "DELETE": "मेटाउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "सम्पर्क",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "आउँदै गरेको कल",
+ "OUTGOING_CALL": "जाने कल",
+ "CALL_IN_PROGRESS": "कल प्रगतिको अवस्थामा छ",
+ "NOT_ANSWERED_YET": "अझै जवाफ दिइएको छैन",
+ "HANDLED_IN_ANOTHER_TAB": "अर्को ट्याबमा ह्यान्डल भइरहेको छ",
+ "REJECT_CALL": "अस्वीकार गर्नुहोस्",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "कलमा सामेल हुनुहोस्",
+ "END_CALL": "कल समाप्त गर्नुहोस्",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
- "TITLE": "Send conversation transcript",
- "DESC": "Send a copy of the conversation transcript to the specified email address",
+ "TITLE": "वार्तालाप प्रतिलिपि पठाउनुहोस्",
+ "DESC": "निर्दिष्ट इमेल ठेगानामा वार्तालापको प्रतिलिपि पठाउनुहोस्",
"SUBMIT": "बुझाउनुहोस्",
- "CANCEL": "Cancel",
- "SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
- "SEND_EMAIL_ERROR": "There was an error, please try again",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "SEND_EMAIL_SUCCESS": "च्याट प्रतिलिपि सफलतापूर्वक पठाइयो",
+ "SEND_EMAIL_ERROR": "त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "तपाईंको वर्तमान योजनामा इमेल ट्रान्सक्रिप्ट उपलब्ध छैन। कृपया यो सुविधा प्रयोग गर्न योजना अपग्रेड गर्नुहोस्।",
"FORM": {
- "SEND_TO_CONTACT": "Send the transcript to the customer",
- "SEND_TO_AGENT": "Send the transcript to the assigned agent",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Send the transcript to another email address",
+ "SEND_TO_CONTACT": "ग्राहकलाई प्रतिलिपि पठाउनुहोस्",
+ "SEND_TO_AGENT": "प्रतिनिधिलाई ट्रान्सक्रिप्ट पठाउनुहोस्",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "अर्को इमेल ठेगानामा प्रतिलिपि पठाउनुहोस्",
"EMAIL": {
- "PLACEHOLDER": "Enter an email address",
- "ERROR": "Please enter a valid email address"
+ "PLACEHOLDER": "इमेल ठेगाना लेख्नुहोस्",
+ "ERROR": "कृपया मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्"
}
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
- "READ_LATEST_UPDATES": "Read our latest updates",
+ "TITLE": "नमस्ते 👋, {installationName} मा स्वागत छ!",
+ "DESCRIPTION": "साइन अप गर्नुभएकोमा धन्यवाद। हामी चाहन्छौं तपाईंले {installationName} बाट सबैभन्दा राम्रो अनुभव लिनुहोस्। यहाँ {installationName} मा तपाईंले रमाइलो अनुभव बनाउन सक्ने केही कुराहरू छन्।",
+ "GREETING_MORNING": "👋 शुभ प्रभात, {name}. {installationName} मा स्वागत छ।",
+ "GREETING_AFTERNOON": "👋 शुभ अपराह्न, {name}. {installationName} मा स्वागत छ।",
+ "GREETING_EVENING": "👋 शुभ साँझ, {name}. {installationName} मा स्वागत छ।",
+ "READ_LATEST_UPDATES": "हाम्रा पछिल्ला अपडेटहरू पढ्नुहोस्",
"ALL_CONVERSATION": {
- "TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "TITLE": "सबै कुराकानीहरू एउटै स्थानमा",
+ "DESCRIPTION": "तपाईंका ग्राहकका सबै कुराकानीहरू एउटै ड्यासबोर्डमा हेर्नुहोस्। तपाईं इनकमिङ च्यानल, लेबल र स्थिति अनुसार कुराकानीहरू फिल्टर गर्न सक्नुहुन्छ।",
+ "NEW_LINK": "इनबक्स बनाउन यहाँ क्लिक गर्नुहोस्"
},
"TEAM_MEMBERS": {
- "TITLE": "Invite your team members",
- "DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
- "NEW_LINK": "Click here to invite a team member"
- },
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
+ "TITLE": "आफ्नो टोलीका सदस्यहरूलाई निमन्त्रणा गर्नुहोस्",
+ "DESCRIPTION": "तपाईं ग्राहकसँग कुरा गर्न तयार हुँदै हुनुहुन्छ, त्यसैले सहयोगका लागि तपाईंका टिम सदस्यहरूलाई ल्याउनुहोस्। तपाईं एजेन्ट सूचीमा उनीहरूको इमेल ठेगाना थपेर टिम सदस्यहरूलाई निमन्त्रणा गर्न सक्नुहुन्छ।",
+ "NEW_LINK": "टोली सदस्यलाई निमन्त्रणा गर्न यहाँ क्लिक गर्नुहोस्"
},
"LABELS": {
- "TITLE": "Organize conversations with labels",
- "DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
- "NEW_LINK": "Click here to create tags"
+ "TITLE": "लेबलहरू प्रयोग गरी संवादहरू व्यवस्थित गर्नुहोस्",
+ "DESCRIPTION": "लेबलहरूले तपाईंको कुराकानी वर्गीकरण गर्न सजिलो बनाउँछन्। #support-enquiry, #billing-question जस्ता केही लेबलहरू बनाउनुहोस्, जसलाई तपाईं पछि कुराकानीमा प्रयोग गर्न सक्नुहुन्छ।",
+ "NEW_LINK": "ट्यागहरू बनाउन यहाँ क्लिक गर्नुहोस्"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "रेडी जवाफहरू बनाउनुहोस्",
+ "DESCRIPTION": "पूर्व-लेखित छिटो जवाफ टेम्प्लेटहरूले तपाईंलाई छिटो कुराकानीमा जवाफ दिन मद्दत गर्छ। एजेन्टहरूले '/' क्यारेक्टर टाइप गरी त्यसपछि छोटो कोड टाइप गरेर जवाफ समावेश गर्न सक्छन्।",
+ "NEW_LINK": "रेडी जवाफ बनाउन यहाँ क्लिक गर्नुहोस्"
}
},
"CONVERSATION_SIDEBAR": {
- "ASSIGNEE_LABEL": "Assigned Agent",
- "SELF_ASSIGN": "Assign to me",
- "TEAM_LABEL": "Assigned Team",
+ "ASSIGNEE_LABEL": "नियुक्त एजेन्ट",
+ "SELF_ASSIGN": "मलाई तोक्नुहोस्",
+ "TEAM_LABEL": "सुम्पिएको टोली",
"SELECT": {
- "PLACEHOLDER": "None"
+ "PLACEHOLDER": "कुनै छैन"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Contact Details",
- "CONVERSATION_ACTIONS": "Conversation Actions",
- "CONVERSATION_LABELS": "Conversation Labels",
- "CONVERSATION_INFO": "Conversation Information",
- "CONTACT_ATTRIBUTES": "Contact Attributes",
- "PREVIOUS_CONVERSATION": "Previous Conversations",
- "MACROS": "Macros"
+ "CONTACT_DETAILS": "सम्पर्क विवरण",
+ "CONVERSATION_ACTIONS": "संवाद क्रियाहरू",
+ "CONVERSATION_LABELS": "वार्तालाप लेबलहरू",
+ "CONVERSATION_INFO": "संवाद जानकारी",
+ "CONTACT_NOTES": "सम्पर्क नोटहरू",
+ "CONTACT_ATTRIBUTES": "सम्पर्क विशेषताहरू",
+ "PREVIOUS_CONVERSATION": "अघिल्ला कुराकानीहरू",
+ "MACROS": "म्याक्रोहरू",
+ "LINEAR_ISSUES": "लिङ्क गरिएका Linear समस्याहरू",
+ "SHOPIFY_ORDERS": "Shopify अर्डरहरू",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "अर्डर #{id}",
+ "ERROR": "अर्डर लोड गर्न त्रुटि",
+ "NO_SHOPIFY_ORDERS": "कुनै अर्डर फेला परेन",
+ "FINANCIAL_STATUS": {
+ "PENDING": "पेन्डिङ",
+ "AUTHORIZED": "अधिकृत",
+ "PARTIALLY_PAID": "आंशिक रूपमा भुक्तानी",
+ "PAID": "तिरिएको",
+ "PARTIALLY_REFUNDED": "आंशिक रूपमा फिर्ता गरिएको",
+ "REFUNDED": "फिर्ता गरिएको",
+ "VOIDED": "रद्द गरिएको"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "पूरा गरिएको",
+ "PARTIALLY_FULFILLED": "आंशिक रूपमा पूरा गरिएको",
+ "UNFULFILLED": "पूरा नभएको"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Create attribute",
+ "ADD_BUTTON_TEXT": "एट्रिब्युट बनाउनुहोस्",
+ "NO_RECORDS_FOUND": "कुनै विशेषता फेला परेन",
"UPDATE": {
- "SUCCESS": "Attribute updated successfully",
- "ERROR": "Unable to update attribute. Please try again later"
+ "SUCCESS": "एट्रिब्युट सफलतापूर्वक अपडेट भयो",
+ "ERROR": "एट्रिब्युट अपडेट गर्न सकिएन। कृपया पछि प्रयास गर्नुहोस्"
},
"ADD": {
- "TITLE": "Add",
- "SUCCESS": "Attribute added successfully",
- "ERROR": "Unable to add attribute. Please try again later"
+ "TITLE": "थप्नुहोस्",
+ "SUCCESS": "एट्रिब्युट सफलतापूर्वक थपियो",
+ "ERROR": "एट्रिब्युट थप्न सकिएन। कृपया पछि प्रयास गर्नुहोस्"
},
"DELETE": {
- "SUCCESS": "Attribute deleted successfully",
- "ERROR": "Unable to delete attribute. Please try again later"
+ "SUCCESS": "एट्रिब्युट सफलतापूर्वक हटाइयो",
+ "ERROR": "एट्रिब्युट हटाउन सकिएन। कृपया पछि प्रयास गर्नुहोस्"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Add attributes",
- "PLACEHOLDER": "Search attributes",
- "NO_RESULT": "No attributes found"
+ "TITLE": "एट्रिब्युटहरू थप्नुहोस्",
+ "PLACEHOLDER": "एट्रिब्युट खोज्नुहोस्",
+ "NO_RESULT": "कुनै विशेषता फेला परेन"
}
},
"EMAIL_HEADER": {
- "FROM": "From",
- "TO": "To",
+ "FROM": "बाट",
+ "TO": "लाई",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "विषय",
+ "EXPAND": "इमेल विस्तार गर्नुहोस्"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participating",
- "SIDEBAR_TITLE": "Conversation participants",
- "NO_RECORDS_FOUND": "No results found",
- "ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "SIDEBAR_MENU_TITLE": "सहभागी हुँदै",
+ "SIDEBAR_TITLE": "वार्ताका सहभागीहरू",
+ "NO_RECORDS_FOUND": "कुनै परिणाम फेला परेन",
+ "ADD_PARTICIPANTS": "सहभागीहरू छान्नुहोस्",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} अन्य",
+ "REMANING_PARTICIPANT_TEXT": "+{count} अर्को",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} जना मानिसहरू सहभागी छन्।",
+ "TOTAL_PARTICIPANT_TEXT": "{count} व्यक्ति सहभागी छन्।",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
- "WATCH_CONVERSATION": "Join conversation",
- "YOU_ARE_WATCHING": "You are participating",
+ "WATCH_CONVERSATION": "वार्तामा सामेल हुनुहोस्",
+ "YOU_ARE_WATCHING": "तपाईं सहभागी हुनुहुन्छ",
"API": {
- "ERROR_MESSAGE": "Could not update, try again!",
- "SUCCESS_MESSAGE": "Participants updated!"
+ "ERROR_MESSAGE": "अद्यावधिक गर्न सकेन, फेरि प्रयास गर्नुहोस्!",
+ "SUCCESS_MESSAGE": "सहभागीहरू अपडेट गरियो!"
}
},
"TRANSLATE_MODAL": {
- "TITLE": "View translated content",
+ "TITLE": "अनुवादित सामग्री हेर्नुहोस्",
"DESC": "You can view the translated content in each langauge.",
- "ORIGINAL_CONTENT": "Original Content",
- "TRANSLATED_CONTENT": "Translated Content",
- "NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ "ORIGINAL_CONTENT": "मूल सामग्री",
+ "TRANSLATED_CONTENT": "अनुवादित सामग्री",
+ "NO_TRANSLATIONS_AVAILABLE": "यस सामग्रीका लागि कुनै अनुवाद उपलब्ध छैन"
+ },
+ "TYPING": {
+ "ONE": "{user} टाइप गर्दैछ",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "यी सुझावहरू प्रयास गर्नुहोस्"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "एट्याचमेन्ट डाउनलोड गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/customRole.json b/app/javascript/dashboard/i18n/locale/ne/customRole.json
new file mode 100644
index 000000000..ef93efc1f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "There are no items matching this query.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Actions"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Name",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Description",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancel",
+ "API": {
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "बुझाउनुहोस्",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edit",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Update",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Delete",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Are you sure to delete ",
+ "YES": "Yes, delete ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/datePicker.json b/app/javascript/dashboard/i18n/locale/ne/datePicker.json
new file mode 100644
index 000000000..95d304cc6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/general.json b/app/javascript/dashboard/i18n/locale/ne/general.json
new file mode 100644
index 000000000..9a0a7881e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Search",
+ "EMPTY_STATE": "No results found"
+ },
+ "CLOSE": "बन्दा गार्नुहोस्",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/generalSettings.json b/app/javascript/dashboard/i18n/locale/ne/generalSettings.json
index 185d328a5..fab8020e2 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Select one",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "New Message",
"participating_conversation_new_message": "New Message",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Reports",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
index a417ea309..c0bac7a54 100644
--- a/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/ne/helpCenter.json
@@ -1,486 +1,958 @@
{
"HELP_CENTER": {
+ "TITLE": "मद्दत केन्द्र",
+ "NEW_PAGE": {
+ "DESCRIPTION": "तपाईंका ग्राहकहरूका लागि स्व-सेवा मद्दत केन्द्र पोर्टलहरू सिर्जना गर्नुहोस्। उनीहरूलाई छिटो जवाफहरू फेला पार्न मद्दत गर्नुहोस्, पर्खनु नपरोस्। सोधपुछहरूलाई सरल बनाउनुहोस्, एजेन्टको दक्षता बढाउनुहोस्, र ग्राहक समर्थनलाई उचाइमा पुर्याउनुहोस्।",
+ "CREATE_PORTAL_BUTTON": "पोर्टल सिर्जना गर्नुहोस्"
+ },
"HEADER": {
- "FILTER": "Filter by",
- "SORT": "Sort by",
- "LOCALE": "Locale",
- "SETTINGS_BUTTON": "Settings",
- "NEW_BUTTON": "New Article",
+ "FILTER": "द्वारा फिल्टर",
+ "SORT": "द्वारा क्रमबद्ध गर्नुहोस्",
+ "LOCALE": "स्थान",
+ "SETTINGS_BUTTON": "सेटिङ",
+ "NEW_BUTTON": "नयाँ लेख",
"DROPDOWN_OPTIONS": {
- "PUBLISHED": "Published",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived"
+ "PUBLISHED": "प्रकाशित",
+ "DRAFT": "ड्राफ्ट",
+ "ARCHIVED": "अभिलेख"
},
"TITLES": {
- "ALL_ARTICLES": "All Articles",
- "MINE": "My Articles",
- "DRAFT": "Draft Articles",
- "ARCHIVED": "Archived Articles"
+ "ALL_ARTICLES": "सबै लेखहरू",
+ "MINE": "मेरो लेखहरू",
+ "DRAFT": "मस्यौदा लेखहरू",
+ "ARCHIVED": "अभिलेख लेखहरू"
},
"LOCALE_SELECT": {
- "TITLE": "Select locale",
- "PLACEHOLDER": "Select locale",
- "NO_RESULT": "No locale found",
- "SEARCH_PLACEHOLDER": "Search locale"
+ "TITLE": "स्थान चयन गर्नुहोस्",
+ "PLACEHOLDER": "स्थान चयन गर्नुहोस्",
+ "NO_RESULT": "कुनै स्थान फेला परेन",
+ "SEARCH_PLACEHOLDER": "स्थान खोज्नुहोस्"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "All Articles",
- "PUBLISH_BUTTON": "Publish",
- "MOVE_TO_ARCHIVE_BUTTON": "Move to archived",
- "PREVIEW": "Preview",
- "ADD_TRANSLATION": "Add translation",
- "OPEN_SIDEBAR": "Open sidebar",
- "CLOSE_SIDEBAR": "Close sidebar",
- "SAVING": "Saving...",
- "SAVED": "Saved"
+ "ALL_ARTICLES": "सबै लेखहरू",
+ "PUBLISH_BUTTON": "प्रकाशित",
+ "MOVE_TO_ARCHIVE_BUTTON": "पुरानोमा सार्नुहोस्",
+ "PREVIEW": "पूर्वावलोकन",
+ "ADD_TRANSLATION": "अनुवाद थप",
+ "OPEN_SIDEBAR": "साइडबार खोल्नु",
+ "CLOSE_SIDEBAR": "साइडबार बन्द गर्नु",
+ "SAVING": "सेभ हुँदैछ...",
+ "SAVED": "सेभ गरियो"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload image",
+ "TITLE": "छवि अपलोड गर्नुहोस्",
"UPLOADING": "अपलोड गर्दै...",
- "SUCCESS": "Image uploaded successfully",
- "ERROR": "Error while uploading image",
- "ERROR_FILE_SIZE": "Image size should be less than {size}MB",
- "ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
- "ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
+ "SUCCESS": "छवि सफलतापूर्वक अपलोड गरियो।",
+ "ERROR": "छवि अपलोड गर्दा त्रुटि।",
+ "UN_AUTHORIZED_ERROR": "तपाईंलाई तस्बिरहरू अपलोड गर्न अनुमति छैन",
+ "ERROR_FILE_SIZE": "छवि आकार {size}MB भन्दा कम हुनुपर्छ।",
+ "ERROR_FILE_FORMAT": "छवि ढाँचा jpg, jpeg वा png हुनुपर्छ।",
+ "ERROR_FILE_DIMENSIONS": "छवि आयाम 2000 x 2000 भन्दा कम हुनुपर्छ।"
}
},
"ARTICLE_SETTINGS": {
- "TITLE": "Article Settings",
+ "TITLE": "लेख सेटिङहरू",
"FORM": {
"CATEGORY": {
- "LABEL": "Category",
- "TITLE": "Select category",
- "PLACEHOLDER": "Select category",
- "NO_RESULT": "No category found",
- "SEARCH_PLACEHOLDER": "Search category"
+ "LABEL": "श्रेणी",
+ "TITLE": "श्रेणी चयन गर्नुहोस्",
+ "PLACEHOLDER": "श्रेणी चयन गर्नुहोस्",
+ "NO_RESULT": "कुनै श्रेणी फेला परेन",
+ "SEARCH_PLACEHOLDER": "श्रेणी खोज्नुहोस्"
},
"AUTHOR": {
- "LABEL": "Author",
- "TITLE": "Select author",
- "PLACEHOLDER": "Select author",
- "NO_RESULT": "No authors found",
- "SEARCH_PLACEHOLDER": "Search author"
+ "LABEL": "लेखक",
+ "TITLE": "लेखक चयन गर्नुहोस्",
+ "PLACEHOLDER": "लेखक चयन गर्नुहोस्",
+ "NO_RESULT": "लेखकहरू फेला परेनन्",
+ "SEARCH_PLACEHOLDER": "लेखक खोज्नुहोस्"
},
"META_TITLE": {
- "LABEL": "Meta title",
- "PLACEHOLDER": "Add a meta title"
+ "LABEL": "मेटा शीर्षक",
+ "PLACEHOLDER": "मेटा शीर्षक थप्नुहोस्"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
- "PLACEHOLDER": "Add your meta description for better SEO results..."
+ "LABEL": "मेटा विवरण",
+ "PLACEHOLDER": "राम्रो SEO परिणामका लागि आफ्नो मेटा विवरण थप्नुहोस्..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Add meta tags separated by comma..."
+ "LABEL": "मेटा ट्यागहरू",
+ "PLACEHOLDER": "अल्पविरामले छुट्टिएका मेटा ट्यागहरू थप्नुहोस्..."
}
},
"BUTTONS": {
- "ARCHIVE": "Archive article",
- "DELETE": "Delete article"
+ "ARCHIVE": "लेख संग्रह गर्नुहोस्",
+ "DELETE": "लेख मेटाउनुहोस्"
}
},
"ARTICLE_SEARCH_RESULT": {
- "UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
- "EMPTY_TEXT": "Search for articles to insert into replies.",
- "SEARCH_LOADER": "Searching...",
- "INSERT_ARTICLE": "Insert",
- "NO_RESULT": "No articles found",
- "COPY_LINK": "Copy article link to clipboard",
- "OPEN_LINK": "Open article in new tab",
- "PREVIEW_LINK": "Preview article"
+ "UNCATEGORIZED": "श्रेणीबिना",
+ "SEARCH_RESULTS": "{query} को लागि खोज परिणामहरू",
+ "EMPTY_TEXT": "जवाफहरूमा समावेश गर्न लेखहरू खोज्नुहोस्।",
+ "SEARCH_LOADER": "खोज्दै...",
+ "INSERT_ARTICLE": "सम्मिलित गर्नुहोस्",
+ "NO_RESULT": "कुनै लेख फेला परेन",
+ "COPY_LINK": "लेख लिंक क्लिपबोर्डमा प्रतिलिपि गर्नुहोस्",
+ "OPEN_LINK": "लेख नयाँ ट्याबमा खोल्नुहोस्",
+ "PREVIEW_LINK": "लेख पूर्वावलोकन गर्नुहोस्"
},
"PORTAL": {
- "HEADER": "Portals",
- "DEFAULT": "Default",
- "NEW_BUTTON": "New Portal",
- "ACTIVE_BADGE": "active",
- "CHOOSE_LOCALE_LABEL": "Choose a locale",
- "LOADING_MESSAGE": "Loading portals...",
- "ARTICLES_LABEL": "articles",
- "NO_PORTALS_MESSAGE": "There are no available portals",
- "ADD_NEW_LOCALE": "Add a new locale",
+ "HEADER": "पोर्टल",
+ "DEFAULT": "पूर्वनिर्धारित",
+ "NEW_BUTTON": "नयाँ पोर्टल",
+ "ACTIVE_BADGE": "सक्रिय",
+ "CHOOSE_LOCALE_LABEL": "एक भाषा छान्नु",
+ "LOADING_MESSAGE": "पोर्टलहरू लोड हुँदैछन्...",
+ "ARTICLES_LABEL": "लेखहरू",
+ "NO_PORTALS_MESSAGE": "उपलब्ध पोर्टलहरू छैनन्",
+ "ADD_NEW_LOCALE": "नयाँ भाषा थप",
"POPOVER": {
- "TITLE": "Portals",
- "PORTAL_SETTINGS": "Portal settings",
- "SUBTITLE": "You have multiple portals and can have different locales for each portal.",
- "CANCEL_BUTTON_LABEL": "Cancel",
- "CHOOSE_LOCALE_BUTTON": "Choose Locale"
+ "TITLE": "पोर्टल",
+ "PORTAL_SETTINGS": "पोर्टल सेटिङ",
+ "SUBTITLE": "तपाईंसँग धेरै पोर्टलहरू छन् र प्रत्येक पोर्टलका लागि फरक भाषा हुन सक्छ।",
+ "CANCEL_BUTTON_LABEL": "रद्द गर्नु",
+ "CHOOSE_LOCALE_BUTTON": "भाषा छान्नु"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "articles",
- "ADD": "Add locale",
- "VISIT": "Visit site",
- "SETTINGS": "Settings",
- "DELETE": "Delete"
+ "COUNT_LABEL": "लेखहरू",
+ "ADD": "स्थान थप",
+ "VISIT": "साइट भ्रमण",
+ "SETTINGS": "सेटिङ",
+ "DELETE": "मेटाउनुहोस्"
},
"PORTAL_CONFIG": {
- "TITLE": "Portal Configurations",
+ "TITLE": "पोर्टल कन्फिगरेसन",
"ITEMS": {
- "NAME": "Name",
- "DOMAIN": "Custom domain",
- "SLUG": "Slug",
- "TITLE": "Portal title",
- "THEME": "Theme color",
- "SUB_TEXT": "Portal sub text"
+ "NAME": "नाम",
+ "DOMAIN": "कस्टम डोमेन",
+ "SLUG": "स्लग",
+ "TITLE": "पोर्टल शीर्षक",
+ "THEME": "थिम रङ",
+ "SUB_TEXT": "पोर्टल उपपाठ"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Available locales",
+ "TITLE": "उपलब्ध स्थानहरू",
"TABLE": {
- "NAME": "Locale name",
- "CODE": "Locale code",
- "ARTICLE_COUNT": "No. of articles",
- "CATEGORIES": "No. of categories",
- "SWAP": "Swap",
- "DELETE": "Delete",
- "DEFAULT_LOCALE": "Default"
+ "NAME": "स्थान नाम",
+ "CODE": "स्थान कोड",
+ "ARTICLE_COUNT": "लेखहरूको संख्या",
+ "CATEGORIES": "श्रेणीहरूको संख्या",
+ "SWAP": "स्वाप गर्नुहोस्",
+ "DELETE": "मेटाउनुहोस्",
+ "DEFAULT_LOCALE": "पूर्वनिर्धारित"
}
}
},
"DELETE_PORTAL": {
- "TITLE": "Delete portal",
- "MESSAGE": "Are you sure you want to delete this portal",
- "YES": "Yes, delete portal",
- "NO": "No, keep portal",
+ "TITLE": "पोर्टल मेटाउनुहोस्",
+ "MESSAGE": "के तपाईं पक्का यो पोर्टल मेटाउन चाहनुहुन्छ",
+ "YES": "हो, पोर्टल मेटाउनुहोस्",
+ "NO": "होइन, पोर्टल राख्नुहोस्",
"API": {
- "DELETE_SUCCESS": "Portal deleted successfully",
- "DELETE_ERROR": "Error while deleting portal"
+ "DELETE_SUCCESS": "पोर्टल सफलतापूर्वक मेटियो",
+ "DELETE_ERROR": "पोर्टल मेटाउँदा त्रुटि"
+ }
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME निर्देशनहरू सफलतापूर्वक पठाइयो",
+ "ERROR_MESSAGE": "CNAME निर्देशनहरू पठाउँदा त्रुटि"
}
}
},
"EDIT": {
- "HEADER_TEXT": "Edit portal",
+ "HEADER_TEXT": "पोर्टल सम्पादन गर्नुहोस्",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Basic information"
+ "TITLE": "मूल जानकारी"
},
"CUSTOMIZATION_SETTINGS": {
- "TITLE": "Portal customization"
+ "TITLE": "पोर्टल अनुकूलन"
},
"CATEGORY_SETTINGS": {
- "TITLE": "Categories"
+ "TITLE": "श्रेणीहरू"
},
"LOCALE_SETTINGS": {
- "TITLE": "Locales"
+ "TITLE": "भाषाहरू"
}
},
"CATEGORIES": {
- "TITLE": "Categories in",
- "NEW_CATEGORY": "New category",
+ "TITLE": "श्रेणीहरू",
+ "NEW_CATEGORY": "नयाँ श्रेणी",
"TABLE": {
- "NAME": "Name",
- "DESCRIPTION": "Description",
- "LOCALE": "Locale",
- "ARTICLE_COUNT": "No. of articles",
+ "NAME": "नाम",
+ "DESCRIPTION": "विवरण",
+ "LOCALE": "भाषा",
+ "ARTICLE_COUNT": "लेखहरूको संख्या",
"ACTION_BUTTON": {
- "EDIT": "Edit category",
- "DELETE": "Delete category"
+ "EDIT": "श्रेणी सम्पादन गर्नुहोस्",
+ "DELETE": "श्रेणी मेटाउनुहोस्"
},
- "EMPTY_TEXT": "No categories found"
+ "EMPTY_TEXT": "कुनै श्रेणी फेला परेन"
}
},
"EDIT_BASIC_INFO": {
- "BUTTON_TEXT": "Update basic settings"
+ "BUTTON_TEXT": "मूल सेटिङहरू अपडेट गर्नुहोस्"
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "मद्दत केन्द्र जानकारी",
+ "BODY": "पोर्टलको आधारभूत जानकारी"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "मद्दत केन्द्र अनुकूलन",
+ "BODY": "पोर्टल अनुकूलन गर्नुहोस्"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "भ्वाइला! 🎉",
+ "BODY": "तपाईं तयार हुनुहुन्छ!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
- "BACK_BUTTON": "Back",
+ "BACK_BUTTON": "फिर्ता",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Create Portal",
- "TITLE": "Help center information",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "HEADER": "पोर्टल सिर्जना गर्नुहोस्",
+ "TITLE": "सहायता केन्द्र जानकारी",
+ "CREATE_BASIC_SETTING_BUTTON": "पोर्टल आधारभूत सेटिङहरू सिर्जना गर्नुहोस्"
},
"CUSTOMIZATION_PAGE": {
- "HEADER": "Portal customisation",
- "TITLE": "Help center customization",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "HEADER": "पोर्टल अनुकूलन",
+ "TITLE": "सहायता केन्द्र अनुकूलन",
+ "UPDATE_PORTAL_BUTTON": "पोर्टल सेटिङहरू अपडेट गर्नुहोस्"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 You're all set up!",
- "MESSAGE": "You can now see this created portal on your all portals page.",
- "FINISH": "Go to all portals page"
+ "TITLE": "भ्वाइला!🎉 तपाईं सबै तयार हुनुहुन्छ!",
+ "MESSAGE": "अब तपाईंले यो सिर्जना गरिएको पोर्टल सबै पोर्टलहरू पृष्ठमा देख्न सक्नुहुन्छ।",
+ "FINISH": "सबै पोर्टलहरू पृष्ठमा जानुहोस्"
}
},
"LOGO": {
- "LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
- "HELP_TEXT": "This logo will be displayed on the portal header.",
- "IMAGE_UPLOAD_SUCCESS": "Logo uploaded successfully",
- "IMAGE_UPLOAD_ERROR": "Logo deleted successfully",
- "IMAGE_DELETE_ERROR": "Error while deleting logo"
+ "LABEL": "लोगो",
+ "UPLOAD_BUTTON": "लोगो अपलोड गर्नुहोस्",
+ "HELP_TEXT": "यो लोगो पोर्टल हेडरमा देखाइनेछ।",
+ "IMAGE_UPLOAD_SUCCESS": "लोगो सफलतापूर्वक अपलोड गरियो",
+ "IMAGE_UPLOAD_ERROR": "लोगो सफलतापूर्वक मेटाइयो",
+ "IMAGE_DELETE_ERROR": "लोगो मेट्दा त्रुटि"
},
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Portal name",
- "HELP_TEXT": "The name will be used in the public facing portal internally.",
- "ERROR": "Name is required"
+ "LABEL": "नाम",
+ "PLACEHOLDER": "पोर्टल नाम",
+ "HELP_TEXT": "नाम सार्वजनिक पोर्टलमा आन्तरिक रूपमा प्रयोग हुनेछ।",
+ "ERROR": "नाम आवश्यक छ"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Portal slug for urls",
- "ERROR": "Slug is required"
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "URL का लागि पोर्टल स्लग",
+ "ERROR": "स्लग आवश्यक छ"
},
"DOMAIN": {
- "LABEL": "Custom Domain",
- "PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
- "ERROR": "Enter a valid domain URL"
+ "LABEL": "अनुकूलित डोमेन",
+ "PLACEHOLDER": "पोर्टल अनुकूलित डोमेन",
+ "HELP_TEXT": "तपाईंको पोर्टलहरूका लागि कस्टम डोमेन प्रयोग गर्न चाहनुहुन्छ भने मात्र थप्नुहोस्। जस्तै: {exampleURL}",
+ "ERROR": "वैध डोमेन URL प्रविष्ट गर्नुहोस्।"
},
"HOME_PAGE_LINK": {
- "LABEL": "Home Page Link",
- "PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Enter a valid home page URL"
+ "LABEL": "होम पृष्ठ लिंक",
+ "PLACEHOLDER": "पोर्टल होम पृष्ठ लिंक",
+ "HELP_TEXT": "पोर्टलबाट गृहपृष्ठमा फर्कन प्रयोग हुने लिंक। जस्तै: {exampleURL}",
+ "ERROR": "वैध होम पेज URL प्रविष्ट गर्नुहोस्।"
},
"THEME_COLOR": {
- "LABEL": "Portal theme color",
- "HELP_TEXT": "This color will show as the theme color for the portal."
+ "LABEL": "पोर्टल थिम रंग",
+ "HELP_TEXT": "यो रंग पोर्टलको थिम रंगको रूपमा देखिनेछ।"
},
"PAGE_TITLE": {
- "LABEL": "Page Title",
- "PLACEHOLDER": "Portal page title",
- "HELP_TEXT": "The page title will be used in the public facing portal.",
- "ERROR": "Page title is required"
+ "LABEL": "पृष्ठ शीर्षक",
+ "PLACEHOLDER": "पोर्टल पृष्ठ शीर्षक",
+ "HELP_TEXT": "पृष्ठ शीर्षक सार्वजनिक पोर्टलमा प्रयोग हुनेछ।",
+ "ERROR": "पृष्ठ शीर्षक आवश्यक छ"
},
"HEADER_TEXT": {
- "LABEL": "Header Text",
- "PLACEHOLDER": "Portal header text",
- "HELP_TEXT": "The Portal header text will be used in the public facing portal.",
- "ERROR": "Portal header text is required"
+ "LABEL": "हेडर पाठ",
+ "PLACEHOLDER": "पोर्टल हेडर पाठ",
+ "HELP_TEXT": "पोर्टल हेडर पाठ सार्वजनिक पोर्टलमा प्रयोग हुनेछ।",
+ "ERROR": "पोर्टल हेडर पाठ आवश्यक छ"
},
"API": {
- "SUCCESS_MESSAGE_FOR_BASIC": "Portal created successfully.",
- "ERROR_MESSAGE_FOR_BASIC": "Couldn't create the portal. Try again.",
- "SUCCESS_MESSAGE_FOR_UPDATE": "Portal updated successfully.",
- "ERROR_MESSAGE_FOR_UPDATE": "Couldn't update the portal. Try again."
+ "SUCCESS_MESSAGE_FOR_BASIC": "पोर्टल सफलतापूर्वक सिर्जना गरियो।",
+ "ERROR_MESSAGE_FOR_BASIC": "पोर्टल सिर्जना गर्न सकेन। पुन: प्रयास गर्नुहोस्।",
+ "SUCCESS_MESSAGE_FOR_UPDATE": "पोर्टल सफलतापूर्वक अपडेट गरियो।",
+ "ERROR_MESSAGE_FOR_UPDATE": "पोर्टल अपडेट गर्न सकेन। पुन: प्रयास गर्नुहोस्।"
}
},
"ADD_LOCALE": {
- "TITLE": "Add a new locale",
- "SUB_TITLE": "This adds a new locale to your available translation list.",
- "PORTAL": "Portal",
+ "TITLE": "नयाँ भाषा थप्नुहोस्",
+ "SUB_TITLE": "यसले तपाईंको उपलब्ध अनुवाद सूचीमा नयाँ भाषा थप्छ।",
+ "PORTAL": "पोर्टल",
"LOCALE": {
- "LABEL": "Locale",
- "PLACEHOLDER": "Choose a locale",
- "ERROR": "Locale is required"
+ "LABEL": "भाषा",
+ "PLACEHOLDER": "भाषा छान्नुहोस्",
+ "ERROR": "भाषा आवश्यक छ"
},
"BUTTONS": {
- "CREATE": "Create locale",
- "CANCEL": "Cancel"
+ "CREATE": "भाषा सिर्जना गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
},
"API": {
- "SUCCESS_MESSAGE": "Locale added successfully",
- "ERROR_MESSAGE": "Unable to add locale. Try again."
+ "SUCCESS_MESSAGE": "भाषा सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "भाषा थप्न सकिएन। फेरि प्रयास गर्नुहोस्।"
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Default locale updated successfully",
- "ERROR_MESSAGE": "Unable to update default locale. Try again."
+ "SUCCESS_MESSAGE": "पूर्वनिर्धारित भाषा सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "पूर्वनिर्धारित भाषा अपडेट गर्न सकिएन। फेरि प्रयास गर्नुहोस्।"
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Locale removed from portal successfully",
- "ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
+ "SUCCESS_MESSAGE": "भाषा पोर्टलबाट सफलतापूर्वक हटाइयो।",
+ "ERROR_MESSAGE": "भाषा पोर्टलबाट हटाउन सकिएन। फेरि प्रयास गर्नुहोस्।"
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
"TABLE": {
- "LOADING_MESSAGE": "Loading articles...",
- "404": "No articles matches your search 🔍",
- "NO_ARTICLES": "There are no available articles",
+ "LOADING_MESSAGE": "लेखहरू लोड हुँदैछ...",
+ "404": "तपाईंको खोजीसँग मेल खाने कुनै लेख छैन 🔍",
+ "NO_ARTICLES": "उपलब्ध लेखहरू छैनन्",
"HEADERS": {
- "TITLE": "Title",
- "CATEGORY": "Category",
- "READ_COUNT": "Views",
- "STATUS": "Status",
- "LAST_EDITED": "Last edited"
+ "TITLE": "शीर्षक",
+ "CATEGORY": "श्रेणी",
+ "READ_COUNT": "हेर्ने संख्या",
+ "STATUS": "स्थिति",
+ "LAST_EDITED": "अन्तिम सम्पादन"
},
"COLUMNS": {
- "BY": "by",
- "AUTHOR_NOT_AVAILABLE": "Author is not available"
+ "BY": "द्वारा",
+ "AUTHOR_NOT_AVAILABLE": "लेखक उपलब्ध छैन"
}
},
"EDIT_ARTICLE": {
- "LOADING": "Loading article...",
- "TITLE_PLACEHOLDER": "Article title goes here",
- "CONTENT_PLACEHOLDER": "Write your article here",
+ "LOADING": "लेख लोड हुँदैछ...",
+ "TITLE_PLACEHOLDER": "लेखको शीर्षक यहाँ राख्नुहोस्",
+ "CONTENT_PLACEHOLDER": "यहाँ आफ्नो लेख लेख्नु",
"API": {
- "ERROR": "Error while saving article"
+ "ERROR": "लेख सेभ गर्दा त्रुटि"
}
},
"PUBLISH_ARTICLE": {
"API": {
- "ERROR": "Error while publishing article",
- "SUCCESS": "Article published successfully"
+ "ERROR": "लेख प्रकाशित गर्दा त्रुटि।",
+ "SUCCESS": "लेख सफलतापूर्वक प्रकाशित गरियो।"
}
},
"ARCHIVE_ARTICLE": {
"API": {
- "ERROR": "Error while archiving article",
- "SUCCESS": "Article archived successfully"
+ "ERROR": "लेख संग्रह गर्दा त्रुटि",
+ "SUCCESS": "लेख सफलतापूर्वक संग्रह गरियो"
+ }
+ },
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "लेख ड्राफ्ट गर्दा त्रुटि",
+ "SUCCESS": "लेख सफलतापूर्वक ड्राफ्ट गरियो"
}
},
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the article?",
- "YES": "Yes, Delete",
- "NO": "No, Keep it"
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "MESSAGE": "के तपाईं पक्का हुनुहुन्छ कि लेख मेटाउन चाहनुहुन्छ?",
+ "YES": "हो, मेटाउनुहोस्",
+ "NO": "होइन, राख्नुहोस्"
}
},
"API": {
- "SUCCESS_MESSAGE": "Article deleted successfully",
- "ERROR_MESSAGE": "Error while deleting article"
+ "SUCCESS_MESSAGE": "लेख सफलतापूर्वक मेटियो",
+ "ERROR_MESSAGE": "लेख मेटाउँदा त्रुटि"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "लेखहरू पुनःक्रमबद्ध गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "श्रेणीहरू पुनःक्रमबद्ध गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
}
},
"CREATE_ARTICLE": {
- "ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
+ "ERROR_MESSAGE": "कृपया लेख शीर्षक र सामग्री थप्नुहोस्, त्यसपछि मात्र तपाईं सेटिङहरू अपडेट गर्न सक्नुहुन्छ"
},
"SIDEBAR": {
"SEARCH": {
- "PLACEHOLDER": "Search for articles"
+ "PLACEHOLDER": "लेखहरूको खोजी"
}
},
"CATEGORY": {
"ADD": {
- "TITLE": "Create a category",
- "SUB_TITLE": "The category will be used in the public facing portal to categorize articles.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "श्रेणी सिर्जना",
+ "SUB_TITLE": "श्रेणी सार्वजनिक पोर्टलमा लेखहरू वर्गीकरण गर्न प्रयोग गरिन्छ।",
+ "PORTAL": "पोर्टल",
+ "LOCALE": "स्थान",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "नाम",
+ "PLACEHOLDER": "श्रेणी नाम",
+ "HELP_TEXT": "श्रेणी नाम र आइकन सार्वजनिक पोर्टलमा लेखहरू वर्गीकरण गर्न प्रयोग गरिनेछ।",
+ "ERROR": "नाम आवश्यक छ"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "URL का लागि श्रेणी स्लग",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "स्लग आवश्यक छ"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "श्रेणीको छोटो विवरण दिनु",
+ "ERROR": "विवरण आवश्यक छ"
},
"BUTTONS": {
- "CREATE": "Create category",
- "CANCEL": "Cancel"
+ "CREATE": "श्रेणी सिर्जना",
+ "CANCEL": "रद्द गर्नु"
},
"API": {
- "SUCCESS_MESSAGE": "Category created successfully",
- "ERROR_MESSAGE": "Unable to create category"
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "श्रेणी सिर्जना गर्न सकिएन"
}
},
"EDIT": {
- "TITLE": "Edit a category",
- "SUB_TITLE": "Editing a category will update the category in the public facing portal.",
- "PORTAL": "Portal",
- "LOCALE": "Locale",
+ "TITLE": "श्रेणी सम्पादन गर्नुहोस्",
+ "SUB_TITLE": "श्रेणी सम्पादन गर्दा सार्वजनिक पोर्टलमा श्रेणी अपडेट हुनेछ।",
+ "PORTAL": "पोर्टल",
+ "LOCALE": "स्थान",
"NAME": {
- "LABEL": "Name",
- "PLACEHOLDER": "Category name",
- "HELP_TEXT": "The category name and icon will be used in the public facing portal to categorize articles.",
- "ERROR": "Name is required"
+ "LABEL": "नाम",
+ "PLACEHOLDER": "श्रेणी नाम",
+ "HELP_TEXT": "श्रेणी नाम र आइकन सार्वजनिक पोर्टलमा लेखहरू वर्गीकरण गर्न प्रयोग गरिनेछ।",
+ "ERROR": "नाम आवश्यक छ"
},
"SLUG": {
- "LABEL": "Slug",
- "PLACEHOLDER": "Category slug for urls",
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "URL का लागि श्रेणी स्लग",
"HELP_TEXT": "app.chatwoot.com/hc/my-portal/en-US/categories/my-slug",
- "ERROR": "Slug is required"
+ "ERROR": "स्लग आवश्यक छ"
},
"DESCRIPTION": {
- "LABEL": "Description",
- "PLACEHOLDER": "Give a short description about the category.",
- "ERROR": "Description is required"
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "श्रेणीको छोटो विवरण दिनुहोस्।",
+ "ERROR": "विवरण आवश्यक छ"
},
"BUTTONS": {
- "CREATE": "Update category",
- "CANCEL": "Cancel"
+ "CREATE": "श्रेणी अपडेट गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
},
"API": {
- "SUCCESS_MESSAGE": "Category updated successfully",
- "ERROR_MESSAGE": "Unable to update category"
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक अपडेट गरियो।",
+ "ERROR_MESSAGE": "श्रेणी अपडेट गर्न सकिएन।"
}
},
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Category deleted successfully",
- "ERROR_MESSAGE": "Unable to delete category"
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक मेटाइयो।",
+ "ERROR_MESSAGE": "श्रेणी मेटाउन सकिएन"
}
}
},
"ARTICLE_SEARCH": {
- "TITLE": "Search articles",
- "PLACEHOLDER": "Search articles",
- "NO_RESULT": "No articles found",
- "SEARCHING": "Searching...",
- "SEARCH_BUTTON": "Search",
- "INSERT_ARTICLE": "Insert link",
- "IFRAME_ERROR": "URL is empty or invalid. Unable to display content.",
- "OPEN_ARTICLE_SEARCH": "Insert article from Help Center",
- "SUCCESS_ARTICLE_INSERTED": "Article inserted successfully",
- "PREVIEW_LINK": "Preview article",
+ "TITLE": "लेखहरू खोज्नुहोस्",
+ "PLACEHOLDER": "लेखहरू खोज्नुहोस्",
+ "NO_RESULT": "कुनै लेख फेला परेन",
+ "SEARCHING": "खोज्दै...",
+ "SEARCH_BUTTON": "खोज्नुहोस्",
+ "INSERT_ARTICLE": "लिङ्क समावेश गर्नुहोस्",
+ "IFRAME_ERROR": "URL खाली वा अमान्य छ। सामग्री प्रदर्शन गर्न सकिँदैन।",
+ "OPEN_ARTICLE_SEARCH": "मद्दत केन्द्रबाट लेख समावेश गर्नुहोस्",
+ "SUCCESS_ARTICLE_INSERTED": "लेख सफलतापूर्वक समावेश गरियो",
+ "PREVIEW_LINK": "लेख पूर्वावलोकन गर्नुहोस्",
"CANCEL": "बन्दा गार्नुहोस्",
- "BACK": "Back",
- "BACK_RESULTS": "Back to results"
+ "BACK": "फिर्ता",
+ "BACK_RESULTS": "परिणामहरूमा फिर्ता जानुहोस्"
},
"UPGRADE_PAGE": {
- "TITLE": "Help Center",
- "DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Upgrade your subscription to enable this feature.",
- "SELF_HOSTED_DESCRIPTION": "Create user-friendly self-service portals. Help your users to access the articles and get support 24/7. Please contact your administrator to enable this feature.",
+ "TITLE": "मद्दत केन्द्र",
+ "DESCRIPTION": "प्रयोगकर्ता मैत्री स्व-सेवा पोर्टलहरू सिर्जना गर्नुहोस्। तपाईंका प्रयोगकर्ताहरूलाई लेखहरू पहुँच गर्न र २४/७ समर्थन प्राप्त गर्न मद्दत गर्नुहोस्। यो सुविधा सक्षम गर्न आफ्नो सदस्यता उन्नत गर्नुहोस्।",
+ "SELF_HOSTED_DESCRIPTION": "प्रयोगकर्ता मैत्री स्व-सेवा पोर्टलहरू सिर्जना गर्नुहोस्। तपाईंका प्रयोगकर्ताहरूलाई लेखहरू पहुँच गर्न र २४/७ समर्थन प्राप्त गर्न मद्दत गर्नुहोस्। कृपया यो सुविधा सक्षम गर्न आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।",
"BUTTON": {
- "LEARN_MORE": "Learn more",
- "UPGRADE": "Upgrade"
+ "LEARN_MORE": "थप जान्नुहोस्",
+ "UPGRADE": "उन्नत गर्नुहोस्"
},
"FEATURES": {
"PORTALS": {
- "TITLE": "Multiple portals",
- "DESCRIPTION": "Create multiple help center portals for different products using the same account."
+ "TITLE": "धेरै पोर्टलहरू",
+ "DESCRIPTION": "उही खाताको प्रयोग गरेर विभिन्न उत्पादनहरूको लागि धेरै मद्दत केन्द्र पोर्टलहरू सिर्जना गर्नुहोस्।"
},
"LOCALES": {
- "TITLE": "Full support for locales",
- "DESCRIPTION": "Localize the portal in your language. We support all locales and allow translations for every article."
+ "TITLE": "स्थानहरूको पूर्ण समर्थन",
+ "DESCRIPTION": "तपाईंको भाषामा पोर्टललाई स्थानीयकरण गर्नुहोस्। हामी सबै स्थानहरूलाई समर्थन गर्छौं र प्रत्येक लेखको लागि अनुवादहरू अनुमति दिन्छौं।"
},
"SEO": {
- "TITLE": "SEO-friendly design",
- "DESCRIPTION": "Customize your meta tags to improve your visibility on search engines with our SEO-friendly pages."
+ "TITLE": "SEO मैत्रीपूर्ण डिजाइन",
+ "DESCRIPTION": "हाम्रो SEO मैत्रीपूर्ण पृष्ठहरूसँग खोज इन्जिनहरूमा तपाईंको दृश्यता सुधार गर्न आफ्नो मेटा ट्यागहरू अनुकूलित गर्नुहोस्।"
},
"API": {
- "TITLE": "Full API support",
- "DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
+ "TITLE": "पूर्ण API समर्थन",
+ "DESCRIPTION": "हाम्रो API हरूको प्रयोग गरेर तेस्रो पक्ष फ्रन्ट-एन्ड फ्रेमवर्कहरूसँग पोर्टललाई हेडलेस CMS को रूपमा प्रयोग गर्नुहोस्।"
}
}
+ },
+ "LOADING": "लोड हुँदैछ...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} पटक हेरेको | {count} पटक हेरेका",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "प्रकाशित गर्नुहोस्",
+ "DRAFT": "ड्राफ्ट",
+ "ARCHIVE": "अभिलेख",
+ "TRANSLATE": "अनुवाद गर्नुहोस्",
+ "DELETE": "मेटाउनुहोस्"
+ },
+ "STATUS": {
+ "DRAFT": "ड्राफ्ट",
+ "PUBLISHED": "प्रकाशित",
+ "ARCHIVED": "अभिलेखित"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "वर्गीकरण नगरिएको"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "सबै लेखहरू",
+ "MINE": "मेरो",
+ "DRAFT": "ड्राफ्ट",
+ "PUBLISHED": "प्रकाशित",
+ "ARCHIVED": "अभिलेखित"
+ },
+ "CATEGORY": {
+ "ALL": "सबै श्रेणीहरू"
+ },
+ "LOCALE": {
+ "ALL": "सबै भाषाहरू"
+ },
+ "NEW_ARTICLE": "नयाँ लेख"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "लेख लेख्नुहोस्",
+ "SUBTITLE": "धनी लेख लेखौं, सुरु गरौं!",
+ "BUTTON_LABEL": "नयाँ लेख"
+ },
+ "MINE": {
+ "TITLE": "तपाईंले यहाँ कुनै लेख लेख्नुभएको छैन",
+ "SUBTITLE": "यहाँ तपाईंले लेख्नुभएको सबै लेखहरू छिटो पहुँचका लागि देखिन्छन्।"
+ },
+ "DRAFT": {
+ "TITLE": "ड्राफ्टमा कुनै लेखहरू छैनन्",
+ "SUBTITLE": "ड्राफ्ट लेखहरू यहाँ देखिनेछन्"
+ },
+ "PUBLISHED": {
+ "TITLE": "प्रकाशित लेखहरू छैनन्",
+ "SUBTITLE": "प्रकाशित लेखहरू यहाँ देखिनेछन्"
+ },
+ "ARCHIVED": {
+ "TITLE": "आर्काइभमा कुनै लेखहरू छैनन्",
+ "SUBTITLE": "आर्काइभ गरिएका लेखहरू पोर्टलमा देखिँदैनन्, तपाईं यसलाई अप्रचलित वा पुराना पृष्ठहरू चिन्ह लगाउन प्रयोग गर्न सक्नुहुन्छ"
+ },
+ "CATEGORY": {
+ "TITLE": "यस श्रेणीमा कुनै लेखहरू छैनन्",
+ "SUBTITLE": "यस श्रेणीका लेखहरू यहाँ देखिनेछन्"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "अनुवाद गर्नुहोस्",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "SELECTED_COUNT": "{count} चयन गरियो",
+ "CLEAR_SELECTION": "चयन सफा गर्नुहोस्",
+ "TRANSLATE_BUTTON": "अनुवाद गर्नुहोस्",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "प्रकाशित",
+ "DRAFT": "ड्राफ्ट",
+ "ARCHIVE": "अभिलेख",
+ "TRANSLATE": "अनुवाद गर्नुहोस्",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Delete",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Delete",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "नयाँ श्रेणी",
+ "EDIT_CATEGORY": "श्रेणी सम्पादन गर्नुहोस्",
+ "CATEGORIES_COUNT": "{n} श्रेणी | {n} श्रेणीहरू",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "श्रेणीहरू ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} लेखहरू) | {categoryName} ({categoryCount} लेख)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "कुनै श्रेणी फेला परेन",
+ "SUBTITLE": "श्रेणीहरू यहाँ देखिनेछन्। तपाईं 'नयाँ श्रेणी' बटन क्लिक गरेर श्रेणी थप्न सक्नुहुन्छ।"
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} लेख | {count} लेखहरू"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "श्रेणी सिर्जना गर्न सकिएन"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR_MESSAGE": "श्रेणी अद्यावधिक गर्न सकिएन"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "श्रेणी सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "श्रेणी मेटाउन सकिएन"
+ }
+ },
+ "HEADER": {
+ "CREATE": "श्रेणी सिर्जना गर्नुहोस्",
+ "EDIT": "श्रेणी सम्पादन गर्नुहोस्",
+ "DESCRIPTION": "श्रेणी सम्पादन गर्दा सार्वजनिक पोर्टलमा श्रेणी अद्यावधिक हुनेछ।",
+ "PORTAL": "पोर्टल",
+ "LOCALE": "स्थान"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "नाम",
+ "PLACEHOLDER": "श्रेणी नाम",
+ "ERROR": "नाम आवश्यक छ"
+ },
+ "SLUG": {
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "URL का लागि श्रेणी स्लग",
+ "ERROR": "स्लग आवश्यक छ",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "श्रेणीको छोटो विवरण दिनुहोस्।",
+ "ERROR": "विवरण आवश्यक छ"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "EDIT": "अद्यावधिक गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "कुनै भाषा उपलब्ध छैन | {n} भाषा | {n} भाषाहरू",
+ "NEW_LOCALE_BUTTON_TEXT": "नयाँ भाषा",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} लेख | {count} लेखहरू",
+ "CATEGORIES_COUNT": "{count} श्रेणी | {count} श्रेणीहरू",
+ "DEFAULT": "पूर्वनिर्धारित",
+ "DRAFT": "ड्राफ्ट",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "पूर्वनिर्धारित बनाउनुहोस्",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "मेटाउनुहोस्"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "नयाँ स्थान थप्नुहोस्",
+ "DESCRIPTION": "यस लेख कुन भाषामा लेखिनेछ चयन गर्नुहोस्। यसलाई तपाईंको अनुवाद सूचीमा थपिनेछ, र तपाईं पछि थप्न सक्नुहुन्छ।",
+ "COMBOBOX": {
+ "PLACEHOLDER": "स्थान चयन गर्नुहोस्..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "प्रकाशित",
+ "DRAFT": "ड्राफ्ट"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "स्थान सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "स्थान थप्न सकिएन। फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "सेभ हुँदैछ...",
+ "SAVED": "सेभ गरियो"
+ },
+ "PREVIEW": "पूर्वावलोकन",
+ "PUBLISH": "प्रकाशित गर्नुहोस्",
+ "DRAFT": "ड्राफ्ट",
+ "ARCHIVE": "अभिलेख",
+ "BACK_TO_ARTICLES": "लेखहरूमा फर्कनुहोस्"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "थप गुणहरू",
+ "UNCATEGORIZED": "वर्गीकरण नगरिएको",
+ "EDITOR_PLACEHOLDER": "केही लेख्नुहोस्..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "लेखका गुणहरू",
+ "META_DESCRIPTION": "मेटा विवरण",
+ "META_DESCRIPTION_PLACEHOLDER": "मेटा विवरण थप्नुहोस्",
+ "META_TITLE": "मेटा शीर्षक",
+ "META_TITLE_PLACEHOLDER": "मेटा शीर्षक थप्नुहोस्",
+ "META_TAGS": "मेटा ट्यागहरू",
+ "META_TAGS_PLACEHOLDER": "मेटा ट्यागहरू थप्नुहोस्"
+ },
+ "API": {
+ "ERROR": "लेख सेभ गर्दा त्रुटि"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "नयाँ पोर्टल",
+ "PORTALS": "पोर्टलहरू",
+ "CREATE_PORTAL": "धेरै पोर्टलहरू सिर्जना र व्यवस्थापन गर्नुहोस्",
+ "ARTICLES": "लेखहरू",
+ "DOMAIN": "डोमेन",
+ "PORTAL_NAME": "पोर्टल नाम"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "नयाँ पोर्टल सिर्जना गर्नुहोस्",
+ "DESCRIPTION": "तपाईंको पोर्टललाई नाम दिनुहोस् र प्रयोगकर्ता मैत्री URL स्लग सिर्जना गर्नुहोस्। तपाईंले दुवैलाई पछि सेटिङहरूमा परिवर्तन गर्न सक्नुहुन्छ।",
+ "CONFIRM_BUTTON_LABEL": "सिर्जना गर्नुहोस्",
+ "NAME": {
+ "LABEL": "नाम",
+ "PLACEHOLDER": "प्रयोगकर्ता मार्गदर्शक | Chatwoot",
+ "MESSAGE": "तपाईंको पोर्टलको लागि नाम छान्नुहोस्।",
+ "ERROR": "नाम आवश्यक छ"
+ },
+ "SLUG": {
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "प्रयोगकर्ता-मार्गदर्शिका",
+ "ERROR": "स्लग आवश्यक छ",
+ "FORMAT_ERROR": "कृपया मान्य स्लग प्रविष्ट गर्नुहोस्, जस्तै: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "लोगो",
+ "IMAGE_UPLOAD_ERROR": "छवि अपलोड गर्न सकिएन! फेरि प्रयास गर्नुहोस्",
+ "IMAGE_UPLOAD_SUCCESS": "छवि सफलतापूर्वक थपियो। कृपया लोगो सुरक्षित गर्न परिवर्तनहरू बचत गर्नुहोस्।",
+ "IMAGE_DELETE_SUCCESS": "लोगो सफलतापूर्वक मेटाइयो",
+ "IMAGE_DELETE_ERROR": "लोगो मेटाउन सकिएन",
+ "IMAGE_UPLOAD_SIZE_ERROR": "छविको आकार {size}MB भन्दा कम हुनुपर्छ"
+ },
+ "NAME": {
+ "LABEL": "नाम",
+ "PLACEHOLDER": "पोर्टल नाम",
+ "ERROR": "नाम आवश्यक छ"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "हेडर पाठ",
+ "PLACEHOLDER": "पोर्टल हेडर पाठ"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "पृष्ठ शीर्षक",
+ "PLACEHOLDER": "पोर्टल पृष्ठ शीर्षक"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "गृह पृष्ठ लिंक",
+ "PLACEHOLDER": "पोर्टल गृह पृष्ठ लिंक",
+ "ERROR": "मान्य URL प्रविष्ट गर्नुहोस्। होम पृष्ठ लिंक 'http://' वा 'https://' बाट सुरु हुनुपर्छ।"
+ },
+ "SLUG": {
+ "LABEL": "स्लग",
+ "PLACEHOLDER": "पोर्टल स्लग"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "प्रत्यक्ष च्याट विजेट",
+ "PLACEHOLDER": "प्रत्यक्ष च्याट विजेट चयन गर्नुहोस्",
+ "HELP_TEXT": "तपाईंको हेल्प सेन्टरमा देखिने प्रत्यक्ष च्याट विजेट चयन गर्नुहोस्",
+ "NONE_OPTION": "कुनै विजेट छैन"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "ब्रान्ड रंग"
+ },
+ "SAVE_CHANGES": "परिवर्तनहरू बचत गर्नुहोस्"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "अनुकूलित डोमेन",
+ "LABEL": "अनुकूलित डोमेन:",
+ "DESCRIPTION": "तपाईं आफ्नो पोर्टललाई अनुकूलित डोमेनमा होस्ट गर्न सक्नुहुन्छ। उदाहरणका लागि, यदि तपाईंको वेबसाइट yourdomain.com हो र तपाईंको पोर्टल docs.yourdomain.com मा उपलब्ध गराउन चाहनुहुन्छ भने, यस फिल्डमा त्यो प्रविष्ट गर्नुहोस्।",
+ "STATUS_DESCRIPTION": "तपाईंको कस्टम पोर्टल जाँचिएपछि तुरुन्तै काम गर्न थाल्नेछ।",
+ "PLACEHOLDER": "पोर्टल अनुकूलित डोमेन",
+ "EDIT_BUTTON": "सम्पादन गर्नुहोस्",
+ "ADD_BUTTON": "अनुकूलित डोमेन थप्नुहोस्",
+ "STATUS": {
+ "LIVE": "प्रत्यक्ष",
+ "PENDING": "जाँचको प्रतीक्षा",
+ "ERROR": "जाँच असफल भयो"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "अनुकूलित डोमेन थप्नुहोस्",
+ "EDIT_HEADER": "अनुकूलित डोमेन सम्पादन गर्नुहोस्",
+ "ADD_CONFIRM_BUTTON_LABEL": "डोमेन थप्नुहोस्",
+ "EDIT_CONFIRM_BUTTON_LABEL": "डोमेन अद्यावधिक गर्नुहोस्",
+ "LABEL": "अनुकूलित डोमेन",
+ "PLACEHOLDER": "पोर्टल अनुकूलित डोमेन",
+ "ERROR": "अनुकूलित डोमेन आवश्यक छ",
+ "FORMAT_ERROR": "कृपया मान्य डोमेन URL प्रविष्ट गर्नुहोस् जस्तै docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS कन्फिगरेसन",
+ "DESCRIPTION": "तपाईंको DNS प्रदायकको खातामा लगइन गर्नुहोस्, र उपडोमेनको लागि CNAME रेकर्ड chatwoot.help तर्फ थप्नुहोस्",
+ "COPY": "CNAME सफलतापूर्वक प्रतिलिपि गरियो",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "निर्देशनहरू पठाउनुहोस्",
+ "DESCRIPTION": "यदि तपाईंको विकास टोलीबाट कसैले यो चरण सम्हाल्न चाहनुहुन्छ भने, तल इमेल ठेगाना प्रविष्ट गर्नुहोस्, हामी आवश्यक निर्देशनहरू पठाउनेछौं।",
+ "PLACEHOLDER": "उनीहरूको इमेल प्रविष्ट गर्नुहोस्",
+ "ERROR": "मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्",
+ "SEND_BUTTON": "पठाउनुहोस्"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "{portalName} मेटाउनुहोस्",
+ "HEADER": "पोर्टल मेटाउनुहोस्",
+ "DESCRIPTION": "यो पोर्टल स्थायी रूपमा मेटाउनुहोस्। यो क्रिया अपरिवर्तनीय छ",
+ "DIALOG": {
+ "HEADER": "पक्का हुनुहुन्छ कि {portalName} मेटाउन चाहनुहुन्छ?",
+ "DESCRIPTION": "यो स्थायी क्रिया हो जुन उल्टाउन सकिँदैन।",
+ "CONFIRM_BUTTON_LABEL": "मेटाउनुहोस्"
+ }
+ },
+ "EDIT_CONFIGURATION": "कन्फिगरेसन सम्पादन गर्नुहोस्"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "हटाउनुहोस्"
+ },
+ "SAVE": "परिवर्तनहरू बचत गर्नुहोस्"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "पोर्टल सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "पोर्टल सिर्जना गर्न सकिएन"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "पोर्टल सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "पोर्टल अपडेट गर्न सकिएन"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "PDF दस्तावेज अपलोड गर्नुहोस्",
+ "DESCRIPTION": "AI प्रयोग गरेर FAQ स्वचालित रूपमा सिर्जना गर्न PDF दस्तावेज अपलोड गर्नुहोस्",
+ "DRAG_DROP_TEXT": "यहाँ तपाईंको PDF फाइल तान्नुहोस् वा चयन गर्न क्लिक गर्नुहोस्",
+ "SELECT_FILE": "PDF फाइल चयन गर्नुहोस्",
+ "ADDITIONAL_CONTEXT_LABEL": "थप सन्दर्भ (वैकल्पिक)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "FAQ सिर्जनाका लागि कुनै थप सन्दर्भ वा निर्देशनहरू प्रदान गर्नुहोस्...",
+ "UPLOADING": "अपलोड गर्दै...",
+ "UPLOAD": "अपलोड र प्रक्रिया गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "ERROR_INVALID_TYPE": "कृपया मान्य PDF फाइल चयन गर्नुहोस्",
+ "ERROR_FILE_TOO_LARGE": "फाइलको आकार 512MB भन्दा कम हुनुपर्छ",
+ "ERROR_UPLOAD_FAILED": "PDF अपलोड गर्न असफल भयो। कृपया पुन: प्रयास गर्नुहोस्।"
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF दस्तावेजहरू",
+ "DESCRIPTION": "अपलोड गरिएको PDF दस्तावेजहरू व्यवस्थापन गर्नुहोस् र तिनीहरूबाट FAQ सिर्जना गर्नुहोस्",
+ "UPLOAD_PDF": "PDF अपलोड गर्नुहोस्",
+ "UPLOAD_FIRST_PDF": "तपाईंको पहिलो PDF अपलोड गर्नुहोस्",
+ "UPLOADED_BY": "लेखक",
+ "GENERATE_FAQS": "FAQs सिर्जना गर्नुहोस्",
+ "GENERATING": "सिर्जना हुँदैछ...",
+ "CONFIRM_DELETE": "के तपाईं साँच्चै {filename} मेटाउन चाहनुहुन्छ?",
+ "EMPTY_STATE": {
+ "TITLE": "अहिलेसम्म कुनै PDF कागजात छैन",
+ "DESCRIPTION": "AI प्रयोग गरेर FAQs स्वचालित रूपमा सिर्जना गर्न PDF कागजातहरू अपलोड गर्नुहोस्"
+ },
+ "STATUS": {
+ "UPLOADED": "तयार",
+ "PROCESSING": "प्रक्रिया हुँदैछ",
+ "PROCESSED": "पूरा भयो",
+ "FAILED": "असफल"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "सामग्री सिर्जना",
+ "DESCRIPTION": "AI प्रयोग गरेर FAQ सामग्री स्वचालित रूपमा सिर्जना गर्न PDF कागजातहरू अपलोड गर्नुहोस्",
+ "UPLOAD_TITLE": "PDF कागजात अपलोड गर्नुहोस्",
+ "DRAG_DROP": "यहाँ तपाईंको PDF फाइल तान्नुहोस् वा चयन गर्न क्लिक गर्नुहोस्",
+ "SELECT_FILE": "PDF फाइल चयन गर्नुहोस्",
+ "UPLOADING": "कागजात प्रक्रिया हुँदैछ...",
+ "UPLOAD_SUCCESS": "कागजात सफलतापूर्वक प्रक्रिया भयो!",
+ "UPLOAD_ERROR": "कागजात अपलोड गर्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "INVALID_FILE_TYPE": "कृपया मान्य PDF फाइल चयन गर्नुहोस्",
+ "FILE_TOO_LARGE": "फाइलको आकार 512MB भन्दा कम हुनुपर्छ",
+ "GENERATED_CONTENT": "सिर्जना गरिएको FAQ सामग्री",
+ "PUBLISH_SELECTED": "चयनित प्रकाशित गर्नुहोस्",
+ "PUBLISHING": "प्रकाशन हुँदैछ...",
+ "FROM_DOCUMENT": "कागजातबाट",
+ "NO_CONTENT": "सिर्जना गरिएको सामग्री उपलब्ध छैन। सुरु गर्न PDF कागजात अपलोड गर्नुहोस्।",
+ "LOADING": "सिर्जना गरिएको सामग्री लोड हुँदैछ..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/inbox.json b/app/javascript/dashboard/i18n/locale/ne/inbox.json
index dcac5459f..385e9e4ce 100644
--- a/app/javascript/dashboard/i18n/locale/ne/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/ne/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Back"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
index 1e635b760..65c1c2719 100644
--- a/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/inboxMgmt.json
@@ -1,715 +1,1153 @@
{
"INBOX_MGMT": {
- "HEADER": "Inboxes",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "HEADER": "इनबक्स",
+ "DESCRIPTION": "च्यानल भनेको तपाईंको ग्राहकले तपाईं सँग अन्तरक्रिया गर्न रोजेको सञ्चार माध्यम हो। इनबक्स भनेको एउटा विशेष च्यानलका लागि अन्तरक्रियाहरू व्यवस्थापन गर्ने ठाउँ हो। यसमा इमेल, प्रत्यक्ष च्याट, र सामाजिक मिडिया जस्ता विभिन्न स्रोतहरूबाट सञ्चारहरू समावेश हुन सक्छ।।",
+ "LEARN_MORE": "इनबक्सहरू बारे थप जान्नुहोस्",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "इनबक्स खोज्नुहोस्...",
+ "NO_RESULTS": "तपाईंको खोजसँग मेल खाने इनबक्स फेला परेन",
+ "RECONNECTION_REQUIRED": "तपाईंको इनबक्स डिस्कनेक्ट भएको छ। पुनः अधिकृत नगरेसम्म तपाईं नयाँ सन्देशहरू प्राप्त गर्नुहुने छैन।",
+ "CLICK_TO_RECONNECT": "पुनः जडान गर्न यहाँ क्लिक गर्नुहोस्।",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "तपाईंको WhatsApp व्यवसाय दर्ता पूरा भएको छैन। पुन: जडान गर्नु अघि कृपया Meta Business Manager मा तपाईंको प्रदर्शन नाम स्थिति जाँच गर्नुहोस्।",
+ "COMPLETE_REGISTRATION": "दर्ता पूरा गर्नुहोस्",
"LIST": {
- "404": "There are no inboxes attached to this account."
+ "404": "यस खातासँग कुनै इनबक्स जोडिएका छैनन्।"
},
- "CREATE_FLOW": [
- {
- "title": "Choose Channel",
- "route": "settings_inbox_new",
- "body": "Choose the provider you want to integrate with Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "च्यानल छान्नुहोस्",
+ "BODY": "तपाईंले Chatwoot सँग एकीकृत गर्न चाहनुभएको प्रदायक छान्नुहोस्।"
},
- {
- "title": "Create Inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Authenticate your account and create an inbox."
+ "INBOX": {
+ "TITLE": "इनबक्स सिर्जना गर्नुहोस्",
+ "BODY": "आफ्नो खाता प्रमाणित गरी इनबक्स सिर्जना गर्नुहोस्।"
},
- {
- "title": "Add Agents",
- "route": "settings_inboxes_add_agents",
- "body": "Add agents to the created inbox."
+ "AGENT": {
+ "TITLE": "एजेन्टहरू थप्नुहोस्",
+ "BODY": "सिर्जना गरिएको इनबक्समा एजेन्टहरू थप्नुहोस्।"
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "You are all set to go!"
+ "FINISH": {
+ "TITLE": "भोइला!",
+ "BODY": "तपाईं तयार हुनुहुन्छ!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Enter your inbox name (eg: Acme Inc)",
- "ERROR": "Please enter a valid inbox name"
+ "LABEL": "इनबक्स नाम",
+ "PLACEHOLDER": "तपाईंको इनबक्स नाम प्रविष्ट गर्नुहोस् (जस्तै: Acme Inc)",
+ "ERROR": "कृपया मान्य इनबक्स नाम प्रविष्ट गर्नुहोस्।"
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACEHOLDER": "Enter your website name (eg: Acme Inc)"
+ "LABEL": "वेबसाइट नाम",
+ "PLACEHOLDER": "तपाईंको वेबसाइट नाम प्रविष्ट गर्नुहोस् (जस्तै: Acme Inc)"
},
"FB": {
- "HELP": "PS: By signing in, we only get access to your Page's messages. Your private messages can never be accessed by Chatwoot.",
- "CHOOSE_PAGE": "Choose Page",
- "CHOOSE_PLACEHOLDER": "Select a page from the list",
- "INBOX_NAME": "Inbox Name",
- "ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "HELP": "PS: साइन इन गर्दा, हामीले तपाईंको पेजका सन्देशहरूमा मात्र पहुँच पाउँछौं। तपाईंका निजी सन्देशहरू कहिल्यै Chatwoot द्वारा पहुँचयोग्य हुँदैनन्।",
+ "CHOOSE_PAGE": "पेज चयन गर्नु",
+ "CHOOSE_PLACEHOLDER": "सूचीबाट पेज चयन गर्नु",
+ "INBOX_NAME": "इनबक्स नाम",
+ "ADD_NAME": "तपाईंको इनबक्सको लागि नाम थप्नु",
+ "PICK_NAME": "तपाईंको इनबक्सको लागि नाम छान्नुहोस्",
+ "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 सन्देशहरू पठाउन/प्राप्त गर्न सक्नुहुने छैन।।"
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "TikTok सँग जारी राख्नुहोस्",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "तपाईंको TikTok प्रोफाइल जडान गर्नुहोस्",
+ "HELP": "तपाईंको TikTok प्रोफाइललाई च्यानलको रूपमा थप्न, 'TikTok सँग जारी राख्नुहोस्' मा क्लिक गरेर प्रमाणित गर्नु आवश्यक छ ",
+ "ERROR_MESSAGE": "TikTok सँग जडान गर्दा त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्",
+ "ERROR_AUTH": "TikTok सँग जडान गर्दा त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्"
},
"TWITTER": {
- "HELP": "To add your Twitter profile as a channel, you need to authenticate your Twitter Profile by clicking on 'Sign in with Twitter' ",
- "ERROR_MESSAGE": "There was an error connecting to Twitter, please try again",
+ "HELP": "तपाईंको Twitter प्रोफाइललाई च्यानलको रूपमा थप्न, तपाईंले 'Sign in with Twitter' मा क्लिक गरेर आफ्नो Twitter प्रोफाइल प्रमाणित गर्न आवश्यक छ ",
+ "ERROR_MESSAGE": "Twitter सँग जडान गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
"TWEETS": {
- "ENABLE": "Create conversations from mentioned Tweets"
+ "ENABLE": "उल्लेखित ट्वीटहरूबाट कुराकानी सिर्जना गर्नुहोस्"
}
},
"WEBSITE_CHANNEL": {
- "TITLE": "Website channel",
- "DESC": "Create a channel for your website and start supporting your customers via our website widget.",
- "LOADING_MESSAGE": "Creating Website Support Channel",
+ "TITLE": "वेबसाइट च्यानल",
+ "DESC": "तपाईंको वेबसाइटको लागि च्यानल सिर्जना गर्नुहोस् र हाम्रो वेबसाइट विजेट मार्फत ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
+ "LOADING_MESSAGE": "वेबसाइट समर्थन च्यानल सिर्जना गर्दै",
"CHANNEL_AVATAR": {
- "LABEL": "Channel Avatar"
+ "LABEL": "च्यानल अवतार"
},
"CHANNEL_WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
- "ERROR": "Please enter a valid URL"
+ "LABEL": "वेबहुक URL",
+ "PLACEHOLDER": "कृपया तपाईंको वेबहुक URL प्रविष्ट गर्नुहोस्",
+ "ERROR": "कृपया मान्य URL प्रविष्ट गर्नुहोस्"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
- "LABEL": "Website Domain",
- "PLACEHOLDER": "Enter your website domain (eg: acme.com)"
+ "LABEL": "वेबसाइट डोमेन",
+ "PLACEHOLDER": "तपाईंको वेबसाइट डोमेन प्रविष्ट गर्नुहोस् (जस्तै: acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Welcome Heading",
- "PLACEHOLDER": "Hi there !"
+ "LABEL": "स्वागत शीर्षक",
+ "PLACEHOLDER": "नमस्ते!"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACEHOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "स्वागत ट्यागलाइन",
+ "PLACEHOLDER": "हामीसँग जडान गर्न सजिलो बनाउँछौं। हामीलाई केही सोध्नुहोस्, वा तपाईंको प्रतिक्रिया साझा गर्नुहोस्।"
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Channel greeting message",
- "PLACEHOLDER": "Acme Inc typically replies in a few hours."
+ "LABEL": "च्यानल स्वागत सन्देश",
+ "PLACEHOLDER": "Acme Inc सामान्यतया केही घण्टामा जवाफ दिन्छ।"
},
"CHANNEL_GREETING_TOGGLE": {
- "LABEL": "Enable channel greeting",
+ "LABEL": "च्यानल स्वागत सक्षम गर्नु",
"HELP_TEXT": "Automatically send a greeting message when a new conversation is created.",
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "सक्षम",
+ "DISABLED": "असक्षम"
},
"REPLY_TIME": {
- "TITLE": "Set Reply time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day",
- "HELP_TEXT": "This reply time will be displayed on the live chat widget"
+ "TITLE": "उत्तर समय सेट गर्नु",
+ "IN_A_FEW_MINUTES": "केही मिनेटमा",
+ "IN_A_FEW_HOURS": "केही घण्टामा",
+ "IN_A_DAY": "एक दिनमा",
+ "HELP_TEXT": "यो उत्तर समय प्रत्यक्ष च्याट विजेटमा देखाइनेछ"
},
"WIDGET_COLOR": {
- "LABEL": "Widget Color",
- "PLACEHOLDER": "Update the widget color used in widget"
+ "LABEL": "विजेट रंग",
+ "PLACEHOLDER": "विजेटमा प्रयोग हुने रंग अपडेट गर्नुहोस्"
},
- "SUBMIT_BUTTON": "Create inbox",
+ "SUBMIT_BUTTON": "इनबक्स सिर्जना गर्नुहोस्",
"API": {
- "ERROR_MESSAGE": "We were not able to create a website channel, please try again"
+ "ERROR_MESSAGE": "हामी वेबसाइट च्यानल सिर्जना गर्न सकिएन, कृपया पुन: प्रयास गर्नुहोस्।"
}
},
"TWILIO": {
- "TITLE": "Twilio SMS/WhatsApp Channel",
- "DESC": "Integrate Twilio and start supporting your customers via SMS or WhatsApp.",
+ "TITLE": "Twilio SMS/WhatsApp च्यानल",
+ "DESC": "Twilio एकीकृत गर्नुहोस् र SMS वा WhatsApp मार्फत आफ्ना ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
"ACCOUNT_SID": {
- "LABEL": "Account SID",
- "PLACEHOLDER": "Please enter your Twilio Account SID",
- "ERROR": "This field is required"
+ "LABEL": "खाता SID",
+ "PLACEHOLDER": "कृपया तपाईंको Twilio खाता SID प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"API_KEY": {
- "USE_API_KEY": "Use API Key Authentication",
- "LABEL": "API Key SID",
- "PLACEHOLDER": "Please enter your API Key SID",
- "ERROR": "This field is required"
+ "USE_API_KEY": "API कुञ्जी प्रमाणीकरण प्रयोग गर्नुहोस्",
+ "LABEL": "API कुञ्जी SID",
+ "PLACEHOLDER": "कृपया तपाईंको API कुञ्जी SID प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"API_KEY_SECRET": {
- "LABEL": "API Key Secret",
- "PLACEHOLDER": "Please enter your API Key Secret",
- "ERROR": "This field is required"
+ "LABEL": "API कुञ्जी गोप्य",
+ "PLACEHOLDER": "कृपया तपाईंको API कुञ्जी गोप्य प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "Messaging Service SID",
- "PLACEHOLDER": "Please enter your Twilio Messaging Service SID",
- "ERROR": "This field is required",
- "USE_MESSAGING_SERVICE": "Use a Twilio Messaging Service"
+ "LABEL": "मेसेजिङ सेवा SID",
+ "PLACEHOLDER": "कृपया आफ्नो Twilio मेसेजिङ सेवा SID प्रविष्ट गर्नुहोस्।",
+ "ERROR": "यो फिल्ड आवश्यक छ",
+ "USE_MESSAGING_SERVICE": "Twilio मेसेजिङ सेवा प्रयोग गर्नुहोस्"
},
"CHANNEL_TYPE": {
- "LABEL": "Channel Type",
- "ERROR": "Please select your Channel Type"
+ "LABEL": "च्यानल प्रकार",
+ "ERROR": "कृपया तपाईंको च्यानल प्रकार चयन गर्नु"
},
"AUTH_TOKEN": {
- "LABEL": "Auth Token",
- "PLACEHOLDER": "Please enter your Twilio Auth Token",
- "ERROR": "This field is required"
+ "LABEL": "प्रमाणीकरण टोकन",
+ "PLACEHOLDER": "कृपया तपाईंको Twilio प्रमाणीकरण टोकन प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"CHANNEL_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "इनबक्स नाम",
+ "PLACEHOLDER": "कृपया इनबक्स नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "फोन नम्बर",
+ "PLACEHOLDER": "कृपया त्यो फोन नम्बर प्रविष्ट गर्नुहोस् जसबाट सन्देश पठाइनेछ।",
+ "ERROR": "कृपया `+` चिन्हले सुरु हुने र कुनै खाली ठाउँ नभएको मान्य फोन नम्बर प्रदान गर्नुहोस्।"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Twilio with the URL mentioned here."
+ "TITLE": "कलब्याक URL",
+ "SUBTITLE": "तपाईंले Twilio मा सन्देश कलब्याक URL यहाँ उल्लेखित URL सँग कन्फिगर गर्नु पर्छ।"
},
- "SUBMIT_BUTTON": "Create Twilio Channel",
+ "SUBMIT_BUTTON": "Twilio च्यानल सिर्जना गर्नुहोस्",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Twilio credentials, please try again"
+ "ERROR_MESSAGE": "हामीले Twilio प्रमाणपत्रहरू प्रमाणित गर्न सकेनौं, कृपया फेरि प्रयास गर्नुहोस्"
}
},
"SMS": {
- "TITLE": "SMS Channel",
- "DESC": "Start supporting your customers via SMS.",
+ "TITLE": "SMS च्यानल",
+ "DESC": "SMS मार्फत आफ्ना ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API प्रदायक",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "We were not able to save the SMS channel"
+ "ERROR_MESSAGE": "हामी SMS च्यानल सुरक्षित गर्न सकिएन।"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Account ID",
- "PLACEHOLDER": "Please enter your Bandwidth Account ID",
- "ERROR": "This field is required"
+ "LABEL": "खाता ID",
+ "PLACEHOLDER": "कृपया आफ्नो Bandwidth खाता ID प्रविष्ट गर्नुहोस्।",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"API_KEY": {
- "LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
- "ERROR": "This field is required"
+ "LABEL": "API कुञ्जी",
+ "PLACEHOLDER": "कृपया तपाईंको Bandwidth API कुञ्जी प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"API_SECRET": {
- "LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
- "ERROR": "This field is required"
+ "LABEL": "API गोप्य कुञ्जी",
+ "PLACEHOLDER": "कृपया तपाईंको Bandwidth API गोप्य प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"APPLICATION_ID": {
- "LABEL": "Application ID",
- "PLACEHOLDER": "Please enter your Bandwidth Application ID",
- "ERROR": "This field is required"
+ "LABEL": "अनुप्रयोग ID",
+ "PLACEHOLDER": "कृपया आफ्नो Bandwidth अनुप्रयोग ID प्रविष्ट गर्नुहोस्।",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter a inbox name",
- "ERROR": "This field is required"
+ "LABEL": "इनबक्स नाम",
+ "PLACEHOLDER": "कृपया इनबक्स नाम प्रविष्ट गर्नुहोस्।",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "फोन नम्बर",
+ "PLACEHOLDER": "कृपया त्यो फोन नम्बर प्रविष्ट गर्नुहोस् जसबाट सन्देश पठाइनेछ।",
+ "ERROR": "कृपया `+` चिन्हले सुरु हुने र कुनै खाली ठाउँ नभएको मान्य फोन नम्बर प्रदान गर्नुहोस्।"
},
- "SUBMIT_BUTTON": "Create Bandwidth Channel",
+ "SUBMIT_BUTTON": "Bandwidth च्यानल सिर्जना गर्नुहोस्।",
"API": {
- "ERROR_MESSAGE": "We were not able to authenticate Bandwidth credentials, please try again"
+ "ERROR_MESSAGE": "हामी Bandwidth प्रमाणपत्रहरू प्रमाणित गर्न सकिएन, कृपया पुन: प्रयास गर्नुहोस्।"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the message callback URL in Bandwidth with the URL mentioned here."
+ "TITLE": "कलब्याक URL",
+ "SUBTITLE": "Bandwidth मा सन्देश कलब्याक URL यहाँ उल्लेख गरिएको URL सँग कन्फिगर गर्नुपर्छ।"
}
}
},
"WHATSAPP": {
- "TITLE": "WhatsApp Channel",
- "DESC": "Start supporting your customers via WhatsApp.",
+ "TITLE": "WhatsApp च्यानल",
+ "DESC": "WhatsApp मार्फत आफ्ना ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "API प्रदायक",
+ "WHATSAPP_EMBEDDED": "WhatsApp व्यवसाय",
"TWILIO": "Twilio",
- "WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD": "WhatsApp क्लाउड",
+ "WHATSAPP_CLOUD_DESC": "Meta मार्फत छिटो सेटअप",
+ "TWILIO_DESC": "Twilio प्रमाणपत्रमार्फत जडान गर्नुहोस्",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "आफ्नो API प्रदायक छान्नुहोस्",
+ "DESCRIPTION": "आफ्नो WhatsApp प्रदायक छान्नुहोस्। तपाईं सिधै Meta मार्फत जडान गर्न सक्नुहुन्छ जसलाई कुनै सेटअप आवश्यक पर्दैन, वा Twilio मार्फत आफ्नो खाता प्रमाणपत्र प्रयोग गरी जडान गर्न सक्नुहुन्छ।"
+ },
"INBOX_NAME": {
- "LABEL": "Inbox Name",
- "PLACEHOLDER": "Please enter an inbox name",
- "ERROR": "This field is required"
+ "LABEL": "इनबक्स नाम",
+ "PLACEHOLDER": "कृपया इनबक्स नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"PHONE_NUMBER": {
- "LABEL": "Phone number",
- "PLACEHOLDER": "Please enter the phone number from which message will be sent.",
- "ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
+ "LABEL": "फोन नम्बर",
+ "PLACEHOLDER": "कृपया त्यो फोन नम्बर प्रविष्ट गर्नुहोस् जसबाट सन्देश पठाइनेछ।",
+ "ERROR": "कृपया `+` चिन्हले सुरु हुने र कुनै खाली ठाउँ नभएको मान्य फोन नम्बर प्रदान गर्नुहोस्।"
},
"PHONE_NUMBER_ID": {
- "LABEL": "Phone number ID",
- "PLACEHOLDER": "Please enter the Phone number ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "फोन नम्बर ID",
+ "PLACEHOLDER": "कृपया Facebook डेभलपर ड्यासबोर्डबाट प्राप्त फोन नम्बर ID प्रविष्ट गर्नुहोस्।",
+ "ERROR": "कृपया मान्य मान प्रविष्ट गर्नुहोस्।"
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "Business Account ID",
- "PLACEHOLDER": "Please enter the Business Account ID obtained from Facebook developer dashboard.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "व्यवसाय खाता ID",
+ "PLACEHOLDER": "कृपया Facebook डेभलपर ड्यासबोर्डबाट प्राप्त व्यवसाय खाता ID प्रविष्ट गर्नुहोस्।",
+ "ERROR": "कृपया मान्य मान प्रविष्ट गर्नुहोस्।"
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
- "ERROR": "Please enter a valid value."
+ "LABEL": "Webhook प्रमाणिकरण टोकन",
+ "PLACEHOLDER": "Facebook वेबहुकहरूको लागि कन्फिगर गर्न चाहनुभएको प्रमाणीकरण टोकन प्रविष्ट गर्नुहोस्।",
+ "ERROR": "कृपया मान्य मान प्रविष्ट गर्नुहोस्।"
},
"API_KEY": {
- "LABEL": "API key",
- "SUBTITLE": "Configure the WhatsApp API key.",
- "PLACEHOLDER": "API key",
- "ERROR": "Please enter a valid value."
+ "LABEL": "API कुञ्जी",
+ "SUBTITLE": "WhatsApp API कुञ्जी कन्फिगर गर्नुहोस्।",
+ "PLACEHOLDER": "API कुञ्जी",
+ "ERROR": "कृपया मान्य मान प्रविष्ट गर्नुहोस्।"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL and the verification token in the Facebook Developer portal with the values shown below.",
- "WEBHOOK_URL": "Webhook URL",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
+ "TITLE": "कलब्याक URL",
+ "SUBTITLE": "तपाईंले Facebook Developer पोर्टलमा तल देखाइएका मानहरूसँग वेबहुक URL र प्रमाणीकरण टोकन कन्फिगर गर्नुपर्छ।",
+ "WEBHOOK_URL": "वेबहुक URL",
+ "WEBHOOK_VERIFICATION_TOKEN": "वेबहुक प्रमाणीकरण टोकन"
+ },
+ "SUBMIT_BUTTON": "WhatsApp च्यानल सिर्जना गर्नुहोस्",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Meta सँग छिटो सेटअप",
+ "DESC": "WhatsApp Embedded Signup प्रवाह प्रयोग गरेर नयाँ नम्बरहरू छिटो जडान गर्नुहोस्। तपाईंलाई तपाईंको WhatsApp व्यवसाय खातामा लगइन गर्न Meta मा पुनर्निर्देशित गरिनेछ। प्रशासक पहुँचले सेटअपलाई सहज र सजिलो बनाउँछ।",
+ "BENEFITS": {
+ "TITLE": "एम्बेडेड साइनअपका फाइदाहरू:",
+ "EASY_SETUP": "कुनै म्यानुअल कन्फिगरेसन आवश्यक छैन",
+ "SECURE_AUTH": "सुरक्षित OAuth आधारित प्रमाणीकरण",
+ "AUTO_CONFIG": "स्वचालित वेबहुक र फोन नम्बर कन्फिगरेसन"
+ },
+ "LEARN_MORE": {
+ "TEXT": "एकीकृत साइनअप, मूल्य निर्धारण, र सीमाहरूको बारेमा थप जान्न {link} भ्रमण गर्नुहोस्।",
+ "LINK_TEXT": "यो लिंक"
+ },
+ "SUBMIT_BUTTON": "WhatsApp व्यवसायसँग जडान गर्नुहोस्",
+ "AUTH_PROCESSING": "Meta सँग प्रमाणिकरण हुँदैछ",
+ "WAITING_FOR_BUSINESS_INFO": "कृपया Meta विन्डोमा व्यवसाय सेटअप पूरा गर्नुहोस्...",
+ "PROCESSING": "तपाईंको WhatsApp व्यवसाय खाता सेटअप गर्दै",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Facebook SDK लोड हुँदैछ...",
+ "CANCELLED": "WhatsApp साइनअप रद्द गरियो",
+ "SUCCESS_TITLE": "WhatsApp व्यवसाय खाता जडान भयो!",
+ "WAITING_FOR_AUTH": "प्रमाणिकरणको प्रतीक्षा गर्दै...",
+ "INVALID_BUSINESS_DATA": "Facebook बाट अवैध व्यवसाय डेटा प्राप्त भयो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "SIGNUP_ERROR": "साइनअप त्रुटि भयो",
+ "AUTH_NOT_COMPLETED": "प्रमाणिकरण पूरा भएन। कृपया प्रक्रिया पुनः सुरु गर्नुहोस्।",
+ "SUCCESS_FALLBACK": "WhatsApp व्यवसाय खाता सफलतापूर्वक कन्फिगर गरियो",
+ "MANUAL_FALLBACK": "यदि तपाईंको नम्बर पहिले नै WhatsApp व्यवसाय प्लेटफर्म (API) सँग जडान गरिएको छ, वा तपाईं प्रविधि प्रदायक हुनुहुन्छ र आफ्नो नम्बर अनबोर्ड गर्दै हुनुहुन्छ भने, कृपया {link} प्रवाह प्रयोग गर्नुहोस्",
+ "MANUAL_LINK_TEXT": "म्यानुअल सेटअप प्रवाह",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
},
- "SUBMIT_BUTTON": "Create WhatsApp Channel",
"API": {
- "ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
+ "ERROR_MESSAGE": "हामी WhatsApp च्यानल सुरक्षित गर्न सकेनौं"
+ }
+ },
+ "VOICE": {
+ "TITLE": "भ्वाइस च्यानल",
+ "DESC": "Twilio Voice एकीकृत गरी फोन कलमार्फत आफ्ना ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
+ "PHONE_NUMBER": {
+ "LABEL": "फोन नम्बर",
+ "PLACEHOLDER": "आफ्नो फोन नम्बर प्रविष्ट गर्नुहोस् (जस्तै +1234567890)",
+ "ERROR": "कृपया E.164 ढाँचामा मान्य फोन नम्बर प्रदान गर्नुहोस् (जस्तै +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "खाता SID",
+ "PLACEHOLDER": "आफ्नो Twilio खाता SID प्रविष्ट गर्नुहोस्",
+ "REQUIRED": "खाता SID आवश्यक छ"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "प्रमाणीकरण टोकन",
+ "PLACEHOLDER": "आफ्नो Twilio प्रमाणीकरण टोकन प्रविष्ट गर्नुहोस्",
+ "REQUIRED": "प्रमाणीकरण टोकन आवश्यक छ"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API कुञ्जी SID",
+ "PLACEHOLDER": "आफ्नो Twilio API कुञ्जी SID प्रविष्ट गर्नुहोस्",
+ "REQUIRED": "API कुञ्जी SID आवश्यक छ"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API कुञ्जी गोप्य",
+ "PLACEHOLDER": "आफ्नो Twilio API कुञ्जी गोप्य प्रविष्ट गर्नुहोस्",
+ "REQUIRED": "API कुञ्जी गोप्य आवश्यक छ"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "यो URL लाई तपाईंको Twilio फोन नम्बर र TwiML एपमा Voice URL को रूपमा कन्फिगर गर्नुहोस्।",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "यो URL लाई तपाईंको Twilio फोन नम्बरमा Status Callback URL को रूपमा कन्फिगर गर्नुहोस्।"
+ },
+ "SUBMIT_BUTTON": "भ्वाइस च्यानल सिर्जना गर्नुहोस्",
+ "API": {
+ "ERROR_MESSAGE": "हामी भ्वाइस च्यानल सिर्जना गर्न सक्षम भएनौं"
}
},
"API_CHANNEL": {
- "TITLE": "API Channel",
- "DESC": "Integrate with API channel and start supporting your customers.",
+ "TITLE": "API च्यानल",
+ "DESC": "API च्यानलसँग एकीकृत गर्नु र तपाईंका ग्राहकहरूलाई समर्थन गर्न सुरु गर्नु।",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "च्यानल नाम",
+ "PLACEHOLDER": "कृपया च्यानल नाम प्रविष्ट गर्नु",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"WEBHOOK_URL": {
- "LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
- "PLACEHOLDER": "Webhook URL"
+ "LABEL": "वेबहुक URL",
+ "SUBTITLE": "तपाईंले घटनाहरूमा कलब्याकहरू प्राप्त गर्न चाहनुभएको URL कन्फिगर गर्नुहोस्।",
+ "PLACEHOLDER": "वेबहुक URL"
},
- "SUBMIT_BUTTON": "Create API Channel",
+ "SUBMIT_BUTTON": "API च्यानल सिर्जना गर्नु",
"API": {
- "ERROR_MESSAGE": "We were not able to save the api channel"
+ "ERROR_MESSAGE": "हामीले API च्यानल सुरक्षित गर्न सकेनौं"
}
},
"EMAIL_CHANNEL": {
- "TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "TITLE": "इमेल च्यानल",
+ "DESC": "तपाईंको इमेल इनबक्स एकीकृत गर्नुहोस्।",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "च्यानल नाम",
+ "PLACEHOLDER": "कृपया च्यानल नाम प्रविष्ट गर्नु",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"EMAIL": {
- "LABEL": "Email",
+ "LABEL": "इमेल",
"SUBTITLE": "Email where your customers sends you support tickets",
- "PLACEHOLDER": "Email"
+ "PLACEHOLDER": "इमेल"
},
- "SUBMIT_BUTTON": "Create Email Channel",
+ "SUBMIT_BUTTON": "इमेल च्यानल सिर्जना गर्नु",
"API": {
- "ERROR_MESSAGE": "We were not able to save the email channel"
+ "ERROR_MESSAGE": "हामीले इमेल च्यानल सुरक्षित गर्न सकेनौं"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "तपाईंको इमेल इनबक्स सफलतापूर्वक सिर्जना गरिएको छ! SMTP र IMAP प्रमाणपत्रहरू कन्फिगर गर्न आवश्यक छ ताकि इमेलहरू पठाउन र प्राप्त गर्न सकियोस्। यी सेटिङहरू बिना कुनै इमेल प्रक्रिया गरिने छैन।",
+ "FORWARDING_ADDRESS_LABEL": "इमेलहरू यस ठेगानामा अग्रेषित गर्नुहोस्:",
+ "CONFIGURE_SMTP_IMAP_LINK": "यहाँ क्लिक गर्नुहोस्",
+ "CONFIGURE_SMTP_IMAP_TEXT": " IMAP र SMTP सेटिङहरू कन्फिगर गर्न"
},
"LINE_CHANNEL": {
- "TITLE": "LINE Channel",
- "DESC": "Integrate with LINE channel and start supporting your customers.",
+ "TITLE": "LINE च्यानल",
+ "DESC": "LINE च्यानलसँग एकीकृत गर्नुहोस् र तपाईंका ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
"CHANNEL_NAME": {
- "LABEL": "Channel Name",
- "PLACEHOLDER": "Please enter a channel name",
- "ERROR": "This field is required"
+ "LABEL": "च्यानल नाम",
+ "PLACEHOLDER": "कृपया च्यानल नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "यो फिल्ड आवश्यक छ"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Channel ID",
- "PLACEHOLDER": "LINE Channel ID"
+ "LABEL": "LINE च्यानल ID",
+ "PLACEHOLDER": "LINE च्यानल ID"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Channel Secret",
- "PLACEHOLDER": "LINE Channel Secret"
+ "LABEL": "LINE च्यानल गोप्य कुञ्जी",
+ "PLACEHOLDER": "LINE च्यानल गोप्य कुञ्जी"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Channel Token",
- "PLACEHOLDER": "LINE Channel Token"
+ "LABEL": "LINE च्यानल टोकन",
+ "PLACEHOLDER": "LINE च्यानल टोकन"
},
- "SUBMIT_BUTTON": "Create LINE Channel",
+ "SUBMIT_BUTTON": "LINE च्यानल सिर्जना गर्नुहोस्",
"API": {
- "ERROR_MESSAGE": "We were not able to save the LINE channel"
+ "ERROR_MESSAGE": "हामी LINE च्यानल सुरक्षित गर्न सकेनौं"
},
"API_CALLBACK": {
- "TITLE": "Callback URL",
- "SUBTITLE": "You have to configure the webhook URL in LINE application with the URL mentioned here."
+ "TITLE": "कलब्याक URL",
+ "SUBTITLE": "यहाँ उल्लेख गरिएको URL सँग LINE एपमा वेबहुक URL कन्फिगर गर्नुपर्छ।"
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Telegram Channel",
- "DESC": "Integrate with Telegram channel and start supporting your customers.",
+ "TITLE": "Telegram च्यानल",
+ "DESC": "Telegram च्यानलसँग एकीकृत गर्नुहोस् र तपाईंका ग्राहकहरूलाई समर्थन गर्न सुरु गर्नुहोस्।",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure the bot token you have obtained from Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "बोट टोकन",
+ "SUBTITLE": "Telegram BotFather बाट प्राप्त बोट टोकन कन्फिगर गर्नुहोस्।",
+ "PLACEHOLDER": "बोट टोकन"
},
- "SUBMIT_BUTTON": "Create Telegram Channel",
+ "SUBMIT_BUTTON": "Telegram च्यानल सिर्जना गर्नुहोस्",
"API": {
- "ERROR_MESSAGE": "We were not able to save the telegram channel"
+ "ERROR_MESSAGE": "हामीले Telegram च्यानल सुरक्षित गर्न सकेनौं"
}
},
"AUTH": {
- "TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "TITLE": "च्यानल छान्नुहोस्",
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "सेटअप पूरा गर्नुहोस्",
+ "TITLE_FINISH": "भोइला!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "वेबसाइट",
+ "DESCRIPTION": "लाइभ-च्याट विजेट सिर्जना गर्नुहोस्"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "तपाईंको Facebook पृष्ठ जडान गर्नुहोस्"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "WhatsApp मा तपाईंका ग्राहकहरूलाई समर्थन गर्नुहोस्"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "इमेल",
+ "DESCRIPTION": "Gmail, Outlook वा अन्य प्रदायकहरूसँग जडान गर्नुहोस्"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Twilio वा bandwidth सँग SMS च्यानल एकीकृत गर्नुहोस्"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "हाम्रो API प्रयोग गरेर कस्टम च्यानल बनाउनुहोस्"
+ },
+ "TELEGRAM": {
+ "TITLE": "टेलिग्राम",
+ "DESCRIPTION": "Bot टोकन प्रयोग गरेर Telegram च्यानल कन्फिगर गर्नुहोस्"
+ },
+ "LINE": {
+ "TITLE": "लाइन",
+ "DESCRIPTION": "तपाईंको Line च्यानल एकीकृत गर्नुहोस्"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "तपाईंको Instagram खाता जडान गर्नुहोस्"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "तपाईंको TikTok खाता जडान गर्नुहोस्"
+ },
+ "VOICE": {
+ "TITLE": "भ्वाइस",
+ "DESCRIPTION": "Twilio Voice सँग एकीकृत गर्नुहोस्"
+ }
+ }
},
"AGENTS": {
- "TITLE": "Agents",
- "DESC": "Here you can add agents to manage your newly created inbox. Only these selected agents will have access to your inbox. Agents which are not part of this inbox will not be able to see or respond to messages in this inbox when they login.
PS: As an administrator, if you need access to all inboxes, you should add yourself as agent to all inboxes that you create.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
- "PICK_AGENTS": "Pick agents for the inbox"
+ "TITLE": "एजेन्टहरू",
+ "DESC": "यहाँ तपाईंले नयाँ सिर्जना गरिएको इनबक्स व्यवस्थापन गर्न एजेन्टहरू थप्न सक्नुहुन्छ। केवल यी चयनित एजेन्टहरूले तपाईंको इनबक्समा पहुँच पाउनेछन्। यस इनबक्सको भाग नभएका एजेन्टहरूले लगइन गर्दा सन्देशहरू हेर्न वा जवाफ दिन सक्दैनन्।
PS: व्यवस्थापकको रूपमा, यदि तपाईंलाई सबै इनबक्सहरूमा पहुँच चाहिन्छ भने, तपाईंले आफैलाई सबै सिर्जना गरिएका इनबक्सहरूमा एजेन्टको रूपमा थप्नुपर्छ।",
+ "VALIDATION_ERROR": "तपाईंको नयाँ इनबक्समा कम्तीमा एक एजेन्ट थप्नुहोस्",
+ "PICK_AGENTS": "इनबक्सका लागि एजेन्टहरू छान्नु"
},
"DETAILS": {
- "TITLE": "Inbox Details",
- "DESC": "From the dropdown below, select the Facebook Page you want to connect to Chatwoot. You can also give a custom name to your inbox for better identification."
+ "TITLE": "इनबक्स विवरण",
+ "DESC": "तलको ड्रपडाउनबाट, तपाईंले Chatwoot सँग जडान गर्न चाहनुभएको Facebook पेज चयन गर्नुहोस्। तपाईंले आफ्नो इनबक्सलाई राम्रो पहिचानको लागि अनुकूल नाम पनि दिन सक्नुहुन्छ।"
},
"FINISH": {
- "TITLE": "Nailed It!",
- "DESC": "You have successfully finished integrating your Facebook Page with Chatwoot. Next time a customer messages your Page, the conversation will automatically appear on your inbox.
We are also providing you with a widget script that you can easily add to your website. Once this is live on your website, customers can message you right from your website without the help of any external tool and the conversation will appear right here, on Chatwoot.
Cool, huh? Well, we sure try to be :)"
+ "TITLE": "सफल भयो!",
+ "DESC": "तपाईंले सफलतापूर्वक आफ्नो Facebook पेजलाई Chatwoot सँग एकीकृत गर्न सक्नुभयो। अर्को पटक ग्राहकले तपाईंको पेजमा सन्देश पठाउँदा, संवाद स्वचालित रूपमा तपाईंको इनबक्समा देखिनेछ।
हामी तपाईंलाई एउटा विजेट स्क्रिप्ट पनि प्रदान गर्दैछौं जुन तपाईं सजिलै आफ्नो वेबसाइटमा थप्न सक्नुहुन्छ। यो तपाईंको वेबसाइटमा सक्रिय भएपछि, ग्राहकहरूले कुनै बाह्य उपकरणको मद्दत बिना नै तपाईंलाई सिधै वेबसाइटबाट सन्देश पठाउन सक्नेछन् र संवाद यहाँ, Chatwoot मा देखिनेछ।
शानदार, होइन? हामी यस्तै प्रयास गर्छौं :)"
},
"EMAIL_PROVIDER": {
- "TITLE": "Select your email provider",
- "DESCRIPTION": "Select an email provider from the list below. If you don't see your email provider in the list, you can select the other provider option and provide the IMAP and SMTP Credentials."
+ "TITLE": "तपाईंको इमेल प्रदायक चयन गर्नुहोस्।",
+ "DESCRIPTION": "तलको सूचीबाट इमेल प्रदायक चयन गर्नुहोस्। यदि तपाईंको इमेल प्रदायक सूचीमा छैन भने, तपाईं अन्य प्रदायक विकल्प चयन गरी IMAP र SMTP प्रमाणपत्रहरू प्रदान गर्न सक्नुहुन्छ।"
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
- "EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
- "ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ "TITLE": "Microsoft इमेल",
+ "DESCRIPTION": "सुरु गर्न Microsoft सँग साइन इन बटनमा क्लिक गर्नुहोस्। तपाईंलाई इमेल साइन इन पृष्ठमा पुनर्निर्देशित गरिनेछ। अनुरोध गरिएको अनुमति स्वीकार गरेपछि, तपाईंलाई इनबक्स सिर्जना चरणमा पुनः पठाइनेछ।",
+ "EMAIL_PLACEHOLDER": "इमेल ठेगाना प्रविष्ट गर्नुहोस्।",
+ "SIGN_IN": "Microsoft सँग साइन इन गर्नुहोस्",
+ "ERROR_MESSAGE": "Microsoft सँग जडान गर्दा त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्।"
+ },
+ "GOOGLE": {
+ "TITLE": "Google इमेल",
+ "DESCRIPTION": "सुरु गर्नका लागि Google सँग साइन इन बटनमा क्लिक गर्नुहोस्। तपाईंलाई इमेल साइन इन पृष्ठमा पुनःनिर्देशित गरिनेछ। अनुरोध गरिएको अनुमति स्वीकार गरेपछि, तपाईंलाई इनबक्स सिर्जना चरणमा पुनःनिर्देशित गरिनेछ।",
+ "SIGN_IN": "Google सँग साइन इन गर्नुहोस्",
+ "EMAIL_PLACEHOLDER": "इमेल ठेगाना प्रविष्ट गर्नुहोस्",
+ "ERROR_MESSAGE": "Google सँग जडान गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
}
},
"DETAILS": {
- "LOADING_FB": "Authenticating you with Facebook...",
- "ERROR_FB_AUTH": "Something went wrong, Please refresh page...",
- "ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
- "CREATING_CHANNEL": "Creating your Inbox...",
- "TITLE": "Configure Inbox Details",
+ "LOADING_FB": "Facebook सँग तपाईंलाई प्रमाणित गर्दै...",
+ "ERROR_FB_LOADING": "Facebook SDK लोड गर्दा त्रुटि। कृपया कुनै पनि विज्ञापन अवरोधकहरू अक्षम गर्नुहोस् र फरक ब्राउजरबाट पुनः प्रयास गर्नुहोस्।",
+ "ERROR_FB_AUTH": "केही समस्या भयो, कृपया पृष्ठ रिफ्रेश गर्नुहोस्...",
+ "ERROR_FB_UNAUTHORIZED": "तपाईंलाई यो कार्य गर्न अनुमति छैन। ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "कृपया सुनिश्चित गर्नुहोस् कि तपाईंलाई Facebook पृष्ठमा पूर्ण नियन्त्रणको पहुँच छ। Facebook भूमिकाहरूको बारेमा थप पढ्न सक्नुहुन्छ यहाँ।",
+ "CREATING_CHANNEL": "तपाईंको इनबक्स सिर्जना गर्दै...",
+ "TITLE": "इनबक्स विवरण कन्फिगर गर्नुहोस्",
"DESC": ""
},
"AGENTS": {
- "BUTTON_TEXT": "Add agents",
- "ADD_AGENTS": "Adding Agents to your Inbox..."
+ "BUTTON_TEXT": "एजेन्टहरू थप्नुहोस्",
+ "ADD_AGENTS": "तपाईंको इनबक्समा एजेन्टहरू थप्दै..."
},
"FINISH": {
- "TITLE": "Your Inbox is ready!",
- "MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
- "BUTTON_TEXT": "Take me there",
- "MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "You have successfully finished creating a website channel. Copy the code shown below and paste it on your website. Next time a customer use the live chat, the conversation will automatically appear on your inbox."
+ "TITLE": "तपाईंको इनबक्स तयार छ!",
+ "MESSAGE": "अब तपाईं आफ्नो नयाँ च्यानलमार्फत ग्राहकहरूसँग संलग्न हुन सक्नुहुन्छ। सहयोग गर्न खुशी लागोस्।",
+ "BUTTON_TEXT": "मलाई त्यहाँ लैजानुहोस्",
+ "MORE_SETTINGS": "थप सेटिङहरू",
+ "WEBSITE_SUCCESS": "तपाईंले सफलतापूर्वक वेबसाइट च्यानल सिर्जना गर्नुभयो। तल देखाइएको कोड कपी गरी आफ्नो वेबसाइटमा पेस्ट गर्नुहोस्। अर्को पटक ग्राहकले लाइभ च्याट प्रयोग गर्दा, संवाद स्वचालित रूपमा तपाईंको इनबक्समा देखिनेछ।",
+ "WHATSAPP_QR_INSTRUCTION": "तपाईंको WhatsApp इनबक्स छिटो परीक्षण गर्न माथिको QR कोड स्क्यान गर्नुहोस्",
+ "MESSENGER_QR_INSTRUCTION": "तपाईंको Facebook Messenger इनबक्स छिटो परीक्षण गर्न माथिको QR कोड स्क्यान गर्नुहोस्",
+ "TELEGRAM_QR_INSTRUCTION": "तपाईंको Telegram इनबक्स छिटो परीक्षण गर्न माथिको QR कोड स्क्यान गर्नुहोस्"
},
- "REAUTH": "Reauthorize",
- "VIEW": "View",
+ "REAUTH": "पुनः प्राधिकृत गर्नुहोस्",
+ "VIEW": "हेर्नुहोस्",
"EDIT": {
"API": {
- "SUCCESS_MESSAGE": "Inbox settings updated successfully",
- "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "Auto assignment updated successfully",
- "ERROR_MESSAGE": "We couldn't update inbox settings. Please try again later."
+ "SUCCESS_MESSAGE": "इनबक्स सेटिङहरू सफलतापूर्वक अपडेट भयो",
+ "AUTO_ASSIGNMENT_SUCCESS_MESSAGE": "स्वचालित असाइनमेन्ट सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "हामीले इनबक्स सेटिङहरू अपडेट गर्न सकिएन। कृपया पछि पुन: प्रयास गर्नुहोस्।"
},
"EMAIL_COLLECT_BOX": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "सक्षम गरिएको",
+ "DISABLED": "असक्षम गरिएको"
},
"ENABLE_CSAT": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "सक्षम गरिएको",
+ "DISABLED": "असक्षम गरिएको"
},
"SENDER_NAME_SECTION": {
- "TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
- "FOR_EG": "For eg:",
+ "TITLE": "प्रेषक नाम",
+ "SUB_TEXT": "जब तपाईंका ग्राहकहरूले एजेन्टहरूबाट इमेल प्राप्त गर्छन्, देखाइने नाम चयन गर्नुहोस्।",
+ "FOR_EG": "उदाहरणका लागि:",
"FRIENDLY": {
- "TITLE": "Friendly",
- "FROM": "from",
- "SUBTITLE": "Add the name of the agent who sent the reply in the sender name to make it friendly."
+ "TITLE": "मैत्रीपूर्ण",
+ "FROM": "बाट",
+ "SUBTITLE": "प्रेषक नाममा जवाफ पठाउने एजेन्टको नाम थप्नुहोस् ताकि यो मैत्रीपूर्ण देखियोस्।"
},
"PROFESSIONAL": {
- "TITLE": "Professional",
- "SUBTITLE": "Use only the configured business name as the sender name in the email header."
+ "TITLE": "व्यावसायिक",
+ "SUBTITLE": "इमेल हेडरमा प्रेषक नामको रूपमा केवल कन्फिगर गरिएको व्यवसाय नाम प्रयोग गर्नुहोस्।"
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
- "PLACEHOLDER": "Enter your business name",
- "SAVE_BUTTON_TEXT": "Save"
+ "BUTTON_TEXT": "आफ्नो व्यवसाय नाम सेट गर्नुहोस्",
+ "PLACEHOLDER": "तपाईंको व्यवसाय नाम प्रविष्ट गर्नुहोस्",
+ "SAVE_BUTTON_TEXT": "सेभ गर्नुहोस्"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "सक्षम गरिएको",
+ "DISABLED": "असक्षम गरिएको"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "सक्षम गरिएको",
+ "DISABLED": "असक्षम गरिएको"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Enabled",
- "DISABLED": "Disabled"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "सम्पर्कले फेरि सन्देश पठाउँदा, अघिल्लो कुराकानी पुन: खोलिनेछ।",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
- "LABEL": "Enable"
+ "LABEL": "सक्षम गर्नुहोस्"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
- "AVATAR_DELETE_BUTTON_TEXT": "Delete Avatar",
+ "BUTTON_TEXT": "मेटाउनुहोस्",
+ "AVATAR_DELETE_BUTTON_TEXT": "अवतार मेटाउनुहोस्",
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete ",
- "PLACE_HOLDER": "Please type {inboxName} to confirm",
- "YES": "Yes, Delete ",
- "NO": "No, Keep "
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "MESSAGE": "के तपाईं निश्चित हुनुहुन्छ कि मेटाउन चाहनुहुन्छ ",
+ "PLACE_HOLDER": "कृपया पुष्टि गर्न {inboxName} टाइप गर्नुहोस्",
+ "YES": "हो, मेटाउनुहोस् ",
+ "NO": "होइन, राख्नु "
},
"API": {
- "SUCCESS_MESSAGE": "Inbox deleted successfully",
- "ERROR_MESSAGE": "Could not delete inbox. Please try again later.",
- "AVATAR_SUCCESS_MESSAGE": "Inbox avatar deleted successfully",
- "AVATAR_ERROR_MESSAGE": "Could not delete the inbox avatar. Please try again later."
+ "SUCCESS_MESSAGE": "इनबक्स सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "इनबक्स मेटाउन सकेन। कृपया पछि फेरि प्रयास गर्नुहोस्।",
+ "AVATAR_SUCCESS_MESSAGE": "इनबक्स अवतार सफलतापूर्वक मेटाइयो",
+ "AVATAR_ERROR_MESSAGE": "इनबक्स अवतार मेटाउन सकेन। कृपया पछि फेरि प्रयास गर्नुहोस्।"
}
},
"TABS": {
- "SETTINGS": "Settings",
- "COLLABORATORS": "Collaborators",
- "CONFIGURATION": "Configuration",
- "CAMPAIGN": "Campaigns",
- "PRE_CHAT_FORM": "Pre Chat Form",
- "BUSINESS_HOURS": "Business Hours",
- "WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "SETTINGS": "सेटिङहरू",
+ "COLLABORATORS": "सहयोगीहरू",
+ "CONFIGURATION": "कन्फिगरेसन",
+ "CAMPAIGN": "अभियानहरू",
+ "PRE_CHAT_FORM": "पूर्व च्याट फारम",
+ "BUSINESS_HOURS": "व्यवसाय समय",
+ "WIDGET_BUILDER": "विजेट बिल्डर",
+ "BOT_CONFIGURATION": "बोट कन्फिगरेसन",
+ "ACCOUNT_HEALTH": "खाता स्वास्थ्य",
+ "CSAT": "CSAT",
+ "VOICE": "भ्वाइस",
+ "CALLS": "Calls"
},
- "SETTINGS": "Settings",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "च्यानल प्राथमिकता",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "तपाईंको WhatsApp खाता व्यवस्थापन गर्नुहोस्",
+ "DESCRIPTION": "तपाईंको WhatsApp खाता स्थिति, सन्देश सीमा, र गुणस्तर समीक्षा गर्नुहोस्। आवश्यक परे सेटिङहरू अपडेट गर्नुहोस् वा समस्याहरू समाधान गर्नुहोस्",
+ "GO_TO_SETTINGS": "Meta Business Manager मा जानुहोस्",
+ "NO_DATA": "स्वास्थ्य डेटा उपलब्ध छैन",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "फोन नम्बर प्रदर्शन गर्नुहोस्",
+ "TOOLTIP": "ग्राहकहरूलाई देखाइने फोन नम्बर"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "व्यवसायको नाम",
+ "TOOLTIP": "WhatsApp द्वारा प्रमाणित व्यवसाय नाम"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "प्रदर्शन नाम स्थिति",
+ "TOOLTIP": "तपाईंको व्यवसाय नाम प्रमाणनको स्थिति"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "गुणस्तर मूल्याङ्कन",
+ "TOOLTIP": "तपाईंको खाताको लागि WhatsApp गुणस्तर रेटिङ"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "सन्देश सीमा स्तर",
+ "TOOLTIP": "तपाईंको खाताको दैनिक सन्देश सीमा"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "खाता मोड",
+ "TOOLTIP": "तपाईंको WhatsApp खाताको वर्तमान सञ्चालन मोड"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "२४ घण्टामा 250 ग्राहकहरू",
+ "TIER_1000": "२४ घण्टामा 1K ग्राहकहरू",
+ "TIER_1K": "२४ घण्टामा 1K ग्राहकहरू",
+ "TIER_10K": "२४ घण्टामा १० हजार ग्राहकहरू",
+ "TIER_100K": "२४ घण्टामा 100K ग्राहकहरू",
+ "TIER_UNLIMITED": "२४ घण्टामा असीमित ग्राहकहरू",
+ "UNKNOWN": "मूल्याङ्कन उपलब्ध छैन"
+ },
+ "STATUSES": {
+ "APPROVED": "स्वीकृत",
+ "PENDING_REVIEW": "समीक्षा प्रक्रियामा",
+ "AVAILABLE_WITHOUT_REVIEW": "समीक्षा बिना उपलब्ध",
+ "REJECTED": "अस्वीकृत",
+ "DECLINED": "अस्वीकार गरिएको",
+ "NON_EXISTS": "अस्तित्वमा छैन"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "प्रत्यक्ष"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook कन्फिगरेसन",
+ "DESCRIPTION": "ग्राहकबाट सन्देश प्राप्त गर्न तपाईंको WhatsApp Business Account मा Webhook URL आवश्यक छ",
+ "ACTION_REQUIRED": "Webhook कन्फिगर गरिएको छैन",
+ "REGISTER_BUTTON": "Webhook दर्ता गर्नुहोस्",
+ "REGISTER_SUCCESS": "Webhook सफलतापूर्वक दर्ता भयो",
+ "REGISTER_ERROR": "Webhook दर्ता गर्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "CONFIGURED_SUCCESS": "Webhook सफलतापूर्वक कन्फिगर गरियो",
+ "URL_MISMATCH": "Webhook URL मेल खाएन"
+ }
+ },
+ "SETTINGS": "सेटिङहरू",
"FEATURES": {
- "LABEL": "Features",
- "DISPLAY_FILE_PICKER": "Display file picker on the widget",
- "DISPLAY_EMOJI_PICKER": "Display emoji picker on the widget",
- "ALLOW_END_CONVERSATION": "Allow users to end conversation from the widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use inbox name and avatar for the bot"
+ "LABEL": "विशेषताहरू",
+ "DISPLAY_FILE_PICKER": "विजेटमा फाइल चयनकर्ता देखाउनु",
+ "DISPLAY_EMOJI_PICKER": "विजेटमा इमोजी चयनकर्ता देखाउनु",
+ "ALLOW_END_CONVERSATION": "प्रयोगकर्ताहरूलाई विजेटबाट कुराकानी अन्त्य गर्न अनुमति दिनुहोस्।",
+ "USE_INBOX_AVATAR_FOR_BOT": "बोटका लागि इनबक्स नाम र अवतार प्रयोग गर्नुहोस्"
},
"SETTINGS_POPUP": {
- "MESSENGER_HEADING": "Messenger Script",
- "MESSENGER_SUB_HEAD": "Place this button inside your body tag",
- "INBOX_AGENTS": "Agents",
- "INBOX_AGENTS_SUB_TEXT": "Add or remove agents from this inbox",
- "AGENT_ASSIGNMENT": "Conversation Assignment",
- "AGENT_ASSIGNMENT_SUB_TEXT": "Update conversation assignment settings",
- "UPDATE": "Update",
- "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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
- "INBOX_UPDATE_TITLE": "Inbox Settings",
- "INBOX_UPDATE_SUB_TEXT": "Update your inbox settings",
- "AUTO_ASSIGNMENT_SUB_TEXT": "Enable or disable the automatic assignment of new conversations to the agents added to this inbox.",
- "HMAC_VERIFICATION": "User Identity Validation",
+ "MESSENGER_HEADING": "मेसेन्जर स्क्रिप्ट",
+ "MESSENGER_SUB_HEAD": "यो बटनलाई तपाईंको body ट्याग भित्र राख्नुहोस्",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "अनुमत डोमेनहरू",
+ "DESCRIPTION": "कुन वेबसाइटहरूले तपाईंको च्याट विजेट एम्बेड गर्न सक्छन् भन्ने सीमित गर्नुहोस्। सुरक्षाका लागि, केवल तपाईंले स्वामित्व लिएका र विश्वास गर्ने डोमेनहरू मात्र थप्नुहोस्। कमा छुट्याएर एक वा बढी डोमेनहरू थप्नुहोस्। सबै डोमेनहरूलाई अनुमति दिन खाली छोड्नुहोस् (उत्पादनका लागि सिफारिस गरिएको छैन)।",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "मोबाइल एपहरूमा विजेट सक्षम गर्नुहोस्",
+ "SUBTITLE": "यदि तपाईंले विजेटलाई iOS वा Android एपहरूमा राख्नुभएको छ भने यो जाँच गर्नुहोस्। मोबाइल एपहरूले डोमेन जानकारी पठाउँदैनन्, त्यसैले यो सक्षम नगरेसम्म डोमेन प्रतिबन्धले ब्लक गर्छ।"
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "पहिचान प्रमाणीकरण",
+ "DESCRIPTION": "सुरक्षित टोकनहरू सिर्जना गरेर प्रयोगकर्ताको वास्तविकता प्रमाणित गर्नुहोस्। यसले अनधिकृत प्रयोगकर्ताहरूलाई तपाईंको च्याटमा अरूको नक्कल गर्नबाट रोक्छ।",
+ "SECRET_KEY": "गोप्य कुञ्जी",
+ "VIEW_DOCS": "डोक्युमेन्टेसन हेर्नुहोस्",
+ "REQUIRE_LABEL": "सबै संवादका लागि पहिचान प्रमाणीकरण आवश्यक बनाउनुहोस्",
+ "REQUIRE_DESCRIPTION": "यो सक्षम गर्दा, प्रयोगकर्ताले संवाद सुरु गर्न मान्य पहिचान टोकन दिनुपर्छ। मान्य टोकन बिना अनुरोधहरू अस्वीकृत गरिनेछन्।"
+ },
+ "INBOX_AGENTS": "एजेन्टहरू",
+ "INBOX_AGENTS_SUB_TEXT": "यस इनबक्सबाट एजेन्टहरू थप्नुहोस् वा हटाउनुहोस्",
+ "AGENT_ASSIGNMENT": "कुराकानी असाइनमेन्ट",
+ "AGENT_ASSIGNMENT_SUB_TEXT": "कुराकानी असाइनमेन्ट सेटिङहरू अपडेट गर्नुहोस्।",
+ "UPDATE": "अपडेट गर्नु",
+ "ENABLE_EMAIL_COLLECT_BOX": "इमेल सङ्कलन बक्स सक्षम गर्नुहोस्",
+ "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "नयाँ कुराकानीमा इमेल सङ्कलन बक्स सक्षम वा असक्षम गर्नुहोस्",
+ "AUTO_ASSIGNMENT": "स्वचालित असाइनमेन्ट सक्षम गर्नु",
+ "SENDER_NAME_SECTION": "इमेलमा एजेन्ट नाम सक्षम गर्नुहोस्",
+ "SENDER_NAME_SECTION_TEXT": "एजेन्टको नाम इमेलमा देखाउने/नदेखाउने सक्षम/अक्षम गर्नुहोस्, यदि अक्षम गरिएको छ भने व्यवसाय नाम देखाइनेछ",
+ "ENABLE_CONTINUITY_VIA_EMAIL": "इमेल मार्फत कुराकानी निरन्तरता सक्षम गर्नुहोस्",
+ "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "यदि सम्पर्क इमेल ठेगाना उपलब्ध छ भने कुराकानी इमेल मार्फत जारी रहनेछ।",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "कुराकानी मार्गनिर्देशन",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "अस्तित्वमा रहेका सम्पर्कहरूको लागि संवाद सिर्जना कन्फिगर गर्नुहोस्",
+ "INBOX_UPDATE_TITLE": "इनबक्स सेटिङहरू",
+ "INBOX_UPDATE_SUB_TEXT": "तपाईंको इनबक्स सेटिङहरू अपडेट गर्नु",
+ "AUTO_ASSIGNMENT_SUB_TEXT": "यस इनबक्समा थपिएका एजेन्टहरूलाई नयाँ संवादहरू स्वचालित रूपमा असाइन गर्ने सुविधा सक्षम वा अक्षम गर्नु।",
+ "HMAC_VERIFICATION": "प्रयोगकर्ता पहिचान प्रमाणीकरण",
"HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "You can read more here.",
- "HMAC_MANDATORY_VERIFICATION": "Enforce User Identity Validation",
+ "HMAC_LINK_TO_DOCS": "यहाँ थप पढ्न सक्नुहुन्छ।",
+ "HMAC_MANDATORY_VERIFICATION": "प्रयोगकर्ता पहिचान प्रमाणीकरण लागू गर्नुहोस्",
"HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Inbox Identifier",
- "INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
- "FORWARD_EMAIL_TITLE": "Forward to Email",
- "FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
- "ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
- "WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_TITLE": "API Key",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
- "WHATSAPP_SECTION_UPDATE_BUTTON": "Update",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
- "WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
+ "INBOX_IDENTIFIER": "इनबक्स परिचायक",
+ "INBOX_IDENTIFIER_SUB_TEXT": "यहाँ देखाइएको `inbox_identifier` टोकन प्रयोग गरेर तपाईंका API क्लाइन्टहरूलाई प्रमाणीकरण गर्नुहोस्।",
+ "FORWARD_EMAIL_TITLE": "इमेलमा अग्रेषित गर्नुहोस्",
+ "FORWARD_EMAIL_SUB_TEXT": "तपाईंका इमेलहरू तलको इमेल ठेगानामा अग्रेषित गर्न सुरु गर्नुहोस्।",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "तपाईंको इनबक्समा इमेल अग्रेषण हाल यस इन्स्टलेशनमा अक्षम गरिएको छ। यो सुविधा प्रयोग गर्न, तपाईंको प्रशासकले यसलाई सक्षम पार्नुपर्छ। कृपया उनीहरूलाई सम्पर्क गर्नुहोस्।",
+ "ALLOW_MESSAGES_AFTER_RESOLVED": "कुराकानी समाधान भएपछि सन्देशहरू अनुमति दिनुहोस्",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "कुराकानी समाधान भएपनि अन्तिम प्रयोगकर्ताहरूलाई सन्देश पठाउन अनुमति दिनुहोस्।",
+ "WHATSAPP_SECTION_SUBHEADER": "यो API कुञ्जी WhatsApp API हरूसँग एकीकरणको लागि प्रयोग गरिन्छ।",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "WhatsApp API हरूसँग एकीकरणका लागि प्रयोग हुने नयाँ API कुञ्जी प्रविष्ट गर्नुहोस्।",
+ "WHATSAPP_SECTION_TITLE": "API कुञ्जी",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "API कुञ्जी अपडेट गर्नुहोस्।",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "यहाँ नयाँ API कुञ्जी प्रविष्ट गर्नुहोस्।",
+ "WHATSAPP_SECTION_UPDATE_BUTTON": "अपडेट गर्नुहोस्।",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp एम्बेडेड साइनअप",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "यो इनबक्स WhatsApp एम्बेडेड साइनअप मार्फत जडान गरिएको छ।",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "तपाईंले यो इनबक्स पुन: कन्फिगर गरेर तपाईंको WhatsApp व्यवसाय सेटिङहरू अपडेट गर्न सक्नुहुन्छ।",
+ "WHATSAPP_RECONFIGURE_BUTTON": "पुन: कन्फिगर गर्नुहोस्",
+ "WHATSAPP_CONNECT_TITLE": "WhatsApp व्यवसायसँग जडान गर्नुहोस्",
+ "WHATSAPP_CONNECT_SUBHEADER": "सरल व्यवस्थापनका लागि WhatsApp एम्बेडेड साइनअपमा अपग्रेड गर्नुहोस्।",
+ "WHATSAPP_CONNECT_DESCRIPTION": "यो इनबक्सलाई WhatsApp व्यवसायसँग जडान गर्नुहोस् र थप सुविधाहरू र सजिलो व्यवस्थापन पाउनुहोस्।",
+ "WHATSAPP_CONNECT_BUTTON": "जडान गर्नुहोस्",
+ "WHATSAPP_CONNECT_SUCCESS": "WhatsApp व्यवसायसँग सफलतापूर्वक जडान भयो!",
+ "WHATSAPP_CONNECT_ERROR": "WhatsApp व्यवसायसँग जडान गर्न असफल। कृपया फेरि प्रयास गर्नुहोस्।",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "WhatsApp व्यवसाय सफलतापूर्वक पुन: कन्फिगर गरियो!",
+ "WHATSAPP_RECONFIGURE_ERROR": "WhatsApp व्यवसाय पुन: कन्फिगर गर्न असफल। कृपया फेरि प्रयास गर्नुहोस्।",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp एप ID कन्फिगर गरिएको छैन। कृपया तपाईंको प्रशासकलाई सम्पर्क गर्नुहोस्।",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp कन्फिगरेसन ID कन्फिगर गरिएको छैन। कृपया तपाईंको प्रशासकलाई सम्पर्क गर्नुहोस्।",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp लगइन रद्द गरियो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "WHATSAPP_WEBHOOK_TITLE": "वेबहुक प्रमाणीकरण टोकन",
+ "WHATSAPP_WEBHOOK_SUBHEADER": "यो टोकन वेबहुक अन्तबिन्दुको प्रामाणिकता जाँच्न प्रयोग गरिन्छ।",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "टेम्प्लेटहरू समक्रमण गर्नुहोस्",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "तपाईंका उपलब्ध टेम्प्लेटहरू अपडेट गर्न WhatsApp बाट म्यानुअली सन्देश टेम्प्लेटहरू समक्रमण गर्नुहोस्।",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "टेम्प्लेटहरू समक्रमण गर्नुहोस्",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "टेम्प्लेटहरू समक्रमण सफलतापूर्वक सुरु भयो। अपडेट हुन केही मिनेट लाग्न सक्छ।",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "पूर्व-च्याट फारम सेटिङहरू अपडेट गर्नुहोस्।"
},
"HELP_CENTER": {
- "LABEL": "Help Center",
- "PLACEHOLDER": "Select Help Center",
- "SELECT_PLACEHOLDER": "Select Help Center",
- "REMOVE": "Remove Help Center",
- "SUB_TEXT": "Attach a Help Center with the inbox"
+ "LABEL": "मद्दत केन्द्र",
+ "PLACEHOLDER": "मद्दत केन्द्र चयन गर्नुहोस्",
+ "SELECT_PLACEHOLDER": "मद्दत केन्द्र चयन गर्नुहोस्",
+ "NONE": "कुनै छैन",
+ "REMOVE": "मद्दत केन्द्र हटाउनुहोस्",
+ "SUB_TEXT": "इनबक्ससँग मद्दत केन्द्र संलग्न गर्नुहोस्"
},
"AUTO_ASSIGNMENT": {
- "MAX_ASSIGNMENT_LIMIT": "Auto assignment limit",
- "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
- "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
+ "MAX_ASSIGNMENT_LIMIT": "स्वचालित असाइनमेन्ट सीमा",
+ "MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "कृपया 0 भन्दा ठूलो मान प्रविष्ट गर्नुहोस्।",
+ "MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "यस इनबक्सबाट एजेन्टलाई स्वचालित रूपमा असाइन गर्न सकिने अधिकतम कुराकानी संख्या सीमित गर्नुहोस्।"
+ },
+ "ASSIGNMENT": {
+ "TITLE": "संवाद असाइनमेन्ट",
+ "DESCRIPTION": "आगामी संवादहरूलाई उपलब्ध एजेन्टहरूलाई असाइनमेन्ट नीतिहरूको आधारमा स्वचालित रूपमा असाइन गर्नुहोस्",
+ "ENABLE_AUTO_ASSIGNMENT": "स्वचालित संवाद असाइनमेन्ट सक्षम गर्नुहोस्",
+ "DEFAULT_RULES_TITLE": "पूर्वनिर्धारित असाइनमेन्ट नियमहरू",
+ "DEFAULT_RULES_DESCRIPTION": "सबै संवादहरूको लागि पूर्वनिर्धारित असाइनमेन्ट व्यवहार प्रयोग गर्दै",
+ "DEFAULT_RULE_1": "सबैभन्दा पहिले सिर्जना भएका संवादहरू",
+ "DEFAULT_RULE_2": "राउन्ड-रोबिन वितरण",
+ "CUSTOMIZE_WITH_POLICY": "असाइनमेन्ट नीति अनुसार अनुकूलन गर्नुहोस्",
+ "USING_POLICY": "यस इनबक्सका लागि अनुकूलित असाइनमेन्ट नीति प्रयोग गर्दै",
+ "CUSTOMIZE_POLICY": "असाइनमेन्ट नीति अनुसार अनुकूलन गर्नुहोस्",
+ "DELETE_POLICY": "नीति मेटाउनु",
+ "POLICY_LABEL": "असाइनमेन्ट नीति",
+ "ASSIGNMENT_ORDER_LABEL": "असाइनमेन्ट क्रम",
+ "ASSIGNMENT_METHOD_LABEL": "असाइनमेन्ट विधि",
+ "POLICY_STATUS": {
+ "ACTIVE": "सक्रिय",
+ "INACTIVE": "निष्क्रिय"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "सबैभन्दा पहिले सिर्जना गरिएको",
+ "LONGEST_WAITING": "सबैभन्दा लामो समयदेखि प्रतीक्षा"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "राउन्ड-रोबिन",
+ "BALANCED": "सन्तुलित असाइनमेन्ट"
+ },
+ "UPGRADE_PROMPT": "अनुकूलित असाइनमेन्ट नीतिहरू व्यवसाय योजना मा उपलब्ध छन्",
+ "UPGRADE_TO_BUSINESS": "व्यवसाय योजना मा अपग्रेड गर्नुहोस्",
+ "DEFAULT_POLICY_LINKED": "पूर्वनिर्धारित नीति जडान गरिएको",
+ "DEFAULT_POLICY_DESCRIPTION": "यस इनबक्समा एजेन्टहरूलाई संवाद कसरी असाइन गर्ने अनुकूलन गर्न अनुकूलित असाइनमेन्ट नीति जडान गर्नुहोस्।",
+ "LINK_EXISTING_POLICY": "अस्तित्वमा रहेको नीति जडान गर्नुहोस्",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "सबै नीति हेर्नुहोस्",
+ "CURRENT_BEHAVIOR": "हाल डिफल्ट असाइनमेन्ट व्यवहार प्रयोग भइरहेको छ:",
+ "LINK_SUCCESS": "असाइनमेन्ट नीति सफलतापूर्वक जडान भयो",
+ "LINK_ERROR": "असाइनमेन्ट नीति जडान गर्न असफल"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "असाइनमेन्ट नीति हटाउने हो?",
+ "DELETE_CONFIRM_MESSAGE": "के तपाईं यो इनबक्सबाट असाइनमेन्ट नीति हटाउन निश्चित हुनुहुन्छ? इनबक्स डिफल्ट असाइनमेन्ट नियममा फर्किनेछ।",
+ "CANCEL": "Cancel",
+ "CONFIRM_DELETE": "हटाउनुहोस्",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
},
"FACEBOOK_REAUTHORIZE": {
- "TITLE": "Reauthorize",
- "SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
- "MESSAGE_SUCCESS": "Reconnection successful",
- "MESSAGE_ERROR": "There was an error, please try again"
+ "TITLE": "पुनः अधिकृत गर्नु",
+ "SUBTITLE": "तपाईंको Facebook जडान समाप्त भएको छ, कृपया सेवा जारी राख्न आफ्नो Facebook पृष्ठ पुन: जडान गर्नु",
+ "MESSAGE_SUCCESS": "पुन: जडान सफल भयो",
+ "MESSAGE_ERROR": "त्रुटि भयो, कृपया फेरि प्रयास गर्नु"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "Pre chat forms enable you to capture user information before they start conversation with you.",
- "SET_FIELDS": "Pre chat form fields",
+ "DESCRIPTION": "पूर्व च्याट फारमहरूले तपाईंलाई प्रयोगकर्ताको जानकारी सङ्कलन गर्न मद्दत गर्छ जब उनीहरूले तपाईंसँग कुराकानी सुरु गर्न लागेका हुन्छन्।",
+ "SET_FIELDS": "प्री च्याट फारम फिल्डहरू",
"SET_FIELDS_HEADER": {
- "FIELDS": "Fields",
- "LABEL": "Label",
- "PLACE_HOLDER": "Placeholder",
- "KEY": "Key",
- "TYPE": "Type",
- "REQUIRED": "Required"
+ "FIELDS": "फिल्डहरू",
+ "LABEL": "लेबल",
+ "PLACE_HOLDER": "प्लेसहोल्डर",
+ "KEY": "कुञ्जी",
+ "TYPE": "प्रकार",
+ "REQUIRED": "आवश्यक"
},
"ENABLE": {
- "LABEL": "Enable pre chat form",
+ "LABEL": "पूर्व च्याट फारम सक्षम गर्नुहोस्",
"OPTIONS": {
- "ENABLED": "Yes",
- "DISABLED": "No"
+ "ENABLED": "हो",
+ "DISABLED": "होइन"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Pre chat message",
- "PLACEHOLDER": "This message would be visible to the users along with the form"
+ "LABEL": "प्री च्याट सन्देश",
+ "PLACEHOLDER": "यो सन्देश फारमसँगै प्रयोगकर्ताहरूलाई देखाइनेछ"
},
"REQUIRE_EMAIL": {
- "LABEL": "Visitors should provide their name and email address before starting the chat"
+ "LABEL": "च्याट सुरु गर्नु अघि आगन्तुकहरूले आफ्नो नाम र इमेल ठेगाना दिनुपर्छ"
+ }
+ },
+ "CSAT": {
+ "TITLE": "CSAT सक्षम गर्नुहोस्",
+ "SUBTITLE": "संवादको अन्त्यमा स्वचालित रूपमा CSAT सर्वेक्षणहरू ट्रिगर गर्नुहोस् ताकि ग्राहकहरूले आफ्नो समर्थन अनुभव कस्तो महसुस गरे बुझ्न सकियोस्। सन्तुष्टि प्रवृत्तिहरू ट्र्याक गर्नुहोस् र समयसँगै सुधारका क्षेत्रहरू पहिचान गर्नुहोस्।",
+ "DISPLAY_TYPE": {
+ "LABEL": "प्रदर्शन प्रकार"
+ },
+ "MESSAGE": {
+ "LABEL": "सन्देश",
+ "PLACEHOLDER": "प्रयोगकर्ताहरूसँग फारम सहित देखाउन सन्देश प्रविष्ट गर्नुहोस्"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "बटन पाठ",
+ "PLACEHOLDER": "कृपया हामीलाई मूल्याङ्कन गर्नुहोस्"
+ },
+ "LANGUAGE": {
+ "LABEL": "भाषा",
+ "PLACEHOLDER": "ढाँचा भाषा चयन गर्नुहोस्"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "सन्देश पूर्वावलोकन",
+ "TOOLTIP": "WhatsApp को प्लेटफर्ममा प्रस्तुत गर्दा यसमा थोरै भिन्नता हुन सक्छ।"
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "WhatsApp द्वारा स्वीकृत",
+ "PENDING": "WhatsApp स्वीकृतिको प्रतीक्षा",
+ "REJECTED": "Meta ले ढाँचालाई अस्वीकृत गर्यो",
+ "DEFAULT": "WhatsApp स्वीकृतिको आवश्यकता छ",
+ "NOT_FOUND": "ढाँचा Meta प्लेटफर्ममा अवस्थित छैन।"
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp ढाँचा सफलतापूर्वक सिर्जना गरियो र स्वीकृतिका लागि पठाइयो",
+ "ERROR_MESSAGE": "WhatsApp ढाँचा सिर्जना गर्न असफल"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "सर्वेक्षण विवरण सम्पादन गर्नुहोस्",
+ "DESCRIPTION": "हामी पुरानो ढाँचा मेटाउनेछौं र नयाँ बनाउनेछौं जुन फेरि WhatsApp स्वीकृतिका लागि पठाइनेछ",
+ "CONFIRM": "नयाँ ढाँचा सिर्जना गर्नुहोस्",
+ "CANCEL": "फिर्ता जानुहोस्"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "युटिलिटी उपयुक्तता जाँच्नुहोस्",
+ "HELPER_NOTE": "युटिलिटी उपयुक्तता सुधार गर्न पठाउनु अघि यो सन्देश जाँच्नुहोस्। प्रणालीले रिपोर्टिङका लागि बटनसहित छुट्टै CSAT टेम्प्लेट बनाउँछ र यसलाई युटिलिटीको रूपमा पेश गर्छ; सामग्रीका आधारमा Meta ले यसलाई मार्केटिङको रूपमा पुनः वर्गीकरण गर्न सक्छ।",
+ "RESULT_LABEL": "Meta श्रेणी पूर्वानुमान",
+ "GUIDANCE_NOTE": "यो मार्गदर्शन जाँच मात्र हो, Meta को स्वीकृतिको ग्यारेन्टी होइन।",
+ "SUGGESTION_LABEL": "सुझाव गरिएको युटिलिटी-मैत्री पुनर्लेखन",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "सन्देश विश्लेषण गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "संभावित युटिलिटी",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "स्पष्टता आवश्यक छ"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "सर्वेक्षण नियम",
+ "DESCRIPTION_PREFIX": "संवाद यदि",
+ "DESCRIPTION_SUFFIX": "कुनै पनि लेबलहरू",
+ "OPERATOR": {
+ "CONTAINS": "समावेश गर्दछ",
+ "DOES_NOT_CONTAINS": "समावेश गर्दैन"
+ },
+ "SELECT_PLACEHOLDER": "लेबलहरू छान्नुहोस्"
+ },
+ "NOTE": "सूचना: CSAT सर्वेक्षणहरू प्रत्येक संवादमा केवल एक पटक मात्र पठाइन्छ।",
+ "WHATSAPP_NOTE": "नोट: तपाईंले सुरक्षित गरेपछि, प्रणालीले WhatsApp मा CSAT टेम्प्लेट बनाउँछ (रिपोर्टमा रेटिङ र प्रतिक्रिया संकलन गर्न प्रयोग हुने) र स्वीकृतिका लागि Utility रूपमा पेश गर्छ। Meta ले सामग्रीका आधारमा यसलाई Marketing पनि वर्गीकृत गर्न सक्छ। स्वीकृति पछि, सर्वेक्षण नियम अनुसार प्रत्येक कुराकानीमा एकपटक मात्र सर्वेक्षण पठाइन्छ।",
+ "API": {
+ "SUCCESS_MESSAGE": "CSAT सेटिङहरू सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "हामीले CSAT सेटिङहरू अपडेट गर्न सकेनौं। कृपया पछि फेरि प्रयास गर्नुहोस्।"
}
},
"BUSINESS_HOURS": {
- "TITLE": "Set your availability",
- "SUBTITLE": "Set your availability on your livechat widget",
- "WEEKLY_TITLE": "Set your weekly hours",
- "TIMEZONE_LABEL": "Select timezone",
- "UPDATE": "Update business hours settings",
- "TOGGLE_AVAILABILITY": "Enable business availability for this inbox",
- "UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
- "TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
+ "TITLE": "तपाईंको उपलब्धता सेट गर्नुहोस्",
+ "SUBTITLE": "तपाईंको प्रत्यक्ष च्याट विजेटमा उपलब्धता सेट गर्नुहोस्",
+ "WEEKLY_TITLE": "तपाईंको साप्ताहिक समय सेट गर्नुहोस्",
+ "TIMEZONE_LABEL": "समय क्षेत्र चयन गर्नुहोस्",
+ "UPDATE": "व्यवसाय समय सेटिङहरू अपडेट गर्नुहोस्",
+ "TOGGLE_AVAILABILITY": "यस इनबक्सको लागि व्यवसाय उपलब्धता सक्षम गर्नुहोस्",
+ "UNAVAILABLE_MESSAGE_LABEL": "आगन्तुकहरूको लागि अनुपलब्ध सन्देश",
+ "TOGGLE_HELP": "व्यवसाय उपलब्धता सक्षम गर्दा सबै एजेन्टहरू अफलाइन भए पनि लाइभ च्याट विजेटमा उपलब्ध समय देखाइनेछ। उपलब्ध समय बाहिर आगन्तुकहरूलाई सन्देश र पूर्व-च्याट फारमको साथ चेतावनी दिन सकिन्छ।",
"DAY": {
- "ENABLE": "Enable availability for this day",
- "UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
- "VALIDATION_ERROR": "Starting time should be before closing time.",
- "CHOOSE": "Choose"
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "समय",
+ "ENABLE": "यस दिनको लागि उपलब्धता सक्षम गर्नुहोस्",
+ "UNAVAILABLE": "उपलब्ध छैन",
+ "VALIDATION_ERROR": "सुरु समय बन्द हुने समय भन्दा पहिले हुनुपर्छ।",
+ "CHOOSE": "छान्नुहोस्"
},
- "ALL_DAY": "All-Day"
+ "ALL_DAY": "सम्पूर्ण दिन"
},
"IMAP": {
"TITLE": "IMAP",
- "SUBTITLE": "Set your IMAP details",
- "NOTE_TEXT": "To enable SMTP, please configure IMAP.",
- "UPDATE": "Update IMAP settings",
- "TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "SUBTITLE": "आफ्नो IMAP विवरण सेट गर्नुहोस्",
+ "NOTE_TEXT": "SMTP सक्षम गर्न कृपया IMAP कन्फिगर गर्नुहोस्।",
+ "UPDATE": "IMAP सेटिङहरू अपडेट गर्नुहोस्",
+ "TOGGLE_AVAILABILITY": "यस इनबक्सका लागि IMAP कन्फिगरेसन सक्षम गर्नुहोस्",
+ "TOGGLE_HELP": "IMAP सक्षम गर्दा प्रयोगकर्ताले इमेल प्राप्त गर्न मद्दत मिल्छ",
"EDIT": {
- "SUCCESS_MESSAGE": "IMAP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update IMAP settings"
+ "SUCCESS_MESSAGE": "IMAP सेटिङहरू सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "IMAP सेटिङहरू अपडेट गर्न सकिएन"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: imap.gmail.com)"
+ "LABEL": "ठेगाना",
+ "PLACE_HOLDER": "ठेगाना (जस्तै: imap.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "पोर्ट",
+ "PLACE_HOLDER": "पोर्ट"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "लगइन",
+ "PLACE_HOLDER": "लगइन"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "पासवर्ड",
+ "PLACE_HOLDER": "पासवर्ड"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "SSL सक्षम गर्नुहोस्",
+ "AUTH_MECHANISM": "प्रमाणीकरण"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Reauthorize your MICROSOFT account"
+ "SUBTITLE": "तपाईंको MICROSOFT खाता पुनः अधिकृत गर्नुहोस्।"
},
"SMTP": {
"TITLE": "SMTP",
- "SUBTITLE": "Set your SMTP details",
- "UPDATE": "Update SMTP settings",
- "TOGGLE_AVAILABILITY": "Enable SMTP configuration for this inbox",
- "TOGGLE_HELP": "Enabling SMTP will help the user to send email",
+ "SUBTITLE": "आफ्नो SMTP विवरण सेट गर्नुहोस्",
+ "UPDATE": "SMTP सेटिङहरू अपडेट गर्नुहोस्",
+ "TOGGLE_AVAILABILITY": "यस इनबक्सका लागि SMTP कन्फिगरेसन सक्षम गर्नुहोस्",
+ "TOGGLE_HELP": "SMTP सक्षम गर्दा प्रयोगकर्ताले इमेल पठाउन मद्दत मिल्छ",
"EDIT": {
- "SUCCESS_MESSAGE": "SMTP settings updated successfully",
- "ERROR_MESSAGE": "Unable to update SMTP settings"
+ "SUCCESS_MESSAGE": "SMTP सेटिङहरू सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "SMTP सेटिङहरू अपडेट गर्न सकिएन"
},
"ADDRESS": {
- "LABEL": "Address",
- "PLACE_HOLDER": "Address (Eg: smtp.gmail.com)"
+ "LABEL": "ठेगाना",
+ "PLACE_HOLDER": "ठेगाना (जस्तै: smtp.gmail.com)"
},
"PORT": {
- "LABEL": "Port",
- "PLACE_HOLDER": "Port"
+ "LABEL": "पोर्ट",
+ "PLACE_HOLDER": "पोर्ट"
},
"LOGIN": {
- "LABEL": "Login",
- "PLACE_HOLDER": "Login"
+ "LABEL": "लगइन",
+ "PLACE_HOLDER": "लगइन"
},
"PASSWORD": {
- "LABEL": "Password",
- "PLACE_HOLDER": "Password"
+ "LABEL": "पासवर्ड",
+ "PLACE_HOLDER": "पासवर्ड"
},
"DOMAIN": {
- "LABEL": "Domain",
- "PLACE_HOLDER": "Domain"
+ "LABEL": "डोमेन",
+ "PLACE_HOLDER": "डोमेन"
},
- "ENCRYPTION": "Encryption",
+ "ENCRYPTION": "एन्क्रिप्सन",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Open SSL Verify Mode",
- "AUTH_MECHANISM": "Authentication"
+ "OPEN_SSL_VERIFY_MODE": "Open SSL प्रमाणिकरण मोड",
+ "AUTH_MECHANISM": "प्रमाणीकरण"
},
- "NOTE": "Note: ",
+ "NOTE": "सूचना: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Website Avatar",
+ "LABEL": "वेबसाइट अवतार",
"DELETE": {
"API": {
- "SUCCESS_MESSAGE": "Avatar deleted successfully",
- "ERROR_MESSAGE": "There was an error, please try again"
+ "SUCCESS_MESSAGE": "अवतार सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्।"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Website Name",
- "PLACE_HOLDER": "Enter your website name (eg: Acme Inc)",
- "ERROR": "Please enter a valid website name"
+ "LABEL": "वेबसाइट नाम",
+ "PLACE_HOLDER": "आफ्नो वेबसाइट नाम प्रविष्ट गर्नुहोस् (जस्तै: Acme Inc)",
+ "ERROR": "कृपया मान्य वेबसाइट नाम प्रविष्ट गर्नुहोस्।"
},
"WELCOME_HEADING": {
- "LABEL": "Welcome Heading",
- "PLACE_HOLDER": "Hi there!"
+ "LABEL": "स्वागत शीर्षक",
+ "PLACE_HOLDER": "नमस्ते!"
},
"WELCOME_TAGLINE": {
- "LABEL": "Welcome Tagline",
- "PLACE_HOLDER": "We make it simple to connect with us. Ask us anything, or share your feedback."
+ "LABEL": "स्वागत ट्यागलाइन",
+ "PLACE_HOLDER": "हामीसँग जडान गर्न सजिलो बनाउँछौं। हामीलाई केही सोध्नुहोस्, वा आफ्नो प्रतिक्रिया साझा गर्नुहोस्।"
},
"REPLY_TIME": {
- "LABEL": "Reply Time",
- "IN_A_FEW_MINUTES": "In a few minutes",
- "IN_A_FEW_HOURS": "In a few hours",
- "IN_A_DAY": "In a day"
+ "LABEL": "जवाफ समय",
+ "IN_A_FEW_MINUTES": "केही मिनेटमा",
+ "IN_A_FEW_HOURS": "केही घण्टामा",
+ "IN_A_DAY": "एक दिनमा"
},
- "WIDGET_COLOR_LABEL": "Widget Color",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_COLOR_LABEL": "विजेट रङ",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "हामीसँग कुराकानी गर्नुहोस्",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "लञ्चर शीर्षक",
"PLACE_HOLDER": "हामीसँग कुराकानी गर्नुहोस्"
},
"UPDATE": {
- "BUTTON_TEXT": "Update Widget Settings",
+ "BUTTON_TEXT": "विजेट सेटिङहरू अपडेट गर्नुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Widget settings updated successfully",
- "ERROR_MESSAGE": "Unable to update widget settings"
+ "SUCCESS_MESSAGE": "विजेट सेटिङहरू सफलतापूर्वक अपडेट गरियो।",
+ "ERROR_MESSAGE": "विजेट सेटिङहरू अपडेट गर्न सकिएन।"
}
},
"WIDGET_VIEW_OPTION": {
- "PREVIEW": "Preview",
- "SCRIPT": "Script"
+ "PREVIEW": "पूर्वावलोकन",
+ "SCRIPT": "स्क्रिप्ट"
},
"WIDGET_BUBBLE_POSITION": {
- "LEFT": "Left",
- "RIGHT": "Right"
+ "LEFT": "बायाँ",
+ "RIGHT": "दायाँ"
},
"WIDGET_BUBBLE_TYPE": {
- "STANDARD": "Standard",
- "EXPANDED_BUBBLE": "Expanded Bubble"
+ "STANDARD": "मानक",
+ "EXPANDED_BUBBLE": "विस्तारित बबल"
}
},
"WIDGET_SCREEN": {
- "DEFAULT": "Default",
- "CHAT": "Chat"
+ "DEFAULT": "पूर्वनिर्धारित",
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "धेरै जसो केहि मिनेटमा जवाफ हुन्छ",
@@ -722,18 +1160,43 @@
},
"BODY": {
"TEAM_AVAILABILITY": {
- "ONLINE": "We are Online",
- "OFFLINE": "We are away at the moment"
+ "ONLINE": "हामी अनलाइन छौं।",
+ "OFFLINE": "हामी अहिले अनुपस्थित छौं।"
},
- "USER_MESSAGE": "Hi",
- "AGENT_MESSAGE": "Hello"
+ "USER_MESSAGE": "नमस्ते",
+ "AGENT_MESSAGE": "नमस्कार"
},
"BRANDING_TEXT": "Chatwoot द्वारा संचालित",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Microsoft सँग जडान गर्नुहोस्"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Google सँग जडान गर्नुहोस्"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "अन्य प्रदायकहरू",
+ "DESCRIPTION": "अन्य प्रदायकहरूसँग जडान गर्नुहोस्"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "मेसेन्जर",
+ "WEB_WIDGET": "वेबसाइट",
+ "TWITTER_PROFILE": "ट्विटर",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "इमेल",
+ "TELEGRAM": "टेलिग्राम",
+ "LINE": "लाइन",
+ "API": "API च्यानल",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "भ्वाइस"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/index.js b/app/javascript/dashboard/i18n/locale/ne/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/ne/index.js
+++ b/app/javascript/dashboard/i18n/locale/ne/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
index a80ecb837..a922473c6 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Enabled",
"DISABLED": "Disabled"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Actions",
"DELETE": {
"BUTTON_TEXT": "Delete"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Create",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Cancel"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/integrations.json b/app/javascript/dashboard/i18n/locale/ne/integrations.json
index f3c90e473..8838fa3eb 100644
--- a/app/javascript/dashboard/i18n/locale/ne/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/ne/integrations.json
@@ -1,213 +1,1103 @@
{
"INTEGRATION_SETTINGS": {
- "HEADER": "Integrations",
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Shopify एकीकरण मेटाउनु",
+ "MESSAGE": "के तपाईं साँच्चै Shopify एकीकरण मेटाउन चाहनुहुन्छ?"
+ },
+ "STORE_URL": {
+ "TITLE": "Shopify स्टोर जडान गर्नु",
+ "LABEL": "स्टोर URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "तपाईंको Shopify स्टोरको myshopify.com URL प्रविष्ट गर्नुहोस्",
+ "CANCEL": "रद्द गर्नु",
+ "SUBMIT": "स्टोर जडान गर्नु"
+ },
+ "ERROR": "Shopify सँग जडान गर्दा त्रुटि भयो। कृपया पुन: प्रयास गर्नुहोस् वा समस्या जारी रहेमा समर्थनलाई सम्पर्क गर्नुहोस्।"
+ },
+ "HEADER": "एकीकरणहरू",
+ "DESCRIPTION": "Chatwoot ले तपाईंको टोलीको कार्यक्षमता सुधार गर्न विभिन्न उपकरण र सेवाहरूसँग एकीकृत गर्दछ। तपाईंको मनपर्ने एपहरू कन्फिगर गर्न तलको सूची अन्वेषण गर्नुहोस्।",
+ "LEARN_MORE": "एकीकरणहरू बारे थप जान्नुहोस्",
+ "LOADING": "एकीकरणहरू ल्याउँदैछ",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "तपाईंको खातामा Captain सक्षम गरिएको छैन।",
+ "CLICK_HERE_TO_CONFIGURE": "कन्फिगर गर्न यहाँ क्लिक गर्नुहोस्",
+ "LOADING_CONSOLE": "Captain कन्सोल लोड हुँदैछ...",
+ "FAILED_TO_LOAD_CONSOLE": "Captain कन्सोल लोड गर्न असफल भयो। कृपया रिफ्रेश गरेर पुन: प्रयास गर्नुहोस्।"
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Subscribed Events",
+ "SUBSCRIBED_EVENTS": "सदस्यता लिएका घटनाहरू",
+ "LEARN_MORE": "वेबहुकहरू बारे थप जान्नुहोस्",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
- "CANCEL": "Cancel",
- "DESC": "Webhook events provide you the realtime information about what's happening in your Chatwoot account. Please enter a valid URL to configure a callback.",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "DESC": "वेबहुक घटनाहरूले तपाईंलाई तपाईंको Chatwoot खातामा के भइरहेको छ भन्ने बारे वास्तविक-समय जानकारी प्रदान गर्छ। कृपया कलब्याक कन्फिगर गर्न मान्य URL प्रविष्ट गर्नुहोस्।",
"SUBSCRIPTIONS": {
- "LABEL": "Events",
+ "LABEL": "घटनाहरू",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversation Created",
- "CONVERSATION_STATUS_CHANGED": "Conversation Status Changed",
- "CONVERSATION_UPDATED": "Conversation Updated",
- "MESSAGE_CREATED": "Message created",
- "MESSAGE_UPDATED": "Message updated",
- "WEBWIDGET_TRIGGERED": "Live chat widget opened by the user",
- "CONTACT_CREATED": "Contact created",
- "CONTACT_UPDATED": "Contact updated"
+ "CONVERSATION_CREATED": "संवाद सिर्जना भयो",
+ "CONVERSATION_STATUS_CHANGED": "संवाद स्थिति परिवर्तन भयो",
+ "CONVERSATION_UPDATED": "संवाद अपडेट भयो",
+ "MESSAGE_CREATED": "सन्देश सिर्जना भयो",
+ "MESSAGE_UPDATED": "सन्देश अपडेट भयो",
+ "WEBWIDGET_TRIGGERED": "प्रयोगकर्ताद्वारा लाइभ च्याट विजेट खोलियो",
+ "CONTACT_CREATED": "सम्पर्क सिर्जना भयो",
+ "CONTACT_UPDATED": "सम्पर्क अपडेट गरियो",
+ "CONVERSATION_TYPING_ON": "कुराकानी टाइप गर्दै छ",
+ "CONVERSATION_TYPING_OFF": "कुराकानी टाइप गर्दै छैन",
+ "INBOX_UPDATED": "Inbox updated"
}
},
- "END_POINT": {
- "LABEL": "Webhook URL",
- "PLACEHOLDER": "Example: https://example/api/webhook",
- "ERROR": "Please enter a valid URL"
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
},
- "EDIT_SUBMIT": "Update webhook",
- "ADD_SUBMIT": "Create webhook"
+ "END_POINT": {
+ "LABEL": "वेबहुक URL",
+ "PLACEHOLDER": "उदाहरण: {webhookExampleURL}",
+ "ERROR": "कृपया मान्य URL प्रविष्ट गर्नुहोस्"
+ },
+ "EDIT_SUBMIT": "वेबहुक अपडेट गर्नुहोस्",
+ "ADD_SUBMIT": "वेबहुक सिर्जना गर्नुहोस्"
},
- "TITLE": "Webhook",
- "CONFIGURE": "Configure",
- "HEADER": "Webhook settings",
- "HEADER_BTN_TXT": "Add new webhook",
- "LOADING": "Fetching attached webhooks",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Webhooks
Webhooks are HTTP callbacks which can be defined for every account. They are triggered by events like message creation in Chatwoot. You can create more than one webhook for this account.
For creating a webhook, click on the Add new webhook button. You can also remove any existing webhook by clicking on the Delete button.
",
+ "TITLE": "वेबहुक",
+ "CONFIGURE": "कन्फिगर गर्नुहोस्",
+ "HEADER": "वेबहुक सेटिङहरू",
+ "HEADER_BTN_TXT": "नयाँ वेबहुक थप्नुहोस्",
+ "LOADING": "जोडिएका वेबहुकहरू ल्याउँदैछ",
+ "SEARCH_404": "यस सोधपुछसँग मेल खाने कुनै वस्तुहरू छैनन्",
+ "SIDEBAR_TXT": "वेबहुकहरू
वेबहुकहरू HTTP कलब्याकहरू हुन् जुन प्रत्येक खाताका लागि परिभाषित गर्न सकिन्छ। तिनीहरू Chatwoot मा सन्देश सिर्जना जस्ता घटनाहरूले ट्रिगर हुन्छन्। तपाईं यस खाताका लागि एक भन्दा बढी वेबहुकहरू सिर्जना गर्न सक्नुहुन्छ।
वेबहुक सिर्जना गर्न, नयाँ वेबहुक थप्नुहोस् बटनमा क्लिक गर्नुहोस्। तपाईं कुनै पनि अवस्थित वेबहुकलाई मेटाउन Delete बटनमा क्लिक गर्न सक्नुहुन्छ।
",
"LIST": {
- "404": "There are no webhooks configured for this account.",
- "TITLE": "Manage webhooks",
- "TABLE_HEADER": [
- "Webhook endpoint",
- "Actions"
- ]
+ "404": "यस खाताका लागि कुनै वेबहुकहरू कन्फिगर गरिएको छैन।",
+ "TITLE": "वेबहुकहरू व्यवस्थापन गर्नुहोस्",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "वेबहुक अन्त्यबिन्दु",
+ "ACTIONS": "कार्यहरू"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Edit",
- "TITLE": "Edit webhook",
+ "BUTTON_TEXT": "सम्पादन गर्नुहोस्",
+ "TITLE": "वेबहुक सम्पादन गर्नुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration updated successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "वेबहुक कन्फिगरेसन सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "Woot सर्भरसँग जडान गर्न सकिएन, कृपया पछि फेरि प्रयास गर्नुहोस्"
}
},
"ADD": {
- "CANCEL": "Cancel",
- "TITLE": "Add new webhook",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "TITLE": "नयाँ वेबहुक थप्नुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Webhook configuration added successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "वेबहुक कन्फिगरेसन सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "Woot सर्भरसँग जडान गर्न सकिएन, कृपया पछि फेरि प्रयास गर्नुहोस्"
}
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "मेटाउनुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Webhook deleted successfully",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "वेबहुक सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "Woot सर्भरसँग जडान गर्न सकिएन, कृपया पछि फेरि प्रयास गर्नुहोस्"
},
"CONFIRM": {
- "TITLE": "Confirm Deletion",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
- "YES": "Yes, Delete ",
- "NO": "No, Keep it"
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "MESSAGE": "के तपाईं वेबहुक मेटाउन निश्चित हुनुहुन्छ? ({webhookURL})",
+ "YES": "हो, मेटाउनुहोस् ",
+ "NO": "होइन, राख्नुहोस्"
}
}
},
"SLACK": {
- "DELETE": "Delete",
+ "HEADER": "Slack",
+ "DELETE": "मेटाउनुहोस्",
"DELETE_CONFIRMATION": {
- "TITLE": "Delete the integration",
- "MESSAGE": "Are you sure you want to delete the integration? Doing so will result in the loss of access to conversations on your Slack workspace."
+ "TITLE": "एकीकरण मेटाउनुहोस्",
+ "MESSAGE": "के तपाईं निश्चित रूपमा एकीकरण मेटाउन चाहनुहुन्छ? यसो गर्दा तपाईंको Slack कार्यक्षेत्रमा कुराकानीहरू पहुँच गुम्नेछ।"
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
- "SELECTED": "selected"
+ "BODY": "यस एकीकरणसँग, तपाईंका सबै आउने कुराकानीहरू तपाईंको Slack workspace भित्रको ***{selectedChannelName}*** च्यानलमा sync हुनेछन्। तपाईं च्यानलमै बसेर आफ्ना सबै ग्राहक कुराकानीहरू व्यवस्थापन गर्न सक्नुहुन्छ र कहिल्यै कुनै सन्देश छुटाउनु पर्दैन।\n\nयस एकीकरणका मुख्य सुविधाहरू यस्ता छन्:\n\n**Slack भित्रैबाट कुराकानीहरूलाई जवाफ दिनुहोस्:** ***{selectedChannelName}*** Slack च्यानलमा रहेको कुनै कुराकानीलाई जवाफ दिन, आफ्नो सन्देश टाइप गर्नुहोस् र यसलाई thread को रूपमा पठाउनुहोस्। यसले Chatwoot मार्फत ग्राहकलाई जवाफ सिर्जना गर्नेछ। यति नै सजिलो!\n\n **निजी नोटहरू सिर्जना गर्नुहोस्:** यदि तपाईं reply को सट्टा निजी नोटहरू सिर्जना गर्न चाहनुहुन्छ भने, आफ्नो सन्देशको सुरुमा ***`note:`*** लेख्नुहोस्। यसले तपाईंको सन्देश निजी नै रहन्छ र ग्राहकलाई देखिँदैन भन्ने सुनिश्चित गर्छ।\n\n**एजेन्ट प्रोफाइललाई associate गर्नुहोस्:** यदि Slack मा reply गर्ने व्यक्तिको Chatwoot मा उही email अन्तर्गत एजेन्ट प्रोफाइल छ भने, reply हरू स्वतः त्यही एजेन्ट प्रोफाइलसँग associate हुनेछन्। यसको अर्थ तपाईंले कसले के भन्यो र कहिले भन्यो भनेर सजिलै ट्र्याक गर्न सक्नुहुन्छ। अर्कोतर्फ, reply गर्ने व्यक्तिसँग कुनै associated एजेन्ट प्रोफाइल छैन भने, ग्राहकलाई reply हरू bot profile बाट आएको रूपमा देखिनेछन्.",
+ "SELECTED": "छानिएको"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Select a channel",
- "UPDATE": "Update",
- "BUTTON_TEXT": "Connect channel",
- "DESCRIPTION": "Your Slack workspace is now linked with Chatwoot. However, the integration is currently inactive. To activate the integration and connect a channel to Chatwoot, please click the button below.\n\n**Note:** If you are attempting to connect a private channel, add the Chatwoot app to the Slack channel before proceeding with this step.",
- "ATTENTION_REQUIRED": "Attention required",
- "EXPIRED": "Your Slack integration has expired. To continue receiving messages on Slack, please delete the integration and connect your workspace again."
+ "OPTION_LABEL": "च्यानल छान्नुहोस्",
+ "UPDATE": "अद्यावधिक गर्नुहोस्",
+ "BUTTON_TEXT": "च्यानल जडान गर्नुहोस्",
+ "DESCRIPTION": "तपाईंको Slack कार्यक्षेत्र अहिले Chatwoot सँग जडान गरिएको छ। तर, एकीकरण हाल निष्क्रिय छ। एकीकरण सक्रिय गर्न र Chatwoot सँग च्यानल जडान गर्न तलको बटनमा क्लिक गर्नुहोस्।\n\n**सूचना:** यदि तपाईं निजी च्यानल जडान गर्न खोज्दै हुनुहुन्छ भने, यस चरण अघि Chatwoot एपलाई Slack च्यानलमा थप्नुहोस्।",
+ "ATTENTION_REQUIRED": "ध्यान आवश्यक छ",
+ "EXPIRED": "तपाईंको Slack एकीकरणको म्याद सकियो। Slack मा सन्देशहरू प्राप्त गर्न जारी राख्न, कृपया एकीकरण मेटाउनुहोस् र पुनः कार्यक्षेत्र जडान गर्नुहोस्।"
},
- "UPDATE_ERROR": "There was an error updating the integration, please try again",
- "UPDATE_SUCCESS": "The channel is connected successfully",
- "FAILED_TO_FETCH_CHANNELS": "There was an error fetching the channels from Slack, please try again"
+ "UPDATE_ERROR": "एकीकरण अद्यावधिक गर्दा त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्",
+ "UPDATE_SUCCESS": "च्यानल सफलतापूर्वक जडान गरियो",
+ "FAILED_TO_FETCH_CHANNELS": "Slack बाट च्यानलहरू ल्याउन त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
},
"DYTE": {
- "CLICK_HERE_TO_JOIN": "Click here to join",
- "LEAVE_THE_ROOM": "Leave the room",
- "START_VIDEO_CALL_HELP_TEXT": "Start a new video call with the customer",
- "JOIN_ERROR": "There was an error joining the call, please try again",
- "CREATE_ERROR": "There was an error creating a meeting link, please try again"
+ "CLICK_HERE_TO_JOIN": "सामेल हुन यहाँ क्लिक गर्नुहोस्",
+ "LEAVE_THE_ROOM": "कोठा छोड्नुहोस्",
+ "START_VIDEO_CALL_HELP_TEXT": "ग्राहकसँग नयाँ भिडियो कल सुरु गर्नुहोस्",
+ "JOIN_ERROR": "कलमा सामेल हुन त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "CREATE_ERROR": "बैठक लिंक सिर्जना गर्न त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्"
},
"OPEN_AI": {
- "AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "AI_ASSIST": "AI सहायता",
+ "WITH_AI": " {option} AI सँग ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Reply Suggestion",
- "SUMMARIZE": "Summarize",
- "REPHRASE": "Improve Writing",
- "FIX_SPELLING_GRAMMAR": "Fix Spelling and Grammar",
- "SHORTEN": "Shorten",
- "EXPAND": "Expand",
- "MAKE_FRIENDLY": "Change message tone to friendly",
- "MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "REPLY_SUGGESTION": "जवाफ सुझाव",
+ "SUMMARIZE": "सारांश गर्नुहोस्",
+ "REPHRASE": "लेखन सुधार्नुहोस्",
+ "FIX_SPELLING_GRAMMAR": "वर्तनी र व्याकरण सुधार्नुहोस्",
+ "SHORTEN": "छोटो गर्नुहोस्",
+ "EXPAND": "विस्तार गर्नुहोस्",
+ "MAKE_FRIENDLY": "सन्देशको स्वर मैत्रीपूर्ण बनाउनुहोस्",
+ "MAKE_FORMAL": "औपचारिक स्वर प्रयोग गर्नुहोस्",
+ "SIMPLIFY": "सरलीकृत गर्नुहोस्",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
- "DRAFT_TITLE": "Draft content",
- "GENERATED_TITLE": "Generated content",
- "AI_WRITING": "AI is writing",
+ "DRAFT_TITLE": "मसौदा सामग्री",
+ "GENERATED_TITLE": "उत्पन्न सामग्री",
+ "AI_WRITING": "AI लेख्दैछ",
"BUTTONS": {
- "APPLY": "Use this suggestion",
- "CANCEL": "Cancel"
+ "APPLY": "यो सुझाव प्रयोग गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
}
},
"CTA_MODAL": {
- "TITLE": "Integrate with OpenAI",
- "DESC": "Bring advanced AI features to your dashboard with OpenAI's GPT models. To begin, enter the API key from your OpenAI account.",
- "KEY_PLACEHOLDER": "Enter your OpenAI API key",
+ "TITLE": "OpenAI सँग एकीकरण गर्नुहोस्",
+ "DESC": "OpenAI का GPT मोडेलहरूसँग तपाईंको ड्यासबोर्डमा उन्नत AI सुविधाहरू ल्याउनुहोस्। सुरु गर्न, तपाईंको OpenAI खाताबाट API कुञ्जी प्रविष्ट गर्नुहोस्।",
+ "KEY_PLACEHOLDER": "तपाईंको OpenAI API कुञ्जी प्रविष्ट गर्नुहोस्",
"BUTTONS": {
- "NEED_HELP": "Need help?",
- "DISMISS": "Dismiss",
- "FINISH": "Finish Setup"
+ "NEED_HELP": "मद्दत चाहिन्छ?",
+ "DISMISS": "अस्वीकार गर्नुहोस्",
+ "FINISH": "सेटअप पूरा गर्नुहोस्"
},
- "DISMISS_MESSAGE": "You can setup OpenAI integration later Whenever you want.",
- "SUCCESS_MESSAGE": "OpenAI integration setup successfully"
+ "DISMISS_MESSAGE": "तपाईं पछि कहिले पनि OpenAI एकीकरण सेटअप गर्न सक्नुहुन्छ।",
+ "SUCCESS_MESSAGE": "OpenAI एकीकरण सफलतापूर्वक सेटअप भयो"
},
- "TITLE": "Improve With AI",
- "SUMMARY_TITLE": "Summary with AI",
- "REPLY_TITLE": "Reply suggestion with AI",
- "SUBTITLE": "An improved reply will be generated using AI, based on your current draft.",
+ "TITLE": "AI सँग सुधार गर्नुहोस्",
+ "SUMMARY_TITLE": "AI सँग सारांश",
+ "REPLY_TITLE": "AI सँग जवाफ सुझाव",
+ "SUBTITLE": "तपाईंको हालको ड्राफ्टको आधारमा AI प्रयोग गरी सुधारिएको जवाफ तयार गरिनेछ।",
"TONE": {
- "TITLE": "Tone",
+ "TITLE": "स्वर",
"OPTIONS": {
- "PROFESSIONAL": "Professional",
- "FRIENDLY": "Friendly"
+ "PROFESSIONAL": "व्यावसायिक",
+ "FRIENDLY": "मैत्रीपूर्ण"
}
},
"BUTTONS": {
- "GENERATE": "Generate",
- "GENERATING": "Generating...",
- "CANCEL": "Cancel"
+ "GENERATE": "उत्पन्न गर्नुहोस्",
+ "GENERATING": "उत्पन्न हुँदैछ...",
+ "CANCEL": "रद्द गर्नुहोस्"
},
"GENERATE_ERROR": "There was an error processing the content, please try again"
},
"DELETE": {
- "BUTTON_TEXT": "Delete",
+ "BUTTON_TEXT": "मेटाउनुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Integration deleted successfully"
+ "SUCCESS_MESSAGE": "एकीकरण सफलतापूर्वक मेटाइयो"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Connect"
+ "BUTTON_TEXT": "जोड्नुहोस्"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Add a new dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "TITLE": "ड्यासबोर्ड एपहरू",
+ "HEADER_BTN_TXT": "नयाँ ड्यासबोर्ड एप थप्नुहोस्",
+ "SIDEBAR_TXT": "ड्यासबोर्ड एपहरू
ड्यासबोर्ड एपहरूले संस्थाहरूलाई ग्राहक सहायता एजेन्टहरूको सन्दर्भ प्रदान गर्न Chatwoot ड्यासबोर्ड भित्र एप्लिकेशन एम्बेड गर्न अनुमति दिन्छ। यस सुविधाले तपाईंलाई स्वतन्त्र रूपमा एप्लिकेशन सिर्जना गर्न र त्यसलाई ड्यासबोर्ड भित्र एम्बेड गरेर प्रयोगकर्ता जानकारी, तिनीहरूको अर्डरहरू, वा तिनीहरूको अघिल्लो भुक्तानी इतिहास प्रदान गर्न अनुमति दिन्छ।
जब तपाईंले Chatwoot मा ड्यासबोर्ड प्रयोग गरेर आफ्नो एप्लिकेशन एम्बेड गर्नुहुन्छ, तपाईंको एप्लिकेशनले संवाद र सम्पर्कको सन्दर्भ विन्डो इभेन्टको रूपमा प्राप्त गर्नेछ। सन्देश इभेन्टको लागि आफ्नो पृष्ठमा लिस्नर कार्यान्वयन गर्नुहोस् ताकि सन्दर्भ प्राप्त गर्न सकियोस्।
नयाँ ड्यासबोर्ड एप थप्न, 'नयाँ ड्यासबोर्ड एप थप्नुहोस्' बटनमा क्लिक गर्नुहोस्।
",
+ "DESCRIPTION": "ड्यासबोर्ड एपहरूले संस्थाहरूलाई ग्राहक सहायता एजेन्टहरूको सन्दर्भ प्रदान गर्न ड्यासबोर्ड भित्र एप्लिकेशन एम्बेड गर्न अनुमति दिन्छ। यस सुविधाले तपाईंलाई स्वतन्त्र रूपमा एप्लिकेशन सिर्जना गर्न र त्यसलाई प्रयोगकर्ता जानकारी, तिनीहरूको अर्डरहरू, वा तिनीहरूको अघिल्लो भुक्तानी इतिहास प्रदान गर्न एम्बेड गर्न अनुमति दिन्छ।",
+ "LEARN_MORE": "ड्यासबोर्ड एपहरू बारे थप जान्नुहोस्",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
- "404": "There are no dashboard apps configured on this account yet",
- "LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Name",
- "Endpoint"
- ],
- "EDIT_TOOLTIP": "Edit app",
- "DELETE_TOOLTIP": "Delete app"
+ "404": "यस खातामा अहिलेसम्म कुनै ड्यासबोर्ड एपहरू कन्फिगर गरिएको छैन",
+ "LOADING": "ड्यासबोर्ड एपहरू ल्याउँदैछ...",
+ "TABLE_HEADER": {
+ "NAME": "नाम",
+ "ENDPOINT": "अन्त्यबिन्दु",
+ "ACTIONS": "Actions"
+ },
+ "EDIT_TOOLTIP": "एप सम्पादन गर्नुहोस्",
+ "DELETE_TOOLTIP": "एप्लिकेसन मेटाउनुहोस्"
},
"FORM": {
- "TITLE_LABEL": "Name",
- "TITLE_PLACEHOLDER": "Enter a name for your dashboard app",
- "TITLE_ERROR": "A name for the dashboard app is required",
- "URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Enter the endpoint URL where your app is hosted",
- "URL_ERROR": "A valid URL is required"
+ "TITLE_LABEL": "नाम",
+ "TITLE_PLACEHOLDER": "तपाईंको ड्यासबोर्ड एप्लिकेसनको लागि नाम प्रविष्ट गर्नुहोस्",
+ "TITLE_ERROR": "ड्यासबोर्ड एप्लिकेसनको लागि नाम आवश्यक छ",
+ "URL_LABEL": "एन्डपोइन्ट",
+ "URL_PLACEHOLDER": "तपाईंको एप्लिकेसन होस्ट गरिएको एन्डपोइन्ट URL प्रविष्ट गर्नुहोस्",
+ "URL_ERROR": "मान्य URL आवश्यक छ"
},
"CREATE": {
- "HEADER": "Add a new dashboard app",
+ "HEADER": "नयाँ ड्यासबोर्ड एप्लिकेसन थप्नुहोस्",
"FORM_SUBMIT": "बुझाउनुहोस्",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app configured successfully",
- "API_ERROR": "We couldn't create an app. Please try again later"
+ "FORM_CANCEL": "रद्द गर्नुहोस्",
+ "API_SUCCESS": "ड्यासबोर्ड एप्लिकेसन सफलतापूर्वक कन्फिगर गरियो",
+ "API_ERROR": "हामी एप्लिकेसन सिर्जना गर्न सकेनौं। कृपया पछि फेरि प्रयास गर्नुहोस्"
},
"UPDATE": {
- "HEADER": "Edit dashboard app",
- "FORM_SUBMIT": "Update",
- "FORM_CANCEL": "Cancel",
- "API_SUCCESS": "Dashboard app updated successfully",
- "API_ERROR": "We couldn't update the app. Please try again later"
+ "HEADER": "ड्यासबोर्ड एप्लिकेसन सम्पादन गर्नुहोस्",
+ "FORM_SUBMIT": "अपडेट गर्नुहोस्",
+ "FORM_CANCEL": "रद्द गर्नुहोस्",
+ "API_SUCCESS": "ड्यासबोर्ड एप्लिकेसन सफलतापूर्वक अपडेट गरियो",
+ "API_ERROR": "हामी एप्लिकेसन अपडेट गर्न सकेनौं। कृपया पछि फेरि प्रयास गर्नुहोस्"
},
"DELETE": {
- "CONFIRM_YES": "Yes, delete it",
- "CONFIRM_NO": "No, keep it",
- "TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
- "API_SUCCESS": "Dashboard app deleted successfully",
- "API_ERROR": "We couldn't delete the app. Please try again later"
+ "CONFIRM_YES": "हो, मेटाउनुहोस्",
+ "CONFIRM_NO": "होइन, राख्नुहोस्",
+ "TITLE": "मेटाउने पुष्टि गर्नुहोस्",
+ "MESSAGE": "के तपाईं {appName} एप मेटाउन निश्चित हुनुहुन्छ?",
+ "API_SUCCESS": "ड्यासबोर्ड एप्लिकेसन सफलतापूर्वक मेटाइयो",
+ "API_ERROR": "हामी एप्लिकेसन मेटाउन सकेनौं। कृपया पछि फेरि प्रयास गर्नुहोस्"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Linear मुद्दा सिर्जना/जोड्नुहोस्",
+ "LOADING": "Linear मुद्दाहरू ल्याउँदैछ...",
+ "LOADING_ERROR": "Linear मुद्दाहरू ल्याउन त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "LINK": {
+ "SEARCH": "मुद्दा खोज्नुहोस्",
+ "SELECT": "मुद्दा छान्नुहोस्",
+ "TITLE": "जोड्नुहोस्",
+ "EMPTY_LIST": "कुनै Linear मुद्दा फेला परेन",
+ "LOADING": "लोड हुँदैछ",
+ "ERROR": "Linear मुद्दाहरू ल्याउन त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "LINK_SUCCESS": "मुद्दा सफलतापूर्वक जोडियो",
+ "LINK_ERROR": "मुद्दा जोड्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "LINK_TITLE": "संवाद (#{conversationId}) {name} सँग"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Linear मुद्दा सिर्जना/जोड्नुहोस्",
+ "DESCRIPTION": "कुराकानीबाट Linear मुद्दाहरू सिर्जना गर्नुहोस्, वा अवस्थितलाई जोडेर सहज ट्र्याकिङ गर्नुहोस्।",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "शीर्षक",
+ "PLACEHOLDER": "शीर्षक प्रविष्ट गर्नुहोस्",
+ "REQUIRED_ERROR": "शीर्षक आवश्यक छ"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "विवरण प्रविष्ट गर्नुहोस्"
+ },
+ "TEAM": {
+ "LABEL": "टोली",
+ "PLACEHOLDER": "टोली चयन गर्नुहोस्",
+ "SEARCH": "टोली खोज्नुहोस्",
+ "REQUIRED_ERROR": "टोली आवश्यक छ"
+ },
+ "ASSIGNEE": {
+ "LABEL": "जिम्मेवार व्यक्ति",
+ "PLACEHOLDER": "जिम्मेवार चयन गर्नुहोस्",
+ "SEARCH": "जिम्मेवार खोज्नुहोस्"
+ },
+ "PRIORITY": {
+ "LABEL": "प्राथमिकता",
+ "PLACEHOLDER": "प्राथमिकता चयन गर्नुहोस्",
+ "SEARCH": "प्राथमिकता खोज्नुहोस्"
+ },
+ "LABEL": {
+ "LABEL": "लेबल",
+ "PLACEHOLDER": "लेबल चयन गर्नुहोस्",
+ "SEARCH": "लेबल खोज्नुहोस्"
+ },
+ "STATUS": {
+ "LABEL": "स्थिति",
+ "PLACEHOLDER": "स्थिति चयन गर्नुहोस्",
+ "SEARCH": "स्थिति खोज्नुहोस्"
+ },
+ "PROJECT": {
+ "LABEL": "परियोजना",
+ "PLACEHOLDER": "परियोजना चयन गर्नुहोस्",
+ "SEARCH": "परियोजना खोज्नुहोस्"
+ }
+ },
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "CREATE_SUCCESS": "मुद्दा सफलतापूर्वक सिर्जना भयो",
+ "CREATE_ERROR": "मुद्दा सिर्जना गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्",
+ "LOADING_TEAM_ERROR": "टोलीहरू ल्याउन समस्या भयो, कृपया पुन: प्रयास गर्नुहोस्",
+ "LOADING_TEAM_ENTITIES_ERROR": "टोली संस्थाहरू ल्याउन समस्या भयो, कृपया पुन: प्रयास गर्नुहोस्"
+ },
+ "ISSUE": {
+ "STATUS": "स्थिति",
+ "PRIORITY": "प्राथमिकता",
+ "ASSIGNEE": "जिम्मेवार व्यक्ति",
+ "LABELS": "लेबलहरू",
+ "CREATED_AT": "{createdAt} मा सिर्जना गरिएको"
+ },
+ "UNLINK": {
+ "TITLE": "जोड हटाउनुहोस्",
+ "SUCCESS": "मुद्दा सफलतापूर्वक जोड हटाइयो",
+ "ERROR": "मुद्दा अनलिंक गर्दा समस्या भयो, कृपया फेरि प्रयास गर्नुहोस्"
+ },
+ "NO_LINKED_ISSUES": "कुनै लिंक गरिएको समस्या फेला परेन",
+ "DELETE": {
+ "TITLE": "के तपाईं निश्चित हुनुहुन्छ कि एकीकरण मेटाउन चाहनुहुन्छ?",
+ "MESSAGE": "के तपाईं निश्चित हुनुहुन्छ कि एकीकरण मेटाउन चाहनुहुन्छ?",
+ "CONFIRM": "हो, मेटाउनु",
+ "CANCEL": "रद्द गर्नु"
+ },
+ "CTA": {
+ "TITLE": "Linear सँग जडान गर्नुहोस्",
+ "AGENT_DESCRIPTION": "Linear कार्यक्षेत्र जडान गरिएको छैन। यो एकीकरण प्रयोग गर्न तपाईंको प्रशासकलाई कार्यक्षेत्र जडान गर्न अनुरोध गर्नुहोस्।",
+ "DESCRIPTION": "Linear कार्यक्षेत्र जडान गरिएको छैन। यो एकीकरण प्रयोग गर्न तलको बटनमा क्लिक गरेर तपाईंको कार्यक्षेत्र जडान गर्नुहोस्।",
+ "BUTTON_TEXT": "Linear कार्यक्षेत्र जडान गर्नुहोस्"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "के तपाईं साँच्चै Notion एकीकरण मेटाउन चाहनुहुन्छ?",
+ "MESSAGE": "यो एकीकरण मेटाउँदा तपाईंको Notion कार्यक्षेत्र पहुँच हटाइनेछ र सबै सम्बन्धित कार्यक्षमता रोकिनेछ।",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "कप्तान",
+ "HEADER_KNOW_MORE": "थप जान्नु",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "सहायकहरू",
+ "SWITCH_ASSISTANT": "सहायकहरू बीच साट्नुस्",
+ "NEW_ASSISTANT": "सहायक सिर्जना गर्नुहोस्",
+ "EMPTY_LIST": "कुनै सहायक फेला परेन, सुरु गर्न कृपया एउटा सिर्जना गर्नुहोस्"
+ },
+ "COPILOT": {
+ "TITLE": "कोपाइलट",
+ "TRY_THESE_PROMPTS": "यी प्रॉम्प्टहरू प्रयास गर्नुहोस्",
+ "PANEL_TITLE": "कोपाइलटसँग सुरु गर्नुहोस्",
+ "KICK_OFF_MESSAGE": "छिटो सारांश चाहिन्छ, विगतका कुराकानीहरू जाँच गर्न चाहनुहुन्छ, वा राम्रो जवाफ तयार पार्न चाहनुहुन्छ? कोपाइलट यहाँ छ छिटो बनाउन।",
+ "SEND_MESSAGE": "सन्देश पठाउनुहोस्...",
+ "EMPTY_MESSAGE": "प्रतिक्रिया सिर्जना गर्दा त्रुटि भयो। कृपया पुन: प्रयास गर्नुहोस्।",
+ "LOADER": "Captain सोच्दैछ",
+ "YOU": "तपाईं",
+ "USE": "यो प्रयोग गर्नुहोस्",
+ "RESET": "रिसेट गर्नुहोस्",
+ "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 प्रयोग गर्न अपग्रेड गर्नुहोस्",
+ "AVAILABLE_ON": "Captain निःशुल्क योजनामा उपलब्ध छैन।",
+ "UPGRADE_PROMPT": "हाम्रो सहायकहरू, कोपाइलट र थप सुविधाहरू पहुँच गर्न आफ्नो योजना अपग्रेड गर्नुहोस्।",
+ "UPGRADE_NOW": "अहिले अपग्रेड गर्नुहोस्",
+ "CANCEL_ANYTIME": "तपाईं आफ्नो योजना कुनै पनि समयमा परिवर्तन वा रद्द गर्न सक्नुहुन्छ"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI केवल Enterprise योजनाहरूमा उपलब्ध छ।",
+ "UPGRADE_PROMPT": "हाम्रो सहायकहरू, कोपाइलट र थप सुविधाहरू पहुँच गर्न आफ्नो योजना अपग्रेड गर्नुहोस्।",
+ "ASK_ADMIN": "कृपया अपग्रेडका लागि आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।"
+ },
+ "BANNER": {
+ "RESPONSES": "तपाईंले आफ्नो प्रतिक्रिया सीमा 80% भन्दा बढी प्रयोग गर्नुभएको छ। Captain AI प्रयोग जारी राख्न कृपया अपग्रेड गर्नुहोस्।",
+ "DOCUMENTS": "कागजात सीमा पुगेको छ। Captain AI प्रयोग जारी राख्न अपग्रेड गर्नुहोस्।"
+ },
+ "FORM": {
+ "CANCEL": "रद्द गर्नुहोस्",
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "EDIT": "अद्यावधिक गर्नुहोस्"
+ },
+ "ASSISTANTS": {
+ "HEADER": "सहायकहरू",
+ "NO_ASSISTANTS_AVAILABLE": "तपाईंको खातामा कुनै सहायक उपलब्ध छैन।",
+ "ADD_NEW": "नयाँ सहायक सिर्जना गर्नुहोस्",
+ "DELETE": {
+ "TITLE": "के तपाईं सहायक मेटाउन निश्चित हुनुहुन्छ?",
+ "DESCRIPTION": "यो कार्य स्थायी छ। सहायक मेटाउँदा यसले सबै जडित इनबक्सहरूबाट हटाइनेछ र सबै सिर्जित ज्ञान स्थायी रूपमा मेटाइनेछ।",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "SUCCESS_MESSAGE": "सहायक सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "सहायक मेटाउँदा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM_DESCRIPTION": "तलका विवरणहरू भरेर तपाईंको सहायकको नाम राख्नुहोस्, यसको उद्देश्य वर्णन गर्नुहोस्, र समर्थन गर्ने उत्पादन निर्दिष्ट गर्नुहोस्।",
+ "CREATE": {
+ "TITLE": "सहायक सिर्जना गर्नुहोस्",
+ "SUCCESS_MESSAGE": "सहायक सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "सहायक सिर्जना गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM": {
+ "UPDATE": "अद्यावधिक गर्नु",
+ "SECTIONS": {
+ "BASIC_INFO": "मूल जानकारी",
+ "SYSTEM_MESSAGES": "प्रणाली सन्देशहरू",
+ "INSTRUCTIONS": "निर्देशनहरू",
+ "FEATURES": "विशेषताहरू",
+ "TOOLS": "उपकरणहरू "
+ },
+ "NAME": {
+ "LABEL": "नाम",
+ "PLACEHOLDER": "सहायकको नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "नाम आवश्यक छ"
+ },
+ "TEMPERATURE": {
+ "LABEL": "प्रतिक्रिया तापक्रम",
+ "DESCRIPTION": "सहायकको प्रतिक्रियाहरू कति सिर्जनात्मक वा प्रतिबन्धित हुनुपर्छ समायोजन गर्नुहोस्। कम मानहरूले बढी केन्द्रित र निश्चित प्रतिक्रियाहरू उत्पादन गर्छन्, जबकि उच्च मानहरूले बढी सिर्जनात्मक र विविध आउटपुटहरू अनुमति दिन्छ।"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "सहायकको विवरण प्रविष्ट गर्नुहोस्",
+ "ERROR": "विवरण आवश्यक छ"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "उत्पादन नाम",
+ "PLACEHOLDER": "उत्पादनको नाम प्रविष्ट गर्नुहोस्",
+ "ERROR": "उत्पादन नाम आवश्यक छ"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "स्वागत सन्देश",
+ "PLACEHOLDER": "स्वागत सन्देश प्रविष्ट गर्नुहोस्"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "ह्यान्डअफ सन्देश",
+ "PLACEHOLDER": "ह्यान्डअफ सन्देश प्रविष्ट गर्नुहोस्"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "समाधान सन्देश",
+ "PLACEHOLDER": "समाधान सन्देश प्रविष्ट गर्नुहोस्"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "निर्देशनहरू",
+ "PLACEHOLDER": "सहायकका लागि निर्देशनहरू प्रविष्ट गर्नुहोस्"
+ },
+ "FEATURES": {
+ "TITLE": "विशेषताहरू",
+ "ALLOW_CONVERSATION_FAQS": "समाधान भएका कुराकानीबाट FAQ उत्पन्न गर्नुहोस्",
+ "ALLOW_MEMORIES": "ग्राहक अन्तरक्रियाबाट मुख्य विवरणहरू सम्झनाहरूको रूपमा समात्नुहोस्।",
+ "ALLOW_CITATIONS": "उत्तरहरूमा स्रोत उद्धरणहरू समावेश गर्नुहोस्",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "EDIT": {
+ "TITLE": "सहायक अद्यावधिक गर्नुहोस्",
+ "SUCCESS_MESSAGE": "सहायक सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR_MESSAGE": "सहायक अद्यावधिक गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।",
+ "NOT_FOUND": "सहायक फेला परेन। कृपया पुन: प्रयास गर्नुहोस्।"
+ },
+ "SETTINGS": {
+ "HEADER": "Settings",
+ "BASIC_SETTINGS": {
+ "TITLE": "मूल सेटिङहरू",
+ "DESCRIPTION": "कुराकानी समाप्त गर्दा वा मानवमा हस्तान्तरण गर्दा सहायकले के भन्छ अनुकूलित गर्नुहोस्।"
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "प्रणाली सेटिङहरू",
+ "DESCRIPTION": "कुराकानी समाप्त गर्दा वा मानवमा हस्तान्तरण गर्दा सहायकले के भन्छ अनुकूलित गर्नुहोस्।"
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "रमाइलो कुरा",
+ "DESCRIPTION": "सहायकलाई थप नियन्त्रण थप्नुहोस्। (थोरै दृश्यात्मक जस्तै कथा: सोधपुछ गार्डरेल → परिदृश्यहरू → आउटपुट) प्रयोगकर्तालाई यी प्रयोग गर्न प्रोत्साहित गर्दछ।",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "गार्डरेलहरू",
+ "DESCRIPTION": "चीजहरू ट्रयाकमा राख्छ—तपाईंको सहायकले जवाफ दिन चाहने प्रश्नहरूको प्रकार मात्र, कुनै पनि सीमा बाहिर वा विषय बाहिर छैन।"
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "प्रतिक्रिया मार्गनिर्देशनहरू",
+ "DESCRIPTION": "तपाईंको सहायकका जवाफको शैली र संरचना—स्पष्ट र मैत्रीपूर्ण? छोटो र छरितो? विस्तृत र औपचारिक?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "सहायक सम्पादन गर्नुहोस्",
+ "DELETE_ASSISTANT": "सहायक मेटाउनुहोस्",
+ "VIEW_CONNECTED_INBOXES": "जडित इनबक्सहरू हेर्नुहोस्"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "कुनै सहायक उपलब्ध छैन",
+ "SUBTITLE": "छिटो र सही उत्तर दिन सहायक बनाउन एक सहायक सिर्जना गर्नुहोस्। यसले तपाईंका सहायता लेख र विगतका कुराकानीहरूबाट सिक्न सक्छ।",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain सहायक",
+ "NOTE": "Captain सहायकले सिधा ग्राहकसँग संवाद गर्छ, तपाईंका सहायता कागजात र विगतका कुराकानीबाट सिक्छ, र छिटो र सही उत्तर दिन्छ। यसले प्रारम्भिक प्रश्नहरू सम्हाल्छ र आवश्यक परे एजेन्टलाई स्थानान्तरण गर्छ।"
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "सीमाहरू",
+ "DESCRIPTION": "सबै कुरा ट्र्याकमा राख्छ—सहायकले तपाईंले चाहेका प्रश्नहरू मात्र जवाफ दिन्छ, अरू कुनै विषय वा सीमा बाहिर जाँदैन।",
+ "BULK_ACTION": {
+ "SELECTED": "{count} वस्तु चयन गरियो | {count} वस्तुहरू चयन गरियो",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "हटाउनुहोस्"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "उदाहरण सीमाहरू",
+ "ADD": "सबै थप्नुहोस्",
+ "ADD_SINGLE": "यो थप्नुहोस्",
+ "SAVE": "थप्नुहोस् र सुरक्षित गर्नुहोस् (↵)",
+ "PLACEHOLDER": "अर्को सीमा टाइप गर्नुहोस्..."
+ },
+ "NEW": {
+ "TITLE": "नयाँ गार्डरेल थप्नुहोस्",
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "PLACEHOLDER": "अर्को गार्डरेल टाइप गर्नुहोस्...",
+ "TEST_ALL": "सबै परीक्षण गर्नुहोस्"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "खोज्नुहोस्..."
+ },
+ "EMPTY_MESSAGE": "कुनै गार्डरेल भेटिएन। सुरु गर्न उदाहरणहरू सिर्जना वा थप्नुहोस्।",
+ "SEARCH_EMPTY_MESSAGE": "यो खोजमा कुनै गार्डरेल भेटिएन।",
+ "API": {
+ "ADD": {
+ "SUCCESS": "गार्डरेलहरू सफलतापूर्वक थपियो",
+ "ERROR": "गार्डरेल थप्दा त्रुटि आयो, कृपया पुन: प्रयास गर्नुहोस्।"
+ },
+ "UPDATE": {
+ "SUCCESS": "गार्डरेलहरू सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR": "गार्डरेल्स अद्यावधिक गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "DELETE": {
+ "SUCCESS": "गार्डरेल्स सफलतापूर्वक हटाइयो",
+ "ERROR": "गार्डरेल्स हटाउँदा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "उत्तर दिने निर्देशिका",
+ "DESCRIPTION": "तपाईंको सहायकका उत्तरहरूको शैली र संरचना—स्पष्ट र मैत्रीपूर्ण? छोटो र छरितो? विस्तृत र औपचारिक?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} वस्तु चयन गरियो | {count} वस्तुहरू चयन गरियो",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "हटाउनुहोस्"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "उत्तर निर्देशिकाका उदाहरणहरू",
+ "ADD": "सबै थप्नुहोस्",
+ "ADD_SINGLE": "यो थप्नुहोस्",
+ "SAVE": "थप्नुहोस् र सुरक्षित गर्नुहोस् (↵)",
+ "PLACEHOLDER": "अर्को प्रतिक्रिया मार्गनिर्देशन टाइप गर्नुहोस्..."
+ },
+ "NEW": {
+ "TITLE": "प्रतिक्रिया मार्गनिर्देशन थप्नुहोस्",
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "PLACEHOLDER": "अर्को प्रतिक्रिया मार्गनिर्देशन टाइप गर्नुहोस्...",
+ "TEST_ALL": "सबै परीक्षण गर्नुहोस्"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "खोज्नुहोस्..."
+ },
+ "EMPTY_MESSAGE": "प्रतिक्रिया मार्गनिर्देशन फेला परेन। सुरु गर्न उदाहरणहरू सिर्जना वा थप्नुहोस्।",
+ "SEARCH_EMPTY_MESSAGE": "यो खोजमा कुनै उत्तर निर्देशनहरू भेटिएन।",
+ "API": {
+ "ADD": {
+ "SUCCESS": "प्रतिक्रिया मार्गनिर्देशन सफलतापूर्वक थपियो",
+ "ERROR": "प्रतिक्रिया मार्गनिर्देशन थप्दा त्रुटि आयो, कृपया पुन: प्रयास गर्नुहोस्।"
+ },
+ "UPDATE": {
+ "SUCCESS": "उत्तर निर्देशनहरू सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR": "उत्तर निर्देशनहरू अद्यावधिक गर्दा त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "DELETE": {
+ "SUCCESS": "उत्तर निर्देशनहरू सफलतापूर्वक हटाइयो",
+ "ERROR": "उत्तर निर्देशनहरू हटाउँदा त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "परिदृश्यहरू",
+ "DESCRIPTION": "आफ्नो सहायकलाई केही सन्दर्भ दिनुहोस्—जस्तै “प्रयोगकर्ता अल्झिएको बेला के गर्ने”, वा “रिफन्ड अनुरोधमा कसरी व्यवहार गर्ने।”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} वस्तु चयन गरियो | {count} वस्तुहरू चयन गरियो",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "हटाउनुहोस्"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "उदाहरण परिदृश्यहरू",
+ "ADD": "सबै थप्नुहोस्",
+ "ADD_SINGLE": "यो थप्नुहोस्",
+ "TOOLS_USED": "प्रयोग गरिएका उपकरणहरू :"
+ },
+ "NEW": {
+ "CREATE": "परिदृश्य थप्नुहोस्",
+ "TITLE": "परिदृश्य सिर्जना गर्नुहोस्",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "शीर्षक",
+ "PLACEHOLDER": "परिदृश्यको नाम लेख्नुहोस्",
+ "ERROR": "परिदृश्यको नाम आवश्यक छ"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "यो परिदृश्य कसरी र कहाँ प्रयोग हुन्छ वर्णन गर्नुहोस्",
+ "ERROR": "परिदृश्य विवरण आवश्यक छ"
+ },
+ "INSTRUCTION": {
+ "LABEL": "कसरी व्यवस्थापन गर्ने",
+ "PLACEHOLDER": "यो परिदृश्य कसरी र कहाँ व्यवस्थापन हुन्छ वर्णन गर्नुहोस्",
+ "ERROR": "परिदृश्य सामग्री आवश्यक छ"
+ },
+ "CREATE": "सिर्जना गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "रद्द गर्नुहोस्",
+ "UPDATE": "परिवर्तनहरू अद्यावधिक गर्नुहोस्"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "खोज्नुहोस्..."
+ },
+ "EMPTY_MESSAGE": "कुनै परिदृश्य फेला परेन। सुरु गर्न नयाँ सिर्जना वा उदाहरणहरू थप्नुहोस्।",
+ "SEARCH_EMPTY_MESSAGE": "यो खोजीमा कुनै परिदृश्य भेटिएन।",
+ "API": {
+ "ADD": {
+ "SUCCESS": "परिदृश्यहरू सफलतापूर्वक थपियो",
+ "ERROR": "परिदृश्यहरू थप्दा त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "UPDATE": {
+ "SUCCESS": "परिदृश्यहरू सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR": "परिदृश्यहरू अद्यावधिक गर्दा त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "DELETE": {
+ "SUCCESS": "परिदृश्यहरू सफलतापूर्वक हटाइयो",
+ "ERROR": "परिदृश्यहरू हटाउँदा त्रुटि आयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "कागजातहरू",
+ "ADD_NEW": "नयाँ कागजात सिर्जना गर्नुहोस्",
+ "SELECTED": "{count} चयन गरियो",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "UNSELECT_ALL": "सबै चयन हटाउनुहोस् ({count})",
+ "BULK_DELETE_BUTTON": "Delete",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "हो, सबै मेटाउनु",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "असफल"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "पृष्ठ फेला परेन",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "सम्बन्धित FAQ",
+ "DESCRIPTION": "यी FAQ सिधा कागजातबाट उत्पन्न भएका हुन्।"
+ },
+ "FORM_DESCRIPTION": "कागजातको URL प्रविष्ट गर्नुहोस् र यसलाई ज्ञान स्रोतको रूपमा थप्न र सम्बन्धित सहायक चयन गर्नुस्।",
+ "CREATE": {
+ "TITLE": "कागजात थप्नुहोस्",
+ "SUCCESS_MESSAGE": "कागजात सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "कागजात सिर्जना गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "कागजात प्रकार",
+ "URL": "URL",
+ "PDF": "PDF फाइल"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "कागजातको URL प्रविष्ट गर्नुहोस्",
+ "ERROR": "कृपया कागजातको लागि मान्य URL प्रदान गर्नुहोस्"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF फाइल",
+ "CHOOSE_FILE": "PDF फाइल छान्नुहोस्",
+ "ERROR": "कृपया PDF फाइल चयन गर्नुहोस्",
+ "HELP_TEXT": "अधिकतम फाइल साइज: १०MB",
+ "INVALID_TYPE": "कृपया मान्य PDF फाइल चयन गर्नुहोस्",
+ "TOO_LARGE": "फाइल साइज १०MB भन्दा बढी छ"
+ },
+ "NAME": {
+ "LABEL": "डोकुमेन्ट नाम (वैकल्पिक)",
+ "PLACEHOLDER": "डोकुमेन्टको नाम लेख्नुहोस्"
+ }
+ },
+ "DELETE": {
+ "TITLE": "के तपाईं कागजात मेटाउन निश्चित हुनुहुन्छ?",
+ "DESCRIPTION": "यो कार्य स्थायी छ। कागजात मेटाउँदा सबै सिर्जित ज्ञान स्थायी रूपमा मेटाइनेछ।",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "SUCCESS_MESSAGE": "कागजात सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "कागजात मेटाउँदा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "सम्बन्धित प्रतिक्रियाहरू हेर्नुहोस्",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "कागजात मेटाउनुहोस्"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "कुनै कागजात उपलब्ध छैन",
+ "SUBTITLE": "कागजातहरू तपाईंको सहायकलाई FAQ उत्पन्न गर्न प्रयोग गरिन्छ। तपाईं कागजातहरू आयात गरेर सहायकलाई सन्दर्भ प्रदान गर्न सक्नुहुन्छ।",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Captain कागजात",
+ "NOTE": "Captain मा कागजात सहायकको लागि ज्ञान स्रोतको रूपमा काम गर्छ। तपाईंको सहायता केन्द्र वा मार्गनिर्देशनहरू जडान गरेर, Captain सामग्री विश्लेषण गरी ग्राहक प्रश्नहरूको लागि सही उत्तर दिन सक्छ।"
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "उपकरणहरू",
+ "ADD_NEW": "नयाँ उपकरण बनाउनुहोस्",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "कुनै कस्टम उपकरण उपलब्ध छैन",
+ "SUBTITLE": "आफ्नो सहायकलाई बाह्य API र सेवासँग जडान गर्न कस्टम उपकरणहरू बनाउनुहोस्, जसले तपाईंको लागि डेटा ल्याउन र कार्यहरू गर्न सक्षम बनाउँछ।",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "कस्टम उपकरणहरू",
+ "NOTE": "कस्टम उपकरणहरूले तपाईंको सहायकलाई बाह्य API र सेवासँग अन्तरक्रिया गर्न अनुमति दिन्छ। डेटा ल्याउन, कार्यहरू गर्न, वा तपाईंको प्रणालीसँग एकीकृत गर्न उपकरणहरू बनाउनुहोस् र सहायकको क्षमता बढाउनुहोस्।"
+ }
+ },
+ "FORM_DESCRIPTION": "बाह्य API सँग जडान गर्न आफ्नो कस्टम उपकरण कन्फिगर गर्नुहोस्",
+ "OPTIONS": {
+ "EDIT_TOOL": "उपकरण सम्पादन गर्नुहोस्",
+ "DELETE_TOOL": "उपकरण हटाउनुहोस्"
+ },
+ "CREATE": {
+ "TITLE": "कस्टम उपकरण बनाउनुहोस्",
+ "SUCCESS_MESSAGE": "कस्टम उपकरण सफलतापूर्वक बनाइयो",
+ "ERROR_MESSAGE": "कस्टम टुल बनाउन असफल भयो"
+ },
+ "EDIT": {
+ "TITLE": "कस्टम टुल सम्पादन गर्नुहोस्",
+ "SUCCESS_MESSAGE": "कस्टम टुल सफलतापूर्वक अपडेट भयो",
+ "ERROR_MESSAGE": "कस्टम टुल अपडेट गर्न असफल भयो"
+ },
+ "DELETE": {
+ "TITLE": "कस्टम टुल मेटाउनुहोस्",
+ "DESCRIPTION": "के तपाईं यो कस्टम टुल मेटाउन निश्चित हुनुहुन्छ? यो कार्य पूर्ववत गर्न सकिँदैन।",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "SUCCESS_MESSAGE": "कस्टम टुल सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "कस्टम टुल मेटाउन असफल भयो"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "टुलको नाम",
+ "PLACEHOLDER": "अर्डर खोज्नुहोस्",
+ "ERROR": "टुलको नाम आवश्यक छ",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण",
+ "PLACEHOLDER": "अर्डर ID द्वारा अर्डर विवरण खोज्छ"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "विधि"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "एन्डपोइन्ट URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "मान्य URL आवश्यक छ"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "प्रमाणीकरण प्रकार"
+ },
+ "AUTH_TYPES": {
+ "NONE": "कुनै होइन",
+ "BEARER": "Bearer Token",
+ "BASIC": "बेसिक प्रमाणीकरण",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "आफ्नो bearer token प्रविष्ट गर्नुहोस्",
+ "USERNAME": "प्रयोगकर्ता नाम",
+ "USERNAME_PLACEHOLDER": "प्रयोगकर्ता नाम लेख्नुहोस्",
+ "PASSWORD": "पासवर्ड",
+ "PASSWORD_PLACEHOLDER": "पासवर्ड लेख्नुहोस्",
+ "API_KEY": "हेडर नाम",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "हेडर मान",
+ "API_VALUE_PLACEHOLDER": "API कुञ्जी मान प्रविष्ट गर्नुहोस्"
+ },
+ "PARAMETERS": {
+ "LABEL": "प्यारामिटरहरू",
+ "HELP_TEXT": "प्रयोगकर्ताका प्रश्नबाट निकालिने प्यारामिटरहरू परिभाषित गर्नुहोस्"
+ },
+ "ADD_PARAMETER": "प्यारामिटर थप्नुहोस्",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "प्यारामिटर नाम (जस्तै, order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "प्रकार"
+ },
+ "PARAM_TYPES": {
+ "STRING": "स्ट्रिङ",
+ "NUMBER": "संख्या",
+ "BOOLEAN": "बुलियन",
+ "ARRAY": "एरे",
+ "OBJECT": "वस्तु"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "प्यारामिटरको विवरण"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "आवश्यक"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "अनुरोध बडी टेम्प्लेट (वैकल्पिक)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "प्रतिक्रिया टेम्प्लेट (वैकल्पिक)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQ",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "नयाँ FAQ सिर्जना गर्नुहोस्",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "कुराकानी #{id}"
+ },
+ "SELECTED": "{count} चयन गरियो",
+ "SELECT_ALL": "सबै चयन गर्नुहोस् ({count})",
+ "UNSELECT_ALL": "सबै चयन हटाउनुहोस् ({count})",
+ "SEARCH_PLACEHOLDER": "FAQs खोज्नुहोस्...",
+ "BULK_APPROVE_BUTTON": "स्वीकृत गर्नु",
+ "BULK_DELETE_BUTTON": "मेटाउनु",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQ सफलतापूर्वक स्वीकृत भयो",
+ "ERROR_MESSAGE": "FAQ स्वीकृत गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "BULK_DELETE": {
+ "TITLE": "FAQ मेटाउने?",
+ "DESCRIPTION": "के तपाईं चयनित FAQ मेटाउन निश्चित हुनुहुन्छ? यो कार्य पूर्ववत गर्न सकिँदैन।",
+ "CONFIRM": "हो, सबै मेटाउनु",
+ "SUCCESS_MESSAGE": "FAQ सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "FAQ मेटाउँदा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "DELETE": {
+ "TITLE": "के तपाईं FAQ मेटाउन निश्चित हुनुहुन्छ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "SUCCESS_MESSAGE": "FAQ सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "FAQ मेटाउँदा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FILTER": {
+ "ASSISTANT": "सहायक: {selected}",
+ "STATUS": "स्थिति: {selected}",
+ "ALL_ASSISTANTS": "सबै"
+ },
+ "STATUS": {
+ "TITLE": "स्थिति",
+ "PENDING": "प्रतीक्षा अवस्थामा",
+ "APPROVED": "स्वीकृत",
+ "ALL": "सबै"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "ज्ञान आधारमा प्रश्न र यसको सम्बन्धित उत्तर थप्नुहोस् र सम्बन्धित सहायक चयन गर्नुहोस्।",
+ "CREATE": {
+ "TITLE": "FAQ थप्नुहोस्",
+ "SUCCESS_MESSAGE": "उत्तर सफलतापूर्वक थपियो।",
+ "ERROR_MESSAGE": "उत्तर थप्दा त्रुटि भयो। कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "प्रश्न",
+ "PLACEHOLDER": "यहाँ प्रश्न प्रविष्ट गर्नुहोस्",
+ "ERROR": "कृपया मान्य प्रश्न प्रदान गर्नुहोस्।"
+ },
+ "ANSWER": {
+ "LABEL": "उत्तर",
+ "PLACEHOLDER": "यहाँ उत्तर प्रविष्ट गर्नुहोस्",
+ "ERROR": "कृपया मान्य उत्तर प्रदान गर्नुहोस्।"
+ }
+ },
+ "EDIT": {
+ "TITLE": "FAQ अपडेट गर्नुहोस्",
+ "SUCCESS_MESSAGE": "FAQ सफलतापूर्वक अपडेट गरियो।",
+ "ERROR_MESSAGE": "FAQ अपडेट गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।",
+ "APPROVE_SUCCESS_MESSAGE": "FAQ लाई स्वीकृतको रूपमा चिन्हित गरियो।"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edit",
+ "DELETE_RESPONSE": "Delete"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "कुनै FAQ फेला परेन",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQ ले तपाईंको सहायकलाई ग्राहकका प्रश्नहरूमा छिटो र सही उत्तर दिन मद्दत गर्छ। यी स्वचालित रूपमा वा म्यानुअली थप्न सकिन्छ।",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "क्याप्टेन FAQ",
+ "NOTE": "Captain FAQs ले सामान्य ग्राहक प्रश्नहरू पत्ता लगाउँछ—तपाईंको ज्ञान आधारमा नभएका वा बारम्बार सोधिने—र समर्थन सुधार गर्न सम्बन्धित FAQs सिर्जना गर्छ। तपाईं प्रत्येक सुझाव समीक्षा गर्न सक्नुहुन्छ र स्वीकृत वा अस्वीकृत गर्ने निर्णय लिन सक्नुहुन्छ।"
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "जोडिएका इनबक्सहरू",
+ "ADD_NEW": "नयाँ इनबक्स जडान गर्नुहोस्",
+ "OPTIONS": {
+ "DISCONNECT": "जडान काट्नुहोस्"
+ },
+ "DELETE": {
+ "TITLE": "के तपाईं पक्का हुनुहुन्छ इनबक्स जडान काट्न?",
+ "DESCRIPTION": "",
+ "CONFIRM": "हो, मेटाउनुहोस्",
+ "SUCCESS_MESSAGE": "इनबक्स सफलतापूर्वक जडान काटियो।",
+ "ERROR_MESSAGE": "इनबक्स जडान काट्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM_DESCRIPTION": "सहायकसँग जडान गर्न इनबक्स चयन गर्नुहोस्।",
+ "CREATE": {
+ "TITLE": "इनबक्स जडान गर्नुहोस्",
+ "SUCCESS_MESSAGE": "इनबक्स सफलतापूर्वक जडान गरियो।",
+ "ERROR_MESSAGE": "इनबक्स जडान गर्दा त्रुटि भयो। कृपया फेरि प्रयास गर्नुहोस्।"
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "इनबक्स",
+ "PLACEHOLDER": "सहायक तैनाथ गर्न इनबक्स चयन गर्नुहोस्।",
+ "ERROR": "इनबक्स चयन आवश्यक छ।"
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "कुनै जडान गरिएको इनबक्स छैन",
+ "SUBTITLE": "इनबक्स जडान गर्दा सहायकले ग्राहकका प्रारम्भिक प्रश्नहरू सम्हाल्न सक्छ र आवश्यक परे एजेन्टलाई स्थानान्तरण गर्न सक्छ।"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
index 09ac38551..96e272e46 100644
--- a/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/ne/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labels",
"HEADER_BTN_TXT": "Add label",
"LOADING": "Fetching labels",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "Labels
Labels help you to categorize conversations and prioritize them. You can assign label to a conversation from the sidepanel.
Labels are tied to the account and can be used to create custom workflows in your organization. You can assign custom color to a label, it makes it easier to identify the label. You will be able to display the label on the sidebar to filter the conversations easily.
",
"LIST": {
"404": "There are no labels available in this account.",
"TITLE": "Manage labels",
"DESC": "Labels let you group the conversations together.",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "Color"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "DESCRIPTION": "Description",
+ "COLOR": "Color",
+ "ACTION": "Actions"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Add label",
diff --git a/app/javascript/dashboard/i18n/locale/ne/login.json b/app/javascript/dashboard/i18n/locale/ne/login.json
index 858d40656..a34ed1783 100644
--- a/app/javascript/dashboard/i18n/locale/ne/login.json
+++ b/app/javascript/dashboard/i18n/locale/ne/login.json
@@ -3,7 +3,7 @@
"TITLE": "Login to Chatwoot",
"EMAIL": {
"LABEL": "Email",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Please enter a valid email address"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Forgot your password?",
"CREATE_NEW_ACCOUNT": "Create new account",
- "SUBMIT": "Login"
+ "SUBMIT": "Login",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/macros.json b/app/javascript/dashboard/i18n/locale/ne/macros.json
index 3a59d4f26..e51975921 100644
--- a/app/javascript/dashboard/i18n/locale/ne/macros.json
+++ b/app/javascript/dashboard/i18n/locale/ne/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Name",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Name",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Actions"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/mfa.json b/app/javascript/dashboard/i18n/locale/ne/mfa.json
new file mode 100644
index 000000000..17eddd553
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Enabled",
+ "DISABLED": "Disabled",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copy",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancel",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "डाउनलोड",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Password",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancel",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancel",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/onboarding.json b/app/javascript/dashboard/i18n/locale/ne/onboarding.json
new file mode 100644
index 000000000..e519167de
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "Email",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "वेबसाइट",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "समय क्षेत्र",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "समय क्षेत्र चयन गर्नुहोस्",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "जारी राख्नुहोस्",
+ "SAVING": "सेभ हुँदैछ...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/report.json b/app/javascript/dashboard/i18n/locale/ne/report.json
index 6ff84c5f5..66bad1006 100644
--- a/app/javascript/dashboard/i18n/locale/ne/report.json
+++ b/app/javascript/dashboard/i18n/locale/ne/report.json
@@ -1,119 +1,105 @@
{
"REPORT": {
- "HEADER": "Conversations",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
- "SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
+ "HEADER": "संवादहरू",
+ "LOADING_CHART": "चार्ट डेटा लोड हुँदैछ...",
+ "NO_ENOUGH_DATA": "रिपोर्ट बनाउन पर्याप्त डेटा बिन्दुहरू प्राप्त भएका छैनन्, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "DOWNLOAD_CONVERSATION_REPORTS": "वार्तालाप रिपोर्टहरू डाउनलोड गर्नुहोस्",
+ "DATA_FETCHING_FAILED": "डेटा ल्याउन असफल, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "SUMMARY_FETCHING_FAILED": "सारांश ल्याउन असफल, कृपया पछि पुन: प्रयास गर्नुहोस्।",
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "संवादहरू",
+ "DESC": "( कुल )"
},
"INCOMING_MESSAGES": {
"NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "DESC": "( कुल )"
},
"OUTGOING_MESSAGES": {
"NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "DESC": "( जम्मा )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "पहिलो प्रतिक्रिया समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "पहिलो प्रतिक्रिया समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "समाधान समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "समाधान समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "समाधान गणना",
+ "DESC": "( जम्मा )"
+ },
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "समाधान गणना",
+ "DESC": "( कुल )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "ह्यान्डअफ संख्या",
+ "DESC": "( कुल )"
},
"REPLY_TIME": {
- "NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "NAME": "ग्राहक प्रतीक्षा समय",
+ "TOOLTIP_TEXT": "पर्खाइ समय {metricValue} हो (आधारित {conversationCount} जवाफहरूमा)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
- "LAST_7_DAYS": "Last 7 days",
- "LAST_30_DAYS": "Last 30 days",
- "LAST_3_MONTHS": "Last 3 months",
- "LAST_6_MONTHS": "Last 6 months",
- "LAST_YEAR": "Last year",
- "CUSTOM_DATE_RANGE": "Custom date range"
+ "LAST_7_DAYS": "अघिल्लो 7 दिन",
+ "LAST_14_DAYS": "अघिल्लो 14 दिन",
+ "LAST_30_DAYS": "अघिल्लो 30 दिन",
+ "THIS_MONTH": "यो महिना",
+ "LAST_MONTH": "अघिल्लो महिना",
+ "LAST_3_MONTHS": "अघिल्लो 3 महिना",
+ "LAST_6_MONTHS": "अघिल्लो 6 महिना",
+ "LAST_YEAR": "अघिल्लो वर्ष",
+ "CUSTOM_DATE_RANGE": "अनुकूलित मिति दायरा"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Last 7 days"
- },
- {
- "id": 1,
- "name": "Last 30 days"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "लागू गर्नुहोस्",
+ "PLACEHOLDER": "मिति दायरा छान्नुहोस्"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Group By",
- "DURATION_FILTER_LABEL": "Duration",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "समूह अनुसार",
+ "DURATION_FILTER_LABEL": "अवधि",
"GROUPING_OPTIONS": {
- "DAY": "Day",
- "WEEK": "Week",
- "MONTH": "Month",
+ "DAY": "दिन",
+ "WEEK": "हप्ता",
+ "MONTH": "महिना",
"YEAR": "Month"
},
"GROUP_BY_DAY_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "दिन"
}
],
"GROUP_BY_WEEK_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "दिन"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "हप्ता"
}
],
"GROUP_BY_MONTH_OPTIONS": [
{
"id": 1,
- "groupBy": "Day"
+ "groupBy": "दिन"
},
{
"id": 2,
- "groupBy": "Week"
+ "groupBy": "हप्ता"
},
{
"id": 3,
- "groupBy": "Month"
+ "groupBy": "महिना"
}
],
"GROUP_BY_YEAR_OPTIONS": [
@@ -130,351 +116,535 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "व्यावसायिक समय",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "फिल्टर हटाउनुहोस्",
+ "EMPTY_LIST": "कुनै परिणाम फेला परेन"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / पृष्ठ"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Agents Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_AGENT_REPORTS": "Download agent reports",
- "FILTER_DROPDOWN_LABEL": "Select Agent",
+ "HEADER": "एजेन्टहरूको अवलोकन",
+ "DESCRIPTION": "कुराकानीहरू, प्रतिक्रिया समयहरू, समाधान समयहरू, र समाधान भएका केसहरू जस्ता मुख्य मेट्रिक्सहरूसँग एजेन्ट प्रदर्शन सजिलै ट्र्याक गर्नुहोस्। थप जान्न एजेन्टको नाममा क्लिक गर्नुहोस्।",
+ "LOADING_CHART": "चार्ट डेटा लोड हुँदैछ...",
+ "NO_ENOUGH_DATA": "रिपोर्ट बनाउन पर्याप्त डेटा बिन्दुहरू प्राप्त भएका छैनन्, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "DOWNLOAD_AGENT_REPORTS": "एजेन्ट प्रतिवेदन डाउनलोड गर्नुहोस्",
+ "FILTER_DROPDOWN_LABEL": "एजेन्ट छान्नुहोस्",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "एजेन्ट खोज्नुहोस्"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "संवादहरू",
+ "DESC": "( कुल )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "आउँदै गरेका सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "जाने सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "पहिलो प्रतिक्रिया समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "पहिलो प्रतिक्रिया समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "समाधान समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "समाधान समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "समाधान गणना",
+ "DESC": "( कुल )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "अघिल्लो 7 दिन"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "अघिल्लो 30 दिन"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "अघिल्लो 3 महिना"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "अघिल्लो 6 महिना"
},
{
"id": 4,
- "name": "Last year"
+ "name": "अघिल्लो वर्ष"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "अनुकूलित मिति दायरा"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "लागू गर्नुहोस्",
+ "PLACEHOLDER": "मिति दायरा छान्नुहोस्"
}
},
"LABEL_REPORTS": {
- "HEADER": "Labels Overview",
- "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",
- "FILTER_DROPDOWN_LABEL": "Select Label",
+ "HEADER": "लेबलहरूको संक्षिप्त विवरण",
+ "DESCRIPTION": "मुख्य मेट्रिक्सहरू सहित लेबल प्रदर्शन ट्र्याक गर्नुहोस् जस्तै कुराकानीहरू, प्रतिक्रिया समयहरू, समाधान समयहरू, र समाधान भएका केसहरू। विस्तृत जानकारीका लागि लेबल नाममा क्लिक गर्नुहोस्।",
+ "LOADING_CHART": "चार्ट डेटा लोड हुँदैछ...",
+ "NO_ENOUGH_DATA": "रिपोर्ट बनाउन पर्याप्त डेटा बिन्दुहरू प्राप्त भएका छैनन्, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "DOWNLOAD_LABEL_REPORTS": "लेबल रिपोर्ट डाउनलोड गर्नुहोस्",
+ "FILTER_DROPDOWN_LABEL": "लेबल छान्नुहोस्",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "लेबल खोज्नुहोस्"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "संवादहरू",
+ "DESC": "( कुल )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "आउँदै गरेका सन्देशहरू",
+ "DESC": "( कुल )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "जाने सन्देशहरू",
+ "DESC": "( कुल )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "पहिलो प्रतिक्रिया समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "पहिलो प्रतिक्रिया समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "समाधान समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "समाधान समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "समाधान संख्या",
+ "DESC": "( कुल )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "अघिल्लो 7 दिन"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "अघिल्लो 30 दिन"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "अघिल्लो 3 महिना"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "अघिल्लो 6 महिना"
},
{
"id": 4,
- "name": "Last year"
+ "name": "अघिल्लो वर्ष"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "अनुकूलित मिति दायरा"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "लागू गर्नुहोस्",
+ "PLACEHOLDER": "मिति दायरा छान्नुहोस्"
}
},
"INBOX_REPORTS": {
- "HEADER": "Inbox Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
- "FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "HEADER": "इनबक्सको संक्षिप्त विवरण",
+ "DESCRIPTION": "छिटो रूपमा तपाईंको इनबक्स प्रदर्शन हेर्नुहोस् मुख्य मेट्रिक्सहरू जस्तै कुराकानीहरू, प्रतिक्रिया समयहरू, समाधान समयहरू, र समाधान भएका केसहरू—all एउटै ठाउँमा। थप विवरणका लागि इनबक्स नाममा क्लिक गर्नुहोस्।",
+ "LOADING_CHART": "चार्ट डेटा लोड हुँदैछ...",
+ "NO_ENOUGH_DATA": "रिपोर्ट बनाउन पर्याप्त डेटा बिन्दुहरू प्राप्त भएका छैनन्, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "DOWNLOAD_INBOX_REPORTS": "इनबक्स रिपोर्ट डाउनलोड गर्नुहोस्",
+ "FILTER_DROPDOWN_LABEL": "इनबक्स छान्नुहोस्",
+ "ALL_INBOXES": "सबै इनबक्सहरू",
+ "SEARCH_INBOX": "इनबक्स खोज्नुहोस्",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "इनबक्स खोज्नुहोस्"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "संवादहरू",
+ "DESC": "( कुल )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "आउँदै गरेका सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "जाने सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "पहिलो प्रतिक्रिया समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "पहिलो प्रतिक्रिया समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "समाधान समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "समाधान समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "समाधान गणना",
+ "DESC": "( कुल )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "अघिल्लो 7 दिन"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "अघिल्लो 30 दिन"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "अघिल्लो 3 महिना"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "अघिल्लो 6 महिना"
},
{
"id": 4,
- "name": "Last year"
+ "name": "अघिल्लो वर्ष"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "अनुकूलित मिति दायरा"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "लागू गर्नुहोस्",
+ "PLACEHOLDER": "मिति दायरा छान्नुहोस्"
}
},
"TEAM_REPORTS": {
- "HEADER": "Team Overview",
- "LOADING_CHART": "Loading chart data...",
- "NO_ENOUGH_DATA": "We've not received enough data points to generate report, Please try again later.",
- "DOWNLOAD_TEAM_REPORTS": "Download team reports",
- "FILTER_DROPDOWN_LABEL": "Select Team",
+ "HEADER": "टोली अवलोकन",
+ "DESCRIPTION": "आवश्यक मेट्रिक्सहरूसहित तपाईंको टीमको प्रदर्शनको झलक पाउनुहोस्, जस्तै कुराकानीहरू, प्रतिक्रिया समयहरू, समाधान समयहरू, र समाधान भएका केसहरू। थप विवरणका लागि टीम नाममा क्लिक गर्नुहोस्।",
+ "LOADING_CHART": "चार्ट डेटा लोड हुँदैछ...",
+ "NO_ENOUGH_DATA": "रिपोर्ट बनाउन पर्याप्त डेटा बिन्दुहरू प्राप्त भएका छैनन्, कृपया पछि पुन: प्रयास गर्नुहोस्।",
+ "DOWNLOAD_TEAM_REPORTS": "टोली प्रतिवेदन डाउनलोड गर्नुहोस्",
+ "FILTER_DROPDOWN_LABEL": "टोली छान्नुहोस्",
+ "FILTERS": {
+ "ADD_FILTER": "फिल्टर थप्नुहोस्",
+ "CLEAR_ALL": "सबै हटाउनुहोस्",
+ "NO_FILTER": "फिल्टरहरू उपलब्ध छैनन्",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "टोली खोज्नुहोस्"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
- "NAME": "Conversations",
- "DESC": "( Total )"
+ "NAME": "संवादहरू",
+ "DESC": "( कुल )"
},
"INCOMING_MESSAGES": {
- "NAME": "Incoming Messages",
- "DESC": "( Total )"
+ "NAME": "आउँदै गरेका सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Outgoing Messages",
- "DESC": "( Total )"
+ "NAME": "जाने सन्देशहरू",
+ "DESC": "( जम्मा )"
},
"FIRST_RESPONSE_TIME": {
- "NAME": "First Response Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "पहिलो प्रतिक्रिया समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "पहिलो प्रतिक्रिया समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_TIME": {
- "NAME": "Resolution Time",
- "DESC": "( Avg )",
- "INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "NAME": "समाधान समय",
+ "DESC": "( औसत )",
+ "INFO_TEXT": "गणनाका लागि प्रयोग गरिएका कुल संवादहरूको संख्या:",
+ "TOOLTIP_TEXT": "समाधान समय {metricValue} हो (आधारित {conversationCount} कुराकानीहरूमा)"
},
"RESOLUTION_COUNT": {
- "NAME": "Resolution Count",
- "DESC": "( Total )"
+ "NAME": "समाधान गणना",
+ "DESC": "( कुल )"
}
},
"DATE_RANGE": [
{
"id": 0,
- "name": "Last 7 days"
+ "name": "अघिल्लो 7 दिन"
},
{
"id": 1,
- "name": "Last 30 days"
+ "name": "अघिल्लो 30 दिन"
},
{
"id": 2,
- "name": "Last 3 months"
+ "name": "अघिल्लो 3 महिना"
},
{
"id": 3,
- "name": "Last 6 months"
+ "name": "अघिल्लो 6 महिना"
},
{
"id": 4,
- "name": "Last year"
+ "name": "अघिल्लो वर्ष"
},
{
"id": 5,
- "name": "Custom date range"
+ "name": "अनुकूलित मिति दायरा"
}
],
"CUSTOM_DATE_RANGE": {
- "CONFIRM": "Apply",
- "PLACEHOLDER": "Select date range"
+ "CONFIRM": "लागू गर्नुहोस्",
+ "PLACEHOLDER": "मिति दायरा छान्नुहोस्"
}
},
"CSAT_REPORTS": {
- "HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
- "DOWNLOAD": "Download CSAT Reports",
- "DOWNLOAD_FAILED": "Failed to download CSAT Reports",
+ "HEADER": "CSAT प्रतिवेदनहरू",
+ "NO_RECORDS": "अझै कुनै प्रतिक्रिया छैन",
+ "NO_RECORDS_DESCRIPTION": "ग्राहकहरूले प्रतिक्रिया दिन थालेपछि CSAT सर्वेक्षण प्रतिक्रियाहरू यहाँ देखिनेछन्।",
+ "DOWNLOAD": "CSAT प्रतिवेदन डाउनलोड गर्नुहोस्",
+ "DOWNLOAD_FAILED": "CSAT प्रतिवेदन डाउनलोड गर्न असफल",
"FILTERS": {
+ "ADD_FILTER": "फिल्टर थप्नुहोस्",
+ "CLEAR_ALL": "सबै हटाउनुहोस्",
+ "NO_FILTER": "फिल्टर उपलब्ध छैनन्",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "एजेन्टहरू खोज्नुहोस्",
+ "INBOXES": "इनबक्सहरू खोज्नुहोस्",
+ "TEAMS": "टोलीहरू खोज्नुहोस्",
+ "RATINGS": "रेटिङहरू खोज्नुहोस्"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "एजेन्ट"
+ },
+ "INBOXES": {
+ "LABEL": "इनबक्स"
+ },
+ "TEAMS": {
+ "LABEL": "टोली"
+ },
+ "RATINGS": {
+ "LABEL": "रेटिङ"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
- "RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "CONTACT_NAME": "सम्पर्क",
+ "AGENT_NAME": "एजेन्ट",
+ "RATING": "मूल्याङ्कन",
+ "FEEDBACK_TEXT": "प्रतिक्रिया टिप्पणी",
+ "CONVERSATION": "संवाद",
+ "CUSTOMER": "ग्राहक",
+ "RESPONSE": "प्रतिक्रिया",
+ "HANDLED_BY": "कसले ह्यान्डल गरे"
+ },
+ "UNKNOWN_CUSTOMER": "अज्ञात ग्राहक"
},
+ "NO_AGENT": "कुनै एजेन्ट तोकिएको छैन",
+ "NO_FEEDBACK": "कुनै प्रतिक्रिया प्रदान गरिएको छैन",
"METRIC": {
"TOTAL_RESPONSES": {
- "LABEL": "Total responses",
- "TOOLTIP": "Total number of responses collected"
+ "LABEL": "कुल प्रतिक्रियाहरू",
+ "TOOLTIP": "सङ्कलन गरिएका प्रतिक्रियाहरूको कुल संख्या"
},
"SATISFACTION_SCORE": {
- "LABEL": "Satisfaction score",
- "TOOLTIP": "Total number of positive responses / Total number of responses * 100"
+ "LABEL": "सन्तुष्टि स्कोर",
+ "TOOLTIP": "सकारात्मक प्रतिक्रियाहरूको कुल संख्या / प्रतिक्रियाहरूको कुल संख्या * 100"
},
"RESPONSE_RATE": {
- "LABEL": "Response rate",
- "TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ "LABEL": "प्रतिक्रिया दर",
+ "TOOLTIP": "प्रतिक्रियाहरूको कुल संख्या / पठाइएका CSAT सर्वेक्षण सन्देशहरूको कुल संख्या * 100"
+ },
+ "RATING_DISTRIBUTION": "रेटिङ वितरण"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "समीक्षा नोटहरू",
+ "PLACEHOLDER": "यो रेटिङको समीक्षा नोटहरू थप्नुहोस्...",
+ "SAVE": "सेभ गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "SAVING": "सेभ हुँदैछ...",
+ "SAVED": "नोटहरू सफलतापूर्वक सेभ गरियो",
+ "SAVE_ERROR": "नोटहरू सेभ गर्न असफल",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "अपडेट गर्ने",
+ "PAYWALL": {
+ "TITLE": "समीक्षा नोटहरू थप्न अपग्रेड गर्नुहोस्",
+ "AVAILABLE_ON": "समीक्षा नोट्स सुविधा केवल बिजनेस र एंटरप्राइज योजनाहरूमा उपलब्ध छ।",
+ "UPGRADE_PROMPT": "प्रत्येक CSAT प्रतिक्रियामा आन्तरिक सन्दर्भ समीक्षा नोट्ससँग थप्नुहोस्। साँच्चिकै के भयो समात्नुहोस्, ढाँचाहरू छिटो पत्ता लगाउनुहोस्, र तपाईंको प्रतिक्रिया बाट राम्रो निर्णयहरू लिनुहोस्।",
+ "UPGRADE_NOW": "अहिले अपग्रेड गर्नुहोस्",
+ "CANCEL_ANYTIME": "तपाईं आफ्नो योजना कहिले पनि परिवर्तन वा रद्द गर्न सक्नुहुन्छ"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "बोट प्रतिवेदनहरू",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "संवाद संख्या",
+ "TOOLTIP": "बोटले सम्हालेका कुल संवादहरूको संख्या"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "कुल प्रतिक्रिया",
+ "TOOLTIP": "बोटले पठाएको कुल प्रतिक्रिया संख्या"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "समाधान दर",
+ "TOOLTIP": "बोटले समाधान गरेका कुल संवाद / बोटले सम्हालेका कुल संवाद * १००"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "ह्यान्डअफ दर",
+ "TOOLTIP": "एजेन्टलाई हस्तान्तरण गरिएका कुल संवाद / बोटले सम्हालेका कुल संवाद * १००"
}
}
},
"OVERVIEW_REPORTS": {
- "HEADER": "Overview",
- "LIVE": "Live",
+ "HEADER": "सारांश",
+ "LIVE": "प्रत्यक्ष",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Open Conversations",
- "LOADING_MESSAGE": "Loading conversation metrics...",
- "OPEN": "Open",
- "UNATTENDED": "Unattended",
- "UNASSIGNED": "Unassigned",
- "PENDING": "Pending"
+ "HEADER": "खुला कुराकानीहरू",
+ "LOADING_MESSAGE": "वार्ता मेट्रिक्स लोड हुँदैछ...",
+ "OPEN": "खुला",
+ "UNATTENDED": "नजरअन्दाज गरिएको",
+ "UNASSIGNED": "असाइन गरिएको छैन",
+ "PENDING": "पेन्डिङ"
},
"CONVERSATION_HEATMAP": {
- "HEADER": "Conversation Traffic",
- "NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "HEADER": "संवाद ट्राफिक",
+ "NO_CONVERSATIONS": "कुनै संवाद छैन",
+ "CONVERSATION": "{count} कुराकानी",
+ "CONVERSATIONS": "{count} कुराकानीहरू",
+ "DOWNLOAD_REPORT": "रिपोर्ट डाउनलोड गर्नुहोस्"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "समाधानहरू",
+ "NO_CONVERSATIONS": "कुनै कुराकानी छैन",
+ "CONVERSATION": "{count} कुराकानी",
+ "CONVERSATIONS": "{count} कुराकानीहरू",
+ "DOWNLOAD_REPORT": "रिपोर्ट डाउनलोड गर्नुहोस्"
},
"AGENT_CONVERSATIONS": {
- "HEADER": "Conversations by agents",
- "LOADING_MESSAGE": "Loading agent metrics...",
- "NO_AGENTS": "There are no conversations by agents",
+ "HEADER": "एजेन्टहरूद्वारा गरिएको कुराकानीहरू",
+ "LOADING_MESSAGE": "एजेन्ट मेट्रिक्स लोड हुँदैछ...",
+ "NO_AGENTS": "एजेन्टहरूद्वारा कुनै कुराकानी छैन",
"TABLE_HEADER": {
- "AGENT": "Agent",
- "OPEN": "OPEN",
- "UNATTENDED": "Unattended",
- "STATUS": "Status"
+ "AGENT": "एजेन्ट",
+ "OPEN": "खुला",
+ "UNATTENDED": "नजरअन्दाज गरिएको",
+ "STATUS": "स्थिति"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "सबै टिमहरू",
+ "HEADER": "टिमहरू अनुसार संवादहरू",
+ "LOADING_MESSAGE": "टिम मेट्रिक्स लोड हुँदैछ...",
+ "NO_TEAMS": "कुनै डाटा उपलब्ध छैन",
+ "TABLE_HEADER": {
+ "TEAM": "टोली",
+ "OPEN": "खुला",
+ "UNATTENDED": "नजरअन्दाज गरिएको",
+ "STATUS": "स्थिति"
}
},
"AGENT_STATUS": {
- "HEADER": "Agent status",
- "ONLINE": "Online",
- "BUSY": "Busy",
- "OFFLINE": "Offline"
+ "HEADER": "एजेन्ट स्थिति",
+ "ONLINE": "अनलाइन",
+ "BUSY": "व्यस्त",
+ "OFFLINE": "अफलाइन"
}
},
"DAYS_OF_WEEK": {
- "SUNDAY": "Sunday",
- "MONDAY": "Monday",
- "TUESDAY": "Tuesday",
- "WEDNESDAY": "Wednesday",
- "THURSDAY": "Thursday",
- "FRIDAY": "Friday",
- "SATURDAY": "Saturday"
+ "SUNDAY": "आइतबार",
+ "MONDAY": "सोमबार",
+ "TUESDAY": "मंगलबार",
+ "WEDNESDAY": "बुधबार",
+ "THURSDAY": "बिहीबार",
+ "FRIDAY": "शुक्रबार",
+ "SATURDAY": "शनिबार"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA प्रतिवेदनहरू",
+ "NO_RECORDS": "SLA लागू गरिएका कुराकानीहरू उपलब्ध छैनन्।",
+ "LOADING": "SLA डेटा लोड हुँदैछ...",
+ "DOWNLOAD_SLA_REPORTS": "SLA रिपोर्टहरू डाउनलोड गर्नुहोस्",
+ "DOWNLOAD_FAILED": "SLA रिपोर्टहरू डाउनलोड गर्न असफल",
+ "DROPDOWN": {
+ "ADD_FIlTER": "फिल्टर थप्नुहोस्",
+ "CLEAR_ALL": "सबै हटाउनुहोस्",
+ "CLEAR_FILTER": "फिल्टर हटाउनुहोस्",
+ "EMPTY_LIST": "कुनै परिणाम फेला परेन",
+ "NO_FILTER": "कुनै फिल्टर उपलब्ध छैन",
+ "SEARCH": "फिल्टर खोज्नुहोस्",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA नाम",
+ "AGENTS": "एजेन्ट नाम",
+ "INBOXES": "इनबक्स नाम",
+ "LABELS": "लेबल नाम",
+ "TEAMS": "टोलीको नाम"
+ },
+ "SLA": "SLA नीति",
+ "INBOXES": "इनबक्स",
+ "AGENTS": "एजेन्ट",
+ "LABELS": "लेबल",
+ "TEAMS": "टोली"
+ },
+ "WITH": "संग",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "हिट दर",
+ "TOOLTIP": "बनाइएका SLA हरू सफलतापूर्वक पूरा भएको प्रतिशत"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "मिस भएको संख्या",
+ "TOOLTIP": "एक निश्चित अवधिमा कुल SLA मिस"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "संवादहरूको संख्या",
+ "TOOLTIP": "SLA सँग कुल संवादहरूको संख्या"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "नीति",
+ "CONVERSATION": "संवाद",
+ "AGENT": "एजेन्ट"
+ },
+ "VIEW_DETAILS": "विवरण हेर्नुहोस्"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "INBOX": "इनबक्स",
+ "AGENT": "एजेन्ट",
+ "TEAM": "टोली",
+ "LABEL": "लेबल",
+ "AVG_RESOLUTION_TIME": "औसत समाधान समय",
+ "AVG_FIRST_RESPONSE_TIME": "औसत पहिलो प्रतिक्रिया समय",
+ "AVG_REPLY_TIME": "औसत ग्राहक प्रतीक्षा समय",
+ "RESOLUTION_COUNT": "समाधान गणना",
+ "CONVERSATIONS": "संवादहरूको संख्या"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/search.json b/app/javascript/dashboard/i18n/locale/ne/search.json
index 107e64fd8..2fc8e7998 100644
--- a/app/javascript/dashboard/i18n/locale/ne/search.json
+++ b/app/javascript/dashboard/i18n/locale/ne/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "All",
+ "ALL": "All results",
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacts",
"CONVERSATIONS": "Conversations",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "from",
- "EMAIL": "email"
+ "FROM": "From",
+ "EMAIL": "Email",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Last 7 days",
+ "LAST_30_DAYS": "Last 30 days",
+ "LAST_60_DAYS": "Last 60 days",
+ "LAST_90_DAYS": "Last 90 days",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agents",
+ "CONTACTS": "Contacts",
+ "INBOXES": "Inboxes",
+ "NO_AGENTS": "No agents found",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/settings.json b/app/javascript/dashboard/i18n/locale/ne/settings.json
index 9176bdf3f..4b22f2fcb 100644
--- a/app/javascript/dashboard/i18n/locale/ne/settings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/settings.json
@@ -1,325 +1,923 @@
{
"PROFILE_SETTINGS": {
- "LINK": "Profile Settings",
- "TITLE": "Profile Settings",
- "BTN_TEXT": "Update Profile",
- "DELETE_AVATAR": "Delete Avatar",
- "AVATAR_DELETE_SUCCESS": "Avatar has been deleted successfully",
- "AVATAR_DELETE_FAILED": "There is an error while deleting avatar, please try again",
- "UPDATE_SUCCESS": "Your profile has been updated successfully",
- "PASSWORD_UPDATE_SUCCESS": "Your password has been changed successfully",
- "AFTER_EMAIL_CHANGED": "Your profile has been updated successfully, please login again as your login credentials are changed",
+ "LINK": "प्रोफाइल सेटिङ",
+ "TITLE": "प्रोफाइल सेटिङ",
+ "BTN_TEXT": "प्रोफाइल अपडेट गर्नुहोस्",
+ "DELETE_AVATAR": "अवतार मेटाउनुहोस्",
+ "AVATAR_DELETE_SUCCESS": "अवतार सफलतापूर्वक मेटाइयो",
+ "AVATAR_DELETE_FAILED": "अवतार मेटाउँदा त्रुटि भयो, कृपया पुन: प्रयास गर्नुहोस्",
+ "UPDATE_SUCCESS": "तपाईंको प्रोफाइल सफलतापूर्वक अपडेट भयो",
+ "PASSWORD_UPDATE_SUCCESS": "तपाईंको पासवर्ड सफलतापूर्वक परिवर्तन भयो",
+ "AFTER_EMAIL_CHANGED": "तपाईंको प्रोफाइल सफलतापूर्वक अपडेट भयो, कृपया पुनः लगइन गर्नुहोस् किनभने तपाईंको लगइन प्रमाणपत्रहरू परिवर्तन भएका छन्",
"FORM": {
- "AVATAR": "Profile Image",
- "ERROR": "Please fix form errors",
- "REMOVE_IMAGE": "Remove",
- "UPLOAD_IMAGE": "Upload image",
- "UPDATE_IMAGE": "Update image",
+ "PICTURE": "प्रोफाइल फोटो",
+ "AVATAR": "प्रोफाइल छवि",
+ "ERROR": "कृपया फारमका त्रुटिहरू सच्याउनुहोस्",
+ "REMOVE_IMAGE": "हटाउनुहोस्",
+ "UPLOAD_IMAGE": "छवि अपलोड गर्नुहोस्",
+ "UPDATE_IMAGE": "छवि अपडेट गर्नुहोस्",
"PROFILE_SECTION": {
- "TITLE": "Profile",
- "NOTE": "Your email address is your identity and is used to log in."
+ "TITLE": "प्रोफाइल",
+ "NOTE": "तपाईंको इमेल ठेगाना तपाईंको पहिचान हो र लगइन गर्न प्रयोग गरिन्छ।"
},
"SEND_MESSAGE": {
- "TITLE": "Hotkey to send messages",
- "NOTE": "You can select a hotkey (either Enter or Cmd/Ctrl+Enter) based on your preference of writing.",
- "UPDATE_SUCCESS": "Your settings have been updated successfully",
+ "TITLE": "सन्देश पठाउन हटकी",
+ "NOTE": "तपाईं आफ्नो लेखन प्राथमिकताअनुसार हटकी (Enter वा Cmd/Ctrl+Enter) चयन गर्न सक्नुहुन्छ।",
+ "UPDATE_SUCCESS": "तपाईंका सेटिङहरू सफलतापूर्वक अपडेट गरियो",
"CARD": {
"ENTER_KEY": {
- "HEADING": "Enter (↵)",
- "CONTENT": "Send messages by pressing Enter key instead of clicking the send button."
+ "HEADING": "इन्टर (↵)",
+ "CONTENT": "पठाउन बटन क्लिक नगरी Enter कुञ्जी थिचेर सन्देश पठाउनुहोस्।"
},
"CMD_ENTER_KEY": {
- "HEADING": "Cmd/Ctrl + Enter (⌘ + ↵)",
- "CONTENT": "Send messages by pressing Cmd/Ctrl + enter key instead of clicking the send button."
+ "HEADING": "Cmd/Ctrl + इन्टर (⌘ + ↵)",
+ "CONTENT": "पठाउन बटन क्लिक नगरी Cmd/Ctrl + Enter कुञ्जी थिचेर सन्देश पठाउनुहोस्।"
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "इन्टरफेस",
+ "NOTE": "तपाईंको Chatwoot ड्यासबोर्डको देखावट र अनुभव अनुकूलित गर्नुहोस्।",
+ "FONT_SIZE": {
+ "TITLE": "फन्ट आकार",
+ "NOTE": "तपाईंको प्राथमिकताअनुसार ड्यासबोर्डभरि पाठको आकार समायोजन गर्नुहोस्।",
+ "UPDATE_SUCCESS": "तपाईंको फन्ट सेटिङहरू सफलतापूर्वक अपडेट गरियो।",
+ "UPDATE_ERROR": "फन्ट सेटिङहरू अपडेट गर्दा त्रुटि भयो। कृपया पुन: प्रयास गर्नुहोस्।",
+ "OPTIONS": {
+ "SMALLER": "सानो",
+ "SMALL": "सानो",
+ "DEFAULT": "पूर्वनिर्धारित",
+ "LARGE": "ठूलो",
+ "LARGER": "अझै ठूलो",
+ "EXTRA_LARGE": "अति ठूलो"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "रुचाइएको भाषा",
+ "NOTE": "तपाईं प्रयोग गर्न चाहनुभएको भाषा छान्नुहोस्।",
+ "UPDATE_SUCCESS": "तपाईंको भाषा सेटिङहरू सफलतापूर्वक अपडेट गरियो।",
+ "UPDATE_ERROR": "भाषा सेटिङहरू अपडेट गर्दा त्रुटि भयो, कृपया फेरि प्रयास गर्नुहोस्।",
+ "USE_ACCOUNT_DEFAULT": "खाता पूर्वनिर्धारित प्रयोग गर्नुहोस्"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
- "TITLE": "Personal message signature",
- "NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
- "BTN_TEXT": "Save message signature",
- "API_ERROR": "Couldn't save signature! Try again",
- "API_SUCCESS": "Signature saved successfully",
- "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
- "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "TITLE": "व्यक्तिगत सन्देश हस्ताक्षर",
+ "NOTE": "प्रत्येक सन्देशको अन्त्यमा देखिने अनौठो सन्देश हस्ताक्षर सिर्जना गर्नुहोस् जुन तपाईंले कुनै पनि इनबक्सबाट पठाउनुहुन्छ। तपाईंले इनलाइन छवि पनि समावेश गर्न सक्नुहुन्छ, जुन लाइभ-च्याट, इमेल, र API इनबक्सहरूमा समर्थित छ।",
+ "BTN_TEXT": "सन्देश हस्ताक्षर सुरक्षित गर्नु",
+ "API_ERROR": "हस्ताक्षर सुरक्षित गर्न सकेन! पुनः प्रयास गर्नुहोस्",
+ "API_SUCCESS": "हस्ताक्षर सफलतापूर्वक सुरक्षित भयो",
+ "IMAGE_UPLOAD_ERROR": "छवि अपलोड गर्न सकिएन! फेरि प्रयास गर्नु",
+ "IMAGE_UPLOAD_SUCCESS": "छवि सफलतापूर्वक थपियो। कृपया हस्ताक्षर बचत गर्न सेभमा क्लिक गर्नु",
+ "IMAGE_UPLOAD_SIZE_ERROR": "छवि आकार {size}MB भन्दा कम हुनुपर्छ",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
- "LABEL": "Message Signature",
- "ERROR": "Message Signature cannot be empty",
- "PLACEHOLDER": "Insert your personal message signature here."
+ "LABEL": "सन्देश हस्ताक्षर",
+ "ERROR": "सन्देश हस्ताक्षर खाली हुन सक्दैन",
+ "PLACEHOLDER": "यहाँ आफ्नो व्यक्तिगत सन्देश हस्ताक्षर राख्नुहोस्।"
},
"PASSWORD_SECTION": {
- "TITLE": "Password",
- "NOTE": "Updating your password would reset your logins in multiple devices.",
- "BTN_TEXT": "Change password"
+ "TITLE": "पासवर्ड",
+ "NOTE": "पासवर्ड अपडेट गर्दा तपाईंका लगइनहरू धेरै उपकरणहरूमा रिसेट हुनेछ।",
+ "BTN_TEXT": "पासवर्ड परिवर्तन गर्नुहोस्"
+ },
+ "SECURITY_SECTION": {
+ "TITLE": "सुरक्षा",
+ "NOTE": "आफ्नो खाताका लागि थप सुरक्षा सुविधाहरू व्यवस्थापन गर्नुहोस्।",
+ "MFA_BUTTON": "दुई-चरण प्रमाणीकरण व्यवस्थापन गर्नुहोस्"
},
"ACCESS_TOKEN": {
"TITLE": "Access Token",
- "NOTE": "This token can be used if you are building an API based integration"
+ "NOTE": "यदि तपाईं API आधारित एकीकरण निर्माण गर्दै हुनुहुन्छ भने यो टोकन प्रयोग गर्न सकिन्छ",
+ "COPY": "प्रतिलिपि गर्नु",
+ "RESET": "रिसेट गर्नुहोस्",
+ "CONFIRM_RESET": "पक्का हो?",
+ "CONFIRM_HINT": "पुष्टि गर्न फेरि क्लिक गर्नुहोस्",
+ "RESET_SUCCESS": "पहुँच टोकन सफलतापूर्वक पुनःनिर्मित भयो।",
+ "RESET_ERROR": "पहुँच टोकन पुनःनिर्माण गर्न सकिएन। कृपया फेरि प्रयास गर्नुहोस्।"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Audio Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "अडियो सूचनाहरू",
+ "NOTE": "नयाँ सन्देश र कुराकानीहरूको लागि ड्यासबोर्डमा अडियो सूचनाहरू सक्षम गर्नुहोस्।",
+ "PLAY": "ध्वनि बजाउनु",
+ "ALERT_TYPES": {
+ "NONE": "कुनै पनि छैन",
+ "MINE": "सौंपिएको",
+ "ALL": "सबै",
+ "ASSIGNED": "मेरो तोकिएका कुराकानीहरू",
+ "UNASSIGNED": "असाइन नभएका कुराकानीहरू",
+ "NOTME": "अरूलाई तोकिएका खुला कुराकानीहरू"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "तपाईंले कुनै विकल्प चयन गर्नुभएको छैन। तपाईंले कुनै पनि ध्वनि सूचनाहरू प्राप्त गर्नुहुने छैन।",
+ "ASSIGNED": "तपाईंलाई तोकिएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।",
+ "UNASSIGNED": "तपाईंलाई कुनै पनि असाइन नभएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।",
+ "NOTME": "तपाईंलाई अरूलाई तोकिएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।",
+ "ASSIGNED+UNASSIGNED": "तपाईंलाई तोकिएका कुराकानीहरू र कुनै पनि असाइन नभएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।",
+ "ASSIGNED+NOTME": "तपाईंलाई तपाईंलाई र अरूलाई तोकिएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ, तर असाइन नभएका कुराकानीहरूको लागि होइन।",
+ "NOTME+UNASSIGNED": "तपाईंलाई असाइन नभएका र अरूलाई तोकिएका कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।",
+ "ASSIGNED+NOTME+UNASSIGNED": "तपाईंलाई सबै कुराकानीहरूको सूचनाहरू प्राप्त हुनेछ।"
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
- "NONE": "None",
- "ASSIGNED": "Assigned Conversations",
- "ALL_CONVERSATIONS": "All Conversations"
+ "TITLE": "कुराकानीहरूको लागि सूचनाका घटनाहरू",
+ "NONE": "कुनै पनि छैन",
+ "ASSIGNED": "सौंपिएका कुराकानीहरू",
+ "ALL_CONVERSATIONS": "सबै कुराकानीहरू"
},
"DEFAULT_TONE": {
- "TITLE": "Alert tone:"
+ "TITLE": "सूचना टोन:"
},
"CONDITIONS": {
- "TITLE": "Alert conditions:",
- "CONDITION_ONE": "Send audio alerts only if the browser window is not active",
- "CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ "TITLE": "सूचना सर्तहरू:",
+ "CONDITION_ONE": "ब्राउजर विन्डो सक्रिय नभएको अवस्थामा मात्र अडियो सूचनाहरू पठाउनु",
+ "CONDITION_TWO": "सबै सौंपिएका कुराकानीहरू पढिएसम्म प्रत्येक ३० सेकेन्डमा सूचनाहरू पठाउनु"
+ },
+ "SOUND_PERMISSION_ERROR": "तपाईंको ब्राउजरमा स्वतः प्ले अक्षम छ। सूचनाहरू स्वचालित रूपमा सुन्नको लागि, तपाईंको ब्राउजर सेटिङहरूमा ध्वनि अनुमति सक्षम गर्नुहोस् वा पृष्ठसँग अन्तरक्रिया गर्नुहोस्।",
+ "READ_MORE": "थप पढ्नुहोस्"
},
"EMAIL_NOTIFICATIONS_SECTION": {
- "TITLE": "Email Notifications",
- "NOTE": "Update your email notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send email notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send email notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send email notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "TITLE": "इमेल सूचनाहरू",
+ "NOTE": "यहाँ तपाईंको इमेल सूचना प्राथमिकताहरू अपडेट गर्नुहोस्",
+ "CONVERSATION_ASSIGNMENT": "जब कुनै कुराकानी मलाई असाइन गरिन्छ तब इमेल सूचनाहरू पठाउनुहोस्",
+ "CONVERSATION_CREATION": "जब नयाँ कुराकानी सिर्जना हुन्छ तब इमेल सूचनाहरू पठाउनुहोस्",
+ "CONVERSATION_MENTION": "संवादमा तपाईंलाई उल्लेख गर्दा इमेल सूचनाहरू पठाउनुहोस्",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "जिम्मेवारीमा रहेको संवादमा नयाँ सन्देश आएको बेला इमेल सूचनाहरू पठाउनुहोस्",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "सहभागी कुराकानीमा नयाँ सन्देश सिर्जना हुँदा इमेल सूचनाहरू पठाउनु",
+ "SLA_MISSED_FIRST_RESPONSE": "कुनै कुराकानीले पहिलो प्रतिक्रिया SLA छुटाउँदा इमेल सूचनाहरू पठाउनु",
+ "SLA_MISSED_NEXT_RESPONSE": "कुनै कुराकानीले अर्को प्रतिक्रिया SLA छुटाउँदा इमेल सूचनाहरू पठाउनु",
+ "SLA_MISSED_RESOLUTION": "कुनै कुराकानीले समाधान SLA छुटाउँदा इमेल सूचनाहरू पठाउनु"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "सूचना प्राथमिकताहरू",
+ "TYPE_TITLE": "सूचना प्रकार",
+ "EMAIL": "इमेल",
+ "PUSH": "पुष सूचना",
+ "TYPES": {
+ "CONVERSATION_CREATED": "नयाँ कुराकानी सिर्जना भयो",
+ "CONVERSATION_ASSIGNED": "तपाईंलाई कुराकानी तोकिएको छ",
+ "CONVERSATION_MENTION": "तपाईंलाई कुराकानीमा उल्लेख गरिएको छ",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "तोकेको कुराकानीमा नयाँ सन्देश सिर्जना भयो",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "भाग लिइरहेको कुराकानीमा नयाँ सन्देश सिर्जना भयो",
+ "SLA_MISSED_FIRST_RESPONSE": "कुराकानीले पहिलो प्रतिक्रिया SLA छुटायो",
+ "SLA_MISSED_NEXT_RESPONSE": "कुराकानीले अर्को प्रतिक्रिया SLA छुटायो",
+ "SLA_MISSED_RESOLUTION": "कुराकानीले समाधान SLA छुटायो"
+ },
+ "BROWSER_PERMISSION": "तपाईंको ब्राउजरका लागि पुश सूचनाहरू सक्षम गर्नुहोस् ताकि तपाईं तिनीहरू प्राप्त गर्न सक्नुहुन्छ"
},
"API": {
- "UPDATE_SUCCESS": "Your notification preferences are updated successfully",
- "UPDATE_ERROR": "There is an error while updating the preferences, please try again"
+ "UPDATE_SUCCESS": "तपाईंका सूचना प्राथमिकताहरू सफलतापूर्वक अपडेट गरियो",
+ "UPDATE_ERROR": "प्राथमिकताहरू अपडेट गर्दा त्रुटि भयो, कृपया पुनः प्रयास गर्नुहोस्"
},
"PUSH_NOTIFICATIONS_SECTION": {
- "TITLE": "Push Notifications",
- "NOTE": "Update your push notification preferences here",
- "CONVERSATION_ASSIGNMENT": "Send push notifications when a conversation is assigned to me",
- "CONVERSATION_CREATION": "Send push notifications when a new conversation is created",
- "CONVERSATION_MENTION": "Send push notifications when you are mentioned in a conversation",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
- "HAS_ENABLED_PUSH": "You have enabled push for this browser.",
- "REQUEST_PUSH": "Enable push notifications"
+ "TITLE": "पुष सूचनाहरू",
+ "NOTE": "यहाँ तपाईंका पुष सूचना प्राथमिकताहरू अपडेट गर्नुहोस्",
+ "CONVERSATION_ASSIGNMENT": "जब कुनै कुराकानी मलाई असाइन गरिन्छ तब पुष सूचनाहरू पठाउनुहोस्",
+ "CONVERSATION_CREATION": "जब नयाँ कुराकानी सिर्जना हुन्छ तब पुष सूचनाहरू पठाउनुहोस्",
+ "CONVERSATION_MENTION": "संवादमा तपाईंलाई उल्लेख गर्दा पुश सूचनाहरू पठाउनुहोस्",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "जिम्मेवारीमा रहेको संवादमा नयाँ सन्देश आएको बेला पुश सूचनाहरू पठाउनुहोस्",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "सहभागी कुराकानीमा नयाँ सन्देश सिर्जना हुँदा पुश सूचनाहरू पठाउनु",
+ "HAS_ENABLED_PUSH": "तपाईंले यस ब्राउजरका लागि पुष सक्षम गर्नुभएको छ।",
+ "REQUEST_PUSH": "पुष सूचनाहरू सक्षम गर्नुहोस्",
+ "SLA_MISSED_FIRST_RESPONSE": "कुनै कुराकानीले पहिलो प्रतिक्रिया SLA छुटाउँदा पुश सूचनाहरू पठाउनु",
+ "SLA_MISSED_NEXT_RESPONSE": "कुनै कुराकानीले अर्को प्रतिक्रिया SLA छुटाउँदा पुश सूचनाहरू पठाउनु",
+ "SLA_MISSED_RESOLUTION": "कुनै कुराकानीले समाधान SLA छुटाउँदा पुश सूचनाहरू पठाउनु"
},
"PROFILE_IMAGE": {
- "LABEL": "Profile Image"
+ "LABEL": "प्रोफाइल छवि"
},
"NAME": {
- "LABEL": "Your full name",
- "ERROR": "Please enter a valid full name",
- "PLACEHOLDER": "Please enter your full name"
+ "LABEL": "तपाईंको पूरा नाम",
+ "ERROR": "कृपया मान्य पूरा नाम लेख्नुहोस्",
+ "PLACEHOLDER": "कृपया तपाईंको पूरा नाम लेख्नुहोस्"
},
"DISPLAY_NAME": {
- "LABEL": "Display name",
- "ERROR": "Please enter a valid display name",
- "PLACEHOLDER": "Please enter a display name, this would be displayed in conversations"
+ "LABEL": "प्रदर्शन नाम",
+ "ERROR": "कृपया मान्य प्रदर्शन नाम लेख्नुहोस्",
+ "PLACEHOLDER": "कृपया प्रदर्शन नाम लेख्नुहोस्, यो संवादहरूमा देखाइनेछ"
},
"AVAILABILITY": {
- "LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
- "SET_AVAILABILITY_SUCCESS": "Availability has been set successfully",
- "SET_AVAILABILITY_ERROR": "Couldn't set availability, please try again"
+ "LABEL": "उपलब्धता",
+ "STATUS": {
+ "ONLINE": "अनलाइन",
+ "BUSY": "व्यस्त",
+ "OFFLINE": "अफलाइन"
+ },
+ "SET_AVAILABILITY_SUCCESS": "उपलब्धता सफलतापूर्वक सेट भयो",
+ "SET_AVAILABILITY_ERROR": "उपलब्धता सेट गर्न सकिएन, कृपया पुनः प्रयास गर्नुहोस्",
+ "IMPERSONATING_ERROR": "प्रयोगकर्ताको नक्कल गर्दा उपलब्धता परिवर्तन गर्न सकिँदैन"
},
"EMAIL": {
- "LABEL": "Your email address",
- "ERROR": "Please enter a valid email address",
- "PLACEHOLDER": "Please enter your email address, this would be displayed in conversations"
+ "LABEL": "तपाईंको इमेल ठेगाना",
+ "ERROR": "कृपया मान्य इमेल ठेगाना प्रविष्ट गर्नुहोस्",
+ "PLACEHOLDER": "कृपया तपाईंको इमेल ठेगाना प्रविष्ट गर्नुहोस्, यो कुराकानीहरूमा देखाइनेछ"
},
"CURRENT_PASSWORD": {
- "LABEL": "Current password",
- "ERROR": "Please enter the current password",
- "PLACEHOLDER": "Please enter the current password"
+ "LABEL": "हालको पासवर्ड",
+ "ERROR": "कृपया हालको पासवर्ड लेख्नुहोस्",
+ "PLACEHOLDER": "कृपया हालको पासवर्ड लेख्नुहोस्"
},
"PASSWORD": {
- "LABEL": "New password",
- "ERROR": "Please enter a password of length 6 or more",
- "PLACEHOLDER": "Please enter a new password"
+ "LABEL": "नयाँ पासवर्ड",
+ "ERROR": "कृपया 6 वा सो भन्दा लामो पासवर्ड प्रविष्ट गर्नुहोस्",
+ "PLACEHOLDER": "कृपया नयाँ पासवर्ड प्रविष्ट गर्नुहोस्"
},
"PASSWORD_CONFIRMATION": {
- "LABEL": "Confirm new password",
- "ERROR": "Confirm password should match the password",
- "PLACEHOLDER": "Please re-enter your new password"
+ "LABEL": "नयाँ पासवर्ड पुष्टि गर्नुहोस्",
+ "ERROR": "पासवर्ड पुष्टि पासवर्डसँग मेल खानुपर्छ",
+ "PLACEHOLDER": "कृपया आफ्नो नयाँ पासवर्ड फेरि प्रविष्ट गर्नुहोस्"
}
}
},
"SIDEBAR_ITEMS": {
- "CHANGE_AVAILABILITY_STATUS": "Change",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
- "SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profile Settings",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logout"
+ "CHANGE_AVAILABILITY_STATUS": "परिवर्तन गर्नुहोस्",
+ "CHANGE_ACCOUNTS": "खाता परिवर्तन गर्नु",
+ "SWITCH_ACCOUNT": "खाता परिवर्तन गर्नुहोस्",
+ "CONTACT_SUPPORT": "समर्थन सम्पर्क गर्नु",
+ "SELECTOR_SUBTITLE": "तलको सूचीबाट एउटा खाता चयन गर्नुहोस्",
+ "PROFILE_SETTINGS": "प्रोफाइल सेटिङ",
+ "YEAR_IN_REVIEW": "वर्षको समीक्षा",
+ "KEYBOARD_SHORTCUTS": "किबोर्ड सर्टकट",
+ "APPEARANCE": "देखावट परिवर्तन गर्नु",
+ "SUPER_ADMIN_CONSOLE": "सुपरएडमिन कन्सोल",
+ "DOCS": "कागजात पढ्नु",
+ "CHANGELOG": "परिवर्तन विवरण",
+ "LOGOUT": "लगआउट"
},
"APP_GLOBAL": {
- "TRIAL_MESSAGE": "days trial remaining.",
- "TRAIL_BUTTON": "Buy Now",
- "DELETED_USER": "Deleted User",
- "EMAIL_VERIFICATION_PENDING": "It seems that you haven't verified your email address yet. Please check your inbox for the verification email.",
- "RESEND_VERIFICATION_MAIL": "Resend verification email",
- "EMAIL_VERIFICATION_SENT": "Verification email has been sent. Please check your inbox.",
+ "TRIAL_MESSAGE": "दिनको परीक्षण बाँकी छ।",
+ "TRAIL_BUTTON": "अहिले किन्नुहोस्",
+ "DELETED_USER": "मेटाइएको प्रयोगकर्ता",
+ "EMAIL_VERIFICATION_PENDING": "तपाईंले अझै आफ्नो इमेल ठेगाना प्रमाणित गर्नुभएको छैन जस्तो देखिन्छ। कृपया प्रमाणिकरण इमेलको लागि आफ्नो इनबक्स जाँच गर्नुहोस्।",
+ "RESEND_VERIFICATION_MAIL": "प्रमाणिकरण इमेल पुन: पठाउनु",
+ "EMAIL_VERIFICATION_SENT": "प्रमाणिकरण इमेल पठाइएको छ। कृपया आफ्नो इनबक्स जाँच गर्नुहोस्।",
"ACCOUNT_SUSPENDED": {
- "TITLE": "Account Suspended",
- "MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ "TITLE": "खाता निलम्बित",
+ "MESSAGE": "तपाईंको खाता निलम्बित गरिएको छ। थप जानकारीका लागि कृपया समर्थन टोलीलाई सम्पर्क गर्नुहोस्।"
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "खाता फेला परेन",
+ "MESSAGE_CLOUD": "तपाईं अहिले कुनै खातामा सहभागी हुनुहुन्न। यदि यो गल्ती हो जस्तो लाग्छ भने, कृपया हाम्रो समर्थन टोलीलाई सम्पर्क गर्नुहोस्।",
+ "MESSAGE_SELF_HOSTED": "तपाईं अहिले कुनै खातामा सहभागी हुनुहुन्न। कृपया आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।",
+ "LOGOUT": "लगआउट"
}
},
"COMPONENTS": {
"CODE": {
- "BUTTON_TEXT": "Copy",
- "CODEPEN": "Open in CodePen",
+ "BUTTON_TEXT": "प्रतिलिपि गर्नुहोस्",
+ "CODEPEN": "CodePen मा खोल्नु",
"COPY_SUCCESSFUL": "Code copied to clipboard successfully"
},
"SHOW_MORE_BLOCK": {
- "SHOW_MORE": "Show More",
- "SHOW_LESS": "Show Less"
+ "SHOW_MORE": "थप देखाउनु",
+ "SHOW_LESS": "कम देखाउनु"
},
"FILE_BUBBLE": {
"DOWNLOAD": "डाउनलोड",
"UPLOADING": "अपलोड गर्दै...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "यो कथा अब उपलब्ध छैन।",
+ "INSTAGRAM_STORY_REPLY": "तपाईंको स्टोरीमा जवाफ दिइयो:"
},
"LOCATION_BUBBLE": {
- "SEE_ON_MAP": "See on map"
+ "SEE_ON_MAP": "नक्सामा हेर्नु"
},
"FORM_BUBBLE": {
"SUBMIT": "बुझाउनुहोस्"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "यो छवि अब उपलब्ध छैन।",
+ "LOADING_FAILED": "लोड गर्न असफल भयो"
}
},
- "CONFIRM_EMAIL": "Verifying...",
+ "CONFIRM_EMAIL": "पुष्टि हुँदैछ...",
"SETTINGS": {
"INBOXES": {
- "NEW_INBOX": "Add Inbox"
+ "NEW_INBOX": "इनबक्स थप्नुहोस्"
}
},
"SIDEBAR": {
- "CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
- "SWITCH": "Switch",
- "CONVERSATIONS": "Conversations",
- "INBOX": "Inbox",
- "ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
- "PARTICIPATING_CONVERSATIONS": "Participating",
- "UNATTENDED_CONVERSATIONS": "Unattended",
- "REPORTS": "Reports",
- "SETTINGS": "Settings",
- "CONTACTS": "Contacts",
- "HOME": "Home",
- "AGENTS": "Agents",
- "AGENT_BOTS": "Bots",
- "AUDIT_LOGS": "Audit Logs",
- "INBOXES": "Inboxes",
- "NOTIFICATIONS": "Notifications",
- "CANNED_RESPONSES": "Canned Responses",
- "INTEGRATIONS": "Integrations",
- "PROFILE_SETTINGS": "Profile Settings",
- "ACCOUNT_SETTINGS": "Account Settings",
- "APPLICATIONS": "Applications",
- "LABELS": "Labels",
- "CUSTOM_ATTRIBUTES": "Custom Attributes",
- "AUTOMATION": "Automation",
- "MACROS": "Macros",
- "TEAMS": "Teams",
- "BILLING": "Billing",
- "CUSTOM_VIEWS_FOLDER": "Folders",
- "CUSTOM_VIEWS_SEGMENTS": "Segments",
- "ALL_CONTACTS": "All Contacts",
- "TAGGED_WITH": "Tagged with",
- "NEW_LABEL": "New label",
- "NEW_TEAM": "New team",
- "NEW_INBOX": "New inbox",
- "REPORTS_CONVERSATION": "Conversations",
+ "NO_ITEMS": "कुनै वस्तु छैन",
+ "CURRENTLY_VIEWING_ACCOUNT": "हाल हेर्दै हुनुहुन्छ:",
+ "SWITCH": "स्विच गर्नु",
+ "INBOX_VIEW": "इनबक्स दृश्य",
+ "CONVERSATIONS": "संवादहरू",
+ "INBOX": "मेरो इनबक्स",
+ "ALL_CONVERSATIONS": "सबै संवादहरू",
+ "MENTIONED_CONVERSATIONS": "उल्लेख",
+ "PARTICIPATING_CONVERSATIONS": "सहभागी",
+ "UNATTENDED_CONVERSATIONS": "अटेन्ड नगरिएका",
+ "REPORTS": "प्रतिवेदनहरू",
+ "SETTINGS": "सेटिङ",
+ "CONTACTS": "सम्पर्कहरू",
+ "ACTIVE": "सक्रिय",
+ "COMPANIES": "कम्पनीहरू",
+ "ALL_COMPANIES": "सबै कम्पनीहरू",
+ "CAPTAIN": "क्याप्टेन",
+ "CAPTAIN_ASSISTANTS": "सहायकहरू",
+ "CAPTAIN_DOCUMENTS": "कागजातहरू",
+ "CAPTAIN_RESPONSES": "सोधिने प्रश्नहरू",
+ "CAPTAIN_TOOLS": "उपकरणहरू",
+ "CAPTAIN_SCENARIOS": "परिदृश्यहरू",
+ "CAPTAIN_PLAYGROUND": "प्लेग्राउन्ड",
+ "CAPTAIN_INBOXES": "इनबक्सहरू",
+ "CAPTAIN_SETTINGS": "सेटिङहरू",
+ "HOME": "गृहपृष्ठ",
+ "AGENTS": "एजेन्टहरू",
+ "AGENT_BOTS": "बोटहरू",
+ "AUDIT_LOGS": "अडिट लग",
+ "INBOXES": "इनबक्सहरू",
+ "NOTIFICATIONS": "सूचनाहरू",
+ "CANNED_RESPONSES": "तयार जवाफहरू",
+ "INTEGRATIONS": "एकीकरणहरू",
+ "PROFILE_SETTINGS": "प्रोफाइल सेटिङहरू",
+ "ACCOUNT_SETTINGS": "खाता सेटिङ",
+ "APPLICATIONS": "अनुप्रयोगहरू",
+ "LABELS": "लेबलहरू",
+ "CUSTOM_ATTRIBUTES": "अनुकूलित विशेषताहरू",
+ "AUTOMATION": "स्वचालन",
+ "MACROS": "म्याक्रोहरू",
+ "TEAMS": "टोलीहरू",
+ "BILLING": "बिलिङ",
+ "CUSTOM_VIEWS_FOLDER": "फोल्डरहरू",
+ "CUSTOM_VIEWS_SEGMENTS": "सेगमेन्टहरू",
+ "ALL_CONTACTS": "सबै सम्पर्कहरू",
+ "TAGGED_WITH": "ट्याग गरिएको",
+ "NEW_LABEL": "नयाँ लेबल",
+ "NEW_TEAM": "नयाँ टोली",
+ "NEW_INBOX": "नयाँ इनबक्स",
+ "REPORTS_CONVERSATION": "संवादहरू",
"CSAT": "CSAT",
- "CAMPAIGNS": "Campaigns",
- "ONGOING": "Ongoing",
- "ONE_OFF": "One off",
- "REPORTS_AGENT": "Agents",
- "REPORTS_LABEL": "Labels",
- "REPORTS_INBOX": "Inbox",
- "REPORTS_TEAM": "Team",
- "SET_AVAILABILITY_TITLE": "Set yourself as",
+ "LIVE_CHAT": "प्रत्यक्ष च्याट",
+ "SMS": "एसएमएस",
+ "WHATSAPP": "WhatsApp",
+ "CAMPAIGNS": "अभियानहरू",
+ "ONGOING": "चालु",
+ "ONE_OFF": "एक पटकको",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "बोट",
+ "REPORTS_AGENT": "एजेन्टहरू",
+ "REPORTS_LABEL": "लेबलहरू",
+ "REPORTS_INBOX": "इनबक्स",
+ "REPORTS_TEAM": "टोली",
+ "AGENT_ASSIGNMENT": "एजेन्ट नियुक्ति",
+ "SET_AVAILABILITY_TITLE": "आफ्नो स्थिति सेट गर्नुहोस्",
+ "SET_YOUR_AVAILABILITY": "तपाईंको उपलब्धता सेट गर्नु",
"SLA": "SLA",
- "BETA": "Beta",
- "REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "CUSTOM_ROLES": "अनुकूलित भूमिका",
+ "BETA": "बीटा",
+ "REPORTS_OVERVIEW": "सारांश",
+ "REAUTHORIZE": "तपाईंको इनबक्स जडान समाप्त भयो, कृपया पुन: जडान गर्नुहोस्\nसन्देशहरू प्राप्त र पठाउन जारी राख्न",
"HELP_CENTER": {
- "TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Settings",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "TITLE": "मद्दत केन्द्र",
+ "ARTICLES": "लेखहरू",
+ "CATEGORIES": "श्रेणीहरू",
+ "LOCALES": "स्थानहरू",
+ "SETTINGS": "सेटिङ"
},
+ "CHANNELS": "च्यानलहरू",
"SET_AUTO_OFFLINE": {
- "TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "TEXT": "स्वचालित रूपमा अफलाइन मार्क गर्नु",
+ "INFO_TEXT": "तपाईंले एप वा ड्यासबोर्ड प्रयोग नगर्दा प्रणालीले तपाईंलाई स्वचालित रूपमा अफलाइन मार्क गर्न दिनुहोस्।",
+ "INFO_SHORT": "एप प्रयोग नगर्दा स्वचालित रूपमा अफलाइन मार्क गर्नुहोस्।"
},
- "DOCS": "Read docs"
+ "DOCS": "डक्स पढ्नु",
+ "SECURITY": "सुरक्षा",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "वार्ता कार्यप्रवाह"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain सेटिङहरू",
+ "DESCRIPTION": "Captain का लागि तपाईंका AI मोडेल र सुविधाहरू कन्फिगर गर्नुहोस्। Captain क्रेडिटमा आधारित बिलिङमा चल्छ, चयन गरिएको मोडेलअनुसार Captain ले प्रत्येक कार्य गर्दा तपाईंको क्रेडिट कटौती हुनेछ।",
+ "LOADING": "Captain कन्फिगरेसन लोड हुँदैछ...",
+ "LINK_TEXT": "Captain क्रेडिटबारे थप जान्नुहोस्",
+ "NOT_ENABLED": "तपाईंको खातामा Captain सक्षम गरिएको छैन। Captain सुविधाहरू प्रयोग गर्न योजना स्तरोन्नति गर्नुहोस्।",
+ "MODEL_CONFIG": {
+ "TITLE": "मोडेल कन्फिगरेसन",
+ "DESCRIPTION": "विभिन्न सुविधाहरूका लागि AI मोडेलहरू छान्नुहोस्।",
+ "SELECT_MODEL": "मोडेल छान्नुहोस्",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "छिट्टै आउँदैछ",
+ "EDITOR": {
+ "TITLE": "सम्पादक सुविधाहरू",
+ "DESCRIPTION": "तपाईंको सन्देश सम्पादकमा स्मार्ट कम्पोज, व्याकरण सुधार, टोन मिलाउने र सामग्री सुधारको लागि प्रयोग हुन्छ।"
+ },
+ "ASSISTANT": {
+ "TITLE": "सहायक",
+ "DESCRIPTION": "ग्राहक संवादका लागि स्वचालित जवाफ, संवाद सारांश, र बुद्धिमान सुझावहरू व्यवस्थापन गर्छ।"
+ },
+ "COPILOT": {
+ "TITLE": "को-पाइलट",
+ "DESCRIPTION": "संवादको क्रममा वास्तविक समय सन्दर्भ सुझाव, ज्ञान आधार सिफारिस, र सक्रिय जानकारी प्रदान गर्छ।"
+ }
+ },
+ "FEATURES": {
+ "TITLE": "फिचरहरू",
+ "DESCRIPTION": "एआई-सञ्चालित फिचरहरू सक्षम वा अक्षम गर्नुहोस्।",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "अडियो ट्रान्सक्रिप्सन",
+ "DESCRIPTION": "आवाज सन्देश र कल रेकर्डिङलाई स्वचालित रूपमा खोज्न मिल्ने पाठमा रूपान्तरण गर्नुहोस्।"
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "हेल्प सेन्टर खोज अनुक्रमणिका",
+ "DESCRIPTION": "तपाईंका हेल्प सेन्टर लेखहरूमा सन्दर्भअनुसार खोजका लागि एआई प्रयोग गर्नुहोस्।"
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "लेबल सुझाव",
+ "DESCRIPTION": "सामग्री विश्लेषण र सन्दर्भका आधारमा संवादका लागि उपयुक्त लेबल र ट्यागहरू स्वचालित रूपमा सुझाव दिनुहोस्।",
+ "MODEL_TITLE": "लेबल सुझाव मोडेल",
+ "MODEL_DESCRIPTION": "संवाद विश्लेषण र उपयुक्त लेबल सुझावका लागि प्रयोग हुने एआई मोडेल चयन गर्नुहोस्"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain सेटिङहरू सफलतापूर्वक अद्यावधिक गरियो।",
+ "ERROR": "Captain सेटिङहरू अद्यावधिक गर्न असफल। कृपया फेरि प्रयास गर्नुहोस्।"
+ }
},
"BILLING_SETTINGS": {
- "TITLE": "Billing",
+ "TITLE": "बिलिङ",
+ "DESCRIPTION": "यहाँ तपाईंको सदस्यता व्यवस्थापन गर्नुहोस्, योजना अपग्रेड गर्नुहोस् र तपाईंको टिमका लागि थप प्राप्त गर्नुहोस्।",
"CURRENT_PLAN": {
- "TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "TITLE": "हालको योजना",
+ "PLAN_NOTE": "तपाईं हाल **{plan}** योजना र **{quantity}** लाइसेन्सहरूसँग सदस्यता लिनुभएको छ",
+ "SEAT_COUNT": "सिटहरूको संख्या",
+ "RENEWS_ON": "नवीकरण मिति"
},
+ "VIEW_PRICING": "मूल्य निर्धारण हेर्नुहोस्",
"MANAGE_SUBSCRIPTION": {
- "TITLE": "Manage your subscription",
- "DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
- "BUTTON_TXT": "Go to the billing portal"
+ "TITLE": "आफ्नो सदस्यता व्यवस्थापन गर्नु",
+ "DESCRIPTION": "तपाईंका अघिल्ला बिलहरू हेर्नुहोस्, बिलिङ विवरण सम्पादन गर्नुहोस्, वा सदस्यता रद्द गर्नुहोस्।",
+ "BUTTON_TXT": "बिलिङ पोर्टलमा जानु"
+ },
+ "CAPTAIN": {
+ "TITLE": "क्याप्टेन",
+ "DESCRIPTION": "क्याप्टेन AI को प्रयोग र क्रेडिटहरू व्यवस्थापन गर्नुहोस्।",
+ "BUTTON_TXT": "थप क्रेडिटहरू किन्नुहोस्",
+ "DOCUMENTS": "कागजातहरू",
+ "RESPONSES": "Responses",
+ "UPGRADE": "क्याप्टेन निःशुल्क योजनामा उपलब्ध छैन। सहायकहरू, कोपाइलट र थप पहुँचका लागि अहिले नै अपग्रेड गर्नुहोस्।",
+ "REFRESH_CREDITS": "रिफ्रेश"
},
"CHAT_WITH_US": {
- "TITLE": "Need help?",
- "DESCRIPTION": "Do you face any issues in billing? We are here to help.",
+ "TITLE": "मद्दत चाहिन्छ?",
+ "DESCRIPTION": "के तपाईंलाई बिलिङमा कुनै समस्या छ? हामी यहाँ मद्दत गर्न तयार छौं।",
"BUTTON_TXT": "हामीसँग कुराकानी गर्नुहोस्"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "तपाईंको बिलिङ खाता सेटअप हुँदैछ। कृपया पृष्ठ रिफ्रेस गरेर पुनः प्रयास गर्नुहोस्।",
+ "TOPUP": {
+ "BUY_CREDITS": "थप क्रेडिट किन्नुहोस्",
+ "MODAL_TITLE": "AI क्रेडिट किन्नुहोस्",
+ "MODAL_DESCRIPTION": "Captain AI का लागि थप क्रेडिट किन्नुहोस्।",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "एक पटकको",
+ "POPULAR": "सबैभन्दा लोकप्रिय",
+ "NOTE_TITLE": "नोट:",
+ "NOTE_DESCRIPTION": "क्रेडिटहरू तुरुन्तै थपिन्छन् र ६ महिनामा सकिन्छन्। क्रेडिट प्रयोग गर्न सक्रिय सदस्यता आवश्यक छ। किनेका क्रेडिटहरू तपाईंको मासिक योजनाका क्रेडिट सकिएपछि मात्र प्रयोग हुन्छन्।",
+ "CANCEL": "रद्द गर्नुहोस्",
+ "PURCHASE": "क्रेडिट किन्नुहोस्",
+ "LOADING": "विकल्पहरू लोड हुँदैछन्...",
+ "FETCH_ERROR": "क्रेडिट विकल्पहरू लोड गर्न असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "PURCHASE_ERROR": "किनमेल प्रक्रिया असफल भयो। कृपया फेरि प्रयास गर्नुहोस्।",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "किनमेल पुष्टि गर्नुहोस्",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "पुष्टि गरेपछि तपाईंको सुरक्षित कार्डबाट तुरुन्तै रकम काटिनेछ।",
+ "GO_BACK": "फिर्ता जानुहोस्",
+ "CONFIRM_PURCHASE": "किनमेल पुष्टि गर्नुहोस्"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "सुरक्षा",
+ "DESCRIPTION": "आफ्नो खाताको सुरक्षा सेटिङहरू व्यवस्थापन गर्नुहोस्।",
+ "LINK_TEXT": "SAML SSO को बारेमा थप जान्नुहोस्",
+ "SAML_DISABLED_MESSAGE": "SAML SSO हाल असक्षम छ। कृपया यो सुविधा सक्षम गर्न आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "आफ्नो खाताका लागि SAML सिंगल साइन-इन कन्फिगर गर्नुहोस्। प्रयोगकर्ताहरूले इमेल/पासवर्डको सट्टा तपाईंको आइडेन्टिटी प्रोभाइडरमार्फत प्रमाणिकरण गर्नेछन्।",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - SAML प्रतिक्रिया प्राप्त गर्नका लागि यो URL तपाईंको IdP मा गन्तव्यको रूपमा कन्फिगर गर्नुहोस्"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "SAML प्रमाणीकरण अनुरोधहरू पठाइने URL",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "PEM ढाँचामा हस्ताक्षर प्रमाणपत्र",
+ "HELP": "SAML प्रतिक्रिया प्रमाणित गर्न तपाईंको आइडेन्टिटी प्रोभाइडरबाट प्राप्त सार्वजनिक प्रमाणपत्र",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "फिङ्गरप्रिन्ट",
+ "TOOLTIP": "प्रमाणपत्रको SHA-1 फिङ्गरप्रिन्ट - IdP कन्फिगरेसनमा प्रमाणपत्र प्रमाणित गर्न प्रयोग गर्नुहोस्"
+ },
+ "COPY_SUCCESS": "Code copied to clipboard successfully",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "यो एप्लिकेसनको सेवा प्रदायकको रूपमा अद्वितीय परिचायक (स्वतः-उत्पन्न)।",
+ "TOOLTIP": "Chatwoot लाई सेवा प्रदायकको रूपमा अद्वितीय परिचायक - IdP सेटिङमा यो कन्फिगर गर्नुहोस्"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "आइडेन्टिटी प्रोभाइडर Entity ID",
+ "HELP": "तपाईंको आइडेन्टिटी प्रोभाइडरको अद्वितीय परिचायक (सामान्यतया IdP कन्फिगरेसनमा पाइन्छ)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "SAML सेटिङहरू अद्यावधिक गर्नुहोस्",
+ "API": {
+ "SUCCESS": "SAML सेटिङहरू सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR": "SAML सेटिङहरू अद्यावधिक गर्न असफल भयो",
+ "ERROR_LOADING": "SAML सेटिङहरू लोड गर्न असफल भयो",
+ "DISABLED": "SAML सेटिङहरू सफलतापूर्वक निष्क्रिय गरियो"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, र Certificate अनिवार्य फिल्डहरू हुन्",
+ "SSO_URL_ERROR": "कृपया मान्य SSO URL प्रविष्ट गर्नुहोस्",
+ "CERTIFICATE_ERROR": "Certificate आवश्यक छ",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID आवश्यक छ"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "SAML SSO सुविधा Enterprise योजनाहरूमा मात्र उपलब्ध छ।",
+ "UPGRADE_PROMPT": "SAML सिंगल साइन-इन र अन्य उन्नत सुरक्षा सुविधाहरू प्रयोग गर्न Enterprise योजना अपग्रेड गर्नुहोस्।",
+ "ASK_ADMIN": "अपग्रेडका लागि कृपया आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।"
+ },
+ "PAYWALL": {
+ "TITLE": "SAML SSO सक्षम गर्न अपग्रेड गर्नुहोस्",
+ "AVAILABLE_ON": "SAML SSO सुविधा केवल Enterprise योजनामा उपलब्ध छ।",
+ "UPGRADE_PROMPT": "SAML सिंगल साइन-इन र अन्य उन्नत सुविधाहरूको पहुँचका लागि आफ्नो योजना अपग्रेड गर्नुहोस्।",
+ "UPGRADE_NOW": "अहिले नै अपग्रेड गर्नुहोस्",
+ "CANCEL_ANYTIME": "तपाईंले आफ्नो योजना जुनसुकै बेला परिवर्तन वा रद्द गर्न सक्नुहुन्छ"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML एट्रिब्युट सेटअप",
+ "DESCRIPTION": "तपाईंको आइडेन्टिटी प्रोभाइडरमा निम्न एट्रिब्युट म्यापिङहरू कन्फिगर गर्नुपर्छ"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "यी मानहरू प्रतिलिपि गरी आफ्नो Identity Provider मा कन्फिगर गर्नुहोस् SAML जडानका लागि"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "वार्ता कार्यप्रवाहहरू",
+ "DESCRIPTION": "वार्ता समाधानका लागि नियम र आवश्यक फिल्डहरू सेट गर्नुहोस्।"
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "समाधानमा आवश्यक विशेषताहरू",
+ "DESCRIPTION": "वार्ता समाधान गर्दा, यी विशेषताहरू नभरिएको भए एजेन्टलाई भर्न अनुरोध गरिनेछ।",
+ "NO_ATTRIBUTES": "अहिलेसम्म कुनै विशेषता थपिएको छैन",
+ "ADD": {
+ "TITLE": "विशेषता थप्नुहोस्",
+ "SEARCH_PLACEHOLDER": "विशेषता खोज्नुहोस्"
+ },
+ "SAVE": {
+ "SUCCESS": "आवश्यक विवरणहरू अपडेट गरियो",
+ "ERROR": "आवश्यक विवरणहरू अपडेट गर्न सकिएन, कृपया फेरि प्रयास गर्नुहोस्"
+ },
+ "MODAL": {
+ "TITLE": "संवाद समाधान गर्नुहोस्",
+ "DESCRIPTION": "यो संवाद समाधान गर्नु अघि तलका अनुकूल विवरणहरू भर्नुहोस्",
+ "ACTIONS": {
+ "RESOLVE": "संवाद समाधान गर्नुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "नोट लेख्नुहोस्...",
+ "NUMBER": "संख्या लेख्नुहोस्",
+ "LINK": "लिङ्क थप्नुहोस्",
+ "DATE": "मिति छान्नुहोस्",
+ "LIST": "विकल्प छान्नुहोस्"
+ },
+ "CHECKBOX": {
+ "YES": "हो",
+ "NO": "होइन"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "आवश्यक विशेषता प्रयोग गर्न योजना स्तरोन्नति गर्नुहोस्",
+ "AVAILABLE_ON": "आवश्यक संवाद विशेषता सुविधा Business र Enterprise योजनामा उपलब्ध छ।",
+ "UPGRADE_PROMPT": "संवाद टुंग्याउनु अघि एजेन्टलाई आवश्यक विशेषता भर्न अनुरोध गर्न योजना स्तरोन्नति गर्नुहोस्।",
+ "UPGRADE_NOW": "अहिले स्तरोन्नति गर्नुहोस्",
+ "CANCEL_ANYTIME": "तपाईंले आफ्नो योजना जुनसुकै बेला परिवर्तन वा रद्द गर्न सक्नुहुन्छ"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "आवश्यक संवाद विशेषता सुविधा भुक्तानी योजना मा उपलब्ध छ।",
+ "UPGRADE_PROMPT": "संवाद टुंग्याउनु अघि आवश्यक विशेषता लागू गर्न भुक्तानी योजना मा स्तरोन्नति गर्नुहोस्।",
+ "ASK_ADMIN": "अपग्रेडका लागि कृपया आफ्नो प्रशासकलाई सम्पर्क गर्नुहोस्।"
+ }
+ }
},
"CREATE_ACCOUNT": {
- "NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
- "NEW_ACCOUNT": "New Account",
- "SELECTOR_SUBTITLE": "Create a new account",
+ "NO_ACCOUNT_WARNING": "उफ! हामीले कुनै Chatwoot खाता फेला पार्न सकेनौं। कृपया जारी राख्न नयाँ खाता सिर्जना गर्नुहोस्।",
+ "NEW_ACCOUNT": "नयाँ खाता",
+ "SELECTOR_SUBTITLE": "नयाँ खाता सिर्जना गर्नुहोस्",
"API": {
- "SUCCESS_MESSAGE": "Account created successfully",
- "EXIST_MESSAGE": "Account already exists",
- "ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
+ "SUCCESS_MESSAGE": "खाता सफलतापूर्वक सिर्जना गरियो",
+ "EXIST_MESSAGE": "खाता पहिले नै अवस्थित छ",
+ "ERROR_MESSAGE": "Woot सर्भरसँग जडान गर्न सकिएन, कृपया पछि पुन: प्रयास गर्नुहोस्"
},
"FORM": {
"NAME": {
- "LABEL": "Company Name",
- "PLACEHOLDER": "Wayne Enterprises"
+ "LABEL": "कम्पनी नाम",
+ "PLACEHOLDER": "वेयन इन्टरप्राइजेज"
},
- "SUBMIT": "बुझाउनुहोस्"
+ "SUBMIT": "बुझाउनुहोस्",
+ "CANCEL": "रद्द गर्नुहोस्"
}
},
"KEYBOARD_SHORTCUTS": {
- "TOGGLE_MODAL": "View all shortcuts",
+ "TOGGLE_MODAL": "सबै सर्टकटहरू हेर्नु",
"TITLE": {
- "OPEN_CONVERSATION": "Open conversation",
- "RESOLVE_AND_NEXT": "Resolve and move to next",
- "NAVIGATE_DROPDOWN": "Navigate dropdown items",
- "RESOLVE_CONVERSATION": "Resolve Conversation",
- "GO_TO_CONVERSATION_DASHBOARD": "Go to Conversation Dashboard",
- "ADD_ATTACHMENT": "Add Attachment",
- "GO_TO_CONTACTS_DASHBOARD": "Go to Contacts Dashboard",
- "TOGGLE_SIDEBAR": "Toggle Sidebar",
- "GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
- "MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
- "GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
- "SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
- "SWITCH_TO_REPLY": "Switch to Reply",
- "TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ "OPEN_CONVERSATION": "संवाद खोल्नुहोस्",
+ "RESOLVE_AND_NEXT": "समाधान गरी अर्कोमा जानुहोस्",
+ "NAVIGATE_DROPDOWN": "ड्रपडाउन वस्तुहरूमा नेभिगेट गर्नुहोस्",
+ "RESOLVE_CONVERSATION": "संवाद समाधान गर्नुहोस्",
+ "GO_TO_CONVERSATION_DASHBOARD": "संवाद ड्यासबोर्डमा जानुहोस्",
+ "ADD_ATTACHMENT": "संलग्नक थप्नुहोस्",
+ "GO_TO_CONTACTS_DASHBOARD": "सम्पर्क ड्यासबोर्डमा जानुहोस्",
+ "TOGGLE_SIDEBAR": "साइडबार टगल गर्नुहोस्",
+ "GO_TO_REPORTS_SIDEBAR": "रिपोर्ट साइडबारमा जानुहोस्",
+ "MOVE_TO_NEXT_TAB": "संवाद सूचीमा अर्को ट्याबमा जानुहोस्",
+ "GO_TO_SETTINGS": "सेटिङहरूमा जानुहोस्",
+ "SWITCH_TO_PRIVATE_NOTE": "प्राइभेट नोटमा स्विच गर्नुहोस्",
+ "SWITCH_TO_REPLY": "उत्तरमा स्विच गर्नुहोस्",
+ "TOGGLE_SNOOZE_DROPDOWN": "स्नूज ड्रपडाउन टगल गर्नुहोस्"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "एजेन्ट नियुक्ति",
+ "DESCRIPTION": "इनबक्स र एजेन्टहरूको आवश्यकताअनुसार कार्यभार प्रभावकारी रूपमा व्यवस्थापन गर्न र कुराकानीहरू मार्गनिर्देशन गर्न नीतिहरू परिभाषित गर्नुहोस्। यहाँ थप जान्नुहोस्।"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "नियुक्ति नीति",
+ "DESCRIPTION": "कसरी कुराकानीहरू इनबक्सहरूमा नियुक्त हुन्छन् व्यवस्थापन गर्नुहोस्।",
+ "FEATURES": [
+ "कुराकानीहरू समान रूपमा वा उपलब्ध क्षमताअनुसार नियुक्त गर्नुहोस्।",
+ "कुनै पनि एजेन्टलाई अत्यधिक भार नपरोस् भनेर निष्पक्ष वितरण नियमहरू थप्नुहोस्।",
+ "नीतिमा इनबक्सहरू थप्नुहोस् - एक नीतिमा एक इनबक्स।"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "एजेन्ट क्षमता नीति",
+ "DESCRIPTION": "एजेन्टहरूको कार्यभार व्यवस्थापन गर्नुहोस्।",
+ "FEATURES": [
+ "प्रति इनबक्स अधिकतम कुराकानीहरू परिभाषित गर्नुहोस्।",
+ "लेबल र समयको आधारमा अपवादहरू सिर्जना गर्नुहोस्",
+ "नीतिमा एजेन्टहरू थप्नुहोस् - प्रति एजेन्ट एक नीति"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "नियुक्ति नीति",
+ "CREATE_POLICY": "नयाँ नीति"
+ },
+ "CARD": {
+ "ORDER": "क्रम",
+ "PRIORITY": "प्राथमिकता",
+ "ACTIVE": "सक्रिय",
+ "INACTIVE": "निष्क्रिय",
+ "POPOVER": "थप गरिएका इनबक्सहरू",
+ "EDIT": "सम्पादन गर्नुहोस्"
+ },
+ "NO_RECORDS_FOUND": "कुनै नियुक्ति नीति फेला परेन"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "असाइनमेन्ट नीति सिर्जना गर्नुहोस्"
+ },
+ "CREATE_BUTTON": "नीति सिर्जना गर्नुहोस्",
+ "API": {
+ "SUCCESS_MESSAGE": "असाइनमेन्ट नीति सफलतापूर्वक सिर्जना गरियो",
+ "ERROR_MESSAGE": "असाइनमेन्ट नीति सिर्जना गर्न असफल",
+ "INBOX_LINKED": "इनबक्स नीति सँग जडान गरिएको छ"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "असाइनमेन्ट नीति सम्पादन गर्नुहोस्"
+ },
+ "EDIT_BUTTON": "नीति अपडेट गर्नुहोस्",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "इनबक्स थप्नुहोस्",
+ "DESCRIPTION": "{inboxName} इनबक्स पहिले नै अर्को नीतिसँग जोडिएको छ। के तपाईं यसलाई यो नीतिसँग जोड्न निश्चित हुनुहुन्छ? यसले अर्को नीतिबाट अनजोडिनेछ।",
+ "CONFIRM_BUTTON_LABEL": "जारी राख्नुहोस्",
+ "CANCEL_BUTTON_LABEL": "रद्द गर्नुहोस्"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "इनबक्सलाई नीतिसँग जडान गर्नुहोस्",
+ "DESCRIPTION": "के तपाईं यो इनबक्सलाई असाइनमेन्ट नीतिसँग जडान गर्न चाहनुहुन्छ?",
+ "LINK_BUTTON": "इनबक्स जडान गर्नुहोस्",
+ "CANCEL_BUTTON": "छोड्नुहोस्"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "असाइनमेन्ट नीति सफलतापूर्वक अपडेट गरियो",
+ "ERROR_MESSAGE": "असाइनमेन्ट नीति अपडेट गर्न असफल"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "नीतिमा इनबक्स सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "नीतिमा इनबक्स थप्न असफल"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "नीतिबाट इनबक्स सफलतापूर्वक हटाइयो",
+ "ERROR_MESSAGE": "नीतिबाट इनबक्स हटाउन असफल"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "नीतिको नाम:",
+ "PLACEHOLDER": "नीतिको नाम प्रविष्ट गर्नुहोस्"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण:",
+ "PLACEHOLDER": "विवरण प्रविष्ट गर्नुहोस्"
+ },
+ "STATUS": {
+ "LABEL": "स्थिति:",
+ "PLACEHOLDER": "स्थिति चयन गर्नुहोस्",
+ "ACTIVE": "नीति सक्रिय छ",
+ "INACTIVE": "नीति निष्क्रिय छ"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "असाइनमेन्ट क्रम",
+ "ROUND_ROBIN": {
+ "LABEL": "राउन्ड रोबिन",
+ "DESCRIPTION": "एजेन्टहरू बीच समान रूपमा कुराकानीहरू असाइन गर्नुहोस्।"
+ },
+ "BALANCED": {
+ "LABEL": "सन्तुलित",
+ "DESCRIPTION": "उपलब्ध क्षमता अनुसार कुराकानीहरू असाइन गर्नुहोस्।",
+ "PREMIUM_MESSAGE": "सन्तुलित असाइनमेन्ट र एजेन्ट क्षमता व्यवस्थापन पहुँच गर्न अपग्रेड गर्नुहोस्।",
+ "PREMIUM_BADGE": "प्रिमियम"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "असाइनमेन्ट प्राथमिकता",
+ "EARLIEST_CREATED": {
+ "LABEL": "सबैभन्दा पहिले सिर्जना गरिएको",
+ "DESCRIPTION": "सबैभन्दा पहिले सिर्जना गरिएको कुराकानीलाई पहिलो असाइन गरिन्छ।"
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "सबैभन्दा लामो समयदेखि पर्खिरहेको",
+ "DESCRIPTION": "सबैभन्दा लामो समयदेखि पर्खिरहेको कुराकानीलाई पहिलो असाइन गरिन्छ।"
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "न्यायपूर्ण वितरण नीति",
+ "DESCRIPTION": "कुनै पनि एजेन्टलाई अत्यधिक भार नपरोस् भनेर समय विन्डो भित्र प्रति एजेन्ट अधिकतम 100 कुराकानीहरू असाइन गर्न सकिने संख्या सेट गर्नुहोस्। यो आवश्यक फिल्डले डिफल्ट रूपमा प्रति घण्टा 100 कुराकानीहरू सेट गर्दछ।",
+ "INPUT_MAX": "अधिकतम तोक्नुहोस्",
+ "DURATION": "प्रति एजेन्ट प्रत्येक"
+ },
+ "INBOXES": {
+ "LABEL": "थपिएका इनबक्सहरू",
+ "DESCRIPTION": "यो नीति लागू हुने इनबक्सहरू थप्नुहोस्।",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "थप्न इनबक्स खोज्नुहोस् र चयन गर्नुहोस्",
+ "ADD_BUTTON": "थप्नुहोस्"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "इनबक्स सफलतापूर्वक नीति मा थपियो",
+ "ERROR_MESSAGE": "इनबक्स नीति मा थप्न असफल भयो"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "असाइनमेन्ट नीति सफलतापूर्वक मेटाइयो",
+ "ERROR_MESSAGE": "असाइनमेन्ट नीति मेटाउन असफल"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "थपिएका एजेन्टहरू",
+ "EDIT": "Edit"
+ },
+ "NO_RECORDS_FOUND": "एजेन्ट क्षमता सम्बन्धी कुनै नीति फेला परेन"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "एजेन्ट क्षमता नीति बनाउनुहोस्"
+ },
+ "CREATE_BUTTON": "नीति बनाउनुहोस्",
+ "API": {
+ "SUCCESS_MESSAGE": "एजेन्ट क्षमता नीति सफलतापूर्वक बन्यो",
+ "ERROR_MESSAGE": "एजेन्ट क्षमता नीति बनाउन असफल भयो"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancel"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "एजेन्ट क्षमता नीति सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR_MESSAGE": "एजेन्ट क्षमता नीति अद्यावधिक गर्न असफल भयो"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "एजेन्ट नीति मा सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "एजेन्ट नीति मा थप्न असफल भयो"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "एजेन्ट नीति बाट सफलतापूर्वक हटाइयो",
+ "ERROR_MESSAGE": "एजेन्ट नीति बाट हटाउन असफल भयो"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "इनबक्स सीमा सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "इनबक्स सीमा थप्न असफल भयो"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "इनबक्स सीमा सफलतापूर्वक अद्यावधिक गरियो",
+ "ERROR_MESSAGE": "इनबक्स सीमा अद्यावधिक गर्न असफल भयो"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "इनबक्स सीमा सफलतापूर्वक हटाइयो",
+ "ERROR_MESSAGE": "इनबक्स सीमा हटाउन असफल भयो"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "नीतिको नाम:",
+ "PLACEHOLDER": "नीतिको नाम लेख्नुहोस्"
+ },
+ "DESCRIPTION": {
+ "LABEL": "विवरण:",
+ "PLACEHOLDER": "विवरण लेख्नुहोस्"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "इनबक्स सीमा",
+ "ADD_BUTTON": "इनबक्स थप्नुहोस्",
+ "FIELD": {
+ "SELECT_INBOX": "इनबक्स छान्नुहोस्",
+ "MAX_CONVERSATIONS": "अधिकतम संवादहरू",
+ "SET_LIMIT": "सीमा सेट गर्नुहोस्"
+ },
+ "EMPTY_STATE": "इनबक्स सीमा सेट गरिएको छैन"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "बहिष्करण नियमहरू",
+ "DESCRIPTION": "निम्न सर्तहरू पूरा गर्ने संवादहरू एजेन्ट क्षमतामा गणना हुँदैनन्",
+ "TAGS": {
+ "LABEL": "विशेष ट्याग भएका संवादहरू हटाउनुहोस्",
+ "ADD_TAG": "ट्याग थप्नुहोस्",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "ट्याग खोज्नुहोस् र चयन गर्नुहोस्"
+ },
+ "EMPTY_STATE": "यस नीतिमा कुनै ट्याग थपिएको छैन।"
+ },
+ "DURATION": {
+ "LABEL": "निर्दिष्ट समयभन्दा पुराना संवादहरू हटाउनुहोस्",
+ "PLACEHOLDER": "समय सेट गर्नुहोस्"
+ }
+ },
+ "USERS": {
+ "LABEL": "नियुक्त एजेन्टहरू",
+ "DESCRIPTION": "यो नीति लागू हुने एजेन्टहरू थप्नुहोस्।",
+ "ADD_BUTTON": "एजेन्ट थप्नुहोस्",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "एजेन्ट खोज्नुहोस् र चयन गर्नुहोस्",
+ "ADD_BUTTON": "थप्नुहोस्"
+ },
+ "EMPTY_STATE": "कुनै एजेन्ट थपिएको छैन",
+ "API": {
+ "SUCCESS_MESSAGE": "एजेन्ट नीति मा सफलतापूर्वक थपियो",
+ "ERROR_MESSAGE": "एजेन्ट नीति मा थप्न असफल भयो"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "एजेन्ट क्षमता नीति सफलतापूर्वक हटाइयो",
+ "ERROR_MESSAGE": "एजेन्ट क्षमता नीति हटाउन असफल भयो"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "नीति हटाउनुहोस्",
+ "DESCRIPTION": "के तपाईं यो नीति मेटाउन निश्चित हुनुहुन्छ? यो कार्य पूर्ववत गर्न सकिँदैन।",
+ "CONFIRM_BUTTON_LABEL": "Delete",
+ "CANCEL_BUTTON_LABEL": "Cancel"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/signup.json b/app/javascript/dashboard/i18n/locale/ne/signup.json
index 10ddc5b86..64864751f 100644
--- a/app/javascript/dashboard/i18n/locale/ne/signup.json
+++ b/app/javascript/dashboard/i18n/locale/ne/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Register",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Work email",
- "PLACEHOLDER": "Enter your work email address. eg: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Password",
"PLACEHOLDER": "Password",
"ERROR": "Password is too short",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirm Password",
"PLACEHOLDER": "Confirm Password",
- "ERROR": "Password doesnot match"
+ "ERROR": "Passwords do not match."
},
"API": {
- "SUCCESS_MESSAGE": "Registration Successfull",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Could not connect to Woot Server, Please try again later"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Already have an account?"
+ "HAVE_AN_ACCOUNT": "Already have an account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "प्रमाणिकरण इमेल पुन: पठाउनु",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/sla.json b/app/javascript/dashboard/i18n/locale/ne/sla.json
index 806746b75..9ab41fb82 100644
--- a/app/javascript/dashboard/i18n/locale/ne/sla.json
+++ b/app/javascript/dashboard/i18n/locale/ne/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "There are no items matching this query",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Name",
- "Description",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "There was an error, please try again"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "There was an error, please try again"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm Deletion",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Yes, Delete ",
+ "NO": "No, Keep "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "First response time",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/snooze.json b/app/javascript/dashboard/i18n/locale/ne/snooze.json
new file mode 100644
index 000000000..b43db88e2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "day",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "day"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json b/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
index f9ecaaaae..f3ce7f167 100644
--- a/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/ne/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Search teams...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Create",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Add Agents",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "You are all set to go!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Create",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Add Agents",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "You are all set to go!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "You are all set to go!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "You are all set to go!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "Email",
"BUTTON_TEXT": "Add agents",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Add agents",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Delete ",
diff --git a/app/javascript/dashboard/i18n/locale/ne/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/ne/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/ne/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/ne/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/ne/yearInReview.json b/app/javascript/dashboard/i18n/locale/ne/yearInReview.json
new file mode 100644
index 000000000..b5128edff
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/ne/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "बन्दा गार्नुहोस्",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "conversations",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "डाउनलोड",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json b/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json
index b96a82f2f..1d0836347 100644
--- a/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/nl/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "EN",
"OR": "OF"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Gelijk aan",
"not_equal_to": "Niet gelijk aan",
- "contains": "Bevat",
"does_not_contain": "Bevat niet",
"is_present": "Is aanwezig",
"is_not_present": "Is niet aanwezig",
"is_greater_than": "Is groter dan",
"is_less_than": "Is lager dan",
"days_before": "Is x dagen vóór",
- "starts_with": "Begint met"
+ "starts_with": "Begint met",
+ "equalTo": "Gelijk aan",
+ "notEqualTo": "Niet gelijk aan",
+ "contains": "Bevat",
+ "doesNotContain": "Bevat niet",
+ "isPresent": "Is aanwezig",
+ "isNotPresent": "Is niet aanwezig",
+ "isGreaterThan": "Is groter dan",
+ "isLessThan": "Is minder dan",
+ "daysBefore": "Is x dagen vóór",
+ "startsWith": "Begint met"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Waar",
@@ -54,6 +64,12 @@
"CREATED_AT": "Aangemaakt op",
"LAST_ACTIVITY": "Laatste Activiteit"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Waarde is vereist",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standaard filters",
"ADDITIONAL_FILTERS": "Aanvullende filters",
diff --git a/app/javascript/dashboard/i18n/locale/nl/agentBots.json b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
index 4aa8fd12a..886cd9966 100644
--- a/app/javascript/dashboard/i18n/locale/nl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/nl/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Acties"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
index d9eb79d99..306e6c34c 100644
--- a/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Medewerkers",
"HEADER_BTN_TXT": "Medewerker toevoegen",
"LOADING": "Ophalen van medewerkerslijst",
- "SIDEBAR_TXT": "Agenten
Een Agent is lid van uw klantenservice.
De agenten kunnen berichten van uw gebruikers bekijken en beantwoorden. De lijst toont alle agenten die momenteel in uw account staan.
Klik op Voeg agent toe om een nieuwe agent toe te voegen. De agent die je toevoegt ontvangt een e-mail met een bevestigingslink om zijn account te activeren, waarna hij Chatwoot kan bezoeken en op berichten kan reageren.
Toegang tot Chatwoot's functies zijn gebaseerd op de volgende rollen.
Agent - Agenten met deze rol kunnen alleen inboxen, rapporten en gesprekken gebruiken. Ze kunnen gesprekken toewijzen aan andere agenten of zichzelf en gesprekken oplossen.
Beheerder - Beheerder heeft toegang tot alle Chatwoot functies ingeschakeld voor uw account, inclusief instellingen, samen met alle normale agents' privileges.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Beheerder",
"AGENT": "Medewerker"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Er zijn geen medewerkers gekoppeld aan dit account",
"TITLE": "Beheer medewerkers in uw team",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Acties",
"VERIFIED": "Geverifieerd",
- "VERIFICATION_PENDING": "Verificatie in behandeling"
+ "VERIFICATION_PENDING": "Verificatie in behandeling",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Voeg medewerker toe aan je team",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Kan geen verbinding maken met Woot Server, probeer het later opnieuw"
}
},
+ "SEARCH_PLACEHOLDER": "Zoek agenten...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Geen resultaten gevonden."
},
@@ -103,6 +108,9 @@
"AGENT": "Selecteer agent",
"TEAM": "Selecteer team"
},
+ "LIST": {
+ "NONE": "Geen"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Geen medewerkers gevonden",
diff --git a/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
index 764f47c09..8f2258953 100644
--- a/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Aangepaste attributen",
"HEADER_BTN_TXT": "Aangepast attribuut toevoegen",
"LOADING": "Aangepaste attributen ophalen",
- "SIDEBAR_TXT": "Aangepaste Attributen
Een aangepast attribuut volgt feiten over uw contacten/conversaties - zoals het abonnement of wanneer ze voor het eerst een item bestelden etc.
Voor het maken van een aangepast attribuut, klik op Voeg Aangepast Attribuut toe. U kunt ook een bestaand Aangepast Attribuut bewerken of verwijderen door op de knop Bewerken of Verwijderen te klikken.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Attributen zoeken...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Gesprek",
+ "CONTACT": "Contact",
+ "COMPANY": "Bedrijfsnaam"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Tekst",
+ "NUMBER": "Getal",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "Lijst",
+ "CHECKBOX": "Selectievakje"
+ },
"ADD": {
"TITLE": "Aangepast attribuut toevoegen",
"SUBMIT": "Aanmaken",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Kan het aangepaste attribuut niet verwijderen. Probeer het opnieuw."
},
"CONFIRM": {
- "TITLE": "Weet u zeker dat u wilt verwijderen - %{attributeName}",
+ "TITLE": "Weet u zeker dat u wilt verwijderen - {attributeName}",
"PLACE_HOLDER": "Voer {attributeName} in om te bevestigen",
"MESSAGE": "Verwijderen zal het aangepaste attribuut verwijderen",
"YES": "Verwijderen ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Aangepaste attributen",
"CONVERSATION": "Gesprek",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Bedrijfsnaam"
},
"LIST": {
- "TABLE_HEADER": [
- "Naam",
- "Beschrijving",
- "Type",
- "Toets"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "DESCRIPTION": "Beschrijving",
+ "TYPE": "Type",
+ "KEY": "Sleutel"
+ },
"BUTTONS": {
"EDIT": "Bewerken",
"DELETE": "Verwijderen"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/auditLogs.json b/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
index 097f8da05..80cdacee5 100644
--- a/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/nl/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Audit-logs toevoegen",
"LOADING": "Ophalen van Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht",
"SIDEBAR_TXT": "Audit Logs
Audit Logs zijn sporen voor gebeurtenissen en acties in een Chatwoot Systeem.
",
"LIST": {
"404": "Er zijn geen Audit Logs beschikbaar in dit account.",
"TITLE": "Beheer Audit Logs",
"DESC": "Audit Logs zijn sporen voor gebeurtenissen en acties in een Chatwoot Systeem.",
- "TABLE_HEADER": [
- "User",
- "Tijd",
- "IP-adres"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Tijd",
+ "IP_ADDRESS": "IP-adres"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs succesvol opgehaald",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "Systeem",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} heeft een nieuwe automatiseringsregel aangemaakt (#%{id})",
- "EDIT": "%{agentName} heeft een automatiseringsregel bijgewerkt (#%{id})",
- "DELETE": "%{agentName} heeft een automatiseringsregel verwijderd (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} heeft %{invitee} uitgenodigd voor het account als een %{role}",
+ "ADD": "{agentName} heeft {invitee} uitgenodigd voor het account als een {role}",
"EDIT": {
- "SELF": "%{agentName} heeft zijn %{attributes} gewijzigd naar %{values}",
- "OTHER": "%{agentName} heeft %{attributes} van %{user} gewijzigd naar %{values}"
+ "SELF": "{agentName} heeft zijn {attributes} gewijzigd naar {values}",
+ "OTHER": "{agentName} heeft {attributes} van {user} gewijzigd naar {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} heeft een nieuwe inbox aangemaakt (#%{id})",
- "EDIT": "%{agentName} heeft een inbox bijgewerkt (#%{id})",
- "DELETE": "%{agentName} heeft een inbox verwijderd (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} heeft een nieuwe webhook aangemaakt (#%{id})",
- "EDIT": "%{agentName} heeft een webhook bijgewerkt (#%{id})",
- "DELETE": "%{agentName} heeft een webhook verwijderd (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} is ingelogd",
- "SIGN_OUT": "%{agentName} heeft zich afgemeld"
+ "SIGN_IN": "{agentName} is ingelogd",
+ "SIGN_OUT": "{agentName} heeft zich afgemeld"
},
"TEAM": {
- "ADD": "%{agentName} heeft een nieuw team aangemaakt (#%{id})",
- "EDIT": "%{agentName} heeft een team bijgewerkt (#%{id})",
- "DELETE": "%{agentName} heeft een team verwijderd (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} heeft een nieuwe macro aangemaakt (#%{id})",
- "EDIT": "%{agentName} heeft een macro bijgewerkt (#%{id})",
- "DELETE": "%{agentName} heeft een macro verwijderd (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} heeft %{user} toegevoegd aan de inbox (#%{inbox_id})",
- "REMOVE": "%{agentName} heeft %{user} verwijderd uit de inbox (#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} heeft %{user} toegevoegd aan het team (#%{team_id})",
- "REMOVE": "%{agentName} heeft %{user} verwijderd van het team (#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} heeft de accountconfiguratie bijgewerkt (#%{id})"
+ "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 dd1655ffc..384d7182c 100644
--- a/app/javascript/dashboard/i18n/locale/nl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automatisering",
- "HEADER_BTN_TXT": "Automatiseringsregel toevoegen",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Automatiseringsregels ophalen",
- "SIDEBAR_TXT": "Automatiseringsregels
Automation kan bestaande processen vervangen en automatiseren die handmatige inspanning vereisen. U kunt veel dingen doen met automatisering, inclusief het toevoegen van labels en het toewijzen van gesprekken aan uw beste agent. Het team concentreert zich dus op wat ze het beste doen en besteedt minder tijd aan handmatige taken.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Automatiseringsregel toevoegen",
"SUBMIT": "Aanmaken",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Naam",
- "Beschrijving",
- "Actief",
- "Aangemaakt op"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "ACTIVE": "Actief",
+ "CREATED_ON": "Aangemaakt op",
+ "ACTIONS": "Acties"
+ },
"404": "Geen automatiseringsregels gevonden"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "U moet tenminste één actie hebben om op te slaan",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Voer hier uw bericht in",
- "TEAM_DROPDOWN_PLACEHOLDER": "Teams selecteren"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Teams selecteren",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Automatiseringsregel activeren",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Uploaden...",
"LABEL_UPLOADED": "Succesvol geüpload",
"LABEL_UPLOAD_FAILED": "Upload mislukt"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Waarde is vereist",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Geen",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Gesprek aangemaakt",
+ "CONVERSATION_UPDATED": "Gesprek bijgewerkt",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Geen",
+ "LOW": "Laag",
+ "MEDIUM": "Gemiddeld",
+ "HIGH": "Hoog",
+ "URGENT": "Dringend"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privénotitie",
+ "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",
+ "COMPANY_NAME": "Bedrijfsnaam",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Prioriteit",
+ "LABELS": "Labelen"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
index 7190b1090..93942db0f 100644
--- a/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/nl/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} gesprekken geselecteerd",
- "AGENT_SELECT_LABEL": "Selecteer agent",
- "ASSIGN_CONFIRMATION_LABEL": "Weet u zeker dat u %{conversationCount} %{conversationLabel} wilt toewijzen aan",
- "UNASSIGN_CONFIRMATION_LABEL": "Weet u zeker dat u %{conversationCount} %{conversationLabel} wilt ontkoppelen?",
- "GO_BACK_LABEL": "Ga terug",
- "ASSIGN_LABEL": "Toewijzen",
+ "CONVERSATIONS_SELECTED": "{conversationCount} gesprekken geselecteerd",
+ "NONE": "Geen",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Ja",
+ "CANCEL": "Annuleren",
+ "SEARCH_INPUT_PLACEHOLDER": "Zoeken",
"ASSIGN_AGENT_TOOLTIP": "Agent toewijzen",
"ASSIGN_TEAM_TOOLTIP": "Team toewijzen",
"ASSIGN_SUCCESFUL": "Gesprekken succesvol toegewezen.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Gesprekken succesvol opgehaald.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Gesprekken die op deze pagina zichtbaar zijn, zijn alleen geselecteerd.",
- "AGENT_LIST_LOADING": "Agents worden geladen",
"UPDATE": {
"CHANGE_STATUS": "Status wijzigen",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze tot het volgende antwoord.",
+ "SNOOZE_UNTIL": "Sluimeren",
"UPDATE_SUCCESFUL": "Gespreksstatus succesvol bijgewerkt.",
"UPDATE_FAILED": "Update van gesprekken mislukt, probeer het opnieuw."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Labels toewijzen",
- "NO_LABELS_FOUND": "Geen labels gevonden voor",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Geselecteerde labels toewijzen",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels met succes toegewezen.",
- "ASSIGN_FAILED": "Toewijzen van labels mislukt, probeer het opnieuw."
+ "ASSIGN_FAILED": "Toewijzen van labels mislukt, probeer het opnieuw.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Selecteer team",
"NONE": "Geen",
- "NO_TEAMS_AVAILABLE": "Er zijn nog geen teams toegevoegd aan dit account.",
- "ASSIGN_SELECTED_TEAMS": "Geselecteerde team toewijzen.",
- "ASSIGN_SUCCESFUL": "Teams succesvol toegewezen.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Toewijzen team mislukt, probeer het opnieuw."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/campaign.json b/app/javascript/dashboard/i18n/locale/nl/campaign.json
index 2130db149..d30786560 100644
--- a/app/javascript/dashboard/i18n/locale/nl/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/nl/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campagnes",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Creëer een eenmalige campagne",
- "ONGOING": "Creëer een lopende campagne"
- },
- "ADD": {
- "TITLE": "Creëer een campagne",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Annuleren",
- "CREATE_BUTTON_TEXT": "Aanmaken",
- "FORM": {
- "TITLE": {
- "LABEL": "Titel",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Ingeschakeld",
+ "DISABLED": "Uitgeschakeld"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Bevestigen",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Selecteer een inbox",
- "PLACEHOLDER": "Selecteer een inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Bericht",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sent by",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Voer een geldige URL in"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Verzonden door",
+ "BOT": "Bot",
+ "FROM": "van",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Annuleren",
+ "CREATE_BUTTON_TEXT": "Aanmaken",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Bericht",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Bericht is vereist"
+ },
+ "INBOX": {
+ "LABEL": "Selecteer een inbox",
+ "PLACEHOLDER": "Selecteer een inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Verzonden door",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Voer een geldige URL in"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Verwijderen",
- "CONFIRM": {
- "TITLE": "Verwijderen bevestigen",
- "MESSAGE": "Weet u zeker dat u wilt verwijderen?",
- "YES": "Ja, verwijderen ",
- "NO": "Nee, Behouden "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Annuleren",
+ "CREATE_BUTTON_TEXT": "Aanmaken",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Bericht",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Bericht is vereist"
+ },
+ "INBOX": {
+ "LABEL": "Selecteer een inbox",
+ "PLACEHOLDER": "Selecteer een inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Annuleren",
+ "CREATE_BUTTON_TEXT": "Aanmaken",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Selecteer een inbox",
+ "PLACEHOLDER": "Selecteer een inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Verwerk {templateName}",
+ "LANGUAGE": "Taal",
+ "CATEGORY": "Categorie",
+ "VARIABLES_LABEL": "Variabelen",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Weet u zeker dat u wilt verwijderen?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Verwijderen",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Vernieuwen",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Titel",
- "MESSAGE": "Bericht",
- "INBOX": "Postvak In",
- "STATUS": "Status",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Toevoegen",
- "EDIT": "Bewerken",
- "DELETE": "Verwijderen"
- },
- "STATUS": {
- "ENABLED": "Ingeschakeld",
- "DISABLED": "Uitgeschakeld",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "Er zijn geen lopende campagnes aangemaakt",
- "INBOXES_NOT_FOUND": "Maak een website inbox en begin met het toevoegen van campagnes"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
index aead72726..cc0344a27 100644
--- a/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Standaard antwoorden",
+ "LEARN_MORE": "Meer informatie over standaard antwoorden",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Standaard antwoord toevoegen",
"LOADING": "Standaard antwoorden ophalen...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Er zijn geen standaard antwoorden beschikbaar in dit account.",
"TITLE": "Beheer standaard antwoorden",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Korte code",
- "Inhoud",
- "Acties"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Korte code",
+ "CONTENT": "Inhoud",
+ "ACTIONS": "Acties"
+ }
},
"ADD": {
"TITLE": "Standaard antwoord toevoegen",
diff --git a/app/javascript/dashboard/i18n/locale/nl/chatlist.json b/app/javascript/dashboard/i18n/locale/nl/chatlist.json
index 97a680025..6337ee3e6 100644
--- a/app/javascript/dashboard/i18n/locale/nl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/nl/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Er zijn geen actieve gesprekken in deze groep."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Gesprekken",
"MENTION_HEADING": "Vermeldingen",
"UNATTENDED_HEADING": "Onbeheer",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Locatie"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "heeft een url gedeeld"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Geen inhoud beschikbaar",
"HIDE_QUOTED_TEXT": "Verberg geciteerde tekst",
"SHOW_QUOTED_TEXT": "Toon geciteerde tekst",
- "MESSAGE_READ": "Lezen"
+ "MESSAGE_READ": "Lezen",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/companies.json b/app/javascript/dashboard/i18n/locale/nl/companies.json
new file mode 100644
index 000000000..30acd9b46
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Naam",
+ "DOMAIN": "Domeinnaam",
+ "CREATED_AT": "Aangemaakt op",
+ "LAST_ACTIVITY_AT": "Laatste Activiteit",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contacten",
+ "HISTORY": "History",
+ "NOTES": "Notities"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Attributen zoeken...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Contacten laden...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Bedrijfsnaam",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Annuleren"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Naam",
+ "DOMAIN": "Domeinnaam"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/components.json b/app/javascript/dashboard/i18n/locale/nl/components.json
new file mode 100644
index 000000000..23bbe0d26
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Geen resultaten gevonden.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Geen resultaten gevonden.",
+ "SEARCHING": "Zoeken..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Annuleren",
+ "CONFIRM": "Bevestigen"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Selecteer a. u. b. een belcode uit de lijst"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/contact.json b/app/javascript/dashboard/i18n/locale/nl/contact.json
index fc4fb0bc0..07f5139c5 100644
--- a/app/javascript/dashboard/i18n/locale/nl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/nl/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP-adres",
"CREATED_AT_LABEL": "Aangemaakt op",
"NEW_MESSAGE": "Nieuw bericht",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Er zijn geen eerdere gesprekken gekoppeld aan dit contact.",
"TITLE": "Vorige gesprekken"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Aanpasbare attributen",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Vorige gesprekken"
+ "PREVIOUS_CONVERSATIONS": "Vorige gesprekken",
+ "NO_RECORDS_FOUND": "Geen attributen gevonden"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Contact bewerken",
"DESC": "Bewerk contactgegevens"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Nieuw Contactpersoon",
- "TITLE": "Nieuw contact aanmaken",
- "DESC": "Basisinformatie over de contactpersoon toevoegen."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importeren",
- "TITLE": "Contactpersonen importeren",
- "DESC": "Contacten importeren via een CSV-bestand.",
- "DOWNLOAD_LABEL": "Een voorbeeld CSV-bestand downloaden.",
- "FORM": {
- "LABEL": "CSV-bestand",
- "SUBMIT": "Importeren",
- "CANCEL": "Annuleren"
- },
- "SUCCESS_MESSAGE": "U wordt per e-mail geïnformeerd wanneer de import is voltooid.",
- "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exporteren",
- "TITLE": "Contactpersonen exporteren",
- "DESC": "Exporteer contacten naar een CSV-bestand.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw",
- "CONFIRM": {
- "TITLE": "Contactpersonen exporteren",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Verwijderen bevestigen",
- "MESSAGE": "Weet je zeker dat je deze notitie wilt verwijderen?",
- "YES": "Ja, verwijderen",
- "NO": "Nee, Bewaar het"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Contactpersoon verwijderen",
"TITLE": "Contactpersoon verwijderen",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contacten",
- "FIELDS": "Contactvelden",
- "SEARCH_BUTTON": "Zoeken",
- "SEARCH_INPUT_PLACEHOLDER": "Zoeken naar contacten",
- "FILTER_CONTACTS": "Filteren",
- "FILTER_CONTACTS_SAVE": "Filter opslaan",
- "FILTER_CONTACTS_DELETE": "Filter verwijderen",
- "FILTER_CONTACTS_EDIT": "Segment bewerken",
"LIST": {
- "LOADING_MESSAGE": "Contacten laden...",
- "404": "Er zijn geen contacten die overeenkomen met je zoekopdracht 🔍",
- "NO_CONTACTS": "Er zijn geen beschikbare contacten",
"TABLE_HEADER": {
- "NAME": "Naam",
- "PHONE_NUMBER": "Telefoonnummer",
- "CONVERSATIONS": "Gesprekken",
- "LAST_ACTIVITY": "Laatste Activiteit",
- "CREATED_AT": "Aangemaakt op",
- "COUNTRY": "Land",
- "CITY": "Woonplaats",
- "SOCIAL_PROFILES": "Social-profielen",
- "COMPANY": "Bedrijfsnaam",
- "EMAIL_ADDRESS": "Uw e-mailadres"
- },
- "VIEW_DETAILS": "Details bekijken"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contacten",
- "LOADING": "Contactprofiel laden..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Toevoegen",
- "TITLE": "Shift + Enter om een taak aan te maken"
- },
- "FOOTER": {
- "DUE_DATE": "Vervaldatum",
- "LABEL_TITLE": "Stel type in"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Notities ophalen...",
- "NOT_AVAILABLE": "Er zijn geen notities gemaakt voor dit contact",
- "HEADER": {
- "TITLE": "Notities"
- },
- "LIST": {
- "LABEL": "heeft een notitie toegevoegd"
- },
- "ADD": {
- "BUTTON": "Toevoegen",
- "PLACEHOLDER": "Notitie toevoegen",
- "TITLE": "Dienst + Enter om een notitie aan te maken"
- },
- "CONTENT_HEADER": {
- "DELETE": "Notitie verwijderen"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activiteiten"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notities",
- "PILL_BUTTON_EVENTS": "gebeurtenissen",
- "PILL_BUTTON_CONVO": "gesprekken"
+ "SOCIAL_PROFILES": "Social-profielen"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Attributen toevoegen",
"BUTTON": "Aangepast attribuut toevoegen",
- "NOT_AVAILABLE": "Er zijn geen aangepaste attributen beschikbaar voor deze contactpersoon.",
"COPY_SUCCESSFUL": "Succesvol gekopieerd naar klembord",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Kopieer attribuut",
"DELETE": "Attribuut verwijderen",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Samenvatting",
- "DELETE_WARNING": "Contact van %{primaryContactName} zal worden verwijderd.",
- "ATTRIBUTE_WARNING": "Contactgegevens van %{primaryContactName} worden gekopieerd naar %{parentContactName}."
+ "DELETE_WARNING": "Contact van {primaryContactName} zal worden verwijderd.",
+ "ATTRIBUTE_WARNING": "Contactgegevens van {primaryContactName} worden gekopieerd naar {parentContactName}."
},
"SEARCH": {
- "ERROR": "FOUT_BERICHT"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Contacten samenvoegen",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact succesvol samengevoegd",
"ERROR_MESSAGE": "Contacten zijn niet samengevoegd, probeer het opnieuw!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contacten",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Bericht",
+ "SEND_MESSAGE": "Verstuur bericht",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contacten"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Dit e-mailadres is reeds in gebruik voor een ander contact.",
+ "PHONE_NUMBER_DUPLICATE": "Dit telefoonnummer wordt reeds gebruikt voor een ander contactpersoon.",
+ "SUCCESS_MESSAGE": "Contact succesvol opgeslagen",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Contacten importeren via een CSV-bestand.",
+ "DOWNLOAD_LABEL": "Een voorbeeld CSV-bestand downloaden.",
+ "LABEL": "CSV-bestand:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Veranderen",
+ "CANCEL": "Annuleren",
+ "IMPORT": "Importeren",
+ "SUCCESS_MESSAGE": "U wordt per e-mail geïnformeerd wanneer de import is voltooid.",
+ "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Exporteren",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
+ },
+ "SORT_BY": {
+ "LABEL": "Sorteren op",
+ "OPTIONS": {
+ "NAME": "Naam",
+ "EMAIL": "E-mailadres",
+ "PHONE_NUMBER": "Telefoon nummer",
+ "COMPANY": "Bedrijfsnaam",
+ "COUNTRY": "Land",
+ "CITY": "Woonplaats",
+ "LAST_ACTIVITY": "Laatste Activiteit",
+ "CREATED_AT": "Aangemaakt op"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Wil je deze filter opslaan?",
+ "CONFIRM": "Filter opslaan",
+ "LABEL": "Naam",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Verwijderen bevestigen",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ja, verwijderen",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Naam",
+ "EMAIL": "E-mailadres",
+ "PHONE_NUMBER": "Telefoon nummer",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Land",
+ "CITY": "Woonplaats",
+ "COMPANY": "Bedrijfsnaam",
+ "CREATED_AT": "Aangemaakt op",
+ "LAST_ACTIVITY": "Laatste Activiteit",
+ "REFERER_LINK": "Verwijzende link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Waar",
+ "BLOCKED_FALSE": "Onwaar",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Filters wissen",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Filters toepassen",
+ "ADD_FILTER": "Filter toevoegen"
+ },
+ "TITLE": "Contacten filteren",
+ "EDIT_SEGMENT": "Segment bewerken",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Filters wissen"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Details bekijken",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Bewerk contactgegevens",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Dit e-mailadres is reeds in gebruik voor een ander contact."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Dit telefoonnummer wordt reeds gebruikt voor een ander contactpersoon."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Voer de plaatsnaam in"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Voer de bedrijfsnaam in"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Contactpersoon verwijderen",
+ "DELETE_DIALOG": {
+ "TITLE": "Verwijderen bevestigen",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ja, verwijderen",
+ "API": {
+ "SUCCESS_MESSAGE": "Contactpersoon werd succesvol verwijderd",
+ "ERROR_MESSAGE": "Contact verwijderen mislukt. Probeer het later opnieuw."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notities",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Er zijn geen eerdere gesprekken gekoppeld aan dit contact"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Ja",
+ "NO": "Nee",
+ "TRIGGER": {
+ "SELECT": "Selecteer waarde",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Geldige waarde is vereist",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Ongeldige URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Geen attributen gevonden",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribuut succesvol toegevoegd",
+ "DELETE_SUCCESS_MESSAGE": "Attribuut succesvol verwijderd",
+ "UPDATE_ERROR": "Kan het attribuut niet bijwerken. Probeer het later opnieuw",
+ "DELETE_ERROR": "Attribuut verwijderen mislukt. Probeer het later opnieuw"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Contact samenvoegen",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primair contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Nog te verwijderen",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Zoeken naar contacten",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact succesvol samengevoegd",
+ "ERROR_MESSAGE": "Contacten zijn niet samengevoegd, probeer het opnieuw!",
+ "IS_SEARCHING": "Zoeken...",
+ "BUTTONS": {
+ "CANCEL": "Annuleren",
+ "CONFIRM": "Contact samenvoegen"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Notitie toevoegen",
+ "WROTE": "schreef",
+ "YOU": "Jij",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Er zijn geen contacten die overeenkomen met je zoekopdracht 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Label toewijzen",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels met succes toegewezen.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Verwijderen",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Contactpersoon verwijderen"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Bekijken",
+ "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": "Aan:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Onderwerp :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "CC:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "BCC:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "BCC"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Schrijf hier je bericht..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variabelen",
+ "BACK": "Ga terug",
+ "SEND_MESSAGE": "Verstuur bericht"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Ga terug",
+ "SEND_MESSAGE": "Verstuur bericht"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/contactFilters.json b/app/javascript/dashboard/i18n/locale/nl/contactFilters.json
index 2664f0756..e3666f260 100644
--- a/app/javascript/dashboard/i18n/locale/nl/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/nl/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is minder dan",
"days_before": "Is x dagen vóór"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Waarde is vereist"
+ },
"ATTRIBUTES": {
"NAME": "Naam",
"EMAIL": "E-mailadres",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Selectievakje",
"CREATED_AT": "Aangemaakt op",
"LAST_ACTIVITY": "Laatste Activiteit",
- "REFERER_LINK": "Verwijzer link"
+ "REFERER_LINK": "Verwijzer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Labelen"
},
"GROUPS": {
"STANDARD_FILTERS": "Standaard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/nl/contentTemplates.json b/app/javascript/dashboard/i18n/locale/nl/contentTemplates.json
new file mode 100644
index 000000000..2de75cd6f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Templates zoeken",
+ "NO_TEMPLATES_FOUND": "Geen templates gevonden voor",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categorie",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Taal",
+ "TEMPLATE_BODY": "Template bericht",
+ "CATEGORY": "Categorie"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Tekst"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabelen",
+ "LANGUAGE": "Taal",
+ "CATEGORY": "Categorie",
+ "VARIABLE_PLACEHOLDER": "Voer {variable} waarde in",
+ "GO_BACK_LABEL": "Ga terug",
+ "SEND_MESSAGE_LABEL": "Verstuur bericht",
+ "FORM_ERROR_MESSAGE": "Vul alstublieft alle variabelen in voordat u deze verzendt",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Terug",
+ "SEND_MESSAGE_BUTTON": "Verstuur bericht"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/conversation.json b/app/javascript/dashboard/i18n/locale/nl/conversation.json
index bb07b076a..31aeb37a7 100644
--- a/app/javascript/dashboard/i18n/locale/nl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/nl/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " om te beginnen",
"NO_INBOX_AGENT": "Oh Oh! Het lijkt erop dat u geen deel uitmaakt van een inbox. Neem contact op met uw beheerder",
"SEARCH_MESSAGES": "Zoek naar berichten in gesprekken",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "sneltoetsen weergeven"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Conversaties laden",
"CANNOT_REPLY": "Je kunt niet reageren omdat",
"24_HOURS_WINDOW": "Beperking van 24-uur berichtenvenster",
+ "48_HOURS_WINDOW": "Beperking van 48-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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Onbekend bestand",
- "SAVE_CONTACT": "Opslaan",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Bijlagen uploaden...",
"REPLIED_TO_STORY": "Reageerde op jouw verhaal",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Bericht succesvol verwijderd",
"FAIL_DELETE_MESSSAGE": "Kon bericht niet verwijderen! Probeer het opnieuw",
"NO_RESPONSE": "Geen reactie",
+ "RESPONSE": "Response",
"RATING_TITLE": "Beoordeling",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Bericht niet beschikbaar",
"CARD": {
"SHOW_LABELS": "Labels weergeven",
- "HIDE_LABELS": "Labels verbergen"
+ "HIDE_LABELS": "Labels verbergen",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Oplossen",
"REOPEN_ACTION": "Heropenen",
"OPEN_ACTION": "Open",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Meer",
"CLOSE": "Sluiten",
"DETAILS": "Details",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snooze tot",
"SNOOZED_UNTIL_TOMORROW": "Snoozed tot morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed tot volgende week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed tot volgende antwoord"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed tot volgende antwoord",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Markeren als in afwachting van",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Volgende week"
}
},
+ "MENTION": {
+ "AGENTS": "Medewerkers",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze tot",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Geen",
"INPUT_PLACEHOLDER": "Selecteer prioriteit",
"NO_RESULTS": "Geen resultaten gevonden",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Markeer als ongelezen",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Heropen gesprek",
"SNOOZE": {
"TITLE": "Sluimeren",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Label toewijzen",
"AGENTS_LOADING": "Agents worden geladen...",
"ASSIGN_TEAM": "Team toewijzen",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Gesprek id %{conversationId} toegewezen aan \"%{agentName}\"",
+ "SUCCESFUL": "Gesprek id {conversationId} toegewezen aan \"{agentName}\"",
"FAILED": "Kan agent niet toewijzen. Probeer het opnieuw."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Handtekening deactiveren",
"MSG_INPUT": "Shift + enter voor nieuwe regel. Begin met '/' om een standaard antwoord te selecteren.",
"PRIVATE_MSG_INPUT": "Shift + nieuwe regel invoeren. Dit is alleen zichtbaar voor medewerkers",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Berichtondertekening is niet geconfigureerd, configureer deze in de profielinstellingen.",
- "CLICK_HERE": "Klik hier om bij te werken"
+ "COPILOT_MSG_INPUT": "Geef copilot extra opdrachten, of vraag iets anders... Druk op enter om vervolgvraag te sturen",
+ "CLICK_HERE": "Klik hier om bij te werken",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Beantwoorden",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Meer lezen",
"DISMISS_REPLY": "Antwoord afwijzen",
"REPLYING_TO": "Antwoord op:",
- "TIP_FORMAT_ICON": "Toon rich text editor",
"TIP_EMOJI_ICON": "Toon emoji-kiezer",
"TIP_ATTACH_ICON": "Bestanden toevoegen",
"TIP_AUDIORECORDER_ICON": "Audio opnemen",
"TIP_AUDIORECORDER_PERMISSION": "Sta toegang tot audio toe",
"TIP_AUDIORECORDER_ERROR": "Geluid kon niet worden geopend",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Sleep hierheen om toe te voegen",
- "START_AUDIO_RECORDING": "Start audio recording",
- "STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "START_AUDIO_RECORDING": "Start audio-opname",
+ "STOP_AUDIO_RECORDING": "Stop audio-opname",
+ "COPILOT_THINKING": "Copilot is aan het denken",
"EMAIL_HEAD": {
"TO": "AAN",
"ADD_BCC": "Voeg bcc toe",
@@ -176,6 +257,13 @@
"YES": "Verzenden",
"CANCEL": "Annuleren"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privéopmerking: alleen zichtbaar voor jou en je team",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Verzonden door:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Kon bericht niet verzenden! Probeer het opnieuw",
"TRY_AGAIN": "opnieuw proberen",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Verwijderen",
"CANCEL": "Annuleren"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Negeer",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Annuleren",
"SEND_EMAIL_SUCCESS": "The chat transcript was sent successfully",
"SEND_EMAIL_ERROR": "Er is een fout opgetreden, probeer het opnieuw",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send the transcript to the customer",
"SEND_TO_AGENT": "Send the transcript to the assigned agent",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Lees onze laatste updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macro's",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Alles weergeven",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Afwachtend",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Maak kenmerk aan",
+ "NO_RECORDS_FOUND": "Geen attributen gevonden",
"UPDATE": {
"SUCCESS": "Attribuut succesvol toegevoegd",
"ERROR": "Kan het attribuut niet bijwerken. Probeer het later opnieuw"
@@ -297,17 +449,18 @@
"TO": "Aan",
"BCC": "BCC",
"CC": "CC",
- "SUBJECT": "Onderwerp"
+ "SUBJECT": "Onderwerp",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "Geen resultaten gevonden",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Oorspronkelijke inhoud",
"TRANSLATED_CONTENT": "Vertaalde inhoud",
"NO_TRANSLATIONS_AVAILABLE": "Geen vertalingen beschikbaar voor deze inhoud"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/customRole.json b/app/javascript/dashboard/i18n/locale/nl/customRole.json
new file mode 100644
index 000000000..cb2cfbb15
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "DESCRIPTION": "Beschrijving",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Acties"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Naam",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Naam is vereist."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Omschrijving is vereist."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Annuleren",
+ "API": {
+ "ERROR_MESSAGE": "Kan geen verbinding maken met de Woot server. Probeer het opnieuw."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Bevestigen",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Bewerken",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Vernieuwen",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Verwijderen",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Kan geen verbinding maken met de Woot server. Probeer het opnieuw."
+ },
+ "CONFIRM": {
+ "TITLE": "Verwijdering bevestigen",
+ "MESSAGE": "Weet u zeker dat u wilt verwijderen ",
+ "YES": "Ja, verwijder ",
+ "NO": "Nee, bewaar"
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/datePicker.json b/app/javascript/dashboard/i18n/locale/nl/datePicker.json
new file mode 100644
index 000000000..f11782951
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Afgelopen 7 dagen",
+ "LAST_30_DAYS": "Laatste 30 dagen",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/general.json b/app/javascript/dashboard/i18n/locale/nl/general.json
new file mode 100644
index 000000000..fbd78ad73
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Zoeken",
+ "EMPTY_STATE": "Geen resultaten gevonden"
+ },
+ "CLOSE": "Sluiten",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/generalSettings.json b/app/javascript/dashboard/i18n/locale/nl/generalSettings.json
index a3812d30b..6c7ffa63f 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "You can receive emails in your custom domain now."
}
},
- "UPDATE_CHATWOOT": "An update %{latestChatwootVersion} for Chatwoot is available. Please update your instance.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Press enter to select",
"ENTER_TO_REMOVE": "Press enter to remove",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Selecteer een",
"SELECT": "Selecteer"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversation Assigned",
"assigned_conversation_new_message": "Nieuw bericht",
"participating_conversation_new_message": "Nieuw bericht",
- "conversation_mention": "Mention"
+ "conversation_mention": "Mention",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Offline",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Algemeen",
"REPORTS": "Rapporten",
"CONVERSATION": "Gesprek",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Tot morgen",
"UNTIL_NEXT_MONTH": "Tot volgende maand",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
index 5aa0123fe..0cb2a8342 100644
--- a/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/nl/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Uploaden...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Zoeken...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Terug",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Kan artikelen niet herordenen. Probeer het opnieuw."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Vertaal",
+ "DELETE": "Verwijderen"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mijn",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Vertaal",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Vertaal",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Vertaal",
+ "MOVE_TO_CATEGORY": "Categorie",
+ "DELETE": "Verwijderen",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Verwijderen",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Naam",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Naam is vereist"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Omschrijving is vereist"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Aanmaken",
+ "EDIT": "Vernieuwen",
+ "CANCEL": "Annuleren"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Verwijderen"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domeinnaam",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Aanmaken",
+ "NAME": {
+ "LABEL": "Naam",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Naam is vereist"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Kon afbeelding niet uploaden! Probeer het opnieuw",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "De grootte van de afbeelding moet kleiner zijn dan {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Naam",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Naam is vereist"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Bewerken",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Verzenden"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Verwijderen"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Weergave",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Verwijderen"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Uploaden...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Annuleren",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Genereren...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/inbox.json b/app/javascript/dashboard/i18n/locale/nl/inbox.json
index b7ec502d1..2b1d3d8ba 100644
--- a/app/javascript/dashboard/i18n/locale/nl/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/nl/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Postvak In",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "Alle notificaties geladen 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snooze tot",
"SNOOZED_UNTIL_TOMORROW": "Snoozed tot morgen",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed tot volgende week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Terug"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nieuw bericht",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nieuw bericht",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Geen inhoud beschikbaar",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Markeer als ongelezen",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
index c0233071c..5e901d3b9 100644
--- a/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Inboxen",
- "SIDEBAR_TXT": "Inbox
When you connect a website or a facebook Page to Chatwoot, it is called an Inbox. You can have unlimited inboxes in your Chatwoot account.
Click on Add Inbox to connect a website or a Facebook Page.
In the Dashboard, you can see all the conversations from all your inboxes in a single place and respond to them under the `Conversations` tab.
You can also see conversations specific to an inbox by clicking on the inbox name on the left pane of the dashboard.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Er zijn geen inboxen aan dit account gekoppeld."
},
- "CREATE_FLOW": [
- {
- "title": "Kies kanaal",
- "route": "settings_inbox_new",
- "body": "Kies de aanbieder die je wilt integreren met Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Kies kanaal",
+ "BODY": "Kies de aanbieder die je wilt integreren met Chatwoot."
},
- {
- "title": "Maak inbox",
- "route": "settings_inboxes_page_channel",
- "body": "Verifieer je account en maak een inbox."
+ "INBOX": {
+ "TITLE": "Maak inbox",
+ "BODY": "Verifieer je account en maak een inbox."
},
- {
- "title": "Agenten toevoegen",
- "route": "settings_inboxes_add_agents",
- "body": "Voeg agenten toe aan de aangemaakte inbox."
+ "AGENT": {
+ "TITLE": "Agenten toevoegen",
+ "BODY": "Voeg agenten toe aan de aangemaakte inbox."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Je bent helemaal klaar om te beginnen!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Je bent helemaal klaar om te beginnen!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Inbox Name",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Select a page from the list",
"INBOX_NAME": "Inbox Name",
"ADD_NAME": "Add a name for your inbox",
- "PICK_NAME": "Pick A Name Your Inbox",
- "PICK_A_VALUE": "Pick a value"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"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' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Voer een geldige URL in"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Website domein",
"PLACEHOLDER": "Voer uw website domein in (bv. acme.com)"
@@ -143,7 +172,7 @@
"ERROR": "Dit veld is verplicht"
},
"PHONE_NUMBER": {
- "LABEL": "Telefoon nummer",
+ "LABEL": "Telefoonnummer",
"PLACEHOLDER": "Voer het telefoonnummer in waaruit het bericht wordt verzonden.",
"ERROR": "Please provide a valid phone number that starts with a `+` sign and does not contain any spaces."
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API sleutel",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Dit veld is verplicht"
},
"API_SECRET": {
"LABEL": "API-geheim",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Dit veld is verplicht"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API-aanbieder",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Inbox Name",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefoonnummer",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Klant SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Authenticatie Token",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API-kanaal",
"DESC": "Integrate with API channel and start supporting your customers.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Configure the URL where you want to recieve callbacks on events.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Create API Channel",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Email Channel",
- "DESC": "Integrate you email inbox.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Kanaal naam",
"PLACEHOLDER": "Voer een kanaal naam in",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "We were not able to save the email channel"
},
- "FINISH_MESSAGE": "Start forwarding your emails to the following email address."
+ "FINISH_MESSAGE": "Start forwarding your emails to the following email address.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klik hier",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE-kanaal",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Kies een kanaal",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mailadres",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenten",
"DESC": "Hier kunt u agenten toevoegen om uw nieuw gecreëerde inbox te beheren. Alleen deze agenten hebben toegang tot uw inbox. Agents die geen deel uitmaken van dit postvak in zullen niet in staat zijn om berichten in dit postvak te zien of te reageren wanneer ze inloggen.
PS: Als beheerder als u toegang wilt krijgen tot alle inboxen, voeg jezelf toe als agent aan alle inboxen die je maakt.",
- "VALIDATION_ERROR": "Add atleast one agent to your new Inbox",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Pick agents for the inbox"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Verifiëren met Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Er ging iets mis, gelieve pagina te vernieuwen...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Je kunt nu contact opnemen met je klanten via het nieuwe Kanaal. Gelukkige ondersteuning",
"BUTTON_TEXT": "Breng me ernaar toe",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "Het aanmaken van een website kanaal is gelukt. Kopieer de code hieronder weergegeven en plak deze op uw website. De volgende keer dat een klant de live chat gebruikt, verschijnt het gesprek automatisch op uw inbox."
+ "WEBSITE_SUCCESS": "Het aanmaken van een website kanaal is gelukt. Kopieer de code hieronder weergegeven en plak deze op uw website. De volgende keer dat een klant de live chat gebruikt, verschijnt het gesprek automatisch op uw inbox.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Autoriseer",
"VIEW": "Bekijken",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Vriendelijk",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Opslaan"
}
@@ -432,8 +606,10 @@
"DISABLED": "Uitgeschakeld"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ingeschakeld",
- "DISABLED": "Uitgeschakeld"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Instellingen",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Messenger Script",
"MESSENGER_SUB_HEAD": "Plaats deze knop in je lichaam tag",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenten",
"INBOX_AGENTS_SUB_TEXT": "Voeg agenten toe of verwijder ze uit deze inbox",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Instellingen Postvak In",
"INBOX_UPDATE_SUB_TEXT": "Update uw inbox instellingen",
"AUTO_ASSIGNMENT_SUB_TEXT": "In- of uitschakelen van de automatische toewijzing van nieuwe gesprekken aan de agenten die aan deze inbox zijn toegevoegd.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Start forwarding your emails to the following email address.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API sleutel",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Vernieuwen",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Verbinden",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "Geen",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Actief",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Annuleren",
+ "CONFIRM_DELETE": "Verwijderen",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Autoriseer",
"SUBTITLE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Taal",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Ga terug"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Availability",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Wachtwoord",
"PLACE_HOLDER": "Wachtwoord"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "In één dag"
},
"WIDGET_COLOR_LABEL": "Kleur van widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat met ons",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat met ons"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Reageert meestal binnen een paar minuten",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mailadres",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API-kanaal",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/index.js b/app/javascript/dashboard/i18n/locale/nl/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/nl/index.js
+++ b/app/javascript/dashboard/i18n/locale/nl/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
index 5679b7f74..23437d798 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Integraties ophalen",
- "NO_HOOK_CONFIGURED": "Er zijn geen %{integrationId} integraties geconfigureerd in dit account.",
+ "NO_HOOK_CONFIGURED": "Er zijn geen {integrationId} integraties geconfigureerd in dit account.",
"HEADER": "Applicaties",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ingeschakeld",
"DISABLED": "Uitgeschakeld"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Ophalen van integratie-hooks",
"INBOX": "Postvak In",
+ "ACTIONS": "Acties",
"DELETE": {
"BUTTON_TEXT": "Verwijderen"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Selecteer een inbox"
},
"SUBMIT": "Aanmaken",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Annuleren"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Verbinding verbreken"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is een natuurlijk talenbegrip platform dat het makkelijk maakt om een conversatie-interface te ontwerpen en te integreren in uw mobiele app, Webapplicatie, apparaat, bot, interactieve stem responssysteem, enzovoort.
Dialogflow integratie met %{installationName} stelt u in staat een Dialogflow bot met uw inboxen te configureren, die de bot in staat stelt de zoekopdrachten in eerste instantie af te handelen en deze aan een agent over te leveren indien nodig. De dialoogstroom kan worden gebruikt om de lood te kwalificeren, de werklast van agenten te verminderen door veelgestelde vragen te stellen, enzovoort.
Om Dialogflow toe te voegen, moet u een Serviceaccount aanmaken in uw Google-projectconsole en de referenties delen. Raadpleeg de Dialogflow documenten voor meer informatie."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/integrations.json b/app/javascript/dashboard/i18n/locale/nl/integrations.json
index 042a6bad5..ad144e284 100644
--- a/app/javascript/dashboard/i18n/locale/nl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/nl/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Annuleren",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integraties",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Annuleren",
"DESC": "Webhook events bieden je realtime informatie over wat er gebeurt in je Chatwoot account. Voer een geldige URL in om een callback te configureren.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Voorbeeld: https://voorbeeld/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Voer een geldige URL in"
},
"EDIT_SUBMIT": "Webhook bijwerken",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Er zijn geen webhooks geconfigureerd voor dit account.",
"TITLE": "Webhooks beheren",
- "TABLE_HEADER": [
- "Webhook eindpunt",
- "acties"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook eindpunt",
+ "ACTIONS": "Acties"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Bewerken",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Verwijdering bevestigen",
- "MESSAGE": "Weet je zeker dat je de webhook wilt verwijderen? (%{webhookURL})",
+ "MESSAGE": "Weet je zeker dat je de webhook wilt verwijderen? ({webhookURL})",
"YES": "Ja, verwijderen ",
"NO": "Nee, Bewaar het"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Verwijderen",
"DELETE_CONFIRMATION": {
"TITLE": "Integratie verwijderen",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "geselecteerd"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assistent",
- "WITH_AI": " %{option} met AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Antwoord suggestie",
"SUMMARIZE": "Samenvatten",
@@ -114,7 +161,29 @@
"EXPAND": "Uitklappen",
"MAKE_FRIENDLY": "Wijzig berichttoon naar vriendelijk",
"MAKE_FORMAL": "Gebruik formele toon",
- "SIMPLIFY": "Vereenvoudigen"
+ "SIMPLIFY": "Vereenvoudigen",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professioneel",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Vriendelijk"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Concept inhoud",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Voeg een nieuwe dashboard app toe",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Naam",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Acties"
+ },
"EDIT_TOOLTIP": "Bewerk app",
"DELETE_TOOLTIP": "App verwijderen"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Ja, verwijderen",
"CONFIRM_NO": "Nee, behouden",
"TITLE": "Verwijdering bevestigen",
- "MESSAGE": "Weet u zeker dat u de app - %{appName} wilt verwijderen?",
+ "MESSAGE": "Weet u zeker dat u de app - {appName} wilt verwijderen?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Aanmaken",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Selecteer team",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioriteit",
+ "PLACEHOLDER": "Selecteer prioriteit",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Prioriteit",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Labelen",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Ja, verwijderen",
+ "CANCEL": "Annuleren"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Meer weten",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistenten",
+ "SWITCH_ASSISTANT": "Wissel tussen assistenten",
+ "NEW_ASSISTANT": "Assistent aanmaken",
+ "EMPTY_LIST": "Geen assistenten gevonden, maak er een aan om te beginnen"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Aan de slag met Copilot",
+ "KICK_OFF_MESSAGE": "Snelle samenvatting nodig, eerdere gesprekken bekijken of een beter antwoord opstellen? Copilot helpt je sneller.",
+ "SEND_MESSAGE": "Verstuur bericht...",
+ "EMPTY_MESSAGE": "Er is een fout opgetreden bij het genereren van het antwoord. Probeer het opnieuw.",
+ "LOADER": "Captain is aan het denken",
+ "YOU": "Jij",
+ "USE": "Gebruik dit",
+ "RESET": "Resetten",
+ "SHOW_STEPS": "Toon stappen",
+ "SELECT_ASSISTANT": "Assistent selecteren",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Vat dit gesprek samen",
+ "CONTENT": "Vat de belangrijkste punten samen die besproken zijn tussen de klant en de ondersteuningsmedewerker, inclusief de zorgen, vragen van de klant en de oplossingen of antwoorden die de medewerker heeft gegeven"
+ },
+ "SUGGEST": {
+ "LABEL": "Stel een antwoord voor",
+ "CONTENT": "Analyseer de vraag van de klant en stel een antwoord op dat hun zorgen of vragen effectief behandelt. Zorg dat het antwoord duidelijk, beknopt is en nuttige informatie biedt."
+ },
+ "RATE": {
+ "LABEL": "Beoordeel dit gesprek",
+ "CONTENT": "Beoordeel het gesprek om te zien hoe goed aan de behoeften van de klant wordt voldaan. Geef een beoordeling tot 5 op basis van toon, duidelijkheid en effectiviteit."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Gesprekken met hoge prioriteit",
+ "CONTENT": "Geef me een samenvatting van alle open gesprekken met hoge prioriteit. Vermeld het gesprek-ID, klantnaam (indien beschikbaar), laatste berichtinhoud en toegewezen agent. Groepeer indien relevant op status."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Contacten weergeven",
+ "CONTENT": "Toon mij de lijst van top 10 contacten. Vermeld naam, e-mail of telefoonnummer (indien beschikbaar), laatst gezien tijd, tags (indien aanwezig)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Jij",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Typ uw bericht...",
+ "HEADER": "Speelplaats",
+ "DESCRIPTION": "Gebruik deze speelplaats om berichten naar je assistent te sturen en te controleren of deze nauwkeurig, snel en in de verwachte toon reageert.",
+ "CREDIT_NOTE": "Berichten die hier worden verzonden, tellen mee voor je Captain-tegoed."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade om Captain AI te gebruiken",
+ "AVAILABLE_ON": "Captain is niet beschikbaar op het gratis abonnement.",
+ "UPGRADE_PROMPT": "Upgrade je abonnement om toegang te krijgen tot onze assistenten, copilot en meer.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI is alleen beschikbaar in de Enterprise-abonnementen.",
+ "UPGRADE_PROMPT": "Upgrade je abonnement om toegang te krijgen tot onze assistenten, copilot en meer.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Je hebt meer dan 80% van je antwoordlimiet gebruikt. Om Captain AI te blijven gebruiken, upgrade je jouw plan.",
+ "DOCUMENTS": "Documentlimiet bereikt. Upgrade om Captain AI te blijven gebruiken."
+ },
+ "FORM": {
+ "CANCEL": "Annuleren",
+ "CREATE": "Aanmaken",
+ "EDIT": "Vernieuwen"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Beschrijving",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Instellingen",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Verwijderen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Verwijderen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Verwijderen"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Titel",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Aanmaken",
+ "CANCEL": "Annuleren"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Annuleren",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Verwijderen",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "bijwerken...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Openstaande facturering",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Geen",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API sleutel"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Wachtwoord",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Getal",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Verwijderen",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Allemaal"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Afwachtend",
+ "APPROVED": "Approved",
+ "ALL": "Allemaal"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Bewerken",
+ "DELETE_RESPONSE": "Verwijderen"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Verbinding verbreken"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, verwijderen",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Postvak In",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
index 3377463b2..b0922ba8b 100644
--- a/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/nl/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Labelen",
"HEADER_BTN_TXT": "Label toevoegen",
"LOADING": "Labels ophalen",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Zoek op labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht",
- "SIDEBAR_TXT": "Labels
Labels helpen u om gesprekken te categoriseren en ze prioriteit te geven. Vanaf het zijpaneel kunt u het label toewijzen aan een gesprek.
Labels zijn gekoppeld aan het account en kunnen worden gebruikt om aangepaste workflows in uw organisatie te creëren. U kunt aangepaste kleur aan een label toewijzen, het maakt het gemakkelijker om het label te identificeren. Je kunt het label op de zijbalk weergeven om de gesprekken gemakkelijk te filteren.
",
"LIST": {
"404": "Er zijn geen labels beschikbaar in dit account.",
"TITLE": "Beheer labels",
"DESC": "Labels laten je gesprekken groeperen.",
- "TABLE_HEADER": [
- "Naam",
- "Beschrijving",
- "Kleur"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "DESCRIPTION": "Beschrijving",
+ "COLOR": "Kleur",
+ "ACTION": "Acties"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Negeren",
"ADD_SELECTED_LABELS": "Voeg geselecteerde labels toe",
"ADD_SELECTED_LABEL": "Geselecteerde label toevoegen",
- "ADD_ALL_LABELS": "Voeg alle labels toe"
+ "ADD_ALL_LABELS": "Voeg alle labels toe",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Label toevoegen",
diff --git a/app/javascript/dashboard/i18n/locale/nl/login.json b/app/javascript/dashboard/i18n/locale/nl/login.json
index a545ee69d..fcc586ec0 100644
--- a/app/javascript/dashboard/i18n/locale/nl/login.json
+++ b/app/javascript/dashboard/i18n/locale/nl/login.json
@@ -3,7 +3,7 @@
"TITLE": "Inloggen bij Chatwoot",
"EMAIL": {
"LABEL": "E-mailadres",
- "PLACEHOLDER": "voorbeeld@bedrijfsnaam.nl",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Voer een geldig e-mailadres in"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Wachtwoord vergeten?",
"CREATE_NEW_ACCOUNT": "Nieuw account aanmaken",
- "SUBMIT": "Inloggen"
+ "SUBMIT": "Inloggen",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/macros.json b/app/javascript/dashboard/i18n/locale/nl/macros.json
index c76ba92ac..14d5f3dd6 100644
--- a/app/javascript/dashboard/i18n/locale/nl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/nl/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macro's",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Naam",
- "Aangemaakt door",
- "Last updated by",
- "Zichtbaarheid"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Naam",
+ "CREATED BY": "Aangemaakt door",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Zichtbaarheid",
+ "ACTIONS": "Acties"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Waarde is vereist",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Geen",
+ "LOW": "Laag",
+ "MEDIUM": "Gemiddeld",
+ "HIGH": "Hoog",
+ "URGENT": "Dringend"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/mfa.json b/app/javascript/dashboard/i18n/locale/nl/mfa.json
new file mode 100644
index 000000000..440115f7d
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Ingeschakeld",
+ "DISABLED": "Uitgeschakeld",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopiëren",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Annuleren",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Download",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Wachtwoord",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Annuleren",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Annuleren",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/onboarding.json b/app/javascript/dashboard/i18n/locale/nl/onboarding.json
new file mode 100644
index 000000000..931d6c9d4
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mailadres",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Taal",
+ "TIMEZONE": "Timezone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/report.json b/app/javascript/dashboard/i18n/locale/nl/report.json
index 2e5f4d9d4..e3eb2f484 100644
--- a/app/javascript/dashboard/i18n/locale/nl/report.json
+++ b/app/javascript/dashboard/i18n/locale/nl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Gesprekken",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
- "DOWNLOAD_AGENT_REPORTS": "Medewerkerrapporten downloaden",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Eerste reactietijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Eerste Reactie Tijd is %{metricValue} (gebaseerd op %{conversationCount} gesprekken)"
+ "TOOLTIP_TEXT": "Eerste Reactie Tijd is {metricValue} (gebaseerd op {conversationCount} gesprekken)"
},
"RESOLUTION_TIME": {
"NAME": "Resolutie Tijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Aantal Resoluties",
"DESC": "( Totaal )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Aantal Resoluties",
+ "DESC": "( Totaal )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "( Totaal )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Afgelopen 7 dagen",
+ "LAST_14_DAYS": "Afgelopen 14 dagen",
"LAST_30_DAYS": "Laatste 30 dagen",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Afgelopen 7 dagen"
- },
- {
- "id": 1,
- "name": "Laatste 30 dagen"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Geen resultaten gevonden"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_AGENT_REPORTS": "Medewerkerrapporten downloaden",
"FILTER_DROPDOWN_LABEL": "Selecteer medewerker",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Zoek agenten"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -155,13 +155,13 @@
"NAME": "Eerste reactietijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Eerste Reactie Tijd is %{metricValue} (gebaseerd op %{conversationCount} gesprekken)"
+ "TOOLTIP_TEXT": "Eerste Reactie Tijd is {metricValue} (gebaseerd op {conversationCount} gesprekken)"
},
"RESOLUTION_TIME": {
"NAME": "Resolutie Tijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Aantal Resoluties",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Zoek op labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -222,13 +228,13 @@
"NAME": "Eerste reactietijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Eerste Reactie Tijd is %{metricValue} (gebaseerd op %{conversationCount} gesprekken)"
+ "TOOLTIP_TEXT": "Eerste Reactie Tijd is {metricValue} (gebaseerd op {conversationCount} gesprekken)"
},
"RESOLUTION_TIME": {
"NAME": "Resolutie Tijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Aantal Resoluties",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Selecteer een inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -289,13 +303,13 @@
"NAME": "Eerste reactietijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Eerste Reactie Tijd is %{metricValue} (gebaseerd op %{conversationCount} gesprekken)"
+ "TOOLTIP_TEXT": "Eerste Reactie Tijd is {metricValue} (gebaseerd op {conversationCount} gesprekken)"
},
"RESOLUTION_TIME": {
"NAME": "Resolutie Tijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Aantal Resoluties",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Kaartgegevens laden...",
"NO_ENOUGH_DATA": "We hebben niet genoeg datapunten ontvangen om een rapport te genereren, probeer het later opnieuw.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Filter toevoegen",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Teams zoeken"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Gesprekken",
@@ -356,13 +379,13 @@
"NAME": "Eerste reactietijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Eerste Reactie Tijd is %{metricValue} (gebaseerd op %{conversationCount} gesprekken)"
+ "TOOLTIP_TEXT": "Eerste Reactie Tijd is {metricValue} (gebaseerd op {conversationCount} gesprekken)"
},
"RESOLUTION_TIME": {
"NAME": "Resolutie Tijd",
"DESC": "(Gem. )",
"INFO_TEXT": "Totaal aantal conversaties gebruikt voor berekening:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Aantal Resoluties",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Filter toevoegen",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Zoek agenten",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Teams zoeken",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Medewerker"
+ },
+ "INBOXES": {
+ "LABEL": "Postvak In"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Beoordeling"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Medewerker",
"RATING": "Beoordeling",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Gesprek",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Opslaan",
+ "CANCEL": "Annuleren",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,11 +553,23 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Medewerker",
- "OPEN": "OPEN",
+ "OPEN": "Open",
"UNATTENDED": "Unattended",
"STATUS": "Status"
}
},
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Team",
+ "OPEN": "Open",
+ "UNATTENDED": "Onbeheer",
+ "STATUS": "Status"
+ }
+ },
"AGENT_STATUS": {
"HEADER": "Agent status",
"ONLINE": "Online",
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Filter toevoegen",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Geen resultaten gevonden",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent naam",
+ "INBOXES": "Naam postvak",
+ "LABELS": "Label naam",
+ "TEAMS": "Team Naam"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Postvak In",
+ "AGENTS": "Medewerker",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Gesprek",
+ "AGENT": "Medewerker"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Aantal Resoluties",
+ "CONVERSATIONS": "Aantal conversaties"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/search.json b/app/javascript/dashboard/i18n/locale/nl/search.json
index 4b0717242..1f84ae5fa 100644
--- a/app/javascript/dashboard/i18n/locale/nl/search.json
+++ b/app/javascript/dashboard/i18n/locale/nl/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Allemaal",
+ "ALL": "All results",
"CONTACTS": "Contacten",
"CONVERSATIONS": "Gesprekken",
- "MESSAGES": "Berichten"
+ "MESSAGES": "Berichten",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contacten",
"CONVERSATIONS": "Gesprekken",
- "MESSAGES": "Berichten"
+ "MESSAGES": "Berichten",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "Geen %{item} gevonden voor query '%{query}'",
- "EMPTY_STATE_FULL": "Geen resultaten gevonden voor query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ om te focussen",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Zoeken",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Geen {item} gevonden voor query '{query}'",
+ "EMPTY_STATE_FULL": "Geen resultaten gevonden voor query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/om te focussen",
"INPUT_PLACEHOLDER": "Voer 3 of meer tekens in om te zoeken",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Zoeken op gesprek id, e-mail, telefoonnummer, berichten voor betere zoekresultaten. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Meer lezen",
+ "READ_LESS": "Read less",
"WROTE": "schreef:",
"FROM": "van",
- "EMAIL": "e-mailadres"
+ "EMAIL": "E-mailadres",
+ "EMAIL_SUBJECT": "Onderwerp",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Afgelopen 7 dagen",
+ "LAST_30_DAYS": "Laatste 30 dagen",
+ "LAST_60_DAYS": "Afgelopen 60 dagen",
+ "LAST_90_DAYS": "Afgelopen 90 dagen",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "en",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Postvak In",
+ "AGENTS": "Medewerkers",
+ "CONTACTS": "Contacten",
+ "INBOXES": "Inboxen",
+ "NO_AGENTS": "Geen medewerkers gevonden",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/settings.json b/app/javascript/dashboard/i18n/locale/nl/settings.json
index c7ecf0c8f..72430629f 100644
--- a/app/javascript/dashboard/i18n/locale/nl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Uw wachtwoord is succesvol gewijzigd",
"AFTER_EMAIL_CHANGED": "Uw profiel is succesvol bijgewerkt. Log opnieuw in als uw inloggegevens zijn gewijzigd",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profiel afbeelding",
"ERROR": "Corrigeer formulierfouten",
"REMOVE_IMAGE": "Verwijderen",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Handtekening persoonlijke berichten",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Ondertekening succesvol opgeslagen",
"IMAGE_UPLOAD_ERROR": "Kon afbeelding niet uploaden! Probeer het opnieuw",
"IMAGE_UPLOAD_SUCCESS": "Afbeelding succesvol toegevoegd. Klik op opslaan om de handtekening op te slaan",
- "IMAGE_UPLOAD_SIZE_ERROR": "De grootte van de afbeelding moet kleiner zijn dan {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "De grootte van de afbeelding moet kleiner zijn dan {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Bericht Ondertekening",
@@ -54,15 +81,45 @@
"NOTE": "Het bijwerken van uw wachtwoord zou uw logins op meerdere apparaten opnieuw instellen.",
"BTN_TEXT": "Wachtwoord wijzigen"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Toegangs-token",
- "NOTE": "Dit token kan worden gebruikt als u een API gebaseerde integratie bouwt"
+ "NOTE": "Dit token kan worden gebruikt als u een API gebaseerde integratie bouwt",
+ "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 Notificaties",
- "NOTE": "Audio-meldingen inschakelen in dashboard voor nieuwe berichten en gesprekken.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Geen",
+ "MINE": "Assigned",
+ "ALL": "Allemaal",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Melding gebeurtenissen:",
+ "TITLE": "Alert events for conversations",
"NONE": "Geen",
"ASSIGNED": "Toegewezen gesprekken",
"ALL_CONVERSATIONS": "Alle gesprekken"
@@ -74,7 +131,9 @@
"TITLE": "Voorwaarden voor notificaties:",
"CONDITION_ONE": "Stuur alleen audio notificaties als het browservenster niet actief is",
"CONDITION_TWO": "Verstuur notificaties om de 30 seconden tot alle toegewezen gesprekken zijn gelezen"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Meer lezen"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-mail notificaties",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "E-mailberichten verzenden wanneer een nieuw gesprek is gemaakt",
"CONVERSATION_MENTION": "E-mail notificaties versturen wanneer u in een gesprek wordt genoemd",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "E-mail notificaties verzenden wanneer een nieuw bericht is gemaakt in een toegewezen gesprek",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "E-mail notificaties verzenden wanneer een nieuw bericht is gemaakt in een deelnemend gesprek"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "E-mail notificaties verzenden wanneer een nieuw bericht is gemaakt in een deelnemend gesprek",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-mailadres",
+ "PUSH": "Push-melding",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Uw notificatie-instellingen zijn succesvol bijgewerkt",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in an assigned conversation",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Je hebt pushberichten voor deze browser ingeschakeld.",
- "REQUEST_PUSH": "Pushberichten inschakelen"
+ "REQUEST_PUSH": "Pushberichten inschakelen",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profiel afbeelding"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Availability",
- "STATUSES_LIST": [
- "Online",
- "Busy",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Online",
+ "BUSY": "Bezig",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Veranderen",
- "CHANGE_ACCOUNTS": "Switch Account",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Select an account from the following list",
- "PROFILE_SETTINGS": "Profiel instellingen",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Afmelden"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dagen proefperiode resterend.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Downloaden",
"UPLOADING": "Uploaden...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Dit verhaal is niet meer beschikbaar."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Dit verhaal is niet meer beschikbaar.",
+ "INSTAGRAM_STORY_REPLY": "Reageerde op jouw verhaal:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Bevestigen"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifiëren...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Gesprekken",
- "INBOX": "Postvak In",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Alle gesprekken",
"MENTIONED_CONVERSATIONS": "Vermeldingen",
"PARTICIPATING_CONVERSATIONS": "Participating",
@@ -208,6 +308,18 @@
"REPORTS": "Rapporten",
"SETTINGS": "Instellingen",
"CONTACTS": "Contacten",
+ "ACTIVE": "Actief",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Inboxen",
+ "CAPTAIN_SETTINGS": "Instellingen",
"HOME": "Startpagina",
"AGENTS": "Medewerkers",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Gesprekken",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campagnes",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Medewerkers",
"REPORTS_LABEL": "Labelen",
"REPORTS_INBOX": "Postvak In",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Your Facebook connection has expired, please reconnect your Facebook page to continue services",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Categorie",
- "SETTINGS": "Instellingen",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Instellingen"
},
+ "CHANNELS": "Kanalen",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Features",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Chat met ons"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Annuleren",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Ga terug",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Code succesvol naar het klembord gekopieerd ",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Attributen zoeken"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Annuleren"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Bedrijfsnaam",
"PLACEHOLDER": "Wayne Ondernemingen"
},
- "SUBMIT": "Bevestigen"
+ "SUBMIT": "Bevestigen",
+ "CANCEL": "Annuleren"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioriteit",
+ "ACTIVE": "Actief",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Bewerken"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuleren"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Toevoegen"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Bewerken"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Annuleren"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beschrijving:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Toevoegen"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Verwijderen",
+ "CANCEL_BUTTON_LABEL": "Annuleren"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/signup.json b/app/javascript/dashboard/i18n/locale/nl/signup.json
index 9801cad6a..6bed7f049 100644
--- a/app/javascript/dashboard/i18n/locale/nl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/nl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Nieuw account aanmaken",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registreren",
"TESTIMONIAL_HEADER": "Er is maar één stap nodig om vooruit te komen",
"TESTIMONIAL_CONTENT": "U bent één stap verwijderd van het communiceren met uw klanten, ze te behouden en nieuwe te vinden.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Werk e-mail",
- "PLACEHOLDER": "Voer je werk-e-mailadres in, bijvoorbeeld: bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Wachtwoord",
"PLACEHOLDER": "Wachtwoord",
"ERROR": "Wachtwoord is te kort",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Bevestig wachtwoord",
"PLACEHOLDER": "Bevestig wachtwoord",
- "ERROR": "Wachtwoord komt niet overeen"
+ "ERROR": "Wachtwoorden komen niet overeen."
},
"API": {
- "SUCCESS_MESSAGE": "Registratie geslaagd",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Kan geen verbinding maken met Woot Server, probeer het later opnieuw"
},
"SUBMIT": "Account aanmaken",
- "HAVE_AN_ACCOUNT": "Heeft u al een account?"
+ "HAVE_AN_ACCOUNT": "Heeft u al een account?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/sla.json b/app/javascript/dashboard/i18n/locale/nl/sla.json
index b7d7d36e8..ad96ae140 100644
--- a/app/javascript/dashboard/i18n/locale/nl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/nl/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Er zijn geen items die overeenkomen met deze zoekopdracht",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Naam",
- "Beschrijving",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Er is een fout opgetreden, probeer het opnieuw"
+ },
+ "CONFIRM": {
+ "TITLE": "Verwijderen bevestigen",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ja, verwijderen ",
+ "NO": "Nee, Behouden "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Eerste reactietijd",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/snooze.json b/app/javascript/dashboard/i18n/locale/nl/snooze.json
new file mode 100644
index 000000000..80a89c28a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "volgende",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "morgen",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "volgende week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
index a9453b569..3a23bfca3 100644
--- a/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/nl/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Teams zoeken...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "Geen"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Aanmaken",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Agenten toevoegen",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Je bent helemaal klaar om te beginnen!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Aanmaken",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Agenten toevoegen",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "Je bent helemaal klaar om te beginnen!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Je bent helemaal klaar om te beginnen!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Je bent helemaal klaar om te beginnen!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
+ "AGENT": "Medewerker",
"EMAIL": "E-mailadres",
"BUTTON_TEXT": "Voeg agenten toe",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Voeg agenten toe",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Verwijderen ",
diff --git a/app/javascript/dashboard/i18n/locale/nl/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/nl/whatsappTemplates.json
index aa5ac5d9c..5c5862427 100644
--- a/app/javascript/dashboard/i18n/locale/nl/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/nl/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Selecteer de whatsapp template die u wilt verzenden",
- "TEMPLATE_SELECTED_SUBTITLE": "Verwerk %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Templates zoeken",
- "NO_TEMPLATES_FOUND": "Geen templates gevonden voor",
- "LABELS": {
- "LANGUAGE": "Taal",
- "TEMPLATE_BODY": "Template bericht",
- "CATEGORY": "Categorie"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variabelen",
- "VARIABLE_PLACEHOLDER": "Voer %{variable} waarde in",
- "GO_BACK_LABEL": "Ga terug",
- "SEND_MESSAGE_LABEL": "Verstuur bericht",
- "FORM_ERROR_MESSAGE": "Vul alstublieft alle variabelen in voordat u deze verzendt"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Selecteer de whatsapp template die u wilt verzenden",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Templates zoeken",
+ "NO_TEMPLATES_FOUND": "Geen templates gevonden voor",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categorie",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Taal",
+ "TEMPLATE_BODY": "Template bericht",
+ "CATEGORY": "Categorie"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variabelen",
+ "LANGUAGE": "Taal",
+ "CATEGORY": "Categorie",
+ "VARIABLE_PLACEHOLDER": "Voer {variable} waarde in",
+ "GO_BACK_LABEL": "Ga terug",
+ "SEND_MESSAGE_LABEL": "Verstuur bericht",
+ "FORM_ERROR_MESSAGE": "Vul alstublieft alle variabelen in voordat u deze verzendt",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/nl/yearInReview.json b/app/javascript/dashboard/i18n/locale/nl/yearInReview.json
new file mode 100644
index 000000000..c0e6f8c5e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/nl/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Sluiten",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "gesprekken",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Download",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Volgende",
+ "SHARE": "Deel gesprek"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/advancedFilters.json b/app/javascript/dashboard/i18n/locale/no/advancedFilters.json
index 1726f0aac..ebac1800b 100644
--- a/app/javascript/dashboard/i18n/locale/no/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/no/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "AND",
"OR": "OR"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Equal to",
"not_equal_to": "Not equal to",
- "contains": "Contains",
"does_not_contain": "Does not contain",
"is_present": "Is present",
"is_not_present": "Is not present",
"is_greater_than": "Is greater than",
"is_less_than": "Is lesser than",
"days_before": "Is x days before",
- "starts_with": "Starts with"
+ "starts_with": "Starts with",
+ "equalTo": "Equal to",
+ "notEqualTo": "Not equal to",
+ "contains": "Contains",
+ "doesNotContain": "Does not contain",
+ "isPresent": "Is present",
+ "isNotPresent": "Is not present",
+ "isGreaterThan": "Is greater than",
+ "isLessThan": "Is lesser than",
+ "daysBefore": "Is x days before",
+ "startsWith": "Starts with"
},
"ATTRIBUTE_LABELS": {
"TRUE": "True",
@@ -37,7 +47,7 @@
"ATTRIBUTES": {
"STATUS": "Satus",
"ASSIGNEE_NAME": "Assignee name",
- "INBOX_NAME": "Inbox name",
+ "INBOX_NAME": "Navn på innboks",
"TEAM_NAME": "Team name",
"CONVERSATION_IDENTIFIER": "Conversation identifier",
"CAMPAIGN_NAME": "Campaign name",
@@ -54,6 +64,12 @@
"CREATED_AT": "Created at",
"LAST_ACTIVITY": "Last activity"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standard filters",
"ADDITIONAL_FILTERS": "Additional filters",
diff --git a/app/javascript/dashboard/i18n/locale/no/agentBots.json b/app/javascript/dashboard/i18n/locale/no/agentBots.json
index 82653f4c4..74ad36f8a 100644
--- a/app/javascript/dashboard/i18n/locale/no/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/no/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "Loading editor...",
- "HEADER_BTN_TXT": "Add bot configuration",
- "SIDEBAR_TXT": "Agent Bots
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 configuraton' button.
Open the Agent bots handbook in another tab for a helping hand.
",
- "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"
+ "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",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"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",
+ "ACTIONS": "Handlinger"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. 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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
index bd720bed4..e287f5972 100644
--- a/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agenter",
"HEADER_BTN_TXT": "Legg til agent",
"LOADING": "Henter agentliste",
- "SIDEBAR_TXT": "Agenter
En agent er en medlem i ditt kundeserivce-team.
Agenter vil ha mulighet til å se på og svare på henvendelser fra dine brukere. Listen viser alle agenter i din konto
Klikk på Legg til agent for å legge til agent. Agenten du legger til vil motta en e-post med en link for å bekrefte kontoen deres. Etter dette får de tilgang til Chatwoot og kan begynne å svare på henvendelser.
Tilgang til funksjonene i Chatwoot er basert på følgende roller.
Agent - Agenter med denne rollen har bare tilgang til innbokser, rapporter og samtaler. De kan tildele samtaler til seg selv og andre agenter, og markere samtaler som løst.
Administrator - En administrator har tilgang til alle funksjoner og innstillinger i Chatwoot, i tillegg til det en agent vil ha tilgang til.
",
+ "DESCRIPTION": "En agent er et medlem av kundestøtteteamet som kan se og svare på brukermeldinger. Listen nedenfor viser alle agenter på kontoen din.",
+ "LEARN_MORE": "Lær om brukerroller",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Det er ingen agenter tilknyttet denne kontoen",
"TITLE": "Administrer agentene i ditt team",
@@ -17,7 +19,8 @@
"STATUS": "Satus",
"ACTIONS": "Handlinger",
"VERIFIED": "Verifisert",
- "VERIFICATION_PENDING": "Verifisering venter"
+ "VERIFICATION_PENDING": "Verifisering venter",
+ "AVAILABLE_CUSTOM_ROLE": "Tilgjengelige egendefinerte rolletillatelser"
},
"ADD": {
"TITLE": "Legg til agent i teamet ditt",
@@ -76,8 +79,8 @@
},
"AGENT_AVAILABILITY": {
"LABEL": "Tilgjengelighet",
- "PLACEHOLDER": "Please select an availability status",
- "ERROR": "Availability is required"
+ "PLACEHOLDER": "Vennligst velg en tilgjengelighet status",
+ "ERROR": "Tilgjengelighet er påkrevd"
},
"SUBMIT": "Rediger agent"
},
@@ -94,24 +97,29 @@
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
}
},
+ "SEARCH_PLACEHOLDER": "Søk etter agenter...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
- "NO_RESULTS": "No results found."
+ "NO_RESULTS": "Ingen resultater funnet."
},
"MULTI_SELECTOR": {
- "PLACEHOLDER": "None",
+ "PLACEHOLDER": "Ingen",
"TITLE": {
- "AGENT": "Select agent",
- "TEAM": "Select team"
+ "AGENT": "Velg agent",
+ "TEAM": "Velg gruppe"
+ },
+ "LIST": {
+ "NONE": "Ingen"
},
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Ingen agenter funnet",
- "TEAM": "No teams found"
+ "TEAM": "Ingen grupper funnet"
},
"PLACEHOLDER": {
- "AGENT": "Search agents",
- "TEAM": "Search teams",
- "INPUT": "Search for agents"
+ "AGENT": "Søk etter agenter",
+ "TEAM": "Søk blant grupper",
+ "INPUT": "Søk etter agenter"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
index a0ae848e4..76ddd7362 100644
--- a/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Egendefinerte verdier",
"HEADER_BTN_TXT": "Add Custom Attribute",
"LOADING": "Fetching custom attributes",
- "SIDEBAR_TXT": "Custom Attributes
A custom attribute tracks facts about your contacts/conversation — like the subscription plan, or when they ordered the first item etc.
For creating a Custom Attribute, just click on the Add Custom Attribute. You can also edit or delete an existing Custom Attribute by clicking on the Edit or Delete button.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversation",
+ "CONTACT": "Contact",
+ "COMPANY": "Firma"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Text",
+ "NUMBER": "Number",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "List",
+ "CHECKBOX": "Checkbox"
+ },
"ADD": {
"TITLE": "Add Custom Attribute",
"SUBMIT": "Opprett",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Couldn't delete the custom attribute. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{attributeName}",
+ "TITLE": "Are you sure want to delete - {attributeName}",
"PLACE_HOLDER": "Please type {attributeName} to confirm",
"MESSAGE": "Deleting will remove the custom attribute",
"YES": "Slett ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Egendefinerte verdier",
"CONVERSATION": "Conversation",
- "CONTACT": "Contact"
+ "CONTACT": "Contact",
+ "COMPANY": "Firma"
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Type",
- "Key"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "TYPE": "Type",
+ "KEY": "Key"
+ },
"BUTTONS": {
"EDIT": "Rediger",
"DELETE": "Slett"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Enable regex validation"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/auditLogs.json b/app/javascript/dashboard/i18n/locale/no/auditLogs.json
index 0b6267f67..f47736a57 100644
--- a/app/javascript/dashboard/i18n/locale/no/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/no/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Audit Logs",
"HEADER_BTN_TXT": "Add Audit Logs",
"LOADING": "Fetching Audit Logs",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen",
"SIDEBAR_TXT": "Audit Logs
Audit Logs are trails for events and actions in a Chatwoot System.
",
"LIST": {
"404": "There are no Audit Logs available in this account.",
"TITLE": "Manage Audit Logs",
"DESC": "Audit Logs are trails for events and actions in a Chatwoot System.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "IP Adresse"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Action",
+ "IP_ADDRESS": "IP Adresse"
+ }
},
"API": {
"SUCCESS_MESSAGE": "AuditLogs retrieved successfully",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} created a new automation rule (#%{id})",
- "EDIT": "%{agentName} updated an automation rule (#%{id})",
- "DELETE": "%{agentName} deleted an automation rule (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} invited %{invitee} to the account as an %{role}",
+ "ADD": "{agentName} invited {invitee} to the account as an {role}",
"EDIT": {
- "SELF": "%{agentName} changed their %{attributes} to %{values}",
- "OTHER": "%{agentName} changed %{attributes} of %{user} to %{values}"
+ "SELF": "{agentName} changed their {attributes} to {values}",
+ "OTHER": "{agentName} changed {attributes} of {user} to {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} created a new inbox (#%{id})",
- "EDIT": "%{agentName} updated an inbox (#%{id})",
- "DELETE": "%{agentName} deleted an inbox (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} created a new webhook (#%{id})",
- "EDIT": "%{agentName} updated a webhook (#%{id})",
- "DELETE": "%{agentName} deleted a webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} signed in",
- "SIGN_OUT": "%{agentName} signed out"
+ "SIGN_IN": "{agentName} signed in",
+ "SIGN_OUT": "{agentName} signed out"
},
"TEAM": {
- "ADD": "%{agentName} created a new team (#%{id})",
- "EDIT": "%{agentName} updated a team (#%{id})",
- "DELETE": "%{agentName} deleted a team (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} created a new macro (#%{id})",
- "EDIT": "%{agentName} updated a macro (#%{id})",
- "DELETE": "%{agentName} deleted a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} added %{user} to the inbox(#%{inbox_id})",
- "REMOVE": "%{agentName} removed %{user} from the inbox(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} added %{user} to the team(#%{team_id})",
- "REMOVE": "%{agentName} removed %{user} from the team(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} updated the account configuration (#%{id})"
+ "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 7f7d4be8c..4152d0cb7 100644
--- a/app/javascript/dashboard/i18n/locale/no/automation.json
+++ b/app/javascript/dashboard/i18n/locale/no/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automations",
- "HEADER_BTN_TXT": "Add Automation Rule",
+ "HEADER": "Automation",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Fetching automation rules",
- "SIDEBAR_TXT": "Automation Rules
Automation can replace and automate existing processes that require manual effort. You can do many things with automation, including adding labels and assigning conversation to the best agent. So the team focuses on what they do best and spends more little time on manual tasks.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Add Automation Rule",
"SUBMIT": "Opprett",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Active",
- "Created on"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "ACTIVE": "Active",
+ "CREATED_ON": "Created on",
+ "ACTIONS": "Handlinger"
+ },
"404": "No automation rules found"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "You need to have atleast one action to save",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Enter your message here",
- "TEAM_DROPDOWN_PLACEHOLDER": "Select teams"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Select teams",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Activate Automation Rule",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Laster opp...",
"LABEL_UPLOADED": "Successfully Uploaded",
"LABEL_UPLOAD_FAILED": "Upload Failed"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Ingen",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversation Created",
+ "CONVERSATION_UPDATED": "Conversation Updated",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Change Priority",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Open conversation",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Privat notat",
+ "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",
+ "COMPANY_NAME": "Firma",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Agent",
+ "TEAM_NAME": "Team",
+ "PRIORITY": "Priority",
+ "LABELS": "Etiketter"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/bulkActions.json b/app/javascript/dashboard/i18n/locale/no/bulkActions.json
index de4c1a6b6..b73d23f16 100644
--- a/app/javascript/dashboard/i18n/locale/no/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/no/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversations selected",
- "AGENT_SELECT_LABEL": "Select agent",
- "ASSIGN_CONFIRMATION_LABEL": "Are you sure to assign %{conversationCount} %{conversationLabel} to",
- "UNASSIGN_CONFIRMATION_LABEL": "Are you sure to unassign %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Go back",
- "ASSIGN_LABEL": "Tildel",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversations selected",
+ "NONE": "None",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Yes",
+ "CANCEL": "Avbryt",
+ "SEARCH_INPUT_PLACEHOLDER": "Søk",
"ASSIGN_AGENT_TOOLTIP": "Assign agent",
"ASSIGN_TEAM_TOOLTIP": "Assign team",
"ASSIGN_SUCCESFUL": "Conversations assigned successfully.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Conversations resolved successfully.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversations visible on this page are only selected.",
- "AGENT_LIST_LOADING": "Loading agents",
"UPDATE": {
"CHANGE_STATUS": "Change status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Snooze until next reply.",
+ "SNOOZE_UNTIL": "Snooze",
"UPDATE_SUCCESFUL": "Conversation status updated successfully.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "No labels found for",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Assign selected labels",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Labels assigned successfully.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Select team",
"NONE": "None",
- "NO_TEAMS_AVAILABLE": "There are no teams added to this account yet.",
- "ASSIGN_SELECTED_TEAMS": "Assign selected team.",
- "ASSIGN_SUCCESFUL": "Teams assiged successfully.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/campaign.json b/app/javascript/dashboard/i18n/locale/no/campaign.json
index fc5f9264b..d0665209a 100644
--- a/app/javascript/dashboard/i18n/locale/no/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/no/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campaigns",
- "SIDEBAR_TXT": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete an existing campaign by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Create a one off campaign",
- "ONGOING": "Create a ongoing campaign"
- },
- "ADD": {
- "TITLE": "Create a campaign",
- "DESC": "Proactive messages allow the customer to send outbound messages to their contacts which would trigger more conversations.",
- "CANCEL_BUTTON_TEXT": "Avbryt",
- "CREATE_BUTTON_TEXT": "Opprett",
- "FORM": {
- "TITLE": {
- "LABEL": "Title",
- "PLACEHOLDER": "Please enter the title of campaign",
- "ERROR": "Title is required"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Aktivert",
+ "DISABLED": "Deaktivert"
},
- "SCHEDULED_AT": {
- "LABEL": "Scheduled time",
- "PLACEHOLDER": "Please select the time",
- "CONFIRM": "Confirm",
- "ERROR": "Scheduled time is required"
- },
- "AUDIENCE": {
- "LABEL": "Audience",
- "PLACEHOLDER": "Select the customer labels",
- "ERROR": "Audience is required"
- },
- "INBOX": {
- "LABEL": "Select Inbox",
- "PLACEHOLDER": "Select Inbox",
- "ERROR": "Inbox is required"
- },
- "MESSAGE": {
- "LABEL": "Melding",
- "PLACEHOLDER": "Please enter the message of campaign",
- "ERROR": "Message is required"
- },
- "SENT_BY": {
- "LABEL": "Sendt av",
- "PLACEHOLDER": "Please select the the content of campaign",
- "ERROR": "Sender is required"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Please enter the URL",
- "ERROR": "Vennligst skriv inn en gyldig URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Time on page(Seconds)",
- "PLACEHOLDER": "Please enter the time",
- "ERROR": "Time on page is required"
- },
- "ENABLED": "Enable campaign",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours",
- "SUBMIT": "Add Campaign"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Sendt av",
+ "BOT": "Bot",
+ "FROM": "fra",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campaign created successfully",
- "ERROR_MESSAGE": "There was an error. Please try again."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Avbryt",
+ "CREATE_BUTTON_TEXT": "Opprett",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Melding",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "SENT_BY": {
+ "LABEL": "Sendt av",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Sender is required"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Please enter the URL",
+ "ERROR": "Vennligst skriv inn en gyldig URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Time on page(Seconds)",
+ "PLACEHOLDER": "Please enter the time",
+ "ERROR": "Time on page is required"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Enable campaign",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Trigger only during business hours"
+ },
+ "BUTTONS": {
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Slett",
- "CONFIRM": {
- "TITLE": "Bekreft sletting",
- "MESSAGE": "Er du sikker på at du vil slette?",
- "YES": "Ja, slett ",
- "NO": "Nei, behold "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Avbryt",
+ "CREATE_BUTTON_TEXT": "Opprett",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "MESSAGE": {
+ "LABEL": "Melding",
+ "PLACEHOLDER": "Please enter the message of campaign",
+ "ERROR": "Message is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Completed",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Avbryt",
+ "CREATE_BUTTON_TEXT": "Opprett",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Please enter the title of campaign",
+ "ERROR": "Title is required"
+ },
+ "INBOX": {
+ "LABEL": "Select Inbox",
+ "PLACEHOLDER": "Select Inbox",
+ "ERROR": "Inbox is required"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Process {templateName}",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLES_LABEL": "Variables",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Audience",
+ "PLACEHOLDER": "Select the customer labels",
+ "ERROR": "Audience is required"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Scheduled time",
+ "PLACEHOLDER": "Please select the time",
+ "ERROR": "Scheduled time is required"
+ },
+ "BUTTONS": {
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "There was an error. Please try again."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Er du sikker på at du vil slette?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Slett",
"API": {
"SUCCESS_MESSAGE": "Campaign deleted successfully",
- "ERROR_MESSAGE": "Could not delete the campaign. Please try again later."
+ "ERROR_MESSAGE": "There was an error. Please try again."
}
- },
- "EDIT": {
- "TITLE": "Edit campaign",
- "UPDATE_BUTTON_TEXT": "Oppdater",
- "API": {
- "SUCCESS_MESSAGE": "Campaign updated successfully",
- "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Loading campaigns...",
- "404": "There are no campaigns created for this inbox.",
- "TABLE_HEADER": {
- "TITLE": "Title",
- "MESSAGE": "Melding",
- "INBOX": "Inbox",
- "STATUS": "Satus",
- "SENDER": "Sender",
- "URL": "URL",
- "SCHEDULED_AT": "Scheduled time",
- "TIME_ON_PAGE": "Time(Seconds)",
- "CREATED_AT": "Created at"
- },
- "BUTTONS": {
- "ADD": "Add",
- "EDIT": "Rediger",
- "DELETE": "Slett"
- },
- "STATUS": {
- "ENABLED": "Aktivert",
- "DISABLED": "Deaktivert",
- "COMPLETED": "Completed",
- "ACTIVE": "Active"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "One off campaigns",
- "404": "There are no one off campaigns created",
- "INBOXES_NOT_FOUND": "Please create an sms inbox and start adding campaigns"
- },
- "ONGOING": {
- "HEADER": "Ongoing campaigns",
- "404": "There are no ongoing campaigns created",
- "INBOXES_NOT_FOUND": "Please create an website inbox and start adding campaigns"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
index efc6fdfb6..f32cc0b98 100644
--- a/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/cannedMgmt.json
@@ -1,75 +1,79 @@
{
"CANNED_MGMT": {
"HEADER": "Forhåndslagde svar",
- "HEADER_BTN_TXT": "Add canned response",
- "LOADING": "Fetching canned responses...",
+ "LEARN_MORE": "Lær mer om standard svar",
+ "DESCRIPTION": "Forbudte svar er forhåndskrevne svarmaler som hjelper deg raskt å svare på en samtale. Agenter kan skrive inn '/'-tegnet etterfulgt av en kortkode for å sette inn et standard svar under en samtale. ",
+ "COUNT": "{n} canned response | {n} canned responses",
+ "HEADER_BTN_TXT": "Legge til standard svar",
+ "LOADING": "Henter standard svar...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Det er ingen forhåndslagde svar tilgjengelig i denne kontoen.",
"TITLE": "Administrer forhåndslagde svar",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Innhold",
- "Handlinger"
- ]
+ "DESC": "Forbudte svar er forhåndsdefinerte svarmaler som kan brukes til raskt å sende ut svar på samtaler.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Kortkode",
+ "CONTENT": "Innhold",
+ "ACTIONS": "Handlinger"
+ }
},
"ADD": {
- "TITLE": "Add canned response",
- "DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
+ "TITLE": "Legge til standard svar",
+ "DESC": "Forbudte svar er forhåndsdefinerte svarmaler som kan brukes til raskt å sende ut svar på samtaler.",
"CANCEL_BUTTON_TEXT": "Avbryt",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a short code.",
- "ERROR": "Short Code is required."
+ "LABEL": "Kortkode",
+ "PLACEHOLDER": "Vennligst angi en kortkode.",
+ "ERROR": "Kortkode kreves."
},
"CONTENT": {
"LABEL": "Melding",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Vennligst skriv meldingen du vil lagre som mal for bruk senere.",
+ "ERROR": "Melding er påkrevd."
},
"SUBMIT": "Send"
},
"API": {
- "SUCCESS_MESSAGE": "Canned response added successfully.",
+ "SUCCESS_MESSAGE": "Standard svar er lagt til.",
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
}
},
"EDIT": {
- "TITLE": "Edit canned response",
+ "TITLE": "Rediger forhåndslagd svar",
"CANCEL_BUTTON_TEXT": "Avbryt",
"FORM": {
"SHORT_CODE": {
- "LABEL": "Short code",
- "PLACEHOLDER": "Please enter a shortcode.",
- "ERROR": "Short code is required."
+ "LABEL": "Kortkode",
+ "PLACEHOLDER": "Angi en kortkode.",
+ "ERROR": "Kortkode kreves."
},
"CONTENT": {
"LABEL": "Melding",
- "PLACEHOLDER": "Please write the message you want to save as a template to use later.",
- "ERROR": "Message is required."
+ "PLACEHOLDER": "Vennligst skriv meldingen du vil lagre som mal for bruk senere.",
+ "ERROR": "Melding er påkrevd."
},
"SUBMIT": "Send"
},
"BUTTON_TEXT": "Rediger",
"API": {
- "SUCCESS_MESSAGE": "Canned response is updated successfully.",
+ "SUCCESS_MESSAGE": "Forhåndslagd svar ble oppdatert.",
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
}
},
"DELETE": {
"BUTTON_TEXT": "Slett",
"API": {
- "SUCCESS_MESSAGE": "Canned response deleted successfully.",
+ "SUCCESS_MESSAGE": "Forhåndslagd svar ble slettet.",
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
},
"CONFIRM": {
- "TITLE": "Confirm deletion",
+ "TITLE": "Bekreft sletting",
"MESSAGE": "Er du sikker på at du vil slette ",
- "YES": "Yes, delete ",
- "NO": "No, keep "
+ "YES": "Ja, slett ",
+ "NO": "Nei, behold "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/chatlist.json b/app/javascript/dashboard/i18n/locale/no/chatlist.json
index 66c732d7b..34505045c 100644
--- a/app/javascript/dashboard/i18n/locale/no/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/no/chatlist.json
@@ -6,9 +6,10 @@
"LIST": {
"404": "Det er ingen aktive samtaler i denne gruppen."
},
+ "FAILED_TO_SEND": "Kunne ikke sende",
"TAB_HEADING": "Samtaler",
- "MENTION_HEADING": "Mentions",
- "UNATTENDED_HEADING": "Unattended",
+ "MENTION_HEADING": "Omtale",
+ "UNATTENDED_HEADING": "Udeltatt",
"SEARCH": {
"INPUT": "Søk etter personer, samtaler, lagrede svar .."
},
@@ -26,17 +27,17 @@
"TEXT": "Løst"
},
"pending": {
- "TEXT": "Pending"
+ "TEXT": "Ventende"
},
"snoozed": {
- "TEXT": "Snoozed"
+ "TEXT": "Slumret"
},
"all": {
"TEXT": "Alle"
}
},
"VIEW_FILTER": "Vis",
- "SORT_TOOLTIP_LABEL": "Sort conversations",
+ "SORT_TOOLTIP_LABEL": "Sorter samtaler",
"CHAT_SORT": {
"STATUS": "Satus",
"ORDER_BY": "Order by"
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Plassering"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "har delt en URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "No content available",
"HIDE_QUOTED_TEXT": "Hide Quoted Text",
"SHOW_QUOTED_TEXT": "Show Quoted Text",
- "MESSAGE_READ": "Read"
+ "MESSAGE_READ": "Read",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/companies.json b/app/javascript/dashboard/i18n/locale/no/companies.json
new file mode 100644
index 000000000..1dca466d9
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Navn",
+ "DOMAIN": "Domain",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY_AT": "Last activity",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kontakter",
+ "HISTORY": "History",
+ "NOTES": "Notes"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search attributes...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Laster inn kontakter...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Firma",
+ "CONTACT_LABEL": "Contact",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Avbryt"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Navn",
+ "DOMAIN": "Domain"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/components.json b/app/javascript/dashboard/i18n/locale/no/components.json
new file mode 100644
index 000000000..bbee4d708
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Ingen resultater funnet.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Ingen resultater funnet.",
+ "SEARCHING": "Searching..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Avbryt",
+ "CONFIRM": "Confirm"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Søk etter land",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Please select a dial code from the list"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Learn more",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/contact.json b/app/javascript/dashboard/i18n/locale/no/contact.json
index ade37f07e..36b0c84c1 100644
--- a/app/javascript/dashboard/i18n/locale/no/contact.json
+++ b/app/javascript/dashboard/i18n/locale/no/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "IP Adresse",
"CREATED_AT_LABEL": "Created",
"NEW_MESSAGE": "New message",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Det er ingen tidligere samtaler knyttet til denne kontakten.",
"TITLE": "Tidligere samtaler"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Egendefinerte verdier",
"CONTACT_LABELS": "Contact Labels",
- "PREVIOUS_CONVERSATIONS": "Tidligere samtaler"
+ "PREVIOUS_CONVERSATIONS": "Tidligere samtaler",
+ "NO_RECORDS_FOUND": "No attributes found"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Rediger kontakt",
"DESC": "Rediger kontaktopplysninger"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "New Contact",
- "TITLE": "Create new contact",
- "DESC": "Add basic information details about the contact."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Import",
- "TITLE": "Import Contacts",
- "DESC": "Import contacts through a CSV file.",
- "DOWNLOAD_LABEL": "Download a sample csv.",
- "FORM": {
- "LABEL": "CSV File",
- "SUBMIT": "Import",
- "CANCEL": "Avbryt"
- },
- "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
- "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Export",
- "TITLE": "Export Contacts",
- "DESC": "Export contacts to a CSV file.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen",
- "CONFIRM": {
- "TITLE": "Export Contacts",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Bekreft sletting",
- "MESSAGE": "Are you want sure to delete this note?",
- "YES": "Yes, Delete it",
- "NO": "Nei, behold den"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Delete Contact",
"TITLE": "Delete contact",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontakter",
- "FIELDS": "Contact fields",
- "SEARCH_BUTTON": "Søk",
- "SEARCH_INPUT_PLACEHOLDER": "Søk etter kontakter",
- "FILTER_CONTACTS": "Filter",
- "FILTER_CONTACTS_SAVE": "Save filter",
- "FILTER_CONTACTS_DELETE": "Delete filter",
- "FILTER_CONTACTS_EDIT": "Edit segment",
"LIST": {
- "LOADING_MESSAGE": "Laster inn kontakter...",
- "404": "Ingen kontakter samsvarer med søket ditt 🔍",
- "NO_CONTACTS": "There are no available contacts",
"TABLE_HEADER": {
- "NAME": "Navn",
- "PHONE_NUMBER": "Telefonnummer",
- "CONVERSATIONS": "Samtaler",
- "LAST_ACTIVITY": "Last Activity",
- "CREATED_AT": "Created At",
- "COUNTRY": "Country",
- "CITY": "City",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Firma",
- "EMAIL_ADDRESS": "E-postadresse"
- },
- "VIEW_DETAILS": "View details"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontakter",
- "LOADING": "Loading contact profile..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Add",
- "TITLE": "Shift + Enter to create a task"
- },
- "FOOTER": {
- "DUE_DATE": "Due date",
- "LABEL_TITLE": "Set type"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Fetching notes...",
- "NOT_AVAILABLE": "There are no notes created for this contact",
- "HEADER": {
- "TITLE": "Notes"
- },
- "LIST": {
- "LABEL": "added a note"
- },
- "ADD": {
- "BUTTON": "Add",
- "PLACEHOLDER": "Add a note",
- "TITLE": "Shift + Enter to create a note"
- },
- "CONTENT_HEADER": {
- "DELETE": "Delete note"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Activities"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "notes",
- "PILL_BUTTON_EVENTS": "events",
- "PILL_BUTTON_CONVO": "samtaler"
+ "SOCIAL_PROFILES": "Social Profiles"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Add attributes",
"BUTTON": "Add custom attribute",
- "NOT_AVAILABLE": "There are no custom attributes available for this contact.",
"COPY_SUCCESSFUL": "Kopiert til utklippstavle",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Copy attribute",
"DELETE": "Delete attribute",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Summary",
- "DELETE_WARNING": "Contact of %{primaryContactName} will be deleted.",
- "ATTRIBUTE_WARNING": "Contact details of %{primaryContactName} will be copied to %{parentContactName}."
+ "DELETE_WARNING": "Contact of {primaryContactName} will be deleted.",
+ "ATTRIBUTE_WARNING": "Contact details of {primaryContactName} will be copied to {parentContactName}."
},
"SEARCH": {
- "ERROR": "ERROR_MESSAGE"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Merge contacts",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contact merged successfully",
"ERROR_MESSAGE": "Could not merge contacts, try again!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakter",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Melding",
+ "SEND_MESSAGE": "Send message",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakter"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Denne e-postadressen er allerede i bruk av en annen kontakt.",
+ "PHONE_NUMBER_DUPLICATE": "This phone number is in use for another contact.",
+ "SUCCESS_MESSAGE": "Contact saved successfully",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Import contacts through a CSV file.",
+ "DOWNLOAD_LABEL": "Download a sample csv.",
+ "LABEL": "CSV File:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Endre",
+ "CANCEL": "Avbryt",
+ "IMPORT": "Import",
+ "SUCCESS_MESSAGE": "You will be notified via email when the import is complete.",
+ "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Export",
+ "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
+ "ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
+ },
+ "SORT_BY": {
+ "LABEL": "Sort by",
+ "OPTIONS": {
+ "NAME": "Navn",
+ "EMAIL": "E-post",
+ "PHONE_NUMBER": "Telefonnummer",
+ "COMPANY": "Firma",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "LAST_ACTIVITY": "Last activity",
+ "CREATED_AT": "Created at"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Do you want to save this filter?",
+ "CONFIRM": "Save filter",
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Bekreft sletting",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Ja, slett",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Navn",
+ "EMAIL": "E-post",
+ "PHONE_NUMBER": "Telefonnummer",
+ "IDENTIFIER": "Identifier",
+ "COUNTRY": "Country",
+ "CITY": "City",
+ "COMPANY": "Firma",
+ "CREATED_AT": "Created at",
+ "LAST_ACTIVITY": "Last activity",
+ "REFERER_LINK": "Referer link",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "True",
+ "BLOCKED_FALSE": "False",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Clear filters",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Apply filters",
+ "ADD_FILTER": "Add filter"
+ },
+ "TITLE": "Filter contacts",
+ "EDIT_SEGMENT": "Edit segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Clear filters"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "View details",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Rediger kontaktopplysninger",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Denne e-postadressen er allerede i bruk av en annen kontakt."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "This phone number is in use for another contact."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Enter the city name"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Skriv inn firmanavn"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Delete contact",
+ "DELETE_DIALOG": {
+ "TITLE": "Bekreft sletting",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Ja, slett",
+ "API": {
+ "SUCCESS_MESSAGE": "Contact deleted successfully",
+ "ERROR_MESSAGE": "Could not delete contact. Please try again later."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar deleted successfully",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notes",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Det er ingen tidligere samtaler knyttet til denne kontakten"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Yes",
+ "NO": "No",
+ "TRIGGER": {
+ "SELECT": "Select value",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Valid value is required",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Invalid URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "No attributes found",
+ "API": {
+ "SUCCESS_MESSAGE": "Attribute updated successfully",
+ "DELETE_SUCCESS_MESSAGE": "Attribute deleted successfully",
+ "UPDATE_ERROR": "Unable to update attribute. Please try again later",
+ "DELETE_ERROR": "Unable to delete attribute. Please try again later"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Merge contact",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Primary contact",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "To be deleted",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Search for a contact",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contact merged successfully",
+ "ERROR_MESSAGE": "Could not merge contacts, try again!",
+ "IS_SEARCHING": "Searching...",
+ "BUTTONS": {
+ "CANCEL": "Avbryt",
+ "CONFIRM": "Merge contact"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Add a note",
+ "WROTE": "wrote",
+ "YOU": "Du",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Ingen kontakter samsvarer med søket ditt 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Assign Labels",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Labels assigned successfully.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Slett",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Delete contact"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Vis",
+ "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": "To:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Subject :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Write your message here..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variables",
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Go back",
+ "SEND_MESSAGE": "Send message"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/contactFilters.json b/app/javascript/dashboard/i18n/locale/no/contactFilters.json
index 756663188..028a0a71c 100644
--- a/app/javascript/dashboard/i18n/locale/no/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/no/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Is lesser than",
"days_before": "Is x days before"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Value is required"
+ },
"ATTRIBUTES": {
"NAME": "Navn",
"EMAIL": "E-post",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Created At",
"LAST_ACTIVITY": "Last Activity",
- "REFERER_LINK": "Referrer link"
+ "REFERER_LINK": "Referrer link",
+ "BLOCKED": "Blocked",
+ "LABELS": "Etiketter"
},
"GROUPS": {
"STANDARD_FILTERS": "Standard Filters",
diff --git a/app/javascript/dashboard/i18n/locale/no/contentTemplates.json b/app/javascript/dashboard/i18n/locale/no/contentTemplates.json
new file mode 100644
index 000000000..dc2f79e82
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "NO_CONTENT": "Ingen innhold",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Text"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Tilbake",
+ "SEND_MESSAGE_BUTTON": "Send Message"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/conversation.json b/app/javascript/dashboard/i18n/locale/no/conversation.json
index f07f3ba57..cb6b2f431 100644
--- a/app/javascript/dashboard/i18n/locale/no/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/no/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " for å komme i gang",
"NO_INBOX_AGENT": "Uff da! Det ser ut til at du ikke er en del av innboksen. Kontakt systemansvarlig",
"SEARCH_MESSAGES": "Søk etter meldinger i samtaler",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Laster samtaler",
"CANNOT_REPLY": "Du kan ikke svare på grunn av",
"24_HOURS_WINDOW": "24-timers meldingsrestriksjon",
+ "48_HOURS_WINDOW": "48-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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Unknown File",
- "SAVE_CONTACT": "Save",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} has started a meeting"
+ },
"UPLOADING_ATTACHMENTS": "Laster opp vedlegg...",
"REPLIED_TO_STORY": "Replied to your story",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Message deleted successfully",
"FAIL_DELETE_MESSSAGE": "Couldn't delete message! Try again",
"NO_RESPONSE": "No response",
+ "RESPONSE": "Response",
"RATING_TITLE": "Rating",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Show labels",
- "HIDE_LABELS": "Hide labels"
+ "HIDE_LABELS": "Hide labels",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Løs",
"REOPEN_ACTION": "Gjenåpne",
"OPEN_ACTION": "Åpne",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Mer",
"CLOSE": "Lukk",
"DETAILS": "detaljer",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week",
- "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Snoozed until next reply",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Mark as pending",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Next week"
}
},
+ "MENTION": {
+ "AGENTS": "Agenter",
+ "TEAMS": "Teams"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Snooze until",
"APPLY": "Snooze",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "None",
"INPUT_PLACEHOLDER": "Select priority",
"NO_RESULTS": "No results found",
- "SUCCESSFUL": "Changed priority of conversation id %{conversationId} to %{priority}",
+ "SUCCESSFUL": "Changed priority of conversation id {conversationId} to {priority}",
"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",
"MARK_AS_UNREAD": "Mark as unread",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Reopen conversation",
"SNOOZE": {
"TITLE": "Snooze",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Assign label",
"AGENTS_LOADING": "Loading agents...",
"ASSIGN_TEAM": "Assign team",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversation id %{conversationId} assigned to \"%{agentName}\"",
+ "SUCCESFUL": "Conversation id {conversationId} assigned to \"{agentName}\"",
"FAILED": "Couldn't assign agent. Please try again."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Assigned label #%{labelName} to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Couldn't assign label. Please try again."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Assigned team \"%{team}\" to conversation id %{conversationId}",
+ "SUCCESFUL": "Assigned team \"{team}\" to conversation id {conversationId}",
"FAILED": "Couldn't assign team. Please try again."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Disable signature",
"MSG_INPUT": "Shift + enter for ny linje. Start med '/' for å velge et forhåndslagd svar.",
"PRIVATE_MSG_INPUT": "Skift + enter for ny linje. Dette vil kun være synlig for agenter",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Message signature is not configured, please configure it in profile settings.",
- "CLICK_HERE": "Click here to update"
+ "COPILOT_MSG_INPUT": "Gi copilot flere forslag, eller spør om noe annet... Trykk enter for å sende oppfølgingsmelding",
+ "CLICK_HERE": "Click here to update",
+ "WHATSAPP_TEMPLATES": "Whatsapp Templates"
},
"REPLYBOX": {
"REPLY": "Svar",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Read more",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Vis rik tekstredigering",
"TIP_EMOJI_ICON": "Vis emoji-velger",
"TIP_ATTACH_ICON": "Legg ved filer",
"TIP_AUDIORECORDER_ICON": "Record audio",
"TIP_AUDIORECORDER_PERMISSION": "Allow access to audio",
"TIP_AUDIORECORDER_ERROR": "Could not open the audio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Drag and drop here to attach",
"START_AUDIO_RECORDING": "Start audio recording",
"STOP_AUDIO_RECORDING": "Stop audio recording",
- "": "",
+ "COPILOT_THINKING": "Copilot tenker",
"EMAIL_HEAD": {
"TO": "TO",
"ADD_BCC": "Add bcc",
@@ -176,6 +257,13 @@
"YES": "Send",
"CANCEL": "Avbryt"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Privat notat: bare synlig for deg og ditt team",
@@ -186,10 +274,15 @@
"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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Unable to send this message, please try again later",
"SENT_BY": "Sendt av:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Couldn't send message! Try again",
"TRY_AGAIN": "retry",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Slett",
"CANCEL": "Avbryt"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contact",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Dismiss",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Avbryt",
"SEND_EMAIL_SUCCESS": "Kopi av samtalen ble sendt",
"SEND_EMAIL_ERROR": "Det oppstod en feil. Prøv igjen",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Send kopi av samtalen til kunden",
"SEND_TO_AGENT": "Send kopi av samtalen til den tildelte agenten",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Hey 👋, Welcome to %{installationName}!",
- "DESCRIPTION": "Thanks for signing up. We want you to get the most out of %{installationName}. Here are a few things you can do in %{installationName} to make the experience delightful.",
+ "TITLE": "Hey 👋, Welcome to {installationName}!",
+ "DESCRIPTION": "Thanks for signing up. We want you to get the most out of {installationName}. Here are a few things you can do in {installationName} to make the experience delightful.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Read our latest updates",
"ALL_CONVERSATION": {
"TITLE": "All your conversations in one place",
- "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status."
+ "DESCRIPTION": "View all the conversations from your customers in one single dashboard. You can filter the conversations by the incoming channel, label and status.",
+ "NEW_LINK": "Click here to create an inbox"
},
"TEAM_MEMBERS": {
"TITLE": "Invite your team members",
"DESCRIPTION": "Since you are getting ready to talk to your customer, bring in your teammates to assist you. You can invite your teammates by adding their email addresses to the agent list.",
"NEW_LINK": "Click here to invite a team member"
},
- "INBOXES": {
- "TITLE": "Connect Inboxes",
- "DESCRIPTION": "Connect various channels through which your customers would be talking to you. It can be a website live-chat, your Facebook or Twitter page or even your WhatsApp number.",
- "NEW_LINK": "Click here to create an inbox"
- },
"LABELS": {
"TITLE": "Organize conversations with labels",
"DESCRIPTION": "Labels provide an easier way to categorize your conversation. Create some labels like #support-enquiry, #billing-question etc., so that you can use them in a conversation later.",
"NEW_LINK": "Click here to create tags"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Ventende",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Create attribute",
+ "NO_RECORDS_FOUND": "No attributes found",
"UPDATE": {
"SUCCESS": "Attribute updated successfully",
"ERROR": "Unable to update attribute. Please try again later"
@@ -297,17 +449,18 @@
"TO": "To",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Subject"
+ "SUBJECT": "Subject",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participating",
"SIDEBAR_TITLE": "Conversation participants",
"NO_RECORDS_FOUND": "No results found",
"ADD_PARTICIPANTS": "Select participants",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} others",
- "REMANING_PARTICIPANT_TEXT": "+%{count} other",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} people are participating.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} person is participating.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} others",
+ "REMANING_PARTICIPANT_TEXT": "+{count} other",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} people are participating.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} person is participating.",
"NO_PARTICIPANTS_TEXT": "No one is participating!.",
"WATCH_CONVERSATION": "Join conversation",
"YOU_ARE_WATCHING": "You are participating",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Original Content",
"TRANSLATED_CONTENT": "Translated Content",
"NO_TRANSLATIONS_AVAILABLE": "No translations are available for this content"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/customRole.json b/app/javascript/dashboard/i18n/locale/no/customRole.json
new file mode 100644
index 000000000..776ee6ac5
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Handlinger"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Name is required."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Description is required."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Avbryt",
+ "API": {
+ "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Send",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Rediger",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Oppdater",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Slett",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirm deletion",
+ "MESSAGE": "Er du sikker på at du vil slette ",
+ "YES": "Ja, slett ",
+ "NO": "Nei, behold "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/datePicker.json b/app/javascript/dashboard/i18n/locale/no/datePicker.json
new file mode 100644
index 000000000..fc172eba8
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Apply",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Siste 7 dager",
+ "LAST_30_DAYS": "Siste 30 dager",
+ "LAST_3_MONTHS": "Last 3 months",
+ "LAST_6_MONTHS": "Last 6 months",
+ "LAST_YEAR": "Last year",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Custom date range"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/general.json b/app/javascript/dashboard/i18n/locale/no/general.json
new file mode 100644
index 000000000..38d116cec
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Søk",
+ "EMPTY_STATE": "Ingen resultater funnet"
+ },
+ "CLOSE": "Lukk",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/generalSettings.json b/app/javascript/dashboard/i18n/locale/no/generalSettings.json
index fc500c474..75c5d1a2d 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Du kan motta e-post i ditt egendefinerte domene nå."
}
},
- "UPDATE_CHATWOOT": "En oppdatering av %{latestChatwootVersion} for Chatwoot er tilgjengelig. Oppdater din instans.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Trykk enter for å velge",
"ENTER_TO_REMOVE": "Trykk enter for å fjerne",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Velg en",
"SELECT": "Select"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Samtale tildelt",
"assigned_conversation_new_message": "Ny melding",
"participating_conversation_new_message": "Ny melding",
- "conversation_mention": "Omtale"
+ "conversation_mention": "Omtale",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Frakoblet"
+ "OFFLINE": "Frakoblet",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Refresh"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Search or jump to",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "General",
"REPORTS": "Rapporter",
"CONVERSATION": "Conversation",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Change Assignee",
"CHANGE_PRIORITY": "Change Priority",
"CHANGE_TEAM": "Change Team",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Until tomorrow",
"UNTIL_NEXT_MONTH": "Until next month",
"AN_HOUR_FROM_NOW": "Until an hour from now",
- "CUSTOM": "Custom...",
+ "UNTIL_CUSTOM_TIME": "Custom...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/no/helpCenter.json b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
index ae40223f0..0ed9ed17a 100644
--- a/app/javascript/dashboard/i18n/locale/no/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/no/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Help Center",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Create Portal"
+ },
"HEADER": {
"FILTER": "Filter by",
"SORT": "Sort by",
@@ -41,6 +46,7 @@
"UPLOADING": "Laster opp...",
"SUCCESS": "Image uploaded successfully",
"ERROR": "Error while uploading image",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Image size should be less than {size}MB",
"ERROR_FILE_FORMAT": "Image format should be jpg, jpeg or png",
"ERROR_FILE_DIMENSIONS": "Image dimensions should be less than 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Uncategorized",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Searching...",
"INSERT_ARTICLE": "Insert",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal deleted successfully",
"DELETE_ERROR": "Error while deleting portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Help center information",
- "route": "new_portal_information",
- "body": "Basic information about portal",
- "CREATE_BASIC_SETTING_BUTTON": "Create portal basic settings"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Help center information",
+ "BODY": "Basic information about portal"
},
- {
- "title": "Help center customization",
- "route": "portal_customization",
- "body": "Customize portal",
- "UPDATE_PORTAL_BUTTON": "Update portal settings"
+ "CUSTOMIZATION": {
+ "TITLE": "Help center customization",
+ "BODY": "Customize portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "You're all set!",
- "FINISH": "Finish"
+ "FINISH": {
+ "TITLE": "Voila! 🎉",
+ "BODY": "You're all set!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Tilbake",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Custom Domain",
"PLACEHOLDER": "Portal custom domain",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Enter a valid domain URL"
},
"HOME_PAGE_LINK": {
"LABEL": "Home Page Link",
"PLACEHOLDER": "Portal home page link",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Enter a valid home page URL"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Locale removed from portal successfully",
"ERROR_MESSAGE": "Unable to remove locale from portal. Try again."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Article archived successfully"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Error while deleting article"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Please add the article heading and content then only you can update the settings"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "DELETE": "Slett"
+ },
+ "STATUS": {
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Mine",
+ "DRAFT": "Draft",
+ "PUBLISHED": "Published",
+ "ARCHIVED": "Archived"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Translate",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Translate",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Translate",
+ "MOVE_TO_CATEGORY": "Category",
+ "DELETE": "Slett",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Slett",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "New category",
+ "EDIT_CATEGORY": "Edit category",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "No categories found",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category created successfully",
+ "ERROR_MESSAGE": "Unable to create category"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category updated successfully",
+ "ERROR_MESSAGE": "Unable to update category"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Category deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete category"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Create category",
+ "EDIT": "Edit category",
+ "DESCRIPTION": "Editing a category will update the category in the public facing portal.",
+ "PORTAL": "Portal",
+ "LOCALE": "Locale"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Category name",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Category slug for urls",
+ "ERROR": "Slug is required",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Give a short description about the category.",
+ "ERROR": "Description is required"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Opprett",
+ "EDIT": "Oppdater",
+ "CANCEL": "Avbryt"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Default",
+ "DRAFT": "Draft",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Slett"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Add a new locale",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Satus",
+ "OPTIONS": {
+ "LIVE": "Published",
+ "DRAFT": "Draft"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Locale added successfully",
+ "ERROR_MESSAGE": "Unable to add locale. Try again."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Saving...",
+ "SAVED": "Saved"
+ },
+ "PREVIEW": "Preview",
+ "PUBLISH": "Publish",
+ "DRAFT": "Draft",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Uncategorized",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Meta description",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Meta title",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Error while saving article"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portals",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "articles",
+ "DOMAIN": "domain",
+ "PORTAL_NAME": "Portal name"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Opprett",
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Name is required"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug is required",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Navn",
+ "PLACEHOLDER": "Portal name",
+ "ERROR": "Name is required"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Portal header text"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Portal page title"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Portal home page link",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Custom domain",
+ "LABEL": "Custom domain:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Portal custom domain",
+ "EDIT_BUTTON": "Rediger",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Live",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Custom domain",
+ "PLACEHOLDER": "Portal custom domain",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Send"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Delete portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Slett"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Fjern"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal created successfully",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal updated successfully",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Laster opp...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Avbryt",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generating...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Completed",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/inbox.json b/app/javascript/dashboard/i18n/locale/no/inbox.json
index 01a933135..762e722c3 100644
--- a/app/javascript/dashboard/i18n/locale/no/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/no/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Inbox",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "All notifications loaded 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Snoozed until",
"SNOOZED_UNTIL_TOMORROW": "Snoozed until tomorrow",
"SNOOZED_UNTIL_NEXT_WEEK": "Snoozed until next week"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Tilbake"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "No content available",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Mark as unread",
@@ -41,7 +58,7 @@
"PRIORITY": "Priority"
},
"DISPLAY_OPTIONS": {
- "SNOOZED": "Snoozed",
+ "SNOOZED": "Slumret",
"READ": "Read",
"LABELS": "Etiketter",
"CONVERSATION_ID": "Conversation ID"
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
index a7aa3e4fc..3bc48e51d 100644
--- a/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Innbokser",
- "SIDEBAR_TXT": "Innboks
Når du kobler til et nettsted eller en facebook-side til Chatwoot blir den kalt en Innboks. Du kan ha ubegrensede innbokser i din Chatwoot-konto.
Klikk på Legg til innboks for å koble sammen en nettside eller en facebook-side.
I oversikten kan du se alle samtalene fra innboksene på et sted og svare på de i samtaler-fanen.
Du kan også se samtaler for hver enkelt innboks ved å klikke på innboksen på venstre siden av oversikten.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Det er ingen innbokser tilknyttet denne kontoen."
},
- "CREATE_FLOW": [
- {
- "title": "Velg kanal",
- "route": "settings_inbox_new",
- "body": "Velg tilbyderen du vil integrere med Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Velg kanal",
+ "BODY": "Velg tilbyderen du vil integrere med Chatwoot."
},
- {
- "title": "Opprett innboks",
- "route": "settings_inboxes_page_channel",
- "body": "Autoriser din konto og opprett en innboks."
+ "INBOX": {
+ "TITLE": "Opprett innboks",
+ "BODY": "Autoriser din konto og opprett en innboks."
},
- {
- "title": "Legg til agenter",
- "route": "settings_inboxes_add_agents",
- "body": "Legg agenter til i den opprettede innboksen."
+ "AGENT": {
+ "TITLE": "Legg til agenter",
+ "BODY": "Legg agenter til i den opprettede innboksen."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Klar - ferdig - gå!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Klar - ferdig - gå!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Navn på innboks",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Velg en side fra listen",
"INBOX_NAME": "Navn på innboks",
"ADD_NAME": "Legge til et navn på innboksen din",
- "PICK_NAME": "Velg et navn din innboks",
- "PICK_A_VALUE": "Velg en verdi"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "For å legge til din Twitter-profil som kanal, må du autorisere din Twitter-profil ved å klikke på 'Logg inn med Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Enter your Webhook URL",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Vennligst skriv inn en gyldig URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Nettstedets domene",
"PLACEHOLDER": "Angi URL på nettsiden (f. eks.: acme.no)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "API Key",
- "PLACEHOLDER": "Please enter your Bandwith API Key",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "Dette feltet er obligatorisk"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Please enter your Bandwith API Secret",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "Dette feltet er obligatorisk"
},
"APPLICATION_ID": {
@@ -213,10 +242,17 @@
"DESC": "Start supporting your customers via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
+ },
"INBOX_NAME": {
"LABEL": "Navn på innboks",
"PLACEHOLDER": "Please enter an inbox name",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Webhook Verify Token",
- "PLACEHOLDER": "Enter a verify token which you want to configure for facebook webhooks.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Please enter a valid value."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Webhook Verification Token"
},
"SUBMIT_BUTTON": "Create WhatsApp Channel",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "We were not able to save the WhatsApp channel"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Telefonnummer",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "Konto-SID",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Autoriseringstoken",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "API Kanal",
"DESC": "Integrer med en API-kanal for å støtte dine kunder.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Webhook URL",
- "SUBTITLE": "Konfigurere nettadressen du vil motta callbacks fra hendelser.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Webhook URL"
},
"SUBMIT_BUTTON": "Opprett API-kanal",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "E-postkanal",
- "DESC": "Integrer din e-postinnboks.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Kanalnavn",
"PLACEHOLDER": "Vennligst skriv inn et kanalnavn",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Vi kunne ikke lagre e-postkanalen"
},
- "FINISH_MESSAGE": "Begynn å videresende e-post til følgende e-postadresse."
+ "FINISH_MESSAGE": "Begynn å videresende e-post til følgende e-postadresse.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Klikk her",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "LINE Channel",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Choose a channel",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-post",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenter",
"DESC": "Her kan du legge til agenter for å administrere innboksen din. Bare de valgte agentene har tilgang til innboksen din. Agenter som ikke er en del av denne innboksen vil ikke kunne se eller svare på meldinger i denne innboksen når de logger inn.
PS: Dersom du som administrator trenger tilgang til alle innbokser, må du legge deg selv til som agent i alle innbokser du lager.",
- "VALIDATION_ERROR": "Legg til minst én agent i den nye innboksen",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Velg agenter for innboksen"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Click on the Sign in with Microsoft button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
"EMAIL_PLACEHOLDER": "Enter email address",
- "HELP": "To add your Microsoft account as a channel, you need to authenticate your Microsoft account by clicking on 'Sign in with Microsoft' ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "There was an error connecting to Microsoft, please try again"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Enter email address",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Autentiserer deg med Facebook...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Noe gikk galt, oppdater siden...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "You can now engage with your customers through your new Channel. Happy supporting",
"BUTTON_TEXT": "Ta meg dit",
"MORE_SETTINGS": "More settings",
- "WEBSITE_SUCCESS": "Du har nå fullført opprettingen av nettstedskanalen. Kopier koden nedenfor og lim den inn på nettstedet. Neste gang en kunde bruker live-chatten vil samtalen vises automatisk i innboksen din."
+ "WEBSITE_SUCCESS": "Du har nå fullført opprettingen av nettstedskanalen. Kopier koden nedenfor og lim den inn på nettstedet. Neste gang en kunde bruker live-chatten vil samtalen vises automatisk i innboksen din.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reautoriser",
"VIEW": "Vis",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Friendly",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Save"
}
@@ -432,8 +606,10 @@
"DISABLED": "Deaktivert"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Aktivert",
- "DISABLED": "Deaktivert"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Enable"
@@ -464,7 +640,107 @@
"PRE_CHAT_FORM": "Pre Chat Form",
"BUSINESS_HOURS": "Business Hours",
"WIDGET_BUILDER": "Widget Builder",
- "BOT_CONFIGURATION": "Bot Configuration"
+ "BOT_CONFIGURATION": "Bot Configuration",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Live"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Innstillinger",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Kopi av samtale",
"MESSENGER_SUB_HEAD": "Plasser denne knappen innenfor body-taggen",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenter",
"INBOX_AGENTS_SUB_TEXT": "Legg til eller fjern agenter fra denne innboksen",
"AGENT_ASSIGNMENT": "Conversation Assignment",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Lock to single conversation",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Enable or disable multiple conversations for the same contact in this inbox",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Innboksinnstillinger",
"INBOX_UPDATE_SUB_TEXT": "Oppdater innboksinnstillinger",
"AUTO_ASSIGNMENT_SUB_TEXT": "Aktiver eller deaktiver automatisk tildeling av nye samtaler til agenter som er lagt til i denne innboksen.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Use the `inbox_identifier` token shown here to authentication your API clients.",
"FORWARD_EMAIL_TITLE": "Forward to Email",
"FORWARD_EMAIL_SUB_TEXT": "Begynn å videresende e-post til følgende e-postadresse.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Allow messages after conversation resolved",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Allow the end-users to send messages even after the conversation is resolved.",
"WHATSAPP_SECTION_SUBHEADER": "This API Key is used for the integration with the WhatsApp APIs.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the updated key to be used for the integration with the WhatsApp APIs.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "API Key",
"WHATSAPP_SECTION_UPDATE_TITLE": "Update API Key",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Enter the new API Key here",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Oppdater",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook Verify Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Koble til",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook Verification Token",
"WHATSAPP_WEBHOOK_SUBHEADER": "This token is used to verify the authenticity of the webhook endpoint.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Update Pre Chat Form Settings"
},
"HELP_CENTER": {
"LABEL": "Help Center",
"PLACEHOLDER": "Select Help Center",
"SELECT_PLACEHOLDER": "Select Help Center",
+ "NONE": "None",
"REMOVE": "Remove Help Center",
"SUB_TEXT": "Attach a Help Center with the inbox"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Please enter a value greater than 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limit the maximum number of conversations from this inbox that can be auto assigned to an agent"
},
+ "ASSIGNMENT": {
+ "TITLE": "Conversation Assignment",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Avbryt",
+ "CONFIRM_DELETE": "Slett",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautoriser",
"SUBTITLE": "Facebook-tilkoblingen din er utløpt, koble til Facebook-siden din for å fortsette tjenester",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Language",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Go back"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Unavailable message for visitors",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Day",
+ "AVAILABILITY": "Tilgjengelighet",
+ "HOURS": "Hours",
"ENABLE": "Enable availability for this day",
"UNAVAILABLE": "Unavailable",
- "HOURS": "hours",
"VALIDATION_ERROR": "Starting time should be before closing time.",
"CHOOSE": "Choose"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "To enable SMTP, please configure IMAP.",
"UPDATE": "Update IMAP settings",
"TOGGLE_AVAILABILITY": "Enable IMAP configuration for this inbox",
- "TOGGLE_HELP": "Enabling IMAP will help the user to recieve email",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "IMAP settings updated successfully",
"ERROR_MESSAGE": "Unable to update IMAP settings"
@@ -606,7 +1042,8 @@
"LABEL": "Passord",
"PLACE_HOLDER": "Passord"
},
- "ENABLE_SSL": "Enable SSL"
+ "ENABLE_SSL": "Enable SSL",
+ "AUTH_MECHANISM": "Authentication"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "Om en dag"
},
"WIDGET_COLOR_LABEL": "Widget farge",
- "WIDGET_BUBBLE_POSITION_LABEL": "Widget Bubble Position",
- "WIDGET_BUBBLE_TYPE_LABEL": "Widget Bubble Type",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Type:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Chat med oss",
- "LABEL": "Widget Bubble Launcher Title",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Chat med oss"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Default",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Svarer vanligvis innen et par timer",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Other Providers"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Other Providers",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-post",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "API Kanal",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/index.js b/app/javascript/dashboard/i18n/locale/no/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/no/index.js
+++ b/app/javascript/dashboard/i18n/locale/no/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/no/integrationApps.json b/app/javascript/dashboard/i18n/locale/no/integrationApps.json
index 1a4c1d5a5..8608263a0 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Fetching Integrations",
- "NO_HOOK_CONFIGURED": "There are no %{integrationId} integrations configured in this account.",
+ "NO_HOOK_CONFIGURED": "There are no {integrationId} integrations configured in this account.",
"HEADER": "Applications",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Aktivert",
"DISABLED": "Deaktivert"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Fetching integration hooks",
"INBOX": "Inbox",
+ "ACTIONS": "Handlinger",
"DELETE": {
"BUTTON_TEXT": "Slett"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Select Inbox"
},
"SUBMIT": "Opprett",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Avbryt"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Disconnect"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow is a natural language understanding platform that makes it easy to design and integrate a conversational user interface into your mobile app, web application, device, bot, interactive voice response system, and so on.
Dialogflow integration with %{installationName} allows you to configure a Dialogflow bot with your inboxes which lets the bot handle the queries initially and hand them over to an agent when needed. Dialogflow can be used to qualifying the leads, reduce the workload of agents by providing frequently asked questions etc.
To add Dialogflow, you need to create a Service Account in your Google project console and share the credentials. Please refer to the Dialogflow docs for more information."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/integrations.json b/app/javascript/dashboard/i18n/locale/no/integrations.json
index 19944e3c6..07a8fc085 100644
--- a/app/javascript/dashboard/i18n/locale/no/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/no/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Avbryt",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrasjoner",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subscribed Events",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Avbryt",
"DESC": "Webhook-hendelser gir deg sanntidsinformasjon om hva som skjer i din Chatwoot-konto. Skriv inn en gyldig nettadresse for å konfigurere en callback.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Webhook URL",
- "PLACEHOLDER": "Eksempel: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Vennligst skriv inn en gyldig URL"
},
"EDIT_SUBMIT": "Update webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Det er ingen webhook-er konfigurert for denne kontoen.",
"TITLE": "Administrer webhooks",
- "TABLE_HEADER": [
- "Webhook endepunkt",
- "Handlinger"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Webhook endepunkt",
+ "ACTIONS": "Handlinger"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Rediger",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Bekreft sletting",
- "MESSAGE": "Are you sure to delete the webhook? (%{webhookURL})",
+ "MESSAGE": "Are you sure to delete the webhook? ({webhookURL})",
"YES": "Ja, slett ",
"NO": "Nei, behold den"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Slett",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Professional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Friendly"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Add a new dashboard app",
"SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps allow organizations to embed an application inside the Chatwoot dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that inside the dashboard to provide user information, their orders, or their previous payment history.
When you embed your application using the dashboard in Chatwoot, your application will get the context of the conversation and contact as a window event. Implement a listener for the message event on your page to receive the context.
To add a new dashboard app, click on the button 'Add a new dashboard app'.
",
"DESCRIPTION": "Dashboard Apps allow organizations to embed an application inside the dashboard to provide the context for customer support agents. This feature allows you to create an application independently and embed that to provide user information, their orders, or their previous payment history.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "There are no dashboard apps configured on this account yet",
"LOADING": "Fetching dashboard apps...",
- "TABLE_HEADER": [
- "Navn",
- "Endpoint"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Handlinger"
+ },
"EDIT_TOOLTIP": "Edit app",
"DELETE_TOOLTIP": "Delete app"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Yes, delete it",
"CONFIRM_NO": "No, keep it",
"TITLE": "Confirm deletion",
- "MESSAGE": "Are you sure to delete the app - %{appName}?",
+ "MESSAGE": "Are you sure to delete the app - {appName}?",
"API_SUCCESS": "Dashboard app deleted successfully",
"API_ERROR": "We couldn't delete the app. Please try again later"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Opprett",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Title is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Team",
+ "PLACEHOLDER": "Velg gruppe",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Agent",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priority",
+ "PLACEHOLDER": "Select priority",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Label",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Satus",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Satus",
+ "PRIORITY": "Priority",
+ "ASSIGNEE": "Agent",
+ "LABELS": "Etiketter",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Yes, delete",
+ "CANCEL": "Avbryt"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Lær mer",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistenter",
+ "SWITCH_ASSISTANT": "Bytt mellom assistenter",
+ "NEW_ASSISTANT": "Opprett assistent",
+ "EMPTY_LIST": "Ingen assistenter funnet, vennligst opprett en for å komme i gang"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Kom i gang med Copilot",
+ "KICK_OFF_MESSAGE": "Trenger du en rask oppsummering, vil du sjekke tidligere samtaler, eller utarbeide et bedre svar? Copilot er her for å hjelpe deg raskere.",
+ "SEND_MESSAGE": "Send message...",
+ "EMPTY_MESSAGE": "Det oppstod en feil ved generering av svaret. Vennligst prøv igjen.",
+ "LOADER": "Captain tenker",
+ "YOU": "Du",
+ "USE": "Bruk dette",
+ "RESET": "Nullstill",
+ "SHOW_STEPS": "Vis trinn",
+ "SELECT_ASSISTANT": "Velg assistent",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Oppsummer denne samtalen",
+ "CONTENT": "Oppsummer hovedpunktene som ble diskutert mellom kunden og kundestøtteagenten, inkludert kundens bekymringer, spørsmål og løsninger eller svar gitt av agenten"
+ },
+ "SUGGEST": {
+ "LABEL": "Foreslå et svar",
+ "CONTENT": "Analyser kundens henvendelse, og utarbeid et svar som effektivt tar opp deres bekymringer eller spørsmål. Sørg for at svaret er klart, konsist og gir nyttig informasjon."
+ },
+ "RATE": {
+ "LABEL": "Vurder denne samtalen",
+ "CONTENT": "Gå gjennom samtalen for å se hvor godt den imøtekommer kundens behov. Del en vurdering fra 1 til 5 basert på tone, klarhet og effektivitet."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Samtaler med høy prioritet",
+ "CONTENT": "Gi meg en oppsummering av alle åpne samtaler med høy prioritet. Inkluder samtale-ID, kundenavn (hvis tilgjengelig), innholdet i siste melding og tildelt agent. Grupper etter status hvis relevant."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Liste over kontakter",
+ "CONTENT": "Vis meg listen over de 10 viktigste kontaktene. Inkluder navn, e-post eller telefonnummer (hvis tilgjengelig), sist sett tid, etiketter (hvis noen)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Du",
+ "ASSISTANT": "Assistent",
+ "MESSAGE_PLACEHOLDER": "Skriv inn meldingen...",
+ "HEADER": "Lekeplass",
+ "DESCRIPTION": "Bruk denne lekeplassen for å sende meldinger til assistenten din og sjekke om den svarer nøyaktig, raskt og i forventet tone.",
+ "CREDIT_NOTE": "Meldinger sendt her vil telle mot dine Captain-kreditter."
+ },
+ "PAYWALL": {
+ "TITLE": "Oppgrader for å bruke Captain AI",
+ "AVAILABLE_ON": "Captain er ikke tilgjengelig på gratisplanen.",
+ "UPGRADE_PROMPT": "Oppgrader planen din for å få tilgang til våre assistenter, copilot og mer.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI er kun tilgjengelig i Enterprise-planene.",
+ "UPGRADE_PROMPT": "Oppgrader planen din for å få tilgang til våre assistenter, copilot og mer.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Du har brukt over 80 % av svargrensen din. For å fortsette å bruke Captain AI, vennligst oppgrader.",
+ "DOCUMENTS": "Begrensning for dokumenter nådd. Oppgrader for å fortsette å bruke Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Avbryt",
+ "CREATE": "Opprett",
+ "EDIT": "Oppdater"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, slett",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Beskrivelse",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Innstillinger",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slett"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slett"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slett"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Title",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Opprett",
+ "CANCEL": "Avbryt"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Avbryt",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Slett",
+ "BULK_SYNC_BUTTON": "Refresh",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "updating...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Ja, slett",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Yes, delete",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Open billing",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "None",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "API Key"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Passord",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Type"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Number",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Required"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Slett",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, slett",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Alle"
+ },
+ "STATUS": {
+ "TITLE": "Satus",
+ "PENDING": "Ventende",
+ "APPROVED": "Approved",
+ "ALL": "Alle"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Rediger",
+ "DELETE_RESPONSE": "Slett"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Disconnect"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Ja, slett",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Innboks",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
index 877dfcf8a..842b5663e 100644
--- a/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/no/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etiketter",
"HEADER_BTN_TXT": "Legg til etikett",
"LOADING": "Henter etiketter",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Search labels...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen",
- "SIDEBAR_TXT": "Etiketter
hjelper deg med å kategorisere samtaler og prioritere dem. Du kan tilordne etiketter til en samtale fra sidepanelet.
Etiketter er knyttet til kontoen og kan brukes til å opprette egendefinerte arbeidsstrømmer i din organisasjon. Du kan tilordne egendefinert farge til en etikett- det gjør det enklere å identifisere etiketten. Du vil kunne vise etiketten på sidepanelet for å enkelt filtrere samtalene.
",
"LIST": {
"404": "Det er ingen etiketter tilgjengelig i denne kontoen.",
"TITLE": "Administrer etiketter",
"DESC": "Etiketter lar deg gruppere samtaler sammen.",
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "Farge"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "DESCRIPTION": "Beskrivelse",
+ "COLOR": "Farge",
+ "ACTION": "Handlinger"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Dismiss",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Legg til etikett",
diff --git a/app/javascript/dashboard/i18n/locale/no/login.json b/app/javascript/dashboard/i18n/locale/no/login.json
index 88512122f..dea863a08 100644
--- a/app/javascript/dashboard/i18n/locale/no/login.json
+++ b/app/javascript/dashboard/i18n/locale/no/login.json
@@ -3,7 +3,7 @@
"TITLE": "Logg inn i Chatwoot",
"EMAIL": {
"LABEL": "E-post",
- "PLACEHOLDER": "example@companyname.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Vennligst skriv inn en gyldig e-postadresse"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Glemt passord?",
"CREATE_NEW_ACCOUNT": "Opprett ny konto",
- "SUBMIT": "Logg inn"
+ "SUBMIT": "Logg inn",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/macros.json b/app/javascript/dashboard/i18n/locale/no/macros.json
index 3b34c7494..ef44a42d5 100644
--- a/app/javascript/dashboard/i18n/locale/no/macros.json
+++ b/app/javascript/dashboard/i18n/locale/no/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Macros",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Add a new macro",
"HEADER_BTN_TXT_SAVE": "Save macro",
"LOADING": "Fetching macros",
- "SIDEBAR_TXT": "Macros
A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click. When the agents run the macro, the actions would be performed sequentially in the order they are defined. Macros improve productivity and increase consistency in actions.
A macro can be helpful in 2 ways.
As an agent assist: If an agent performs a set of actions multiple times, they can save it as a macro and execute all the actions together using a single click.
As an option to onboard a team member: Every agent has to perform many different checks/actions during each conversation. Onboarding a new support team member will be easy if pre-defined macros are available on the account. Instead of describing each step in detail, the manager/team lead can point to the macros used in different scenarios.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Something went wrong. Please try again",
"ORDER_INFO": "Macros will run in the order you add your actions. You can rearrange them by dragging them by the handle beside each node.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Navn",
- "Created by",
- "Last updated by",
- "Visibility"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Navn",
+ "CREATED BY": "Created by",
+ "LAST_UPDATED_BY": "Last updated by",
+ "VISIBILITY": "Visibility",
+ "ACTIONS": "Handlinger"
+ },
"404": "No macros found"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "There was an error deleting the macro. Please try again later"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edit macro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Macro Visibility",
"GLOBAL": {
"LABEL": "Public",
- "DESCRIPTION": "This macro is available publicly for all agents in this account."
+ "DESCRIPTION": "This macro is available publicly for all agents in this account.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Private",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Execute",
"PREVIEW": "Preview Macro",
"EXECUTED_SUCCESSFULLY": "Macro executed successfully"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Value is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "None",
+ "LOW": "Low",
+ "MEDIUM": "Medium",
+ "HIGH": "High",
+ "URGENT": "Urgent"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/mfa.json b/app/javascript/dashboard/i18n/locale/no/mfa.json
new file mode 100644
index 000000000..fd51396ef
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Aktivert",
+ "DISABLED": "Deaktivert",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopier",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Avbryt",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Last ned",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Passord",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Avbryt",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Avbryt",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/onboarding.json b/app/javascript/dashboard/i18n/locale/no/onboarding.json
new file mode 100644
index 000000000..0244d6cf6
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-post",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Language",
+ "TIMEZONE": "Tidssone",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Select timezone",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Saving...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/report.json b/app/javascript/dashboard/i18n/locale/no/report.json
index 9f45e26f1..7595695cd 100644
--- a/app/javascript/dashboard/i18n/locale/no/report.json
+++ b/app/javascript/dashboard/i18n/locale/no/report.json
@@ -3,7 +3,7 @@
"HEADER": "Samtaler",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
- "DOWNLOAD_AGENT_REPORTS": "Last ned agentrapporter",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Failed to fetch data, please try again later.",
"SUMMARY_FETCHING_FAILED": "Failed to fetch summary, please try again later.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "First Response Time",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Løsningstid",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Antall løsninger",
"DESC": "(Totalt )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Antall løsninger",
+ "DESC": "(Totalt )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(Totalt )"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Siste 7 dager",
+ "LAST_14_DAYS": "Siste 14 dager",
"LAST_30_DAYS": "Siste 30 dager",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Last 3 months",
"LAST_6_MONTHS": "Last 6 months",
"LAST_YEAR": "Last year",
"CUSTOM_DATE_RANGE": "Custom date range"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Siste 7 dager"
- },
- {
- "id": 1,
- "name": "Siste 30 dager"
- },
- {
- "id": 2,
- "name": "Last 3 months"
- },
- {
- "id": 3,
- "name": "Last 6 months"
- },
- {
- "id": 4,
- "name": "Last year"
- },
- {
- "id": 5,
- "name": "Custom date range"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Apply",
"PLACEHOLDER": "Select date range"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Business Hours"
+ "BUSINESS_HOURS": "Business Hours",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Ingen resultater funnet"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Agents Overview",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_AGENT_REPORTS": "Last ned agentrapporter",
"FILTER_DROPDOWN_LABEL": "Velg agent",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søk etter agenter"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -155,13 +155,13 @@
"NAME": "First Response Time",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Løsningstid",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Antall løsninger",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Select Label",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Search labels"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -222,13 +228,13 @@
"NAME": "First Response Time",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Løsningstid",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Antall løsninger",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Inbox Overview",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_INBOX_REPORTS": "Download inbox reports",
"FILTER_DROPDOWN_LABEL": "Select Inbox",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -289,13 +303,13 @@
"NAME": "First Response Time",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Løsningstid",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Antall løsninger",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Team Overview",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"LOADING_CHART": "Laster inn diagramdata...",
"NO_ENOUGH_DATA": "Vi har ikke mottatt nok data for å generere rapporten, vennligst prøv igjen senere.",
"DOWNLOAD_TEAM_REPORTS": "Download team reports",
"FILTER_DROPDOWN_LABEL": "Select Team",
+ "FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Søk blant grupper"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Samtaler",
@@ -356,13 +379,13 @@
"NAME": "First Response Time",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "First Response Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "First Response Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_TIME": {
"NAME": "Løsningstid",
"DESC": "( Gj. sn. )",
"INFO_TEXT": "Total number of conversations used for computation:",
- "TOOLTIP_TEXT": "Resolution Time is %{metricValue} (based on %{conversationCount} conversations)"
+ "TOOLTIP_TEXT": "Resolution Time is {metricValue} (based on {conversationCount} conversations)"
},
"RESOLUTION_COUNT": {
"NAME": "Antall løsninger",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "CSAT Reports",
- "NO_RECORDS": "There are no CSAT survey responses available.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Download CSAT Reports",
"DOWNLOAD_FAILED": "Failed to download CSAT Reports",
"FILTERS": {
+ "ADD_FILTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Søk etter agenter",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Søk blant grupper",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Choose Agents"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Inbox"
+ },
+ "TEAMS": {
+ "LABEL": "Team"
+ },
+ "RATINGS": {
+ "LABEL": "Rating"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Contact",
- "AGENT_NAME": "Assigned agent",
+ "AGENT_NAME": "Agent",
"RATING": "Rating",
- "FEEDBACK_TEXT": "Feedback comment"
- }
+ "FEEDBACK_TEXT": "Feedback comment",
+ "CONVERSATION": "Conversation",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total responses",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Response rate",
"TOOLTIP": "Total number of responses / Total number of CSAT survey messages sent * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Save",
+ "CANCEL": "Avbryt",
+ "SAVING": "Saving...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -442,13 +531,21 @@
"OPEN": "Åpne",
"UNATTENDED": "Unattended",
"UNASSIGNED": "Ikke tildelt",
- "PENDING": "Pending"
+ "PENDING": "Ventende"
},
"CONVERSATION_HEATMAP": {
"HEADER": "Conversation Traffic",
"NO_CONVERSATIONS": "No conversations",
- "CONVERSATION": "%{count} conversation",
- "CONVERSATIONS": "%{count} conversations"
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "No conversations",
+ "CONVERSATION": "{count} conversation",
+ "CONVERSATIONS": "{count} conversations",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversations by agents",
@@ -456,11 +553,23 @@
"NO_AGENTS": "There are no conversations by agents",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OPEN",
+ "OPEN": "Åpne",
"UNATTENDED": "Unattended",
"STATUS": "Satus"
}
},
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Gruppe",
+ "OPEN": "Åpne",
+ "UNATTENDED": "Udeltatt",
+ "STATUS": "Satus"
+ }
+ },
"AGENT_STATUS": {
"HEADER": "Agent status",
"ONLINE": "Pålogget",
@@ -476,5 +585,66 @@
"THURSDAY": "Thursday",
"FRIDAY": "Friday",
"SATURDAY": "Saturday"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Add filter",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Ingen resultater funnet",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Agent navn",
+ "INBOXES": "Navn på innboks",
+ "LABELS": "Etikettens navn",
+ "TEAMS": "Team name"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Inbox",
+ "AGENTS": "Agent",
+ "LABELS": "Label",
+ "TEAMS": "Team"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Conversation",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Antall løsninger",
+ "CONVERSATIONS": "Antall samtaler"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/search.json b/app/javascript/dashboard/i18n/locale/no/search.json
index 19e5f7e95..c418d5ba0 100644
--- a/app/javascript/dashboard/i18n/locale/no/search.json
+++ b/app/javascript/dashboard/i18n/locale/no/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Alle",
+ "ALL": "All results",
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Kontakter",
"CONVERSATIONS": "Samtaler",
- "MESSAGES": "Messages"
+ "MESSAGES": "Messages",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "No %{item} found for query '%{query}'",
- "EMPTY_STATE_FULL": "No results found for query '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ to focus",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Searching",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "No {item} found for query '{query}'",
+ "EMPTY_STATE_FULL": "No results found for query '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/to focus",
"INPUT_PLACEHOLDER": "Type 3 or more characters to search",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Search by conversation id, email, phone number, messages for better search results. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Read more",
+ "READ_LESS": "Read less",
"WROTE": "wrote:",
- "FROM": "fra",
- "EMAIL": "e-post"
+ "FROM": "From",
+ "EMAIL": "E-post",
+ "EMAIL_SUBJECT": "Subject",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Siste 7 dager",
+ "LAST_30_DAYS": "Siste 30 dager",
+ "LAST_60_DAYS": "Siste 60 dager",
+ "LAST_90_DAYS": "Siste 90 dager",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Apply",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Sender",
+ "IN": "Inbox",
+ "AGENTS": "Agenter",
+ "CONTACTS": "Kontakter",
+ "INBOXES": "Innbokser",
+ "NO_AGENTS": "Ingen agenter funnet",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/settings.json b/app/javascript/dashboard/i18n/locale/no/settings.json
index fff2604ef..37370dee5 100644
--- a/app/javascript/dashboard/i18n/locale/no/settings.json
+++ b/app/javascript/dashboard/i18n/locale/no/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Ditt passord er endret",
"AFTER_EMAIL_CHANGED": "Din profil har blitt oppdatert, vennligst logg inn igjen ettersom din innloggingsinformasjon er endret",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Profilbilde",
"ERROR": "Vennligst fiks skjemafeil",
"REMOVE_IMAGE": "Fjern",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Default",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Personal message signature",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Signature saved successfully",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Image size should be less than {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Message Signature",
@@ -54,15 +81,45 @@
"NOTE": "Oppdatering av passordet ditt nullstiller logger deg ut på andre enheter.",
"BTN_TEXT": "Change password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Tilgangstoken",
- "NOTE": "Dette tokenet kan brukes hvis du lager en API-basert integrasjon"
+ "NOTE": "Dette tokenet kan brukes hvis du lager en API-basert integrasjon",
+ "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 Notifications",
- "NOTE": "Enable audio notifications in dashboard for new messages and conversations.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "None",
+ "MINE": "Assigned",
+ "ALL": "Alle",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Alert events:",
+ "TITLE": "Alert events for conversations",
"NONE": "None",
"ASSIGNED": "Assigned Conversations",
"ALL_CONVERSATIONS": "All Conversations"
@@ -74,7 +131,9 @@
"TITLE": "Alert conditions:",
"CONDITION_ONE": "Send audio alerts only if the browser window is not active",
"CONDITION_TWO": "Send alerts every 30s until all the assigned conversations are read"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Read more"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "E-postvarsler",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Send e-postvarsler når en ny samtale opprettes",
"CONVERSATION_MENTION": "Send varsel på e-post når du er nevnt i en samtale",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send e-postvarsler når en ny melding opprettes i en tilordnet samtale",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send email notifications when a new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-post",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Dine varslingsinnstillinger er oppdatert",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Send push-varsler når en ny melding opprettes i en tilordnet samtale",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Send push notifications when a new message is created in a participating conversation",
"HAS_ENABLED_PUSH": "Du har aktivert push-varsler for denne nettleseren.",
- "REQUEST_PUSH": "Aktiver push-varsler"
+ "REQUEST_PUSH": "Aktiver push-varsler",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Profilbilde"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Tilgjengelighet",
- "STATUSES_LIST": [
- "Pålogget",
- "Opptatt",
- "Frakoblet"
- ],
+ "STATUS": {
+ "ONLINE": "Pålogget",
+ "BUSY": "Opptatt",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Endre",
- "CHANGE_ACCOUNTS": "Bytt konto",
- "CONTACT_SUPPORT": "Contact Support",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Velg en konto fra følgende liste",
- "PROFILE_SETTINGS": "Brukerinnstillinger",
- "KEYBOARD_SHORTCUTS": "Keyboard Shortcuts",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Logg ut"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dager gjenværende av prøveperioden.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Account Suspended",
"MESSAGE": "Your account is suspended. Please reach out to the support team for more information."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Last ned",
"UPLOADING": "Laster opp...",
- "INSTAGRAM_STORY_UNAVAILABLE": "This story is no longer available."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Denne historien er ikke lenger tilgjengelig.",
+ "INSTAGRAM_STORY_REPLY": "Replied to your story:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "See on map"
},
"FORM_BUBBLE": {
"SUBMIT": "Send"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Verifiserer...",
@@ -197,17 +295,31 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Currently viewing:",
"SWITCH": "Switch",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Samtaler",
- "INBOX": "Inbox",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "All Conversations",
- "MENTIONED_CONVERSATIONS": "Mentions",
+ "MENTIONED_CONVERSATIONS": "Omtale",
"PARTICIPATING_CONVERSATIONS": "Participating",
"UNATTENDED_CONVERSATIONS": "Unattended",
"REPORTS": "Rapporter",
"SETTINGS": "Innstillinger",
"CONTACTS": "Kontakter",
+ "ACTIVE": "Active",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Innbokser",
+ "CAPTAIN_SETTINGS": "Innstillinger",
"HOME": "Hjem",
"AGENTS": "Agenter",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "New inbox",
"REPORTS_CONVERSATION": "Samtaler",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campaigns",
"ONGOING": "Ongoing",
"ONE_OFF": "One off",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agenter",
"REPORTS_LABEL": "Etiketter",
"REPORTS_INBOX": "Inbox",
"REPORTS_TEAM": "Team",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Set yourself as",
+ "SET_YOUR_AVAILABILITY": "Set your availability",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Overview",
- "FACEBOOK_REAUTHORIZE": "Facebook-tilkoblingen din er utløpt, koble til Facebook-siden din for å fortsette tjenester",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Help Center",
- "ALL_ARTICLES": "All Articles",
- "MY_ARTICLES": "My Articles",
- "DRAFT": "Draft",
- "ARCHIVED": "Archived",
- "CATEGORY": "Category",
- "SETTINGS": "Innstillinger",
- "CATEGORY_EMPTY_MESSAGE": "No categories found"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categories",
+ "LOCALES": "Locales",
+ "SETTINGS": "Innstillinger"
},
+ "CHANNELS": "Kanaler",
"SET_AUTO_OFFLINE": {
"TEXT": "Mark offline automatically",
- "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard."
+ "INFO_TEXT": "Let the system automatically mark you offline when you aren't using the app or dashboard.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Read docs"
+ "DOCS": "Read docs",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funksjoner",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Billing",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Current Plan",
- "PLAN_NOTE": "You are currently subscribed to the **%{plan}** plan with **%{quantity}** licenses"
+ "PLAN_NOTE": "You are currently subscribed to the **{plan}** plan with **{quantity}** licenses",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Manage your subscription",
"DESCRIPTION": "View your previous invoices, edit your billing details, or cancel your subscription.",
"BUTTON_TXT": "Go to the billing portal"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Refresh"
+ },
"CHAT_WITH_US": {
"TITLE": "Need help?",
"DESCRIPTION": "Do you face any issues in billing? We are here to help.",
"BUTTON_TXT": "Chat med oss"
},
- "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again."
+ "NO_BILLING_USER": "Your billing account is being configured. Please refresh the page and try again.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Note:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Avbryt",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Go Back",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Koden er kopiert til utklippstavlen",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Search attributes"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolve conversation",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolve conversation",
+ "CANCEL": "Avbryt"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Yes",
+ "NO": "No"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Uh oh! We could not find any Chatwoot accounts. Please create a new account to continue.",
@@ -294,7 +624,8 @@
"LABEL": "Firmaets navn",
"PLACEHOLDER": "Ola's bedrift"
},
- "SUBMIT": "Send"
+ "SUBMIT": "Send",
+ "CANCEL": "Avbryt"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Go to Reports sidebar",
"MOVE_TO_NEXT_TAB": "Move to next tab in conversation list",
"GO_TO_SETTINGS": "Go to Settings",
- "SWITCH_CONVERSATION_STATUS": "Switch to the next conversation status",
"SWITCH_TO_PRIVATE_NOTE": "Switch to Private Note",
"SWITCH_TO_REPLY": "Switch to Reply",
"TOGGLE_SNOOZE_DROPDOWN": "Toggle snooze dropdown"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priority",
+ "ACTIVE": "Active",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Rediger"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Avbryt"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Satus:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Rediger"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Avbryt"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Beskrivelse:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Add"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Slett",
+ "CANCEL_BUTTON_LABEL": "Avbryt"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/signup.json b/app/javascript/dashboard/i18n/locale/no/signup.json
index 0028ddd43..a86972dec 100644
--- a/app/javascript/dashboard/i18n/locale/no/signup.json
+++ b/app/javascript/dashboard/i18n/locale/no/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Create an account",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Registrer",
"TESTIMONIAL_HEADER": "All it takes is one step to move forward",
"TESTIMONIAL_CONTENT": "You're one step away from engaging your customers, retaining them and finding new ones.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "Bedriftse-postadresse",
- "PLACEHOLDER": "Skriv inn din profesjonelle e-postadresse. F.eks: ola@olasbedrift.no",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Passord",
"PLACEHOLDER": "Passord",
"ERROR": "Passordet er for kort",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Bekreft passord",
"PLACEHOLDER": "Bekreft passord",
- "ERROR": "Passordet stemmer ikke"
+ "ERROR": "Passordet stemmer ikke."
},
"API": {
- "SUCCESS_MESSAGE": "Registrering fullført",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Kunne ikke koble til Woot Server, vennligst prøv igjen senere"
},
"SUBMIT": "Create account",
- "HAVE_AN_ACCOUNT": "Har du allerede en konto?"
+ "HAVE_AN_ACCOUNT": "Har du allerede en konto?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/sla.json b/app/javascript/dashboard/i18n/locale/no/sla.json
index 506b3e5ac..8f8101127 100644
--- a/app/javascript/dashboard/i18n/locale/no/sla.json
+++ b/app/javascript/dashboard/i18n/locale/no/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Det finnes ingen elementer som samsvarer med denne spørringen",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Navn",
- "Beskrivelse",
- "FRT",
- "NRT",
- "RT",
- "Business Hours"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Det oppstod en feil. Prøv igjen"
+ },
+ "CONFIRM": {
+ "TITLE": "Bekreft sletting",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Ja, slett ",
+ "NO": "Nei, behold "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Første svartid",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/no/snooze.json b/app/javascript/dashboard/i18n/locale/no/snooze.json
new file mode 100644
index 000000000..90ccbe0da
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "hours",
+ "DAY": "dag",
+ "DAYS": "days",
+ "WEEK": "week",
+ "WEEKS": "weeks",
+ "MONTH": "month",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "tomorrow",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "next week",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "week",
+ "DAY": "dag"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/no/teamsSettings.json b/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
index 30cf468ca..5234a8cbd 100644
--- a/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/no/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Create new team",
"HEADER": "Teams",
- "SIDEBAR_TXT": "Teams
Teams let you organize your agents into groups based on their responsibilities.
An agent can be part of multiple teams. You can assign conversations to a team when you are working collaboratively.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Søk blant grupper...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "There are no teams created on this account.",
- "EDIT_TEAM": "Edit team"
+ "EDIT_TEAM": "Edit team",
+ "NONE": "None"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Add agents to team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation."
},
- "WIZARD": [
- {
- "title": "Opprett",
- "route": "settings_teams_new",
- "body": "Create a new team of agents."
- },
- {
- "title": "Legg til agenter",
- "route": "settings_teams_add_agents",
- "body": "Add agents to the team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_finish",
- "body": "Klar - ferdig - gå!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Opprett",
+ "BODY": "Create a new team of agents."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Legg til agenter",
+ "BODY": "Add agents to the team."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "BODY": "Klar - ferdig - gå!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Update agents in team",
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. All the added agents will be notified when a conversation is assigned to this team."
},
- "WIZARD": [
- {
- "title": "Team details",
- "route": "settings_teams_edit",
- "body": "Change name, description and other details."
- },
- {
- "title": "Edit Agents",
- "route": "settings_teams_edit_members",
- "body": "Edit agents in your team."
- },
- {
- "title": "Finish",
- "route": "settings_teams_edit_finish",
- "body": "Klar - ferdig - gå!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Team details",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Change name, description and other details."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edit Agents",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edit agents in your team."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Finish",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Klar - ferdig - gå!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Couldn't save the team details. Try again."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "E-POST",
+ "AGENT": "Agent",
+ "EMAIL": "E-post",
"BUTTON_TEXT": "Legg til agenter",
"ADD_AGENTS": "Adding Agents to your Team...",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected."
+ "SELECTED_COUNT": "{selected} out of {total} agents selected."
},
"ADD": {
- "TITLE": "Add agents to team - %{teamName}",
+ "TITLE": "Add agents to team - {teamName}",
"DESC": "Add Agents to your newly created team. This lets you collaborate as a team on conversations, get notified on new events in the same conversation.",
"SELECT": "select",
"SELECT_ALL": "select all agents",
- "SELECTED_COUNT": "%{selected} out of %{total} agents selected.",
+ "SELECTED_COUNT": "{selected} out of {total} agents selected.",
"BUTTON_TEXT": "Legg til agenter",
"AGENT_VALIDATION_ERROR": "Select at least one agent."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Couldn't delete the team. Try again."
},
"CONFIRM": {
- "TITLE": "Are you sure want to delete - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Please type {teamName} to confirm",
"MESSAGE": "Deleting the team will remove the team assignment from the conversations assigned to this team.",
"YES": "Slett ",
diff --git a/app/javascript/dashboard/i18n/locale/no/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/no/whatsappTemplates.json
index bbcf28156..cf28312dc 100644
--- a/app/javascript/dashboard/i18n/locale/no/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/no/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Whatsapp Templates",
- "SUBTITLE": "Select the whatsapp template you want to send",
- "TEMPLATE_SELECTED_SUBTITLE": "Process %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Search Templates",
- "NO_TEMPLATES_FOUND": "No templates found for",
- "LABELS": {
- "LANGUAGE": "Language",
- "TEMPLATE_BODY": "Template Body",
- "CATEGORY": "Category"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variables",
- "VARIABLE_PLACEHOLDER": "Enter %{variable} value",
- "GO_BACK_LABEL": "Go Back",
- "SEND_MESSAGE_LABEL": "Send Message",
- "FORM_ERROR_MESSAGE": "Please fill all variables before sending"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Whatsapp Templates",
+ "SUBTITLE": "Select the whatsapp template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Search Templates",
+ "NO_TEMPLATES_FOUND": "No templates found for",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Category",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Language",
+ "TEMPLATE_BODY": "Template Body",
+ "CATEGORY": "Category"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variables",
+ "LANGUAGE": "Language",
+ "CATEGORY": "Category",
+ "VARIABLE_PLACEHOLDER": "Enter {variable} value",
+ "GO_BACK_LABEL": "Go Back",
+ "SEND_MESSAGE_LABEL": "Send Message",
+ "FORM_ERROR_MESSAGE": "Please fill all variables before sending",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/no/yearInReview.json b/app/javascript/dashboard/i18n/locale/no/yearInReview.json
new file mode 100644
index 000000000..22ec10260
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/no/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Lukk",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "samtaler",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Last ned",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json
index 5b82fb085..c893c1486 100644
--- a/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pl/advancedFilters.json
@@ -18,17 +18,27 @@
"AND": "i",
"OR": "lub"
},
+ "INPUT_PLACEHOLDER": "Enter value",
"OPERATOR_LABELS": {
"equal_to": "Równe",
"not_equal_to": "Nierówne",
- "contains": "Zawiera",
"does_not_contain": "Nie zawiera",
"is_present": "Jest obecny",
"is_not_present": "Nie jest obecny",
"is_greater_than": "Jest większy niż",
"is_less_than": "Jest mniejszy niż",
"days_before": "Jest x dni przed",
- "starts_with": "Zaczyna się od"
+ "starts_with": "Zaczyna się od",
+ "equalTo": "Równe",
+ "notEqualTo": "Nierówne",
+ "contains": "Zawiera",
+ "doesNotContain": "Nie zawiera",
+ "isPresent": "Jest obecny",
+ "isNotPresent": "Nie jest obecny",
+ "isGreaterThan": "Jest większy niż",
+ "isLessThan": "Jest mniejsze niż",
+ "daysBefore": "Jest x dni przed",
+ "startsWith": "Zaczyna się od"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Prawda",
@@ -54,6 +64,12 @@
"CREATED_AT": "Utworzono",
"LAST_ACTIVITY": "Ostatnia aktywność"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Wartość jest wymagana",
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Wartość musi zawierać się w przedziale od 1 do 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Standardowe filtry",
"ADDITIONAL_FILTERS": "Dodatkowe filtry",
diff --git a/app/javascript/dashboard/i18n/locale/pl/agentBots.json b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
index f24852af7..3da5c0723 100644
--- a/app/javascript/dashboard/i18n/locale/pl/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pl/agentBots.json
@@ -2,23 +2,16 @@
"AGENT_BOTS": {
"HEADER": "Boty",
"LOADING_EDITOR": "Ładowanie edytora...",
- "HEADER_BTN_TXT": "Dodaj konfigurację bota",
- "SIDEBAR_TXT": "Boty Agentów
Boty Agentów są jak najwspanialsi członkowie Twojego zespołu. Mogą zajmować się drobnostkami, dzięki czemu Ty możesz skupić się na tym, co naprawdę ważne. Spróbuj ich.
Możesz zarządzać swoimi botami z tej strony lub tworzyć nowe, używając przycisku 'Dodaj konfigurację bota'.
Otwórz podręcznik Botów Agentów w innej karcie, aby uzyskać pomoc.
",
- "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"
+ "DESCRIPTION": "Boty agentów są jak najbardziej fantastyczni członkowie Twojego zespołu. Mogą zajmować się drobnymi sprawami, dzięki czemu Ty możesz skupić się na tym, co naprawdę ważne. Wypróbuj je! Możesz zarządzać swoimi botami z tej strony lub tworzyć nowe za pomocą przycisku 'Dodaj bota'.",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "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 +25,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 +33,23 @@
}
},
"LIST": {
- "404": "Nie znaleziono botów. Możesz stworzyć bota, klikając przycisk 'Konfiguruj nowego bota' ↗",
+ "404": "Nie znaleziono botów. Możesz utworzyć bota klikając przycisk 'Dodaj bota'.",
"LOADING": "Pobieranie botów...",
- "TYPE": "Typ bota"
+ "TABLE_HEADER": {
+ "DETAILS": "Szczegóły bota",
+ "URL": "Adres URL webhooka",
+ "ACTIONS": "Akcje"
+ }
},
"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 +57,61 @@
},
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "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/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
index c5c7bc040..4d27494ca 100644
--- a/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/agentMgmt.json
@@ -3,11 +3,13 @@
"HEADER": "Agenci",
"HEADER_BTN_TXT": "Dodaj agenta",
"LOADING": "Pobieranie listy agentów",
- "SIDEBAR_TXT": "Agenci
Agent jest członkiem Twojego zespołu wsparcia klienta.
Agenci będą mogli przeglądać i odpowiadać na wiadomości od Twoich użytkowników. Lista wyświetla wszystkich agentów aktualnie na Twoim koncie.
Kliknij Dodaj agenta, aby dodać nowego agenta. Dodany przez Ciebie przedstawiciel otrzyma e-mail z linkiem potwierdzającym, aby aktywować swoje konto, po którym będą mogli uzyskać dostęp do Chatwoot i odpowiadać na wiadomości.
Dostęp do funkcji Chatwoot opiera się na następujących rolach.
Agent - Agenci z tą rolą mogą mieć dostęp tylko do skrzynki odbiorczej, raportów i konwersacji. Mogą nadawać rozmowy innym agentom lub sami i rozwiązywać rozmowy.
Administrator - Administrator będzie miał dostęp do wszystkich funkcji Chatwoot włączonych dla Twojego konta, łącznie z ustawieniami, wraz ze wszystkimi uprawnieniami zwykłych agentów.
",
+ "DESCRIPTION": "An agent is a member of your customer support team who can view and respond to user messages. The list below shows all the agents in your account.",
+ "LEARN_MORE": "Learn about user roles",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrator",
"AGENT": "Agent"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Nie ma agentów powiązanych z tym kontem",
"TITLE": "Zarządzaj agentami w zespole",
@@ -17,7 +19,8 @@
"STATUS": "Status",
"ACTIONS": "Akcje",
"VERIFIED": "Zweryfikowano",
- "VERIFICATION_PENDING": "Weryfikacja oczekuje"
+ "VERIFICATION_PENDING": "Weryfikacja oczekuje",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
"TITLE": "Dodaj agenta do swojego zespołu",
@@ -94,6 +97,8 @@
"ERROR_MESSAGE": "Nie można połączyć się z serwerem Woot, proszę spróbować później"
}
},
+ "SEARCH_PLACEHOLDER": "Szukaj agentów...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nie znaleziono wyników."
},
@@ -103,6 +108,9 @@
"AGENT": "Wybierz konsultanta",
"TEAM": "Wybierz zespół"
},
+ "LIST": {
+ "NONE": "Brak"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nie znaleziono agentów",
diff --git a/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
index 1124ecdce..91a9408b5 100644
--- a/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/attributesMgmt.json
@@ -3,7 +3,24 @@
"HEADER": "Atrybuty Niestandardowe",
"HEADER_BTN_TXT": "Dodaj Atrybut Niestandardowy",
"LOADING": "Pobieranie atrybutów niestandardowych",
- "SIDEBAR_TXT": "Atrybuty Niestandardowe
Atrybut niestandardowy śledzi fakty dotyczące twoich kontaktów/rozmów — takie jak plan subskrypcji, czy data pierwszego zamówienia itp.
Aby utworzyć Atrybut Niestandardowy, wystarczy kliknąć na Dodaj Atrybut Niestandardowy. Możesz również edytować lub usunąć istniejący Atrybut Niestandardowy, klikając przycisk Edytuj lub Usuń.
",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Wyszukaj atrybuty...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Rozmowa",
+ "CONTACT": "Kontakt",
+ "COMPANY": "Firma"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Tekst",
+ "NUMBER": "Numer",
+ "LINK": "Link",
+ "DATE": "Date",
+ "LIST": "Lista",
+ "CHECKBOX": "Pole Wyboru"
+ },
"ADD": {
"TITLE": "Dodaj Atrybut Niestandardowy",
"SUBMIT": "Utwórz",
@@ -50,6 +67,10 @@
},
"ENABLE_REGEX": {
"LABEL": "Włącz walidację regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Nie udało się usunąć atrybutu niestandardowego. Spróbuj ponownie."
},
"CONFIRM": {
- "TITLE": "Czy na pewno chcesz usunąć - %{attributeName}",
+ "TITLE": "Czy na pewno chcesz usunąć - {attributeName}",
"PLACE_HOLDER": "Proszę wpisać {attributeName}, aby potwierdzić",
"MESSAGE": "Usunięcie spowoduje usunięcie atrybutu niestandardowego",
"YES": "Usuń ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Atrybuty Niestandardowe",
"CONVERSATION": "Rozmowa",
- "CONTACT": "Kontakt"
+ "CONTACT": "Kontakt",
+ "COMPANY": "Firma"
},
"LIST": {
- "TABLE_HEADER": [
- "Nazwa",
- "Opis",
- "Typ",
- "Klucz"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "DESCRIPTION": "Opis",
+ "TYPE": "Typ",
+ "KEY": "Klucz"
+ },
"BUTTONS": {
"EDIT": "Edytuj",
"DELETE": "Usuń"
@@ -116,6 +138,10 @@
"ENABLE_REGEX": {
"LABEL": "Włącz walidację regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/auditLogs.json b/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
index e6b6649ae..48462730b 100644
--- a/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pl/auditLogs.json
@@ -3,17 +3,19 @@
"HEADER": "Dzienniki Audytu",
"HEADER_BTN_TXT": "Dodaj Dzienniki Audytu",
"LOADING": "Pobieranie Dzienników Audytu",
+ "DESCRIPTION": "Audit Logs maintain a record of activities in your account, allowing you to track and audit your account, team, or services.",
+ "LEARN_MORE": "Learn more about audit logs",
"SEARCH_404": "Brak elementów pasujących do tego zapytania",
"SIDEBAR_TXT": "Dzienniki Audytu
Dzienniki Audytu to ślady działań i zdarzeń w systemie Chatwoot.
",
"LIST": {
"404": "Brak dostępnych Dzienników Audytu na tym koncie.",
"TITLE": "Zarządzaj Dziennikami Audytu",
"DESC": "Dzienniki Audytu to ślady działań i zdarzeń w systemie Chatwoot.",
- "TABLE_HEADER": [
- "Aktywność",
- "Akcja",
- "Adres IP"
- ]
+ "TABLE_HEADER": {
+ "ACTIVITY": "Aktywność",
+ "TIME": "Akcja",
+ "IP_ADDRESS": "Adres IP"
+ }
},
"API": {
"SUCCESS_MESSAGE": "Dzienniki Audytu pobrane pomyślnie",
@@ -21,51 +23,55 @@
},
"DEFAULT_USER": "System",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} dodał nową regułę automatyzacji (#%{id})",
- "EDIT": "%{agentName} zaktualizował regułę automatyzacji (#%{id})",
- "DELETE": "%{agentName} usunął regułę automatyzacji (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} zaprosił %{invitee} do konta jako %{role}",
+ "ADD": "{agentName} zaprosił {invitee} do konta jako {role}",
"EDIT": {
- "SELF": "%{agentName} zmienił swoje %{attributes} na %{values}",
- "OTHER": "%{agentName} zmienił %{attributes} użytkownika %{user} na %{values}"
+ "SELF": "{agentName} zmienił swoje {attributes} na {values}",
+ "OTHER": "{agentName} zmienił {attributes} użytkownika {user} na {values}",
+ "DELETED": "{agentName} changed {attributes} of a deleted user to {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} dodał nową skrzynkę odbiorczą (#%{id})",
- "EDIT": "%{agentName} zaktualizował skrzynkę odbiorczą (#%{id})",
- "DELETE": "%{agentName} usunął skrzynkę odbiorczą (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} dodał nowy webhook (#%{id})",
- "EDIT": "%{agentName} zaktualizował webhook (#%{id})",
- "DELETE": "%{agentName} usunął webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} zalogował się",
- "SIGN_OUT": "%{agentName} wylogował się"
+ "SIGN_IN": "{agentName} zalogował się",
+ "SIGN_OUT": "{agentName} wylogował się"
},
"TEAM": {
- "ADD": "%{agentName} dodał nowy zespół (#%{id})",
- "EDIT": "%{agentName} zaktualizował zespół (#%{id})",
- "DELETE": "%{agentName} usunął zespół (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} utworzył nowe makro (#%{id})",
- "EDIT": "%{agentName} zaktualizował makroinstrukcję (#%{id})",
- "DELETE": "%{agentName} usunął makroinstrukcję (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} dodał %{user} do skrzynki odbiorczej(#%{inbox_id})",
- "REMOVE": "%{agentName} usunął %{user} ze skrzynki odbiorczej(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} dodał %{user} do zespołu(#%{team_id})",
- "REMOVE": "%{agentName} usunął %{user} z zespołu(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} zaktualizował konfigurację konta (#%{id})"
+ "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 26ea565ff..6f058afe5 100644
--- a/app/javascript/dashboard/i18n/locale/pl/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
"HEADER": "Automatyzacja",
- "HEADER_BTN_TXT": "Dodaj regułę automatyzacji",
+ "DESCRIPTION": "Automation can replace and streamline existing processes that require manual effort, such as adding labels and assigning conversations to the most suitable agent. This allows the team to focus on their strengths while reducing time spent on routine tasks.",
+ "LEARN_MORE": "Learn more about automation",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
"LOADING": "Pobieranie reguł automatyzacji",
- "SIDEBAR_TXT": "Reguły automatyzacji
Automatyzacja może zastąpić i zautomatyzować istniejące procesy, które wymagają ręcznego wysiłku. Możesz zrobić wiele rzeczy za pomocą automatyzacji, w tym dodać etykiety i przypisać konwersację do najlepszego agenta. W efekcie zespół skupia się na tym, co robią najlepiej i może poświęcić więcej czasu na zadania wymagające ręcznej obsługi.
",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
"TITLE": "Dodaj regułę automatyzacji",
"SUBMIT": "Stwórz",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nazwa",
- "Opis",
- "Aktywna",
- "Utworzona dnia"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "ACTIVE": "Aktywne",
+ "CREATED_ON": "Utworzona dnia",
+ "ACTIONS": "Akcje"
+ },
"404": "Nie znaleziono reguł automatyzacji"
},
"DELETE": {
@@ -93,7 +97,9 @@
"ACTION": {
"DELETE_MESSAGE": "Musisz mieć co najmniej jedną akcję, aby zapisać",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Wprowadź swoją wiadomość tutaj",
- "TEAM_DROPDOWN_PLACEHOLDER": "Wybierz zespoły"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Wybierz zespoły",
+ "EMAIL_INPUT_PLACEHOLDER": "Enter email",
+ "URL_INPUT_PLACEHOLDER": "Enter URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Aktywuj regułę automatyzacji",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Przesyłanie...",
"LABEL_UPLOADED": "Przesłano pomyślnie",
"LABEL_UPLOAD_FAILED": "Nie udało się przesłać załącznika"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Wartość jest wymagana",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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"
+ },
+ "NONE_OPTION": "Brak",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Rozpoczęcie rozmowy",
+ "CONVERSATION_UPDATED": "Aktualizacja rozmowy",
+ "MESSAGE_CREATED": "Message Created",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversation Opened"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Assign to Agent",
+ "ASSIGN_TEAM": "Assign a Team",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remove Assigned 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",
+ "ADD_PRIVATE_NOTE": "Add a Private Note",
+ "CHANGE_PRIORITY": "Zmień priorytet",
+ "ADD_SLA": "Add SLA",
+ "OPEN_CONVERSATION": "Otwórz rozmowę",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Brak",
+ "LOW": "Niski",
+ "MEDIUM": "Średni",
+ "HIGH": "Wysoki",
+ "URGENT": "Pilne"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Message Type",
+ "PRIVATE_NOTE": "Notatka prywatna",
+ "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",
+ "COMPANY_NAME": "Firma",
+ "REFERER_LINK": "Referrer Link",
+ "ASSIGNEE_NAME": "Assignee",
+ "TEAM_NAME": "Zespół",
+ "PRIORITY": "Priorytet",
+ "LABELS": "Etykiety"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
index 57b683b8a..c2cdd7df9 100644
--- a/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pl/bulkActions.json
@@ -1,12 +1,13 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} wybranych rozmów",
- "AGENT_SELECT_LABEL": "Wybierz konsultanta",
- "ASSIGN_CONFIRMATION_LABEL": "Czy na pewno chcesz przypisać %{conversationCount} %{conversationLabel} do",
- "UNASSIGN_CONFIRMATION_LABEL": "Czy na pewno chcesz odwołać przypisanie %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Powróć",
- "ASSIGN_LABEL": "Przypisz",
+ "CONVERSATIONS_SELECTED": "{conversationCount} wybranych rozmów",
+ "NONE": "Brak",
+ "CLEAR_SELECTION": "Clear",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Tak",
+ "CANCEL": "Anuluj",
+ "SEARCH_INPUT_PLACEHOLDER": "Szukaj",
"ASSIGN_AGENT_TOOLTIP": "Przypisz Agenta",
"ASSIGN_TEAM_TOOLTIP": "Przypisz zespół",
"ASSIGN_SUCCESFUL": "Rozmowy zostały pomyślnie przypisane.",
@@ -14,26 +15,31 @@
"RESOLVE_SUCCESFUL": "Rozmowy zostały pomyślnie zakończone.",
"RESOLVE_FAILED": "Failed to resolve conversations. Please try again.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Zaznaczone rozmowy widoczne na tej stronie.",
- "AGENT_LIST_LOADING": "Ładowanie agentów",
"UPDATE": {
"CHANGE_STATUS": "Zmień status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Uśpienie do następnej odpowiedzi.",
+ "SNOOZE_UNTIL": "Uśpij",
"UPDATE_SUCCESFUL": "Status rozmowy został pomyślnie zaktualizowany.",
"UPDATE_FAILED": "Failed to update conversations. Please try again."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Assign labels",
- "NO_LABELS_FOUND": "Nie znaleziono etykiet dla",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Przypisz wybrane etykiety",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etykiety zostały pomyślnie przypisane.",
- "ASSIGN_FAILED": "Failed to assign labels. Please try again."
+ "ASSIGN_FAILED": "Failed to assign labels. Please try again.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Wybierz zespół",
"NONE": "Brak",
- "NO_TEAMS_AVAILABLE": "Na tym koncie nie dodano jeszcze żadnych zespołów.",
- "ASSIGN_SELECTED_TEAMS": "Przypisz wybrany zespół.",
- "ASSIGN_SUCCESFUL": "Zespoły zostały pomyślnie przypisane.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Teams assigned successfully.",
"ASSIGN_FAILED": "Failed to assign team. Please try again."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/campaign.json b/app/javascript/dashboard/i18n/locale/pl/campaign.json
index 67916aa41..122099cde 100644
--- a/app/javascript/dashboard/i18n/locale/pl/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/pl/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Kampania",
- "SIDEBAR_TXT": "Proactive messages allow customers to send messages to their contacts, leading to more conversations. Click on Add Campaign to create a new campaign. You can also edit or delete existing campaigns by clicking on the Edit or Delete button.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Utwórz kampanię jednorazową",
- "ONGOING": "Utwórz kampanię trwającą"
- },
- "ADD": {
- "TITLE": "Stwórz kampanię",
- "DESC": "Proactive messages allow customers to send messages to their contacts, leading to more conversations.",
- "CANCEL_BUTTON_TEXT": "Anuluj",
- "CREATE_BUTTON_TEXT": "Stwórz",
- "FORM": {
- "TITLE": {
- "LABEL": "Tytuł",
- "PLACEHOLDER": "Wprowadź tytuł kampanii",
- "ERROR": "Tytuł jest wymagany"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Włączone",
+ "DISABLED": "Wyłączone"
},
- "SCHEDULED_AT": {
- "LABEL": "Zaplanowany czas",
- "PLACEHOLDER": "Wybierz czas",
- "CONFIRM": "Potwierdź",
- "ERROR": "Zaplanowany czas jest wymagany"
- },
- "AUDIENCE": {
- "LABEL": "Grupa docelowa",
- "PLACEHOLDER": "Wybierz etykiety klienta",
- "ERROR": "Grupa docelowa jest wymagana"
- },
- "INBOX": {
- "LABEL": "Wybierz skrzynkę",
- "PLACEHOLDER": "Wybierz skrzynkę",
- "ERROR": "Skrzynka jest wymagana"
- },
- "MESSAGE": {
- "LABEL": "Wiadomość",
- "PLACEHOLDER": "Wprowadź treść wiadomości dla kampanii",
- "ERROR": "Wiadomość jest wymagana"
- },
- "SENT_BY": {
- "LABEL": "Wysłane przez",
- "PLACEHOLDER": "Wybierz nadawcę kampanii",
- "ERROR": "Nadawca jest wymagany"
- },
- "END_POINT": {
- "LABEL": "Adres URL",
- "PLACEHOLDER": "Wprowadź adres URL",
- "ERROR": "Wprowadź poprawny adres URL"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Czas na stronie (w sekundach)",
- "PLACEHOLDER": "Wprowadź czas",
- "ERROR": "Czas na stronie jest wymagany"
- },
- "ENABLED": "Włącz kampanię",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Wyzwalaj tylko w godzinach pracy",
- "SUBMIT": "Dodaj kampanię"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Wysłane przez",
+ "BOT": "Bot",
+ "FROM": "od",
+ "URL": "Adres URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Kampania została pomyślnie utworzona",
- "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Anuluj",
+ "CREATE_BUTTON_TEXT": "Stwórz",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tytuł",
+ "PLACEHOLDER": "Wprowadź tytuł kampanii",
+ "ERROR": "Tytuł jest wymagany"
+ },
+ "MESSAGE": {
+ "LABEL": "Wiadomość",
+ "PLACEHOLDER": "Wprowadź treść wiadomości dla kampanii",
+ "ERROR": "Wiadomość jest wymagana"
+ },
+ "INBOX": {
+ "LABEL": "Wybierz skrzynkę odbiorczą",
+ "PLACEHOLDER": "Wybierz skrzynkę odbiorczą",
+ "ERROR": "Skrzynka jest wymagana"
+ },
+ "SENT_BY": {
+ "LABEL": "Wysłane przez",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "Nadawca jest wymagany"
+ },
+ "END_POINT": {
+ "LABEL": "Adres URL",
+ "PLACEHOLDER": "Wprowadź adres URL",
+ "ERROR": "Wprowadź poprawny adres URL"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Czas na stronie (w sekundach)",
+ "PLACEHOLDER": "Wprowadź czas",
+ "ERROR": "Czas na stronie jest wymagany"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Włącz kampanię",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Wyzwalaj tylko w godzinach pracy"
+ },
+ "BUTTONS": {
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Usuń",
- "CONFIRM": {
- "TITLE": "Potwierdź usunięcie",
- "MESSAGE": "Czy na pewno chcesz usunąć?",
- "YES": "Tak, usuń ",
- "NO": "Nie, zachowaj "
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Zakończone",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Anuluj",
+ "CREATE_BUTTON_TEXT": "Stwórz",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tytuł",
+ "PLACEHOLDER": "Wprowadź tytuł kampanii",
+ "ERROR": "Tytuł jest wymagany"
+ },
+ "MESSAGE": {
+ "LABEL": "Wiadomość",
+ "PLACEHOLDER": "Wprowadź treść wiadomości dla kampanii",
+ "ERROR": "Wiadomość jest wymagana"
+ },
+ "INBOX": {
+ "LABEL": "Wybierz skrzynkę odbiorczą",
+ "PLACEHOLDER": "Wybierz skrzynkę odbiorczą",
+ "ERROR": "Skrzynka jest wymagana"
+ },
+ "AUDIENCE": {
+ "LABEL": "Grupa docelowa",
+ "PLACEHOLDER": "Wybierz etykiety klienta",
+ "ERROR": "Grupa docelowa jest wymagana"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Zaplanowany czas",
+ "PLACEHOLDER": "Wybierz czas",
+ "ERROR": "Zaplanowany czas jest wymagany"
+ },
+ "BUTTONS": {
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Zakończone",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Anuluj",
+ "CREATE_BUTTON_TEXT": "Stwórz",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tytuł",
+ "PLACEHOLDER": "Wprowadź tytuł kampanii",
+ "ERROR": "Tytuł jest wymagany"
+ },
+ "INBOX": {
+ "LABEL": "Wybierz skrzynkę odbiorczą",
+ "PLACEHOLDER": "Wybierz skrzynkę odbiorczą",
+ "ERROR": "Skrzynka jest wymagana"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Przetwarzanie {templateName}",
+ "LANGUAGE": "Język",
+ "CATEGORY": "Kategoria",
+ "VARIABLES_LABEL": "Zmienne",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Grupa docelowa",
+ "PLACEHOLDER": "Wybierz etykiety klienta",
+ "ERROR": "Grupa docelowa jest wymagana"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Zaplanowany czas",
+ "PLACEHOLDER": "Wybierz czas",
+ "ERROR": "Zaplanowany czas jest wymagany"
+ },
+ "BUTTONS": {
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Czy na pewno chcesz usunąć?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Usuń",
"API": {
"SUCCESS_MESSAGE": "Kampania została pomyślnie usunięta",
- "ERROR_MESSAGE": "Nie udało się usunąć kampanii. Spróbuj ponownie później."
+ "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie."
}
- },
- "EDIT": {
- "TITLE": "Edytuj kampanię",
- "UPDATE_BUTTON_TEXT": "Aktualizuj",
- "API": {
- "SUCCESS_MESSAGE": "Kampania została pomyślnie zaktualizowana",
- "ERROR_MESSAGE": "Wystąpił błąd. Spróbuj ponownie"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Wczytywanie kampanii...",
- "404": "Brak stworzonych kampanii dla tej skrzynki odbiorczej.",
- "TABLE_HEADER": {
- "TITLE": "Tytuł",
- "MESSAGE": "Wiadomość",
- "INBOX": "Skrzynka odbiorcza",
- "STATUS": "Status",
- "SENDER": "Nadawca",
- "URL": "Adres URL",
- "SCHEDULED_AT": "Zaplanowany czas",
- "TIME_ON_PAGE": "Czas na stronie",
- "CREATED_AT": "Utworzono"
- },
- "BUTTONS": {
- "ADD": "Dodaj",
- "EDIT": "Edytuj",
- "DELETE": "Usuń"
- },
- "STATUS": {
- "ENABLED": "Włączone",
- "DISABLED": "Wyłączone",
- "COMPLETED": "Zakończone",
- "ACTIVE": "Aktywne"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Kampanie jednorazowe",
- "404": "Brak stworzonych kampanii jednorazowych",
- "INBOXES_NOT_FOUND": "Proszę utworzyć skrzynkę SMS i zacząć dodawać kampanie"
- },
- "ONGOING": {
- "HEADER": "Kampanie bieżące",
- "404": "Nie utworzono żadnych bieżących kampanii",
- "INBOXES_NOT_FOUND": "Utwórz skrzynkę odbiorczą witryny i zacznij dodawać kampanie"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
index ef4e2ce5d..3db8ce741 100644
--- a/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
"HEADER": "Przygotowane odpowiedzi",
+ "LEARN_MORE": "Learn more about canned responses",
+ "DESCRIPTION": "Canned Responses are pre-written reply templates that help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a canned response during a conversation. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Add canned response",
"LOADING": "Fetching canned responses...",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
"SEARCH_404": "Brak wyników pasujących do wyszukiwania.",
- "SIDEBAR_TXT": "Canned Responses
Canned Responses are pre-written reply templates that help you quickly respond to a conversation. To insert a canned response during a chat, agents can type a short code preceded by a '/' character.
You can manage your canned responses from this page or create new ones using the \"Add canned response\" button.
Open the Canned Responses handbook in another tab for a helping hand.
Also, check out the all-new Canned Responses Library.
",
"LIST": {
"404": "Brak dostępnych Gotowych odpowiedzi na tym koncie.",
"TITLE": "Zarządzaj Gotowymi odpowiedziami",
"DESC": "Canned Responses are predefined reply templates which can be used to quickly send out replies to conversations.",
- "TABLE_HEADER": [
- "Short code",
- "Zawartość",
- "Akcje"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Short code",
+ "CONTENT": "Zawartość",
+ "ACTIONS": "Akcje"
+ }
},
"ADD": {
"TITLE": "Add canned response",
diff --git a/app/javascript/dashboard/i18n/locale/pl/chatlist.json b/app/javascript/dashboard/i18n/locale/pl/chatlist.json
index 636daf6cf..e957bac03 100644
--- a/app/javascript/dashboard/i18n/locale/pl/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pl/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "W tej grupie nie ma aktywnych konwersacji."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Rozmowy",
"MENTION_HEADING": "Wzmianki",
"UNATTENDED_HEADING": "Nieobsługiwane",
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Pending Response: Shortest first"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -93,8 +97,17 @@
"location": {
"CONTENT": "Lokalizacja"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
"CONTENT": "udostępnił adres URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -126,6 +139,8 @@
"NO_CONTENT": "Brak treści",
"HIDE_QUOTED_TEXT": "Ukryj cytat",
"SHOW_QUOTED_TEXT": "Pokaż cytat",
- "MESSAGE_READ": "Przeczytane"
+ "MESSAGE_READ": "Przeczytane",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/companies.json b/app/javascript/dashboard/i18n/locale/pl/companies.json
new file mode 100644
index 000000000..8eedccc18
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Sortuj według",
+ "OPTIONS": {
+ "NAME": "Imię",
+ "DOMAIN": "Domena",
+ "CREATED_AT": "Data utworzenia",
+ "LAST_ACTIVITY_AT": "Ostatnia aktywność",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Kontakty",
+ "HISTORY": "History",
+ "NOTES": "Notatki"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Wyszukaj atrybuty...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Ładowanie kontaktów...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Firma",
+ "CONTACT_LABEL": "Kontakt",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Anuluj"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Imię",
+ "DOMAIN": "Domena"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/components.json b/app/javascript/dashboard/i18n/locale/pl/components.json
new file mode 100644
index 000000000..8ba2c3668
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} of {totalPages} pages"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Brak wyników.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} more"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Brak wyników.",
+ "SEARCHING": "Wyszukiwanie..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Anuluj",
+ "CONFIRM": "Potwierdź"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Wybierz kod kraju z listy"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Author is not available"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Dowiedz się więcej",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutes",
+ "HOURS": "Hours",
+ "DAYS": "Days",
+ "PLACEHOLDER": "Enter duration"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Coming Soon!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/contact.json b/app/javascript/dashboard/i18n/locale/pl/contact.json
index 7cf08e246..128ffb4ff 100644
--- a/app/javascript/dashboard/i18n/locale/pl/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pl/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Adres IP",
"CREATED_AT_LABEL": "Utworzono",
"NEW_MESSAGE": "Nowa wiadomość",
+ "CALL": "Call",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Brak wcześniejszych rozmów z tym kontaktem.",
"TITLE": "Poprzednie rozmowy"
@@ -48,7 +57,8 @@
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Niestandardowe atrybuty",
"CONTACT_LABELS": "Etykiety kontaktu",
- "PREVIOUS_CONVERSATIONS": "Poprzednie rozmowy"
+ "PREVIOUS_CONVERSATIONS": "Poprzednie rozmowy",
+ "NO_RECORDS_FOUND": "Brak wyników"
}
},
"EDIT_CONTACT": {
@@ -56,45 +66,6 @@
"TITLE": "Edytuj kontakt",
"DESC": "Edytuj dane kontaktowe"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Utwórz kontakt",
- "TITLE": "Utwórz nowy kontakt",
- "DESC": "Dodaj informacje o kontakcie"
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importuj",
- "TITLE": "Importuj kontakty",
- "DESC": "Importuj kontakty z pliku CSV.",
- "DOWNLOAD_LABEL": "Pobierz przykładowy plik CSV",
- "FORM": {
- "LABEL": "Plik CSV",
- "SUBMIT": "Importuj",
- "CANCEL": "Anuluj"
- },
- "SUCCESS_MESSAGE": "Otrzymasz powiadomienie e-mailem, gdy import zostanie zakończony.",
- "ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Eksportuj",
- "TITLE": "Eksportuj kontakty",
- "DESC": "Eksportuj kontakty do pliku CSV",
- "SUCCESS_MESSAGE": "Eksportowanie w toku, otrzymasz powiadomienie e-mailem, gdy plik będzie gotowy do pobrania.",
- "ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie",
- "CONFIRM": {
- "TITLE": "Eksportuj kontakty",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Potwierdź usunięcie",
- "MESSAGE": "Czy na pewno chcesz usunąć tę notatkę?",
- "YES": "Tak, usuń",
- "NO": "Nie, anuluj"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Usuń kontakt",
"TITLE": "Usuń kontakt",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Kontakty",
- "FIELDS": "Pola kontaktu",
- "SEARCH_BUTTON": "Szukaj",
- "SEARCH_INPUT_PLACEHOLDER": "Wyszukaj kontakty",
- "FILTER_CONTACTS": "Filtruj",
- "FILTER_CONTACTS_SAVE": "Zapisz filtr",
- "FILTER_CONTACTS_DELETE": "Usuń filtr",
- "FILTER_CONTACTS_EDIT": "Edytuj segment",
"LIST": {
- "LOADING_MESSAGE": "Ładowanie kontaktów...",
- "404": "Brak kontaktów pasujących do wyszukiwania 🔍",
- "NO_CONTACTS": "Brak dostępnych kontaktów",
"TABLE_HEADER": {
- "NAME": "Nazwisko",
- "PHONE_NUMBER": "Numer telefonu",
- "CONVERSATIONS": "Rozmowy",
- "LAST_ACTIVITY": "Ostatnia aktywność",
- "CREATED_AT": "Utworzono",
- "COUNTRY": "Kraj",
- "CITY": "Miasto",
- "SOCIAL_PROFILES": "Profile społecznościowe",
- "COMPANY": "Firma",
- "EMAIL_ADDRESS": "Adres e-mail"
- },
- "VIEW_DETAILS": "Zobacz szczegóły"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Kontakty",
- "LOADING": "Wczytywanie profilu kontaktu..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Dodaj",
- "TITLE": "Shift + Enter, aby dodać przypomnienie"
- },
- "FOOTER": {
- "DUE_DATE": "Data wykonania",
- "LABEL_TITLE": "Ustaw typ"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Pobieranie notatek...",
- "NOT_AVAILABLE": "Brak dostępnych notatek dla tego kontaktu",
- "HEADER": {
- "TITLE": "Notatki"
- },
- "LIST": {
- "LABEL": "dodana notatka"
- },
- "ADD": {
- "BUTTON": "Dodaj",
- "PLACEHOLDER": "Dodaj notatkę",
- "TITLE": "Shift + Enter, aby dodać notatkę"
- },
- "CONTENT_HEADER": {
- "DELETE": "Usuń notatkę"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Aktywności"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "Notatki",
- "PILL_BUTTON_EVENTS": "Wydarzenia",
- "PILL_BUTTON_CONVO": "Rozmowy"
+ "SOCIAL_PROFILES": "Profile społecznościowe"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Dodaj atrybuty",
"BUTTON": "Dodaj niestandardowy atrybut",
- "NOT_AVAILABLE": "Brak dostępnych niestandardowych atrybutów dla tego kontaktu.",
"COPY_SUCCESSFUL": "Skopiowano pomyślnie",
+ "SHOW_MORE": "Show all attributes",
+ "SHOW_LESS": "Show less attributes",
"ACTIONS": {
"COPY": "Kopiuj atrybut",
"DELETE": "Usuń atrybut",
@@ -363,11 +271,11 @@
},
"SUMMARY": {
"TITLE": "Podsumowanie",
- "DELETE_WARNING": "Kontakt %{primaryContactName} zostanie usunięty.",
- "ATTRIBUTE_WARNING": "Dane kontaktowe z %{primaryContactName} zostaną skopiowane do %{parentContactName}."
+ "DELETE_WARNING": "Kontakt {primaryContactName} zostanie usunięty.",
+ "ATTRIBUTE_WARNING": "Dane kontaktowe z {primaryContactName} zostaną skopiowane do {parentContactName}."
},
"SEARCH": {
- "ERROR": "Błąd"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": "Połącz kontakty",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Kontakty zostały pomyślnie połączone",
"ERROR_MESSAGE": "Nie można połączyć kontaktów. Spróbuj ponownie!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Kontakty",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Active contacts",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Wiadomość",
+ "SEND_MESSAGE": "Wyślij wiadomość",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Kontakty"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Add contact",
+ "EXPORT_CONTACT": "Export contacts",
+ "IMPORT_CONTACT": "Import contacts",
+ "SAVE_CONTACT": "Save contact",
+ "EMAIL_ADDRESS_DUPLICATE": "Ten adres e-mail jest już używany przez inny kontakt.",
+ "PHONE_NUMBER_DUPLICATE": "Ten numer telefonu jest już zajęty przez inny kontakt.",
+ "SUCCESS_MESSAGE": "Kontakt został pomyślnie zapisany",
+ "ERROR_MESSAGE": "Unable to save contact. Please try again later."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "This contact is blocked successfully",
+ "BLOCK_ERROR_MESSAGE": "Unable to block contact. Please try again later.",
+ "UNBLOCK_SUCCESS_MESSAGE": "This contact is unblocked successfully",
+ "UNBLOCK_ERROR_MESSAGE": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importuj kontakty z pliku CSV.",
+ "DOWNLOAD_LABEL": "Pobierz przykładowy plik CSV",
+ "LABEL": "Plik CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Zmień dostępność",
+ "CANCEL": "Anuluj",
+ "IMPORT": "Importuj",
+ "SUCCESS_MESSAGE": "Otrzymasz powiadomienie e-mailem, gdy import zostanie zakończony.",
+ "ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie"
+ },
+ "EXPORT_CONTACT": {
+ "TITLE": "Export contacts",
+ "DESCRIPTION": "Quickly export a csv file with comprehensive details of your contacts",
+ "CONFIRM": "Eksportuj",
+ "SUCCESS_MESSAGE": "Eksportowanie w toku, otrzymasz powiadomienie e-mailem, gdy plik będzie gotowy do pobrania.",
+ "ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie"
+ },
+ "SORT_BY": {
+ "LABEL": "Sortuj według",
+ "OPTIONS": {
+ "NAME": "Imię",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Numer telefonu",
+ "COMPANY": "Firma",
+ "COUNTRY": "Kraj",
+ "CITY": "Miasto",
+ "LAST_ACTIVITY": "Ostatnia aktywność",
+ "CREATED_AT": "Data utworzenia"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Czy chcesz zapisać ten filtr?",
+ "CONFIRM": "Zapisz filtr",
+ "LABEL": "Imię",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Potwierdź usunięcie",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Tak, usuń",
+ "CANCEL": "No, Cancel",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Imię",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Numer telefonu",
+ "IDENTIFIER": "Identyfikator",
+ "COUNTRY": "Kraj",
+ "CITY": "Miasto",
+ "COMPANY": "Firma",
+ "CREATED_AT": "Data utworzenia",
+ "LAST_ACTIVITY": "Ostatnia aktywność",
+ "REFERER_LINK": "Link odsyłający",
+ "BLOCKED": "Blocked",
+ "BLOCKED_TRUE": "Prawda",
+ "BLOCKED_FALSE": "Fałsz",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Wyczyść filtry",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Zastosuj filtry",
+ "ADD_FILTER": "Dodaj filtr"
+ },
+ "TITLE": "Filtruj kontakty",
+ "EDIT_SEGMENT": "Edytuj segment",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Wyczyść filtry"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Zobacz szczegóły",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Edytuj dane kontaktowe",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "Ten adres e-mail jest już używany przez inny kontakt."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Enter the phone number",
+ "DUPLICATE": "Ten numer telefonu jest już zajęty przez inny kontakt."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Wprowadź nazwę miasta"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Wprowadź nazwę firmy"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "This action is permanent and irreversible.",
+ "BUTTON": "Delete now"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Usuń kontakt",
+ "DELETE_DIALOG": {
+ "TITLE": "Potwierdź usunięcie",
+ "DESCRIPTION": "Are you sure you want to delete this contact?",
+ "CONFIRM": "Tak, usuń",
+ "API": {
+ "SUCCESS_MESSAGE": "Kontakt został pomyślnie usunięty",
+ "ERROR_MESSAGE": "Nie można usunąć kontaktu. Spróbuj ponownie później."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Awatar został pomyślnie usunięty",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notatki",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Brak wcześniejszych rozmów z tym kontaktem"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Tak",
+ "NO": "Nie",
+ "TRIGGER": {
+ "SELECT": "Wybierz wartość",
+ "INPUT": "Enter value"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "Wymagana jest prawidłowa wartość",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "Nieprawidłowy adres URL",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Brak wyników",
+ "API": {
+ "SUCCESS_MESSAGE": "Pomyślnie zaktualizowano atrybut",
+ "DELETE_SUCCESS_MESSAGE": "Pomyślnie usunięto atrybut",
+ "UPDATE_ERROR": "Nie można zaktualizować atrybutu. Spróbuj ponownie później.",
+ "DELETE_ERROR": "Nie można usunąć atrybutu. Spróbuj ponownie później."
+ }
+ },
+ "MERGE": {
+ "TITLE": "Połącz kontakty",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Główny kontakt",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Usunięcie",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Wyszukaj kontakty",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Kontakty zostały pomyślnie połączone",
+ "ERROR_MESSAGE": "Nie można połączyć kontaktów. Spróbuj ponownie!",
+ "IS_SEARCHING": "Wyszukiwanie...",
+ "BUTTONS": {
+ "CANCEL": "Anuluj",
+ "CONFIRM": "Połącz kontakty"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Dodaj notatkę",
+ "WROTE": "napisał/a",
+ "YOU": "You",
+ "SAVE": "Save note",
+ "ADD_NOTE": "Add contact 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.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "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": "Brak kontaktów pasujących do wyszukiwania 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "No contacts are active at the moment 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Przypisz etykiety",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etykiety zostały pomyślnie przypisane.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Select all ({count})",
+ "DELETE_CONTACTS": "Usuń",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Usuń kontakt"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Widok",
+ "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": "Do:",
+ "TAG_INPUT_PLACEHOLDER": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Temat :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Wpisz swoją wiadomość tutaj..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Zmienne",
+ "BACK": "Powróć",
+ "SEND_MESSAGE": "Wyślij wiadomość"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Powróć",
+ "SEND_MESSAGE": "Wyślij wiadomość"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/contactFilters.json b/app/javascript/dashboard/i18n/locale/pl/contactFilters.json
index bfd473a84..98765d1b3 100644
--- a/app/javascript/dashboard/i18n/locale/pl/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pl/contactFilters.json
@@ -30,6 +30,9 @@
"is_lesser_than": "Jest mniejsze niż",
"days_before": "Jest x dni przed"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Wartość jest wymagana"
+ },
"ATTRIBUTES": {
"NAME": "Nazwa",
"EMAIL": "E-mail",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Pole wyboru niestandardowe",
"CREATED_AT": "Utworzono",
"LAST_ACTIVITY": "Ostatnia aktywność",
- "REFERER_LINK": "Link referencyjny"
+ "REFERER_LINK": "Link referencyjny",
+ "BLOCKED": "Blocked",
+ "LABELS": "Etykiety"
},
"GROUPS": {
"STANDARD_FILTERS": "Filtry standardowe",
diff --git a/app/javascript/dashboard/i18n/locale/pl/contentTemplates.json b/app/javascript/dashboard/i18n/locale/pl/contentTemplates.json
new file mode 100644
index 000000000..5ecb6250c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Wyszukaj szablony",
+ "NO_TEMPLATES_FOUND": "Nie znaleziono szablonów dla",
+ "NO_CONTENT": "No content",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Język",
+ "TEMPLATE_BODY": "Treść szablonu",
+ "CATEGORY": "Kategoria"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Tekst"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Zmienne",
+ "LANGUAGE": "Język",
+ "CATEGORY": "Kategoria",
+ "VARIABLE_PLACEHOLDER": "Wprowadź wartość {variable}",
+ "GO_BACK_LABEL": "Powrót",
+ "SEND_MESSAGE_LABEL": "Wyślij wiadomość",
+ "FORM_ERROR_MESSAGE": "Proszę wypełnić wszystkie zmienne przed wysłaniem",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Powrót",
+ "SEND_MESSAGE_BUTTON": "Wyślij wiadomość"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/conversation.json b/app/javascript/dashboard/i18n/locale/pl/conversation.json
index c3b01572d..d7767fcdf 100644
--- a/app/javascript/dashboard/i18n/locale/pl/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pl/conversation.json
@@ -12,6 +12,8 @@
"NO_INBOX_2": " aby rozpocząć",
"NO_INBOX_AGENT": "Uh Oh! Wygląda na to, że nie jesteś częścią żadnej skrzynki odbiorczej. Skontaktuj się z administratorem",
"SEARCH_MESSAGES": "Szukaj wiadomości w konwersacjach",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "to open command menu",
"KEYBOARD_SHORTCUTS": "to view keyboard shortcuts"
@@ -30,41 +32,97 @@
"LOADING_CONVERSATIONS": "Ładowanie konwersacji",
"CANNOT_REPLY": "Nie możesz odpowiedzieć z powodu",
"24_HOURS_WINDOW": "Ograniczenie 24-godzinnego okna wiadomości",
+ "48_HOURS_WINDOW": "ograniczenia 48-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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
"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",
"UNKNOWN_FILE_TYPE": "Nieznany plik",
- "SAVE_CONTACT": "Zapisz",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} rozpoczął spotkanie"
+ },
"UPLOADING_ATTACHMENTS": "Przesyłanie załączników...",
"REPLIED_TO_STORY": "Odpowiedziałeś na swoją historię",
- "UNSUPPORTED_MESSAGE": "This message is unsupported.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "This message is unsupported. You can view this message on the Facebook Messenger app.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "This message is unsupported. You can view this message on the Instagram app.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Wiadomość usunięta pomyślnie",
"FAIL_DELETE_MESSSAGE": "Nie można usunąć wiadomości! Spróbuj ponownie",
"NO_RESPONSE": "Brak odpowiedzi",
+ "RESPONSE": "Response",
"RATING_TITLE": "Ocena",
"FEEDBACK_TITLE": "Opinia",
"REPLY_MESSAGE_NOT_FOUND": "Message not available",
"CARD": {
"SHOW_LABELS": "Pokaż etykiety",
- "HIDE_LABELS": "Ukryj etykiety"
+ "HIDE_LABELS": "Ukryj etykiety",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Rozwiąż",
"REOPEN_ACTION": "Otwórz ponownie",
"OPEN_ACTION": "Otwórz",
+ "MORE_ACTIONS": "More actions",
"OPEN": "Więcej",
"CLOSE": "Zamknij",
"DETAILS": "szczegóły",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Uśpione do",
"SNOOZED_UNTIL_TOMORROW": "Uśpij do jutra",
"SNOOZED_UNTIL_NEXT_WEEK": "Uśpione do następnego tygodnia",
- "SNOOZED_UNTIL_NEXT_REPLY": "Uśpione do następnej odpowiedzi"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Uśpione do następnej odpowiedzi",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Oznacz jako oczekujące",
@@ -76,6 +134,10 @@
"NEXT_WEEK": "Następny tydzień"
}
},
+ "MENTION": {
+ "AGENTS": "Agenci",
+ "TEAMS": "Zespoły"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Uśpij do",
"APPLY": "Uśpij",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Brak",
"INPUT_PLACEHOLDER": "Wybierz priorytet",
"NO_RESULTS": "Brak wyników",
- "SUCCESSFUL": "Zmieniono priorytet konwersacji o identyfikatorze %{conversationId} na %{priority}",
+ "SUCCESSFUL": "Zmieniono priorytet konwersacji o identyfikatorze {conversationId} na {priority}",
"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",
"MARK_AS_UNREAD": "Oznacz jako nieprzeczytane",
+ "MARK_AS_READ": "Mark as read",
"REOPEN": "Otwórz ponownie",
"SNOOZE": {
"TITLE": "Uśpij",
@@ -113,17 +181,25 @@
"ASSIGN_LABEL": "Przypisz etykietę",
"AGENTS_LOADING": "Ładowanie agentów...",
"ASSIGN_TEAM": "Przypisz zespół",
+ "DELETE": "Delete conversation",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Konwersacja o identyfikatorze %{conversationId} przypisana do \"%{agentName}\"",
+ "SUCCESFUL": "Konwersacja o identyfikatorze {conversationId} przypisana do \"{agentName}\"",
"FAILED": "Nie można przypisać agenta. Spróbuj ponownie."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Przypisano etykietę #%{labelName} do konwersacji o identyfikatorze %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Nie można przypisać etykiety. Spróbuj ponownie."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Przypisano zespół \"%{team}\" do konwersacji o identyfikatorze %{conversationId}",
+ "SUCCESFUL": "Przypisano zespół \"{team}\" do konwersacji o identyfikatorze {conversationId}",
"FAILED": "Nie można przypisać zespołu. Spróbuj ponownie."
}
}
@@ -134,8 +210,13 @@
"DISABLE_SIGN_TOOLTIP": "Wyłącz podpis",
"MSG_INPUT": "Shift + enter dla nowej linii. Zacznij od '/' aby wybrać Gotową odpowiedź.",
"PRIVATE_MSG_INPUT": "Shift + enter dla nowej linii. Będzie widoczne tylko dla agentów",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "Podpis wiadomości nie jest skonfigurowany, należy go skonfigurować w ustawieniach profilu.",
- "CLICK_HERE": "Kliknij tutaj, aby zaktualizować"
+ "COPILOT_MSG_INPUT": "Podaj copilota dodatkowe wskazówki lub zapytaj o cokolwiek... Naciśnij Enter, aby wysłać odpowiedź uzupełniającą",
+ "CLICK_HERE": "Kliknij tutaj, aby zaktualizować",
+ "WHATSAPP_TEMPLATES": "Szablony WhatsApp"
},
"REPLYBOX": {
"REPLY": "Odpowiedz",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Czytaj więcej",
"DISMISS_REPLY": "Dismiss reply",
"REPLYING_TO": "Replying to:",
- "TIP_FORMAT_ICON": "Pokaż zaawansowany edytor",
"TIP_EMOJI_ICON": "Pokaż selektor emotikonek",
"TIP_ATTACH_ICON": "Dołącz pliki",
"TIP_AUDIORECORDER_ICON": "Nagrywaj audio",
"TIP_AUDIORECORDER_PERMISSION": "Zezwól na dostęp do dźwięku",
"TIP_AUDIORECORDER_ERROR": "Nie można otworzyć dźwięku",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Przeciągnij i upuść tutaj, aby dołączyć",
"START_AUDIO_RECORDING": "Rozpocznij nagrywanie audio",
"STOP_AUDIO_RECORDING": "Zatrzymaj nagrywanie audio",
- "": "",
+ "COPILOT_THINKING": "Copilot myśli",
"EMAIL_HEAD": {
"TO": "DO",
"ADD_BCC": "Dodaj Bcc",
@@ -176,6 +257,13 @@
"YES": "Wyślij",
"CANCEL": "Anuluj"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
"VISIBLE_TO_AGENTS": "Prywatna uwaga: widoczne tylko dla Ciebie i Twojego zespołu",
@@ -186,10 +274,15 @@
"ASSIGN_LABEL_SUCCESFUL": "Etykieta przypisana pomyślnie",
"ASSIGN_LABEL_FAILED": "Nie udało się przypisać etykiety",
"CHANGE_TEAM": "Zmieniono przypisany zespół konwersacji",
- "FILE_SIZE_LIMIT": "Plik przekracza limit rozmiaru załącznika %{MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "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",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Nie można wysłać tej wiadomości, spróbuj ponownie później",
"SENT_BY": "Wysłane przez:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Nie można wysłać wiadomości! Spróbuj ponownie",
"TRY_AGAIN": "spróbuj ponownie",
"ASSIGNMENT": {
@@ -211,6 +304,25 @@
"DELETE": "Usuń",
"CANCEL": "Anuluj"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Kontakt",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Odrzuć",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Anuluj",
"SEND_EMAIL_SUCCESS": "Transkrypt rozmowy został pomyślnie wysłany",
"SEND_EMAIL_ERROR": "Wystąpił błąd, spróbuj ponownie",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
"SEND_TO_CONTACT": "Wyślij transkrypt do klienta",
"SEND_TO_AGENT": "Wyślij transkrypt do przypisanego agenta",
@@ -231,27 +344,31 @@
}
},
"ONBOARDING": {
- "TITLE": "Cześć 👋, Witamy w %{installationName}!",
- "DESCRIPTION": "Dziękujemy za rejestrację. Chcemy, abyś jak najlepiej skorzystał z %{installationName}. Oto kilka rzeczy, które możesz spróbować, aby zapewnić sobie jak najlepsze doświadczenie z %{installationName}.",
+ "TITLE": "Cześć 👋, Witamy w {installationName}!",
+ "DESCRIPTION": "Dziękujemy za rejestrację. Chcemy, abyś jak najlepiej skorzystał z {installationName}. Oto kilka rzeczy, które możesz spróbować, aby zapewnić sobie jak najlepsze doświadczenie z {installationName}.",
+ "GREETING_MORNING": "👋 Good morning, {name}. Welcome to {installationName}.",
+ "GREETING_AFTERNOON": "👋 Good afternoon, {name}. Welcome to {installationName}.",
+ "GREETING_EVENING": "👋 Good evening, {name}. Welcome to {installationName}.",
"READ_LATEST_UPDATES": "Przeczytaj najnowsze aktualizacje",
"ALL_CONVERSATION": {
"TITLE": "Wszystkie Twoje konwersacje w jednym miejscu",
- "DESCRIPTION": "Zobacz wszystkie konwersacje z klientami w jednym miejscu. Możesz filtrować konwersacje według kanału, z którego pochodzą, etykiet lub statusu."
+ "DESCRIPTION": "Zobacz wszystkie konwersacje z klientami w jednym miejscu. Możesz filtrować konwersacje według kanału, z którego pochodzą, etykiet lub statusu.",
+ "NEW_LINK": "Kliknij tutaj, aby utworzyć nową skrzynkę odbiorczą"
},
"TEAM_MEMBERS": {
"TITLE": "Zaproszenie członków zespołu",
"DESCRIPTION": "Ponieważ przygotowujesz się do rozmowy z klientem, zaproś członków zespołu, aby pomogli Ci. Możesz zaprosić członków zespołu, dodając ich adresy e-mail do listy agentów.",
"NEW_LINK": "Kliknij tutaj, aby zaprosić nowego członka zespołu"
},
- "INBOXES": {
- "TITLE": "Podłącz skrzynki odbiorcze",
- "DESCRIPTION": "Połącz różne kanały, za pomocą których klienci będą z Tobą rozmawiać. Może to być czat na żywo, strona Facebook lub Twitter lub nawet Twój numer WhatsApp.",
- "NEW_LINK": "Kliknij tutaj, aby utworzyć nową skrzynkę odbiorczą"
- },
"LABELS": {
"TITLE": "Organizuj konwersacje za pomocą etykiet",
"DESCRIPTION": "Etykiety ułatwiają kategoryzację konwersacji. Utwórz etykiety, takie jak #zapytanie-o-wsparcie, #pytanie-o-fakturę itp., aby później łatwo z nich korzystać w trakcie rozmowy.",
"NEW_LINK": "Kliknij tutaj, aby utworzyć nową etykietę"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Create canned responses",
+ "DESCRIPTION": "Pre-written quick reply templates help you quickly respond to a conversation. Agents can type the '/' character followed by the shortcode to insert a response.",
+ "NEW_LINK": "Click here to create a canned response"
}
},
"CONVERSATION_SIDEBAR": {
@@ -266,13 +383,48 @@
"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"
+ "MACROS": "Makra",
+ "LINEAR_ISSUES": "Linked Linear Issues",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "View all",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Oczekujące",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Utwórz atrybut",
+ "NO_RECORDS_FOUND": "Brak wyników",
"UPDATE": {
"SUCCESS": "Atrybut zaktualizowany pomyślnie",
"ERROR": "Nie można zaktualizować atrybutu. Spróbuj ponownie później"
@@ -297,17 +449,18 @@
"TO": "Do",
"BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Temat"
+ "SUBJECT": "Temat",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Uczestniczący",
"SIDEBAR_TITLE": "Uczestnicy konwersacji",
"NO_RECORDS_FOUND": "Nie znaleziono rekordów",
"ADD_PARTICIPANTS": "Wybierz uczestników",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} innych",
- "REMANING_PARTICIPANT_TEXT": "+%{count} inna osoba",
- "TOTAL_PARTICIPANTS_TEXT": "Bierze w nich udział %{count} osób.",
- "TOTAL_PARTICIPANT_TEXT": "Bierze w nich udział %{count} osoba.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} innych",
+ "REMANING_PARTICIPANT_TEXT": "+{count} inna osoba",
+ "TOTAL_PARTICIPANTS_TEXT": "Bierze w nich udział {count} osób.",
+ "TOTAL_PARTICIPANT_TEXT": "Bierze w nich udział {count} osoba.",
"NO_PARTICIPANTS_TEXT": "Nikt nie bierze udziału!",
"WATCH_CONVERSATION": "Dołącz do konwersacji",
"YOU_ARE_WATCHING": "Bierzesz udział",
@@ -322,5 +475,16 @@
"ORIGINAL_CONTENT": "Oryginalna treść",
"TRANSLATED_CONTENT": "Przetłumaczona treść",
"NO_TRANSLATIONS_AVAILABLE": "Brak dostępnych tłumaczeń dla tej treści"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/customRole.json b/app/javascript/dashboard/i18n/locale/pl/customRole.json
new file mode 100644
index 000000000..041af0367
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Custom Roles",
+ "LEARN_MORE": "Learn more about custom roles",
+ "DESCRIPTION": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Add custom role",
+ "LOADING": "Fetching custom roles...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Brak wyników pasujących do wyszukiwania.",
+ "PAYWALL": {
+ "TITLE": "Upgrade to create custom roles",
+ "AVAILABLE_ON": "The custom role feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The custom role feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Manage custom roles",
+ "DESC": "Custom roles are roles that are created by the account owner or admin. These roles can be assigned to agents to define their access and permissions within the account. Custom roles can be created with specific permissions and access levels to suit the requirements of the organization.",
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "DESCRIPTION": "Opis",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Akcje"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Imię",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Nazwa jest wymagana."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Opis jest wymagany."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissions",
+ "ERROR": "Permissions are required."
+ },
+ "CANCEL_BUTTON_TEXT": "Anuluj",
+ "API": {
+ "ERROR_MESSAGE": "Nie można połączyć się z serwerem Woot. Spróbuj ponownie."
+ }
+ },
+ "ADD": {
+ "TITLE": "Add custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Prześlij",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role added successfully."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Edytuj",
+ "TITLE": "Edit custom role",
+ "DESC": " Custom roles allows you to create roles with specific permissions and access levels to suit the requirements of the organization.",
+ "SUBMIT": "Aktualizuj",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role updated successfully."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Usuń",
+ "API": {
+ "SUCCESS_MESSAGE": "Custom role deleted successfully.",
+ "ERROR_MESSAGE": "Nie można połączyć się z serwerem Woot. Spróbuj ponownie."
+ },
+ "CONFIRM": {
+ "TITLE": "Potwierdzenie usunięcia",
+ "MESSAGE": "Czy jesteś pewien, że chcesz usunąć ",
+ "YES": "Tak, usuń ",
+ "NO": "No, keep "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/datePicker.json b/app/javascript/dashboard/i18n/locale/pl/datePicker.json
new file mode 100644
index 000000000..60161ce95
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Zastosuj",
+ "CLEAR_BUTTON": "Clear",
+ "DATE_RANGE_INPUT": {
+ "START": "Start Date",
+ "END": "End Date"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "DATE RANGE",
+ "LAST_7_DAYS": "Ostatnie 7 dni",
+ "LAST_30_DAYS": "Ostatnie 30 dni",
+ "LAST_3_MONTHS": "Ostatnie 3 miesiące",
+ "LAST_6_MONTHS": "Ostatnie 6 miesięcy",
+ "LAST_YEAR": "Ostatni rok",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Niestandardowy zakres dat"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/general.json b/app/javascript/dashboard/i18n/locale/pl/general.json
new file mode 100644
index 000000000..e3657bf9c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Showing {firstIndex}-{lastIndex} of {totalCount} items",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Szukaj",
+ "EMPTY_STATE": "Nie znaleziono rekordów"
+ },
+ "CLOSE": "Zamknij",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Accept",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferred"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Tak",
+ "NO": "Nie"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/generalSettings.json b/app/javascript/dashboard/i18n/locale/pl/generalSettings.json
index fbbacf8de..e47ea01db 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. Your plan only allows {allowedAgents} 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,19 +92,41 @@
"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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Możesz teraz odbierać wiadomości e-mail na swojej własnej domenie."
}
},
- "UPDATE_CHATWOOT": "Dostępna jest aktualizacja do wersji %{latestChatwootVersion} Chatwoot. Proszę zaktualizować swoją instancję.",
+ "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ę"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Naciśnij Enter, aby wybrać",
"ENTER_TO_REMOVE": "Naciśnij Enter, aby usunąć",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Wybierz jeden",
"SELECT": "Wybierz"
}
@@ -87,12 +164,17 @@
"conversation_assignment": "Przypisanie rozmowy",
"assigned_conversation_new_message": "Nowa wiadomość",
"participating_conversation_new_message": "Nowa wiadomość",
- "conversation_mention": "Wzmianka"
+ "conversation_mention": "Wzmianka",
+ "sla_missed_first_response": "SLA Missed",
+ "sla_missed_next_response": "SLA Missed",
+ "sla_missed_resolution": "SLA Missed"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Offline"
+ "OFFLINE": "Niedostępny",
+ "RECONNECTING": "Reconnecting...",
+ "RECONNECT_SUCCESS": "Reconnected"
},
"BUTTON": {
"REFRESH": "Odśwież"
@@ -100,10 +182,12 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Szukaj lub przejdź do",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Ogólne",
"REPORTS": "Raporty",
"CONVERSATION": "Rozmowa",
+ "BULK_ACTIONS": "Bulk Actions",
"CHANGE_ASSIGNEE": "Zmień przypisanego",
"CHANGE_PRIORITY": "Zmień priorytet",
"CHANGE_TEAM": "Zmień zespół",
@@ -150,7 +234,7 @@
"UNTIL_TOMORROW": "Do jutra",
"UNTIL_NEXT_MONTH": "Do następnego miesiąca",
"AN_HOUR_FROM_NOW": "Do godziny od teraz",
- "CUSTOM": "Niestandardowe...",
+ "UNTIL_CUSTOM_TIME": "Niestandardowe...",
"CHANGE_APPEARANCE": "Change Appearance",
"LIGHT_MODE": "Light",
"DARK_MODE": "Dark",
diff --git a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
index 9353d1da8..b775a08b8 100644
--- a/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pl/helpCenter.json
@@ -1,5 +1,10 @@
{
"HELP_CENTER": {
+ "TITLE": "Centrum pomocy",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Utwórz portal"
+ },
"HEADER": {
"FILTER": "Filtruj według",
"SORT": "Sortuj według",
@@ -41,6 +46,7 @@
"UPLOADING": "Przesyłanie...",
"SUCCESS": "Obraz został pomyślnie przesłany",
"ERROR": "Błąd podczas przesyłania obrazu",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "Rozmiar obrazu powinien być mniejszy niż {size}MB",
"ERROR_FILE_FORMAT": "Format obrazu powinien być jpg, jpeg lub png",
"ERROR_FILE_DIMENSIONS": "Wymiary obrazu powinny być mniejsze niż 2000 x 2000"
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Bez kategorii",
- "SEARCH_RESULTS": "Search results for %{query}",
+ "SEARCH_RESULTS": "Search results for {query}",
"EMPTY_TEXT": "Search for articles to insert into replies.",
"SEARCH_LOADER": "Wyszukiwanie...",
"INSERT_ARTICLE": "Wstaw",
@@ -151,6 +157,12 @@
"DELETE_SUCCESS": "Portal został pomyślnie usunięty",
"DELETE_ERROR": "Błąd podczas usuwania portalu"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informacje o centrum pomocy",
- "route": "new_portal_information",
- "body": "Podstawowe informacje o portalu",
- "CREATE_BASIC_SETTING_BUTTON": "Utwórz podstawowe ustawienia portalu"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informacje o centrum pomocy",
+ "BODY": "Podstawowe informacje o portalu"
},
- {
- "title": "Dostosowanie centrum pomocy",
- "route": "portal_customization",
- "body": "Dostosuj portal",
- "UPDATE_PORTAL_BUTTON": "Zaktualizuj ustawienia portalu"
+ "CUSTOMIZATION": {
+ "TITLE": "Dostosowanie centrum pomocy",
+ "BODY": "Dostosuj portal"
},
- {
- "title": "Gotowe! 🎉",
- "route": "portal_finish",
- "body": "Wszystko jest gotowe!",
- "FINISH": "Zakończ"
+ "FINISH": {
+ "TITLE": "Gotowe! 🎉",
+ "BODY": "Wszystko jest gotowe!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Powrót",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Niestandardowa domena",
"PLACEHOLDER": "Niestandardowa domena portalu",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Podaj poprawny adres URL domeny"
},
"HOME_PAGE_LINK": {
"LABEL": "Link do strony głównej",
"PLACEHOLDER": "Link do strony głównej portalu",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
"ERROR": "Podaj poprawny adres URL strony głównej"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Język usunięty z portalu pomyślnie",
"ERROR_MESSAGE": "Nie można usunąć języka z portalu. Spróbuj ponownie."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
+ }
}
},
"TABLE": {
@@ -348,6 +366,12 @@
"SUCCESS": "Artykuł zarchiwizowany pomyślnie"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Błąd podczas usuwania artykułu"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Proszę dodać tytuł i treść artykułu, aby móc zaktualizować ustawienia"
},
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use the portal as a headless CMS with third party front-end frameworks using our APIs."
}
}
+ },
+ "LOADING": "Loading...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Opublikuj",
+ "DRAFT": "Szkic",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Przetłumacz",
+ "DELETE": "Usuń"
+ },
+ "STATUS": {
+ "DRAFT": "Szkic",
+ "PUBLISHED": "Opublikowane",
+ "ARCHIVED": "Zarchiwizowane"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Moje",
+ "DRAFT": "Szkic",
+ "PUBLISHED": "Opublikowane",
+ "ARCHIVED": "Zarchiwizowane"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Przetłumacz",
+ "SELECT_ALL": "Select all ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Przetłumacz",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Opublikuj",
+ "DRAFT": "Szkic",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Przetłumacz",
+ "MOVE_TO_CATEGORY": "Kategoria",
+ "DELETE": "Usuń",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Usuń",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nowa kategoria",
+ "EDIT_CATEGORY": "Edytuj kategorię",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nie znaleziono kategorii",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategoria utworzona pomyślnie",
+ "ERROR_MESSAGE": "Nie można utworzyć kategorii"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategoria zaktualizowana pomyślnie",
+ "ERROR_MESSAGE": "Nie można zaktualizować kategorii"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Kategoria pomyślnie usunięta",
+ "ERROR_MESSAGE": "Nie można usunąć kategorii"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Utwórz kategorię",
+ "EDIT": "Edytuj kategorię",
+ "DESCRIPTION": "Edycja kategorii spowoduje aktualizację kategorii w publicznym portalu.",
+ "PORTAL": "Portal",
+ "LOCALE": "Język"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Imię",
+ "PLACEHOLDER": "Nazwa kategorii",
+ "ERROR": "Nazwa jest wymagana"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug kategorii dla adresów URL",
+ "ERROR": "Slug jest wymagany",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Krótki opis kategorii.",
+ "ERROR": "Opis jest wymagany"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Stwórz",
+ "EDIT": "Aktualizuj",
+ "CANCEL": "Anuluj"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Domyślny",
+ "DRAFT": "Szkic",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Usuń"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Dodaj nowy język",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select locale..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Opublikowane",
+ "DRAFT": "Szkic"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Język dodany pomyślnie",
+ "ERROR_MESSAGE": "Nie można dodać języka. Spróbuj ponownie."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Zapisywanie...",
+ "SAVED": "Zapisano"
+ },
+ "PREVIEW": "Podgląd",
+ "PUBLISH": "Opublikuj",
+ "DRAFT": "Szkic",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Bez kategorii",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Opis meta",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Tytuł meta",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Tagi meta",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Błąd podczas zapisywania artykułu"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portale",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "artykułów",
+ "DOMAIN": "domena",
+ "PORTAL_NAME": "Nazwa portalu"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Stwórz",
+ "NAME": {
+ "LABEL": "Imię",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Nazwa jest wymagana"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug jest wymagany",
+ "FORMAT_ERROR": "Please enter a valid slug, for eg: user-guide"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo deleted successfully",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "Rozmiar obrazu powinien być mniejszy niż {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Imię",
+ "PLACEHOLDER": "Nazwa portalu",
+ "ERROR": "Nazwa jest wymagana"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Tekst nagłówka portalu"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Tytuł strony portalu"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Link do strony głównej portalu",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Niestandardowa domena",
+ "LABEL": "Niestandardowa domena:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Niestandardowa domena portalu",
+ "EDIT_BUTTON": "Edytuj",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Na żywo",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Niestandardowa domena",
+ "PLACEHOLDER": "Niestandardowa domena portalu",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Wyślij"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Usuń portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Usuń"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Appearance",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Usuń"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal utworzony pomyślnie",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal zaktualizowany pomyślnie",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "Przesyłanie...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Anuluj",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "Generowanie...",
+ "CONFIRM_DELETE": "Are you sure you want to delete {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Zakończone",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/inbox.json b/app/javascript/dashboard/i18n/locale/pl/inbox.json
index 3d045fd62..d7f3183b3 100644
--- a/app/javascript/dashboard/i18n/locale/pl/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/pl/inbox.json
@@ -1,28 +1,45 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Skrzynka odbiorcza",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Display",
"LOADING": "Fetching notifications",
- "EOF": "Wszystkie powiadomienia załadowane 🎉",
"404": "There are no active notifications in this group.",
"NO_NOTIFICATIONS": "No notifications",
"NOTE": "Notifications from all subscribed inboxes",
+ "NO_MESSAGES_AVAILABLE": "Oops! Not able to fetch messages",
"SNOOZED_UNTIL": "Uśpione do",
"SNOOZED_UNTIL_TOMORROW": "Uśpij do jutra",
"SNOOZED_UNTIL_NEXT_WEEK": "Uśpione do następnego tygodnia"
},
"ACTION_HEADER": {
"SNOOZE": "Snooze notification",
- "DELETE": "Delete notification"
+ "DELETE": "Delete notification",
+ "BACK": "Powrót"
},
"TYPES": {
"CONVERSATION_MENTION": "You have been mentioned in a conversation",
"CONVERSATION_CREATION": "New conversation created",
"CONVERSATION_ASSIGNMENT": "A conversation has been assigned to you",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "New message in an assigned conversation",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "New message in a conversation you are participating in",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA target first response missed for conversation",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA target next response missed for conversation",
+ "SLA_MISSED_RESOLUTION": "SLA target resolution missed for conversation"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nowa wiadomość",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nowa wiadomość",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Brak treści",
"MENU_ITEM": {
"MARK_AS_READ": "Mark as read",
"MARK_AS_UNREAD": "Oznacz jako nieprzeczytane",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "All notifications marked as read",
"DELETE_ALL": "All notifications deleted",
"DELETE_ALL_READ": "All read notifications deleted"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
index c799d3cf3..0602b35c1 100644
--- a/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Zarządzanie skrzynkami",
- "SIDEBAR_TXT": "Skrzynka odbiorcza
Gdy podłączysz stronę internetową lub stronę na Facebooku do Chatwoot, nazywana jest skrzynką odbiorczą. Możesz mieć nieograniczoną liczbę skrzynek odbiorczych na swoim koncie Chatwoot.
Kliknij Dodaj skrzynkę odbiorczą, aby połączyć swoją stronę internetową lub stronę na Facebooku.
W panelu możesz zobaczyć wszystkie rozmowy ze wszystkich swoich skrzynek odbiorczych w jednym miejscu i odpowiadać na nie w zakładce „Konwersacje”.
Możesz również zobaczyć rozmowy specyficzne dla danej skrzynki odbiorczej, klikając na nazwę skrzynki odbiorczej w lewym panelu nawigacyjnym.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "Your inbox is disconnected. You won't receive new messages until you reauthorize it.",
+ "CLICK_TO_RECONNECT": "Click here to reconnect.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Nie ma żadnych skrzynek odbiorczych przypisanych do tego konta."
},
- "CREATE_FLOW": [
- {
- "title": "Wybierz kanał",
- "route": "settings_inbox_new",
- "body": "Wybierz dostawcę, którego chcesz zintegrować z Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Wybierz kanał",
+ "BODY": "Wybierz dostawcę, którego chcesz zintegrować z Chatwoot."
},
- {
- "title": "Utwórz skrzynkę odbiorczą",
- "route": "settings_inboxes_page_channel",
- "body": "Uwierzytelnij swoje konto i utwórz skrzynkę odbiorczą."
+ "INBOX": {
+ "TITLE": "Utwórz skrzynkę odbiorczą",
+ "BODY": "Uwierzytelnij swoje konto i utwórz skrzynkę odbiorczą."
},
- {
- "title": "Dodaj agentów",
- "route": "settings_inboxes_add_agents",
- "body": "Dodaj agentów do utworzonej skrzynki odbiorczej."
+ "AGENT": {
+ "TITLE": "Dodaj agentów",
+ "BODY": "Dodaj agentów do utworzonej skrzynki odbiorczej."
},
- {
- "title": "Gotowe!",
- "route": "settings_inbox_finish",
- "body": "Wszystko jest gotowe!"
+ "FINISH": {
+ "TITLE": "Voilà!",
+ "BODY": "Wszystko jest gotowe!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nazwa skrzynki odbiorczej",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Wybierz stronę z listy",
"INBOX_NAME": "Nazwa skrzynki odbiorczej",
"ADD_NAME": "Dodaj nazwę skrzynki odbiorczej",
- "PICK_NAME": "Wybierz nazwę skrzynki odbiorczej",
- "PICK_A_VALUE": "Wybierz wartość"
+ "PICK_NAME": "Pick a Name for your Inbox",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
"HELP": "Aby dodać swój profil na Twitterze jako kanał, musisz uwierzytelnić swój profil Twittera, klikając „Zaloguj się przez Twitter”",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL webhooka",
- "PLACEHOLDER": "Wprowadź adres URL webhooka",
+ "PLACEHOLDER": "Please enter your Webhook URL",
"ERROR": "Wprowadź poprawny adres URL"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domena strony internetowej",
"PLACEHOLDER": "Wprowadź domenę strony (np. acme.com)"
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "Klucz API",
- "PLACEHOLDER": "Wprowadź klucz API przepustowości",
+ "PLACEHOLDER": "Please enter your Bandwidth API Key",
"ERROR": "To pole jest wymagane"
},
"API_SECRET": {
"LABEL": "Sekret API",
- "PLACEHOLDER": "Wprowadź sekret API przepustowości",
+ "PLACEHOLDER": "Please enter your Bandwidth API Secret",
"ERROR": "To pole jest wymagane"
},
"APPLICATION_ID": {
@@ -213,9 +242,16 @@
"DESC": "Rozpocznij obsługę klientów za pomocą wiadomości WhatsApp.",
"PROVIDERS": {
"LABEL": "Dostawca API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "Chmura WhatsApp",
- "360_DIALOG": "360Dialog"
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
+ "360_DIALOG": "360dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
},
"INBOX_NAME": {
"LABEL": "Nazwa skrzynki odbiorczej",
@@ -239,7 +275,7 @@
},
"WEBHOOK_VERIFY_TOKEN": {
"LABEL": "Token weryfikujący Webhook",
- "PLACEHOLDER": "Wprowadź token weryfikacyjny webhooka, który chcesz skonfigurować dla webhooków Facebooka.",
+ "PLACEHOLDER": "Enter a verify token which you want to configure for Facebook webhooks.",
"ERROR": "Wprowadź poprawną wartość."
},
"API_KEY": {
@@ -255,10 +291,81 @@
"WEBHOOK_VERIFICATION_TOKEN": "Token weryfikacyjny webhooka"
},
"SUBMIT_BUTTON": "Utwórz kanał WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Nie udało się zapisać kanału WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Voice Channel",
+ "DESC": "Integrate Twilio Voice and start supporting your customers via phone calls.",
+ "PHONE_NUMBER": {
+ "LABEL": "Numer telefonu",
+ "PLACEHOLDER": "Enter your phone number (e.g. +1234567890)",
+ "ERROR": "Please provide a valid phone number in E.164 format (e.g. +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "ID konta",
+ "PLACEHOLDER": "Enter your Twilio Account SID",
+ "REQUIRED": "Account SID is required"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token uwierzytelniania",
+ "PLACEHOLDER": "Enter your Twilio Auth Token",
+ "REQUIRED": "Auth Token is required"
+ },
+ "API_KEY_SID": {
+ "LABEL": "API Key SID",
+ "PLACEHOLDER": "Enter your Twilio API Key SID",
+ "REQUIRED": "API Key SID is required"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "API Key Secret",
+ "PLACEHOLDER": "Enter your Twilio API Key Secret",
+ "REQUIRED": "API Key Secret is required"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Create Voice Channel",
+ "API": {
+ "ERROR_MESSAGE": "We were not able to create the voice channel"
+ }
+ },
"API_CHANNEL": {
"TITLE": "Kanał API",
"DESC": "Zintegruj kanał API i rozpocznij obsługę klientów.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "Adres URL webhooka",
- "SUBTITLE": "Skonfiguruj adres URL, na którym chcesz otrzymywać zwroty dla zdarzeń.",
+ "SUBTITLE": "Configure the URL where you want to receive callbacks on events.",
"PLACEHOLDER": "Adres URL webhooka"
},
"SUBMIT_BUTTON": "Utwórz kanał API",
@@ -279,7 +386,7 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Kanał e-mail",
- "DESC": "Zintegruj skrzynkę pocztową.",
+ "DESC": "Integrate your email inbox.",
"CHANNEL_NAME": {
"LABEL": "Nazwa kanału",
"PLACEHOLDER": "Wprowadź nazwę kanału",
@@ -294,7 +401,11 @@
"API": {
"ERROR_MESSAGE": "Nie udało nam się zapisać kanału e-mail"
},
- "FINISH_MESSAGE": "Zacznij przekierowywać wiadomości na poniższy adres e-mail."
+ "FINISH_MESSAGE": "Zacznij przekierowywać wiadomości na poniższy adres e-mail.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Kliknij tutaj",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Kanał LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Wybierz kanał",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Voilà!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voice",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agenci",
"DESC": "Tutaj możesz dodać agentów do zarządzania swoją nowo utworzoną skrzynką odbiorczą. Tylko ci wybrani agenci będą mieli dostęp do Twojej skrzynki odbiorczej. Agenci, którzy nie są częścią tej skrzynki odbiorczej nie będą mogli zobaczyć ani odpowiadać na wiadomości w tej skrzynce odbiorczej podczas logowania.
PS: Jako administrator, jeśli potrzebujesz dostępu do wszystkich skrzynek odbiorczych, powinieneś dodać siebie jako agenta do wszystkich skrzynek odbiorczych, które tworzysz.",
- "VALIDATION_ERROR": "Dodaj co najmniej jednego agenta do swojej nowej skrzynki odbiorczej",
+ "VALIDATION_ERROR": "Add at least one agent to your new Inbox",
"PICK_AGENTS": "Wybierz agentów dla skrzynki odbiorczej"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft",
"DESCRIPTION": "Kliknij przycisk Zaloguj się za pomocą Microsoft, aby rozpocząć. Nastąpi przekierowanie do strony logowania przez e-mail. Po zaakceptowaniu wymaganych uprawnień zostaniesz przekierowany z powrotem do etapu tworzenia skrzynki odbiorczej.",
"EMAIL_PLACEHOLDER": "Wprowadź adres e-mail",
- "HELP": "Aby dodać swoje konto Microsoft jako kanał, musisz uwierzytelnić swoje konto Microsoft, klikając \"Zaloguj się za pomocą Microsoft\" ",
+ "SIGN_IN": "Sign in with Microsoft",
"ERROR_MESSAGE": "Wystąpił błąd połączenia z Microsoft, spróbuj ponownie"
+ },
+ "GOOGLE": {
+ "TITLE": "Google Email",
+ "DESCRIPTION": "Click on the Sign in with Google button to get started. You will redirected to the email sign in page. Once you accept the requested permissions, you would be redirected back to the inbox creation step.",
+ "SIGN_IN": "Sign in with Google",
+ "EMAIL_PLACEHOLDER": "Wprowadź adres e-mail",
+ "ERROR_MESSAGE": "There was an error connecting to Google, please try again"
}
},
"DETAILS": {
"LOADING_FB": "Uwierzytelnianie za pomocą Facebooka...",
+ "ERROR_FB_LOADING": "Error loading Facebook SDK. Please disable any ad-blockers and try again from a different browser.",
"ERROR_FB_AUTH": "Coś poszło nie tak. Proszę odświeżyć stronę...",
"ERROR_FB_UNAUTHORIZED": "You're not authorized to perform this action. ",
"ERROR_FB_UNAUTHORIZED_HELP": "Please ensure you have access to the Facebook page with full control. You can read more about Facebook roles here.",
@@ -386,7 +557,10 @@
"MESSAGE": "Możesz teraz kontaktować się z klientami za pośrednictwem nowego kanału. Szczęśliwy wspierający",
"BUTTON_TEXT": "Zabierz mnie tam",
"MORE_SETTINGS": "Więcej ustawień",
- "WEBSITE_SUCCESS": "Pomyślnie zakończyłeś tworzenie kanału internetowego. Skopiuj poniższy kod i wklej go na swojej stronie. Następnym razem, gdy klient korzysta z czatu na żywo, konwersacja pojawi się automatycznie na twojej skrzynce odbiorczej."
+ "WEBSITE_SUCCESS": "Pomyślnie zakończyłeś tworzenie kanału internetowego. Skopiuj poniższy kod i wklej go na swojej stronie. Następnym razem, gdy klient korzysta z czatu na żywo, konwersacja pojawi się automatycznie na twojej skrzynce odbiorczej.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Ponowna autoryzacja",
"VIEW": "Widok",
@@ -406,7 +580,7 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Sender name",
- "SUB_TEXT": "Select the name shown to the your customer when they receive emails from your agents.",
+ "SUB_TEXT": "Select the name shown to your customer when they receive emails from your agents.",
"FOR_EG": "For eg:",
"FRIENDLY": {
"TITLE": "Przyjazna",
@@ -418,7 +592,7 @@
"SUBTITLE": "Use only the configured business name as the sender name in the email header."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure your business name",
+ "BUTTON_TEXT": "Configure your business name",
"PLACEHOLDER": "Enter your business name",
"SAVE_BUTTON_TEXT": "Zapisz"
}
@@ -432,8 +606,10 @@
"DISABLED": "Wyłączone"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Włączone",
- "DISABLED": "Wyłączone"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Włącz"
@@ -464,7 +640,107 @@
"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",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voice",
+ "CALLS": "Calls"
+ },
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Na żywo"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
},
"SETTINGS": "Ustawienia",
"FEATURES": {
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Skrypt Messengera",
"MESSENGER_SUB_HEAD": "Umieść ten przycisk wewnątrz znacznika ciała",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
"INBOX_AGENTS": "Agenci",
"INBOX_AGENTS_SUB_TEXT": "Dodaj lub usuń agentów z tej skrzynki odbiorczej",
"AGENT_ASSIGNMENT": "Zadanie konwersacji",
@@ -485,14 +778,13 @@
"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.",
- "LOCK_TO_SINGLE_CONVERSATION": "Blokada do pojedynczej rozmowy",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Włączanie lub wyłączanie wielu wątków dla tego samego kontaktu w tej skrzynce odbiorczej",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
"INBOX_UPDATE_TITLE": "Ustawienia skrzynki odbiorczej",
"INBOX_UPDATE_SUB_TEXT": "Zaktualizuj ustawienia skrzynki odbiorczej",
"AUTO_ASSIGNMENT_SUB_TEXT": "Włącz lub wyłącz automatyczne przypisywanie nowych rozmów do agentów dodanych do tej skrzynki odbiorczej.",
@@ -505,22 +797,47 @@
"INBOX_IDENTIFIER_SUB_TEXT": "Użyj tokenu `inbox_identifier` pokazanego tutaj, aby uwierzytelnić swoich klientów API.",
"FORWARD_EMAIL_TITLE": "Przekaż do wiadomości e-mail",
"FORWARD_EMAIL_SUB_TEXT": "Zacznij przekierowywać swoje wiadomości na następujący adres e-mail.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Zezwalaj na wiadomości po rozwiązaniu konwersacji",
"ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Zezwalaj użytkownikom końcowym na wysyłanie wiadomości nawet po zakończeniu konwersacji.",
"WHATSAPP_SECTION_SUBHEADER": "Ten klucz API jest używany do integracji z interfejsami API WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Wprowadź zaktualizowany klucz, który będzie używany do integracji z interfejsami API WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Enter the new API key to be used for the integration with the WhatsApp APIs.",
"WHATSAPP_SECTION_TITLE": "Klucz API",
"WHATSAPP_SECTION_UPDATE_TITLE": "Aktualizacja klucza API",
"WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Wprowadź nowy klucz API tutaj",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Aktualizuj",
- "WHATSAPP_WEBHOOK_TITLE": "Token weryfikujący Webhook",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Połącz",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Token weryfikacyjny webhooka",
"WHATSAPP_WEBHOOK_SUBHEADER": "Ten token służy do weryfikacji autentyczności punktu końcowego webhooka.",
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
"UPDATE_PRE_CHAT_FORM_SETTINGS": "Aktualizacja ustawień formularza czatu wstępnego"
},
"HELP_CENTER": {
"LABEL": "Centrum pomocy",
"PLACEHOLDER": "Wybierz Centrum pomocy",
"SELECT_PLACEHOLDER": "Wybierz Centrum pomocy",
+ "NONE": "Brak",
"REMOVE": "Usuń Centrum pomocy",
"SUB_TEXT": "Dołącz Centrum pomocy do skrzynki odbiorczej"
},
@@ -529,6 +846,53 @@
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Wprowadź wartość większą niż 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Ogranicz maksymalną liczbę wątków z tej skrzynki odbiorczej, które mogą zostać automatycznie przypisane do agenta"
},
+ "ASSIGNMENT": {
+ "TITLE": "Zadanie konwersacji",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Aktywne",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Anuluj",
+ "CONFIRM_DELETE": "Usuń",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Ponowna autoryzacja",
"SUBTITLE": "Twoje połączenie z Facebookiem wygasło, połącz się z nim ponownie, aby kontynuować świadczenie usług",
@@ -561,6 +925,76 @@
"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"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Język",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Powróć"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "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",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "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",
@@ -571,9 +1005,11 @@
"UNAVAILABLE_MESSAGE_LABEL": "Wiadomość niedostępna dla odwiedzających",
"TOGGLE_HELP": "Enabling business availability will show the available hours on live chat widget even if all the agents are offline. Outside available hours visitors can be warned with a message and a pre-chat form.",
"DAY": {
+ "DAY": "Dzień",
+ "AVAILABILITY": "Dostępność",
+ "HOURS": "Hours",
"ENABLE": "Włącz dostępność w tym dniu",
"UNAVAILABLE": "Niedostępny",
- "HOURS": "godzin",
"VALIDATION_ERROR": "Czas rozpoczęcia powinien być przed czasem zakończenia.",
"CHOOSE": "Wybierz"
},
@@ -585,7 +1021,7 @@
"NOTE_TEXT": "Aby włączyć SMTP, należy skonfigurować IMAP.",
"UPDATE": "Aktualizuj ustawienia IMAP",
"TOGGLE_AVAILABILITY": "Włącz konfigurację IMAP dla tej skrzynki odbiorczej",
- "TOGGLE_HELP": "Włączenie IMAP pomoże użytkownikowi otrzymywać e-mail",
+ "TOGGLE_HELP": "Enabling IMAP will help the user to receive email",
"EDIT": {
"SUCCESS_MESSAGE": "Ustawienia IMAP zostały zaktualizowane",
"ERROR_MESSAGE": "Nie można zaktualizować ustawień IMAP"
@@ -606,7 +1042,8 @@
"LABEL": "Hasło",
"PLACE_HOLDER": "Hasło"
},
- "ENABLE_SSL": "Włącz SSL"
+ "ENABLE_SSL": "Włącz SSL",
+ "AUTH_MECHANISM": "Uwierzytelnianie"
},
"MICROSOFT": {
"TITLE": "Microsoft",
@@ -680,11 +1117,12 @@
"IN_A_DAY": "W ciągu dnia"
},
"WIDGET_COLOR_LABEL": "Kolor widżetu",
- "WIDGET_BUBBLE_POSITION_LABEL": "Pozycja bąbelka widgetu",
- "WIDGET_BUBBLE_TYPE_LABEL": "Typ bąbelka widgetu",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Typ:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Porozmawiaj z nami",
- "LABEL": "Tytuł programu uruchamiającego bąbelki widżetów",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Porozmawiaj z nami"
},
"UPDATE": {
@@ -709,7 +1147,7 @@
},
"WIDGET_SCREEN": {
"DEFAULT": "Domyślny",
- "CHAT": "Czat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Zwykle odpowiadamy w ciągu paru minut",
@@ -732,8 +1170,33 @@
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Inni dostawcy"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Inni dostawcy",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mail",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Kanał API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voice"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/index.js b/app/javascript/dashboard/i18n/locale/pl/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/pl/index.js
+++ b/app/javascript/dashboard/i18n/locale/pl/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
index 835f4af92..999b5ab80 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrationApps.json
@@ -1,8 +1,11 @@
{
"INTEGRATION_APPS": {
"FETCHING": "Pobieranie integracji",
- "NO_HOOK_CONFIGURED": "W tym koncie nie skonfigurowano integracji %{integrationId}.",
+ "NO_HOOK_CONFIGURED": "W tym koncie nie skonfigurowano integracji {integrationId}.",
"HEADER": "Aplikacje",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Włączone",
"DISABLED": "Wyłączone"
@@ -31,6 +34,7 @@
"LIST": {
"FETCHING": "Pobieranie hooków integracyjnych",
"INBOX": "Skrzynka odbiorcza",
+ "ACTIONS": "Akcje",
"DELETE": {
"BUTTON_TEXT": "Usuń"
}
@@ -42,6 +46,7 @@
"PLACEHOLDER": "Wybierz skrzynkę odbiorczą"
},
"SUBMIT": "Dodaj",
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
"CANCEL": "Anuluj"
},
"API": {
@@ -56,7 +61,7 @@
"BUTTON_TEXT": "Rozłącz"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow to platforma do rozpoznawania naturalnego języka, która ułatwia projektowanie i integrację interfejsu rozmowy z użytkownikiem w aplikacjach mobilnych, aplikacjach internetowych, urządzeniach, botach, systemach interaktywnego systemu odpowiedzi głosowej itp.
Integracja Dialogflow z %{installationName} umożliwia konfigurację bota Dialogflow z Twoimi skrzynkami odbiorczymi, co pozwala botowi obsługiwać zapytania początkowo i przekazywać je do agenta, gdy jest to potrzebne. Dialogflow można używać do kwalifikowania leadów, redukcji obciążenia agentów poprzez udzielanie odpowiedzi na często zadawane pytania itp.
Aby dodać Dialogflow, musisz utworzyć Kontousługi w konsoli projektu Google i udostępnić poświadczenia. Więcej informacji można znaleźć w dokumentacji Dialogflow."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/integrations.json b/app/javascript/dashboard/i18n/locale/pl/integrations.json
index 1c76f92fe..6ab571321 100644
--- a/app/javascript/dashboard/i18n/locale/pl/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pl/integrations.json
@@ -1,8 +1,47 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Anuluj",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integracje",
+ "DESCRIPTION": "Chatwoot integrates with multiple tools and services to improve your team's efficiency. Explore the list below to configure your favorite apps.",
+ "LEARN_MORE": "Learn more about integrations",
+ "LOADING": "Fetching integrations",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Captain is not enabled on your account.",
+ "CLICK_HERE_TO_CONFIGURE": "Click here to configure",
+ "LOADING_CONSOLE": "Loading Captain Console...",
+ "FAILED_TO_LOAD_CONSOLE": "Failed to load Captain Console. Please refresh and try again."
+ },
"WEBHOOK": {
"SUBSCRIBED_EVENTS": "Subskrybowane wydarzenia",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
"CANCEL": "Anuluj",
"DESC": "Webhooki dostarczają informacje o tym, co dzieje się w Twoim koncie Chatwoot. Wprowadź poprawny adres URL, aby skonfigurować webhook.",
@@ -16,12 +55,19 @@
"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",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
"LABEL": "Adres URL webhooka",
- "PLACEHOLDER": "Przykład: https://example/api/webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
"ERROR": "Wprowadź poprawny adres URL"
},
"EDIT_SUBMIT": "Aktualizuj webhook",
@@ -37,10 +83,10 @@
"LIST": {
"404": "Brak skonfigurowanych webhooków dla tego konta.",
"TITLE": "Zarządzaj webhookami",
- "TABLE_HEADER": [
- "Adres URL webhooka",
- "Akcje"
- ]
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Adres URL webhooka",
+ "ACTIONS": "Akcje"
+ }
},
"EDIT": {
"BUTTON_TEXT": "Edytuj",
@@ -66,13 +112,14 @@
},
"CONFIRM": {
"TITLE": "Potwierdź usunięcie",
- "MESSAGE": "Czy na pewno chcesz usunąć webhook? (%{webhookURL})",
+ "MESSAGE": "Czy na pewno chcesz usunąć webhook? ({webhookURL})",
"YES": "Tak, usuń ",
"NO": "Nie, zostaw"
}
}
},
"SLACK": {
+ "HEADER": "Slack",
"DELETE": "Usuń",
"DELETE_CONFIRMATION": {
"TITLE": "Delete the integration",
@@ -80,7 +127,7 @@
},
"HELP_TEXT": {
"TITLE": "Using Slack Integration",
- "BODY": "
Chatwoot will now sync all the incoming conversations into the customer-conversations channel inside your slack workplace.
Replying to a conversation thread in customer-conversations slack channel will create a response back to the customer through chatwoot.
Start the replies with note: to create private notes instead of replies.
If the replier on slack has an agent profile in chatwoot under the same email, the replies will be associated accordingly.
When the replier doesn't have an associated agent profile, the replies will be made from the bot profile.
",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selected"
},
"SELECT_CHANNEL": {
@@ -104,7 +151,7 @@
},
"OPEN_AI": {
"AI_ASSIST": "AI Assist",
- "WITH_AI": " %{option} with AI ",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
"REPLY_SUGGESTION": "Reply Suggestion",
"SUMMARIZE": "Summarize",
@@ -114,7 +161,29 @@
"EXPAND": "Expand",
"MAKE_FRIENDLY": "Change message tone to friendly",
"MAKE_FORMAL": "Use formal tone",
- "SIMPLIFY": "Simplify"
+ "SIMPLIFY": "Simplify",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profesjonalna",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Przyjazna"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Draft content",
@@ -169,13 +238,18 @@
"HEADER_BTN_TXT": "Dodaj nową aplikację na pulpicie",
"SIDEBAR_TXT": "Aplikacje na pulpicie
Aplikacje na pulpicie umożliwiają organizacjom osadzenie aplikacji wewnątrz panelu Chatwoot w celu dostarczenia kontekstu dla agentów obsługi klienta. Ta funkcja umożliwia tworzenie niezależnej aplikacji i osadzanie jej w celu dostarczania informacji o użytkowniku, jego zamówieniach lub historii płatności.
Kiedy osadzisz swoją aplikację za pomocą pulpitu Chatwoot, Twoja aplikacja otrzyma kontekst rozmowy i kontaktu jako zdarzenie okna. W swojej stronie zaimplementuj nasłuchiwanie zdarzenia wiadomości, aby otrzymać kontekst.
Aby dodać nową aplikację na pulpicie, kliknij przycisk 'Dodaj nową aplikację na pulpicie'.
",
"DESCRIPTION": "Aplikacje na pulpicie umożliwiają organizacjom osadzenie aplikacji wewnątrz panelu w celu dostarczenia kontekstu dla agentów obsługi klienta. Ta funkcja umożliwia tworzenie niezależnej aplikacji i osadzanie jej w celu dostarczania informacji o użytkowniku, jego zamówieniach lub historii płatności.",
+ "LEARN_MORE": "Learn more about Dashboard Apps",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
"404": "Na tym koncie nie skonfigurowano jeszcze aplikacji na pulpicie",
"LOADING": "Pobieranie aplikacji na pulpicie...",
- "TABLE_HEADER": [
- "Nazwa",
- "Punkt końcowy"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "ENDPOINT": "Punkt końcowy",
+ "ACTIONS": "Akcje"
+ },
"EDIT_TOOLTIP": "Edytuj aplikację",
"DELETE_TOOLTIP": "Usuń aplikację"
},
@@ -205,10 +279,826 @@
"CONFIRM_YES": "Tak, usuń",
"CONFIRM_NO": "Nie, zostaw",
"TITLE": "Potwierdzenie usunięcia",
- "MESSAGE": "Czy na pewno chcesz usunąć aplikację - %{appName}?",
+ "MESSAGE": "Czy na pewno chcesz usunąć aplikację - {appName}?",
"API_SUCCESS": "Aplikacja na pulpicie została pomyślnie usunięta",
"API_ERROR": "Nie udało się usunąć aplikacji. Spróbuj ponownie później"
}
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Create/Link Linear Issue",
+ "LOADING": "Fetching linear issues...",
+ "LOADING_ERROR": "There was an error fetching the linear issues, please try again",
+ "CREATE": "Stwórz",
+ "LINK": {
+ "SEARCH": "Search issues",
+ "SELECT": "Select issue",
+ "TITLE": "Link",
+ "EMPTY_LIST": "No linear issues found",
+ "LOADING": "Loading",
+ "ERROR": "There was an error fetching the linear issues, please try again",
+ "LINK_SUCCESS": "Issue linked successfully",
+ "LINK_ERROR": "There was an error linking the issue, please try again",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Create/link linear issue",
+ "DESCRIPTION": "Create Linear issues from conversations, or link existing ones for seamless tracking.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tytuł",
+ "PLACEHOLDER": "Enter title",
+ "REQUIRED_ERROR": "Tytuł jest wymagany"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Enter description"
+ },
+ "TEAM": {
+ "LABEL": "Zespół",
+ "PLACEHOLDER": "Wybierz zespół",
+ "SEARCH": "Search team",
+ "REQUIRED_ERROR": "Team is required"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Assignee",
+ "PLACEHOLDER": "Select assignee",
+ "SEARCH": "Search assignee"
+ },
+ "PRIORITY": {
+ "LABEL": "Priorytet",
+ "PLACEHOLDER": "Wybierz priorytet",
+ "SEARCH": "Search priority"
+ },
+ "LABEL": {
+ "LABEL": "Etykieta",
+ "PLACEHOLDER": "Select label",
+ "SEARCH": "Search label"
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "PLACEHOLDER": "Select status",
+ "SEARCH": "Search status"
+ },
+ "PROJECT": {
+ "LABEL": "Project",
+ "PLACEHOLDER": "Select project",
+ "SEARCH": "Search project"
+ }
+ },
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj",
+ "CREATE_SUCCESS": "Issue created successfully",
+ "CREATE_ERROR": "There was an error creating the issue, please try again",
+ "LOADING_TEAM_ERROR": "There was an error fetching the teams, please try again",
+ "LOADING_TEAM_ENTITIES_ERROR": "There was an error fetching the team entities, please try again"
+ },
+ "ISSUE": {
+ "STATUS": "Status",
+ "PRIORITY": "Priorytet",
+ "ASSIGNEE": "Assignee",
+ "LABELS": "Etykiety",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Unlink",
+ "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"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Notion",
+ "DELETE": {
+ "TITLE": "Are you sure you want to delete the Notion integration?",
+ "MESSAGE": "Deleting this integration will remove access to your Notion workspace and stop all related functionality.",
+ "CONFIRM": "Tak, usuń",
+ "CANCEL": "Anuluj"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Dowiedz się więcej",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Asystenci",
+ "SWITCH_ASSISTANT": "Przełącz się między asystentami",
+ "NEW_ASSISTANT": "Utwórz asystenta",
+ "EMPTY_LIST": "Nie znaleziono asystentów, utwórz jednego, aby zacząć"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Rozpocznij z Copilotem",
+ "KICK_OFF_MESSAGE": "Potrzebujesz szybkiego podsumowania, chcesz sprawdzić wcześniejsze rozmowy lub napisać lepszą odpowiedź? Copilot jest tutaj, aby przyspieszyć pracę.",
+ "SEND_MESSAGE": "Wyślij wiadomość...",
+ "EMPTY_MESSAGE": "Wystąpił błąd podczas generowania odpowiedzi. Spróbuj ponownie.",
+ "LOADER": "Captain myśli",
+ "YOU": "You",
+ "USE": "Użyj tego",
+ "RESET": "Resetuj",
+ "SHOW_STEPS": "Pokaż kroki",
+ "SELECT_ASSISTANT": "Wybierz asystenta",
+ "PROMPTS": {
+ "SUMMARIZE": {
+ "LABEL": "Podsumuj tę rozmowę",
+ "CONTENT": "Podsumuj kluczowe punkty omówione pomiędzy klientem a agentem wsparcia, w tym obawy klienta, pytania oraz rozwiązania lub odpowiedzi udzielone przez agenta."
+ },
+ "SUGGEST": {
+ "LABEL": "Zaproponuj odpowiedź",
+ "CONTENT": "Analizuj zapytanie klienta i przygotuj odpowiedź, która skutecznie odnosi się do jego obaw lub pytań. Upewnij się, że odpowiedź jest jasna, zwięzła i dostarcza pomocnych informacji."
+ },
+ "RATE": {
+ "LABEL": "Oceń tę rozmowę",
+ "CONTENT": "Przejrzyj rozmowę, aby ocenić, jak dobrze spełnia potrzeby klienta. Podaj ocenę w skali od 1 do 5 na podstawie tonu, jasności i skuteczności."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Rozmowy o wysokim priorytecie",
+ "CONTENT": "Podaj podsumowanie wszystkich otwartych rozmów o wysokim priorytecie. Uwzględnij ID rozmowy, nazwę klienta (jeśli dostępna), zawartość ostatniej wiadomości oraz przypisanego agenta. Pogrupuj według statusu, jeśli to istotne."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Lista kontaktów",
+ "CONTENT": "Pokaż listę 10 najważniejszych kontaktów. Uwzględnij nazwę, email lub numer telefonu (jeśli dostępny), czas ostatniego widoku, tagi (jeśli są)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "You",
+ "ASSISTANT": "Asystent",
+ "MESSAGE_PLACEHOLDER": "Wpisz treść wiadomości...",
+ "HEADER": "Pole zabaw",
+ "DESCRIPTION": "Użyj tego pola zabaw, aby wysyłać wiadomości do swojego asystenta i sprawdzić, czy odpowiada dokładnie, szybko i w oczekiwanym tonie.",
+ "CREDIT_NOTE": "Wiadomości wysłane tutaj będą naliczane do twoich kredytów Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Uaktualnij, aby korzystać z Captain AI",
+ "AVAILABLE_ON": "Captain nie jest dostępny w darmowym planie.",
+ "UPGRADE_PROMPT": "Zaktualizuj swój plan, aby uzyskać dostęp do naszych asystentów, copilota i innych funkcji.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI jest dostępny tylko w planach Enterprise.",
+ "UPGRADE_PROMPT": "Zaktualizuj swój plan, aby uzyskać dostęp do naszych asystentów, copilota i innych funkcji.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "BANNER": {
+ "RESPONSES": "Wykorzystałeś ponad 80% limitu odpowiedzi. Aby nadal korzystać z Captain AI, proszę przeprowadź aktualizację.",
+ "DOCUMENTS": "Osiągnięto limit dokumentów. Aby kontynuować korzystanie z Captain AI, przeprowadź aktualizację."
+ },
+ "FORM": {
+ "CANCEL": "Anuluj",
+ "CREATE": "Stwórz",
+ "EDIT": "Aktualizuj"
+ },
+ "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?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "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": "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": "Opis",
+ "PLACEHOLDER": "Enter assistant description",
+ "ERROR": "The description is required"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "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",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Could not find the assistant. Please try again."
+ },
+ "SETTINGS": {
+ "HEADER": "Ustawienia",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Usuń"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Usuń"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Usuń"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tytuł",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Stwórz",
+ "CANCEL": "Anuluj"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Anuluj",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "BULK_DELETE_BUTTON": "Usuń",
+ "BULK_SYNC_BUTTON": "Odśwież",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "aktualizacja...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Page not found",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "Adres URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "Adres URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Tools",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Otwórz fakturę",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Brak",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Klucz API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Hasło",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Typ"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Numer",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Wymagane"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Select all ({count})",
+ "UNSELECT_ALL": "Unselect all ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Usuń",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Wszystkie"
+ },
+ "STATUS": {
+ "TITLE": "Status",
+ "PENDING": "Oczekujące",
+ "APPROVED": "Approved",
+ "ALL": "Wszystkie"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Edytuj",
+ "DELETE_RESPONSE": "Usuń"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Rozłącz"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Tak, usuń",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Skrzynka odbiorcza",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
index 7454c84c6..64ecf52de 100644
--- a/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pl/labelsMgmt.json
@@ -3,17 +3,22 @@
"HEADER": "Etykiety",
"HEADER_BTN_TXT": "Dodaj etykietę",
"LOADING": "Pobieranie etykiet",
+ "DESCRIPTION": "Labels help you categorize and prioritize conversations and leads. You can assign a label to a conversation or contact using the side panel.",
+ "LEARN_MORE": "Learn more about labels",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Szukaj etykiet...",
+ "NO_RESULTS": "No labels found matching your search",
"SEARCH_404": "Brak elementów pasujących do tego zapytania",
- "SIDEBAR_TXT": "Etykiety
Etykiety pomagają w kategoryzowaniu rozmów i ustalaniu ich priorytetów. Możesz przypisać etykietę do rozmowy z panelu bocznego.
Etykiety są przypisane do konta i mogą być wykorzystywane do tworzenia niestandardowych procesów w Twojej organizacji. Możesz przypisać etykiecie niestandardowy kolor, co ułatwia jej identyfikację. Etykietę można wyświetlić na panelu bocznym, aby łatwo filtrować rozmowy.
",
"LIST": {
"404": "Brak etykiet na tym koncie.",
"TITLE": "Zarządzaj etykietami",
"DESC": "Etykiety pozwalają na grupowanie rozmów razem.",
- "TABLE_HEADER": [
- "Nazwa",
- "Opis",
- "Kolor"
- ]
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "DESCRIPTION": "Opis",
+ "COLOR": "Kolor",
+ "ACTION": "Akcje"
+ }
},
"FORM": {
"NAME": {
@@ -49,7 +54,8 @@
"DISMISS": "Odrzuć",
"ADD_SELECTED_LABELS": "Add selected labels",
"ADD_SELECTED_LABEL": "Add selected label",
- "ADD_ALL_LABELS": "Add all labels"
+ "ADD_ALL_LABELS": "Add all labels",
+ "SUGGESTED_LABELS": "Suggested labels"
},
"ADD": {
"TITLE": "Dodaj etykietę",
diff --git a/app/javascript/dashboard/i18n/locale/pl/login.json b/app/javascript/dashboard/i18n/locale/pl/login.json
index 008005d27..ea05184af 100644
--- a/app/javascript/dashboard/i18n/locale/pl/login.json
+++ b/app/javascript/dashboard/i18n/locale/pl/login.json
@@ -3,7 +3,7 @@
"TITLE": "Zaloguj się do Chatwoot",
"EMAIL": {
"LABEL": "E-mail",
- "PLACEHOLDER": "przyklad@nazwafirmy.com",
+ "PLACEHOLDER": "example{'@'}companyname.com",
"ERROR": "Wprowadź poprawny adres e-mail"
},
"PASSWORD": {
@@ -22,6 +22,20 @@
},
"FORGOT_PASSWORD": "Zapomniałeś hasła?",
"CREATE_NEW_ACCOUNT": "Utwórz nowe konto",
- "SUBMIT": "Zaloguj się"
+ "SUBMIT": "Zaloguj się",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/macros.json b/app/javascript/dashboard/i18n/locale/pl/macros.json
index f0d2f1280..3365528e7 100644
--- a/app/javascript/dashboard/i18n/locale/pl/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pl/macros.json
@@ -1,10 +1,14 @@
{
"MACROS": {
"HEADER": "Makra",
+ "DESCRIPTION": "A macro is a set of saved actions that help customer service agents easily complete tasks. The agents can define a set of actions like tagging a conversation with a label, sending an email transcript, updating a custom attribute, etc., and they can run these actions in a single click.",
+ "LEARN_MORE": "Learn more about macros",
+ "COUNT": "{n} macro | {n} macros",
"HEADER_BTN_TXT": "Dodaj nowe makro",
"HEADER_BTN_TXT_SAVE": "Zapisz makro",
"LOADING": "Pobieranie makr",
- "SIDEBAR_TXT": "Makra
Makro to zestaw zapisanych czynności, które pomagają agentom obsługi klienta łatwo wykonywać zadania. Agenci mogą zdefiniować zestaw czynności, takich jak oznaczenie rozmowy etykietą, wysłanie transkryptu rozmowy e-mailem, aktualizacja niestandardowego atrybutu, itp., a następnie uruchamiać te czynności za pomocą jednego kliknięcia. Kiedy agenci uruchamiają makro, czynności są wykonywane sekwencyjnie w kolejności, w jakiej są zdefiniowane. Makra poprawiają produktywność i zwiększają spójność działań.
Makro może być pomocne na dwa sposoby.
Jako pomoc dla agenta: Jeśli agent wykonuje zestaw czynności wielokrotnie, może je zapisać jako makro i uruchamiać wszystkie czynności za pomocą jednego kliknięcia.
Jako opcja wprowadzenia nowego członka zespołu: Każdy agent musi wykonywać wiele różnych czynności sprawdzających/operacyjnych podczas każdej rozmowy. Wprowadzenie nowego członka zespołu wsparcia będzie łatwiejsze, jeśli w ramach konta będą dostępne predefiniowane makra. Zamiast szczegółowego opisywania każdego kroku, menedżer/kierownik zespołu może wskazać na makra używane w różnych scenariuszach.
",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
"ERROR": "Wystąpił błąd. Spróbuj ponownie",
"ORDER_INFO": "Makra będą uruchamiane w kolejności, w jakiej dodajesz czynności. Możesz zmieniać ich kolejność, przeciągając je za uchwyt obok każdego węzła.",
"ADD": {
@@ -24,12 +28,13 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nazwa",
- "Utworzone przez",
- "Ostatnio zaktualizowane przez",
- "Widoczność"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Imię",
+ "CREATED BY": "Utworzone przez",
+ "LAST_UPDATED_BY": "Ostatnio zaktualizowane przez",
+ "VISIBILITY": "Widoczność",
+ "ACTIONS": "Akcje"
+ },
"404": "Nie znaleziono makr"
},
"DELETE": {
@@ -44,6 +49,9 @@
"ERROR_MESSAGE": "Wystąpił błąd podczas usuwania makra. Spróbuj ponownie później"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Edytuj makro",
"API": {
@@ -61,7 +69,9 @@
"LABEL": "Widoczność makra",
"GLOBAL": {
"LABEL": "Publiczne",
- "DESCRIPTION": "To makro jest publicznie dostępne dla wszystkich agentów na tym koncie."
+ "DESCRIPTION": "To makro jest publicznie dostępne dla wszystkich agentów na tym koncie.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Prywatne",
@@ -73,6 +83,39 @@
"BUTTON_TOOLTIP": "Wykonaj",
"PREVIEW": "Podgląd makra",
"EXECUTED_SUCCESSFULLY": "Makro pomyślnie wykonane"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Attribute key is required",
+ "FILTER_OPERATOR_REQUIRED": "Filter operator is required",
+ "VALUE_REQUIRED": "Wartość jest wymagana",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "Value must be between 1 and 998",
+ "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_AGENT": "Remove Assigned Agent",
+ "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"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Brak",
+ "LOW": "Niski",
+ "MEDIUM": "Średni",
+ "HIGH": "Wysoki",
+ "URGENT": "Pilne"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/mfa.json b/app/javascript/dashboard/i18n/locale/pl/mfa.json
new file mode 100644
index 000000000..862e41fea
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Włączone",
+ "DISABLED": "Wyłączone",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "Loading...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Kopiuj",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Anuluj",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Pobierz",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Hasło",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Anuluj",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Anuluj",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/onboarding.json b/app/javascript/dashboard/i18n/locale/pl/onboarding.json
new file mode 100644
index 000000000..47a6c1445
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mail",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Język",
+ "TIMEZONE": "Strefa czasowa",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Wybierz strefę czasową",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "Zapisywanie...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/report.json b/app/javascript/dashboard/i18n/locale/pl/report.json
index 9727192bc..8304ab2e5 100644
--- a/app/javascript/dashboard/i18n/locale/pl/report.json
+++ b/app/javascript/dashboard/i18n/locale/pl/report.json
@@ -3,7 +3,7 @@
"HEADER": "Raporty rozmów",
"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_AGENT_REPORTS": "Pobierz raporty agenta",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Download conversation reports",
"DATA_FETCHING_FAILED": "Nie udało się pobrać danych, spróbuj ponownie później.",
"SUMMARY_FETCHING_FAILED": "Nie udało się pobrać podsumowania, spróbuj ponownie później.",
"METRICS": {
@@ -23,57 +23,43 @@
"NAME": "Czas pierwszej odpowiedzi",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_TIME": {
"NAME": "Czas rozwiązania",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas rozwiązania to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas rozwiązania to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_COUNT": {
"NAME": "Liczba rozwiązań",
"DESC": "(łącznie)"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Liczba rozwiązań",
+ "DESC": "(łącznie)"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Handoff Count",
+ "DESC": "(łącznie)"
+ },
"REPLY_TIME": {
"NAME": "Customer waiting time",
- "TOOLTIP_TEXT": "Waiting time is %{metricValue} (based on %{conversationCount} replies)"
+ "TOOLTIP_TEXT": "Waiting time is {metricValue} (based on {conversationCount} replies)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Ostatnie 7 dni",
+ "LAST_14_DAYS": "Ostatnie 14 dni",
"LAST_30_DAYS": "Ostatnie 30 dni",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Ostatnie 3 miesiące",
"LAST_6_MONTHS": "Ostatnie 6 miesięcy",
"LAST_YEAR": "Ostatni rok",
"CUSTOM_DATE_RANGE": "Niestandardowy zakres dat"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Ostatnie 7 dni"
- },
- {
- "id": 1,
- "name": "Ostatnie 30 dni"
- },
- {
- "id": 2,
- "name": "Ostatnie 3 miesiące"
- },
- {
- "id": 3,
- "name": "Ostatnie 6 miesięcy"
- },
- {
- "id": 4,
- "name": "Ostatni rok"
- },
- {
- "id": 5,
- "name": "Niestandardowy zakres dat"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Zastosuj",
"PLACEHOLDER": "Wybierz zakres dat"
@@ -130,14 +116,28 @@
"groupBy": "Month"
}
],
- "BUSINESS_HOURS": "Godziny pracy"
+ "BUSINESS_HOURS": "Godziny pracy",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nie znaleziono rekordów"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
"HEADER": "Przegląd agentów",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
"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_AGENT_REPORTS": "Pobierz raporty agenta",
"FILTER_DROPDOWN_LABEL": "Wybierz agenta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Szukaj agentów"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -155,13 +155,13 @@
"NAME": "Czas pierwszej odpowiedzi",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_TIME": {
"NAME": "Czas rozwiązania",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas rozwiązania to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas rozwiązania to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_COUNT": {
"NAME": "Liczba rozwiązań",
@@ -201,10 +201,16 @@
},
"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",
"FILTER_DROPDOWN_LABEL": "Wybierz etykietę",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Szukaj etykiet"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -222,13 +228,13 @@
"NAME": "Czas pierwszej odpowiedzi",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_TIME": {
"NAME": "Czas rozwiązania",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas rozwiązania to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas rozwiązania to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_COUNT": {
"NAME": "Liczba rozwiązań",
@@ -268,10 +274,18 @@
},
"INBOX_REPORTS": {
"HEADER": "Przegląd skrzynki odbiorczej",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
"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_INBOX_REPORTS": "Pobierz raporty skrzynki odbiorczej",
"FILTER_DROPDOWN_LABEL": "Wybierz skrzynkę odbiorczą",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -289,13 +303,13 @@
"NAME": "Czas pierwszej odpowiedzi",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_TIME": {
"NAME": "Czas rozwiązania",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas rozwiązania to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas rozwiązania to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_COUNT": {
"NAME": "Liczba rozwiązań",
@@ -335,10 +349,19 @@
},
"TEAM_REPORTS": {
"HEADER": "Przegląd zespołu",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
"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_TEAM_REPORTS": "Pobierz raporty zespołu",
"FILTER_DROPDOWN_LABEL": "Wybierz zespół",
+ "FILTERS": {
+ "ADD_FILTER": "Dodaj filtr",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Szukaj zespołów"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Rozmowy",
@@ -356,13 +379,13 @@
"NAME": "Czas pierwszej odpowiedzi",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas pierwszej odpowiedzi to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_TIME": {
"NAME": "Czas rozwiązania",
"DESC": "(średni)",
"INFO_TEXT": "Całkowita liczba rozmów używanych do obliczeń:",
- "TOOLTIP_TEXT": "Czas rozwiązania to %{metricValue} (na podstawie %{conversationCount} rozmów)"
+ "TOOLTIP_TEXT": "Czas rozwiązania to {metricValue} (na podstawie {conversationCount} rozmów)"
},
"RESOLUTION_COUNT": {
"NAME": "Liczba rozwiązań",
@@ -402,22 +425,48 @@
},
"CSAT_REPORTS": {
"HEADER": "Raporty CSAT",
- "NO_RECORDS": "Brak dostępnych odpowiedzi w ankiecie CSAT.",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
"DOWNLOAD": "Pobierz raporty CSAT",
"DOWNLOAD_FAILED": "Nie udało się pobrać raportów CSAT",
"FILTERS": {
+ "ADD_FILTER": "Dodaj filtr",
+ "CLEAR_ALL": "Clear all",
+ "NO_FILTER": "No filters available",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Szukaj agentów",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Szukaj zespołów",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Wybierz agentów"
+ "LABEL": "Agent"
+ },
+ "INBOXES": {
+ "LABEL": "Skrzynka odbiorcza"
+ },
+ "TEAMS": {
+ "LABEL": "Zespół"
+ },
+ "RATINGS": {
+ "LABEL": "Ocena"
}
},
"TABLE": {
"HEADER": {
"CONTACT_NAME": "Kontakt",
- "AGENT_NAME": "Przypisany agent",
+ "AGENT_NAME": "Agent",
"RATING": "Ocena",
- "FEEDBACK_TEXT": "Tekst opinii"
- }
+ "FEEDBACK_TEXT": "Tekst opinii",
+ "CONVERSATION": "Rozmowa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Łącznie odpowiedzi",
@@ -430,6 +479,46 @@
"RESPONSE_RATE": {
"LABEL": "Wskaźnik odpowiedzi",
"TOOLTIP": "Wskaźnik odpowiedzi: (Całkowita liczba odpowiedzi / Całkowita liczba wysłanych ankiet CSAT) * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Zapisz",
+ "CANCEL": "Anuluj",
+ "SAVING": "Zapisywanie...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Bot Reports",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "No. of Conversations",
+ "TOOLTIP": "Total number of conversations handled by the bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total Responses",
+ "TOOLTIP": "Total number of responses sent by the bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Resolution Rate",
+ "TOOLTIP": "Total number of conversations resolved by the bot / Total number of conversations handled by the bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Handoff Rate",
+ "TOOLTIP": "Total number of conversations handed off to agents / Total number of conversations handled by the bot * 100"
}
}
},
@@ -447,8 +536,16 @@
"CONVERSATION_HEATMAP": {
"HEADER": "Ruch rozmów",
"NO_CONVERSATIONS": "Brak rozmów",
- "CONVERSATION": "%{count} rozmowa",
- "CONVERSATIONS": "%{count} rozmowy"
+ "CONVERSATION": "{count} rozmowa",
+ "CONVERSATIONS": "{count} rozmowy",
+ "DOWNLOAD_REPORT": "Download report"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Brak rozmów",
+ "CONVERSATION": "{count} rozmowa",
+ "CONVERSATIONS": "{count} rozmowy",
+ "DOWNLOAD_REPORT": "Download report"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Rozmowy według agentów",
@@ -456,16 +553,28 @@
"NO_AGENTS": "Brak rozmów według agentów",
"TABLE_HEADER": {
"AGENT": "Agent",
- "OPEN": "OTWARTE",
+ "OPEN": "Otwórz",
+ "UNATTENDED": "Nieobsługiwane",
+ "STATUS": "Status"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Zespół",
+ "OPEN": "Otwórz",
"UNATTENDED": "Nieobsługiwane",
"STATUS": "Status"
}
},
"AGENT_STATUS": {
"HEADER": "Status agenta",
- "ONLINE": "Online",
+ "ONLINE": "Dostępny",
"BUSY": "Zajęty",
- "OFFLINE": "Offline"
+ "OFFLINE": "Niedostępny"
}
},
"DAYS_OF_WEEK": {
@@ -476,5 +585,66 @@
"THURSDAY": "Czwartek",
"FRIDAY": "Piątek",
"SATURDAY": "Sobota"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "SLA Reports",
+ "NO_RECORDS": "SLA applied conversations are not available.",
+ "LOADING": "Loading SLA data...",
+ "DOWNLOAD_SLA_REPORTS": "Download SLA reports",
+ "DOWNLOAD_FAILED": "Failed to download SLA Reports",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Dodaj filtr",
+ "CLEAR_ALL": "Clear all",
+ "CLEAR_FILTER": "Clear filter",
+ "EMPTY_LIST": "Nie znaleziono rekordów",
+ "NO_FILTER": "No filters available",
+ "SEARCH": "Search filter",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "SLA name",
+ "AGENTS": "Nazwa agenta",
+ "INBOXES": "Nazwa skrzynki odbiorczej",
+ "LABELS": "Nazwa etykiety",
+ "TEAMS": "Nazwa zespołu"
+ },
+ "SLA": "SLA Policy",
+ "INBOXES": "Skrzynka odbiorcza",
+ "AGENTS": "Agent",
+ "LABELS": "Etykieta",
+ "TEAMS": "Zespół"
+ },
+ "WITH": "with",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Hit Rate",
+ "TOOLTIP": "Percentage of SLAs created were completed successfully"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Number of Misses",
+ "TOOLTIP": "Total SLA misses in a certain period"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Number of Conversations",
+ "TOOLTIP": "Total number of conversations with SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Policy",
+ "CONVERSATION": "Rozmowa",
+ "AGENT": "Agent"
+ },
+ "VIEW_DETAILS": "View Details"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Liczba rozwiązań",
+ "CONVERSATIONS": "Ilość rozmów"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/search.json b/app/javascript/dashboard/i18n/locale/pl/search.json
index 43710106d..c1f6ed5ac 100644
--- a/app/javascript/dashboard/i18n/locale/pl/search.json
+++ b/app/javascript/dashboard/i18n/locale/pl/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "Wszystkie",
+ "ALL": "All results",
"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"
},
- "EMPTY_STATE": "Nie znaleziono %{item} dla zapytania '%{query}'",
- "EMPTY_STATE_FULL": "Nie znaleziono wyników dla zapytania '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ aby skupić się",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "Wyszukiwanie",
+ "LOADING_DATA": "Loading",
+ "EMPTY_STATE": "Nie znaleziono {item} dla zapytania '{query}'",
+ "EMPTY_STATE_FULL": "Nie znaleziono wyników dla zapytania '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/aby skupić się",
"INPUT_PLACEHOLDER": "Wpisz co najmniej 3 znaki, aby wyszukać",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Clear all",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Wyszukaj według identyfikatora rozmowy, adresu e-mail, numeru telefonu lub treści wiadomości, aby uzyskać lepsze wyniki wyszukiwania.",
"BOT_LABEL": "Bot",
"READ_MORE": "Czytaj więcej",
+ "READ_LESS": "Read less",
"WROTE": "napisał/a:",
- "FROM": "od",
- "EMAIL": "e-mail"
+ "FROM": "Od",
+ "EMAIL": "E-mail",
+ "EMAIL_SUBJECT": "Temat",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Ostatnie 7 dni",
+ "LAST_30_DAYS": "Ostatnie 30 dni",
+ "LAST_60_DAYS": "Ostatnie 60 dni",
+ "LAST_90_DAYS": "Ostatnie 90 dni",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Zastosuj",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Clear filter"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Nadawca",
+ "IN": "Skrzynka odbiorcza",
+ "AGENTS": "Agenci",
+ "CONTACTS": "Kontakty",
+ "INBOXES": "Zarządzanie skrzynkami",
+ "NO_AGENTS": "Nie znaleziono agentów",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/settings.json b/app/javascript/dashboard/i18n/locale/pl/settings.json
index 1059eebf6..f79313072 100644
--- a/app/javascript/dashboard/i18n/locale/pl/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Twoje hasło zostało zmienione",
"AFTER_EMAIL_CHANGED": "Twój profil został pomyślnie zaktualizowany, zaloguj się ponownie po zmianie danych logowania",
"FORM": {
+ "PICTURE": "Profile Picture",
"AVATAR": "Zdjęcie profilowe",
"ERROR": "Proszę naprawić błędy formularza",
"REMOVE_IMAGE": "Usuń",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Domyślny",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Osobisty podpis wiadomości",
"NOTE": "Create a unique message signature to appear at the end of every message you send from any inbox. You can also include an inline image, which is supported in live-chat, email, and API inboxes.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Podpis został pomyślnie zapisany",
"IMAGE_UPLOAD_ERROR": "Couldn't upload image! Try again",
"IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save to save the signature",
- "IMAGE_UPLOAD_SIZE_ERROR": "Rozmiar obrazu powinien być mniejszy niż {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "Rozmiar obrazu powinien być mniejszy niż {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Podpis wiadomości",
@@ -54,15 +81,45 @@
"NOTE": "Zmiana hasła spowoduje zresetowanie logowania na wielu urządzeniach.",
"BTN_TEXT": "Zmień hasło"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Token dostępu",
- "NOTE": "Ten token może być użyty, jeśli budujesz integrację opartą na API"
+ "NOTE": "Ten token może być użyty, jeśli budujesz integrację opartą na API",
+ "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": "Powiadomienia dźwiękowe",
- "NOTE": "Włącz powiadomienia dźwiękowe na pulpicie dla nowych wiadomości i konwersacji.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Brak",
+ "MINE": "Assigned",
+ "ALL": "Wszystkie",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Wydarzenia powiadomień:",
+ "TITLE": "Alert events for conversations",
"NONE": "Brak",
"ASSIGNED": "Przypisane rozmowy",
"ALL_CONVERSATIONS": "Rozmowy"
@@ -74,7 +131,9 @@
"TITLE": "Warunki powiadomień:",
"CONDITION_ONE": "Wysyłaj dźwiękowe powiadomienia tylko wtedy, gdy okno przeglądarki nie jest aktywne",
"CONDITION_TWO": "Wysyłaj powiadomienia co 30 sekund, dopóki wszystkie przypisane rozmowy nie zostaną odczytane"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Czytaj więcej"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Powiadomienia e-mail",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Wysyłaj powiadomienia e-mail po utworzeniu nowej rozmowy",
"CONVERSATION_MENTION": "Wysyłaj powiadomienia e-mail, gdy zostaniesz wymieniony w rozmowie",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Wysyłaj powiadomienia e-mail, gdy w przypisanej konwersacji zostanie utworzona nowa wiadomość",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Wysyłaj powiadomienia e-mail, gdy w rozmowie, w której bierzesz udział, zostanie utworzona nowa wiadomość"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Wysyłaj powiadomienia e-mail, gdy w rozmowie, w której bierzesz udział, zostanie utworzona nowa wiadomość",
+ "SLA_MISSED_FIRST_RESPONSE": "Send email notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send email notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send email notifications when a conversation misses resolution SLA"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Notification preferences",
+ "TYPE_TITLE": "Notification type",
+ "EMAIL": "E-mail",
+ "PUSH": "Push notification",
+ "TYPES": {
+ "CONVERSATION_CREATED": "A new conversation is created",
+ "CONVERSATION_ASSIGNED": "A conversation is assigned to you",
+ "CONVERSATION_MENTION": "You are mentioned in a conversation",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "A new message is created in an assigned conversation",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "A new message is created in a participating conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "A conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "A conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "A conversation misses resolution SLA"
+ },
+ "BROWSER_PERMISSION": "Enable push notifications for your browser so you’re able to receive them"
},
"API": {
"UPDATE_SUCCESS": "Twoje preferencje powiadomień zostały pomyślnie zaktualizowane",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Wysyłaj powiadomienia push, gdy w przypisanej konwersacji zostanie utworzona nowa wiadomość",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Wyślij powiadomienia push, gdy w rozmowie, w której bierzesz udział, zostanie utworzona nowa wiadomość",
"HAS_ENABLED_PUSH": "Włączyłeś opcję powiadomień push dla tej przeglądarki.",
- "REQUEST_PUSH": "Włącz powiadomienia push"
+ "REQUEST_PUSH": "Włącz powiadomienia push",
+ "SLA_MISSED_FIRST_RESPONSE": "Send push notifications when a conversation misses first response SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Send push notifications when a conversation misses next response SLA",
+ "SLA_MISSED_RESOLUTION": "Send push notifications when a conversation misses resolution SLA"
},
"PROFILE_IMAGE": {
"LABEL": "Zdjęcie profilowe"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Dostępność",
- "STATUSES_LIST": [
- "Online",
- "Zajęty",
- "Offline"
- ],
+ "STATUS": {
+ "ONLINE": "Dostępny",
+ "BUSY": "Zajęty",
+ "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",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Zmień dostępność",
- "CHANGE_ACCOUNTS": "Przełącz konto",
- "CONTACT_SUPPORT": "Skontaktuj się z pomocą techniczną",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Wybierz konto z poniższej listy",
- "PROFILE_SETTINGS": "Ustawienia profilu",
- "KEYBOARD_SHORTCUTS": "Skróty klawiszowe",
- "APPEARANCE": "Change Appearance",
- "SUPER_ADMIN_CONSOLE": "Super Admin Console",
- "LOGOUT": "Wyloguj się"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dni pozostało w okresie próbnym.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Konto zawieszone",
"MESSAGE": "Twoje konto zostało zawieszone. Skontaktuj się z zespołem pomocy technicznej w celu uzyskania dodatkowych informacji."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "Pobierz",
"UPLOADING": "Przesyłanie...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Ta historia nie jest już dostępna."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Ta historia nie jest już dostępna.",
+ "INSTAGRAM_STORY_REPLY": "Odpowiedziałeś na swoją historię:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Zobacz na mapie"
},
"FORM_BUBBLE": {
"SUBMIT": "Wyślij"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "Weryfikacja...",
@@ -197,10 +295,12 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Aktualnie przeglądane konto:",
"SWITCH": "Przełącz",
+ "INBOX_VIEW": "Inbox View",
"CONVERSATIONS": "Rozmowy",
- "INBOX": "Skrzynka odbiorcza",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Rozmowy",
"MENTIONED_CONVERSATIONS": "Wzmianki",
"PARTICIPATING_CONVERSATIONS": "Udział",
@@ -208,6 +308,18 @@
"REPORTS": "Raporty",
"SETTINGS": "Ustawienia",
"CONTACTS": "Kontakty",
+ "ACTIVE": "Aktywne",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Tools",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Zarządzanie skrzynkami",
+ "CAPTAIN_SETTINGS": "Ustawienia",
"HOME": "Strona główna",
"AGENTS": "Agenci",
"AGENT_BOTS": "Boty",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Nowa skrzynka odbiorcza",
"REPORTS_CONVERSATION": "Rozmowy",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Kampanie",
"ONGOING": "Trwające",
"ONE_OFF": "Jednorazowe",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agenci",
"REPORTS_LABEL": "Etykiety",
"REPORTS_INBOX": "Skrzynka odbiorcza",
"REPORTS_TEAM": "Zespół",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Ustaw dostępność jako",
+ "SET_YOUR_AVAILABILITY": "Ustaw swoją dostępność",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Custom Roles",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Przegląd",
- "FACEBOOK_REAUTHORIZE": "Twoje połączenie z Facebookiem wygasło, aby kontynuować usługi, ponownie połącz swoją stronę na Facebooku",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Centrum pomocy",
- "ALL_ARTICLES": "Wszystkie artykuły",
- "MY_ARTICLES": "Moje artykuły",
- "DRAFT": "Szkic",
- "ARCHIVED": "Zarchiwizowane",
- "CATEGORY": "Kategoria",
- "SETTINGS": "Ustawienia",
- "CATEGORY_EMPTY_MESSAGE": "Nie znaleziono kategorii"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Kategorie",
+ "LOCALES": "Języki",
+ "SETTINGS": "Ustawienia"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Automatycznie oznaczaj jako offline",
- "INFO_TEXT": "Pozwól systemowi automatycznie oznaczać Cię jako offline, gdy nie korzystasz z aplikacji lub panelu"
+ "INFO_TEXT": "Pozwól systemowi automatycznie oznaczać Cię jako offline, gdy nie korzystasz z aplikacji lub panelu",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Czytaj dokumentację"
+ "DOCS": "Czytaj dokumentację",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Funkcje",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Rozliczenia",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Obecny plan",
- "PLAN_NOTE": "Obecnie subskrybujesz plan **%{plan}** z **%{quantity}** licencjami"
+ "PLAN_NOTE": "Obecnie subskrybujesz plan **{plan}** z **{quantity}** licencjami",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Zarządzaj subskrypcją",
"DESCRIPTION": "Wyświetl swoje poprzednie faktury, edytuj dane rozliczeniowe lub anuluj subskrypcję.",
"BUTTON_TXT": "Przejdź do portalu rozliczeniowego"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Odśwież"
+ },
"CHAT_WITH_US": {
"TITLE": "Potrzebujesz pomocy?",
"DESCRIPTION": "Masz problemy z rozliczeniami? Jesteśmy tutaj, aby pomóc.",
"BUTTON_TXT": "Porozmawiaj z nami"
},
- "NO_BILLING_USER": "Konfigurowanie konta rozliczeniowego. Odśwież stronę i spróbuj ponownie."
+ "NO_BILLING_USER": "Konfigurowanie konta rozliczeniowego. Odśwież stronę i spróbuj ponownie.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Uwaga:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Anuluj",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Powrót",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Kod został skopiowany do schowka",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Wyszukaj atrybuty"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Zamknij rozmowę",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Zamknij rozmowę",
+ "CANCEL": "Anuluj"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Tak",
+ "NO": "Nie"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Ups! Nie znaleziono żadnych kont Chatwoot. Aby kontynuować, utwórz nowe konto.",
@@ -294,7 +624,8 @@
"LABEL": "Nazwa firmy",
"PLACEHOLDER": "Przedsiębiorstwo Wayne"
},
- "SUBMIT": "Wyślij"
+ "SUBMIT": "Wyślij",
+ "CANCEL": "Anuluj"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Przejdź do panelu raportów",
"MOVE_TO_NEXT_TAB": "Przejdź do następnej karty na liście rozmów",
"GO_TO_SETTINGS": "Przejdź do ustawień",
- "SWITCH_CONVERSATION_STATUS": "Przełącz do następnego statusu rozmowy",
"SWITCH_TO_PRIVATE_NOTE": "Przełącz do prywatnej notatki",
"SWITCH_TO_REPLY": "Przełącz do odpowiedzi",
"TOGGLE_SNOOZE_DROPDOWN": "Przełącz menu rozwijane drzemki"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Priorytet",
+ "ACTIVE": "Aktywne",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Edytuj"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Anuluj"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "STATUS": {
+ "LABEL": "Status:",
+ "PLACEHOLDER": "Select status",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Dodaj"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Edytuj"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Anuluj"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Opis:",
+ "PLACEHOLDER": "Enter description"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Dodaj"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Usuń",
+ "CANCEL_BUTTON_LABEL": "Anuluj"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/signup.json b/app/javascript/dashboard/i18n/locale/pl/signup.json
index 839d6fe8f..7ae692a82 100644
--- a/app/javascript/dashboard/i18n/locale/pl/signup.json
+++ b/app/javascript/dashboard/i18n/locale/pl/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Utwórz konto",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Rejestracja",
"TESTIMONIAL_HEADER": "Wszystko czego potrzebujesz to jeden krok do przodu",
"TESTIMONIAL_CONTENT": "Jesteś tylko jeden krok od zaangażowania swoich klientów, zatrzymania ich i znalezienia nowych.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "E-mail służbowy",
- "PLACEHOLDER": "Podaj swój służbowy adres e-mail, np. bruce@wayne.enterprises",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Wprowadź poprawny adres e-mail służbowy"
},
"PASSWORD": {
"LABEL": "Hasło",
"PLACEHOLDER": "Hasło",
"ERROR": "Hasło jest zbyt krótkie",
- "IS_INVALID_PASSWORD": "Hasło powinno zawierać co najmniej 1 wielką literę, 1 małą literę, 1 cyfrę i 1 znak specjalny"
+ "IS_INVALID_PASSWORD": "Hasło powinno zawierać co najmniej 1 wielką literę, 1 małą literę, 1 cyfrę i 1 znak specjalny",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Potwierdź hasło",
"PLACEHOLDER": "Potwierdź hasło",
- "ERROR": "Hasła nie zgadzają się"
+ "ERROR": "Hasła nie pasują."
},
"API": {
- "SUCCESS_MESSAGE": "Rejestracja powiodła się",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Nie można połączyć się z serwerem Woot. Spróbuj ponownie później"
},
"SUBMIT": "Utwórz konto",
- "HAVE_AN_ACCOUNT": "Masz już konto?"
+ "HAVE_AN_ACCOUNT": "Masz już konto?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Resend verification email",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/sla.json b/app/javascript/dashboard/i18n/locale/pl/sla.json
index 9379c3623..3a279fe3a 100644
--- a/app/javascript/dashboard/i18n/locale/pl/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pl/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Add SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Add SLA",
+ "ADD_ACTION_LONG": "Create a new SLA Policy",
+ "DESCRIPTION": "Service Level Agreements (SLAs) are contracts that define clear expectations between your team and customers. They establish standards for response and resolution times, creating a framework for accountability and ensures a consistent, high-quality experience.",
+ "LEARN_MORE": "Learn more about SLA",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "Fetching SLAs",
- "SEARCH_404": "Brak wyników pasujących do wyszukiwania",
- "SIDEBAR_TXT": "SLA
Think of Service Level Agreements (SLAs) like friendly promises between a service provider and a customer.
These promises set clear expectations for things like how quickly the team will respond to issues, making sure you always get a reliable and top-notch experience!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to create SLAs",
+ "AVAILABLE_ON": "The SLA feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to advanced features like team management, automations, custom attributes, and more.",
+ "UPGRADE_NOW": "Upgrade now",
+ "CANCEL_ANYTIME": "You can change or cancel your plan anytime"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SLA feature is only available in the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to access advanced features like audit logs, agent capacity, and more.",
+ "ASK_ADMIN": "Please reach out to your administrator for the upgrade."
+ },
"LIST": {
"404": "There are no SLAs available in this account.",
- "TITLE": "Manage SLA",
- "DESC": "SLAs: Friendly promises for great service!",
- "TABLE_HEADER": [
- "Imię",
- "Opis",
- "FRT",
- "NRT",
- "RT",
- "Godziny pracy"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Enterprise P0",
+ "DESC_1": "Issues raised by enterprise customers, that require immediate attention.",
+ "TITLE_2": "Enterprise P1",
+ "DESC_2": "Issues raised by enterprise customers, that needs to be acknowledged quickly."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "First response time threshold",
+ "NRT": "Next response time threshold",
+ "RT": "Resolution time threshold",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Add SLA",
- "DESC": "SLAs: Friendly promises for great service!",
+ "DESC": "Friendly promises for great service!",
"API": {
"SUCCESS_MESSAGE": "SLA added successfully",
"ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie"
}
},
- "EDIT": {
- "TITLE": "Edit SLA",
+ "DELETE": {
+ "TITLE": "Delete SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA updated successfully",
+ "SUCCESS_MESSAGE": "SLA deleted successfully",
"ERROR_MESSAGE": "Wystąpił błąd, spróbuj ponownie"
+ },
+ "CONFIRM": {
+ "TITLE": "Potwierdź usunięcie",
+ "MESSAGE": "Are you sure you want to delete ",
+ "YES": "Tak, usuń ",
+ "NO": "Nie, zachowaj "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Misses",
+ "FRT": "Czas pierwszej odpowiedzi",
+ "NRT": "Next response time",
+ "RT": "Resolution time",
+ "SHOW_MORE": "{count} more",
+ "HIDE": "Hide {count} rows"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/snooze.json b/app/javascript/dashboard/i18n/locale/pl/snooze.json
new file mode 100644
index 000000000..b8cfa436a
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutes",
+ "HOUR": "hour",
+ "HOURS": "godzin",
+ "DAY": "dnia",
+ "DAYS": "days",
+ "WEEK": "day",
+ "WEEKS": "weeks",
+ "MONTH": "week",
+ "MONTHS": "months",
+ "YEAR": "month",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "jutro",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "następny tydzień",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "day",
+ "DAY": "dnia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
index cefd78fde..10127a363 100644
--- a/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pl/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Utwórz nowy zespół",
"HEADER": "Zespoły",
- "SIDEBAR_TXT": "Zespoły
Zespoły pozwalają zorganizować agentów w grupy na podstawie ich odpowiedzialności.
Agent może być częścią wielu zespołów. Możesz przypisywać rozmowy do zespołu, gdy pracujesz w trybie współpracy.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Szukaj zespołów...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Na tym koncie nie ma żadnych zespołów.",
- "EDIT_TEAM": "Edytuj zespół"
+ "EDIT_TEAM": "Edytuj zespół",
+ "NONE": "Brak"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Dodaj agentów do zespołu",
- "TITLE": "Dodaj agentów do zespołu - %{teamName}",
+ "TITLE": "Dodaj agentów do zespołu - {teamName}",
"DESC": "Dodaj agentów do swojego nowo utworzonego zespołu. Dzięki temu możesz współpracować jako zespół w rozmowach oraz otrzymywać powiadomienia o nowych wydarzeniach w tej samej rozmowie."
},
- "WIZARD": [
- {
- "title": "Utwórz",
- "route": "settings_teams_new",
- "body": "Utwórz nowy zespół agentów."
- },
- {
- "title": "Dodaj agentów",
- "route": "settings_teams_add_agents",
- "body": "Dodaj agentów do zespołu."
- },
- {
- "title": "Zakończ",
- "route": "settings_teams_finish",
- "body": "Wszystko jest gotowe!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Stwórz",
+ "BODY": "Utwórz nowy zespół agentów."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Dodaj agentów",
+ "BODY": "Dodaj agentów do zespołu."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Zakończ",
+ "BODY": "Wszystko jest gotowe!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Aktualizuj agentów w zespole",
- "TITLE": "Dodaj agentów do zespołu - %{teamName}",
+ "TITLE": "Dodaj agentów do zespołu - {teamName}",
"DESC": "Dodaj agentów do swojego nowo utworzonego zespołu. Wszyscy dodani agenci zostaną powiadomieni, gdy rozmowa zostanie przypisana do tego zespołu."
},
- "WIZARD": [
- {
- "title": "Szczegóły zespołu",
- "route": "settings_teams_edit",
- "body": "Zmień nazwę, opis i inne dane."
- },
- {
- "title": "Edytuj agentów",
- "route": "settings_teams_edit_members",
- "body": "Edytuj agentów w zespole."
- },
- {
- "title": "Zakończ",
- "route": "settings_teams_edit_finish",
- "body": "Wszystko jest gotowe!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Szczegóły zespołu",
+ "ROUTE": "settings_teams_edit",
+ "BODY": "Zmień nazwę, opis i inne dane."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Edytuj agentów",
+ "ROUTE": "settings_teams_edit_members",
+ "BODY": "Edytuj agentów w zespole."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Zakończ",
+ "ROUTE": "settings_teams_edit_finish",
+ "BODY": "Wszystko jest gotowe!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Nie udało się zapisać szczegółów zespołu. Spróbuj ponownie."
},
"AGENTS": {
- "AGENT": "AGENT",
- "EMAIL": "EMAIL",
+ "AGENT": "Agent",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Dodaj agentów",
"ADD_AGENTS": "Dodaj agenta do swojego zespołu...",
"SELECT": "wybierz",
"SELECT_ALL": "zaznacz wszystkich agentów",
- "SELECTED_COUNT": "%{selected} z %{total} agentów wybranych."
+ "SELECTED_COUNT": "{selected} z {total} agentów wybranych."
},
"ADD": {
- "TITLE": "Dodaj agentów do zespołu - %{teamName}",
+ "TITLE": "Dodaj agentów do zespołu - {teamName}",
"DESC": "Dodaj agentów do swojego nowo utworzonego zespołu. Dzięki temu możesz współpracować jako zespół w rozmowach oraz otrzymywać powiadomienia o nowych wydarzeniach w tej samej rozmowie.",
"SELECT": "wybierz",
"SELECT_ALL": "zaznacz wszystkich agentów",
- "SELECTED_COUNT": "%{selected} z %{total} agentów wybranych.",
+ "SELECTED_COUNT": "{selected} z {total} agentów wybranych.",
"BUTTON_TEXT": "Dodaj agentów",
"AGENT_VALIDATION_ERROR": "Wybierz co najmniej jednego agenta."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Nie można usunąć zespołu. Spróbuj ponownie."
},
"CONFIRM": {
- "TITLE": "Czy na pewno chcesz usunąć - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Wpisz {teamName}, aby potwierdzić",
"MESSAGE": "Usuwanie zespołu spowoduje usunięcie przypisania zespołu z rozmów przypisanych do tego zespołu.",
"YES": "Usuń ",
diff --git a/app/javascript/dashboard/i18n/locale/pl/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/pl/whatsappTemplates.json
index b6d79af08..100d7dbff 100644
--- a/app/javascript/dashboard/i18n/locale/pl/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/pl/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Szablony WhatsApp",
- "SUBTITLE": "Wybierz szablon WhatsApp, który chcesz wysłać",
- "TEMPLATE_SELECTED_SUBTITLE": "Przetwarzanie %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Wyszukaj szablony",
- "NO_TEMPLATES_FOUND": "Nie znaleziono szablonów dla",
- "LABELS": {
- "LANGUAGE": "Język",
- "TEMPLATE_BODY": "Treść szablonu",
- "CATEGORY": "Kategoria"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Zmienne",
- "VARIABLE_PLACEHOLDER": "Wprowadź wartość %{variable}",
- "GO_BACK_LABEL": "Powrót",
- "SEND_MESSAGE_LABEL": "Wyślij wiadomość",
- "FORM_ERROR_MESSAGE": "Proszę wypełnić wszystkie zmienne przed wysłaniem"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Szablony WhatsApp",
+ "SUBTITLE": "Wybierz szablon WhatsApp, który chcesz wysłać",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Wyszukaj szablony",
+ "NO_TEMPLATES_FOUND": "Nie znaleziono szablonów dla",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Kategoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Język",
+ "TEMPLATE_BODY": "Treść szablonu",
+ "CATEGORY": "Kategoria"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Zmienne",
+ "LANGUAGE": "Język",
+ "CATEGORY": "Kategoria",
+ "VARIABLE_PLACEHOLDER": "Wprowadź wartość {variable}",
+ "GO_BACK_LABEL": "Powrót",
+ "SEND_MESSAGE_LABEL": "Wyślij wiadomość",
+ "FORM_ERROR_MESSAGE": "Proszę wypełnić wszystkie zmienne przed wysłaniem",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/pl/yearInReview.json b/app/javascript/dashboard/i18n/locale/pl/yearInReview.json
new file mode 100644
index 000000000..cdd423b99
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pl/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Zamknij",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "Rozmowy",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Pobierz",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Udostępnij"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json
index b68e38580..89b99d442 100644
--- a/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pt/advancedFilters.json
@@ -1,46 +1,56 @@
{
"FILTER": {
- "TITLE": "Filtrar Conversas",
- "SUBTITLE": "Adicione os seus filtros abaixo e clique 'Aplicar filtros' para eliminar a confusão no chat.",
- "EDIT_CUSTOM_FILTER": "Editar Pasta",
+ "TITLE": "Filtrar conversas",
+ "SUBTITLE": "Adicione os seus filtros abaixo e clique em 'Aplicar filtros' para eliminar a confusão no chat.",
+ "EDIT_CUSTOM_FILTER": "Editar pasta",
"CUSTOM_VIEWS_SUBTITLE": "Adicione ou remova filtros e atualize sua pasta.",
"ADD_NEW_FILTER": "Adicionar filtro",
- "FILTER_DELETE_ERROR": "Ops, parece que não conseguimos salvar nada! Por favor, adicione pelo menos um filtro para salvar.",
+ "FILTER_DELETE_ERROR": "Não foi possível guardar! Por favor, adicione, pelo menos, um filtro para guardar.",
"SUBMIT_BUTTON_LABEL": "Aplicar filtros",
"UPDATE_BUTTON_LABEL": "Atualizar pasta",
- "CANCEL_BUTTON_LABEL": "cancelar",
+ "CANCEL_BUTTON_LABEL": "Cancelar",
"CLEAR_BUTTON_LABEL": "Limpar filtros",
"FOLDER_LABEL": "Nome da pasta",
- "FOLDER_QUERY_LABEL": "Consulta de Pasta",
+ "FOLDER_QUERY_LABEL": "Consulta de pasta",
"EMPTY_VALUE_ERROR": "Valor obrigatório.",
- "TOOLTIP_LABEL": "Filtrar Conversas",
+ "TOOLTIP_LABEL": "Filtrar conversas",
"QUERY_DROPDOWN_LABELS": {
"AND": "E",
"OR": "OU"
},
+ "INPUT_PLACEHOLDER": "Inserir valor",
"OPERATOR_LABELS": {
"equal_to": "Igual a",
"not_equal_to": "Não é igual a",
- "contains": "Contém",
"does_not_contain": "Não contém",
"is_present": "Está presente",
"is_not_present": "Não está presente",
"is_greater_than": "É maior do que",
"is_less_than": "É menor do que",
"days_before": "É x dias antes",
- "starts_with": "Começa com"
+ "starts_with": "Começa com",
+ "equalTo": "Igual a",
+ "notEqualTo": "Não é igual a",
+ "contains": "Contém",
+ "doesNotContain": "Não contém",
+ "isPresent": "Está presente",
+ "isNotPresent": "Não está presente",
+ "isGreaterThan": "É maior do que",
+ "isLessThan": "É menor do que",
+ "daysBefore": "É x dias antes",
+ "startsWith": "Começa com"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Verdadeiro",
"FALSE": "Falso"
},
"ATTRIBUTES": {
- "STATUS": "SItuação",
+ "STATUS": "Situação",
"ASSIGNEE_NAME": "Nome do titular",
"INBOX_NAME": "Nome da caixa de entrada",
"TEAM_NAME": "Nome da equipa",
"CONVERSATION_IDENTIFIER": "ID da conversa",
- "CAMPAIGN_NAME": "Nome da Campanha",
+ "CAMPAIGN_NAME": "Nome da campanha",
"LABELS": "Etiquetas",
"BROWSER_LANGUAGE": "Idioma do browser",
"PRIORITY": "Prioridade",
@@ -50,10 +60,16 @@
"CUSTOM_ATTRIBUTE_TEXT": "Texto",
"CUSTOM_ATTRIBUTE_NUMBER": "Número",
"CUSTOM_ATTRIBUTE_LINK": "Endereço",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Caixa de Seleção",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Caixa de seleção",
"CREATED_AT": "Criada em",
"LAST_ACTIVITY": "Última atividade"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Valor obrigatório",
+ "ATTRIBUTE_KEY_REQUIRED": "A chave do atributo é necessária",
+ "FILTER_OPERATOR_REQUIRED": "Operador do filtro é necessário",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Filtros padrão",
"ADDITIONAL_FILTERS": "Filtros adicionais",
@@ -61,12 +77,12 @@
},
"CUSTOM_VIEWS": {
"ADD": {
- "TITLE": "Deseja guardar este filtro?",
- "LABEL": "Nome do Filtro",
- "PLACEHOLDER": "Dê um nome ao seu filtro para consultá-lo mais tarde.",
+ "TITLE": "Pretende guardar este filtro?",
+ "LABEL": "Nome do filtro",
+ "PLACEHOLDER": "Dê um nome ao filtro, para consultá-lo mais tarde.",
"ERROR_MESSAGE": "Nome é obrigatório.",
- "SAVE_BUTTON": "Guardar Filtro",
- "CANCEL_BUTTON": "cancelar",
+ "SAVE_BUTTON": "Guardar filtro",
+ "CANCEL_BUTTON": "Cancelar",
"API_FOLDERS": {
"SUCCESS_MESSAGE": "Pasta criada com sucesso.",
"ERROR_MESSAGE": "Erro ao criar a pasta."
@@ -77,15 +93,15 @@
}
},
"EDIT": {
- "EDIT_BUTTON": "Editar Pasta"
+ "EDIT_BUTTON": "Editar pasta"
},
"DELETE": {
"DELETE_BUTTON": "Apagar filtro",
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirmar a eliminação",
- "MESSAGE": "Tem a certeza que deseja apagar o filtro ",
- "YES": "Sim, apagar",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que deseja excluir o filtro ",
+ "YES": "Sim, excluir",
"NO": "Não, manter"
}
},
diff --git a/app/javascript/dashboard/i18n/locale/pt/agentBots.json b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
index 34c11e11f..f1b24de61 100644
--- a/app/javascript/dashboard/i18n/locale/pt/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt/agentBots.json
@@ -2,72 +2,116 @@
"AGENT_BOTS": {
"HEADER": "Bots",
"LOADING_EDITOR": "A carregar editor...",
- "HEADER_BTN_TXT": "Adicionar configuração do bot",
- "SIDEBAR_TXT": "Agente Bots
Agente Bots são como os mais fabulosos membros da sua equipe. Eles podem lidar com pequenis processos, para que se possa focar nas coisas mais importantes. Experimente.
Pode gerenciar os seus bots a partir desta página ou criar novos usando o botão 'Adicionar configuração do bot'.
Abra o manual dos bots Agente em nova janela, caso necessite de ajuda.
",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nome do bot",
- "PLACEHOLDER": "Nomeie o 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 salvar"
+ "DESCRIPTION": "Os Agentes Bots são como os membros mais fabulosos da sua equipa. Tratam das pequenas coisas, para que se possa concentrar no que realmente importa. Experimente. Pode gerir os seus bots nesta página ou criar novos, utilizando o botão \"Adicionar Bot\".",
+ "LEARN_MORE": "Learn about agent bots",
+ "COUNT": "{n} bot | {n} bots",
+ "SEARCH_PLACEHOLDER": "Search bots...",
+ "NO_RESULTS": "No bots found matching your search",
+ "GLOBAL_BOT": "Bot do sistema",
+ "GLOBAL_BOT_BADGE": "Sistema",
+ "AVATAR": {
+ "SUCCESS_DELETE": "Avatar do bot apagado",
+ "ERROR_DELETE": "Erro ao apagar avatar do bot, por favor tente novamente"
},
"BOT_CONFIGURATION": {
- "TITLE": "Selecione um agent bot",
- "DESC": "Atribua um Agent Bot à sua caixa de entrada. Eles podem lidar com conversas iniciais e transferi-las para um agente humano quando necessário.",
+ "TITLE": "Selecione um agente bot",
+ "DESC": "Atribua um agente bot à sua caixa de entrada. Eles podem lidar com conversas iniciais e transferi-las para um agente humano quando necessário.",
"SUBMIT": "Atualização",
"DISCONNECT": "Desligar bot",
- "SUCCESS_MESSAGE": "Agent bot atualizado com sucesso.",
+ "SUCCESS_MESSAGE": "Agente bot atualizado com sucesso.",
"DISCONNECTED_SUCCESS_MESSAGE": "O agente bot foi desligado com sucesso.",
- "ERROR_MESSAGE": "Não foi possível atualizar o agent bot. Por favor, tente novamente.",
- "DISCONNECTED_ERROR_MESSAGE": "Não foi possível desliga o agent bot. Por favor, tente novamente.",
+ "ERROR_MESSAGE": "Não foi possível atualizar o agente bot. Por favor, tente novamente.",
+ "DISCONNECTED_ERROR_MESSAGE": "Não foi possível desligar o agente bot. Por favor, tente novamente.",
"SELECT_PLACEHOLDER": "Selecionar bot"
},
"ADD": {
- "TITLE": "Configurar novo bot",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "TITLE": "Adicionar Bot",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot adicionado com sucesso.",
"ERROR_MESSAGE": "Não foi possível adicionar o bot. Por favor, tente novamente mais tarde."
}
},
"LIST": {
- "404": "Nenhum bot encontrado. Pode criar um bot clicando no botão 'Configurar novo bot' ↗️",
- "LOADING": "Carregando bots...",
- "TYPE": "Tipo de bot"
+ "404": "Nenhum bot encontrado. Pode criar um bot clicando no botão \"Adicionar Bot\".",
+ "LOADING": "A carregar bots...",
+ "TABLE_HEADER": {
+ "DETAILS": "Detalhes do bot",
+ "URL": "URL do Webhook",
+ "ACTIONS": "Ações"
+ }
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"TITLE": "Apagar bot",
- "SUBMIT": "excluir",
- "CANCEL_BUTTON_TEXT": "cancelar",
- "DESCRIPTION": "Tem certeza que pretende excluir este bot? Esta ação é irreversível.",
+ "CONFIRM": {
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende apagar o {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."
}
},
"EDIT": {
- "BUTTON_TEXT": "Alterar",
- "LOADING": "Carregando bots...",
+ "BUTTON_TEXT": "Editar",
"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."
}
},
+ "SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Use the secret below to verify webhook signatures. Please copy it now, you can also find it later in the bot settings.",
+ "DONE": "Done",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
+ },
+ "ACCESS_TOKEN": {
+ "TITLE": "Token de acesso",
+ "DESCRIPTION": "Copie o token de acesso e guarde-o de forma segura",
+ "COPY_SUCCESSFUL": "Token de acesso copiado para área de transferência",
+ "RESET_SUCCESS": "O token de acesso voltou a ser gerado",
+ "RESET_ERROR": "Não foi possível voltar a gerar o token de acesso, por favor tente novamente"
+ },
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Bot avatar"
+ },
+ "NAME": {
+ "LABEL": "Nome do bot",
+ "PLACEHOLDER": "Insira o nome do bot",
+ "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://exemplo.com/webhook",
+ "REQUIRED": "O URL do Webhook é obrigatório"
+ },
+ "ERRORS": {
+ "NAME": "O nome do bot é obrigatório",
+ "URL": "O URL do Webhook é obrigatório",
+ "VALID_URL": "Por favor, insira um URL válido que comece por http:// ou https://"
+ },
+ "CANCEL": "Cancelar",
+ "CREATE": "Criar Bot",
+ "UPDATE": "Atualizar Bot"
+ },
+ "WEBHOOK": {
+ "DESCRIPTION": "Configure um webhook para o bot integrar com os seus serviços personalizados. O bot receberá e processará eventos de conversas e pode respondê-los."
+ },
"TYPES": {
- "WEBHOOK": "Webhook bot",
- "CSML": "CSML bot"
+ "WEBHOOK": "Webhook bot"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
index d6ca9dab8..8960de958 100644
--- a/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/agentMgmt.json
@@ -1,32 +1,35 @@
{
"AGENT_MGMT": {
"HEADER": "Agentes",
- "HEADER_BTN_TXT": "Adicionar Agente",
- "LOADING": "Buscando lista de agente",
- "SIDEBAR_TXT": "Agentes
Um Agente é um membro da sua equipa de Suporte ao Cliente.
Os agentes podem ver e responder às mensagens dos seus utilizadores. A lista mostra todos os agentes atualmente na sua conta.
Clique em Adicionar Agente para adicionar um novo agente. O agente que adicionar receberá um e-mail com um link de confirmação para ativar a sua conta, de forma a poderem aceder ao Chatwoot e responder às mensagens.
Os acessos aos recursos do Chatwoot têm como base as seguintes funções.
Agentes - Só podem aceder às caixas de entrada, relatórios e conversas. Podem atribuir conversas a outros agentes ou a eles próprios e responder a pedidos.
Administrador - Têm acesso a todos os recursos do Chatwoot ativados na sua conta, incluindo configurações e todos os privilégios que os Agentes normais têm.
",
+ "HEADER_BTN_TXT": "Adicionar agente",
+ "LOADING": "A procurar lista de agentes",
+ "DESCRIPTION": "Um agente é um membro da sua equipa de suporte que pode visualizar e responder às mensagens de clientes. A lista abaixo mostra todos os agentes da sua conta.",
+ "LEARN_MORE": "Saber mais sobre os papéis de utilizadores",
"AGENT_TYPES": {
"ADMINISTRATOR": "Administrador",
- "AGENT": "Representante"
+ "AGENT": "Agente"
},
+ "COUNT": "{n} agent | {n} agents",
"LIST": {
"404": "Não há agentes associados a esta conta",
- "TITLE": "Gerenciar agentes na sua equipe",
- "DESC": "Você pode adicionar/remover agentes para/da sua equipe.",
+ "TITLE": "Gerir agentes na sua equipa",
+ "DESC": "Pode adicionar/remover agentes para/da sua equipa.",
"NAME": "Nome:",
"EMAIL": "E-mail:",
- "STATUS": "SItuação",
- "ACTIONS": "Ações.",
+ "STATUS": "Situação",
+ "ACTIONS": "Ações",
"VERIFIED": "Verificada",
- "VERIFICATION_PENDING": "Verificação pendente"
+ "VERIFICATION_PENDING": "Verificação pendente",
+ "AVAILABLE_CUSTOM_ROLE": "Available custom role permissions"
},
"ADD": {
- "TITLE": "Adicionar agente à sua equipe",
- "DESC": "Você pode adicionar pessoas que serão capazes de lidar com o suporte de suas caixas de entrada.",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "TITLE": "Adicionar agente à sua equipa",
+ "DESC": "Pode adicionar pessoas que serão capazes de lidar com o suporte das suas caixas de entrada.",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
"NAME": {
- "LABEL": "Nome do Representante",
- "PLACEHOLDER": "Por favor, insira um nome para o agente"
+ "LABEL": "Nome do agente",
+ "PLACEHOLDER": "Por favor, insira o nome do agente"
},
"AGENT_TYPE": {
"LABEL": "Tipo de agente",
@@ -35,35 +38,35 @@
},
"EMAIL": {
"LABEL": "Endereço de e-mail",
- "PLACEHOLDER": "Por favor insira um endereço de e-mail do agente"
+ "PLACEHOLDER": "Por favor, insira o endereço de e-mail do agente"
},
- "SUBMIT": "Adicionar Agente"
+ "SUBMIT": "Adicionar agente"
},
"API": {
"SUCCESS_MESSAGE": "Agente adicionado com sucesso",
- "EXIST_MESSAGE": "E-mail do representante já está em uso, por favor tente outro endereço de e-mail",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "EXIST_MESSAGE": "O e-mail do agente já está a ser utilizado, por favor tente outro endereço de e-mail",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
"SUCCESS_MESSAGE": "Agente excluído com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
},
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir ",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem certeza que deseja excluir agente ",
"YES": "Sim, excluir ",
- "NO": "Não, Manter "
+ "NO": "Não, manter "
}
},
"EDIT": {
- "TITLE": "Editar Representante",
+ "TITLE": "Editar agente",
"FORM": {
"NAME": {
- "LABEL": "Nome do Representante",
- "PLACEHOLDER": "Por favor, insira um nome para o agente"
+ "LABEL": "Nome do agente",
+ "PLACEHOLDER": "Por favor, insira o nome do agente"
},
"AGENT_TYPE": {
"LABEL": "Tipo de agente",
@@ -72,28 +75,30 @@
},
"EMAIL": {
"LABEL": "Endereço de e-mail",
- "PLACEHOLDER": "Por favor insira um endereço de e-mail do agente"
+ "PLACEHOLDER": "Por favor, insira o endereço de e-mail do agente"
},
"AGENT_AVAILABILITY": {
"LABEL": "Disponibilidade",
- "PLACEHOLDER": "Por favor, selecione um status de disponibilidade",
+ "PLACEHOLDER": "Por favor, selecione um estado de disponibilidade",
"ERROR": "Disponibilidade é necessária"
},
- "SUBMIT": "Editar Agente"
+ "SUBMIT": "Editar agente"
},
- "BUTTON_TEXT": "Alterar",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "BUTTON_TEXT": "Editar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Agente atualizado com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
},
"PASSWORD_RESET": {
- "ADMIN_RESET_BUTTON": "Redefinir a senha",
- "ADMIN_SUCCESS_MESSAGE": "Um e-mail com instruções de redefinição de senha foi enviado para o agente",
- "SUCCESS_MESSAGE": "Senha do agente redefinida com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ADMIN_RESET_BUTTON": "Redefinir a palavra-passe",
+ "ADMIN_SUCCESS_MESSAGE": "Um e-mail com instruções para redefinir a palavra-passe foi enviado para o agente",
+ "SUCCESS_MESSAGE": "Palavra-passe do agente redefinida com sucesso",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Procurar agentes...",
+ "NO_RESULTS": "No agents found matching your search",
"SEARCH": {
"NO_RESULTS": "Nenhum resultado encontrado."
},
@@ -101,16 +106,19 @@
"PLACEHOLDER": "Nenhum",
"TITLE": {
"AGENT": "Escolher agente",
- "TEAM": "Escolher Equipa"
+ "TEAM": "Escolher equipa"
+ },
+ "LIST": {
+ "NONE": "Nenhuma"
},
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nenhum agente encontrado",
- "TEAM": "Nenhuma Equipa encontrada"
+ "TEAM": "Nenhuma equipa encontrada"
},
"PLACEHOLDER": {
"AGENT": "Procurar agentes",
- "TEAM": "Procurar Equipas",
+ "TEAM": "Procurar equipas",
"INPUT": "Procurar agentes"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
index 27883db0d..b29d62d85 100644
--- a/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/attributesMgmt.json
@@ -1,17 +1,34 @@
{
"ATTRIBUTES_MGMT": {
"HEADER": "Atributos personalizados",
- "HEADER_BTN_TXT": "Adicionar Atributo Personalizado",
- "LOADING": "Obtendo atributos personalizados",
- "SIDEBAR_TXT": "Atributos personalizados
Um atributo personalizado rastreia factos sobre os seus contactos/conversação - como o plano de assinatura, ou quando encomendaram o primeiro artigo, etc.
Para criar um Atributo Personalizado, basta clicar no botão Adicionar Atributo Personalizado. Também pode editar ou apagar um Atributo Personalizado existente, clicando no botão Editar ou Apagar.
",
+ "HEADER_BTN_TXT": "Adicionar atributo personalizado",
+ "LOADING": "A obter atributos personalizados",
+ "DESCRIPTION": "A custom attribute tracks additional details about your contacts or conversations—such as the subscription plan or the date of their first purchase. You can add different types of custom attributes, such as text, lists, or numbers, to capture the specific information you need.",
+ "LEARN_MORE": "Learn more about custom attributes",
+ "COUNT": "{n} attribute | {n} attributes",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "NO_RESULTS": "No attributes found matching your search",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversa",
+ "CONTACT": "Contacto",
+ "COMPANY": "Empresa"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Texto",
+ "NUMBER": "Número",
+ "LINK": "Endereço",
+ "DATE": "Date",
+ "LIST": "Lista",
+ "CHECKBOX": "Caixa de seleção"
+ },
"ADD": {
- "TITLE": "Adicionar Atributo Personalizado",
+ "TITLE": "Adicionar atributo personalizado",
"SUBMIT": "Criar",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
"NAME": {
- "LABEL": "Mostrar Nome",
- "PLACEHOLDER": "Introduzia um nome de exibição de atributo personalizado",
+ "LABEL": "Mostrar nome",
+ "PLACEHOLDER": "Introduza o nome de exibição do atributo personalizado",
"ERROR": "Nome é obrigatório"
},
"DESC": {
@@ -21,7 +38,7 @@
},
"MODEL": {
"LABEL": "Aplica-se a",
- "PLACEHOLDER": "Por favor selecione um",
+ "PLACEHOLDER": "Por favor, selecione um",
"ERROR": "Modelo é obrigatório"
},
"TYPE": {
@@ -29,9 +46,9 @@
"PLACEHOLDER": "Por favor, selecione um tipo",
"ERROR": "Tipo é obrigatório",
"LIST": {
- "LABEL": "Listar Valores",
- "PLACEHOLDER": "Por favor insira um valor e pressione Enter",
- "ERROR": "Deve possuir pelo menos um valor"
+ "LABEL": "Listar valores",
+ "PLACEHOLDER": "Por favor, insira um valor e pressione Enter",
+ "ERROR": "Deve possuir, pelo menos, um valor"
}
},
"KEY": {
@@ -41,81 +58,90 @@
"IN_VALID": "Chave inválida"
},
"REGEX_PATTERN": {
- "LABEL": "Padrão Regex",
+ "LABEL": "Padrão regex",
"PLACEHOLDER": "Por favor, insira um padrão regex de atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Sugestão Regex",
+ "LABEL": "Sugestão regex",
"PLACEHOLDER": "Por favor, insira dica para o padrão regex. (Opcional)"
},
"ENABLE_REGEX": {
"LABEL": "Ativar validação de regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
},
"API": {
- "SUCCESS_MESSAGE": "Atributo Personalizado adicionado com sucesso!",
- "ERROR_MESSAGE": "Não foi possível criar um atributo personalizado, por favor tente novamente mais tarde."
+ "SUCCESS_MESSAGE": "Atributo personalizado adicionado com sucesso!",
+ "ERROR_MESSAGE": "Não foi possível criar um atributo personalizado, por favor, tente novamente mais tarde."
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
- "SUCCESS_MESSAGE": "Atributo personalizado eliminado com sucesso.",
- "ERROR_MESSAGE": "Não foi possível apagar o atributo personalizado. Tente novamente."
+ "SUCCESS_MESSAGE": "Atributo personalizado excluído com sucesso.",
+ "ERROR_MESSAGE": "Não foi possível excluir o atributo personalizado. Tente novamente."
},
"CONFIRM": {
- "TITLE": "Tem a certeza que quer apagar a equipa - %{attributeName}",
+ "TITLE": "Tem a certeza que pretende apagar a equipa - {attributeName}",
"PLACE_HOLDER": "Por favor, digite {attributeName} para confirmar",
"MESSAGE": "A eliminação irá remover o atributo personalizado",
- "YES": "excluir ",
- "NO": "cancelar"
+ "YES": "Excluir ",
+ "NO": "Cancelar"
}
},
"EDIT": {
- "TITLE": "Editar Atributo Personalizado",
+ "TITLE": "Editar atributo personalizado",
"UPDATE_BUTTON_TEXT": "Atualização",
"TYPE": {
"LIST": {
- "LABEL": "Listar Valores",
- "PLACEHOLDER": "Por favor insira valores e pressione Enter"
+ "LABEL": "Listar valores",
+ "PLACEHOLDER": "Por favor, insira valores e pressione Enter"
}
},
"API": {
"SUCCESS_MESSAGE": "Atributo personalizado atualizado com sucesso",
- "ERROR_MESSAGE": "Houve um erro na actualização do atributo personalizado, por favor tente novamente"
+ "ERROR_MESSAGE": "Houve um erro na atualização do atributo personalizado, por favor, tente novamente"
}
},
"TABS": {
"HEADER": "Atributos personalizados",
"CONVERSATION": "Conversa",
- "CONTACT": "Contato"
+ "CONTACT": "Contacto",
+ "COMPANY": "Empresa"
},
"LIST": {
- "TABLE_HEADER": [
- "Nome:",
- "Descrição",
- "Tipo",
- "Chave"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "DESCRIPTION": "Descrição",
+ "TYPE": "Tipo",
+ "KEY": "Chave"
+ },
"BUTTONS": {
- "EDIT": "Alterar",
- "DELETE": "excluir"
+ "EDIT": "Editar",
+ "DELETE": "Excluir"
},
"EMPTY_RESULT": {
"404": "Não há atributos personalizados criados",
"NOT_FOUND": "Não há atributos personalizados configurados"
},
"REGEX_PATTERN": {
- "LABEL": "Padrão Regex",
+ "LABEL": "Padrão regex",
"PLACEHOLDER": "Por favor, insira um padrão regex de atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Sugestão Regex",
- "PLACEHOLDER": "Por favor, insira dica para o padrão regex. (Opcional)"
+ "LABEL": "Sugestão regex",
+ "PLACEHOLDER": "Por favor, insira uma dica para o padrão regex. (Opcional)"
},
"ENABLE_REGEX": {
"LABEL": "Ativar validação de regex"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pre-chat",
+ "RESOLUTION": "Resolution"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/auditLogs.json b/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
index 778e8092c..04f1bdd03 100644
--- a/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pt/auditLogs.json
@@ -3,69 +3,75 @@
"HEADER": "Logs de auditoria",
"HEADER_BTN_TXT": "Adicionar logs de auditoria",
"LOADING": "A obter logs de auditoria",
+ "DESCRIPTION": "Os logs de auditoria mantêm um registo das atividades na sua conta, permitindo-lhe acompanhar e auditar a sua conta, equipa ou serviços.",
+ "LEARN_MORE": "Saber mais sobre os logs de auditoria",
"SEARCH_404": "Não existem itens correspondentes a esta consulta",
"SIDEBAR_TXT": "Logs de auditoria
Logs de auditoria são registos de eventos e ações de um Sistema de Chatwoot.
",
"LIST": {
"404": "Não há logs de auditoria referentes a esta conta.",
- "TITLE": "Administrar Logs de Auditoria",
- "DESC": "Logs de auditoria são registos de eventos e ações de um Sistema de Chatwoot.",
- "TABLE_HEADER": [
- "User",
- "Action",
- "Endereço IP"
- ]
+ "TITLE": "Gerir logs de auditoria",
+ "DESC": "Logs de auditoria são registos de eventos e ações do Sistema Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "User",
+ "TIME": "Horário",
+ "IP_ADDRESS": "Endereço IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs recuperados com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "SUCCESS_MESSAGE": "Logs de auditoria recuperados com sucesso",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
},
"DEFAULT_USER": "Sistema",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} criou a regra de automação (#%{id})",
- "EDIT": "%{agentName} atualizou a regra de automação (#%{id})",
- "DELETE": "%{agentName} apagou a regra de automação (#%{id})"
+ "ADD": "{agentName} created a new automation rule (#{id})",
+ "EDIT": "{agentName} updated an automation rule (#{id})",
+ "DELETE": "{agentName} deleted an automation rule (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} convidou %{invitee} para a conta como %{role}",
+ "ADD": "{agentName} convidou {invitee} para a conta como {role}",
"EDIT": {
- "SELF": "%{agentName} alterou o seu %{attributes} para %{values}",
- "OTHER": "%{agentName} alterou o parâmetro %{attributes} do utilizador %{user} para %{values}"
+ "SELF": "{agentName} alterou o seu {attributes} para {values}",
+ "OTHER": "{agentName} alterou o parâmetro {attributes} do utilizador {user} para {values}",
+ "DELETED": "{agentName} alterou o parâmetro {attributes} de um utilizador excluído para {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} criou a caixa de entrada (#%{id})",
- "EDIT": "%{agentName} atualizou a caixa de entrada (#%{id})",
- "DELETE": "%{agentName} apagou a caixa de entrada (#%{id})"
+ "ADD": "{agentName} created a new inbox (#{id})",
+ "EDIT": "{agentName} updated an inbox (#{id})",
+ "DELETE": "{agentName} deleted an inbox (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} criou o novo webhook (#%{id})",
- "EDIT": "%{agentName} atualizou o webhook (#%{id})",
- "DELETE": "%{agentName} apagou o webhook (#%{id})"
+ "ADD": "{agentName} created a new webhook (#{id})",
+ "EDIT": "{agentName} updated a webhook (#{id})",
+ "DELETE": "{agentName} deleted a webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} fez o login",
- "SIGN_OUT": "%{agentName} saiu"
+ "SIGN_IN": "{agentName} iniciou sessão",
+ "SIGN_OUT": "{agentName} terminou sessão"
},
"TEAM": {
- "ADD": "%{agentName} criou a nova equipa (#%{id})",
- "EDIT": "%{agentName} atualizou a equipa (#%{id})",
- "DELETE": "%{agentName} apagou a equipe (#%{id})"
+ "ADD": "{agentName} created a new team (#{id})",
+ "EDIT": "{agentName} updated a team (#{id})",
+ "DELETE": "{agentName} deleted a team (#{id})"
},
"MACRO": {
- "ADD": "%{agentName} criou a nova macro (#%{id})",
- "EDIT": "%{agentName} atualizou a macro (#%{id})",
- "DELETE": "%{agentName} apagou a macro (#%{id})"
+ "ADD": "{agentName} created a new macro (#{id})",
+ "EDIT": "{agentName} updated a macro (#{id})",
+ "DELETE": "{agentName} deleted a macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} adicionou %{user} à caixa de entrada(#%{inbox_id})",
- "REMOVE": "%{agentName} removeu %{user} da caixa de entrada(#%{inbox_id})"
+ "ADD": "{agentName} added {user} to the inbox(#{inbox_id})",
+ "REMOVE": "{agentName} removed {user} from the inbox(#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} adicionou %{user} à equipa(#%{team_id})",
- "REMOVE": "%{agentName} removeu %{user} da equipa(#%{team_id})"
+ "ADD": "{agentName} added {user} to the team(#{team_id})",
+ "REMOVE": "{agentName} removed {user} from the team(#{team_id})"
},
"ACCOUNT": {
- "EDIT": "%{agentName} atualizou a configuração da conta (#%{id})"
+ "EDIT": "{agentName} updated the account configuration (#{id})"
+ },
+ "CONVERSATION": {
+ "DELETE": "{agentName} apagou a conversa #{id}"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/automation.json b/app/javascript/dashboard/i18n/locale/pt/automation.json
index cdd43a4fb..e57b58a8e 100644
--- a/app/javascript/dashboard/i18n/locale/pt/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/automation.json
@@ -1,71 +1,75 @@
{
"AUTOMATION": {
- "HEADER": "Automatizações",
- "HEADER_BTN_TXT": "Adicionar Regra de Automação",
- "LOADING": "Buscando regras de automação",
- "SIDEBAR_TXT": "Regras de automação
A automação pode substituir e agilizar processos existentes que requerem esforço manual. Podem ser feitas muitas coisas com automação, incluindo adicionar etiquetas e atribuir a conversas a agentes. Para que a equipa se concentre no que faz melhor e economize tempo em tarefas manuais.
",
+ "HEADER": "Automatização",
+ "DESCRIPTION": "A automação pode substituir e racionalizar os processos existentes que requerem esforço manual, como a adição de etiquetas e a atribuição de conversas ao agente mais adequado. Isto permite que a equipa se foque em tarefas maiores, reduzindo o tempo gasto em tarefas rotineiras.",
+ "LEARN_MORE": "Saber mais sobre automação",
+ "COUNT": "{n} automation | {n} automations",
+ "HEADER_BTN_TXT": "Create Automation",
+ "LOADING": "A procurar regras de automação",
+ "SEARCH_PLACEHOLDER": "Search automation rules...",
+ "NO_RESULTS": "No automation rules found matching your search",
"ADD": {
- "TITLE": "Adicionar Regra de Automação",
+ "TITLE": "Adicionar regra de automação",
"SUBMIT": "Criar",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
"NAME": {
- "LABEL": "Nome da Regra",
- "PLACEHOLDER": "Insira nome da regra",
+ "LABEL": "Nome da regra",
+ "PLACEHOLDER": "Insira o nome da regra",
"ERROR": "Nome é obrigatório"
},
"DESC": {
"LABEL": "Descrição",
- "PLACEHOLDER": "Insera descrição da regra",
+ "PLACEHOLDER": "Insira descrição da regra",
"ERROR": "Descrição é obrigatória"
},
"EVENT": {
"LABEL": "Evento",
- "PLACEHOLDER": "Por favor selecione um",
+ "PLACEHOLDER": "Por favor, selecione um",
"ERROR": "Evento é necessário"
},
"CONDITIONS": {
"LABEL": "Condições"
},
"ACTIONS": {
- "LABEL": "Ações."
+ "LABEL": "Ações"
}
},
- "CONDITION_BUTTON_LABEL": "Adicionar Condição",
- "ACTION_BUTTON_LABEL": "Adicionar Ação",
+ "CONDITION_BUTTON_LABEL": "Adicionar condição",
+ "ACTION_BUTTON_LABEL": "Adicionar ação",
"API": {
- "SUCCESS_MESSAGE": "Regra de automatização adicionada com sucesso",
- "ERROR_MESSAGE": "Não foi possível criar uma regra de automatização, por favor tente novamente mais tarde"
+ "SUCCESS_MESSAGE": "Regra de automação adicionada com sucesso",
+ "ERROR_MESSAGE": "Não foi possível criar uma regra de automação, por favor, tente novamente mais tarde"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nome:",
- "Descrição",
- "Ativa",
- "Criado em"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "ACTIVE": "Ativa",
+ "CREATED_ON": "Criado em",
+ "ACTIONS": "Ações"
+ },
"404": "Nenhuma regra de automação encontrada"
},
"DELETE": {
- "TITLE": "Apagar Regra de Automação",
- "SUBMIT": "excluir",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "TITLE": "Apagar regra de automação",
+ "SUBMIT": "Excluir",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir ",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir a automação ",
"YES": "Sim, excluir ",
- "NO": "Não, Manter "
+ "NO": "Não, manter "
},
"API": {
- "SUCCESS_MESSAGE": "Regra de automatização eliminada com sucesso",
+ "SUCCESS_MESSAGE": "Regra de automação excluída com sucesso",
"ERROR_MESSAGE": "Não foi possível excluir a regra de automação, por favor, tente novamente mais tarde"
}
},
"EDIT": {
- "TITLE": "Editar Regra de Automação",
+ "TITLE": "Editar regra de automação",
"SUBMIT": "Atualização",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Regra de automação atualizada com sucesso",
"ERROR_MESSAGE": "Não foi possível atualizar a regra de automação, por favor, tente novamente mais tarde"
@@ -75,44 +79,115 @@
"TOOLTIP": "Clone",
"API": {
"SUCCESS_MESSAGE": "Automação clonada com sucesso",
- "ERROR_MESSAGE": "Não foi possível clonar regra de automação, por favor, tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível clonar a regra de automação, por favor, tente novamente mais tarde"
}
},
"FORM": {
- "EDIT": "Alterar",
+ "EDIT": "Editar",
"CREATE": "Criar",
- "DELETE": "excluir",
- "CANCEL": "cancelar",
+ "DELETE": "Excluir",
+ "CANCEL": "Cancelar",
"RESET_MESSAGE": "Alterar o tipo de evento irá redefinir as condições e eventos adicionados abaixo"
},
"CONDITION": {
- "DELETE_MESSAGE": "É necessário ter pelo menos uma condição para salvar",
- "CONTACT_CUSTOM_ATTR_LABEL": "Atributos Personalizados do Contato",
- "CONVERSATION_CUSTOM_ATTR_LABEL": "Atributos Personalizados da Conversa"
+ "DELETE_MESSAGE": "É necessário ter, pelo menos, uma condição para guardar",
+ "CONTACT_CUSTOM_ATTR_LABEL": "Atributos personalizados do contacto",
+ "CONVERSATION_CUSTOM_ATTR_LABEL": "Atributos personalizados da conversa"
},
"ACTION": {
- "DELETE_MESSAGE": "É necessário ter pelo menos uma ação para salvar",
+ "DELETE_MESSAGE": "É necessário ter, pelo menos, uma ação para guardar",
"TEAM_MESSAGE_INPUT_PLACEHOLDER": "Introduza aqui a sua mensagem",
- "TEAM_DROPDOWN_PLACEHOLDER": "Selecionar equipas"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Selecionar equipas",
+ "EMAIL_INPUT_PLACEHOLDER": "Inserir e-mail",
+ "URL_INPUT_PLACEHOLDER": "Inserir URL"
},
"TOGGLE": {
- "ACTIVATION_TITLE": "Ativar Regra de Automação",
- "DEACTIVATION_TITLE": "Desativar Regra de Automação",
- "ACTIVATION_DESCRIPTION": "Esta ação irá ativar a regra de automação '{automationName}'. Tem a certeza que deseja continuar?",
- "DEACTIVATION_DESCRIPTION": "Esta ação irá desativar a regra de automação '{automationName}'. Tem a certeza que deseja continuar?",
- "ACTIVATION_SUCCESFUL": "Regra de Automação Ativada com Sucesso",
- "DEACTIVATION_SUCCESFUL": "Regra de Automação Desativada com Sucesso",
- "ACTIVATION_ERROR": "Não foi possível Ativar a Automação, por favor, tente novamente mais tarde",
- "DEACTIVATION_ERROR": "Não foi possível Desativar a Automação, por favor, tente novamente mais tarde",
+ "ACTIVATION_TITLE": "Ativar regra de automação",
+ "DEACTIVATION_TITLE": "Desativar regra de automação",
+ "ACTIVATION_DESCRIPTION": "Esta ação irá ativar a regra de automação '{automationName}'. Tem a certeza que pretende continuar?",
+ "DEACTIVATION_DESCRIPTION": "Esta ação irá desativar a regra de automação '{automationName}'. Tem a certeza que pretende continuar?",
+ "ACTIVATION_SUCCESFUL": "Regra de automação ativada com sucesso",
+ "DEACTIVATION_SUCCESFUL": "Regra de automação desativada com sucesso",
+ "ACTIVATION_ERROR": "Não foi possível ativar a automação. Por favor, tente novamente mais tarde",
+ "DEACTIVATION_ERROR": "Não foi possível desativar a automação. Por favor, tente novamente mais tarde",
"CONFIRMATION_LABEL": "Sim",
"CANCEL_LABEL": "Não"
},
"ATTACHMENT": {
- "UPLOAD_ERROR": "Não foi possível carregar anexo, por favor tente novamente",
+ "UPLOAD_ERROR": "Não foi possível carregar anexo, por favor, tente novamente",
"LABEL_IDLE": "Carregar anexo",
"LABEL_UPLOADING": "A carregar...",
- "LABEL_UPLOADED": "Carregado com sucesso",
- "LABEL_UPLOAD_FAILED": "Upload falhou"
+ "LABEL_UPLOADED": "Anexo carregado com sucesso",
+ "LABEL_UPLOAD_FAILED": "Falha ao carregar anexo"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "A chave do atributo é necessária",
+ "FILTER_OPERATOR_REQUIRED": "Operador do filtro é necessário",
+ "VALUE_REQUIRED": "Valor obrigatório",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998",
+ "ACTION_PARAMETERS_REQUIRED": "Os parâmetros de ação sã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"
+ },
+ "NONE_OPTION": "Nenhuma",
+ "LAST_RESPONDING_AGENT": "Last Responding Agent",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa criada",
+ "CONVERSATION_UPDATED": "Conversa atualizada",
+ "MESSAGE_CREATED": "Mensagem criada",
+ "CONVERSATION_RESOLVED": "Conversation Resolved",
+ "CONVERSATION_OPENED": "Conversa aberta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Atribuir ao agente",
+ "ASSIGN_TEAM": "Atribuir equipa",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remover equipa atribuída",
+ "ADD_LABEL": "Adicionar etiqueta",
+ "REMOVE_LABEL": "Remover um rótulo",
+ "SEND_EMAIL_TO_TEAM": "Enviar um e-mail para a equipa",
+ "SEND_EMAIL_TRANSCRIPT": "Enviar transcrição por e-mail",
+ "MUTE_CONVERSATION": "Silenciar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar conversa",
+ "RESOLVE_CONVERSATION": "Resolver conversa",
+ "SEND_WEBHOOK_EVENT": "Enviar evento webhook",
+ "SEND_ATTACHMENT": "Enviar anexo",
+ "SEND_MESSAGE": "Enviar mensagem",
+ "ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
+ "CHANGE_PRIORITY": "Alterar prioridade",
+ "ADD_SLA": "Adicionar SLA",
+ "OPEN_CONVERSATION": "Abrir conversa",
+ "PENDING_CONVERSATION": "Mark conversation as pending"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Incoming Message",
+ "OUTGOING": "Outgoing Message"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nenhuma",
+ "LOW": "Baixa",
+ "MEDIUM": "Média",
+ "HIGH": "Elevada",
+ "URGENT": "Urgente"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Tipo de mensagem",
+ "PRIVATE_NOTE": "Nota Privada",
+ "MESSAGE_CONTAINS": "A mensagem contém",
+ "EMAIL": "E-mail",
+ "INBOX": "Caixa de entrada",
+ "CONVERSATION_LANGUAGE": "Linguagem da conversa",
+ "PHONE_NUMBER": "Número de telefone",
+ "STATUS": "Situação",
+ "BROWSER_LANGUAGE": "Idioma do navegador",
+ "MAIL_SUBJECT": "Assunto do e-mail",
+ "COUNTRY_NAME": "País",
+ "COMPANY_NAME": "Empresa",
+ "REFERER_LINK": "Link de referência",
+ "ASSIGNEE_NAME": "Atribuído",
+ "TEAM_NAME": "Equipa",
+ "PRIORITY": "Prioridade",
+ "LABELS": "Etiquetas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
index 05a44cff0..f6289e1c1 100644
--- a/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pt/bulkActions.json
@@ -1,39 +1,45 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversas selecionadas",
- "AGENT_SELECT_LABEL": "Escolher agente",
- "ASSIGN_CONFIRMATION_LABEL": "Tem certeza que pretende atribuir %{conversationCount} %{conversationLabel} a",
- "UNASSIGN_CONFIRMATION_LABEL": "Tem certeza que pretende remover a atribuição de %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Retornar",
- "ASSIGN_LABEL": "Atribuir",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversas selecionadas",
+ "NONE": "Nenhuma",
+ "CLEAR_SELECTION": "Limpar",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {agentName}? | Are you sure you want to assign {n} conversations to {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
"YES": "Sim",
+ "CANCEL": "Cancelar",
+ "SEARCH_INPUT_PLACEHOLDER": "Procurar",
"ASSIGN_AGENT_TOOLTIP": "Atribuir agente",
- "ASSIGN_TEAM_TOOLTIP": "Atribuir equipe",
+ "ASSIGN_TEAM_TOOLTIP": "Atribuir equipa",
"ASSIGN_SUCCESFUL": "Conversas atribuídas com sucesso.",
"ASSIGN_FAILED": "Falha ao atribuir conversas. Por favor, tente novamente.",
"RESOLVE_SUCCESFUL": "Conversas resolvidas com sucesso.",
"RESOLVE_FAILED": "Falha ao resolver conversas. Por favor, tente novamente.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "As conversas visíveis nesta página estão apenas selecionadas.",
- "AGENT_LIST_LOADING": "Carregando agentes",
"UPDATE": {
"CHANGE_STATUS": "Alterar estado",
- "SNOOZE_UNTIL_NEXT_REPLY": "Adiar até a próxima resposta.",
+ "SNOOZE_UNTIL": "Adiar",
"UPDATE_SUCCESFUL": "Estado da conversa atualizado com sucesso.",
"UPDATE_FAILED": "Falha ao atualizar conversas. Por favor, tente novamente."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Cannot resolve conversations due to missing required attributes",
+ "PARTIAL_SUCCESS": "Some conversations need required attributes before resolving and were skipped"
+ },
"LABELS": {
"ASSIGN_LABELS": "Atribuir etiquetas",
- "NO_LABELS_FOUND": "Nenhuma etiqueta encontrada para",
+ "REMOVE_LABELS": "Remove labels",
"ASSIGN_SELECTED_LABELS": "Atribuir etiquetas selecionadas",
+ "REMOVE_SELECTED_LABELS": "Remove selected labels",
"ASSIGN_SUCCESFUL": "Etiquetas atribuídas com sucesso.",
- "ASSIGN_FAILED": "Falha ao atribuir etiquetas. Por favor, tente novamente."
+ "ASSIGN_FAILED": "Falha ao atribuir etiquetas. Por favor, tente novamente.",
+ "REMOVE_SUCCESFUL": "Labels removed successfully.",
+ "REMOVE_FAILED": "Failed to remove labels. Please try again."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Escolher Equipa",
"NONE": "Nenhuma",
- "NO_TEAMS_AVAILABLE": "Não há equipas nesta conta.",
- "ASSIGN_SELECTED_TEAMS": "Atribuir equipa selecionada.",
- "ASSIGN_SUCCESFUL": "Equipas atribuídas com sucesso.",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to assign {n} conversation to {teamName}? | Are you sure you want to assign {n} conversations to {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Are you sure you want to unassign {n} conversation? | Are you sure you want to unassign {n} conversations?",
+ "ASSIGN_SUCCESFUL": "Equipas atribuídas.",
"ASSIGN_FAILED": "Falha ao atribuir equipa. Tente novamente."
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/campaign.json b/app/javascript/dashboard/i18n/locale/pt/campaign.json
index 8a49522fc..25e8cc065 100644
--- a/app/javascript/dashboard/i18n/locale/pt/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/pt/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campanhas",
- "SIDEBAR_TXT": "Mensagens proativas permitem-lhe enviar mensagens automáticas aos seus contatos, o que irá originar mais conversas. Clique em Adicionar Campanha para criar uma nova campanha. Também pode editar ou apagar uma campanha existente clicando no botão Editar ou Apagar.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Criar uma campanha de ausência",
- "ONGOING": "Criar uma campanha em andamento"
- },
- "ADD": {
- "TITLE": "Criar uma campanha",
- "DESC": "As mensagens proativas permitem-lhe enviar mensagens automáticas aos seus contatos, o que origina um maior número de conversas.",
- "CANCEL_BUTTON_TEXT": "cancelar",
- "CREATE_BUTTON_TEXT": "Criar",
- "FORM": {
- "TITLE": {
- "LABEL": "Nome",
- "PLACEHOLDER": "Por favor, digite o nome da campanha",
- "ERROR": "Nome é obrigatório"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Live chat campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Ativado",
+ "DISABLED": "Inativo"
},
- "SCHEDULED_AT": {
- "LABEL": "Horário agendado",
- "PLACEHOLDER": "Por favor, escolha a hora",
- "CONFIRM": "Confirmar",
- "ERROR": "Horário de agendamento obrigatório"
- },
- "AUDIENCE": {
- "LABEL": "Público-alvo",
- "PLACEHOLDER": "Escolher etiquetas dos clientes",
- "ERROR": "Publico-alvo necessário"
- },
- "INBOX": {
- "LABEL": "Escolher caixa de entrada",
- "PLACEHOLDER": "Escolher caixa de entrada",
- "ERROR": "Caixa de entrada necessária"
- },
- "MESSAGE": {
- "LABEL": "Messagem",
- "PLACEHOLDER": "Por favor, digite a mensagem da campanha",
- "ERROR": "A mensagem é obrigatória"
- },
- "SENT_BY": {
- "LABEL": "Enviado por",
- "PLACEHOLDER": "Por favor, escolha o conteúdo da campanha",
- "ERROR": "Remetente é obrigatório"
- },
- "END_POINT": {
- "LABEL": "URL",
- "PLACEHOLDER": "Por favor, insira a URL",
- "ERROR": "Por favor, insira uma URL válida"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Tempo na página (segundos)",
- "PLACEHOLDER": "Por favor, digite a hora",
- "ERROR": "O tempo na página é obrigatório"
- },
- "ENABLED": "Ativar a campanha",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Ativar apenas durante o horário de trabalho",
- "SUBMIT": "Adicionar Campanha"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Enviado por",
+ "BOT": "Bot",
+ "FROM": "de",
+ "URL": "URL:"
+ }
},
+ "EMPTY_STATE": {
+ "TITLE": "No live chat campaigns are available",
+ "SUBTITLE": "Connect with your customers using proactive messages. Click 'Create campaign' to get started."
+ },
+ "CREATE": {
+ "TITLE": "Create a live chat campaign",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, insira o título da campanha",
+ "ERROR": "Título obrigatório"
+ },
+ "MESSAGE": {
+ "LABEL": "Messagem",
+ "PLACEHOLDER": "Por favor, insira a mensagem da campanha",
+ "ERROR": "A mensagem é obrigatória"
+ },
+ "INBOX": {
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "SENT_BY": {
+ "LABEL": "Enviado por",
+ "PLACEHOLDER": "Please select sender",
+ "ERROR": "O remetente é obrigatório"
+ },
+ "END_POINT": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Por favor, insira o URL",
+ "ERROR": "Por favor, insira um URL válido"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Tempo na página (segundos)",
+ "PLACEHOLDER": "Por favor, insira a hora",
+ "ERROR": "O tempo na página é obrigatório"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Other preferences",
+ "ENABLED": "Ativar a campanha",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Ativar apenas durante o horário de trabalho"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign created successfully",
+ "ERROR_MESSAGE": "Ocorreu um erro. Por favor, tente novamente."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Edit live chat campaign",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Live chat campaign updated successfully",
+ "ERROR_MESSAGE": "Ocorreu um erro. Por favor, tente novamente."
+ }
+ }
+ }
+ },
+ "SMS": {
+ "HEADER_TITLE": "SMS campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No SMS campaigns are available",
+ "SUBTITLE": "Launch an SMS campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Concluída",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create SMS campaign",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, insira o título da campanha",
+ "ERROR": "Título obrigatório"
+ },
+ "MESSAGE": {
+ "LABEL": "Messagem",
+ "PLACEHOLDER": "Por favor, insira a mensagem da campanha",
+ "ERROR": "A mensagem é obrigatória"
+ },
+ "INBOX": {
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "AUDIENCE": {
+ "LABEL": "Público-alvo",
+ "PLACEHOLDER": "Escolher etiquetas dos clientes",
+ "ERROR": "Público-alvo obrigatório"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Horário agendado",
+ "PLACEHOLDER": "Por favor, selecione a hora",
+ "ERROR": "Horário de agendamento obrigatório"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "SMS campaign created successfully",
+ "ERROR_MESSAGE": "Ocorreu um erro. Por favor, tente novamente."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "WhatsApp campaigns",
+ "NEW_CAMPAIGN": "Create campaign",
+ "EMPTY_STATE": {
+ "TITLE": "No WhatsApp campaigns are available",
+ "SUBTITLE": "Launch a WhatsApp campaign to reach your customers directly. Send offers or make announcements with ease. Click 'Create campaign' to get started."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processing",
+ "COMPLETED": "Concluída",
+ "SCHEDULED": "Scheduled"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Sent from",
+ "ON": "on"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Create WhatsApp campaign",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, insira o título da campanha",
+ "ERROR": "Título obrigatório"
+ },
+ "INBOX": {
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "TEMPLATE": {
+ "LABEL": "WhatsApp Template",
+ "PLACEHOLDER": "Select a template",
+ "INFO": "Select a template to use for this campaign.",
+ "ERROR": "Template is required",
+ "PREVIEW_TITLE": "Processo {templateName}",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLES_LABEL": "Variáveis",
+ "VARIABLE_PLACEHOLDER": "Enter value for {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Público-alvo",
+ "PLACEHOLDER": "Escolher etiquetas dos clientes",
+ "ERROR": "Público-alvo obrigatório"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Horário agendado",
+ "PLACEHOLDER": "Por favor, selecione a hora",
+ "ERROR": "Horário de agendamento obrigatório"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "WhatsApp campaign created successfully",
+ "ERROR_MESSAGE": "Ocorreu um erro. Por favor, tente novamente."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Tem a certeza que pretende excluir?",
+ "DESCRIPTION": "The delete action is permanent and cannot be reversed.",
+ "CONFIRM": "Excluir",
"API": {
- "SUCCESS_MESSAGE": "Campanha criado com sucesso",
+ "SUCCESS_MESSAGE": "Campanha excluída com sucesso",
"ERROR_MESSAGE": "Ocorreu um erro. Por favor, tente novamente."
}
- },
- "DELETE": {
- "BUTTON_TEXT": "excluir",
- "CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir?",
- "YES": "Sim, excluir ",
- "NO": "Não, Manter "
- },
- "API": {
- "SUCCESS_MESSAGE": "Campanha apagada com sucesso",
- "ERROR_MESSAGE": "Não foi possível apagar a campanha. Por favor, tente novamente mais tarde."
- }
- },
- "EDIT": {
- "TITLE": "Editar a campanha",
- "UPDATE_BUTTON_TEXT": "Atualização",
- "API": {
- "SUCCESS_MESSAGE": "Campanha atualizada com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "A carregar campanhas...",
- "404": "Não há campanhas criadas para esta caixa de entrada.",
- "TABLE_HEADER": {
- "TITLE": "Nome",
- "MESSAGE": "Messagem",
- "INBOX": "Recebidas",
- "STATUS": "SItuação",
- "SENDER": "Remetente",
- "URL": "URL",
- "SCHEDULED_AT": "Horário agendado",
- "TIME_ON_PAGE": "Tempo (segundos)",
- "CREATED_AT": "Criada em"
- },
- "BUTTONS": {
- "ADD": "Adicionar",
- "EDIT": "Alterar",
- "DELETE": "excluir"
- },
- "STATUS": {
- "ENABLED": "Ativado",
- "DISABLED": "Desabilitado",
- "COMPLETED": "Concluída",
- "ACTIVE": "Ativa"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Uma campanha pontual",
- "404": "Não há nenhuma campanha pontual criada",
- "INBOXES_NOT_FOUND": "Por favor, crie uma caixa de entrada para SMS e comece a adicionar campanhas"
- },
- "ONGOING": {
- "HEADER": "Campanhas em andamento",
- "404": "Não há campanhas em andamento criadas",
- "INBOXES_NOT_FOUND": "Por favor, crie uma caixa de entrada para o SITE e comece a adicionar campanhas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
index 38d1b298d..d42eb7bc9 100644
--- a/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/cannedMgmt.json
@@ -1,24 +1,28 @@
{
"CANNED_MGMT": {
- "HEADER": "Respostas Prontas",
+ "HEADER": "Respostas prontas",
+ "LEARN_MORE": "Saber mais sobre respostas prontas",
+ "DESCRIPTION": "Respostas prontas são modelos de resposta pré-escritos que o ajudam a responder rapidamente a uma conversa. Os agentes podem inserir o caractere '/' seguido do código curto para inserir uma resposta pronta durante uma conversa. ",
+ "COUNT": "{n} canned response | {n} canned responses",
"HEADER_BTN_TXT": "Adicionar resposta pronta",
"LOADING": "A obter respostas prontas...",
- "SEARCH_404": "Não existem itens correspondentes a esta consulta.",
- "SIDEBAR_TXT": "Respostas Prontas
Respostas Prontas são modelos de resposta pré-escritos que o ajudam a responder rapidamente a uma conversa. Para inserir uma resposta pronta durante um chat, os agentes podem digitar um pequeno código precedido por um caractere '/'.
Pode gerir as suas respostas prontas a partir desta página ou criar novas usando o botão \"Adicionar resposta pronta\".
Abre o Manual de Respostas Prontas em outra janela para obter ajuda.
Além disso, confira a nova Biblioteca de Respostas Prontas.
",
+ "SEARCH_PLACEHOLDER": "Search canned responses...",
+ "NO_RESULTS": "No canned responses found matching your search",
+ "SEARCH_404": "Não há itens correspondentes a esta consulta.",
"LIST": {
"404": "Não há respostas prontas disponíveis nesta conta.",
- "TITLE": "Gerenciar respostas prontas",
- "DESC": "Respostas prontas são modelos de resposta pré-definidos, que podem ser usados para enviar respostas rapidamente para conversas.",
- "TABLE_HEADER": [
- "Código curto",
- "Conteúdo",
- "Ações."
- ]
+ "TITLE": "Gerir respostas prontas",
+ "DESC": "Respostas prontas são modelos de resposta pré-definidos que podem ser usados para responder mais rapidamente a conversas.",
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Código curto",
+ "CONTENT": "Conteúdo",
+ "ACTIONS": "Ações"
+ }
},
"ADD": {
"TITLE": "Adicionar resposta pronta",
- "DESC": "Respostas prontas são modelos de resposta pré-definidos, que podem ser usados para enviar respostas rapidamente para conversas.",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "DESC": "Respostas prontas são modelos de resposta pré-definidos que podem ser usados para responder mais rapidamente a conversas.",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
"SHORT_CODE": {
"LABEL": "Código curto",
@@ -26,11 +30,11 @@
"ERROR": "O código curto é obrigatório."
},
"CONTENT": {
- "LABEL": "Messagem",
- "PLACEHOLDER": "Por favor escreva a mensagem que deseja salvar como um modelo para usar mais tarde.",
+ "LABEL": "Mensagem",
+ "PLACEHOLDER": "Por favor, escreva a mensagem que pretende guardar como um modelo para usar mais tarde.",
"ERROR": "Mensagem é um campo obrigatório."
},
- "SUBMIT": "submeter"
+ "SUBMIT": "Submeter"
},
"API": {
"SUCCESS_MESSAGE": "Resposta pronta adicionada com sucesso.",
@@ -39,7 +43,7 @@
},
"EDIT": {
"TITLE": "Editar resposta pronta",
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"FORM": {
"SHORT_CODE": {
"LABEL": "Código curto",
@@ -47,28 +51,28 @@
"ERROR": "Código curto é obrigatório."
},
"CONTENT": {
- "LABEL": "Messagem",
- "PLACEHOLDER": "Por favor escreva a mensagem que deseja salvar como um modelo para usar mais tarde.",
+ "LABEL": "Mensagem",
+ "PLACEHOLDER": "Por favor, escreva a mensagem que pretende guardar como um modelo para usar mais tarde.",
"ERROR": "A mensagem é obrigatória."
},
- "SUBMIT": "submeter"
+ "SUBMIT": "Submeter"
},
- "BUTTON_TEXT": "Alterar",
+ "BUTTON_TEXT": "Editar",
"API": {
"SUCCESS_MESSAGE": "Resposta pronta atualizada com sucesso.",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
- "SUCCESS_MESSAGE": "Resposta pronta apagada com sucesso.",
+ "SUCCESS_MESSAGE": "Resposta pronta excluída com sucesso.",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
},
"CONFIRM": {
- "TITLE": "Confirmar a eliminação",
- "MESSAGE": "Tem certeza que deseja excluir ",
- "YES": "Sim, apagar ",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir a resposta pronta ",
+ "YES": "Sim, excluir ",
"NO": "Não, manter "
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/chatlist.json b/app/javascript/dashboard/i18n/locale/pt/chatlist.json
index c3c1c97ee..a542e663e 100644
--- a/app/javascript/dashboard/i18n/locale/pt/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pt/chatlist.json
@@ -1,16 +1,17 @@
{
"CHAT_LIST": {
- "LOADING": "Buscando conversas",
- "LOAD_MORE_CONVERSATIONS": "Carregar mais conversas",
+ "LOADING": "A carregar conversas",
+ "LOAD_MORE_CONVERSATIONS": "A carregar mais conversas",
"EOF": "Todas as conversas carregadas 🎉",
"LIST": {
"404": "Não há conversas ativas neste grupo."
},
+ "FAILED_TO_SEND": "Failed to send",
"TAB_HEADING": "Conversas",
"MENTION_HEADING": "Menções",
- "UNATTENDED_HEADING": "Por tratar",
+ "UNATTENDED_HEADING": "Por responder",
"SEARCH": {
- "INPUT": "Pesquisar pessoas, conversas, respostas salvas .."
+ "INPUT": "Pesquisar pessoas, conversas, respostas guardadas .."
},
"FILTER_ALL": "Todas",
"ASSIGNEE_TYPE_TABS": {
@@ -38,7 +39,7 @@
"VIEW_FILTER": "Visualizar",
"SORT_TOOLTIP_LABEL": "Ordenar conversas",
"CHAT_SORT": {
- "STATUS": "SItuação",
+ "STATUS": "Situação",
"ORDER_BY": "Ordenar por"
},
"CHAT_TIME_STAMP": {
@@ -53,7 +54,7 @@
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": "Última Atividade: Mais antigos primeiro"
+ "TEXT": "Última Atividade: Mais antigas primeiro"
},
"last_activity_at_desc": {
"TEXT": "Última Atividade: Mais recentes primeiro"
@@ -62,19 +63,22 @@
"TEXT": "Criado em: Mais recentes primeiro"
},
"created_at_asc": {
- "TEXT": "Criado em: Mais antigos primeiro"
+ "TEXT": "Criado em: Mais antigas primeiro"
},
"priority_desc": {
- "TEXT": "Prioridade: Mais alto primeiro"
+ "TEXT": "Prioridade: Mais alta primeiro"
},
"priority_asc": {
- "TEXT": "Prioridade: Mais baixo primeiro"
+ "TEXT": "Prioridade: Mais baixa primeiro"
},
"waiting_since_asc": {
- "TEXT": "Resposta pendente: Mais longo primeiro"
+ "TEXT": "Resposta pendente: Mais longa primeiro"
},
"waiting_since_desc": {
- "TEXT": "Resposta pendente: Mais curto primeiro"
+ "TEXT": "Resposta pendente: Mais curta primeiro"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Priority: Highest first, Created: Oldest first"
}
},
"ATTACHMENTS": {
@@ -88,13 +92,22 @@
"CONTENT": "Mensagem de vídeo"
},
"file": {
- "CONTENT": "Arquivo anexo"
+ "CONTENT": "Carregar anexo"
},
"location": {
"CONTENT": "Local:"
},
+ "ig_reel": {
+ "CONTENT": "Instagram Reel"
+ },
"fallback": {
- "CONTENT": "compartilhou uma url"
+ "CONTENT": "partilhou um URL"
+ },
+ "contact": {
+ "CONTENT": "Shared contact"
+ },
+ "embed": {
+ "CONTENT": "Embedded content"
}
},
"CHAT_SORT_BY_FILTER": {
@@ -117,15 +130,17 @@
},
"RECEIVED_VIA_EMAIL": "Recebido por e-mail",
"VIEW_TWEET_IN_TWITTER": "Ver mensagem no Twitter",
- "REPLY_TO_TWEET": "Responder à mensagem",
+ "REPLY_TO_TWEET": "Responder a esta mensagem",
"LINK_TO_STORY": "Ir para story do instagram",
"SENT": "Enviado com sucesso",
"READ": "Lido com sucesso",
"DELIVERED": "Entregue com sucesso",
- "NO_MESSAGES": "Nenhuma mensagem",
+ "NO_MESSAGES": "Sem mensagens",
"NO_CONTENT": "Sem conteúdo disponível",
- "HIDE_QUOTED_TEXT": "Ocultar Texto Citado",
- "SHOW_QUOTED_TEXT": "Mostrar Texto Citado",
- "MESSAGE_READ": "Lida"
+ "HIDE_QUOTED_TEXT": "Ocultar texto citado",
+ "SHOW_QUOTED_TEXT": "Mostrar texto citado",
+ "MESSAGE_READ": "Lida",
+ "SENDING": "Sending",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/companies.json b/app/javascript/dashboard/i18n/locale/pt/companies.json
new file mode 100644
index 000000000..e9ea3b171
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Companies",
+ "SORT_BY": {
+ "LABEL": "Ordenar por",
+ "OPTIONS": {
+ "NAME": "Nome:",
+ "DOMAIN": "Domínio",
+ "CREATED_AT": "Criada em",
+ "LAST_ACTIVITY_AT": "Última atividade",
+ "CONTACTS_COUNT": "Contacts count"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Order",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Search companies...",
+ "LOADING": "Loading companies...",
+ "UNNAMED": "Unnamed Company",
+ "CONTACTS_COUNT": "{n} contact | {n} contacts",
+ "ACTIONS": {
+ "CREATE": "Add company"
+ },
+ "CREATE": {
+ "TITLE": "Add company details",
+ "ACTIONS": {
+ "SAVE": "Add company"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Company created.",
+ "ERROR": "Could not create the company."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Loading company details...",
+ "EMPTY_STATE": {
+ "TITLE": "Company not found",
+ "SUBTITLE": "This company may have been removed or is no longer available in this account."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "CONTACTS": "Contactos",
+ "HISTORY": "History",
+ "NOTES": "Notas"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "No conversations found for this company's contacts yet."
+ },
+ "NOTES": {
+ "EMPTY": "No notes found for this company's contacts yet."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "EMPTY_STATE": "There are no company custom attributes configured yet.",
+ "NO_ATTRIBUTES": "No matching attributes found.",
+ "UNUSED_ATTRIBUTES": "{count} unused attribute | {count} unused attributes",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company attribute updated.",
+ "UPDATE_ERROR": "Could not update company attribute.",
+ "DELETE_SUCCESS": "Company attribute removed.",
+ "DELETE_ERROR": "Could not remove company attribute."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "A carregar contactos...",
+ "EMPTY": "No contacts are linked to this company yet.",
+ "UNNAMED_CONTACT": "Unnamed contact",
+ "ACTIONS": {
+ "ADD": "Add contact",
+ "REMOVE": "Remove contact"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Search for an existing contact and link it to this company.",
+ "SEARCH_PLACEHOLDER": "Search contacts...",
+ "INITIAL": "Start typing to search contacts.",
+ "EMPTY": "No contacts found.",
+ "CONFIRM_TITLE": "Link contact",
+ "CONFIRM_DESCRIPTION": "Confirm the company and contact before linking them.",
+ "COMPANY_LABEL": "Empresa",
+ "CONTACT_LABEL": "Contacto",
+ "CURRENT_COMPANY": "Currently linked to {companyName}",
+ "ADD": "Link contact",
+ "CANCEL": "Cancelar"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contact linked to company.",
+ "ADD_ERROR": "Could not link contact to company.",
+ "REASSIGN_SUCCESS": "Contact reassigned to company.",
+ "REASSIGN_ERROR": "Could not reassign contact to company.",
+ "REMOVE_SUCCESS": "Contact removed from company.",
+ "REMOVE_ERROR": "Could not remove contact from company."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Updating company avatar...",
+ "UPLOAD_SUCCESS": "Company avatar updated.",
+ "UPLOAD_ERROR": "Could not update the company avatar.",
+ "DELETE_SUCCESS": "Company avatar removed.",
+ "DELETE_ERROR": "Could not remove the company avatar."
+ },
+ "PROFILE": {
+ "TITLE": "Edit company details",
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVE": "Last active {date}",
+ "DESCRIPTION_PLACEHOLDER": "Add a short description for this company",
+ "ACTIONS": {
+ "SAVE": "Update company"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Company updated.",
+ "UPDATE_ERROR": "Could not update the company."
+ },
+ "FIELDS": {
+ "NAME": "Nome:",
+ "DOMAIN": "Domínio"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Danger zone",
+ "SECTION_DESCRIPTION": "Delete this company and unlink its contacts. The contacts will remain in the account.",
+ "BUTTON": "Delete company",
+ "TITLE": "Delete company?",
+ "DESCRIPTION": "This will remove the company and unlink all associated contacts. Contacts themselves will be preserved.",
+ "DESCRIPTION_WITH_NAME": "This will remove {companyName} and unlink all associated contacts. Contacts themselves will be preserved.",
+ "CONFIRM": "Delete company",
+ "MESSAGES": {
+ "SUCCESS": "Company deleted.",
+ "ERROR": "Could not delete the company."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No companies found"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} – {endItem} of {totalItems} company | Showing {startItem} – {endItem} of {totalItems} companies"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/components.json b/app/javascript/dashboard/i18n/locale/pt/components.json
new file mode 100644
index 000000000..9565bd6b2
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} items",
+ "CURRENT_PAGE_INFO": "{currentPage} de {totalPages} páginas"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Select an option...",
+ "EMPTY_SEARCH_RESULTS": "No items found for the search term `{searchTerm}`",
+ "EMPTY_STATE": "Nenhum resultado encontrado.",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MORE": "+{count} mais"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Search...",
+ "EMPTY_STATE": "Nenhum resultado encontrado.",
+ "SEARCHING": "A pesquisar..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Confirmar"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Search country",
+ "ERROR": "Phone number should be empty or in E.164 format",
+ "DIAL_CODE_ERROR": "Por favor, selecione um código de marcação da lista"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Autor não disponível"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Breadcrumb"
+ },
+ "SWITCH": {
+ "TOGGLE": "Toggle switch"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "tag"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Saber mais",
+ "WATCH_VIDEO": "Watch video"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutos",
+ "HOURS": "Horas",
+ "DAYS": "Dias",
+ "PLACEHOLDER": "Introduza a duração"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Em Breve!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Image"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/contact.json b/app/javascript/dashboard/i18n/locale/pt/contact.json
index 3a6edbb8a..8f1320b67 100644
--- a/app/javascript/dashboard/i18n/locale/pt/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt/contact.json
@@ -1,113 +1,84 @@
{
"CONTACT_PANEL": {
- "NOT_AVAILABLE": "Não Disponível",
- "EMAIL_ADDRESS": "Endereço de email",
+ "NOT_AVAILABLE": "Indisponível",
+ "EMAIL_ADDRESS": "Endereço de e-mail",
"PHONE_NUMBER": "Número de telefone",
"IDENTIFIER": "Identificador",
"COPY_SUCCESSFUL": "Copiado para área de transferência com sucesso",
"COMPANY": "Empresa",
"LOCATION": "Localização",
- "BROWSER_LANGUAGE": "Idioma do Navegador",
+ "BROWSER_LANGUAGE": "Idioma do navegador",
"CONVERSATION_TITLE": "Detalhes da conversa",
- "VIEW_PROFILE": "Ver Perfil",
+ "VIEW_PROFILE": "Ver perfil",
"BROWSER": "Navegador",
- "OS": "Sistema operacional",
+ "OS": "Sistema Operativo",
"INITIATED_FROM": "Iniciado de",
"INITIATED_AT": "Iniciado em",
"IP_ADDRESS": "Endereço IP",
"CREATED_AT_LABEL": "Criado",
"NEW_MESSAGE": "Nova mensagem",
+ "CALL": "Chamada",
+ "CALL_INITIATED": "Calling the contact…",
+ "CALL_FAILED": "Unable to start the call. Please try again.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Choose a voice inbox"
+ },
"CONVERSATIONS": {
- "NO_RECORDS_FOUND": "Não há conversas anteriores associadas a este contato.",
+ "NO_RECORDS_FOUND": "Não há conversas anteriores associadas a este contacto.",
"TITLE": "Conversas anteriores"
},
"LABELS": {
"CONTACT": {
- "TITLE": "Etiquetas de Contacto",
- "ERROR": "Não foi possível atualizar as Etiquetas"
+ "TITLE": "Etiquetas de contacto",
+ "ERROR": "Não foi possível atualizar as etiquetas"
},
"CONVERSATION": {
"TITLE": "Etiquetas da conversa",
- "ADD_BUTTON": "Adicionar Etiquetas"
+ "ADD_BUTTON": "Adicionar etiquetas"
},
"LABEL_SELECT": {
- "TITLE": "Adicionar Etiquetas",
- "PLACEHOLDER": "Procurar Etiquetas",
- "NO_RESULT": "Nenhuma Etiqueta encontrada",
+ "TITLE": "Adicionar etiquetas",
+ "PLACEHOLDER": "Procurar etiquetas",
+ "NO_RESULT": "Nenhuma etiqueta encontrada",
"CREATE_LABEL": "Criar nova etiqueta"
}
},
"MERGE_CONTACT": "Unir contacto",
"CONTACT_ACTIONS": "Ações de contacto",
- "MUTE_CONTACT": "Bloquear Contato",
- "UNMUTE_CONTACT": "Desbloquear contato",
- "MUTED_SUCCESS": "Este contato está bloqueado. Não será notificado de nenhuma conversa futura.",
- "UNMUTED_SUCCESS": "Este contato foi desbloqueado.",
- "SEND_TRANSCRIPT": "Enviar Transcrição",
- "EDIT_LABEL": "Alterar",
+ "MUTE_CONTACT": "Bloquear contacto",
+ "UNMUTE_CONTACT": "Desbloquear contacto",
+ "MUTED_SUCCESS": "Este contacto está bloqueado. Não será notificado de nenhuma conversa futura.",
+ "UNMUTED_SUCCESS": "Este contacto foi desbloqueado.",
+ "SEND_TRANSCRIPT": "Enviar transcrição",
+ "EDIT_LABEL": "Editar",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Atributos personalizados",
- "CONTACT_LABELS": "Etiquetas de Contacto",
- "PREVIOUS_CONVERSATIONS": "Conversas anteriores"
+ "CONTACT_LABELS": "Etiquetas de contacto",
+ "PREVIOUS_CONVERSATIONS": "Conversas anteriores",
+ "NO_RECORDS_FOUND": "Nenhum atributo encontrado"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Editar Contato",
- "TITLE": "Editar Contato",
- "DESC": "Editar detalhes do contato"
- },
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Novo Contato",
- "TITLE": "Criar novo contacto",
- "DESC": "Adicionar informações básicas sobre o contacto."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importar",
- "TITLE": "Importar Contactos",
- "DESC": "Importar contactos através de um ficheiro CSV.",
- "DOWNLOAD_LABEL": "Descarregar uma amostra CSV.",
- "FORM": {
- "LABEL": "Ficheiro CSV",
- "SUBMIT": "Importar",
- "CANCEL": "cancelar"
- },
- "SUCCESS_MESSAGE": "Será notificado via e-mail quando a importação estiver completa.",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exportar",
- "TITLE": "Exportar contactos",
- "DESC": "Exportar contactos para um ficheiro CSV.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente",
- "CONFIRM": {
- "TITLE": "Exportar contactos",
- "MESSAGE": "Tem certeza de que deseja exportar todos os contatos?",
- "YES": "Sim, Exportar",
- "NO": "Não, Cancelar"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir esta nota?",
- "YES": "Sim, excluir",
- "NO": "Não, mantenha isso"
- }
+ "BUTTON_LABEL": "Editar contacto",
+ "TITLE": "Editar contacto",
+ "DESC": "Editar detalhes do contacto"
},
"DELETE_CONTACT": {
- "BUTTON_LABEL": "Apagar Contacto",
- "TITLE": "Excluir contato",
+ "BUTTON_LABEL": "Excluir contacto",
+ "TITLE": "Excluir contacto",
"DESC": "Apagar detalhes do contacto",
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir ",
- "YES": "Sim, Apagar",
- "NO": "Não, Manter"
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem certeza que pretende excluir ",
+ "YES": "Sim, excluir",
+ "NO": "Não, manter"
},
"API": {
- "SUCCESS_MESSAGE": "Contacto apagado com sucesso",
- "ERROR_MESSAGE": "Não foi possível apagar o contacto. Por favor tente mais tarde."
+ "SUCCESS_MESSAGE": "Contacto excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível excluir o contacto. Por favor, tente mais tarde."
}
},
"CONTACT_FORM": {
@@ -115,41 +86,41 @@
"SUBMIT": "Submeter",
"CANCEL": "Cancelar",
"AVATAR": {
- "LABEL": "Avatar do Contacto"
+ "LABEL": "Avatar do contacto"
},
"NAME": {
- "PLACEHOLDER": "Digite o nome completo do contato",
- "LABEL": "Nome Completo"
+ "PLACEHOLDER": "Insira o nome completo do contacto",
+ "LABEL": "Nome completo"
},
"BIO": {
- "PLACEHOLDER": "Digite a biografia do contato",
+ "PLACEHOLDER": "Insira a biografia do contacto",
"LABEL": "Biografia"
},
"EMAIL_ADDRESS": {
- "PLACEHOLDER": "Digite o endereço de e-mail do contato",
+ "PLACEHOLDER": "Insira o endereço de e-mail do contacto",
"LABEL": "Endereço de e-mail",
- "DUPLICATE": "Esse e-mail está a ser utilizado por outro contato.",
+ "DUPLICATE": "O e-mail inserido já está a ser utilizado por outro contacto.",
"ERROR": "Por favor, insira um endereço de e-mail válido."
},
"PHONE_NUMBER": {
- "PLACEHOLDER": "Digite o número de telefone do contato",
- "LABEL": "Número de Telefone",
+ "PLACEHOLDER": "Insira o número de telefone do contacto",
+ "LABEL": "Número de telefone",
"HELP": "O número de telefone deve ter o formato E.164, por exemplo: +1415555555 [+][código do país][código de área] [número de telefone local]",
"ERROR": "O número de telefone deve estar vazio ou no formato E.164",
- "DIAL_CODE_ERROR": "Por favor, selecione um código de discagem da lista",
- "DUPLICATE": "Este número está a ser usado por outro contacto."
+ "DIAL_CODE_ERROR": "Por favor, selecione um código de marcação da lista",
+ "DUPLICATE": "Este número já está a ser usado por outro contacto."
},
"LOCATION": {
- "PLACEHOLDER": "Digite a localização do contato",
- "LABEL": "Local:"
+ "PLACEHOLDER": "Insira a localização do contacto",
+ "LABEL": "Local"
},
"COMPANY_NAME": {
- "PLACEHOLDER": "Digite o nome da empresa",
+ "PLACEHOLDER": "Insira o nome da empresa",
"LABEL": "Nome da empresa"
},
"COUNTRY": {
"PLACEHOLDER": "Insira o nome do país",
- "LABEL": "Nome do País",
+ "LABEL": "Nome do país",
"SELECT_PLACEHOLDER": "Selecionar",
"REMOVE": "Excluir",
"SELECT_COUNTRY": "Selecione o país"
@@ -160,15 +131,15 @@
},
"SOCIAL_PROFILES": {
"FACEBOOK": {
- "PLACEHOLDER": "Digite o utilizador do Facebook",
+ "PLACEHOLDER": "Insira o nome de utilizador do Facebook",
"LABEL": "Facebook"
},
"TWITTER": {
- "PLACEHOLDER": "Digite o utilizador do Twitter",
+ "PLACEHOLDER": "Insira o nome de utilizador do Twitter",
"LABEL": "Twitter"
},
"LINKEDIN": {
- "PLACEHOLDER": "Digite o utilizador do LinkedIn",
+ "PLACEHOLDER": "Insira o nome de utilizador do LinkedIn",
"LABEL": "LinkedIn"
},
"GITHUB": {
@@ -179,24 +150,24 @@
},
"DELETE_AVATAR": {
"API": {
- "SUCCESS_MESSAGE": "Avatar de contato removido com sucesso",
- "ERROR_MESSAGE": "Não foi possível remover o avatar do contato. Por favor, tente novamente mais tarde."
+ "SUCCESS_MESSAGE": "Avatar de contacto removido com sucesso",
+ "ERROR_MESSAGE": "Não foi possível remover o avatar do contacto. Por favor, tente novamente mais tarde."
}
},
- "SUCCESS_MESSAGE": "Contato guardado com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ "SUCCESS_MESSAGE": "Contacto guardado com sucesso",
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
},
"NEW_CONVERSATION": {
"BUTTON_LABEL": "Iniciar conversa",
"TITLE": "Nova conversa",
- "DESC": "Começar uma conversa enviando uma mensagem.",
- "NO_INBOX": "Não foi possível encontrar uma caixa de entrada para começar uma conversa com este contato.",
+ "DESC": "Começar uma conversa através do envio de uma mensagem.",
+ "NO_INBOX": "Não foi possível encontrar uma caixa de entrada para iniciar uma conversa com este contacto.",
"FORM": {
"TO": {
"LABEL": "Para"
},
"INBOX": {
- "LABEL": "Caixa de Entrada",
+ "LABEL": "Via caixa de entrada",
"PLACEHOLDER": "Selecionar caixa de entrada",
"ERROR": "Selecione uma caixa de entrada"
},
@@ -206,13 +177,13 @@
"ERROR": "O assunto não pode estar vazio"
},
"MESSAGE": {
- "LABEL": "Messagem",
+ "LABEL": "Mensagem",
"PLACEHOLDER": "Escreva aqui a sua mensagem",
"ERROR": "A mensagem não pode estar vazia"
},
"ATTACHMENTS": {
- "SELECT": "Selecionar arquivos",
- "HELP_TEXT": "Arraste e solte arquivos aqui ou escolha arquivos para anexar"
+ "SELECT": "Selecionar ficheiros",
+ "HELP_TEXT": "Arraste e solte ficheiros aqui ou escolha ficheiros para anexar"
},
"SUBMIT": "Enviar mensagem",
"CANCEL": "Cancelar",
@@ -222,80 +193,17 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contactos",
- "FIELDS": "Campos do contato",
- "SEARCH_BUTTON": "Procurar",
- "SEARCH_INPUT_PLACEHOLDER": "Pesquisar por contactos",
- "FILTER_CONTACTS": "Filtro",
- "FILTER_CONTACTS_SAVE": "Guardar filtro",
- "FILTER_CONTACTS_DELETE": "Apagar filtro",
- "FILTER_CONTACTS_EDIT": "Editar segmento",
"LIST": {
- "LOADING_MESSAGE": "A carregar contactos...",
- "404": "Nenhum contacto corresponde à sua pesquisa 🔍",
- "NO_CONTACTS": "Não há contactos disponíveis",
"TABLE_HEADER": {
- "NAME": "Nome:",
- "PHONE_NUMBER": "Número de telefone",
- "CONVERSATIONS": "Conversas",
- "LAST_ACTIVITY": "Última atividade",
- "CREATED_AT": "Criado Em",
- "COUNTRY": "País",
- "CITY": "Cidade",
- "SOCIAL_PROFILES": "Perfis Redes Sociais",
- "COMPANY": "Empresa",
- "EMAIL_ADDRESS": "Endereço de e-mail"
- },
- "VIEW_DETAILS": "Mostrar detalhes"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contactos",
- "LOADING": "A carregar perfil do contacto..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Adicionar",
- "TITLE": "Shift + Enter para criar uma tarefa"
- },
- "FOOTER": {
- "DUE_DATE": "Data limite",
- "LABEL_TITLE": "Configurar tipo"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Buscando notas...",
- "NOT_AVAILABLE": "Não há notas criadas para este contacto",
- "HEADER": {
- "TITLE": "Observações"
- },
- "LIST": {
- "LABEL": "adicionado uma anotação"
- },
- "ADD": {
- "BUTTON": "Adicionar",
- "PLACEHOLDER": "Adicionar observação",
- "TITLE": "Shift + Enter para criar uma observação"
- },
- "CONTENT_HEADER": {
- "DELETE": "Apagar anotação"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Atividades"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "Observações",
- "PILL_BUTTON_EVENTS": "Eventos",
- "PILL_BUTTON_CONVO": "conversas"
+ "SOCIAL_PROFILES": "Perfis das redes sociais"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Adicionar atributos",
"BUTTON": "Adicionar atributo personalizado",
- "NOT_AVAILABLE": "Não há atributos personalizados disponíveis para este contacto.",
"COPY_SUCCESSFUL": "Copiado para área de transferência com sucesso",
+ "SHOW_MORE": "Mostrar todos os atributos",
+ "SHOW_LESS": "Mostrar menos atributos",
"ACTIONS": {
"COPY": "Copiar atributo",
"DELETE": "Apagar atributo",
@@ -303,11 +211,11 @@
},
"ADD": {
"TITLE": "Criar atributo personalizado",
- "DESC": "Adicionar informação personalizada a este contato."
+ "DESC": "Adicionar informação personalizada a este contacto."
},
"FORM": {
"CREATE": "Adicionar atributo",
- "CANCEL": "cancelar",
+ "CANCEL": "Cancelar",
"NAME": {
"LABEL": "Nome do atributo personalizado",
"PLACEHOLDER": "Por exemplo: ID shopify",
@@ -315,7 +223,7 @@
},
"VALUE": {
"LABEL": "Valor do atributo",
- "PLACEHOLDER": "Eg: 11901 "
+ "PLACEHOLDER": "Por exemplo: 11901 "
},
"ADD": {
"TITLE": "Criar novo atributo ",
@@ -324,11 +232,11 @@
},
"UPDATE": {
"SUCCESS": "Atributo atualizado com sucesso",
- "ERROR": "Não foi possível atualizar o atributo. Por favor tente mais tarde"
+ "ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde"
},
"DELETE": {
"SUCCESS": "Atributo apagado com sucesso",
- "ERROR": "Não foi possível apagar o atributo. Por favor tente mais tarde"
+ "ERROR": "Não foi possível apagar o atributo. Por favor, tente mais tarde"
},
"ATTRIBUTE_SELECT": {
"TITLE": "Adicionar atributos",
@@ -337,46 +245,422 @@
},
"ATTRIBUTE_TYPE": {
"LIST": {
- "PLACEHOLDER": "Selecione valor",
+ "PLACEHOLDER": "Selecione o valor",
"SEARCH_INPUT_PLACEHOLDER": "Pesquisar valor",
"NO_RESULT": "Nenhum resultado encontrado"
}
}
},
"VALIDATIONS": {
- "REQUIRED": "Valor válido é obrigatório",
- "INVALID_URL": "URL Inválido",
+ "REQUIRED": "É obrigatório um valor válido",
+ "INVALID_URL": "URL inválido",
"INVALID_INPUT": "Entrada inválida"
}
},
"MERGE_CONTACTS": {
"TITLE": "Unir contactos",
- "DESCRIPTION": "Unir contatos para combinar dois perfis em um, incluindo todos os atributos e conversas. Em caso de conflito, os atributos do contacto Principal terão prioridade.",
+ "DESCRIPTION": "Unir contactos para combinar dois perfis num, incluindo todos os atributos e conversas. Em caso de conflito, os atributos do contacto principal terão prioridade.",
"PRIMARY": {
- "TITLE": "Contato principal",
+ "TITLE": "Contacto principal",
"HELP_LABEL": "Para ser apagado"
},
"PARENT": {
- "TITLE": "Contato para juntar",
+ "TITLE": "Contacto para juntar",
"PLACEHOLDER": "Pesquisar por um contacto",
"HELP_LABEL": "Para ser mantido"
},
"SUMMARY": {
"TITLE": "Sumário",
- "DELETE_WARNING": "Contacto de %{primaryContactName} será apagado.",
- "ATTRIBUTE_WARNING": "Detalhes do contato do %{primaryContactName} serão copiados para %{parentContactName}."
+ "DELETE_WARNING": "Contacto de {primaryContactName} será apagado.",
+ "ATTRIBUTE_WARNING": "Detalhes do contacto do {primaryContactName} serão copiados para {parentContactName}."
},
"SEARCH": {
- "ERROR": "MENSSAGEM_ERRO"
+ "ERROR_MESSAGE": "Something went wrong. Please try again later."
},
"FORM": {
"SUBMIT": " Unir contactos",
- "CANCEL": "cancelar",
+ "CANCEL": "Cancelar",
"CHILD_CONTACT": {
- "ERROR": "Escolher um contato filho para juntar"
+ "ERROR": "Escolher um contacto filho para juntar"
},
- "SUCCESS_MESSAGE": "Contato unido com sucesso",
- "ERROR_MESSAGE": "Não foi possível unir os contactos, tente novamente!"
+ "SUCCESS_MESSAGE": "Contacto unido com sucesso",
+ "ERROR_MESSAGE": "Não foi possível unir os contactos, por favor, tente novamente!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "TITLE": "Contactos",
+ "SEARCH_TITLE": "Search contacts",
+ "ACTIVE_TITLE": "Contactos ativos",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "MESSAGE_BUTTON": "Messagem",
+ "SEND_MESSAGE": "Enviar mensagem",
+ "BLOCK_CONTACT": "Block contact",
+ "UNBLOCK_CONTACT": "Unblock contact",
+ "BREADCRUMB": {
+ "CONTACTS": "Contactos"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "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": "Unable to save contact. Please try again later."
+ },
+ "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": "Unable to unblock contact. Please try again later.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Import contacts",
+ "DESCRIPTION": "Importar contactos através de um ficheiro CSV.",
+ "DOWNLOAD_LABEL": "Descarregar uma amostra CSV.",
+ "LABEL": "Ficheiro CSV:",
+ "CHOOSE_FILE": "Choose file",
+ "CHANGE": "Trocar",
+ "CANCEL": "Cancelar",
+ "IMPORT": "Importar",
+ "SUCCESS_MESSAGE": "Será notificado via e-mail quando a importação estiver completa.",
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
+ },
+ "EXPORT_CONTACT": {
+ "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"
+ },
+ "SORT_BY": {
+ "LABEL": "Ordenar por",
+ "OPTIONS": {
+ "NAME": "Nome:",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de telefone",
+ "COMPANY": "Empresa",
+ "COUNTRY": "País",
+ "CITY": "Cidade",
+ "LAST_ACTIVITY": "Última atividade",
+ "CREATED_AT": "Criada em"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordering",
+ "OPTIONS": {
+ "ASCENDING": "Ascending",
+ "DESCENDING": "Descending"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Pretende guardar este filtro?",
+ "CONFIRM": "Guardar filtro",
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Enter the name of the filter",
+ "ERROR": "Enter a valid name",
+ "SUCCESS_MESSAGE": "Filter saved successfully",
+ "ERROR_MESSAGE": "Unable to save filter. Please try again later."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirmar exclusão",
+ "DESCRIPTION": "Are you sure you want to delete this filter?",
+ "CONFIRM": "Sim, excluir",
+ "CANCEL": "Não, cancelar",
+ "SUCCESS_MESSAGE": "Filter deleted successfully",
+ "ERROR_MESSAGE": "Unable to delete filter. Please try again later."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Showing {startItem} - {endItem} of {totalItems} contacts"
+ },
+ "FILTER": {
+ "NAME": "Nome:",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de telefone",
+ "IDENTIFIER": "Identificador",
+ "COUNTRY": "País",
+ "CITY": "Cidade",
+ "COMPANY": "Empresa",
+ "CREATED_AT": "Criada em",
+ "LAST_ACTIVITY": "Última atividade",
+ "REFERER_LINK": "Link de referência",
+ "BLOCKED": "Bloqueado",
+ "BLOCKED_TRUE": "Verdadeiro",
+ "BLOCKED_FALSE": "Falso",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Limpar filtros",
+ "UPDATE_SEGMENT": "Update segment",
+ "APPLY_FILTERS": "Aplicar filtros",
+ "ADD_FILTER": "Adicionar filtro"
+ },
+ "TITLE": "Filtrar contactos",
+ "EDIT_SEGMENT": "Editar segmento",
+ "SEGMENT": {
+ "LABEL": "Segment name",
+ "INPUT_PLACEHOLDER": "Enter the name of the segment"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} more filters",
+ "CLEAR_FILTERS": "Limpar filtros"
+ }
+ },
+ "CARD": {
+ "OF": "of",
+ "VIEW_DETAILS": "Mostrar detalhes",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Editar detalhes do contacto",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Enter the first name"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Enter the last name"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Enter the email address",
+ "DUPLICATE": "O e-mail inserido já está a ser utilizado por outro contacto."
+ },
+ "PHONE_NUMBER": {
+ "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": "Select country"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Enter the bio"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Insira o nome da empresa"
+ }
+ },
+ "UPDATE_BUTTON": "Update contact",
+ "SUCCESS_MESSAGE": "Contact updated successfully",
+ "ERROR_MESSAGE": "Unable to update contact. Please try again later."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Edit social links",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Add Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Add Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Add Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Add Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Add TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Add LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Add Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Esta ação é permanente e irreversível.",
+ "BUTTON": "Apagar agora"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Created {date}",
+ "LAST_ACTIVITY": "Last active {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Permanently delete this contact. This action is irreversible",
+ "DELETE_CONTACT": "Excluir contacto",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirmar exclusão",
+ "DESCRIPTION": "Tem a certeza de que quer apagar este contacto?",
+ "CONFIRM": "Sim, excluir",
+ "API": {
+ "SUCCESS_MESSAGE": "Contacto excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível excluir o contacto. Por favor, tente mais tarde."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Could not upload avatar. Please try again later.",
+ "SUCCESS_MESSAGE": "Avatar uploaded successfully"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar removido com sucesso",
+ "ERROR_MESSAGE": "Could not delete avatar. Please try again later."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Attributes",
+ "HISTORY": "History",
+ "NOTES": "Notas",
+ "MERGE": "Merge"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Não há conversas anteriores associadas a este contacto"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Search for attributes",
+ "UNUSED_ATTRIBUTES": "{count} Used attribute | {count} Unused attributes",
+ "EMPTY_STATE": "There are no contact custom attributes available in this account. You can create a custom attribute in settings.",
+ "YES": "Sim",
+ "NO": "Não",
+ "TRIGGER": {
+ "SELECT": "Selecione o valor",
+ "INPUT": "Inserir valor"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Invalid number",
+ "REQUIRED": "É obrigatório um valor válido",
+ "INVALID_INPUT": "Invalid input",
+ "INVALID_URL": "URL inválido",
+ "INVALID_DATE": "Invalid date"
+ },
+ "NO_ATTRIBUTES": "Nenhum atributo encontrado",
+ "API": {
+ "SUCCESS_MESSAGE": "Atributo atualizado com sucesso",
+ "DELETE_SUCCESS_MESSAGE": "Atributo apagado com sucesso",
+ "UPDATE_ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde",
+ "DELETE_ERROR": "Não foi possível apagar o atributo. Por favor, tente mais tarde"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Unir contacto",
+ "DESCRIPTION": "Combine two profiles into one, including all attributes and conversations. In case of conflict, the primary contact’s attributes will take precedence.",
+ "PRIMARY": "Contacto principal",
+ "PRIMARY_HELP_LABEL": "To be saved",
+ "PRIMARY_REQUIRED_ERROR": "Please select a contact to merge with before proceeding",
+ "PARENT": "To be merged",
+ "PARENT_HELP_LABEL": "Para ser apagado",
+ "EMPTY_STATE": "No contacts found",
+ "PLACEHOLDER": "Search for primary contact",
+ "SEARCH_PLACEHOLDER": "Pesquisar por um contacto",
+ "SEARCH_ERROR_MESSAGE": "Could not search for contacts. Please try again later.",
+ "SUCCESS_MESSAGE": "Contacto unido com sucesso",
+ "ERROR_MESSAGE": "Não foi possível unir os contactos, por favor, tente novamente!",
+ "IS_SEARCHING": "A pesquisar...",
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Unir contacto"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Adicionar nota",
+ "WROTE": "escreveu",
+ "YOU": "Você",
+ "SAVE": "Salvar nota",
+ "ADD_NOTE": "Add contact note",
+ "EXPAND": "Expandir",
+ "COLLAPSE": "Recolher",
+ "NO_NOTES": "Sem notas, pode adicionar notas na página de detalhes do contacto.",
+ "EMPTY_STATE": "Não existem notas associadas a este contacto. Pode adicionar uma nota escrevendo na caixa acima.",
+ "CONVERSATION_EMPTY_STATE": "There are no notes yet. Use the Add note button to create one."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nenhum contacto encontrado nesta conta",
+ "SUBTITLE": "Para adicionar novos contatos, clique no botão abaixo",
+ "BUTTON_LABEL": "Adicionar contacto",
+ "SEARCH_EMPTY_STATE_TITLE": "Nenhum contacto corresponde à sua pesquisa 🔍",
+ "LIST_EMPTY_STATE_TITLE": "No contacts available in this view 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Neste momento não há contactos ativos 🌙"
+ },
+ "LOAD_MORE": "Load more"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Atribuir etiquetas",
+ "REMOVE_LABELS": "Remove Labels",
+ "ASSIGN_LABELS_SUCCESS": "Etiquetas atribuídas com sucesso.",
+ "ASSIGN_LABELS_FAILED": "Failed to assign labels",
+ "REMOVE_LABELS_SUCCESS": "Labels removed successfully.",
+ "REMOVE_LABELS_FAILED": "Failed to remove labels",
+ "DESCRIPTION": "Select the labels you want to add to the selected contacts.",
+ "NO_LABELS_FOUND": "No labels available yet.",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "DELETE_CONTACTS": "Excluir",
+ "DELETE_SUCCESS": "Contacts deleted successfully.",
+ "DELETE_FAILED": "Failed to delete contacts.",
+ "DELETE_DIALOG": {
+ "TITLE": "Delete selected contacts",
+ "SINGULAR_TITLE": "Delete selected contact",
+ "DESCRIPTION": "This will permanently delete {count} selected contacts. This action cannot be undone.",
+ "SINGULAR_DESCRIPTION": "This will permanently delete the selected contact. This action cannot be undone.",
+ "CONFIRM_MULTIPLE": "Delete contacts",
+ "CONFIRM_SINGLE": "Excluir contacto"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "We couldn’t complete the search. Please try again."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Ver",
+ "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": "Enter at least 2 characters to search by name, email, or phone number",
+ "CONTACT_CREATING": "Creating contact..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Show inboxes"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Assunto :",
+ "SUBJECT_PLACEHOLDER": "Enter your email subject here",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_LABEL": "Bcc:",
+ "BCC_PLACEHOLDER": "Enter at least 2 characters to search by email",
+ "BCC_BUTTON": "Bcc"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Escreva aqui a sua mensagem..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "WhatsApp template: {templateName}",
+ "VARIABLES": "Variáveis",
+ "BACK": "Voltar",
+ "SEND_MESSAGE": "Enviar mensagem"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Select template",
+ "SEARCH_PLACEHOLDER": "Search templates",
+ "EMPTY_STATE": "No templates found",
+ "TEMPLATE_PARSER": {
+ "BACK": "Voltar",
+ "SEND_MESSAGE": "Enviar mensagem"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Discard",
+ "SEND": "Send ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/contactFilters.json b/app/javascript/dashboard/i18n/locale/pt/contactFilters.json
index d7e9d20f9..ca6a363da 100644
--- a/app/javascript/dashboard/i18n/locale/pt/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pt/contactFilters.json
@@ -1,16 +1,16 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filtrar Contactos",
- "SUBTITLE": "Adicionar filtros abaixo e clicar 'Submeter' para filtrar contactos.",
+ "TITLE": "Filtrar contactos",
+ "SUBTITLE": "Adicione filtros, abaixo, e clique em 'Submeter' para filtrar contactos.",
"EDIT_CUSTOM_SEGMENT": "Editar segmento",
- "CUSTOM_VIEWS_SUBTITLE": "Adicione ou remova filtros e atualiza seu segmento.",
- "ADD_NEW_FILTER": "Adicionar Filtro",
- "CLEAR_ALL_FILTERS": "Limpar Todos os Filtros",
- "FILTER_DELETE_ERROR": "Você deve ter pelo menos um filtro para guardar",
- "SUBMIT_BUTTON_LABEL": "submeter",
- "UPDATE_BUTTON_LABEL": "Atualizar Segmento",
- "CANCEL_BUTTON_LABEL": "cancelar",
- "CLEAR_BUTTON_LABEL": "Limpar Filtros",
+ "CUSTOM_VIEWS_SUBTITLE": "Adicione ou remova filtros e atualize o seu segmento.",
+ "ADD_NEW_FILTER": "Adicionar filtro",
+ "CLEAR_ALL_FILTERS": "Limpar todos os filtros",
+ "FILTER_DELETE_ERROR": "Deve ter, pelo menos, um filtro para guardar",
+ "SUBMIT_BUTTON_LABEL": "Submeter",
+ "UPDATE_BUTTON_LABEL": "Atualizar segmento",
+ "CANCEL_BUTTON_LABEL": "Cancelar",
+ "CLEAR_BUTTON_LABEL": "Limpar filtros",
"EMPTY_VALUE_ERROR": "Valor obrigatório",
"SEGMENT_LABEL": "Nome do segmento",
"SEGMENT_QUERY_LABEL": "Consulta de segmento",
@@ -30,9 +30,12 @@
"is_lesser_than": "É menor do que",
"days_before": "É x dias antes"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Valor obrigatório"
+ },
"ATTRIBUTES": {
- "NAME": "Nome:",
- "EMAIL": "e-mail",
+ "NAME": "Nome",
+ "EMAIL": "E-mail",
"PHONE_NUMBER": "Número de telefone",
"IDENTIFIER": "Identificador",
"CITY": "Cidade",
@@ -41,14 +44,16 @@
"CUSTOM_ATTRIBUTE_TEXT": "Texto",
"CUSTOM_ATTRIBUTE_NUMBER": "Número",
"CUSTOM_ATTRIBUTE_LINK": "Endereço",
- "CUSTOM_ATTRIBUTE_CHECKBOX": "Caixa de Seleção",
- "CREATED_AT": "Criado Em",
+ "CUSTOM_ATTRIBUTE_CHECKBOX": "Caixa de seleção",
+ "CREATED_AT": "Criado em",
"LAST_ACTIVITY": "Última atividade",
- "REFERER_LINK": "Link de referência"
+ "REFERER_LINK": "Link de referência",
+ "BLOCKED": "Bloqueado",
+ "LABELS": "Etiquetas"
},
"GROUPS": {
- "STANDARD_FILTERS": "Filtros Padrão",
- "ADDITIONAL_FILTERS": "Filtros Adicionais",
+ "STANDARD_FILTERS": "Filtros padrão",
+ "ADDITIONAL_FILTERS": "Filtros adicionais",
"CUSTOM_ATTRIBUTES": "Atributos personalizados"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/contentTemplates.json b/app/javascript/dashboard/i18n/locale/pt/contentTemplates.json
new file mode 100644
index 000000000..0875e6803
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Twilio Templates",
+ "SUBTITLE": "Select the Twilio template you want to send",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Buscar templates",
+ "NO_TEMPLATES_FOUND": "Nenhum template encontrado para",
+ "NO_CONTENT": "Sem conteúdo",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No Twilio templates available. Click refresh to sync templates from Twilio.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Corpo do Template",
+ "CATEGORY": "Categoria"
+ },
+ "TYPES": {
+ "MEDIA": "Media",
+ "QUICK_REPLY": "Quick Reply",
+ "CALL_TO_ACTION": "Call to Action",
+ "TEXT": "Texto"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variáveis",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Digite o valor {variable}",
+ "GO_BACK_LABEL": "Voltar",
+ "SEND_MESSAGE_LABEL": "Enviar mensagem",
+ "FORM_ERROR_MESSAGE": "Preencha todas as variáveis antes de enviar",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "MEDIA_URL_LABEL": "Enter full media URL",
+ "MEDIA_URL_PLACEHOLDER": "https://example.com/image.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Voltar",
+ "SEND_MESSAGE_BUTTON": "Enviar mensagem"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/conversation.json b/app/javascript/dashboard/i18n/locale/pt/conversation.json
index 5bda9e1f8..3d9c0a44b 100644
--- a/app/javascript/dashboard/i18n/locale/pt/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt/conversation.json
@@ -2,16 +2,18 @@
"CONVERSATION": {
"SELECT_A_CONVERSATION": "Por favor, selecione uma conversa no painel da esquerda",
"CSAT_REPLY_MESSAGE": "Por favor, avalie a conversa",
- "404": "Desculpe, não encontramos a conversa. Por favor, tente novamente",
+ "404": "Desculpe, não encontrámos a conversa. Por favor, tente novamente",
"SWITCH_VIEW_LAYOUT": "Alternar o layout",
"DASHBOARD_APP_TAB_MESSAGES": "Mensagens",
"UNVERIFIED_SESSION": "A identidade deste utilizador não foi verificada",
- "NO_MESSAGE_1": "Oh oh! Parece que não há mensagens de clientes na sua caixa de entrada.",
- "NO_MESSAGE_2": " para enviar uma mensagem para sua página!",
- "NO_INBOX_1": "Hola! Parece que você não adicionou nenhuma caixa de entrada ainda.",
+ "NO_MESSAGE_1": "Não há mensagens de clientes na sua caixa de entrada.",
+ "NO_MESSAGE_2": " para enviar uma mensagem para a sua página!",
+ "NO_INBOX_1": "Ainda não adicionou nenhuma caixa de entrada.",
"NO_INBOX_2": " para começar",
- "NO_INBOX_AGENT": "Uh Oh! Parece que você não faz parte de nenhuma caixa de entrada. Por favor, contate seu administrador",
+ "NO_INBOX_AGENT": "Não faz parte de nenhuma caixa de entrada. Por favor, contacte o administrador",
"SEARCH_MESSAGES": "Procurar mensagens em conversas",
+ "VIEW_ORIGINAL": "View original",
+ "VIEW_TRANSLATED": "View translated",
"EMPTY_STATE": {
"CMD_BAR": "para abrir o menu de comandos",
"KEYBOARD_SHORTCUTS": "para ver atalhos de teclado"
@@ -19,52 +21,108 @@
"SEARCH": {
"TITLE": "Procurar mensagens",
"RESULT_TITLE": "Resultados da pesquisa",
- "LOADING_MESSAGE": "Preparando os dados...",
- "PLACEHOLDER": "Digite qualquer texto para procurar mensagens",
+ "LOADING_MESSAGE": "A preparar os dados...",
+ "PLACEHOLDER": "Insira qualquer texto para procurar mensagens",
"NO_MATCHING_RESULTS": "Nenhum resultado encontrado."
},
"UNREAD_MESSAGES": "Mensagens por ler",
"UNREAD_MESSAGE": "Mensagens por ler",
"CLICK_HERE": "Clique aqui",
- "LOADING_INBOXES": "Carregando caixas de entrada",
- "LOADING_CONVERSATIONS": "Carregando conversas",
+ "LOADING_INBOXES": "A carregar caixas de entrada",
+ "LOADING_CONVERSATIONS": "A carregar conversas",
"CANNOT_REPLY": "Não pode responder porque",
"24_HOURS_WINDOW": "Mensagens bloqueadas durante 24 horas",
+ "48_HOURS_WINDOW": "Mensagens bloqueadas durante 48 horas",
+ "API_HOURS_WINDOW": "Só pode responder a esta conversa dentro de {hours} horas",
"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",
+ "BOT_HANDOFF_MESSAGE": "You are responding to a conversation which is currently handled by an assistant or a bot.",
+ "BOT_HANDOFF_ACTION": "Mark open and assign to you",
+ "BOT_HANDOFF_REOPEN_ACTION": "Mark conversation open",
+ "BOT_HANDOFF_SUCCESS": "Conversation has been handed over to you",
+ "BOT_HANDOFF_ERROR": "Failed to take over the conversation. Please try again.",
+ "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": "Esta conta do Instagram foi migrada para a nova caixa de entrada do canal Instagram. Todas as novas mensagens aparecerão lá. Já não poderá enviar mensagens a partir desta conversa.",
"REPLYING_TO": "Está a responder a:",
"REMOVE_SELECTION": "Remover seleção",
- "DOWNLOAD": "BAIXAR",
- "UNKNOWN_FILE_TYPE": "Arquivo Desconhecido",
- "SAVE_CONTACT": "Salvar",
- "UPLOADING_ATTACHMENTS": "Carregando anexos...",
+ "DOWNLOAD": "Descarregar",
+ "UNKNOWN_FILE_TYPE": "Ficheiro desconhecido",
+ "SAVE_CONTACT": "Save Contact",
+ "NO_CONTENT": "No content to display",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} has shared a contact",
+ "LOCATION": "{sender} has shared a location",
+ "FILE": "{sender} has shared a file",
+ "MEETING": "{sender} iniciou uma reunião"
+ },
+ "UPLOADING_ATTACHMENTS": "A carregar anexos...",
"REPLIED_TO_STORY": "Respondeu à sua história",
- "UNSUPPORTED_MESSAGE": "Esta mensagem não é suportada.",
+ "UNSUPPORTED_MESSAGE": "This message is unsupported. You can view this message on the Facebook / Instagram app.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Esta mensagem não é suportada. Pode ver esta mensagem na app Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Esta mensagem não é suportada. Pode ver esta mensagem na app do Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "This message is unsupported. You can view this message on the TikTok app.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "This message is unsupported. You can view this message on the WhatsApp app.",
"SUCCESS_DELETE_MESSAGE": "Mensagem apagada com sucesso",
- "FAIL_DELETE_MESSSAGE": "Não foi possível apagar a mensagem! Tente novamente",
+ "FAIL_DELETE_MESSSAGE": "Não foi possível apagar a mensagem! Por favor, tente novamente",
"NO_RESPONSE": "Sem resposta",
+ "RESPONSE": "Response",
"RATING_TITLE": "Avaliar",
- "FEEDBACK_TITLE": "Opiniões",
+ "FEEDBACK_TITLE": "Comentários",
"REPLY_MESSAGE_NOT_FOUND": "Mensagem indisponível",
"CARD": {
"SHOW_LABELS": "Mostrar etiquetas",
- "HIDE_LABELS": "Ocultar os etiquetas"
+ "HIDE_LABELS": "Ocultar etiquetas",
+ "LABELS_COUNT": "{count} labels"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NO_ANSWER": "No answer",
+ "NO_ANSWER_OUTBOUND_LABEL": "No answer",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "Contact didn't pick up",
+ "MISSED_CALL": "Missed call",
+ "MISSED_CALL_INBOUND_SUBTEXT": "No agent picked up",
+ "MISSED_CALL_DECLINED_BY": "Declined by {agentName}",
+ "CALL_ENDED": "Call ended",
+ "HANDLED_BY": "Handled by {agentName}",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "CALLING": "Calling…",
+ "THEY_ANSWERED": "They answered",
+ "YOU_ANSWERED": "You answered",
+ "AGENT_ANSWERED": "{agentName} answered",
+ "JOIN_CALL": "Join call",
+ "CALL_BACK": "Call back",
+ "TRANSCRIPT_SHOW_MORE": "Show more",
+ "TRANSCRIPT_SHOW_LESS": "Show less"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abertas",
- "OPEN": "MAIS",
- "CLOSE": "FECHAR",
+ "MORE_ACTIONS": "Mais ações",
+ "OPEN": "Mais",
+ "CLOSE": "Fechar",
"DETAILS": "Detalhes",
+ "COPY_ID_SUCCESS": "Conversation ID copied to clipboard",
"SNOOZED_UNTIL": "Suspender até",
- "SNOOZED_UNTIL_TOMORROW": "Adiado até amanhã",
+ "SNOOZED_UNTIL_TOMORROW": "Adiada até amanhã",
"SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana",
- "SNOOZED_UNTIL_NEXT_REPLY": "Adiado até à próxima resposta"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Adiada até à próxima resposta",
+ "WHATSAPP_CALL": "Start WhatsApp call",
+ "WHATSAPP_CALL_FAILED": "Could not start the WhatsApp call.",
+ "VOICE_CALL": "Start call",
+ "VOICE_CALL_FAILED": "Could not start the call.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Sent a call permission request to the contact. Try again once they accept.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Call permission request already sent recently. Try again once the contact accepts.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "missed",
+ "DUE": "due"
+ }
},
"RESOLVE_DROPDOWN": {
"MARK_PENDING": "Marcar como pendente",
@@ -76,10 +134,14 @@
"NEXT_WEEK": "Próxima semana"
}
},
+ "MENTION": {
+ "AGENTS": "Agentes",
+ "TEAMS": "Equipas"
+ },
"CUSTOM_SNOOZE": {
"TITLE": "Suspender até",
"APPLY": "Adiar",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
},
"PRIORITY": {
"TITLE": "Prioridade",
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nenhuma",
"INPUT_PLACEHOLDER": "Selecione a prioridade",
"NO_RESULTS": "Nenhum resultado encontrado",
- "SUCCESSFUL": "Alterar a prioridade da conversa com o id %{conversationId} para %{priority}",
- "FAILED": "Não foi possível alterar a prioridade, por favor tente novamente."
+ "SUCCESSFUL": "Alterar a prioridade da conversa com o id {conversationId} para {priority}",
+ "FAILED": "Não foi possível alterar a prioridade, por favor, tente novamente."
}
},
+ "DELETE_CONVERSATION": {
+ "TITLE": "Apagar conversa #{conversationId}",
+ "DESCRIPTION": "Tem a certeza de que quer apagar esta conversa?",
+ "CONFIRM": "Excluir"
+ },
"CARD_CONTEXT_MENU": {
"PENDING": "Marcar como pendente",
"RESOLVED": "Marcar como resolvida",
"MARK_AS_UNREAD": "Marcar como não lida",
+ "MARK_AS_READ": "Marcar como lida",
"REOPEN": "Reabrir conversa",
"SNOOZE": {
"TITLE": "Adiar",
@@ -111,171 +179,255 @@
},
"ASSIGN_AGENT": "Atribuir agente",
"ASSIGN_LABEL": "Atribuir etiqueta",
- "AGENTS_LOADING": "Carregando agentes...",
- "ASSIGN_TEAM": "Atribuir equipe",
+ "AGENTS_LOADING": "A carregar agentes...",
+ "ASSIGN_TEAM": "Atribuir equipa",
+ "DELETE": "Apagar conversa",
+ "OPEN_IN_NEW_TAB": "Open in new tab",
+ "COPY_LINK": "Copy conversation link",
+ "COPY_LINK_SUCCESS": "Conversation link copied to clipboard",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "Conversa com ID %{conversationId} atribuída a \"%{agentName}\"",
+ "SUCCESFUL": "Conversa com ID {conversationId} atribuída a \"{agentName}\"",
"FAILED": "Não foi possível atribuir agente. Por favor, tente novamente."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Etiqueta #%{labelName} atribuída a conversa de ID %{conversationId}",
+ "SUCCESFUL": "Assigned label #{labelName} to conversation id {conversationId}",
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Removed label #{labelName} from conversation id {conversationId}",
+ "FAILED": "Couldn't remove label. Please try again."
+ },
"TEAM_ASSIGNMENT": {
- "SUCCESFUL": "Equipe \"%{team}\" atribuída a conversa de ID %{conversationId}",
- "FAILED": "Não foi possível atribuir equipe. Por favor, tente novamente."
+ "SUCCESFUL": "Equipa \"{team}\" atribuída a conversa de ID {conversationId}",
+ "FAILED": "Não foi possível atribuir equipa. Por favor, tente novamente."
}
}
},
"FOOTER": {
"MESSAGE_SIGN_TOOLTIP": "Assinatura da mensagem",
- "ENABLE_SIGN_TOOLTIP": "Habilitar assinatura",
+ "ENABLE_SIGN_TOOLTIP": "Ativar assinatura",
"DISABLE_SIGN_TOOLTIP": "Desativar assinatura",
- "MSG_INPUT": "Shift + enter para nova linha. Comece com '/' para selecionar uma Resposta Pronta.",
- "PRIVATE_MSG_INPUT": "Shift + Enter para a nova linha. Isto será visível apenas para Agentes",
- "MESSAGE_SIGNATURE_NOT_CONFIGURED": "Assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
- "CLICK_HERE": "Clique aqui para atualizar"
+ "MSG_INPUT": "Shift + Enter para nova linha. Comece com '/' para selecionar uma resposta pronta.",
+ "PRIVATE_MSG_INPUT": "Shift + Enter para nova linha. Esta mensagem apenas será visível para agentes",
+ "MESSAGING_RESTRICTED": "You cannot reply to this conversation",
+ "MESSAGING_RESTRICTED_WHATSAPP": "You can only reply using a template message due to 24-hour message window restriction",
+ "MESSAGING_RESTRICTED_API": "You can only reply using a template message due to message window restriction",
+ "MESSAGE_SIGNATURE_NOT_CONFIGURED": "A assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
+ "COPILOT_MSG_INPUT": "Dê comandos adicionais ao copiloto ou pergunte qualquer outra coisa... Pressione enter para enviar o acompanhamento",
+ "CLICK_HERE": "Clique aqui para atualizar",
+ "WHATSAPP_TEMPLATES": "Template do WhatsApp"
},
"REPLYBOX": {
"REPLY": "Responder",
"PRIVATE_NOTE": "Nota Privada",
- "SEND": "Mandar",
- "CREATE": "Adicionar Nota",
+ "SEND": "Enviar",
+ "CREATE": "Adicionar nota",
"INSERT_READ_MORE": "Ler mais",
"DISMISS_REPLY": "Descartar resposta",
"REPLYING_TO": "Em resposta a:",
- "TIP_FORMAT_ICON": "Mostrar editor de texto completo",
"TIP_EMOJI_ICON": "Mostrar selecionador de emojis",
"TIP_ATTACH_ICON": "Anexar ficheiros",
"TIP_AUDIORECORDER_ICON": "Gravar áudio",
"TIP_AUDIORECORDER_PERMISSION": "Permitir acesso ao áudio",
"TIP_AUDIORECORDER_ERROR": "Não foi possível abrir o áudio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Arrastar e soltar aqui para anexar",
"START_AUDIO_RECORDING": "Iniciar gravação de áudio",
"STOP_AUDIO_RECORDING": "Parar gravação de áudio",
- "": "",
+ "COPILOT_THINKING": "Copiloto está pensando",
"EMAIL_HEAD": {
- "TO": "Para",
- "ADD_BCC": "Adicionar bcc",
+ "TO": "PARA",
+ "ADD_BCC": "Adicionar Bcc",
"CC": {
- "LABEL": "CC",
- "PLACEHOLDER": "Emails separados por vírgulas",
- "ERROR": "Por favor, digite endereços de e-mail válidos"
+ "LABEL": "Cc",
+ "PLACEHOLDER": "E-mails separados por vírgulas",
+ "ERROR": "Por favor, insira endereços de e-mail válidos"
},
"BCC": {
"LABEL": "Bcc",
- "PLACEHOLDER": "Emails separados por vírgulas",
- "ERROR": "Por favor, digite endereços de e-mail válidos"
+ "PLACEHOLDER": "E-mails separados por vírgulas",
+ "ERROR": "Por favor, insira endereços de e-mail válidos"
}
},
"UNDEFINED_VARIABLES": {
"TITLE": "Variáveis indefinidas",
- "MESSAGE": "Você tem {undefinedVariablesCount} variáveis indefinidas em sua mensagem: {undefinedVariables}. Você gostaria de enviar a mensagem mesmo assim?",
+ "MESSAGE": "Tem {undefinedVariablesCount} variáveis indefinidas na sua mensagem: {undefinedVariables}. Pretende enviar a mensagem mesmo assim?",
"CONFIRM": {
"YES": "Enviar",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Include quoted email thread",
+ "DISABLE_TOOLTIP": "Don't include quoted email thread",
+ "REMOVE_PREVIEW": "Remove quoted email thread",
+ "COLLAPSE": "Collapse preview",
+ "EXPAND": "Expand preview"
}
},
- "VISIBLE_TO_AGENTS": "Nota Privada: Apenas visível para você e sua equipe",
+ "VISIBLE_TO_AGENTS": "Nota Privada: Apenas visível para si e para a sua equipa",
"CHANGE_STATUS": "Estado da conversa alterado",
- "CHANGE_STATUS_FAILED": "Mudança de status da conversa falhou",
+ "CHANGE_STATUS_FAILED": "A mudança de estado da conversa falhou",
"CHANGE_AGENT": "Responsável da conversa alterado",
"CHANGE_AGENT_FAILED": "Falha na alteração da atribuição",
"ASSIGN_LABEL_SUCCESFUL": "Etiqueta atribuída com sucesso",
"ASSIGN_LABEL_FAILED": "Falha na atribuição de etiqueta",
- "CHANGE_TEAM": "Equipa de conversação alterada",
- "FILE_SIZE_LIMIT": "O arquivo excede o limite para anexos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "CHANGE_TEAM": "Equipa da conversa alterada",
+ "SUCCESS_DELETE_CONVERSATION": "Conversa apagada",
+ "FAIL_DELETE_CONVERSATION": "Não foi possível apagar a conversa! Tente novamente",
+ "FILE_SIZE_LIMIT": "O ficheiro excede o tamanho limite para anexos de {MAXIMUM_SUPPORTED_FILE_UPLOAD_SIZE} MB",
+ "FILE_TYPE_NOT_SUPPORTED": "This {fileName} file type is not supported in this conversation",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
"BOT": "Bot",
+ "NATIVE_APP": "Native app",
+ "NATIVE_APP_ADVISORY": "This message was sent from the native app. Reply from Chatwoot to maintain the message window.",
"SEND_FAILED": "Não foi possível enviar a mensagem! Tente novamente",
- "TRY_AGAIN": "tentar novamente",
+ "TRY_AGAIN": "Tentar novamente",
"ASSIGNMENT": {
- "SELECT_AGENT": "Escolher Agente",
+ "SELECT_AGENT": "Escolher agente",
"REMOVE": "Excluir",
"ASSIGN": "Atribuir"
},
"CONTEXT_MENU": {
"COPY": "Copiar",
"REPLY_TO": "Responder a esta mensagem",
- "DELETE": "excluir",
+ "DELETE": "Excluir",
"CREATE_A_CANNED_RESPONSE": "Adicionar às respostas prontas",
"TRANSLATE": "Traduzir",
"COPY_PERMALINK": "Copiar link para a mensagem",
- "LINK_COPIED": "URL da mensagem copiada para a área de transferência",
+ "LINK_COPIED": "URL da mensagem copiado para a área de transferência",
"DELETE_CONFIRMATION": {
"TITLE": "Tem a certeza que pretende apagar esta mensagem?",
"MESSAGE": "Esta ação é irreversível",
- "DELETE": "excluir",
- "CANCEL": "cancelar"
+ "DELETE": "Excluir",
+ "CANCEL": "Cancelar"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contacto",
+ "COPILOT": "Copilot"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Incoming call",
+ "OUTGOING_CALL": "Outgoing call",
+ "CALL_IN_PROGRESS": "Call in progress",
+ "NOT_ANSWERED_YET": "Not answered yet",
+ "HANDLED_IN_ANOTHER_TAB": "Being handled in another tab",
+ "REJECT_CALL": "Reject",
+ "DISMISS_CALL": "Descartar",
+ "JOIN_CALL": "Join call",
+ "END_CALL": "End call",
+ "MUTE": "Mute mic",
+ "UNMUTE": "Unmute mic",
+ "VIEW_CHAT_HISTORY": "View chat history",
+ "GO_TO_CONVERSATION": "Go to conversation thread"
}
},
"EMAIL_TRANSCRIPT": {
"TITLE": "Enviar transcrição da conversa",
- "DESC": "Enviar uma cópia da transcrição da conversa para o endereço de email especificado",
- "SUBMIT": "submeter",
- "CANCEL": "cancelar",
- "SEND_EMAIL_SUCCESS": "A transcrição do chat foi enviada com sucesso",
- "SEND_EMAIL_ERROR": "Ocorreu um erro, por favor tente novamente",
+ "DESC": "Envia uma cópia da transcrição da conversa para o endereço de e-mail especificado",
+ "SUBMIT": "Submeter",
+ "CANCEL": "Cancelar",
+ "SEND_EMAIL_SUCCESS": "A transcrição da conversa foi enviada com sucesso",
+ "SEND_EMAIL_ERROR": "Ocorreu um erro, por favor, tente novamente",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "Email transcript is not available on your current plan. Please upgrade to use this feature.",
"FORM": {
- "SEND_TO_CONTACT": "Envie a transcrição ao cliente",
+ "SEND_TO_CONTACT": "Enviar a transcrição ao cliente",
"SEND_TO_AGENT": "Enviar a transcrição para o agente atribuído",
- "SEND_TO_OTHER_EMAIL_ADDRESS": "Enviar a transcrição para outro endereço de email",
+ "SEND_TO_OTHER_EMAIL_ADDRESS": "Enviar a transcrição para outro endereço de e-mail",
"EMAIL": {
- "PLACEHOLDER": "Digite um endereço de email",
+ "PLACEHOLDER": "Insira um endereço de e-mail",
"ERROR": "Por favor, insira um endereço de e-mail válido"
}
}
},
"ONBOARDING": {
- "TITLE": "Olá, 👋. Bem-vindo ao %{installationName}!",
- "DESCRIPTION": "Obrigado por se inscrever. Queremos que aproveite ao máximo o sistema %{installationName}. Aqui estão algumas coisas que pode fazer no %{installationName} para tornar a sua experiência ainda mais agradável.",
+ "TITLE": "Olá 👋. Bem-vindo ao {installationName}!",
+ "DESCRIPTION": "Obrigado por se registar. Queremos que aproveite ao máximo o sistema {installationName}. Aqui estão algumas coisas que pode fazer no {installationName} para tornar a sua experiência ainda mais agradável.",
+ "GREETING_MORNING": "👋 Bom dia, {name}. Bem-vindo ao {installationName}.",
+ "GREETING_AFTERNOON": "👋 Boa tarde, {name}. Bem-vindo ao {installationName}.",
+ "GREETING_EVENING": "👋 Boa noite, {name}. Bem-vindo ao {installationName}.",
"READ_LATEST_UPDATES": "Ler as últimas atualizações",
"ALL_CONVERSATION": {
"TITLE": "Todas as suas conversas num único lugar",
- "DESCRIPTION": "Ver todas as conversas dos seus clientes num único painel. Pode filtrar as conversas pelo canal de entrada, etiquetas e estado."
+ "DESCRIPTION": "Ver todas as conversas dos seus clientes num único painel. Pode filtrar as conversas pelo canal de entrada, etiquetas e estado.",
+ "NEW_LINK": "Clique aqui para criar uma caixa de entrada"
},
"TEAM_MEMBERS": {
"TITLE": "Convidar os membros da sua equipa",
- "DESCRIPTION": "Já que se prepara para começar a conversar com o seu cliente, convide também os seus colegas para o ajudar. Pode adicionar colegas de equipa acrescentando os seus endereço de e-mail na lista de agentes.",
+ "DESCRIPTION": "Já que se prepara para começar a conversar com o seu cliente, convide também os seus colegas para o ajudar. Pode adicionar colegas de equipa acrescentando os seus endereços de e-mail à lista de agentes.",
"NEW_LINK": "Clique aqui para convidar um membro para a equipa"
},
- "INBOXES": {
- "TITLE": "Ligar caixas de entrada",
- "DESCRIPTION": "Ligue vários canais através dos quais os seus clientes podem conversar consigo. Pode ser um site, um chat ao vivo, um página do Facebook do Twitter ou até mesmo o seu número do WhatsApp.",
- "NEW_LINK": "Clique aqui para criar uma caixa de entrada"
- },
"LABELS": {
"TITLE": "Organizar conversas com etiquetas",
- "DESCRIPTION": "As Etiquetas permitem-lhe facilmente categorizar as suas conversas. Crie etiquetas como #suporte, #faturacao etc., para que depois as possa utilizar mais tarde numa conversa.",
+ "DESCRIPTION": "As etiquetas permitem-lhe categorizar facilmente as suas conversas. Crie etiquetas como #suporte, #faturacao, etc., para que as possa utilizar, mais tarde, numa conversa.",
"NEW_LINK": "Clique aqui para criar etiquetas"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Criar respostas prontas",
+ "DESCRIPTION": "Os modelos de resposta rápida pré-escritos ajudam-no a responder rapidamente a uma conversa. Os agentes podem inserir o caractere '/' seguido do código curto para inserir uma resposta.",
+ "NEW_LINK": "Clique aqui para criar uma resposta pronta"
}
},
"CONVERSATION_SIDEBAR": {
"ASSIGNEE_LABEL": "Agente atribuído",
"SELF_ASSIGN": "Atribuir a mim",
- "TEAM_LABEL": "Equipe atribuída",
+ "TEAM_LABEL": "Equipa atribuída",
"SELECT": {
"PLACEHOLDER": "Nenhuma"
},
"ACCORDION": {
- "CONTACT_DETAILS": "Detalhes do Contacto",
- "CONVERSATION_ACTIONS": "Ações de Conversa",
+ "CONTACT_DETAILS": "Detalhes do contacto",
+ "CONVERSATION_ACTIONS": "Ações de conversa",
"CONVERSATION_LABELS": "Etiquetas da conversa",
"CONVERSATION_INFO": "Informação da conversa",
- "CONTACT_ATTRIBUTES": "Atributos do Contato",
+ "CONTACT_NOTES": "Notas do contacto",
+ "CONTACT_ATTRIBUTES": "Atributos do contacto",
"PREVIOUS_CONVERSATION": "Conversas anteriores",
- "MACROS": "Macros"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Casos Linear Associados",
+ "SHOPIFY_ORDERS": "Shopify Orders",
+ "SHARED_FILES": "Attachments"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "No attachments yet",
+ "DOWNLOAD": "Download file",
+ "DOWNLOAD_ERROR": "Could not download the file. Please try again.",
+ "MEDIA_HEADING": "Media",
+ "FILES_HEADING": "Files",
+ "VIEW_ALL": "Visualizar todos",
+ "SHOW_LESS": "Show less",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Untitled file"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Order #{id}",
+ "ERROR": "Error loading orders",
+ "NO_SHOPIFY_ORDERS": "No orders found",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pendente",
+ "AUTHORIZED": "Authorized",
+ "PARTIALLY_PAID": "Partially Paid",
+ "PAID": "Paid",
+ "PARTIALLY_REFUNDED": "Partially Refunded",
+ "REFUNDED": "Refunded",
+ "VOIDED": "Voided"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Fulfilled",
+ "PARTIALLY_FULFILLED": "Partially Fulfilled",
+ "UNFULFILLED": "Unfulfilled"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Criar atributo",
+ "NO_RECORDS_FOUND": "Nenhum atributo encontrado",
"UPDATE": {
"SUCCESS": "Atributo atualizado com sucesso",
- "ERROR": "Não foi possível atualizar o atributo. Por favor tente mais tarde"
+ "ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde"
},
"ADD": {
"TITLE": "Adicionar",
@@ -284,7 +436,7 @@
},
"DELETE": {
"SUCCESS": "Atributo apagado com sucesso",
- "ERROR": "Não foi possível apagar o atributo. Por favor tente mais tarde"
+ "ERROR": "Não foi possível apagar o atributo. Por favor, tente mais tarde"
},
"ATTRIBUTE_SELECT": {
"TITLE": "Adicionar atributos",
@@ -295,32 +447,44 @@
"EMAIL_HEADER": {
"FROM": "De",
"TO": "Para",
- "BCC": "BCC",
+ "BCC": "Bcc",
"CC": "Cc",
- "SUBJECT": "Assunto"
+ "SUBJECT": "Assunto",
+ "EXPAND": "Expand email"
},
"CONVERSATION_PARTICIPANTS": {
- "SIDEBAR_MENU_TITLE": "Participando",
+ "SIDEBAR_MENU_TITLE": "A participar",
"SIDEBAR_TITLE": "Participantes da conversa",
"NO_RECORDS_FOUND": "Nenhum resultado encontrado",
"ADD_PARTICIPANTS": "Selecionar participantes",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} outros",
- "REMANING_PARTICIPANT_TEXT": "+%{count} outro",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} pessoas estão participando.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} pessoa está participando.",
- "NO_PARTICIPANTS_TEXT": "Ninguém está participando!",
- "WATCH_CONVERSATION": "Junte-se a conversa",
- "YOU_ARE_WATCHING": "Você está participando",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} outros",
+ "REMANING_PARTICIPANT_TEXT": "+{count} outro",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} pessoas estão a participar.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} pessoa está a participar.",
+ "NO_PARTICIPANTS_TEXT": "Ninguém está a participar!",
+ "WATCH_CONVERSATION": "Junte-se à conversa",
+ "YOU_ARE_WATCHING": "Está a participar",
"API": {
- "ERROR_MESSAGE": "Não foi possível atualizar, tente novamente!",
+ "ERROR_MESSAGE": "Não foi possível atualizar, por favor, tente novamente!",
"SUCCESS_MESSAGE": "Participantes atualizados!"
}
},
"TRANSLATE_MODAL": {
"TITLE": "Ver conteúdo traduzido",
- "DESC": "Você pode visualizar o conteúdo traduzido em cada idioma.",
- "ORIGINAL_CONTENT": "Conteúdo Original",
- "TRANSLATED_CONTENT": "Conteúdo Traduzido",
+ "DESC": "Pode visualizar o conteúdo traduzido em cada linguagem.",
+ "ORIGINAL_CONTENT": "Conteúdo original",
+ "TRANSLATED_CONTENT": "Conteúdo traduzido",
"NO_TRANSLATIONS_AVAILABLE": "Nenhuma tradução está disponível para este conteúdo"
+ },
+ "TYPING": {
+ "ONE": "{user} is typing",
+ "TWO": "{user} and {secondUser} are typing",
+ "MULTIPLE": "{user} and {count} others are typing"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Try these prompts"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Unable to download attachment. Please try again"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/customRole.json b/app/javascript/dashboard/i18n/locale/pt/customRole.json
new file mode 100644
index 000000000..02e81fc3e
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Funções personalizadas",
+ "LEARN_MORE": "Aprenda mais sobre funções personalizadas",
+ "DESCRIPTION": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "COUNT": "{n} custom role | {n} custom roles",
+ "HEADER_BTN_TXT": "Adicionar função personalizada",
+ "LOADING": "Buscando funções personalizadas...",
+ "SEARCH_PLACEHOLDER": "Search custom roles...",
+ "NO_RESULTS": "No custom roles found matching your search",
+ "SEARCH_404": "Não há itens correspondentes a esta consulta.",
+ "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": "Faça upgrade do seu plano para obter acesso a recursos avançados, como gestão de equipas, automações, atributos personalizados e muito mais.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "O recurso de função personalizada está disponível apenas nos planos pagos.",
+ "UPGRADE_PROMPT": "Faça upgrade para um plano pago para obter recursos avançados, como logs de auditoria, capacidade de agentes e muito mais.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ },
+ "LIST": {
+ "404": "There are no custom roles available in this account.",
+ "TITLE": "Gerir funções personalizadas",
+ "DESC": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "DESCRIPTION": "Descrição",
+ "PERMISSIONS": "Permissions",
+ "ACTIONS": "Ações"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Manage all conversations",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Manage unassigned conversations and those assigned to them",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Manage participating conversations and those assigned to them",
+ "CONTACT_MANAGE": "Manage contacts",
+ "REPORT_MANAGE": "Manage reports",
+ "KNOWLEDGE_BASE_MANAGE": "Manage knowledge base"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Please enter a name.",
+ "ERROR": "Nome é obrigatório."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Please enter a description.",
+ "ERROR": "Descrição obrigatória."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissões",
+ "ERROR": "Permissão requerida."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
+ }
+ },
+ "ADD": {
+ "TITLE": "Adicionar função personalizada",
+ "DESC": " Funções personalizadas permitem criar funções com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "SUBMIT": "Submeter",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada adicionada com sucesso."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Editar",
+ "TITLE": "Editar função personalizada",
+ "DESC": " Funções personalizadas permitem criar funções com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "SUBMIT": "Atualização",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada atualizada com sucesso."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Excluir",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada excluída com sucesso.",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem certeza que deseja excluir agente ",
+ "YES": "Sim, excluir ",
+ "NO": "Não, manter "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/datePicker.json b/app/javascript/dashboard/i18n/locale/pt/datePicker.json
new file mode 100644
index 000000000..582984b4c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Previous period",
+ "NEXT_PERIOD": "Next period",
+ "WEEK_NUMBER": "Week #{weekNumber}",
+ "APPLY_BUTTON": "Confirmar",
+ "CLEAR_BUTTON": "Limpar",
+ "DATE_RANGE_INPUT": {
+ "START": "Data inicial",
+ "END": "Data final"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "Intervalo de datas",
+ "LAST_7_DAYS": "Últimos 7 Dias",
+ "LAST_30_DAYS": "Últimos 30 Dias",
+ "LAST_3_MONTHS": "Últimos 3 meses",
+ "LAST_6_MONTHS": "Últimos 6 meses",
+ "LAST_YEAR": "Último ano",
+ "THIS_WEEK": "This week",
+ "MONTH_TO_DATE": "This month",
+ "CUSTOM_RANGE": "Intervalo de tempo personalizado"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/general.json b/app/javascript/dashboard/i18n/locale/pt/general.json
new file mode 100644
index 000000000..5e5e293bd
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "A mostrar {firstIndex}-{lastIndex} de {totalCount} itens",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Procurar",
+ "EMPTY_STATE": "Nenhum resultado encontrado"
+ },
+ "CLOSE": "Fechar",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "This feature is in beta and may change as we improve it.",
+ "ACCEPT": "Aceitar",
+ "DISCARD": "Discard",
+ "PREFERRED": "Preferido"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sim",
+ "NO": "Não"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
index 3a0c02296..24e9ced0d 100644
--- a/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/generalSettings.json
@@ -1,13 +1,39 @@
{
"GENERAL_SETTINGS": {
+ "LIMIT_MESSAGES": {
+ "CONVERSATION": "Excedeu o limite de conversas. O plano Hacker permite apenas 500 conversas.",
+ "INBOXES": "Excedeu o limite de caixas de entrada. O plano Hacker só suporta chat ao vivo no site. Caixas de entrada adicionais como email, WhatsApp, etc. requerem um plano pago.",
+ "AGENTS": "You have exceeded the agent limit. Your plan only allows {allowedAgents} agents.",
+ "NON_ADMIN": "Por favor, contacte o seu administrador para atualizar o plano e continuar a usar todas as funcionalidades."
+ },
"TITLE": "Configurações da conta",
"SUBMIT": "Atualizar configurações",
"BACK": "Voltar",
"DISMISS": "Descartar",
"UPDATE": {
- "ERROR": "Não foi possível atualizar as configurações, tente novamente!",
+ "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": "Apagar a sua Conta",
+ "NOTE": "Após apagar a sua conta, todos os seus dados serão apagados.",
+ "BUTTON_TEXT": "Apagar a Sua Conta",
+ "CONFIRM": {
+ "TITLE": "Apagar Conta",
+ "MESSAGE": "Apagar a sua conta é irreversível. Introduza o nome da sua conta abaixo para confirmar que pretende apagá-la permanentemente.",
+ "BUTTON_TEXT": "Excluir",
+ "DISMISS": "Cancelar",
+ "PLACE_HOLDER": "Por favor, escreva {accountName} para confirmar"
+ },
+ "SUCCESS": "Conta selecionada para apagar",
+ "FAILURE": "Não foi possível apagar a conta, tente novamente!",
+ "SCHEDULED_DELETION": {
+ "TITLE": "Eliminação da conta agendada",
+ "MESSAGE_MANUAL": "Eliminação da conta agendada para {deletionDate}. Isto foi solicitado por um administrador. Pode cancelar a eliminação antes desta data.",
+ "MESSAGE_INACTIVITY": "Eliminação da conta está agendada para {deletionDate} devido à sua inatividade. Pode cancelar a eliminação antes desta data.",
+ "CLEAR_BUTTON": "Cancelar agendamento da eliminação"
+ }
+ },
"FORM": {
"ERROR": "Por favor, corrigir erros de formulário",
"GENERAL_SECTION": {
@@ -15,71 +41,122 @@
"NOTE": ""
},
"ACCOUNT_ID": {
- "TITLE": "Conta ID",
+ "TITLE": "ID da conta",
"NOTE": "Este ID é necessário para integrações via API"
},
+ "AUTO_RESOLVE": {
+ "TITLE": "Auto-resolver conversas",
+ "NOTE": "Esta configuração permite-lhe resolver automaticamente a conversa após um determinado período de inatividade.",
+ "DURATION": {
+ "LABEL": "Duração da inatividade",
+ "HELP": "Período de inatividade após o qual a conversa é automaticamente resolvida",
+ "PLACEHOLDER": "30",
+ "ERROR": "A duração de auto-resolução deve ser entre 10 minutos e 999 dias",
+ "API": {
+ "SUCCESS": "Definições de auto-resolução atualizadas",
+ "ERROR": "Falha ao atualizar as definições de auto-resolução"
+ }
+ },
+ "MESSAGE": {
+ "LABEL": "Mensagem personalizada de auto-resolução",
+ "PLACEHOLDER": "A conversa foi marcada como resolvida pelo sistema devido a 15 dias de inatividade",
+ "HELP": "Mensagem enviada ao cliente após a conversa ser automaticamente resolvida"
+ },
+ "PREFERENCES": "Preferências",
+ "LABEL": {
+ "LABEL": "Adicionar etiqueta após auto-resolução",
+ "PLACEHOLDER": "Selecionar uma etiqueta"
+ },
+ "IGNORE_WAITING": {
+ "LABEL": "Ignorar conversas à espera de resposta do agente"
+ },
+ "UPDATE_BUTTON": "Salvar alterações"
+ },
"NAME": {
- "LABEL": "Nome da Conta",
+ "LABEL": "Nome da conta",
"PLACEHOLDER": "Nome da sua conta",
"ERROR": "Por favor, insira um nome de conta válido"
},
"LANGUAGE": {
- "LABEL": "Idioma do site",
+ "LABEL": "Linguagem do site",
"PLACEHOLDER": "Nome da sua conta",
"ERROR": ""
},
"DOMAIN": {
- "LABEL": "Email recebido do domínio",
- "PLACEHOLDER": "O domínio onde irá receber os emails",
+ "LABEL": "E-mail recebido do domínio",
+ "PLACEHOLDER": "O domínio onde irá receber os e-mails",
"ERROR": ""
},
"SUPPORT_EMAIL": {
- "LABEL": "E-mail de Suporte",
+ "LABEL": "E-mail de suporte",
"PLACEHOLDER": "E-mail de suporte da sua empresa",
"ERROR": ""
},
+ "AUTO_RESOLVE_IGNORE_WAITING": {
+ "LABEL": "Excluir conversas não atendidas",
+ "HELP": "Quando ativado, o sistema irá ignorar a resolução de conversas que ainda estão à espera de resposta de um agente."
+ },
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Transcrever mensagens de áudio",
+ "NOTE": "Transcreva automaticamente mensagens de áudio nas conversas. Gere uma transcrição de texto sempre que uma mensagem de áudio for enviada ou recebida e apresente-a junto da mensagem.",
+ "API": {
+ "SUCCESS": "Definição de transcrição de áudio atualizada com sucesso",
+ "ERROR": "Falha ao atualizar a definição de transcrição de áudio"
+ }
+ },
"AUTO_RESOLVE_DURATION": {
- "LABEL": "Número de dias sem nenhuma atividade, após os quais, o ticket se auto-resolve",
+ "LABEL": "Duração de inatividade para resolução",
+ "HELP": "Duração após a qual a conversa deve ser automaticamente resolvida se não houver atividade",
"PLACEHOLDER": "30",
- "ERROR": "Por favor, informe um período de resolução automática válido (mínimo de 1 dia e máximo de 999 dias)"
+ "ERROR": "A duração de auto-resolução deve ser entre 10 minutos e 999 dias",
+ "API": {
+ "SUCCESS": "Definições de auto-resolução atualizadas",
+ "ERROR": "Falha ao atualizar as definições de auto-resolução"
+ },
+ "UPDATE_BUTTON": "Atualização",
+ "MESSAGE_LABEL": "Mensagem personalizada de resolução",
+ "MESSAGE_PLACEHOLDER": "A conversa foi marcada como resolvida pelo sistema devido a 15 dias de inatividade",
+ "MESSAGE_HELP": "Esta mensagem é enviada ao cliente quando uma conversa é automaticamente resolvida pelo sistema devido à inatividade."
},
"FEATURES": {
"INBOUND_EMAIL_ENABLED": "A sua conta tem a opção de continuar as conversas por e-mail ativa.",
- "CUSTOM_EMAIL_DOMAIN_ENABLED": "Já pode receber emails no domínio que escolheu."
+ "CUSTOM_EMAIL_DOMAIN_ENABLED": "Já pode receber e-mails no domínio que escolheu."
}
},
- "UPDATE_CHATWOOT": "Está disponível uma nova atualização %{latestChatwootVersion} para o ChatWoot. Por favor, atualize a sua versão.",
- "LEARN_MORE": "Saiba mais",
- "PAYMENT_PENDING": "O seu pagamento está pendente. Por favor atualize as suas informações de pagamento para continuar a usar o 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 faturamento"
+ "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": "Atualize para continuar a usar o 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"
},
"FORMS": {
"MULTISELECT": {
"ENTER_TO_SELECT": "Pressione Enter para escolher",
"ENTER_TO_REMOVE": "Pressione Enter para eliminar",
+ "NO_OPTIONS": "List is empty",
"SELECT_ONE": "Selecionar um",
"SELECT": "Selecionar"
}
},
"NOTIFICATIONS_PAGE": {
- "HEADER": "Notificaçoes",
- "MARK_ALL_DONE": "Marcar todos como Resolvidos",
- "DELETE_TITLE": "excluído",
+ "HEADER": "Notificações",
+ "MARK_ALL_DONE": "Marcar todos como resolvidos",
+ "DELETE_TITLE": "Excluído",
"UNREAD_NOTIFICATION": {
- "TITLE": "Notificações Não Lidas",
+ "TITLE": "Notificações não lidas",
"ALL_NOTIFICATIONS": "Ver todas as notificações",
- "LOADING_UNREAD_MESSAGE": "Carregando notificações não lidas...",
- "EMPTY_MESSAGE": "Você não tem notificações não lidas"
+ "LOADING_UNREAD_MESSAGE": "A carregar notificações não lidas...",
+ "EMPTY_MESSAGE": "Não há notificações não lidas"
},
"LIST": {
"LOADING_MESSAGE": "A carregar notificações...",
- "404": "Sem Notificações",
+ "404": "Sem notificações",
"TABLE_HEADER": [
- "Nome:",
+ "Nome",
"Número de telefone",
"Conversas",
- "Último contato"
+ "Último contacto"
]
},
"TYPE_LABEL": {
@@ -87,71 +164,78 @@
"conversation_assignment": "Conversa atribuída",
"assigned_conversation_new_message": "Nova mensagem",
"participating_conversation_new_message": "Nova mensagem",
- "conversation_mention": "Mencionar"
+ "conversation_mention": "Mencionar",
+ "sla_missed_first_response": "SLA perdido",
+ "sla_missed_next_response": "SLA perdido",
+ "sla_missed_resolution": "SLA perdido"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Ausente"
+ "OFFLINE": "Ausente",
+ "RECONNECTING": "A reconectar...",
+ "RECONNECT_SUCCESS": "Reconectado"
},
"BUTTON": {
"REFRESH": "Atualizar"
}
},
"COMMAND_BAR": {
- "SEARCH_PLACEHOLDER": "Pesquisar ou pular para",
+ "SEARCH_PLACEHOLDER": "Pesquisar ou passar para",
+ "SNOOZE_PLACEHOLDER": "Type a time e.g. tomorrow, 2 hours, next friday, jan 15...",
"SECTIONS": {
"GENERAL": "Geral",
- "REPORTS": "relatórios",
+ "REPORTS": "Relatórios",
"CONVERSATION": "Conversa",
- "CHANGE_ASSIGNEE": "Alterar Responsável",
- "CHANGE_PRIORITY": "Alterar Prioridade",
- "CHANGE_TEAM": "Alterar Equipa",
- "SNOOZE_CONVERSATION": "Adiar Conversa",
+ "BULK_ACTIONS": "Ações em massa",
+ "CHANGE_ASSIGNEE": "Alterar responsável",
+ "CHANGE_PRIORITY": "Alterar prioridade",
+ "CHANGE_TEAM": "Alterar equipa",
+ "SNOOZE_CONVERSATION": "Adiar conversa",
"ADD_LABEL": "Adicionar etiqueta à conversa",
"REMOVE_LABEL": "Remover etiqueta da conversa",
"SETTINGS": "Configurações",
"AI_ASSIST": "Assistente IA",
- "APPEARANCE": "Aspeto",
+ "APPEARANCE": "Aparência",
"SNOOZE_NOTIFICATION": "Suspender notificação"
},
"COMMANDS": {
"GO_TO_CONVERSATION_DASHBOARD": "Ir para o painel de conversação",
- "GO_TO_CONTACTS_DASHBOARD": "Ir para o painel de contatos",
- "GO_TO_REPORTS_OVERVIEW": "Ir para Visão Geral de Relatórios",
- "GO_TO_CONVERSATION_REPORTS": "Ir para Relatórios de Conversa",
- "GO_TO_AGENT_REPORTS": "Ir para Relatórios de Agentes",
- "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 Equipa",
- "GO_TO_SETTINGS_AGENTS": "Ir para Configurações do Agente",
- "GO_TO_SETTINGS_TEAMS": "Ir para Configurações da Equipa",
- "GO_TO_SETTINGS_INBOXES": "Ir para Configurações da Caixa de entrada",
- "GO_TO_SETTINGS_LABELS": "Ir para Configurações da Etiquetas",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Ir para Configurações de Resposta Pronta",
- "GO_TO_SETTINGS_APPLICATIONS": "Ir para Configurações da Aplicação",
- "GO_TO_SETTINGS_ACCOUNT": "Ir para Configurações da Conta",
- "GO_TO_SETTINGS_PROFILE": "Ir para Configurações do Perfil",
- "GO_TO_NOTIFICATIONS": "Ir para Notificações",
+ "GO_TO_CONTACTS_DASHBOARD": "Ir para o painel de contactos",
+ "GO_TO_REPORTS_OVERVIEW": "Ir para a visão geral de relatórios",
+ "GO_TO_CONVERSATION_REPORTS": "Ir para relatórios de conversa",
+ "GO_TO_AGENT_REPORTS": "Ir para relatórios de agentes",
+ "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 equipa",
+ "GO_TO_SETTINGS_AGENTS": "Ir para configurações do agente",
+ "GO_TO_SETTINGS_TEAMS": "Ir para configurações da equipa",
+ "GO_TO_SETTINGS_INBOXES": "Ir para configurações da caixa de entrada",
+ "GO_TO_SETTINGS_LABELS": "Ir para configurações de etiquetas",
+ "GO_TO_SETTINGS_CANNED_RESPONSES": "Ir para configurações de resposta pronta",
+ "GO_TO_SETTINGS_APPLICATIONS": "Ir para configurações da aplicação",
+ "GO_TO_SETTINGS_ACCOUNT": "Ir para configurações da conta",
+ "GO_TO_SETTINGS_PROFILE": "Ir para configurações do perfil",
+ "GO_TO_NOTIFICATIONS": "Ir para notificações",
"ADD_LABELS_TO_CONVERSATION": "Adicionar etiqueta à conversa",
"ASSIGN_AN_AGENT": "Atribuir um agente",
"AI_ASSIST": "Assistente IA",
"ASSIGN_PRIORITY": "Atribuir prioridade",
"ASSIGN_A_TEAM": "Atribuir uma equipa",
- "MUTE_CONVERSATION": "Silenciar Conversa",
+ "MUTE_CONVERSATION": "Silenciar conversa",
"UNMUTE_CONVERSATION": "Reativar conversa",
"REMOVE_LABEL_FROM_CONVERSATION": "Remover etiqueta da conversa",
"REOPEN_CONVERSATION": "Reabrir conversa",
"RESOLVE_CONVERSATION": "Resolver conversa",
"SEND_TRANSCRIPT": "Enviar transcrição por e-mail",
- "SNOOZE_CONVERSATION": "Adiar Conversa",
+ "SNOOZE_CONVERSATION": "Adiar conversa",
"UNTIL_NEXT_REPLY": "Até à próxima resposta",
"UNTIL_NEXT_WEEK": "Até à próxima semana",
"UNTIL_TOMORROW": "Até amanhã",
"UNTIL_NEXT_MONTH": "Até ao mês seguinte",
"AN_HOUR_FROM_NOW": "Até daqui a uma hora",
- "CUSTOM": "Personalizar...",
- "CHANGE_APPEARANCE": "Alterar Aspeto",
+ "UNTIL_CUSTOM_TIME": "Personalizar...",
+ "CHANGE_APPEARANCE": "Alterar aparência",
"LIGHT_MODE": "Claro",
"DARK_MODE": "Escuro",
"SYSTEM_MODE": "Sistema",
@@ -159,7 +243,7 @@
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Carregando App da Dashboard..."
+ "LOADING_MESSAGE": "A carregar app do dashboard..."
},
"COMMON": {
"OR": "Ou",
diff --git a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
index 381e2f2ce..f7a08aa54 100644
--- a/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt/helpCenter.json
@@ -1,49 +1,55 @@
{
"HELP_CENTER": {
+ "TITLE": "Centro de suporte",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Create self-service help center portals for your customers. Help them find answers quickly, without waiting. Streamline inquiries, boost agent efficiency, and elevate customer support.",
+ "CREATE_PORTAL_BUTTON": "Criar portal"
+ },
"HEADER": {
"FILTER": "Filtrar por",
"SORT": "Ordenar por",
- "LOCALE": "Idioma",
- "SETTINGS_BUTTON": "Confirgurações",
- "NEW_BUTTON": "Novo Artigo",
+ "LOCALE": "Linguagem",
+ "SETTINGS_BUTTON": "Configurações",
+ "NEW_BUTTON": "Novo artigo",
"DROPDOWN_OPTIONS": {
"PUBLISHED": "Publicado",
"DRAFT": "Rascunho",
"ARCHIVED": "Arquivado"
},
"TITLES": {
- "ALL_ARTICLES": "Todos os Artigos",
- "MINE": "Meus Artigos",
+ "ALL_ARTICLES": "Todos os artigos",
+ "MINE": "Meus artigos",
"DRAFT": "Rascunhos de artigos",
- "ARCHIVED": "Artigos Arquivados"
+ "ARCHIVED": "Artigos arquivados"
},
"LOCALE_SELECT": {
- "TITLE": "Selecionar idioma",
- "PLACEHOLDER": "Selecionar idioma",
- "NO_RESULT": "Nenhum idioma encontrado",
- "SEARCH_PLACEHOLDER": "Buscar idioma"
+ "TITLE": "Selecionar linguagem",
+ "PLACEHOLDER": "Selecionar linguagem",
+ "NO_RESULT": "Nenhuma linguagem encontrada",
+ "SEARCH_PLACEHOLDER": "Procurar linguagem"
}
},
"EDIT_HEADER": {
- "ALL_ARTICLES": "Todos os Artigos",
+ "ALL_ARTICLES": "Todos os artigos",
"PUBLISH_BUTTON": "Publicar",
"MOVE_TO_ARCHIVE_BUTTON": "Mover para arquivo",
"PREVIEW": "Pré-visualizar",
"ADD_TRANSLATION": "Adicionar tradução",
"OPEN_SIDEBAR": "Abrir barra lateral",
"CLOSE_SIDEBAR": "Fechar barra lateral",
- "SAVING": "A salvar...",
- "SAVED": "Salvo"
+ "SAVING": "A guardar...",
+ "SAVED": "Guardado"
},
"ARTICLE_EDITOR": {
"IMAGE_UPLOAD": {
- "TITLE": "Upload de imagem",
+ "TITLE": "Carregar imagem",
"UPLOADING": "A carregar...",
"SUCCESS": "Imagem carregada com sucesso",
"ERROR": "Erro ao carregar imagem",
+ "UN_AUTHORIZED_ERROR": "You are not authorized to upload images",
"ERROR_FILE_SIZE": "O tamanho da imagem deve ser inferior a {size}MB",
"ERROR_FILE_FORMAT": "O formato da imagem deve ser jpg, jpeg ou png",
- "ERROR_FILE_DIMENSIONS": "Dimensões da imagem devem ser menores que 2000 x 2000"
+ "ERROR_FILE_DIMENSIONS": "As dimensões da imagem devem ser menores que 2000 x 2000"
}
},
"ARTICLE_SETTINGS": {
@@ -64,16 +70,16 @@
"SEARCH_PLACEHOLDER": "Procurar autor"
},
"META_TITLE": {
- "LABEL": "Título Meta",
- "PLACEHOLDER": "Adicionar título Meta"
+ "LABEL": "Título meta",
+ "PLACEHOLDER": "Adicionar título meta"
},
"META_DESCRIPTION": {
- "LABEL": "Descrição Meta",
- "PLACEHOLDER": "Adicione a sua descrição Meta para melhorar os resultados de SEO..."
+ "LABEL": "Descrição meta",
+ "PLACEHOLDER": "Adicione a sua descrição meta para melhorar os resultados de SEO..."
},
"META_TAGS": {
- "LABEL": "Meta tags",
- "PLACEHOLDER": "Adicione Meta tags separadas por virgula..."
+ "LABEL": "Tags meta",
+ "PLACEHOLDER": "Adicione tags meta separadas por vírgula..."
}
},
"BUTTONS": {
@@ -83,81 +89,87 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Sem categoria",
- "SEARCH_RESULTS": "Resultados da pesquisa de %{query}",
+ "SEARCH_RESULTS": "Procurar resultados para {query}",
"EMPTY_TEXT": "Pesquisar artigos para inserir em respostas.",
"SEARCH_LOADER": "A pesquisar...",
"INSERT_ARTICLE": "Inserir",
"NO_RESULT": "Nenhum artigo encontrado",
- "COPY_LINK": "Copiar link do artigo para área de transferência",
+ "COPY_LINK": "Copiar link do artigo para a área de transferência",
"OPEN_LINK": "Abrir artigo numa nova aba",
"PREVIEW_LINK": "Pré-visualizar artigo"
},
"PORTAL": {
"HEADER": "Portais",
"DEFAULT": "Padrão",
- "NEW_BUTTON": "Novo Portal",
- "ACTIVE_BADGE": "ativa",
- "CHOOSE_LOCALE_LABEL": "Selecione um idioma",
+ "NEW_BUTTON": "Novo portal",
+ "ACTIVE_BADGE": "Ativa",
+ "CHOOSE_LOCALE_LABEL": "Selecionar linguagem",
"LOADING_MESSAGE": "A carregar portais...",
- "ARTICLES_LABEL": "artigos",
+ "ARTICLES_LABEL": "Artigos",
"NO_PORTALS_MESSAGE": "Não há portais disponíveis",
- "ADD_NEW_LOCALE": "Adicionar um novo idioma",
+ "ADD_NEW_LOCALE": "Adicionar nova linguagem",
"POPOVER": {
"TITLE": "Portais",
- "PORTAL_SETTINGS": "Configurações do Portal",
- "SUBTITLE": "Tem vários portais e pode ter diferentes idiomas para cada portal.",
- "CANCEL_BUTTON_LABEL": "cancelar",
- "CHOOSE_LOCALE_BUTTON": "Selecione Idioma"
+ "PORTAL_SETTINGS": "Configurações do portal",
+ "SUBTITLE": "Tem vários portais e pode ter diferentes linguagens para cada portal.",
+ "CANCEL_BUTTON_LABEL": "Cancelar",
+ "CHOOSE_LOCALE_BUTTON": "Selecionar linguagem"
},
"PORTAL_SETTINGS": {
"LIST_ITEM": {
"HEADER": {
- "COUNT_LABEL": "artigos",
- "ADD": "Adicionar idioma",
+ "COUNT_LABEL": "Artigos",
+ "ADD": "Adicionar linguagem",
"VISIT": "Abrir site",
- "SETTINGS": "Confirgurações",
- "DELETE": "excluir"
+ "SETTINGS": "Configurações",
+ "DELETE": "Excluir"
},
"PORTAL_CONFIG": {
- "TITLE": "Configurações do Portal",
+ "TITLE": "Configurações do portal",
"ITEMS": {
- "NAME": "Nome:",
+ "NAME": "Nome",
"DOMAIN": "Domínio personalizado",
"SLUG": "Slug",
"TITLE": "Título do portal",
"THEME": "Cor do tema",
- "SUB_TEXT": "Sub texto do Portal"
+ "SUB_TEXT": "Sub texto do portal"
}
},
"AVAILABLE_LOCALES": {
- "TITLE": "Idiomas disponíveis",
+ "TITLE": "Linguagens disponíveis",
"TABLE": {
- "NAME": "Nome do idioma",
- "CODE": "Código idioma",
+ "NAME": "Nome do local",
+ "CODE": "Código do local",
"ARTICLE_COUNT": "Número de artigos",
"CATEGORIES": "Número de categorias",
"SWAP": "Trocar",
- "DELETE": "excluir",
+ "DELETE": "Excluir",
"DEFAULT_LOCALE": "Padrão"
}
}
},
"DELETE_PORTAL": {
"TITLE": "Apagar portal",
- "MESSAGE": "Tem certeza de que pretende apagar este portal",
+ "MESSAGE": "Tem a certeza que pretende apagar este portal",
"YES": "Sim, apagar portal",
- "NO": "Não, manter o portal",
+ "NO": "Não, manter portal",
"API": {
"DELETE_SUCCESS": "Portal apagado com sucesso",
"DELETE_ERROR": "Erro ao apagar portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "CNAME instructions sent successfully",
+ "ERROR_MESSAGE": "Error while sending CNAME instructions"
+ }
}
},
"EDIT": {
"HEADER_TEXT": "Editar portal",
"TABS": {
"BASIC_SETTINGS": {
- "TITLE": "Informação Básica"
+ "TITLE": "Informação básica"
},
"CUSTOMIZATION_SETTINGS": {
"TITLE": "Personalização do portal"
@@ -166,16 +178,16 @@
"TITLE": "Categorias"
},
"LOCALE_SETTINGS": {
- "TITLE": "Idiomas"
+ "TITLE": "Locais"
}
},
"CATEGORIES": {
"TITLE": "Categorias em",
"NEW_CATEGORY": "Nova categoria",
"TABLE": {
- "NAME": "Nome:",
+ "NAME": "Nome",
"DESCRIPTION": "Descrição",
- "LOCALE": "Idioma",
+ "LOCALE": "Local",
"ARTICLE_COUNT": "Número de artigos",
"ACTION_BUTTON": {
"EDIT": "Editar categoria",
@@ -189,30 +201,24 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informações do centro de ajuda",
- "route": "new_portal_information",
- "body": "Informações básicas sobre o portal",
- "CREATE_BASIC_SETTING_BUTTON": "Criar configurações básicas do portal"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informações do centro de ajuda",
+ "BODY": "Informações básicas sobre o portal"
},
- {
- "title": "Personalização do centro de ajuda",
- "route": "portal_customization",
- "body": "Personalizar portal",
- "UPDATE_PORTAL_BUTTON": "Atualizar definições do portal"
+ "CUSTOMIZATION": {
+ "TITLE": "Personalização do centro de ajuda",
+ "BODY": "Personalizar portal"
},
- {
- "title": "Voila! 🎉",
- "route": "portal_finish",
- "body": "Tudo pronto!",
- "FINISH": "Terminar"
+ "FINISH": {
+ "TITLE": "Pronto! 🎉",
+ "BODY": "Está tudo pronto!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Voltar",
"BASIC_SETTINGS_PAGE": {
- "HEADER": "Criar Portal",
+ "HEADER": "Criar portal",
"TITLE": "Informações do centro de ajuda",
"CREATE_BASIC_SETTING_BUTTON": "Criar configurações básicas do portal"
},
@@ -222,41 +228,41 @@
"UPDATE_PORTAL_BUTTON": "Atualizar definições do portal"
},
"FINISH_PAGE": {
- "TITLE": "Voila!🎉 Está tudo pronto!",
+ "TITLE": "Está tudo pronto! 🎉",
"MESSAGE": "Agora já pode ver o portal criado na sua página de todos os portais.",
"FINISH": "Ir para a página de todos os portais"
}
},
"LOGO": {
"LABEL": "Logo",
- "UPLOAD_BUTTON": "Upload logo",
+ "UPLOAD_BUTTON": "Carregar logo",
"HELP_TEXT": "Este logo será exibido no cabeçalho do portal.",
- "IMAGE_UPLOAD_SUCCESS": "Logo importado",
- "IMAGE_UPLOAD_ERROR": "Logo apagado",
+ "IMAGE_UPLOAD_SUCCESS": "Logo carregado com sucesso",
+ "IMAGE_UPLOAD_ERROR": "Logo apagado com sucesso",
"IMAGE_DELETE_ERROR": "Erro ao apagar logo"
},
"NAME": {
- "LABEL": "Nome:",
+ "LABEL": "Nome",
"PLACEHOLDER": "Nome do portal",
"HELP_TEXT": "O nome será usado internamente no portal público.",
- "ERROR": "Nome é obrigatório"
+ "ERROR": "Nome obrigatório"
},
"SLUG": {
"LABEL": "Slug",
- "PLACEHOLDER": "Slug do Portal para Urls",
+ "PLACEHOLDER": "Slug do portal para URLs",
"ERROR": "Slug é obrigatório"
},
"DOMAIN": {
"LABEL": "Domínio personalizado",
- "PLACEHOLDER": "Domínio personalizado do Portal",
- "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: https://example.com",
+ "PLACEHOLDER": "Domínio personalizado do portal",
+ "HELP_TEXT": "Add only If you want to use a custom domain for your portals. Eg: {exampleURL}",
"ERROR": "Insira um URL de domínio válido"
},
"HOME_PAGE_LINK": {
"LABEL": "Link da Página Inicial",
- "PLACEHOLDER": "Link da página inicial do Portal",
- "HELP_TEXT": "The link used to return from the portal to the home page. Eg: https://example.com",
- "ERROR": "Insira uma URL de página inicial válida"
+ "PLACEHOLDER": "Link da página inicial do portal",
+ "HELP_TEXT": "The link used to return from the portal to the home page. Eg: {exampleURL}",
+ "ERROR": "Insira um URL de página inicial válido"
},
"THEME_COLOR": {
"LABEL": "Cor do tema do portal",
@@ -264,51 +270,63 @@
},
"PAGE_TITLE": {
"LABEL": "Título da página",
- "PLACEHOLDER": "Título da página do Portal",
+ "PLACEHOLDER": "Título da página do portal",
"HELP_TEXT": "O título da página será usado no portal público.",
- "ERROR": "O título da página é obrigatório"
+ "ERROR": "Título da página obrigatório"
},
"HEADER_TEXT": {
"LABEL": "Texto do cabeçalho",
"PLACEHOLDER": "Texto do cabeçalho do portal",
- "HELP_TEXT": "O texto do cabeçalho do Portal será usado no portal visivel ao público.",
- "ERROR": "O texto do cabeçalho do portal é obrigatório"
+ "HELP_TEXT": "O texto do cabeçalho do portal será usado no portal visível ao público.",
+ "ERROR": "Texto do cabeçalho do portal obrigatório"
},
"API": {
"SUCCESS_MESSAGE_FOR_BASIC": "Portal criado com sucesso.",
- "ERROR_MESSAGE_FOR_BASIC": "Não foi possível criar o portal. Tente novamente.",
+ "ERROR_MESSAGE_FOR_BASIC": "Não foi possível criar o portal. Por favor, tente novamente.",
"SUCCESS_MESSAGE_FOR_UPDATE": "Portal atualizado com sucesso.",
- "ERROR_MESSAGE_FOR_UPDATE": "Não foi possível atualizar o portal. Tente novamente."
+ "ERROR_MESSAGE_FOR_UPDATE": "Não foi possível atualizar o portal. Por favor, tente novamente."
}
},
"ADD_LOCALE": {
- "TITLE": "Adicionar um novo idioma",
- "SUB_TITLE": "Isto adiciona um novo idioma à sua lista de tradução disponível.",
+ "TITLE": "Adicionar um novo local",
+ "SUB_TITLE": "Isto adiciona um novo local à sua lista de traduções disponíveis.",
"PORTAL": "Portal",
"LOCALE": {
- "LABEL": "Idioma",
- "PLACEHOLDER": "Selecione um idioma",
- "ERROR": "Idioma é obrigatório"
+ "LABEL": "Local",
+ "PLACEHOLDER": "Selecione um local",
+ "ERROR": "Local obrigatório"
},
"BUTTONS": {
- "CREATE": "Criar idioma",
- "CANCEL": "cancelar"
+ "CREATE": "Criar local",
+ "CANCEL": "Cancelar"
},
"API": {
- "SUCCESS_MESSAGE": "Idioma adicionado com sucesso",
- "ERROR_MESSAGE": "Não foi possível adicionar o idioma. Tente novamente."
+ "SUCCESS_MESSAGE": "Local adicionado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível adicionar o local. Por favor, tente novamente."
}
},
"CHANGE_DEFAULT_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Idioma padrão atualizado com sucesso",
- "ERROR_MESSAGE": "Não foi possível atualizar o idioma padrão. Tente novamente."
+ "SUCCESS_MESSAGE": "Local padrão atualizado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar o local padrão. Por favor, tente novamente."
}
},
"DELETE_LOCALE": {
"API": {
- "SUCCESS_MESSAGE": "Idioma removido do portal com sucesso",
- "ERROR_MESSAGE": "Não foi possível remover o idioma do portal. Tente novamente."
+ "SUCCESS_MESSAGE": "Local removido do portal com sucesso",
+ "ERROR_MESSAGE": "Não foi possível remover o local do portal. Por favor, tente novamente."
+ }
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale moved to draft successfully",
+ "ERROR_MESSAGE": "Unable to move locale to draft. Try again."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Locale published successfully",
+ "ERROR_MESSAGE": "Unable to publish locale. Try again."
}
}
},
@@ -317,10 +335,10 @@
"404": "Nenhum artigo corresponde à sua pesquisa 🔍",
"NO_ARTICLES": "Não há artigos disponíveis",
"HEADERS": {
- "TITLE": "Nome",
+ "TITLE": "Título",
"CATEGORY": "Categoria",
- "READ_COUNT": "Views",
- "STATUS": "SItuação",
+ "READ_COUNT": "Visualizações",
+ "STATUS": "Estado",
"LAST_EDITED": "Última edição"
},
"COLUMNS": {
@@ -330,10 +348,10 @@
},
"EDIT_ARTICLE": {
"LOADING": "A carregar artigo...",
- "TITLE_PLACEHOLDER": "Título de artigo aqui",
+ "TITLE_PLACEHOLDER": "Título do artigo aqui",
"CONTENT_PLACEHOLDER": "Escreva o seu artigo aqui",
"API": {
- "ERROR": "Erro ao salvar artigo"
+ "ERROR": "Erro ao guardar artigo"
}
},
"PUBLISH_ARTICLE": {
@@ -348,18 +366,34 @@
"SUCCESS": "Artigo arquivado com sucesso"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Error while drafting article",
+ "SUCCESS": "Article drafted successfully"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem a certeza que deseja apagar o artigo?",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir o artigo?",
"YES": "Sim, excluir",
- "NO": "Não, mantenha isso"
+ "NO": "Não, manter"
}
},
"API": {
- "SUCCESS_MESSAGE": "Artigo apagado com èxito",
- "ERROR_MESSAGE": "Erro ao apagar artigo"
+ "SUCCESS_MESSAGE": "Artigo excluído com sucesso",
+ "ERROR_MESSAGE": "Erro ao excluir artigo"
+ }
+ },
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder articles. Please try again."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Unable to reorder categories. Please try again."
}
},
"CREATE_ARTICLE": {
@@ -375,27 +409,27 @@
"TITLE": "Criar categoria",
"SUB_TITLE": "A categoria será usada no portal público para categorizar artigos.",
"PORTAL": "Portal",
- "LOCALE": "Idioma",
+ "LOCALE": "Local",
"NAME": {
- "LABEL": "Nome:",
+ "LABEL": "Nome",
"PLACEHOLDER": "Nome da categoria",
"HELP_TEXT": "O ícone e o nome da categoria serão usados no portal público para categorizar artigos.",
- "ERROR": "Nome é obrigatório"
+ "ERROR": "Nome obrigatório"
},
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "Categoria slug para URLs",
- "HELP_TEXT": "app.chatwoot.com/hc/meu-portal/en-US/categories/meu-slug",
- "ERROR": "Slug é obrigatório"
+ "HELP_TEXT": "app.chatwoot.com/hc/meu-portal/en-US/categorias/meu-slug",
+ "ERROR": "Slug obrigatória"
},
"DESCRIPTION": {
"LABEL": "Descrição",
- "PLACEHOLDER": "Forneça uma breve descrição da categoria.",
- "ERROR": "Descrição é obrigatória"
+ "PLACEHOLDER": "Breve descrição da categoria.",
+ "ERROR": "Descrição obrigatória"
},
"BUTTONS": {
"CREATE": "Criar categoria",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
},
"API": {
"SUCCESS_MESSAGE": "Categoria criada com sucesso",
@@ -406,27 +440,27 @@
"TITLE": "Editar uma categoria",
"SUB_TITLE": "Editar uma categoria atualizará a categoria no portal público.",
"PORTAL": "Portal",
- "LOCALE": "Idioma",
+ "LOCALE": "Local",
"NAME": {
- "LABEL": "Nome:",
+ "LABEL": "Nome",
"PLACEHOLDER": "Nome da categoria",
"HELP_TEXT": "O ícone e o nome da categoria serão usados no portal público para categorizar artigos.",
- "ERROR": "Nome é obrigatório"
+ "ERROR": "Nome obrigatório"
},
"SLUG": {
"LABEL": "Slug",
"PLACEHOLDER": "Categoria slug para URLs",
- "HELP_TEXT": "app.chatwoot.com/hc/meu-portal/en-US/categories/meu-slug",
+ "HELP_TEXT": "app.chatwoot.com/hc/meu-portal/en-US/categorias/meu-slug",
"ERROR": "Slug é obrigatório"
},
"DESCRIPTION": {
"LABEL": "Descrição",
- "PLACEHOLDER": "Forneça uma breve descrição da categoria.",
+ "PLACEHOLDER": "Breve descrição da categoria.",
"ERROR": "Descrição é obrigatória"
},
"BUTTONS": {
"CREATE": "Atualizar categoria",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
},
"API": {
"SUCCESS_MESSAGE": "Categoria atualizada com sucesso",
@@ -449,19 +483,19 @@
"INSERT_ARTICLE": "Inserir link",
"IFRAME_ERROR": "O URL está vazio ou é inválido. Não é possível exibir o conteúdo.",
"OPEN_ARTICLE_SEARCH": "Inserir artigo do centro de ajuda",
- "SUCCESS_ARTICLE_INSERTED": "Artigo inserido",
+ "SUCCESS_ARTICLE_INSERTED": "Artigo inserido com sucesso",
"PREVIEW_LINK": "Pré-visualizar artigo",
- "CANCEL": "FECHAR",
+ "CANCEL": "Fechar",
"BACK": "Voltar",
"BACK_RESULTS": "Voltar aos resultados"
},
"UPGRADE_PAGE": {
- "TITLE": "Centro de Suporte",
- "DESCRIPTION": "Crie portais de self-service de fácil utilização. Ajude os seus utilizadores a aceder aos artigos e obter suporte 24/7. Atualize a sua subscrição para habilitar este recurso.",
- "SELF_HOSTED_DESCRIPTION": "Crie portais de self-service de fácil utilização. Ajude os seus utilizadores a aceder aos artigos e obter suporte 24/7. Entre em contato com o administrador para ativar este recurso.",
+ "TITLE": "Centro de suporte",
+ "DESCRIPTION": "Crie portais self-service de fácil utilização. Ajude os seus utilizadores a aceder aos artigos e obter suporte 24/7. Atualize a sua subscrição para habilitar este recurso.",
+ "SELF_HOSTED_DESCRIPTION": "Crie portais self-service de fácil utilização. Ajude os seus utilizadores a aceder aos artigos e obter suporte 24/7. Entre em contacto com o administrador para ativar este recurso.",
"BUTTON": {
"LEARN_MORE": "Saiba mais",
- "UPGRADE": "Upgrade"
+ "UPGRADE": "Atualizar"
},
"FEATURES": {
"PORTALS": {
@@ -469,18 +503,456 @@
"DESCRIPTION": "Crie vários portais de ajuda centralizada para diferentes produtos usando a mesma conta."
},
"LOCALES": {
- "TITLE": "Suporte total para idiomas",
- "DESCRIPTION": "Localize o portal no seu idioma. Nós suportamos todos os idiomas e permitimos traduções para todos os artigos."
+ "TITLE": "Suporte total para linguagens",
+ "DESCRIPTION": "Localize o portal na sua linguagem. Suportamos todas as linguagens e permitimos traduções para todos os artigos."
},
"SEO": {
"TITLE": "Design SEO-friendly",
"DESCRIPTION": "Personalize as suas meta tags para melhorar a visibilidade nos motores de busca com as nossas páginas SEO-friendly."
},
"API": {
- "TITLE": "Suporte completo API",
+ "TITLE": "Suporte completo da API",
"DESCRIPTION": "Use o portal como um CMS com frameworks de front-end externos usando as nossas APIs."
}
}
+ },
+ "LOADING": "A carregar...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "{count} view | {count} views",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traduzir",
+ "DELETE": "Excluir"
+ },
+ "STATUS": {
+ "DRAFT": "Rascunho",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Arquivado"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Uncategorised"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "All articles",
+ "MINE": "Minhas",
+ "DRAFT": "Rascunho",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Arquivado"
+ },
+ "CATEGORY": {
+ "ALL": "All categories"
+ },
+ "LOCALE": {
+ "ALL": "All locales"
+ },
+ "NEW_ARTICLE": "New article"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Write an article",
+ "SUBTITLE": "Write a rich article, let’s get started!",
+ "BUTTON_LABEL": "New article"
+ },
+ "MINE": {
+ "TITLE": "You haven't written any articles here",
+ "SUBTITLE": "All articles written by you show up here for quick access."
+ },
+ "DRAFT": {
+ "TITLE": "There are no articles in drafts",
+ "SUBTITLE": "Draft articles will appear here"
+ },
+ "PUBLISHED": {
+ "TITLE": "There are no published articles",
+ "SUBTITLE": "Published articles will appear here"
+ },
+ "ARCHIVED": {
+ "TITLE": "There are no articles in the archive",
+ "SUBTITLE": "Archived articles don't show up on the portal, you can use it to mark deprecated or outdated pages"
+ },
+ "CATEGORY": {
+ "TITLE": "There are no articles in this category",
+ "SUBTITLE": "Articles in this category will appear here"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Translate article | Translate {count} articles",
+ "DESCRIPTION": "Translate the selected article to another language. | Translate the selected articles to another language.",
+ "LOCALE_LABEL": "Target language",
+ "LOCALE_PLACEHOLDER": "Select a language",
+ "CATEGORY_LABEL": "Target category",
+ "CATEGORY_PLACEHOLDER": "Select a category",
+ "OPTIONAL": "(optional)",
+ "CONFIRM": "Traduzir",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "SELECTED_COUNT": "{count} selected",
+ "CLEAR_SELECTION": "Clear selection",
+ "TRANSLATE_BUTTON": "Traduzir",
+ "CONFIRM_OVERWRITE": "Overwrite and translate",
+ "DUPLICATE_WARNING": "A translation already exists for this article in the selected language. | Translations already exist for {count} articles in the selected language.",
+ "DUPLICATE_CONFIRM_HINT": "Click translate again to overwrite the existing translation.",
+ "API": {
+ "SUCCESS_MESSAGE": "Translation in progress. The article will appear as a draft once ready.",
+ "ERROR_MESSAGE": "Failed to start translation. Please try again."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Archive",
+ "TRANSLATE": "Traduzir",
+ "MOVE_TO_CATEGORY": "Categoria",
+ "DELETE": "Excluir",
+ "STATUS_SUCCESS": "Articles updated successfully",
+ "STATUS_ERROR": "Failed to update articles",
+ "CATEGORY_SUCCESS": "Articles moved successfully",
+ "CATEGORY_ERROR": "Failed to move articles",
+ "DELETE_CONFIRM_TITLE": "Delete article | Delete {count} articles",
+ "DELETE_CONFIRM_DESCRIPTION": "This will permanently delete the selected article. This action cannot be undone. | This will permanently delete {count} selected articles. This action cannot be undone.",
+ "DELETE_CONFIRM": "Excluir",
+ "DELETE_SUCCESS": "Articles deleted successfully",
+ "DELETE_ERROR": "Failed to delete articles"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nova categoria",
+ "EDIT_CATEGORY": "Editar categoria",
+ "CATEGORIES_COUNT": "{n} category | {n} categories",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categories ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} articles) | {categoryName} ({categoryCount} article)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nenhuma categoria encontrada",
+ "SUBTITLE": "Categories will appear here. You can add a category by clicking the 'New Category' button."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria criada com sucesso",
+ "ERROR_MESSAGE": "Não é possível criar a categoria"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria atualizada com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar a categoria"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria apagada com sucesso",
+ "ERROR_MESSAGE": "Não é possível apagar a categoria"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Criar categoria",
+ "EDIT": "Editar categoria",
+ "DESCRIPTION": "Editar uma categoria atualizará a categoria no portal público.",
+ "PORTAL": "Portal",
+ "LOCALE": "Local"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Nome da categoria",
+ "ERROR": "Nome é obrigatório"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Categoria slug para URLs",
+ "ERROR": "Slug obrigatória",
+ "HELP_TEXT": "app.chatwoot.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Breve descrição da categoria.",
+ "ERROR": "Descrição é obrigatória"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "EDIT": "Atualização",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "No locales available | {n} locale | {n} locales",
+ "NEW_LOCALE_BUTTON_TEXT": "New locale",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "{count} article | {count} articles",
+ "CATEGORIES_COUNT": "{count} category | {count} categories",
+ "DEFAULT": "Padrão",
+ "DRAFT": "Rascunho",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Make default",
+ "MOVE_TO_DRAFT": "Move to draft",
+ "PUBLISH_LOCALE": "Publish locale",
+ "DELETE": "Excluir"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Adicionar nova linguagem",
+ "DESCRIPTION": "Select the language in which this article will be written. This will be added to your list of translations, and you can add more later.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Selecionar linguagem..."
+ },
+ "STATUS": {
+ "LABEL": "Situação",
+ "OPTIONS": {
+ "LIVE": "Publicado",
+ "DRAFT": "Rascunho"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Local adicionado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível adicionar o local. Por favor, tente novamente."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "A guardar...",
+ "SAVED": "Guardado"
+ },
+ "PREVIEW": "Pré-visualizar",
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Archive",
+ "BACK_TO_ARTICLES": "Back to articles"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "More properties",
+ "UNCATEGORIZED": "Sem categoria",
+ "EDITOR_PLACEHOLDER": "Write something..."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Article properties",
+ "META_DESCRIPTION": "Descrição meta",
+ "META_DESCRIPTION_PLACEHOLDER": "Add meta description",
+ "META_TITLE": "Título meta",
+ "META_TITLE_PLACEHOLDER": "Add meta title",
+ "META_TAGS": "Tags meta",
+ "META_TAGS_PLACEHOLDER": "Add meta tags"
+ },
+ "API": {
+ "ERROR": "Erro ao guardar artigo"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "New portal",
+ "PORTALS": "Portais",
+ "CREATE_PORTAL": "Create and manage multiple portals",
+ "ARTICLES": "Artigos",
+ "DOMAIN": "domínio",
+ "PORTAL_NAME": "Nome do portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Create new portal",
+ "DESCRIPTION": "Give your portal a name and create a user-friendly URL slug. You can modify both later in the settings.",
+ "CONFIRM_BUTTON_LABEL": "Criar",
+ "NAME": {
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "User Guide | Chatwoot",
+ "MESSAGE": "Choose an name for your portal.",
+ "ERROR": "Nome é obrigatório"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug obrigatória",
+ "FORMAT_ERROR": "Por favor, introduza um slug válido, por exemplo: guia-do-utilizador"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logo",
+ "IMAGE_UPLOAD_ERROR": "Não foi possível carregar a imagem! Tente novamente",
+ "IMAGE_UPLOAD_SUCCESS": "Image added successfully. Please click on save changes to save the logo",
+ "IMAGE_DELETE_SUCCESS": "Logo apagado com sucesso",
+ "IMAGE_DELETE_ERROR": "Unable to delete logo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "O tamanho da imagem deve ser inferior a {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Nome do portal",
+ "ERROR": "Nome é obrigatório"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Header text",
+ "PLACEHOLDER": "Texto do cabeçalho do portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Page title",
+ "PLACEHOLDER": "Título da página do portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Home page link",
+ "PLACEHOLDER": "Link da página inicial do portal",
+ "ERROR": "Enter a valid URL. The Home page link must start with 'http://' or 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Portal slug"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Live chat widget",
+ "PLACEHOLDER": "Select live chat widget",
+ "HELP_TEXT": "Select a live chat widget that will appear on your help center",
+ "NONE_OPTION": "No widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Brand color"
+ },
+ "SAVE_CHANGES": "Save changes"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domínio personalizado",
+ "LABEL": "Domínio personalizado:",
+ "DESCRIPTION": "You can host your portal on a custom domain. For instance, if your website is yourdomain.com and you want your portal available at docs.yourdomain.com, simply enter that in this field.",
+ "STATUS_DESCRIPTION": "Your custom portal will start working as soon as it is verified.",
+ "PLACEHOLDER": "Domínio personalizado do portal",
+ "EDIT_BUTTON": "Editar",
+ "ADD_BUTTON": "Add custom domain",
+ "STATUS": {
+ "LIVE": "Disponível",
+ "PENDING": "Awaiting verification",
+ "ERROR": "Verification failed"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Add custom domain",
+ "EDIT_HEADER": "Edit custom domain",
+ "ADD_CONFIRM_BUTTON_LABEL": "Add domain",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Update domain",
+ "LABEL": "Domínio personalizado",
+ "PLACEHOLDER": "Domínio personalizado do portal",
+ "ERROR": "Custom domain is required",
+ "FORMAT_ERROR": "Please enter a valid domain URL e.g. docs.yourdomain.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "DNS configuration",
+ "DESCRIPTION": "Log in to the account you have with your DNS provider, and add a CNAME record for subdomain pointing to chatwoot.help",
+ "COPY": "Successfully copied CNAME",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Send instructions",
+ "DESCRIPTION": "If you would prefer to have someone from your development team to handle this step, you can enter email address below, and we will send them the required instructions.",
+ "PLACEHOLDER": "Enter their email",
+ "ERROR": "Enter a valid email address",
+ "SEND_BUTTON": "Enviar"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Delete {portalName}",
+ "HEADER": "Apagar portal",
+ "DESCRIPTION": "Permanently delete this portal. This action is irreversible",
+ "DIALOG": {
+ "HEADER": "Sure you want to delete {portalName}?",
+ "DESCRIPTION": "This is a permanent action that cannot be reversed.",
+ "CONFIRM_BUTTON_LABEL": "Excluir"
+ }
+ },
+ "EDIT_CONFIGURATION": "Edit configuration"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Aparência",
+ "DESCRIPTION": "Pick the layout that fits how your visitors read.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Classic",
+ "DESCRIPTION": "A welcoming home page with search and featured topics."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentation",
+ "DESCRIPTION": "Side-by-side navigation that keeps every guide a click away."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Social links",
+ "DESCRIPTION": "Add the handle for each network and your help center builds the full link. Shown in the documentation layout footer.",
+ "PLACEHOLDER": "handle",
+ "ADD": "Add social link",
+ "REMOVE": "Excluir"
+ },
+ "SAVE": "Save changes"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal criado com sucesso",
+ "ERROR_MESSAGE": "Unable to create portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal atualizado com sucesso",
+ "ERROR_MESSAGE": "Unable to update portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Upload PDF Document",
+ "DESCRIPTION": "Upload a PDF document to automatically generate FAQs using AI",
+ "DRAG_DROP_TEXT": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "ADDITIONAL_CONTEXT_LABEL": "Additional Context (Optional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Provide any additional context or instructions for FAQ generation...",
+ "UPLOADING": "A carregar...",
+ "UPLOAD": "Upload & Process",
+ "CANCEL": "Cancelar",
+ "ERROR_INVALID_TYPE": "Please select a valid PDF file",
+ "ERROR_FILE_TOO_LARGE": "File size must be less than 512MB",
+ "ERROR_UPLOAD_FAILED": "Failed to upload PDF. Please try again."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "PDF Documents",
+ "DESCRIPTION": "Manage uploaded PDF documents and generate FAQs from them",
+ "UPLOAD_PDF": "Upload PDF",
+ "UPLOAD_FIRST_PDF": "Upload your first PDF",
+ "UPLOADED_BY": "Uploaded by",
+ "GENERATE_FAQS": "Generate FAQs",
+ "GENERATING": "A gerar...",
+ "CONFIRM_DELETE": "Tem a certeza que pretende apagar o {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "No PDF documents yet",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQs using AI"
+ },
+ "STATUS": {
+ "UPLOADED": "Ready",
+ "PROCESSING": "Processing",
+ "PROCESSED": "Concluída",
+ "FAILED": "Failed"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Content Generation",
+ "DESCRIPTION": "Upload PDF documents to automatically generate FAQ content using AI",
+ "UPLOAD_TITLE": "Upload PDF Document",
+ "DRAG_DROP": "Drag and drop your PDF file here, or click to select",
+ "SELECT_FILE": "Select PDF File",
+ "UPLOADING": "Processing document...",
+ "UPLOAD_SUCCESS": "Document processed successfully!",
+ "UPLOAD_ERROR": "Failed to upload document. Please try again.",
+ "INVALID_FILE_TYPE": "Please select a valid PDF file",
+ "FILE_TOO_LARGE": "File size must be less than 512MB",
+ "GENERATED_CONTENT": "Generated FAQ Content",
+ "PUBLISH_SELECTED": "Publish Selected",
+ "PUBLISHING": "Publishing...",
+ "FROM_DOCUMENT": "From document",
+ "NO_CONTENT": "No generated content available. Upload a PDF document to get started.",
+ "LOADING": "Loading generated content..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/inbox.json b/app/javascript/dashboard/i18n/locale/pt/inbox.json
index dbd3d7b5c..1c9a5909c 100644
--- a/app/javascript/dashboard/i18n/locale/pt/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/pt/inbox.json
@@ -1,36 +1,53 @@
{
"INBOX": {
"LIST": {
- "TITLE": "Caixa de Entrada",
+ "TITLE": "My Inbox",
"DISPLAY_DROPDOWN": "Mostrar",
"LOADING": "A obter notificações",
- "EOF": "Notificações obtidas 🎉",
"404": "Não há notificações ativas neste grupo.",
- "NO_NOTIFICATIONS": "Sem Notificações",
+ "NO_NOTIFICATIONS": "Sem notificações",
"NOTE": "Notificações de todas as caixas subscritas",
+ "NO_MESSAGES_AVAILABLE": "Oops! Não foi possível importar mensagens",
"SNOOZED_UNTIL": "Suspender até",
"SNOOZED_UNTIL_TOMORROW": "Adiado até amanhã",
"SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana"
},
"ACTION_HEADER": {
"SNOOZE": "Suspender notificação",
- "DELETE": "Apagar notificação"
+ "DELETE": "Apagar notificação",
+ "BACK": "Voltar"
},
"TYPES": {
"CONVERSATION_MENTION": "Foi mencionado numa conversa",
"CONVERSATION_CREATION": "Nova conversa criada",
"CONVERSATION_ASSIGNMENT": "Foi-lhe atribuída uma conversa",
- "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nova mensagem nesta conversa atribuída",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova mensagem em uma conversa em que você está participando"
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nova mensagem numa conversa que lhe está atribuída",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova mensagem numa conversa em que participa",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA da primeira resposta não atingido na conversa",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA da próxima resposta não atingido na conversa",
+ "SLA_MISSED_RESOLUTION": "SLA de resolução não atingido na conversa"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mentioned",
+ "CONVERSATION_ASSIGNMENT": "Assigned to you",
+ "CONVERSATION_CREATION": "New Conversation",
+ "SLA_MISSED_FIRST_RESPONSE": "SLA breach",
+ "SLA_MISSED_NEXT_RESPONSE": "SLA breach",
+ "SLA_MISSED_RESOLUTION": "SLA breach",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova mensagem",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nova mensagem",
+ "SNOOZED_UNTIL": "Snoozed for {time}",
+ "SNOOZED_ENDS": "Snooze ended"
+ },
+ "NO_CONTENT": "Sem conteúdo disponível",
"MENU_ITEM": {
- "MARK_AS_READ": "Marcar como lido",
+ "MARK_AS_READ": "Marcar como lida",
"MARK_AS_UNREAD": "Marcar como não lida",
"SNOOZE": "Adiar",
- "DELETE": "excluir",
- "MARK_ALL_READ": "Marcar todos como lidos",
+ "DELETE": "Excluir",
+ "MARK_ALL_READ": "Marcar todas como lidas",
"DELETE_ALL": "Excluir tudo",
- "DELETE_ALL_READ": "Excluir todas lidas"
+ "DELETE_ALL_READ": "Excluir todas as lidas"
},
"DISPLAY_MENU": {
"SORT": "Ordenar",
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "Todas as notificações marcadas como lidas",
"DELETE_ALL": "Todas as notificações foram excluídas",
"DELETE_ALL_READ": "Todas as notificações lidas foram excluídas"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reauthorization Required",
+ "DESCRIPTION": "Your WhatsApp connection has expired. Please reconnect to continue receiving and sending messages.",
+ "BUTTON_TEXT": "Reconnect WhatsApp",
+ "LOADING_FACEBOOK": "Loading Facebook SDK...",
+ "SUCCESS": "WhatsApp reconnected successfully",
+ "ERROR": "Failed to reconnect WhatsApp. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "CONFIGURATION_ERROR": "Configuration error occurred during reauthorization.",
+ "FACEBOOK_LOAD_ERROR": "Failed to load Facebook SDK. Please try again.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Troubleshooting",
+ "POPUP_BLOCKED": "Ensure pop-ups are allowed for this site",
+ "COOKIES": "Third-party cookies must be enabled",
+ "ADMIN_ACCESS": "You need admin access to the WhatsApp Business Account"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
index 71511eb7d..a76b2acfa 100644
--- a/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/inboxMgmt.json
@@ -1,91 +1,120 @@
{
"INBOX_MGMT": {
"HEADER": "Caixas de Entrada",
- "SIDEBAR_TXT": "Caixa de entrada
Ao ligar um site ou uma página do Facebook ao Chatwoot, ela passa a ser chamada de caixa de entrada. Pode ter caixas de entrada ilimitadas na sua conta de Chatwoot.
Clique em Adicionar caixa de entrada para ligar um site ou uma página do Facebook.
No Painel, pode ver todas as conversas de todas as suas caixas de entrada num único lugar e responder a elas utilizando o separado `Conversas`.
Também pode ver conversas específicas de uma determinada caixa de entrada clicando no nome dessa caixa no lado esquerdo do painel lateral.
",
+ "DESCRIPTION": "A channel is the mode of communication your customer chooses to interact with you. An inbox is where you manage interactions for a specific channel. It can include communications from various sources such as email, live chat, and social media.",
+ "LEARN_MORE": "Learn more about inboxes",
+ "COUNT": "{n} inbox | {n} inboxes",
+ "SEARCH_PLACEHOLDER": "Search inboxes...",
+ "NO_RESULTS": "No inboxes found matching your search",
+ "RECONNECTION_REQUIRED": "A sua caixa de entrada está desconectada. Não serão recebidas novas mensagens até nova autorização.",
+ "CLICK_TO_RECONNECT": "Clique aqui para reconectar.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Your WhatsApp Business registration isn’t complete. Please check your display name status in Meta Business Manager before reconnecting.",
+ "COMPLETE_REGISTRATION": "Complete Registration",
"LIST": {
"404": "Não há caixas de entrada anexadas a esta conta."
},
- "CREATE_FLOW": [
- {
- "title": "Escolher canal",
- "route": "settings_inbox_new",
- "body": "Escolha o provedor que você deseja integrar com o Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Escolher canal",
+ "BODY": "Escolha o provedor que pretende integrar com o Chatwoot."
},
- {
- "title": "Criar Caixa de Entrada",
- "route": "settings_inboxes_page_channel",
- "body": "Autenticar sua conta e criar uma caixa de entrada."
+ "INBOX": {
+ "TITLE": "Criar caixa de entrada",
+ "BODY": "Autenticar a sua conta e criar uma caixa de entrada."
},
- {
- "title": "Adicionar Agentes",
- "route": "settings_inboxes_add_agents",
- "body": "Adicionar agentes à caixa de entrada criada."
+ "AGENT": {
+ "TITLE": "Adicionar agentes",
+ "BODY": "Adicionar agentes à caixa de entrada criada."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Está tudo pronto para começar!"
+ "FINISH": {
+ "TITLE": "Pronto!",
+ "BODY": "Está tudo preparado para começar!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
- "LABEL": "Nome da Caixa de Entrada",
- "PLACEHOLDER": "Digite o nome da caixa de entrada (ex: Informatico. pt)",
+ "LABEL": "Nome da caixa de entrada",
+ "PLACEHOLDER": "Insira o nome da caixa de entrada (ex. Informatico.pt)",
"ERROR": "Por favor, insira um nome de caixa de entrada válido"
},
"WEBSITE_NAME": {
"LABEL": "Nome do site",
- "PLACEHOLDER": "Digite o nome do seu site (por exemplo: Acme Inc)"
+ "PLACEHOLDER": "Insira o nome do seu site (ex. Acme Inc)"
},
"FB": {
- "HELP": "PS: ao fazer login, só teremos acesso às mensagens da sua página. Suas mensagens privadas nunca poderão ser acessadas pelo Chatwoot.",
+ "HELP": "PS. ao fazer login, só teremos acesso às mensagens da sua página. As suas mensagens privadas nunca poderão ser acedidas pelo Chatwoot.",
"CHOOSE_PAGE": "Escolher página",
- "CHOOSE_PLACEHOLDER": "Escolher uma página da lista",
- "INBOX_NAME": "Nome Caixa de Entrada",
- "ADD_NAME": "Escolha um nome para a sua caixa de entrada",
- "PICK_NAME": "Escolha um nome a sua caixa de entrada",
- "PICK_A_VALUE": "Escolha um valor"
+ "CHOOSE_PLACEHOLDER": "Selecionar uma página da lista",
+ "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",
+ "CREATE_INBOX": "Criar caixa de entrada"
+ },
+ "INSTAGRAM": {
+ "CONTINUE_WITH_INSTAGRAM": "Continuar com o Instagram",
+ "CONNECT_YOUR_INSTAGRAM_PROFILE": "Ligue o seu perfil do Instagram",
+ "HELP": "Para adicionar o seu perfil do Instagram como canal, precisa autenticar o seu perfil clicando em 'Continuar com o Instagram' ",
+ "ERROR_MESSAGE": "Ocorreu um erro ao ligar ao Instagram, por favor tente novamente",
+ "ERROR_AUTH": "Ocorreu um erro ao ligar ao Instagram, por favor tente novamente",
+ "NEW_INBOX_SUGGESTION": "Esta conta do Instagram estava anteriormente ligada a uma caixa de entrada diferente e foi agora migrada para aqui. Todas as novas mensagens aparecerão aqui. A caixa de entrada antiga já não poderá enviar ou receber mensagens para esta conta.",
+ "DUPLICATE_INBOX_BANNER": "Esta conta do Instagram foi migrada para a nova caixa de entrada do canal Instagram. Já não poderá enviar/receber mensagens do Instagram a partir desta caixa de entrada."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continue with TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Connect your TikTok Profile",
+ "HELP": "To add your TikTok profile as a channel, you need to authenticate your TikTok Profile by clicking on 'Continue with TikTok' ",
+ "ERROR_MESSAGE": "There was an error connecting to TikTok, please try again",
+ "ERROR_AUTH": "There was an error connecting to TikTok, please try again"
},
"TWITTER": {
- "HELP": "Para adicionar seu perfil do Twitter como um canal, você precisa autenticar seu perfil do Twitter clicando em 'Entrar com o Twitter' ",
- "ERROR_MESSAGE": "Houve um de ligação com o Twitter, por favor, tente novamente",
+ "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' ",
+ "ERROR_MESSAGE": "Houve um erro de ligação com o Twitter, por favor, tente novamente",
"TWEETS": {
- "ENABLE": "Criar conversas a partir dos Tweets mencionados"
+ "ENABLE": "Criar conversas a partir dos tweets mencionados"
}
},
"WEBSITE_CHANNEL": {
"TITLE": "Canal do site",
- "DESC": "Crie um canal para seu site e comece a oferecer suporte a seus clientes através do nosso widget do site.",
- "LOADING_MESSAGE": "Criando canal de suporte ao site",
+ "DESC": "Crie um canal para o seu site e comece a oferecer suporte aos seus clientes através do nosso widget do site.",
+ "LOADING_MESSAGE": "A criar canal de suporte ao site",
"CHANNEL_AVATAR": {
"LABEL": "Avatar do canal"
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL do Webhook",
- "PLACEHOLDER": "Introduza o seu URL Webhook",
- "ERROR": "Por favor, insira uma URL válida"
+ "PLACEHOLDER": "Introduza o seu URL do Webhook",
+ "ERROR": "Por favor, insira um URL válido"
+ },
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Webhook Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "RESET_SUCCESS": "Webhook secret regenerated successfully",
+ "RESET_ERROR": "Unable to regenerate webhook secret. Please try again"
},
"CHANNEL_DOMAIN": {
"LABEL": "Domínio do site",
- "PLACEHOLDER": "Digite o domínio do seu site (por exemplo: acme.com)"
+ "PLACEHOLDER": "Insira o domínio do seu site (ex. acme.com)"
},
"CHANNEL_WELCOME_TITLE": {
- "LABEL": "Título de Boas-Vindas",
- "PLACEHOLDER": "Olá !"
+ "LABEL": "Título de boas-vindas",
+ "PLACEHOLDER": "Olá!"
},
"CHANNEL_WELCOME_TAGLINE": {
- "LABEL": "Bem-vindo Slogan",
- "PLACEHOLDER": "Nós simplificamos nos conectar com a gente. Pergunte a nós qualquer coisa ou compartilhe seus comentários."
+ "LABEL": "Slogan de boas-vindas",
+ "PLACEHOLDER": "Nós simplificamos a sua conexão com os clientes. Pergunte-nos qualquer coisa ou partilhe um comentário."
},
"CHANNEL_GREETING_MESSAGE": {
- "LABEL": "Mensagem de Boas-vindas do canal",
+ "LABEL": "Mensagem de boas-vindas do canal",
"PLACEHOLDER": "Acme Inc normalmente responde em algumas horas."
},
"CHANNEL_GREETING_TOGGLE": {
- "LABEL": "Ativar mensagem de Boas-vindas do canal",
+ "LABEL": "Ativar mensagem de boas-vindas do canal",
"HELP_TEXT": "Enviar automaticamente uma mensagem de saudação quando uma nova conversa for criada.",
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Inativo"
},
"REPLY_TIME": {
"TITLE": "Definir tempo de resposta",
@@ -96,64 +125,64 @@
},
"WIDGET_COLOR": {
"LABEL": "Cor do widget",
- "PLACEHOLDER": "Atualizar a cor do widget usada no widget"
+ "PLACEHOLDER": "Atualizar a cor do widget "
},
"SUBMIT_BUTTON": "Criar caixa de entrada",
"API": {
- "ERROR_MESSAGE": "Não conseguimos criar um canal de website. Por favor, tente novamente."
+ "ERROR_MESSAGE": "Não foi possível criar um canal de website. Por favor, tente novamente."
}
},
"TWILIO": {
"TITLE": "Canal SMS/WhatsApp da Twilio",
- "DESC": "Integre o Twilio e comece a oferecer suporte a seus clientes por SMS ou WhatsApp.",
+ "DESC": "Integre o Twilio e comece a oferecer suporte aos seus clientes por SMS ou WhatsApp.",
"ACCOUNT_SID": {
- "LABEL": "SID da Conta",
- "PLACEHOLDER": "Por favor, insira sua Conta Twilio SID",
+ "LABEL": "SID da conta",
+ "PLACEHOLDER": "Por favor, insira a sua conta Twilio SID",
"ERROR": "Este campo é obrigatório"
},
"API_KEY": {
- "USE_API_KEY": "Use a Autenticação de Chave de API",
- "LABEL": "Chave de API SID",
- "PLACEHOLDER": "Por favor, insira a sua chave de API SID",
+ "USE_API_KEY": "Use a autenticação de chave de API",
+ "LABEL": "Chave da API SID",
+ "PLACEHOLDER": "Por favor, insira a sua chave da API SID",
"ERROR": "Este campo é obrigatório"
},
"API_KEY_SECRET": {
- "LABEL": "Chave secreta de API",
- "PLACEHOLDER": "Por favor, insira a sua chave secreta de API",
+ "LABEL": "Chave secreta da API",
+ "PLACEHOLDER": "Por favor, insira a sua chave secreta da API",
"ERROR": "Este campo é obrigatório"
},
"MESSAGING_SERVICE_SID": {
- "LABEL": "SID do Serviço de Mensagens",
- "PLACEHOLDER": "Por favor, insira o seu SID do Serviço de Mensagens da Twilio",
+ "LABEL": "Serviço de mensagens SID",
+ "PLACEHOLDER": "Por favor, insira o SID do seu serviço de mensagens da Twilio",
"ERROR": "Este campo é obrigatório",
- "USE_MESSAGING_SERVICE": "Use um Serviço de Mensagens da Twilio"
+ "USE_MESSAGING_SERVICE": "Use um serviço de mensagens da Twilio"
},
"CHANNEL_TYPE": {
"LABEL": "Tipo de canal",
- "ERROR": "Por favor, selecione seu tipo de canal"
+ "ERROR": "Por favor, selecione o tipo de canal"
},
"AUTH_TOKEN": {
"LABEL": "Token de autenticação",
- "PLACEHOLDER": "Por favor, digite seu Token de Autenticação Twilio",
+ "PLACEHOLDER": "Por favor, insira o seu token de autenticação Twilio",
"ERROR": "Este campo é obrigatório"
},
"CHANNEL_NAME": {
- "LABEL": "Nome Caixa de Entrada",
+ "LABEL": "Nome da caixa de entrada",
"PLACEHOLDER": "Por favor, insira um nome para a caixa de entrada",
"ERROR": "Este campo é obrigatório"
},
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
- "PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
- "ERROR": "Por favor, forneça um número de telefone válido que começa com o sinal de `+` e que não contenha quaisquer espaços."
+ "PLACEHOLDER": "Por favor, insira o número de telefone a partir do qual a mensagem será enviada.",
+ "ERROR": "Por favor, forneça um número de telefone válido, que comece com o sinal de '+' e que não contenha quaisquer espaços."
},
"API_CALLBACK": {
"TITLE": "Link de retorno de ligação",
- "SUBTITLE": "Tem de configurar aqui, o link de retorno de mensagem no Twilio, através de um URL."
+ "SUBTITLE": "Tem de configurar, aqui, o link de retorno de mensagem no Twilio, através de um URL."
},
"SUBMIT_BUTTON": "Criar canal Twilio",
"API": {
- "ERROR_MESSAGE": "Não fomos capazes de autenticar as credenciais Twilio, por favor, tente novamente"
+ "ERROR_MESSAGE": "Não foi possível autenticar as credenciais Twilio, por favor, tente novamente"
}
},
"SMS": {
@@ -165,67 +194,74 @@
"BANDWIDTH": "Bandwidth"
},
"API": {
- "ERROR_MESSAGE": "Não conseguimos salvar o canal de SMS"
+ "ERROR_MESSAGE": "Não foi possível guardar o canal de SMS"
},
"BANDWIDTH": {
"ACCOUNT_ID": {
- "LABEL": "Conta ID",
- "PLACEHOLDER": "Por favor insira a ID da sua conta Bandwidth",
+ "LABEL": "ID da conta",
+ "PLACEHOLDER": "Por favor, insira o ID da sua conta Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"API_KEY": {
"LABEL": "Chave da API",
- "PLACEHOLDER": "Por favor insira a palavra passe da API Bandwidth",
+ "PLACEHOLDER": "Por favor, insira a chave da API da sua Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"API_SECRET": {
"LABEL": "API Secret",
- "PLACEHOLDER": "Por favor insira a palavra passe da API Bandwidth",
+ "PLACEHOLDER": "Por favor, insira a API Secret da sua Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"APPLICATION_ID": {
- "LABEL": "Aplicação ID",
- "PLACEHOLDER": "Por favor insira a ID da Aplicação Bandwidth",
+ "LABEL": "ID da aplicação",
+ "PLACEHOLDER": "Por favor, insira o ID da aplicação da sua Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"INBOX_NAME": {
- "LABEL": "Nome Caixa de Entrada",
+ "LABEL": "Nome da caixa de entrada",
"PLACEHOLDER": "Por favor, insira um nome para a caixa de entrada",
"ERROR": "Este campo é obrigatório"
},
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
- "PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
- "ERROR": "Por favor, forneça um número de telefone válido que começa com o sinal de `+` e que não contenha quaisquer espaços."
+ "PLACEHOLDER": "Por favor, insira o número de telefone a partir do qual a mensagem será enviada.",
+ "ERROR": "Por favor, forneça um número de telefone válido que comece com o sinal de '+' e que não contenha quaisquer espaços."
},
"SUBMIT_BUTTON": "Criar canal Bandwidth",
"API": {
- "ERROR_MESSAGE": "Não foi possível autenticar as credênciais Bandwidth, por favor tente novamente"
+ "ERROR_MESSAGE": "Não foi possível autenticar as credenciais Bandwidth, por favor, tente novamente"
},
"API_CALLBACK": {
- "TITLE": "Link de retorno de ligação",
+ "TITLE": "URL de retorno da chamada",
"SUBTITLE": "Tem de configurar o URL de retorno de mensagem na Bandwidth, com o URL mencionado aqui."
}
}
},
"WHATSAPP": {
- "TITLE": "Canal do WhatsApp",
+ "TITLE": "Canal de WhatsApp",
"DESC": "Comece a apoiar os seus clientes via WhatsApp.",
"PROVIDERS": {
"LABEL": "API Provider",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "WhatsApp Cloud",
- "360_DIALOG": "360Dialog"
+ "WHATSAPP_CLOUD_DESC": "Quick setup through Meta",
+ "TWILIO_DESC": "Connect via Twilio credentials",
+ "360_DIALOG": "360dialog"
+ },
+ "SELECT_PROVIDER": {
+ "TITLE": "Select your API provider",
+ "DESCRIPTION": "Choose your WhatsApp provider. You can connect directly through Meta which requires no setup, or connect through Twilio using your account credentials."
},
"INBOX_NAME": {
- "LABEL": "Nome Caixa de Entrada",
+ "LABEL": "Nome da caixa de entrada",
"PLACEHOLDER": "Por favor, insira um nome para a caixa de entrada",
"ERROR": "Este campo é obrigatório"
},
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
- "PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
- "ERROR": "Por favor, forneça um número de telefone válido que começa com o sinal de `+` e que não contenha quaisquer espaços."
+ "PLACEHOLDER": "Por favor, insira o número de telefone a partir do qual a mensagem será enviada.",
+ "ERROR": "Por favor, forneça um número de telefone válido que comece com o sinal de '+' e que não contenha quaisquer espaços."
},
"PHONE_NUMBER_ID": {
"LABEL": "ID do número de telefone",
@@ -233,13 +269,13 @@
"ERROR": "Por favor, insira um valor válido."
},
"BUSINESS_ACCOUNT_ID": {
- "LABEL": "ID da Conta de Empresa",
- "PLACEHOLDER": "Por favor, insira o ID da Conta Business obtido do painel do desenvolvedor do Facebook.",
+ "LABEL": "ID da conta Business",
+ "PLACEHOLDER": "Por favor, insira o ID da conta Business obtido do painel do desenvolvedor do Facebook.",
"ERROR": "Por favor, insira um valor válido."
},
"WEBHOOK_VERIFY_TOKEN": {
- "LABEL": "Webhook de Verificação de Token",
- "PLACEHOLDER": "Digite um token de verificação que deseja configurar para webhooks do Facebook.",
+ "LABEL": "Webhook de verificação de token",
+ "PLACEHOLDER": "Insira um token de verificação que pretende configurar para os webhooks do Facebook.",
"ERROR": "Por favor, insira um valor válido."
},
"API_KEY": {
@@ -249,28 +285,99 @@
"ERROR": "Por favor, insira um valor válido."
},
"API_CALLBACK": {
- "TITLE": "Link de retorno de ligação",
- "SUBTITLE": "Deve configurar a URL do webhook e o token de verificação no portal do desenvolvedor do Facebook com os valores mostrados abaixo.",
- "WEBHOOK_URL": "URL do Webhook",
- "WEBHOOK_VERIFICATION_TOKEN": "Webhook de Verificação do Token"
+ "TITLE": "URL de retorno da chamada",
+ "SUBTITLE": "Deve configurar a URL do webhook e o token de verificação no portal do desenvolvedor do Facebook com os valores apresentados abaixo.",
+ "WEBHOOK_URL": "URL do webhook",
+ "WEBHOOK_VERIFICATION_TOKEN": "Webhook de verificação do token"
},
"SUBMIT_BUTTON": "Criar Canal do WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Quick setup with Meta",
+ "DESC": "Use the WhatsApp Embedded Signup flow to quickly connect new numbers. You will be redirected to Meta to log into your WhatsApp Business account. Having admin access will help make the setup smooth and easy.",
+ "BENEFITS": {
+ "TITLE": "Benefits of Embedded Signup:",
+ "EASY_SETUP": "No manual configuration required",
+ "SECURE_AUTH": "Secure OAuth based authentication",
+ "AUTO_CONFIG": "Automatic webhook and phone number configuration"
+ },
+ "LEARN_MORE": {
+ "TEXT": "To learn more about integrated signup, pricing, and limitations, visit {link}.",
+ "LINK_TEXT": "this link"
+ },
+ "SUBMIT_BUTTON": "Connect with WhatsApp Business",
+ "AUTH_PROCESSING": "Authenticating with Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Please complete business setup in the Meta window...",
+ "PROCESSING": "Setting up your WhatsApp Business Account",
+ "ENABLING_CALLING": "Enabling WhatsApp Calling on your number…",
+ "LOADING_SDK": "Loading Facebook SDK...",
+ "CANCELLED": "WhatsApp Signup was cancelled",
+ "SUCCESS_TITLE": "WhatsApp Business Account Connected!",
+ "WAITING_FOR_AUTH": "Waiting for authentication...",
+ "INVALID_BUSINESS_DATA": "Invalid business data received from Facebook. Please try again.",
+ "SIGNUP_ERROR": "Signup error occurred",
+ "AUTH_NOT_COMPLETED": "Authentication not completed. Please restart the process.",
+ "SUCCESS_FALLBACK": "WhatsApp Business Account has been successfully configured",
+ "MANUAL_FALLBACK": "If your number is already connected to the WhatsApp Business Platform (API), or if you’re a tech provider onboarding your own number, please use the {link} flow",
+ "MANUAL_LINK_TEXT": "manual setup flow",
+ "CALLING_ENABLE_FAILED": "Your WhatsApp inbox is ready, but voice calling couldn't be turned on — this number isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then turn calling on from the inbox's Calls settings."
+ },
"API": {
"ERROR_MESSAGE": "Não foi possível gravar o canal do WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Canal de Voz",
+ "DESC": "Integre o Twilio e comece a oferecer suporte aos seus clientes via chamadas telefónicas.",
+ "PHONE_NUMBER": {
+ "LABEL": "Número de telefone",
+ "PLACEHOLDER": "Escreva o seu número de telefone (por exemplo, +1234567890)",
+ "ERROR": "Por favor, forneça um número de telefone válido no formato +E.164 (por exemplo, +1234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID da conta",
+ "PLACEHOLDER": "Insira o SID da sua Conta Twilio",
+ "REQUIRED": "O SID da conta é obrigatório"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token de autenticação",
+ "PLACEHOLDER": "Escreva o seu Token de Autenticação Twilio",
+ "REQUIRED": "O Token de Autenticação é obrigatório"
+ },
+ "API_KEY_SID": {
+ "LABEL": "Chave da API SID",
+ "PLACEHOLDER": "Insira a chave SID da API Twilio",
+ "REQUIRED": "A chave SID da API é obrigatória"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "Chave secreta da API",
+ "PLACEHOLDER": "Insira a chave secreta da API Twilio",
+ "REQUIRED": "A chave secreta da API é obrigatória"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "Twilio Voice URL",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure this URL as the Voice URL on your Twilio phone number and TwiML App.",
+ "TWILIO_STATUS_URL_TITLE": "Twilio Status Callback URL",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure this URL as the Status Callback URL on your Twilio phone number."
+ },
+ "SUBMIT_BUTTON": "Criar canal de Voz",
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível criar o canal de voz"
+ }
+ },
"API_CHANNEL": {
- "TITLE": "Canal de API",
+ "TITLE": "Canal da API",
"DESC": "Integrar com o canal API para dar apoio aos seus clientes.",
"CHANNEL_NAME": {
- "LABEL": "Nome do Canal",
- "PLACEHOLDER": "Por favor, insira um nome de canal",
+ "LABEL": "Nome do canal",
+ "PLACEHOLDER": "Por favor, insira um nome para o canal",
"ERROR": "Este campo é obrigatório"
},
"WEBHOOK_URL": {
"LABEL": "URL do Webhook",
- "SUBTITLE": "Configurar a URL onde quer receber mensagens de retorno.",
- "PLACEHOLDER": "URL do Webhook"
+ "SUBTITLE": "Configurar o URL onde pretende receber mensagens de retorno.",
+ "PLACEHOLDER": "URL do webhook"
},
"SUBMIT_BUTTON": "Criar canal API",
"API": {
@@ -279,117 +386,184 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Canal de e-mail",
- "DESC": "Integrar a caixa de entrada.",
+ "DESC": "Integre a sua caixa de entrada de e-mail.",
"CHANNEL_NAME": {
- "LABEL": "Nome do Canal",
- "PLACEHOLDER": "Por favor, insira um nome de canal",
+ "LABEL": "Nome do canal",
+ "PLACEHOLDER": "Por favor, insira um nome para o canal",
"ERROR": "Este campo é obrigatório"
},
"EMAIL": {
- "LABEL": "e-mail",
- "SUBTITLE": "Email para onde os seus clientes lhe enviam os tickets de suporte",
- "PLACEHOLDER": "e-mail"
+ "LABEL": "E-mail",
+ "SUBTITLE": "E-mail para o qual os seus clientes enviam os tickets de suporte",
+ "PLACEHOLDER": "E-mail"
},
- "SUBMIT_BUTTON": "Criar canal de email",
+ "SUBMIT_BUTTON": "Criar canal de e-mail",
"API": {
- "ERROR_MESSAGE": "Não foi possível guardar o canal de email"
+ "ERROR_MESSAGE": "Não foi possível guardar o canal de e-mail"
},
- "FINISH_MESSAGE": "Comece a encaminhar as suas mensagens de email para o seguinte endereço."
+ "FINISH_MESSAGE": "Comece a encaminhar as suas mensagens de e-mail para o seguinte endereço.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Your email inbox has been created successfully! You need to configure SMTP and IMAP credentials to send and receive emails. Without these settings, no emails will be processed.",
+ "FORWARDING_ADDRESS_LABEL": "Forward emails to this address:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Clique aqui",
+ "CONFIGURE_SMTP_IMAP_TEXT": " to configure IMAP and SMTP settings"
},
"LINE_CHANNEL": {
"TITLE": "Canal LINE",
- "DESC": "Integre com o canal LINE e comece a apoiar seus clientes.",
+ "DESC": "Integre com o canal LINE e comece a apoiar os seus clientes.",
"CHANNEL_NAME": {
- "LABEL": "Nome do Canal",
- "PLACEHOLDER": "Por favor, insira um nome de canal",
+ "LABEL": "Nome do canal",
+ "PLACEHOLDER": "Por favor, insira um nome para o canal",
"ERROR": "Este campo é obrigatório"
},
"LINE_CHANNEL_ID": {
- "LABEL": "LINE Canal ID",
- "PLACEHOLDER": "LINE Canal ID"
+ "LABEL": "ID do canal LINE",
+ "PLACEHOLDER": "ID do canal LINE"
},
"LINE_CHANNEL_SECRET": {
- "LABEL": "LINE Canal Secret",
- "PLACEHOLDER": "LINE Canal Secret"
+ "LABEL": "Secret do canal LINE",
+ "PLACEHOLDER": "Secret do canal LINE"
},
"LINE_CHANNEL_TOKEN": {
- "LABEL": "LINE Canal Token",
- "PLACEHOLDER": "LINE Canal Token"
+ "LABEL": "Token do canal LINE",
+ "PLACEHOLDER": "Token do canal LINE"
},
- "SUBMIT_BUTTON": "Criar Canal LINE",
+ "SUBMIT_BUTTON": "Criar canal LINE",
"API": {
- "ERROR_MESSAGE": "Não fomos capazes de guardar o canal LINE"
+ "ERROR_MESSAGE": "Não foi possível guardar o canal LINE"
},
"API_CALLBACK": {
- "TITLE": "Link de retorno de ligação",
- "SUBTITLE": "Você tem que configurar a URL do webhook no aplicativo LINE com o URL mencionado aqui."
+ "TITLE": "URL de retorno da chamada",
+ "SUBTITLE": "Tem que configurar o URL do webhook na aplicação LINE com o URL mencionado aqui."
}
},
"TELEGRAM_CHANNEL": {
- "TITLE": "Canal do Telegram",
- "DESC": "Integre com o canal do Telegram e comece a apoiar seus clientes.",
+ "TITLE": "Canal Telegram",
+ "DESC": "Integre com o canal Telegram e comece a apoiar os seus clientes.",
"BOT_TOKEN": {
- "LABEL": "Bot Token",
- "SUBTITLE": "Configure o token bot que obteve do Telegram BotFather.",
- "PLACEHOLDER": "Bot Token"
+ "LABEL": "Token do bot",
+ "SUBTITLE": "Configure o token do bot que obteve do Telegram BotFather.",
+ "PLACEHOLDER": "Token do bot"
},
- "SUBMIT_BUTTON": "Criar Canal do Telegram",
+ "SUBMIT_BUTTON": "Criar canal Telegram",
"API": {
- "ERROR_MESSAGE": "Não foi possível salvar o canal do Telegram"
+ "ERROR_MESSAGE": "Não foi possível guardar o canal Telegram"
}
},
"AUTH": {
"TITLE": "Escolher um canal",
- "DESC": "Chatwoot supports live-chat widgets, Facebook Messenger, Twitter profiles, WhatsApp, Emails, etc., as channels. If you want to build a custom channel, you can create it using the API channel. To get started, choose one of the channels below."
+ "DESC": "O Chatwoot suporta widgets de live-chat, Facebook Messenger, perfis do Twitter, WhatsApp, E-mails, etc., como canais. Se pretende criar um canal personalizado, pode fazê-lo usando o canal API. Para começar, escolha um dos canais abaixo.",
+ "TITLE_NEXT": "Complete the setup",
+ "TITLE_FINISH": "Pronto!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Website",
+ "DESCRIPTION": "Create a live-chat widget"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Connect your Facebook page"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Support your customers on WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "WhatsApp Call",
+ "DESCRIPTION": "Take voice calls on your WhatsApp number"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Connect with Gmail, Outlook, or other providers"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrate SMS channel with Twilio or bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Make a custom channel using our API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure Telegram channel using Bot token"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integrate your Line channel"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Connect your instagram account"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Connect your TikTok account"
+ },
+ "VOICE": {
+ "TITLE": "Voz",
+ "DESCRIPTION": "Integrate with Twilio Voice"
+ }
+ }
},
"AGENTS": {
- "TITLE": "agentes",
+ "TITLE": "Agentes",
"DESC": "Aqui você pode adicionar agentes para gerenciar a sua caixa de entrada recém-criada. Apenas esses agentes selecionados terão acesso à sua caixa de entrada. Agentes que não fazem parte desta caixa de entrada não serão capazes de ver ou responder a mensagens nesta caixa de entrada quando eles acessarem.
PS: como administrador, se precisar de acesso a todas as caixas de entrada, você deve se adicionar como agente em todas as caixas de entrada que você criar.",
- "VALIDATION_ERROR": "Adicionar pelo menos um agente à sua nova caixa de entrada",
+ "VALIDATION_ERROR": "Adicione, pelo menos, um agente à sua nova caixa de entrada",
"PICK_AGENTS": "Escolha os agentes da caixa de entrada"
},
"DETAILS": {
- "TITLE": "Detalhes da Caixa de Entrada",
- "DESC": "No menu abaixo, selecione a Página do Facebook que você deseja se conectar ao Chatwoot. Você também pode dar um nome personalizado para sua caixa de entrada para uma melhor identificação."
+ "TITLE": "Detalhes da caixa de entrada",
+ "DESC": "No menu abaixo, selecione a página do Facebook que pretende conectar ao Chatwoot. Também pode dar um nome personalizado à sua caixa de entrada para uma melhor identificação."
},
"FINISH": {
- "TITLE": "Acertado Ele!",
- "DESC": "Você terminou com sucesso de integrar sua página do Facebook ao Chatwoot. Da próxima vez que um cliente enviar mensagens para sua página, a conversa aparecerá automaticamente na sua caixa de entrada.
Também estamos fornecendo a você um script de widget que você pode facilmente adicionar ao seu site. Uma vez que isto estiver ao vivo no seu site, clientes podem enviar mensagens a partir do seu site sem a ajuda de qualquer ferramenta externa e a conversa aparecerá aqui, no Chatwoot.
Legal, né? Bem, nós certamente tentamos ser :)"
+ "TITLE": "Excelente!",
+ "DESC": "A integração da sua página do Facebook com o Chatwoot foi feita com sucesso. Da próxima vez que um cliente enviar mensagens para sua página, a conversa aparecerá automaticamente na sua caixa de entrada.
Também fornecemos um script de widget que pode facilmente adicionar ao seu site. Uma vez que isto estiver no seu site, os clientes podem enviar mensagens a partir do site sem a ajuda de qualquer ferramenta externa e a conversa aparecerá aqui, no Chatwoot.
"
},
"EMAIL_PROVIDER": {
- "TITLE": "Selecione o seu fornecedor de email",
- "DESCRIPTION": "Selecione um fornecedor de e-mail da lista abaixo. Se não vir o seu fornecedor de e-mail na lista, pode selecionar a opção outro fornecedor e colocar as credenciais IMAP e SMTP."
+ "TITLE": "Selecione o seu fornecedor de e-mail",
+ "DESCRIPTION": "Selecione um fornecedor de e-mail da lista abaixo. Se não encontrar o seu fornecedor de e-mail na lista, pode selecionar a opção 'Outros fornecedores' e colocar as credenciais IMAP e SMTP."
},
"MICROSOFT": {
- "TITLE": "Microsoft Email",
- "DESCRIPTION": "Para começar, clique no botão Entrar com a Microsoft. Será redirecionado para o e-mail que entrar na página. Depois de aceitar as permissões solicitadas, será redirecionado novamente para a etapa de criação da caixa de entrada.",
- "EMAIL_PLACEHOLDER": "Insira endereço de email",
- "HELP": "Para adicionar a sua conta da Microsoft como um canal, é necessário autenticar a sua conta da Microsoft clicando em 'Entrar com Microsoft' ",
- "ERROR_MESSAGE": "Ocorreu um erro ao ligar à Microsoft, por favor tente novamente"
+ "TITLE": "E-mail Microsoft",
+ "DESCRIPTION": "Para começar, clique no botão 'Entrar com a Microsoft'. Será redirecionado para o e-mail. Depois de aceitar as permissões solicitadas, será redirecionado novamente para a etapa de criação da caixa de entrada.",
+ "EMAIL_PLACEHOLDER": "Insira o endereço de e-mail",
+ "SIGN_IN": "Entrar via Microsoft",
+ "ERROR_MESSAGE": "Ocorreu um erro ao ligar à Microsoft, por favor, tente novamente"
+ },
+ "GOOGLE": {
+ "TITLE": "E-mail Google",
+ "DESCRIPTION": "Para começar, clique no botão 'Entrar com o Google'. Será redirecionado para a página de login do e-mail. Depois de aceitar as permissões solicitadas, será redirecionado de volta para a etapa de criação da caixa de entrada. ",
+ "SIGN_IN": "Entrar com o Google",
+ "EMAIL_PLACEHOLDER": "Insira o endereço de e-mail",
+ "ERROR_MESSAGE": "Ocorreu um erro ao conectar ao Google, por favor, tente novamente"
}
},
"DETAILS": {
- "LOADING_FB": "Autenticando você com o Facebook...",
- "ERROR_FB_AUTH": "Algo deu errado, por favor, atualize a página...",
- "ERROR_FB_UNAUTHORIZED": "Não está autorizado a executar esta ação. ",
- "ERROR_FB_UNAUTHORIZED_HELP": "Por favor, certifique-se que tem acesso, com controlo total, à página do Facebook. Pode ler mais sobre as permissões do Facebook aqui.",
- "CREATING_CHANNEL": "Criando sua caixa de entrada...",
- "TITLE": "Configurar Detalhes da Caixa de Entrada",
+ "LOADING_FB": "A autenticá-lo com o Facebook...",
+ "ERROR_FB_LOADING": "Erro ao carregar o SDK do Facebook. Por favor, inative qualquer bloqueador de anúncios e tente novamente, num navegador diferente.",
+ "ERROR_FB_AUTH": "Ocorreu um erro! Por favor, atualize a página...",
+ "ERROR_FB_UNAUTHORIZED": "Não tem permissão para executar esta ação. ",
+ "ERROR_FB_UNAUTHORIZED_HELP": "Por favor, certifique-se que tem acesso à página do Facebook, com controlo total. Pode ler mais sobre as permissões do Facebook aqui.",
+ "CREATING_CHANNEL": "A criar a sua caixa de entrada...",
+ "TITLE": "Configurar detalhes da caixa de entrada",
"DESC": ""
},
"AGENTS": {
"BUTTON_TEXT": "Adicionar agentes",
- "ADD_AGENTS": "Adicionando agentes à sua caixa de entrada..."
+ "ADD_AGENTS": "A adicionar agentes à sua caixa de entrada..."
},
"FINISH": {
- "TITLE": "Sua caixa de entrada está pronta!",
- "MESSAGE": "Agora, você pode se envolver com seus clientes através do seu novo Canal. Feliz apoio",
- "BUTTON_TEXT": "Me leve lá",
+ "TITLE": "A sua caixa de entrada está pronta!",
+ "MESSAGE": "Agora, pode conectar-se com os seus clientes através do seu novo canal.",
+ "BUTTON_TEXT": "Ir para a caixa de entrada",
"MORE_SETTINGS": "Mais configurações",
- "WEBSITE_SUCCESS": "Você terminou de criar um canal de site. Copie o código mostrado abaixo e cole-o em seu site. Na próxima vez que um cliente usar o chat em tempo real, a conversa aparecerá automaticamente em sua caixa de entrada."
+ "WEBSITE_SUCCESS": "Acabou de criar um canal de site com sucesso. Copie o código mostrado abaixo e cole-o no seu site. Da próxima vez que um cliente usar o chat em tempo real, a conversa aparecerá automaticamente na sua caixa de entrada.",
+ "WHATSAPP_QR_INSTRUCTION": "Scan the QR code above to quickly test your WhatsApp inbox",
+ "MESSENGER_QR_INSTRUCTION": "Scan the QR code above to quickly test your Facebook Messenger inbox",
+ "TELEGRAM_QR_INSTRUCTION": "Scan the QR code above to quickly test your Telegram inbox"
},
"REAUTH": "Reautorizar",
- "VIEW": "Visualizar",
+ "VIEW": "Ver",
"EDIT": {
"API": {
"SUCCESS_MESSAGE": "Configurações da caixa de entrada atualizadas com sucesso",
@@ -398,146 +572,336 @@
},
"EMAIL_COLLECT_BOX": {
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Desativado"
},
"ENABLE_CSAT": {
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Desativado"
},
"SENDER_NAME_SECTION": {
"TITLE": "Nome do remetente",
- "SUB_TEXT": "Selecione o nome a apresentar ao seu cliente quando ele receber e-mails dos seus agentes.",
+ "SUB_TEXT": "Selecione o nome a apresentar aos seus clientes quando receberem e-mails dos seus agentes.",
"FOR_EG": "Por exemplo:",
"FRIENDLY": {
"TITLE": "Amigável",
"FROM": "de",
- "SUBTITLE": "Adicionar o nome do agente que enviou a resposta ao nome do remetente para a tornar mais pessoal."
+ "SUBTITLE": "Adicionar o nome do agente que enviou a resposta ao remetente, para a tornar mais pessoal."
},
"PROFESSIONAL": {
"TITLE": "Profissional",
- "SUBTITLE": "Usar apenas o nome da empresa como o nome do remetente no cabeçalho do e-mail."
+ "SUBTITLE": "Usar apenas o nome da empresa como nome do remetente no cabeçalho do e-mail."
},
"BUSINESS_NAME": {
- "BUTTON_TEXT": "+ Configure o nome da sua empresa",
+ "BUTTON_TEXT": "Configure o nome da sua empresa",
"PLACEHOLDER": "Insira o nome da sua empresa",
- "SAVE_BUTTON_TEXT": "Salvar"
+ "SAVE_BUTTON_TEXT": "Guardar"
}
},
"ALLOW_MESSAGES_AFTER_RESOLVED": {
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Desativado"
},
"ENABLE_CONTINUITY_VIA_EMAIL": {
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Desativado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "ENABLED": "Reopen same conversation",
+ "DISABLED": "Create new conversations",
+ "ENABLED_DESCRIPTION": "When a contact messages again, the previous conversation will be reopened.",
+ "DISABLED_DESCRIPTION": "A new conversation will be created each time after the previous one is resolved."
},
"ENABLE_HMAC": {
"LABEL": "Ativar"
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
- "AVATAR_DELETE_BUTTON_TEXT": "Apagar Avatar",
+ "BUTTON_TEXT": "Excluir",
+ "AVATAR_DELETE_BUTTON_TEXT": "Excluir avatar",
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir ",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem certeza que pretende excluir ",
"PLACE_HOLDER": "Por favor, digite {inboxName} para confirmar",
"YES": "Sim, excluir ",
- "NO": "Não, Manter "
+ "NO": "Não, manter "
},
"API": {
"SUCCESS_MESSAGE": "Caixa de entrada excluída com sucesso",
- "ERROR_MESSAGE": "Não foi possível excluir a caixa de entrada. Tente novamente mais tarde.",
- "AVATAR_SUCCESS_MESSAGE": "Avatar da Caixa de Entrada apagado com sucesso",
- "AVATAR_ERROR_MESSAGE": "Não foi possível apagar o avatar da caixa de entrada. Por favor, tente novamente mais tarde."
+ "ERROR_MESSAGE": "Não foi possível excluir a caixa de entrada. Por favor, tente novamente mais tarde.",
+ "AVATAR_SUCCESS_MESSAGE": "Avatar da caixa de entrada excluído com sucesso",
+ "AVATAR_ERROR_MESSAGE": "Não foi possível excluir o avatar da caixa de entrada. Por favor, tente novamente mais tarde."
}
},
"TABS": {
- "SETTINGS": "Confirgurações",
+ "SETTINGS": "Configurações",
"COLLABORATORS": "Colaboradores",
"CONFIGURATION": "Configuração",
"CAMPAIGN": "Campanhas",
"PRE_CHAT_FORM": "Formulário pré-chat",
"BUSINESS_HOURS": "Horário comercial",
- "WIDGET_BUILDER": "Construtor de Widgets",
- "BOT_CONFIGURATION": "Configuração do bot"
+ "WIDGET_BUILDER": "Construtor de widgets",
+ "BOT_CONFIGURATION": "Configuração do bot",
+ "ACCOUNT_HEALTH": "Account Health",
+ "CSAT": "CSAT",
+ "VOICE": "Voz",
+ "CALLS": "Calls"
},
- "SETTINGS": "Confirgurações",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Enable Voice Calling",
+ "DESCRIPTION": "Enable voice calling on this inbox. Agents will be able to make and receive phone calls."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Voice calling requires Twilio API Key credentials. These are used to generate tokens for agent voice connections."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Enable WhatsApp Calling",
+ "DESCRIPTION": "Allow agents to receive and place WhatsApp Cloud calls on this inbox. Customers can call this business number directly from WhatsApp."
+ },
+ "ENABLE_FAILED": "Voice calling couldn't be turned on for this number — it isn't enrolled in the WhatsApp Business Calling API yet. Reach out to Meta or your WhatsApp Business Solution Provider to onboard it, then try again.",
+ "PHONE_NUMBER": {
+ "LABEL": "Business phone number",
+ "HELP_TEXT": "WhatsApp number that customers will call."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "How it works",
+ "DESCRIPTION": "Calls are placed peer-to-peer between the agent's browser and Meta — no extra credentials are required. Make sure the agent's browser has microphone permission for this site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Call permission request message",
+ "HELP_TEXT": "Shown to the contact when they haven't yet consented to receive calls. Leave blank to use the default.",
+ "PLACEHOLDER": "We would like to call you regarding your conversation."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Channel Preferences",
+ "WIDGET_FEATURES": "Widget features",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Manage your WhatsApp account",
+ "DESCRIPTION": "Review your WhatsApp account status, messaging limits, and quality. Update settings or resolve issues if needed",
+ "GO_TO_SETTINGS": "Go to Meta Business Manager",
+ "NO_DATA": "Health data is not available",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Display phone number",
+ "TOOLTIP": "Phone number displayed to customers"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Business name",
+ "TOOLTIP": "Business name verified by WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Display name status",
+ "TOOLTIP": "Status of your business name verification"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Quality rating",
+ "TOOLTIP": "WhatsApp quality rating for your account"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Messaging limit tier",
+ "TOOLTIP": "Daily messaging limit for your account"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Account mode",
+ "TOOLTIP": "Current operating mode of your WhatsApp account"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 customers per 24h",
+ "TIER_1000": "1K customers per 24h",
+ "TIER_1K": "1K customers per 24h",
+ "TIER_10K": "10K customers per 24h",
+ "TIER_100K": "100K customers per 24h",
+ "TIER_UNLIMITED": "Unlimited customers per 24h",
+ "UNKNOWN": "Rating not available"
+ },
+ "STATUSES": {
+ "APPROVED": "Approved",
+ "PENDING_REVIEW": "Pending Review",
+ "AVAILABLE_WITHOUT_REVIEW": "Available Without Review",
+ "REJECTED": "Rejected",
+ "DECLINED": "Declined",
+ "NON_EXISTS": "Non exists"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Disponível"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Webhook Configuration",
+ "DESCRIPTION": "Webhook URL is required for your WhatsApp Business Account to receive messages from customers",
+ "ACTION_REQUIRED": "Webhook not configured",
+ "REGISTER_BUTTON": "Register Webhook",
+ "REGISTER_SUCCESS": "Webhook registered successfully",
+ "REGISTER_ERROR": "Failed to register webhook. Please try again.",
+ "CONFIGURED_SUCCESS": "Webhook configured successfully",
+ "URL_MISMATCH": "Webhook URL mismatch"
+ }
+ },
+ "SETTINGS": "Configurações",
"FEATURES": {
"LABEL": "Características",
"DISPLAY_FILE_PICKER": "Mostrar o selecionador de ficheiros no widget",
- "DISPLAY_EMOJI_PICKER": "Mostrar seletor de emojis no widget",
+ "DISPLAY_EMOJI_PICKER": "Mostrar selecionador de emojis no widget",
"ALLOW_END_CONVERSATION": "Permitir que os utilizadores terminem a conversa a partir da widget",
- "USE_INBOX_AVATAR_FOR_BOT": "Use o nome da caixa de entrada e o avatar do bot"
+ "USE_INBOX_AVATAR_FOR_BOT": "Usar o nome da caixa de entrada e o avatar do bot"
},
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Script do Messenger",
- "MESSENGER_SUB_HEAD": "Coloque esse botão dentro da sua tag corporal",
- "INBOX_AGENTS": "agentes",
- "INBOX_AGENTS_SUB_TEXT": "Adicionar ou remover agentes dessa caixa de entrada",
+ "MESSENGER_SUB_HEAD": "Coloque este botão no corpo da sua tag ",
+ "ALLOWED_DOMAINS": {
+ "TITLE": "Allowed Domains",
+ "DESCRIPTION": "Restrict which websites can embed your chat widget. For security, only add domains you own and trust. Add one or more domains separated by commas. Leave blank to allow all domains (not recommended for production).",
+ "PLACEHOLDER": "example.com, www.example.com, app.example.com"
+ },
+ "ALLOW_MOBILE_WEBVIEW": {
+ "LABEL": "Enable widget in mobile apps",
+ "SUBTITLE": "Check this if you embed the widget in iOS or Android apps. Mobile apps don't send domain information, so they would be blocked by domain restrictions unless this is enabled."
+ },
+ "IDENTITY_VALIDATION": {
+ "TITLE": "Identity Validation",
+ "DESCRIPTION": "Verify user authenticity by generating secure tokens. This prevents unauthorized users from impersonating others in your chat.",
+ "SECRET_KEY": "Secret Key",
+ "VIEW_DOCS": "View documentation",
+ "REQUIRE_LABEL": "Require identity validation for all conversations",
+ "REQUIRE_DESCRIPTION": "When enabled, users must provide a valid identity token to start conversations. Requests without valid tokens will be rejected."
+ },
+ "INBOX_AGENTS": "Agentes",
+ "INBOX_AGENTS_SUB_TEXT": "Adicionar ou remover agentes desta caixa de entrada",
"AGENT_ASSIGNMENT": "Atribuição da conversa",
"AGENT_ASSIGNMENT_SUB_TEXT": "Atualizar configurações de atribuição de conversa",
"UPDATE": "Atualização",
- "ENABLE_EMAIL_COLLECT_BOX": "Ativar caixa de receção de email",
- "ENABLE_EMAIL_COLLECT_BOX_SUB_TEXT": "Ativar ou desativar caixa de receção de emails para as novas conversas",
- "AUTO_ASSIGNMENT": "Habilitar 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 avaliação 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": "Habilitar continuidade das conversas por e-mail",
- "ENABLE_CONTINUITY_VIA_EMAIL_SUB_TEXT": "Conversas irão continuar por email se o endereço de email do contacto estiver disponível.",
- "LOCK_TO_SINGLE_CONVERSATION": "Bloquear a conversa única",
- "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Ativar ou desativar múltiplas conversas para o mesmo contato nesta caixa de entrada",
- "INBOX_UPDATE_TITLE": "Configurações da Caixa de Entrada",
- "INBOX_UPDATE_SUB_TEXT": "Atualize suas configurações da caixa de entrada",
+ "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",
+ "SENDER_NAME_SECTION": "Adicionar o nome do agente ao e-mail",
+ "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.",
+ "ENABLE_CONTINUITY_VIA_EMAIL_DISABLED_TEXT": "This feature is available on a paid plan. Upgrade to enable conversation continuity via email.",
+ "LOCK_TO_SINGLE_CONVERSATION": "Conversation Routing",
+ "LOCK_TO_SINGLE_CONVERSATION_SUB_TEXT": "Configure conversation creation for existing contacts",
+ "INBOX_UPDATE_TITLE": "Configurações da caixa de entrada",
+ "INBOX_UPDATE_SUB_TEXT": "Atualize as suas configurações da caixa de entrada",
"AUTO_ASSIGNMENT_SUB_TEXT": "Ativar ou desativar a atribuição automática de novas conversas aos agentes adicionados a essa caixa de entrada.",
"HMAC_VERIFICATION": "Validação da identidade do utilizador",
- "HMAC_DESCRIPTION": "In order to validate the user's identity, you can pass an `identifier_hash` for each user. You can generate a HMAC sha256 hash using the `identifier` with the key shown here.",
- "HMAC_LINK_TO_DOCS": "Pode obter mais informação aqui.",
- "HMAC_MANDATORY_VERIFICATION": "Forçar Validação de Identidade do Utilizador",
- "HMAC_MANDATORY_DESCRIPTION": "If enabled, requests missing the `identifier_hash` will be rejected.",
- "INBOX_IDENTIFIER": "Identificador da Caixa de Entrada",
+ "HMAC_DESCRIPTION": "Com esta chave, pode gerar um token secreto que pode ser usado para verificar a identidade dos seus utilizadores.",
+ "HMAC_LINK_TO_DOCS": "Pode saber mais aqui.",
+ "HMAC_MANDATORY_VERIFICATION": "Forçar validação de identidade do utilizador",
+ "HMAC_MANDATORY_DESCRIPTION": "Se ativado, os pedidos que não podem ser verificados serão rejeitados.",
+ "INBOX_IDENTIFIER": "Identificador da caixa de entrada",
"INBOX_IDENTIFIER_SUB_TEXT": "Use o token 'inbox_identifier' mostrado aqui para autenticar os seus clientes API.",
- "FORWARD_EMAIL_TITLE": "Encaminhar para Email",
- "FORWARD_EMAIL_SUB_TEXT": "Comece a encaminhar as suas mensagens de email para o seguinte endereço.",
+ "FORWARD_EMAIL_TITLE": "Encaminhar para e-mail",
+ "FORWARD_EMAIL_SUB_TEXT": "Comece a encaminhar as suas mensagens de e-mail para o seguinte endereço.",
+ "FORWARD_EMAIL_NOT_CONFIGURED": "Forwarding emails to your inbox is currently disabled on this installation. To use this feature, it must be enabled by your administrator. Please get in touch with them to proceed.",
"ALLOW_MESSAGES_AFTER_RESOLVED": "Permitir mensagens após a resolução da conversa",
- "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Permite que os utilizadores finais enviem mensagens após a conversa estar resolvida.",
+ "ALLOW_MESSAGES_AFTER_RESOLVED_SUB_TEXT": "Permitir que os utilizadores finais enviem mensagens após a conversa estar resolvida.",
"WHATSAPP_SECTION_SUBHEADER": "Esta chave de API é usada para a integração com as APIs do WhatsApp.",
- "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Escreva a chave atualizada a ser usada para a integração com as APIs do WhatsApp.",
+ "WHATSAPP_SECTION_UPDATE_SUBHEADER": "Insira a nova chave da API a ser usada para a integração com as APIs do WhatsApp.",
"WHATSAPP_SECTION_TITLE": "Chave da API",
- "WHATSAPP_SECTION_UPDATE_TITLE": "Atualizar Chave de API",
- "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Digite a nova chave da API aqui",
+ "WHATSAPP_SECTION_UPDATE_TITLE": "Atualizar chave da API",
+ "WHATSAPP_SECTION_UPDATE_PLACEHOLDER": "Insira a nova chave da API aqui",
"WHATSAPP_SECTION_UPDATE_BUTTON": "Atualização",
- "WHATSAPP_WEBHOOK_TITLE": "Webhook de Verificação de Token",
+ "WHATSAPP_EMBEDDED_SIGNUP_TITLE": "WhatsApp Embedded Signup",
+ "WHATSAPP_EMBEDDED_SIGNUP_SUBHEADER": "This inbox is connected through WhatsApp embedded signup.",
+ "WHATSAPP_EMBEDDED_SIGNUP_DESCRIPTION": "You can reconfigure this inbox to update your WhatsApp Business settings.",
+ "WHATSAPP_RECONFIGURE_BUTTON": "Reconfigure",
+ "WHATSAPP_CONNECT_TITLE": "Connect to WhatsApp Business",
+ "WHATSAPP_CONNECT_SUBHEADER": "Upgrade to WhatsApp embedded signup for easier management.",
+ "WHATSAPP_CONNECT_DESCRIPTION": "Connect this inbox to WhatsApp Business for enhanced features and easier management.",
+ "WHATSAPP_CONNECT_BUTTON": "Conectar",
+ "WHATSAPP_CONNECT_SUCCESS": "Successfully connected to WhatsApp Business!",
+ "WHATSAPP_CONNECT_ERROR": "Failed to connect to WhatsApp Business. Please try again.",
+ "WHATSAPP_RECONFIGURE_SUCCESS": "Successfully reconfigured WhatsApp Business!",
+ "WHATSAPP_RECONFIGURE_ERROR": "Failed to reconfigure WhatsApp Business. Please try again.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID is not configured. Please contact your administrator.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID is not configured. Please contact your administrator.",
+ "WHATSAPP_LOGIN_CANCELLED": "WhatsApp login was cancelled. Please try again.",
+ "WHATSAPP_WEBHOOK_TITLE": "Webhook de verificação do token",
"WHATSAPP_WEBHOOK_SUBHEADER": "Este token é usado para verificar a autenticidade do endpoint do webhook.",
- "UPDATE_PRE_CHAT_FORM_SETTINGS": "Atualizar configurações do Formulário Pre Chat"
+ "WHATSAPP_TEMPLATES_SYNC_TITLE": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUBHEADER": "Manually sync message templates from WhatsApp to update your available templates.",
+ "WHATSAPP_TEMPLATES_SYNC_BUTTON": "Sync Templates",
+ "WHATSAPP_TEMPLATES_SYNC_SUCCESS": "Templates sync initiated successfully. It may take a couple of minutes to update.",
+ "WHATSAPP_CALLING_ENABLED": {
+ "LABEL": "Enable voice calling",
+ "DESCRIPTION": "Allow agents to start and receive WhatsApp voice calls on this inbox. Available only on embedded-signup WhatsApp Cloud channels with calling permission granted by Meta."
+ },
+ "UPDATE_PRE_CHAT_FORM_SETTINGS": "Atualizar configurações do formulário pré-chat"
},
"HELP_CENTER": {
- "LABEL": "Centro de Suporte",
- "PLACEHOLDER": "Selecione Centro de Suporte",
- "SELECT_PLACEHOLDER": "Selecione Centro de Suporte",
- "REMOVE": "Remover Centro de Suporte",
- "SUB_TEXT": "Associe um Centro de Ajuda com a caixa de entrada"
+ "LABEL": "Centro de suporte",
+ "PLACEHOLDER": "Selecione centro de suporte",
+ "SELECT_PLACEHOLDER": "Selecione centro de suporte",
+ "NONE": "Nenhuma",
+ "REMOVE": "Remover centro de suporte",
+ "SUB_TEXT": "Associe um centro de suporte à caixa de entrada"
},
"AUTO_ASSIGNMENT": {
"MAX_ASSIGNMENT_LIMIT": "Limite de atribuição automática",
"MAX_ASSIGNMENT_LIMIT_RANGE_ERROR": "Por favor, insira um valor maior que 0",
"MAX_ASSIGNMENT_LIMIT_SUB_TEXT": "Limitar o número máximo de conversas desta caixa de entrada que pode ser atribuído automaticamente a um agente"
},
+ "ASSIGNMENT": {
+ "TITLE": "Atribuição da conversa",
+ "DESCRIPTION": "Automatically assign incoming conversations to available agents based on assignment policies",
+ "ENABLE_AUTO_ASSIGNMENT": "Enable automatic conversation assignment",
+ "DEFAULT_RULES_TITLE": "Default assignment rules",
+ "DEFAULT_RULES_DESCRIPTION": "Using the default assignment behavior for all conversations",
+ "DEFAULT_RULE_1": "Earliest created conversations first",
+ "DEFAULT_RULE_2": "Round robin distribution",
+ "CUSTOMIZE_WITH_POLICY": "Customize with assignment policy",
+ "USING_POLICY": "Using custom assignment policy for this inbox",
+ "CUSTOMIZE_POLICY": "Customize with assignment policy",
+ "DELETE_POLICY": "Delete policy",
+ "POLICY_LABEL": "Assignment policy",
+ "ASSIGNMENT_ORDER_LABEL": "Assignment Order",
+ "ASSIGNMENT_METHOD_LABEL": "Assignment Method",
+ "POLICY_STATUS": {
+ "ACTIVE": "Ativa",
+ "INACTIVE": "Inactive"
+ },
+ "PRIORITY": {
+ "EARLIEST_CREATED": "Earliest created",
+ "LONGEST_WAITING": "Longest waiting"
+ },
+ "METHOD": {
+ "ROUND_ROBIN": "Round robin",
+ "BALANCED": "Balanced assignment"
+ },
+ "UPGRADE_PROMPT": "Custom assignment policies are available on the Business plan",
+ "UPGRADE_TO_BUSINESS": "Upgrade to Business",
+ "DEFAULT_POLICY_LINKED": "Default policy linked",
+ "DEFAULT_POLICY_DESCRIPTION": "Link a custom assignment policy to customize how conversations are assigned to agents in this inbox.",
+ "LINK_EXISTING_POLICY": "Link existing policy",
+ "CREATE_NEW_POLICY": "Create new policy",
+ "NO_POLICIES": "No assignment policies found",
+ "VIEW_ALL_POLICIES": "View all policies",
+ "CURRENT_BEHAVIOR": "Currently using default assignment behavior:",
+ "LINK_SUCCESS": "Assignment policy linked successfully",
+ "LINK_ERROR": "Failed to link assignment policy"
+ },
+ "ASSIGNMENT_POLICY": {
+ "DELETE_CONFIRM_TITLE": "Delete assignment policy?",
+ "DELETE_CONFIRM_MESSAGE": "Are you sure you want to remove this assignment policy from this inbox? The inbox will revert to default assignment rules.",
+ "CANCEL": "Cancelar",
+ "CONFIRM_DELETE": "Excluir",
+ "DELETE_SUCCESS": "Assignment policy removed successfully",
+ "DELETE_ERROR": "Failed to remove assignment policy"
+ },
"FACEBOOK_REAUTHORIZE": {
"TITLE": "Reautorizar",
- "SUBTITLE": "A sua ligação ao Facebook caducou, volte a ligar a página para poder continuar a utilizar os serviços",
- "MESSAGE_SUCCESS": "Ligação bem sucedida",
- "MESSAGE_ERROR": "Ocorreu um erro, por favor tente novamente"
+ "SUBTITLE": "A sua conexão ao Facebook expirou, por favor, reconecte a página para poder continuar a utilizar os serviços",
+ "MESSAGE_SUCCESS": "Reconexão bem-sucedida",
+ "MESSAGE_ERROR": "Ocorreu um erro, por favor, tente novamente"
},
"PRE_CHAT_FORM": {
- "DESCRIPTION": "O formulário de Pré-Chat permite-lhe capturar informações do utilizador antes de iniciar uma conversa.",
- "SET_FIELDS": "Campos do formulário de pré chat",
+ "DESCRIPTION": "O formulário de pré-chat permite-lhe capturar informações do utilizador antes de iniciar uma conversa.",
+ "SET_FIELDS": "Campos do formulário de pré-chat",
"SET_FIELDS_HEADER": {
"FIELDS": "Campos",
"LABEL": "Etiqueta",
@@ -547,52 +911,124 @@
"REQUIRED": "Obrigatório"
},
"ENABLE": {
- "LABEL": "Ativar formulário de Pré-chat",
+ "LABEL": "Ativar formulário de pré-chat",
"OPTIONS": {
"ENABLED": "Sim",
"DISABLED": "Não"
}
},
"PRE_CHAT_MESSAGE": {
- "LABEL": "Mensagem pré chat",
- "PLACEHOLDER": "Esta mensagem estará visível aos utilizadores juntamente com o formulário"
+ "LABEL": "Mensagem de pré-chat",
+ "PLACEHOLDER": "Esta mensagem estará visível aos utilizadores, juntamente com o formulário"
},
"REQUIRE_EMAIL": {
- "LABEL": "Os visitantes devem digitar o seu nome e o seu email antes de iniciarem uma conversa"
+ "LABEL": "Os visitantes devem digitar o seu nome e e-mail antes de iniciarem uma conversa"
+ }
+ },
+ "CSAT": {
+ "TITLE": "Ativar CSAT",
+ "SUBTITLE": "Acione automaticamente inquéritos CSAT no final das conversas para perceber como os clientes se sentem sobre o apoio recebido. Acompanhe tendências de satisfação e identifique áreas de melhoria ao longo do tempo.",
+ "DISPLAY_TYPE": {
+ "LABEL": "Tipo de visualização"
+ },
+ "MESSAGE": {
+ "LABEL": "Messagem",
+ "PLACEHOLDER": "Por favor, insira uma mensagem para mostrar aos utilizadores com o formulário"
+ },
+ "BUTTON_TEXT": {
+ "LABEL": "Button text",
+ "PLACEHOLDER": "Please rate us"
+ },
+ "LANGUAGE": {
+ "LABEL": "Idioma",
+ "PLACEHOLDER": "Select template language"
+ },
+ "MESSAGE_PREVIEW": {
+ "LABEL": "Message preview",
+ "TOOLTIP": "This may vary slightly when rendered on WhatsApp's platform."
+ },
+ "TEMPLATE_STATUS": {
+ "APPROVED": "Approved by WhatsApp",
+ "PENDING": "Pending WhatsApp approval",
+ "REJECTED": "Meta rejected the template",
+ "DEFAULT": "Needs WhatsApp approval",
+ "NOT_FOUND": "The template does not exist in the Meta platform."
+ },
+ "TEMPLATE_CREATION": {
+ "SUCCESS_MESSAGE": "WhatsApp template created successfully and sent for approval",
+ "ERROR_MESSAGE": "Failed to create WhatsApp template"
+ },
+ "TEMPLATE_UPDATE_DIALOG": {
+ "TITLE": "Edit survey details",
+ "DESCRIPTION": "We will delete the previous template and make a new one which will be sent again for WhatsApp approval",
+ "CONFIRM": "Create new template",
+ "CANCEL": "Voltar"
+ },
+ "UTILITY_ANALYZER": {
+ "ACTION": "Check utility fit",
+ "HELPER_NOTE": "Check this message before submission to improve Utility fit. The system creates a dedicated CSAT template with buttons for reporting and submits it as Utility; Meta may still reclassify it as Marketing based on content.",
+ "RESULT_LABEL": "Meta category prediction",
+ "GUIDANCE_NOTE": "This is a guidance check, not a guarantee of Meta approval.",
+ "SUGGESTION_LABEL": "Suggested utility-safe rewrite",
+ "APPLY": "Use this rewrite",
+ "ERROR_MESSAGE": "Couldn't analyze the message. Please try again.",
+ "CLASSIFICATION": {
+ "LIKELY_UTILITY": "Likely Utility",
+ "LIKELY_MARKETING": "Likely Marketing",
+ "UNCLEAR": "Needs clarification"
+ }
+ },
+ "SURVEY_RULE": {
+ "LABEL": "Regra do inquérito",
+ "DESCRIPTION_PREFIX": "Enviar o inquérito 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: Os inquéritos CSAT são enviados apenas uma vez por conversa",
+ "WHATSAPP_NOTE": "Note: When you save, the system creates a dedicated CSAT template in WhatsApp (used to capture rating and feedback in reports) and submits it as Utility for approval. Meta may still classify it as Marketing based on content. After approval, surveys are sent only once per conversation as per the survey rule.",
+ "API": {
+ "SUCCESS_MESSAGE": "Definições de CSAT atualizadas com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar as definições de CSAT. Por favor, tente novamente mais tarde."
}
},
"BUSINESS_HOURS": {
- "TITLE": "Definir a sua disponibilidade",
- "SUBTITLE": "Definir a sua disponibilidade no widget",
- "WEEKLY_TITLE": "Definir as horas semanais",
- "TIMEZONE_LABEL": "Selecionar o fuso horário",
+ "TITLE": "Definir disponibilidade",
+ "SUBTITLE": "Defina a sua disponibilidade no widget do livechat",
+ "WEEKLY_TITLE": "Defina as suas horas semanais",
+ "TIMEZONE_LABEL": "Selecionar fuso horário",
"UPDATE": "Atualizar as configurações do horário comercial",
- "TOGGLE_AVAILABILITY": "Definir a disponibilidade para essa caixa de entrada",
+ "TOGGLE_AVAILABILITY": "Ativar a disponibilidade de negócios para esta caixa de entrada",
"UNAVAILABLE_MESSAGE_LABEL": "Mensagem indisponível para os visitantes",
- "TOGGLE_HELP": "Está opção mostrará as horas de disponibilidade no widget da conversa, mesmo que todos os agentes estejam offline. Quem solicitar o serviço fora de horas poderá ser avisado dos horários disponíveis através de uma mensagem e do formulário de pré-chat.",
+ "TOGGLE_HELP": "Permitir a disponibilidade de negócios mostrará as horas disponíveis no widget de live-chat, mesmo que todos os agentes estejam offline. Em caso de contactos fora do horário disponível, os clientes podem ser avisados com uma mensagem e um formulário de pré-chat.",
"DAY": {
- "ENABLE": "Permitir a disponibilidade para este dia",
+ "DAY": "Dia",
+ "AVAILABILITY": "Disponibilidade",
+ "HOURS": "Horas",
+ "ENABLE": "Ativar a disponibilidade para este dia",
"UNAVAILABLE": "Indisponível",
- "HOURS": "horas",
- "VALIDATION_ERROR": "A hora de abertura deve ser anterior a hora de encerramento.",
+ "VALIDATION_ERROR": "A hora de abertura deve ser anterior à hora de encerramento.",
"CHOOSE": "Escolher"
},
- "ALL_DAY": "Todo Dia"
+ "ALL_DAY": "Todo o dia"
},
"IMAP": {
"TITLE": "IMAP",
"SUBTITLE": "Defina os seus dados IMAP",
- "NOTE_TEXT": "Para ativar o SMTP, por favor configure o IMAP.",
+ "NOTE_TEXT": "Para ativar o SMTP, por favor, configure o IMAP.",
"UPDATE": "Atualizar configurações IMAP",
"TOGGLE_AVAILABILITY": "Ativar a configuração IMAP para esta caixa de entrada",
- "TOGGLE_HELP": "Habilitar o IMAP ajudará o utilizador a receber o email",
+ "TOGGLE_HELP": "Habilitar o IMAP ajudará o utilizador a receber o e-mail",
"EDIT": {
"SUCCESS_MESSAGE": "Configurações IMAP atualizadas com sucesso",
"ERROR_MESSAGE": "Não foi possível atualizar as configurações do IMAP"
},
"ADDRESS": {
"LABEL": "Endereço",
- "PLACE_HOLDER": "Endereço (Eg: imap.gmail.com)"
+ "PLACE_HOLDER": "Endereço (Ex. imap.gmail.com)"
},
"PORT": {
"LABEL": "Porta",
@@ -606,25 +1042,26 @@
"LABEL": "Palavra-passe",
"PLACE_HOLDER": "Palavra-passe"
},
- "ENABLE_SSL": "Habilitar SSL"
+ "ENABLE_SSL": "Ativar SSL",
+ "AUTH_MECHANISM": "Autenticação"
},
"MICROSOFT": {
"TITLE": "Microsoft",
- "SUBTITLE": "Autorizar novamente a sua conta MICROSOFT"
+ "SUBTITLE": "Autorizar novamente a sua conta Microsoft"
},
"SMTP": {
"TITLE": "SMTP",
"SUBTITLE": "Defina os seus dados IMAP",
"UPDATE": "Atualizar configurações de SMTP",
- "TOGGLE_AVAILABILITY": "Habilitar configuração SMTP para esta caixa de entrada",
- "TOGGLE_HELP": "Habilitar o SMTP irá ajudar o utilizador a enviar e-mail",
+ "TOGGLE_AVAILABILITY": "Ativar a configuração IMAP para esta caixa de entrada",
+ "TOGGLE_HELP": "Habilitar o SMTP ajudará o utilizador a enviar e-mail",
"EDIT": {
"SUCCESS_MESSAGE": "Configurações de SMTP atualizadas com sucesso",
- "ERROR_MESSAGE": "Não é possível atualizar configurações de SMTP"
+ "ERROR_MESSAGE": "Não é possível atualizar as configurações de SMTP"
},
"ADDRESS": {
"LABEL": "Endereço",
- "PLACE_HOLDER": "Endereço (Eg: smtp.gmail.com)"
+ "PLACE_HOLDER": "Endereço (Ex. smtp.gmail.com)"
},
"PORT": {
"LABEL": "Porta",
@@ -645,50 +1082,51 @@
"ENCRYPTION": "Encriptação",
"SSL_TLS": "SSL/TLS",
"START_TLS": "STARTTLS",
- "OPEN_SSL_VERIFY_MODE": "Abrir Modo de Verificação SSL",
+ "OPEN_SSL_VERIFY_MODE": "Abrir o modo de verificação SSL",
"AUTH_MECHANISM": "Autenticação"
},
"NOTE": "Observação: ",
"WIDGET_BUILDER": {
"WIDGET_OPTIONS": {
"AVATAR": {
- "LABEL": "Avatar do Website",
+ "LABEL": "Avatar do website",
"DELETE": {
"API": {
"SUCCESS_MESSAGE": "Avatar removido com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
}
}
},
"WEBSITE_NAME": {
- "LABEL": "Nome do site",
- "PLACE_HOLDER": "Digite o nome do seu site (por exemplo: Acme Inc)",
- "ERROR": "Por favor, digite um nome de website válido"
+ "LABEL": "Nome do website",
+ "PLACE_HOLDER": "Insira o nome do seu website (ex. Acme Inc)",
+ "ERROR": "Por favor, insira um nome de website válido"
},
"WELCOME_HEADING": {
- "LABEL": "Título de Boas-Vindas",
+ "LABEL": "Título de boas-vindas",
"PLACE_HOLDER": "Olá!"
},
"WELCOME_TAGLINE": {
- "LABEL": "Bem-vindo Slogan",
- "PLACE_HOLDER": "Nós simplificamos nos conectar com a gente. Pergunte a nós qualquer coisa ou compartilhe seus comentários."
+ "LABEL": "Slogan de boas-vindas",
+ "PLACE_HOLDER": "Nós simplificamos a sua conexão connosco. Pergunte-nos qualquer coisa ou partilhe um comentário."
},
"REPLY_TIME": {
- "LABEL": "Tempo de Resposta",
+ "LABEL": "Tempo de resposta",
"IN_A_FEW_MINUTES": "Em poucos minutos",
"IN_A_FEW_HOURS": "Em poucas horas",
"IN_A_DAY": "Dentro de um dia"
},
"WIDGET_COLOR_LABEL": "Cor do widget",
- "WIDGET_BUBBLE_POSITION_LABEL": "Posição do Balão de Widget",
- "WIDGET_BUBBLE_TYPE_LABEL": "Tipo de Balão de Widget",
+ "WIDGET_BUBBLE": "Bubble",
+ "WIDGET_BUBBLE_POSITION_LABEL": "Position:",
+ "WIDGET_BUBBLE_TYPE_LABEL": "Tipo:",
"WIDGET_BUBBLE_LAUNCHER_TITLE": {
"DEFAULT": "Fale connosco",
- "LABEL": "Título do Iniciado do Widget",
+ "LABEL": "Launcher Title",
"PLACE_HOLDER": "Fale connosco"
},
"UPDATE": {
- "BUTTON_TEXT": "Atualizar Configurações do Widget",
+ "BUTTON_TEXT": "Atualizar configurações do widget",
"API": {
"SUCCESS_MESSAGE": "Configurações do widget atualizadas com sucesso",
"ERROR_MESSAGE": "Não é possível atualizar as configurações do widget"
@@ -704,12 +1142,12 @@
},
"WIDGET_BUBBLE_TYPE": {
"STANDARD": "Padrão",
- "EXPANDED_BUBBLE": "Balão Expandido"
+ "EXPANDED_BUBBLE": "Balão expandido"
}
},
"WIDGET_SCREEN": {
"DEFAULT": "Padrão",
- "CHAT": "Chat"
+ "CHAT": "Chat mode"
},
"REPLY_TIME": {
"IN_A_FEW_MINUTES": "Normalmente respondemos em poucos minutos",
@@ -717,23 +1155,48 @@
"IN_A_DAY": "Normalmente respondemos num dia"
},
"FOOTER": {
- "START_CONVERSATION_BUTTON_TEXT": "Iniciar Conversa",
+ "START_CONVERSATION_BUTTON_TEXT": "Iniciar conversa",
"CHAT_INPUT_PLACEHOLDER": "Escreva a sua mensagem"
},
"BODY": {
"TEAM_AVAILABILITY": {
"ONLINE": "Estamos online",
- "OFFLINE": "Estamos ausentes"
+ "OFFLINE": "Neste momento, estamos ausentes"
},
- "USER_MESSAGE": "Oi",
+ "USER_MESSAGE": "Olá",
"AGENT_MESSAGE": "Olá"
},
"BRANDING_TEXT": "Desenvolvido por Chatwoot",
"SCRIPT_SETTINGS": "\n window.chatwootSettings = {options};"
},
"EMAIL_PROVIDERS": {
- "MICROSOFT": "Microsoft",
- "OTHER_PROVIDERS": "Outros Fornecedores"
+ "MICROSOFT": {
+ "TITLE": "Microsoft",
+ "DESCRIPTION": "Connect with Microsoft"
+ },
+ "GOOGLE": {
+ "TITLE": "Google",
+ "DESCRIPTION": "Connect with Google"
+ },
+ "OTHER_PROVIDERS": {
+ "TITLE": "Outros fornecedores",
+ "DESCRIPTION": "Connect with Other Providers"
+ }
+ },
+ "CHANNELS": {
+ "MESSENGER": "Messenger",
+ "WEB_WIDGET": "Website",
+ "TWITTER_PROFILE": "Twitter",
+ "TWILIO_SMS": "Twilio SMS",
+ "WHATSAPP": "WhatsApp",
+ "SMS": "SMS",
+ "EMAIL": "E-mail",
+ "TELEGRAM": "Telegram",
+ "LINE": "Line",
+ "API": "Canal da API",
+ "INSTAGRAM": "Instagram",
+ "TIKTOK": "TikTok",
+ "VOICE": "Voz"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/index.js b/app/javascript/dashboard/i18n/locale/pt/index.js
index 434e50e1d..785b1e0b1 100644
--- a/app/javascript/dashboard/i18n/locale/pt/index.js
+++ b/app/javascript/dashboard/i18n/locale/pt/index.js
@@ -8,25 +8,34 @@ import bulkActions from './bulkActions.json';
import campaign from './campaign.json';
import cannedMgmt from './cannedMgmt.json';
import chatlist from './chatlist.json';
+import companies from './companies.json';
+import components from './components.json';
import contact from './contact.json';
import contactFilters from './contactFilters.json';
import conversation from './conversation.json';
import csatMgmt from './csatMgmt.json';
+import customRole from './customRole.json';
+import datePicker from './datePicker.json';
import emoji from './emoji.json';
+import general from './general.json';
import generalSettings from './generalSettings.json';
import helpCenter from './helpCenter.json';
+import inbox from './inbox.json';
import inboxMgmt from './inboxMgmt.json';
import integrationApps from './integrationApps.json';
import integrations from './integrations.json';
import labelsMgmt from './labelsMgmt.json';
import login from './login.json';
import macros from './macros.json';
+import mfa from './mfa.json';
+import onboarding from './onboarding.json';
import report from './report.json';
import resetPassword from './resetPassword.json';
import search from './search.json';
import setNewPassword from './setNewPassword.json';
import settings from './settings.json';
import signup from './signup.json';
+import sla from './sla.json';
import teamsSettings from './teamsSettings.json';
import whatsappTemplates from './whatsappTemplates.json';
@@ -41,25 +50,34 @@ export default {
...campaign,
...cannedMgmt,
...chatlist,
+ ...companies,
+ ...components,
...contact,
...contactFilters,
...conversation,
...csatMgmt,
+ ...customRole,
+ ...datePicker,
...emoji,
+ ...general,
...generalSettings,
...helpCenter,
+ ...inbox,
...inboxMgmt,
...integrationApps,
...integrations,
...labelsMgmt,
...login,
...macros,
+ ...mfa,
+ ...onboarding,
...report,
...resetPassword,
...search,
...setNewPassword,
...settings,
...signup,
+ ...sla,
...teamsSettings,
...whatsappTemplates,
};
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
index d3fd14bd1..a0ef0b0e0 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrationApps.json
@@ -1,62 +1,67 @@
{
"INTEGRATION_APPS": {
- "FETCHING": "Procurando integrações",
- "NO_HOOK_CONFIGURED": "Não há integrações %{integrationId} configuradas nesta conta.",
+ "FETCHING": "A procurar integrações",
+ "NO_HOOK_CONFIGURED": "Não há integrações {integrationId} configuradas nesta conta.",
"HEADER": "Aplicações",
+ "COUNT": "{n} integration | {n} integrations",
+ "SEARCH_PLACEHOLDER": "Search...",
+ "NO_RESULTS": "No results found matching your search",
"STATUS": {
"ENABLED": "Ativado",
- "DISABLED": "Desabilitado"
+ "DISABLED": "Desativado"
},
"CONFIGURE": "Configurar",
"ADD_BUTTON": "Adicionar um novo hook",
"DELETE": {
"TITLE": {
- "INBOX": "Confirmar a eliminação",
- "ACCOUNT": "Desligar"
+ "INBOX": "Confirmar exclusão",
+ "ACCOUNT": "Desconectar"
},
"MESSAGE": {
- "INBOX": "Tem certeza que deseja excluir?",
+ "INBOX": "Tem a certeza que pretende excluir?",
"ACCOUNT": "Tem certeza que deseja desligar?"
},
"CONFIRM_BUTTON_TEXT": {
"INBOX": "Sim, excluir",
- "ACCOUNT": "Sim, Desligar"
+ "ACCOUNT": "Sim, desconectar"
},
- "CANCEL_BUTTON_TEXT": "cancelar",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
- "SUCCESS_MESSAGE": "Hook eliminado com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "SUCCESS_MESSAGE": "Hook excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
"LIST": {
- "FETCHING": "Procurando Hooks de integração",
- "INBOX": "Caixa de Entrada",
+ "FETCHING": "A procurar hooks de integração",
+ "INBOX": "Caixa de entrada",
+ "ACTIONS": "Ações",
"DELETE": {
- "BUTTON_TEXT": "excluir"
+ "BUTTON_TEXT": "Excluir"
}
},
"ADD": {
"FORM": {
"INBOX": {
- "LABEL": "Escolher caixa de entrada",
- "PLACEHOLDER": "Escolher caixa de entrada"
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada"
},
"SUBMIT": "Criar",
- "CANCEL": "cancelar"
+ "VALIDATING_OPENAI": "Validating with OpenAI...",
+ "CANCEL": "Cancelar"
},
"API": {
"SUCCESS_MESSAGE": "Hook de integração adicionado com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Ligar"
+ "BUTTON_TEXT": "Conectar"
},
"DISCONNECT": {
- "BUTTON_TEXT": "Desligar"
+ "BUTTON_TEXT": "Desconectar"
},
"SIDEBAR_DESCRIPTION": {
- "DIALOGFLOW": "Dialogflow é uma plataforma que facilita o planeamento e integração através de interface de conversação de utilizador numa aplicação móvel, web, bot, sistema de resposta de voz interativo, etc.
A integração do fluxo de diálogo com o %{installationName} permite-lhe configurar um bot de Dialogflow nas suas caixas de entrada, para que ele trate inicialmente das consultas dos seus contactos e só depois as entregue aos seus agentes se for necessário. O fluxo de diálogo pode ser utilizado para qualificar os pedidos de contacto, reduzir a carga de trabalho dos agentes, oferecer respostas frequentes, etc.
Para adicionar uma conta do Dialogflow à sua conta Chatwoot só precisa de ter o serviço ativo no Google e partilhar as suas credenciais. Por favor, consulte a documentação do Dialogflow para obter mais informações."
+ "DIALOGFLOW": "Dialogflow is a natural language processing platform for building conversational interfaces. Integrating it with {installationName} lets bots handle queries first and transfer them to agents when needed. It helps qualify leads and reduce agent workload by answering FAQs. To add Dialogflow, create a Service Account in Google Console and share the credentials. Refer to the docs for details"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/integrations.json b/app/javascript/dashboard/i18n/locale/pt/integrations.json
index eb53fc9e8..3db1d60af 100644
--- a/app/javascript/dashboard/i18n/locale/pt/integrations.json
+++ b/app/javascript/dashboard/i18n/locale/pt/integrations.json
@@ -1,120 +1,189 @@
{
"INTEGRATION_SETTINGS": {
+ "SHOPIFY": {
+ "HEADER": "Shopify",
+ "DELETE": {
+ "TITLE": "Delete Shopify Integration",
+ "MESSAGE": "Are you sure you want to delete the Shopify integration?"
+ },
+ "STORE_URL": {
+ "TITLE": "Connect Shopify Store",
+ "LABEL": "Store URL",
+ "PLACEHOLDER": "your-store.myshopify.com",
+ "HELP": "Enter your Shopify store's myshopify.com URL",
+ "CANCEL": "Cancelar",
+ "SUBMIT": "Connect Store"
+ },
+ "ERROR": "There was an error connecting to Shopify. Please try again or contact support if the issue persists."
+ },
"HEADER": "Integrações",
+ "DESCRIPTION": "O Chatwoot integra-se com várias ferramentas e serviços para melhorar a eficiência da sua equipa. Explore a lista abaixo para configurar as suas aplicações favoritas. ",
+ "LEARN_MORE": "Saber mais sobre integrações",
+ "LOADING": "A procurar integrações",
+ "SEARCH_PLACEHOLDER": "Search integrations...",
+ "NO_RESULTS": "No integrations found matching your search",
+ "CAPTAIN": {
+ "DISABLED": "Capitão não está ativo na sua conta.",
+ "CLICK_HERE_TO_CONFIGURE": "Clique aqui para configurar",
+ "LOADING_CONSOLE": "A carregar a consola capitão...",
+ "FAILED_TO_LOAD_CONSOLE": "Falha ao carregar consola capitão. Por favor, atualize e tente novamente."
+ },
"WEBHOOK": {
- "SUBSCRIBED_EVENTS": "Eventos Inscritos",
+ "SUBSCRIBED_EVENTS": "Eventos subscritos",
+ "LEARN_MORE": "Learn more about webhooks",
+ "SECRET": {
+ "LABEL": "Secret",
+ "COPY": "Copy secret to clipboard",
+ "COPY_SUCCESS": "Secret copied to clipboard",
+ "TOGGLE": "Toggle secret visibility",
+ "CREATED_DESC": "Your webhook has been created. Use the secret below to verify webhook signatures. Please copy it now — you can also find it later in the webhook edit form.",
+ "DONE": "Done"
+ },
+ "COUNT": "{n} webhook | {n} webhooks",
+ "SEARCH_PLACEHOLDER": "Search webhooks...",
+ "NO_RESULTS": "No webhooks found matching your search",
"FORM": {
- "CANCEL": "cancelar",
- "DESC": "Eventos Webhook fornecem informações em tempo real sobre o que está acontecendo em sua conta Chatwoot. Por favor, insira uma URL válida para configurar uma callback.",
+ "CANCEL": "Cancelar",
+ "DESC": "Os eventos Webhook fornecem informações em tempo real sobre o que está a acontecer na sua conta Chatwoot. Por favor, insira um URL válido para configurar uma chamada de retorno.",
"SUBSCRIPTIONS": {
"LABEL": "Eventos",
"EVENTS": {
- "CONVERSATION_CREATED": "Conversa Criada",
- "CONVERSATION_STATUS_CHANGED": "Status da Conversa Alterado",
- "CONVERSATION_UPDATED": "Conversa Atualizada",
+ "CONVERSATION_CREATED": "Conversa criada",
+ "CONVERSATION_STATUS_CHANGED": "Estado da conversa alterado",
+ "CONVERSATION_UPDATED": "Conversa atualizada",
"MESSAGE_CREATED": "Mensagem criada",
"MESSAGE_UPDATED": "Mensagem atualizada",
- "WEBWIDGET_TRIGGERED": "Widget de chat aberto pelo utilizador",
+ "WEBWIDGET_TRIGGERED": "Widget de live-chat aberto pelo utilizador",
"CONTACT_CREATED": "Contacto criado",
- "CONTACT_UPDATED": "Contato atualizado"
+ "CONTACT_UPDATED": "Contacto atualizado",
+ "CONVERSATION_TYPING_ON": "Conversa: a escrever",
+ "CONVERSATION_TYPING_OFF": "Conversa: a escrever desligada",
+ "INBOX_UPDATED": "Inbox updated"
}
},
+ "NAME": {
+ "LABEL": "Webhook Name",
+ "PLACEHOLDER": "Enter the name of the webhook"
+ },
"END_POINT": {
- "LABEL": "URL do Webhook",
- "PLACEHOLDER": "Exemplo: https://example/api/webhook",
- "ERROR": "Por favor, insira uma URL válida"
+ "LABEL": "URL do webhook",
+ "PLACEHOLDER": "Example: {webhookExampleURL}",
+ "ERROR": "Por favor, insira um URL válido"
},
"EDIT_SUBMIT": "Atualizar webhook",
"ADD_SUBMIT": "Criar webhook"
},
"TITLE": "Webhook",
"CONFIGURE": "Configurar",
- "HEADER": "Configurações de webhook",
+ "HEADER": "Configurações do webhook",
"HEADER_BTN_TXT": "Adicionar novo webhook",
- "LOADING": "Buscando webhooks anexados",
- "SEARCH_404": "Não existem itens correspondentes a esta consulta",
- "SIDEBAR_TXT": "Webhooks
Webhooks são chamadas HTTP que podem ser definidas para cada conta. Eles são acionados por eventos como criação de mensagens no Chatwoot. Você pode criar mais de um webhook para esta conta.
Para criar um webhook, clique no botão Adicionar novo webhook . Você também pode remover qualquer webhook existente clicando no botão Excluir.
",
+ "LOADING": "A procurar webhooks anexados",
+ "SEARCH_404": "Não existem itens correspondentes a esta pesquisa",
+ "SIDEBAR_TXT": "Webhooks
Webhooks são chamadas HTTP que podem ser definidas para cada conta. São acionados por eventos como a criação de mensagens no Chatwoot. Pode criar mais de um webhook para esta conta.
Para criar um webhook, clique no botão Adicionar novo webhook. Também pode remover qualquer webhook existente, clicando no botão 'Excluir'.
",
"LIST": {
"404": "Não há webhooks configurados para esta conta.",
- "TITLE": "Gerenciar webhooks",
- "TABLE_HEADER": [
- "endpoint do webhook",
- "Ações."
- ]
+ "TITLE": "Gerir webhooks",
+ "TABLE_HEADER": {
+ "WEBHOOK_ENDPOINT": "Endpoint do webhook",
+ "ACTIONS": "Ações"
+ }
},
"EDIT": {
- "BUTTON_TEXT": "Alterar",
- "TITLE": "Editar Webhooks",
+ "BUTTON_TEXT": "Editar",
+ "TITLE": "Editar webhook",
"API": {
- "SUCCESS_MESSAGE": "Configuração de webhook atualizada com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "SUCCESS_MESSAGE": "Configuração do webhook atualizada com sucesso",
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
"ADD": {
- "CANCEL": "cancelar",
+ "CANCEL": "Cancelar",
"TITLE": "Adicionar novo webhook",
"API": {
"SUCCESS_MESSAGE": "Configuração de webhook adicionada com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
"SUCCESS_MESSAGE": "Webhook excluído com sucesso",
- "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor, tente novamente mais tarde"
},
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir o webhoook? (%{webhookURL})",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir o webhook? ({webhookURL})",
"YES": "Sim, excluir ",
- "NO": "Não, mantenha isso"
+ "NO": "Não, manter"
}
}
},
"SLACK": {
- "DELETE": "excluir",
+ "HEADER": "Slack",
+ "DELETE": "Excluir",
"DELETE_CONFIRMATION": {
- "TITLE": "Apagar a integração",
- "MESSAGE": "Tem certeza que pretende excluir a integração? Isso resultará na perda de acesso a conversas no seu espaço de trabalho Slack."
+ "TITLE": "Excluir a integração",
+ "MESSAGE": "Tem a certeza que pretende excluir a integração? Perderá o acesso às conversas no seu espaço de trabalho Slack."
},
"HELP_TEXT": {
- "TITLE": "Utilizar a integração Slack",
- "BODY": "
Chatwoot irá agora sincronizar todas as mensagens recebidas através do canal de conversas com clientes dentro do seu local de trabalho do Slack.
A resposta a uma mensagem nas conversas com o cliente no seu canal de slack irá criar uma resposta para o cliente através do Chatwoot.
Comece as respostas com nota: para criar notas privadas em vez de respostas.
Se o remetente do slack tiver um perfil de agente no Chatwoot com o mesmo e-mail, as respostas serão associadas de acordo com isso.
Quando a pessoa que responde não tiver um perfil de agente associado, as respostas serão dadas a partir do perfil do bot.
",
+ "TITLE": "Como usar a integração da Slack?",
+ "BODY": "With this integration, all of your incoming conversations will be synced to the ***{selectedChannelName}*** channel in your Slack workspace. You can manage all your customer conversations right within the channel and never miss a message.\n\nHere are the main features of the integration:\n\n**Respond to conversations from within Slack:** To respond to a conversation in the ***{selectedChannelName}*** Slack channel, simply type out your message and send it as a thread. This will create a response back to the customer through Chatwoot. It's that simple!\n\n **Create private notes:** If you want to create private notes instead of replies, start your message with ***`note:`***. This ensures that your message is kept private and won't be visible to the customer.\n\n**Associate an agent profile:** If the person who replied on Slack has an agent profile in Chatwoot under the same email, the replies will be associated with that agent profile automatically. This means you can easily track who said what and when. On the other hand, when the replier doesn't have an associated agent profile, the replies will appear from the bot profile to the customer.",
"SELECTED": "selecionado"
},
"SELECT_CHANNEL": {
- "OPTION_LABEL": "Escolher um canal",
- "UPDATE": "Atualização",
- "BUTTON_TEXT": "Ligar canal",
- "DESCRIPTION": "O seu espaço de trabalho Slack está agora ligado com o Chatwoot. No entanto, a integração está, de momento, inativa. Para ativar a integração e ligar um canal ao Chatwoot, por favor, clique no botão abaixo.\n\n**Nota:** Se está a tentar ligar-se a um canal privado, adicione o aplicativo Chatwoot ao canal do Slack antes de prosseguir com esta etapa.",
+ "OPTION_LABEL": "Selecionar um canal",
+ "UPDATE": "Atualizar",
+ "BUTTON_TEXT": "Conectar canal",
+ "DESCRIPTION": "O seu espaço de trabalho Slack está agora conectado ao Chatwoot. No entanto, a integração está, de momento, inativa. Para ativar a integração e conectar um canal ao Chatwoot, por favor, clique no botão abaixo.\n\n**Nota:** Se está a tentar conectar-se a um canal privado, adicione a aplicação Chatwoot ao canal da Slack antes de prosseguir com esta etapa.",
"ATTENTION_REQUIRED": "Atenção necessária",
- "EXPIRED": "A sua integração com o Slack expirou. Para continuar a receber mensagens no Slack, elimine a integração e faça a ligação ao seu espaço de trabalho novamente."
+ "EXPIRED": "A sua integração com a Slack expirou. Para continuar a receber mensagens na Slack, elimine a integração e conecte o seu espaço de trabalho novamente."
},
"UPDATE_ERROR": "Ocorreu um erro ao atualizar a integração, por favor, tente novamente",
- "UPDATE_SUCCESS": "O canal estabelecido corretamente",
- "FAILED_TO_FETCH_CHANNELS": "Ocorreu um erro ao obter os canais do Slack, por favor, tente novamente"
+ "UPDATE_SUCCESS": "O canal foi conectado com sucesso",
+ "FAILED_TO_FETCH_CHANNELS": "Ocorreu um erro ao obter os canais da Slack, por favor, tente novamente"
},
"DYTE": {
"CLICK_HERE_TO_JOIN": "Clique aqui para participar",
"LEAVE_THE_ROOM": "Deixar a sala",
"START_VIDEO_CALL_HELP_TEXT": "Iniciar uma nova chamada de vídeo com o cliente",
- "JOIN_ERROR": "Houve um erro ao ingressar na chamada! Por favor, tente novamente",
- "CREATE_ERROR": "Ocorreu um erro ao criar o link da reunião, por favor tente novamente"
+ "JOIN_ERROR": "Houve um erro ao entrar na chamada, por favor, tente novamente",
+ "CREATE_ERROR": "Ocorreu um erro ao criar o link da reunião, por favor, tente novamente"
},
"OPEN_AI": {
- "AI_ASSIST": "Assistente IA",
- "WITH_AI": " %{option} com IA ",
+ "AI_ASSIST": "Assistente de IA",
+ "WITH_AI": " {option} with AI ",
"OPTIONS": {
- "REPLY_SUGGESTION": "Sugestão de Resposta",
+ "REPLY_SUGGESTION": "Sugestão de resposta",
"SUMMARIZE": "Sumário",
- "REPHRASE": "Melhorar Escrita",
- "FIX_SPELLING_GRAMMAR": "Corrigir Ortografia e Gramática",
+ "REPHRASE": "Melhorar escrita",
+ "FIX_SPELLING_GRAMMAR": "Corrigir ortografia e gramática",
"SHORTEN": "Encurtar",
"EXPAND": "Expandir",
- "MAKE_FRIENDLY": "Altere o tom de mensagem para amigável",
+ "MAKE_FRIENDLY": "Alterar o tom de mensagem para amigável",
"MAKE_FORMAL": "Usar tom formal",
- "SIMPLIFY": "Simplificar"
+ "SIMPLIFY": "Simplificar",
+ "CONFIDENT": "Use confident tone",
+ "PROFESSIONAL": "Use professional tone",
+ "CASUAL": "Use casual tone",
+ "STRAIGHTFORWARD": "Use straightforward tone"
+ },
+ "REPLY_OPTIONS": {
+ "IMPROVE_REPLY": "Improve reply",
+ "IMPROVE_REPLY_SELECTION": "Improve the selection",
+ "CHANGE_TONE": {
+ "TITLE": "Change tone",
+ "OPTIONS": {
+ "PROFESSIONAL": "Profissional",
+ "CASUAL": "Casual",
+ "STRAIGHTFORWARD": "Straightforward",
+ "CONFIDENT": "Confident",
+ "FRIENDLY": "Amigável"
+ }
+ },
+ "GRAMMAR": "Fix grammar & spelling",
+ "SUGGESTION": "Suggest a reply",
+ "SUMMARIZE": "Summarize the conversation",
+ "ASK_COPILOT": "Ask Copilot"
},
"ASSISTANCE_MODAL": {
"DRAFT_TITLE": "Conteúdo do rascunho",
@@ -122,25 +191,25 @@
"AI_WRITING": "AI está a escrever",
"BUTTONS": {
"APPLY": "Utilizar esta sugestão",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
}
},
"CTA_MODAL": {
"TITLE": "Integrar com OpenAI",
- "DESC": "Incorporar recursos IA avançados no seu painel utilizando modelos GPT do OpenAI. Para começar, insira a chave de API da sua conta OpenAI.",
- "KEY_PLACEHOLDER": "Insira a chave de API da sua conta OpenAI",
+ "DESC": "Incorporar recursos IA avançados no seu dashboard utilizando modelos OpenAI GPT. Para começar, insira a chave da API da sua conta OpenAI.",
+ "KEY_PLACEHOLDER": "Insira a chave da API da sua conta OpenAI",
"BUTTONS": {
"NEED_HELP": "Precisa de ajuda?",
"DISMISS": "Descartar",
- "FINISH": "Concluir a Configuração"
+ "FINISH": "Concluir a configuração"
},
"DISMISS_MESSAGE": "Pode configurar a integração do OpenAI mais tarde, quando lhe for conveniente.",
"SUCCESS_MESSAGE": "Integração OpenAI configurada com sucesso"
},
"TITLE": "Melhore com IA",
- "SUMMARY_TITLE": "Resumo com AI",
+ "SUMMARY_TITLE": "Resumo com IA",
"REPLY_TITLE": "Responder sugestão com IA",
- "SUBTITLE": "Uma resposta melhorada será gerada usando IA, com base no seu rascunho actual.",
+ "SUBTITLE": "Uma resposta melhorada será gerada usando IA, com base no seu rascunho atual.",
"TONE": {
"TITLE": "Tom",
"OPTIONS": {
@@ -151,63 +220,884 @@
"BUTTONS": {
"GENERATE": "Gerar",
"GENERATING": "A gerar...",
- "CANCEL": "cancelar"
+ "CANCEL": "Cancelar"
},
- "GENERATE_ERROR": "There was an error processing the content, please try again"
+ "GENERATE_ERROR": "Ocorreu um erro ao processar o conteúdo, por favor, verifique a sua chave da API OpenAI e tente novamente"
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
"SUCCESS_MESSAGE": "Integração removida com sucesso"
}
},
"CONNECT": {
- "BUTTON_TEXT": "Ligar"
+ "BUTTON_TEXT": "Conectar"
},
"DASHBOARD_APPS": {
- "TITLE": "Dashboard Apps",
- "HEADER_BTN_TXT": "Adicionar nova dashboard app",
- "SIDEBAR_TXT": "Dashboard Apps
Dashboard Apps permite que as organizações incorporem uma aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou seu histórico de pagamentos.
Quando a sua aplicação é incorporada usando o dashboard do Chatwoot, a sua aplicação irá obter o contexto da conversa e do contato como um evento de janela. Implemente um listener para o evento de mensagem na sua página para receber o contexto.
Para adicionar um novo aplicativo ao dashboard, clique no botão 'Adicionar nova dashboard app'.
",
- "DESCRIPTION": "Dashboard Apps permite que as organizações incorporem um aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou seu histórico de pagamentos.",
+ "TITLE": "Apps de dashboard",
+ "HEADER_BTN_TXT": "Adicionar nova app ao dashboard",
+ "SIDEBAR_TXT": "Apps de dashboard
Apps de dashboard permitem que as organizações incorporem uma aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou o seu histórico de pagamentos.
Quando a sua aplicação é incorporada usando o dashboard do Chatwoot, a sua aplicação irá obter o contexto da conversa e do contato como um evento de janela. Implemente um listener para o evento de mensagem na sua página para receber o contexto.
Para adicionar uma nova app ao dashboard, clique no botão 'Adicionar nova app ao dashboard'.
",
+ "DESCRIPTION": "Apps de dashboard permitem que as organizações incorporem um aplicação dentro do dashboard do Chatwoot para fornecer o contexto aos agentes de suporte ao cliente. Este recurso permite-lhe criar uma aplicação independente e incorporá-la dentro do dashboard para fornecer informações de utilizador, os seus pedidos ou o seu histórico de pagamentos.",
+ "LEARN_MORE": "Saber mais sobre apps de dashboard",
+ "COUNT": "{n} dashboard app | {n} dashboard apps",
+ "SEARCH_PLACEHOLDER": "Search dashboard apps...",
+ "NO_RESULTS": "No dashboard apps found matching your search",
"LIST": {
- "404": "Não há dashboard apps configuradas nesta conta.",
- "LOADING": "A obter dashboard apps...",
- "TABLE_HEADER": [
- "Nome:",
- "Endpoint"
- ],
+ "404": "Não há apps de dashboard configuradas nesta conta.",
+ "LOADING": "A obter apps de dashboard...",
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "ENDPOINT": "Endpoint",
+ "ACTIONS": "Ações"
+ },
"EDIT_TOOLTIP": "Editar app",
"DELETE_TOOLTIP": "Apagar app"
},
"FORM": {
- "TITLE_LABEL": "Nome:",
- "TITLE_PLACEHOLDER": "Escreva o nome para a sua app",
- "TITLE_ERROR": "É necessário um nome para a app do dashboard",
+ "TITLE_LABEL": "Nome",
+ "TITLE_PLACEHOLDER": "Digite um nome para a sua app de dashboard",
+ "TITLE_ERROR": "É necessário um nome para a app de dashboard",
"URL_LABEL": "Endpoint",
- "URL_PLACEHOLDER": "Insira a URL do endpoint onde a sua app está hospedada",
- "URL_ERROR": "É necessária uma URL válida"
+ "URL_PLACEHOLDER": "Insira o URL do endpoint ao qual a sua app está agregada",
+ "URL_ERROR": "É necessário um URL válido"
},
"CREATE": {
- "HEADER": "Adicionar nova dashboard app",
- "FORM_SUBMIT": "submeter",
- "FORM_CANCEL": "cancelar",
- "API_SUCCESS": "App dashboard configurada com sucesso",
+ "HEADER": "Adicionar nova app de dashboard",
+ "FORM_SUBMIT": "Submeter",
+ "FORM_CANCEL": "Cancelar",
+ "API_SUCCESS": "App de dashboard configurada com sucesso",
"API_ERROR": "Não foi possível criar a app. Por favor, tente novamente mais tarde"
},
"UPDATE": {
- "HEADER": "Editar app dashboard",
- "FORM_SUBMIT": "Atualização",
- "FORM_CANCEL": "cancelar",
- "API_SUCCESS": "Dashboard app atualizada com sucesso",
+ "HEADER": "Editar app de dashboard",
+ "FORM_SUBMIT": "Atualizar",
+ "FORM_CANCEL": "Cancelar",
+ "API_SUCCESS": "App de dashboard atualizada com sucesso",
"API_ERROR": "Não foi possível atualizar as configurações da app. Por favor, tente novamente mais tarde"
},
"DELETE": {
- "CONFIRM_YES": "Sim, apagar",
+ "CONFIRM_YES": "Sim, excluir",
"CONFIRM_NO": "Não, manter",
- "TITLE": "Confirmar a eliminação",
- "MESSAGE": "Tem certeza que deseja excluir a app - %{appName}?",
- "API_SUCCESS": "App dashboard apagada",
- "API_ERROR": "Não foi possível apagar a app. Por favor, tente novamente mais tarde"
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir a app - {appName}?",
+ "API_SUCCESS": "App de dashboard excluída com sucesso",
+ "API_ERROR": "Não foi possível excluir a app. Por favor, tente novamente mais tarde"
+ }
+ },
+ "LINEAR": {
+ "HEADER": "Linear",
+ "ADD_OR_LINK_BUTTON": "Criar/Vincular problema linear",
+ "LOADING": "A procurar problemas lineares...",
+ "LOADING_ERROR": "Houve um erro ao procurar problemas lineares, por favor, tente novamente",
+ "CREATE": "Criar",
+ "LINK": {
+ "SEARCH": "Pesquisar problemas",
+ "SELECT": "Selecionar problema",
+ "TITLE": "Endereço",
+ "EMPTY_LIST": "Nenhum problema linear encontrado",
+ "LOADING": "A carregar",
+ "ERROR": "Houve um erro ao procurar problemas lineares, por favor, tente novamente",
+ "LINK_SUCCESS": "Problema vinculado com sucesso",
+ "LINK_ERROR": "Houve um erro ao vincular o problema, por favor, tente novamente",
+ "LINK_TITLE": "Conversation (#{conversationId}) with {name}"
+ },
+ "ADD_OR_LINK": {
+ "TITLE": "Criar/Vincular problema linear",
+ "DESCRIPTION": "Crie problemas lineares das conversas, ou vincule os existentes para um rastreamento sem interrupções.",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Inserir título",
+ "REQUIRED_ERROR": "Título obrigatório"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Inserir descrição"
+ },
+ "TEAM": {
+ "LABEL": "Equipa",
+ "PLACEHOLDER": "Selecionar equipa",
+ "SEARCH": "Procurar equipa",
+ "REQUIRED_ERROR": "Equipa obrigatória"
+ },
+ "ASSIGNEE": {
+ "LABEL": "Atribuído",
+ "PLACEHOLDER": "Selecionar responsável",
+ "SEARCH": "Procurar responsável"
+ },
+ "PRIORITY": {
+ "LABEL": "Prioridade",
+ "PLACEHOLDER": "Selecionar prioridade",
+ "SEARCH": "Procurar prioridade"
+ },
+ "LABEL": {
+ "LABEL": "Etiqueta",
+ "PLACEHOLDER": "Selecionar etiqueta",
+ "SEARCH": "Procurar etiqueta"
+ },
+ "STATUS": {
+ "LABEL": "Estado",
+ "PLACEHOLDER": "Selecionar estado",
+ "SEARCH": "Procurar estado"
+ },
+ "PROJECT": {
+ "LABEL": "Projeto",
+ "PLACEHOLDER": "Selecionar projeto",
+ "SEARCH": "Procurar projeto"
+ }
+ },
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar",
+ "CREATE_SUCCESS": "Problema criado com sucesso",
+ "CREATE_ERROR": "Houve um erro ao criar o problema, por favor, tente novamente",
+ "LOADING_TEAM_ERROR": "Houve um erro ao obter as equipas, por favor, tente novamente",
+ "LOADING_TEAM_ENTITIES_ERROR": "Houve um erro ao obter as entidades das equipas, por favor, tente novamente"
+ },
+ "ISSUE": {
+ "STATUS": "Estado",
+ "PRIORITY": "Prioridade",
+ "ASSIGNEE": "Atribuído",
+ "LABELS": "Etiquetas",
+ "CREATED_AT": "Created at {createdAt}"
+ },
+ "UNLINK": {
+ "TITLE": "Desvincular",
+ "SUCCESS": "Problema desvinculado com sucesso",
+ "ERROR": "Houve um erro ao desvincular o problema, por favor, tente novamente"
+ },
+ "NO_LINKED_ISSUES": "Sem casos associados",
+ "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": "Ligar ao Linear",
+ "AGENT_DESCRIPTION": "O espaço de trabalho linear não está ligado. Solicite ao administrador que ligue um espaço de trabalho para usar esta integração.",
+ "DESCRIPTION": "O workspace Linear não está ligado. Clique no botão abaixo para ligar o seu workspace para utilizar esta integração.",
+ "BUTTON_TEXT": "Ligar workspace Linear"
+ }
+ },
+ "NOTION": {
+ "HEADER": "Noção",
+ "DELETE": {
+ "TITLE": "Tem a certeza que pretende apagar a integração Notion?",
+ "MESSAGE": "Apagar esta integração removerá o acesso ao seu workspace Notion e encerrará todas as funcionalidades relacionadas.",
+ "CONFIRM": "Sim, excluir",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "CAPTAIN": {
+ "NAME": "Captain",
+ "HEADER_KNOW_MORE": "Saiba mais",
+ "ASSISTANT_SWITCHER": {
+ "ASSISTANTS": "Assistentes",
+ "SWITCH_ASSISTANT": "Alternar entre assistentes",
+ "NEW_ASSISTANT": "Criar Assistente",
+ "EMPTY_LIST": "Nenhum assistente encontrado, por favor crie um para começar"
+ },
+ "COPILOT": {
+ "TITLE": "Copilot",
+ "TRY_THESE_PROMPTS": "Try these prompts",
+ "PANEL_TITLE": "Comece com o Copilot",
+ "KICK_OFF_MESSAGE": "Precisa de um resumo rápido, quer consultar conversas anteriores ou redigir uma resposta melhor? O Copilot está aqui para acelerar o processo.",
+ "SEND_MESSAGE": "Enviar mensagem...",
+ "EMPTY_MESSAGE": "Ocorreu um erro ao gerar a resposta. Por favor, tente novamente.",
+ "LOADER": "Captain está pensando",
+ "YOU": "Você",
+ "USE": "Usar isto",
+ "RESET": "Resetar",
+ "SHOW_STEPS": "Mostrar passos",
+ "SELECT_ASSISTANT": "Selecionar 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 questão do cliente e redija uma resposta que aborde eficazmente as suas preocupações ou perguntas. Certifique-se de que a resposta é clara, concisa e fornece informações úteis."
+ },
+ "RATE": {
+ "LABEL": "Avalie esta conversa",
+ "CONTENT": "Reveja a conversa para ver o quanto foram satisfeitas as necessidades do cliente. Compartilhe uma classificação até 5 com base no tom, clareza e eficácia."
+ },
+ "HIGH_PRIORITY": {
+ "LABEL": "Conversas de alta prioridade",
+ "CONTENT": "Dê-me um resumo de todas as conversas abertas de alta prioridade. Inclua o ID da conversa, nome do cliente (se disponível), conteúdo da última mensagem e agente atribuído. Agrupe por estado, se relevante."
+ },
+ "LIST_CONTACTS": {
+ "LABEL": "Listar contactos",
+ "CONTENT": "Mostre-me a lista dos 10 principais contactos. Inclua nome, email ou número de telefone (se disponível), última vez visto, etiquetas (se houver)."
+ }
+ }
+ },
+ "PLAYGROUND": {
+ "USER": "Você",
+ "ASSISTANT": "Assistente",
+ "MESSAGE_PLACEHOLDER": "Escreva a sua mensagem...",
+ "HEADER": "Área de testes",
+ "DESCRIPTION": "Use este playground para enviar mensagens para o seu assistente e verificar se ele responde com precisão, rápido e no tom esperado.",
+ "CREDIT_NOTE": "As mensagens aqui enviadas vão contar para os créditos do seu Captain."
+ },
+ "PAYWALL": {
+ "TITLE": "Faça upgrade para usar o Captain AI",
+ "AVAILABLE_ON": "Captain não está disponível no plano gratuito.",
+ "UPGRADE_PROMPT": "Faça upgrade do seu plano para ter acesso aos nossos assistentes, copiloto e mais.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain AI está disponível apenas nos planos Enterprise.",
+ "UPGRADE_PROMPT": "Faça upgrade do seu plano para ter acesso aos nossos assistentes, copiloto e mais.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ },
+ "BANNER": {
+ "RESPONSES": "Você usou mais de 80% do seu limite de respostas. Para continuar usando o Captain AI, por favor faça upgrade.",
+ "DOCUMENTS": "Limite de documentos atingido. Faça upgrade para continuar utilizando o Captain AI."
+ },
+ "FORM": {
+ "CANCEL": "Cancelar",
+ "CREATE": "Criar",
+ "EDIT": "Atualização"
+ },
+ "ASSISTANTS": {
+ "HEADER": "Assistants",
+ "NO_ASSISTANTS_AVAILABLE": "Não há agentes disponíveis na sua conta.",
+ "ADD_NEW": "Create a new assistant",
+ "DELETE": {
+ "TITLE": "Are you sure to delete the assistant?",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "The assistant has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the assistant, please try again."
+ },
+ "FORM_DESCRIPTION": "Fill out the details below to name your assistant, describe its purpose, and specify the product it will support.",
+ "CREATE": {
+ "TITLE": "Create an assistant",
+ "SUCCESS_MESSAGE": "The assistant has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the assistant, please try again."
+ },
+ "FORM": {
+ "UPDATE": "Atualização",
+ "SECTIONS": {
+ "BASIC_INFO": "Informação básica",
+ "SYSTEM_MESSAGES": "Mensagens do Sistema",
+ "INSTRUCTIONS": "Instruções",
+ "FEATURES": "Características",
+ "TOOLS": "Ferramentas "
+ },
+ "NAME": {
+ "LABEL": "Nome:",
+ "PLACEHOLDER": "Escreva 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",
+ "PLACEHOLDER": "Escreva a descrição do assistente",
+ "ERROR": "A descrição é obrigatória"
+ },
+ "PRODUCT_NAME": {
+ "LABEL": "Product Name",
+ "PLACEHOLDER": "Escreva o nome do produto",
+ "ERROR": "O nome do produto é obrigatório"
+ },
+ "WELCOME_MESSAGE": {
+ "LABEL": "Mensagem de Boas-vindas",
+ "PLACEHOLDER": "Escreva a mensagem de boas-vindas"
+ },
+ "HANDOFF_MESSAGE": {
+ "LABEL": "Mensagem de despedida",
+ "PLACEHOLDER": "Escreva a mensagem de despedida"
+ },
+ "RESOLUTION_MESSAGE": {
+ "LABEL": "Mensagem de resolução",
+ "PLACEHOLDER": "Escreva a mensagem de resolução"
+ },
+ "INSTRUCTIONS": {
+ "LABEL": "Instruções",
+ "PLACEHOLDER": "Escreva as instruções para o assistente"
+ },
+ "FEATURES": {
+ "TITLE": "Características",
+ "ALLOW_CONVERSATION_FAQS": "Generate FAQs from resolved conversations",
+ "ALLOW_MEMORIES": "Capture key details as memories from customer interactions.",
+ "ALLOW_CITATIONS": "Include source citations in responses",
+ "ALLOW_CONTACT_ATTRIBUTES": "Allow access to contact information"
+ }
+ },
+ "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.",
+ "NOT_FOUND": "Não foi possível encontrar o assistente. Por favor, tente novamente."
+ },
+ "SETTINGS": {
+ "HEADER": "Configurações",
+ "BASIC_SETTINGS": {
+ "TITLE": "Basic settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "SYSTEM_SETTINGS": {
+ "TITLE": "System settings",
+ "DESCRIPTION": "Customize what the assistant says when ending a conversation or transferring to a human."
+ },
+ "CONTROL_ITEMS": {
+ "TITLE": "The Fun Stuff",
+ "DESCRIPTION": "Add more control to the assistant. (a bit more visual like a story : Query guardrail → scenarios → output) Nudges user to actually utilise these.",
+ "OPTIONS": {
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic."
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?"
+ }
+ }
+ },
+ "DELETE": {
+ "TITLE": "Delete Assistant",
+ "DESCRIPTION": "This action is permanent. Deleting this assistant will remove it from all connected inboxes and permanently erase all generated knowledge.",
+ "BUTTON_TEXT": "Delete {assistantName}"
+ }
+ },
+ "OPTIONS": {
+ "EDIT_ASSISTANT": "Edit Assistant",
+ "DELETE_ASSISTANT": "Delete Assistant",
+ "VIEW_CONNECTED_INBOXES": "View connected inboxes"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No assistants available",
+ "SUBTITLE": "Create an assistant to provide quick and accurate responses to your users. It can learn from your help articles and past conversations.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ },
+ "GUARDRAILS": {
+ "TITLE": "Guardrails",
+ "DESCRIPTION": "Keeps things on track—only the kinds of questions you want your assistant to answer, nothing off-limits or off-topic.",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "UNSELECT_ALL": "Desmarcar todas ({count})",
+ "BULK_DELETE_BUTTON": "Excluir"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example guardrails",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another guardrail..."
+ },
+ "NEW": {
+ "TITLE": "Add a guardrail",
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar",
+ "PLACEHOLDER": "Type in another guardrail...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No guardrails found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No guardrails found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Guardrails added successfully",
+ "ERROR": "There was an error adding guardrails, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Guardrails updated successfully",
+ "ERROR": "There was an error updating guardrails, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Guardrails deleted successfully",
+ "ERROR": "There was an error deleting guardrails, please try again."
+ }
+ }
+ },
+ "RESPONSE_GUIDELINES": {
+ "TITLE": "Response Guidelines",
+ "DESCRIPTION": "The vibe and structure of your assistant’s replies—clear and friendly? Short and snappy? Detailed and formal?",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "UNSELECT_ALL": "Desmarcar todas ({count})",
+ "BULK_DELETE_BUTTON": "Excluir"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example response guidelines",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "SAVE": "Add and save (↵)",
+ "PLACEHOLDER": "Type in another response guideline..."
+ },
+ "NEW": {
+ "TITLE": "Add a response guideline",
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar",
+ "PLACEHOLDER": "Type in another response guideline...",
+ "TEST_ALL": "Test all"
+ }
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No response guidelines found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No response guidelines found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Response Guidelines added successfully",
+ "ERROR": "There was an error adding response guidelines, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Response Guidelines updated successfully",
+ "ERROR": "There was an error updating response guidelines, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Response Guidelines deleted successfully",
+ "ERROR": "There was an error deleting response guidelines, please try again."
+ }
+ }
+ },
+ "SCENARIOS": {
+ "TITLE": "Scenarios",
+ "DESCRIPTION": "Give your assistant some context—like “what to do when a user is stuck,” or “how to act during a refund request.”",
+ "BULK_ACTION": {
+ "SELECTED": "{count} item selected | {count} items selected",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "UNSELECT_ALL": "Desmarcar todas ({count})",
+ "BULK_DELETE_BUTTON": "Excluir"
+ },
+ "ADD": {
+ "SUGGESTED": {
+ "TITLE": "Example scenarios",
+ "ADD": "Add all",
+ "ADD_SINGLE": "Add this",
+ "TOOLS_USED": "Tools used :"
+ },
+ "NEW": {
+ "CREATE": "Add a scenario",
+ "TITLE": "Create a scenario",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Enter a name for the scenario",
+ "ERROR": "Scenario name is required"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Describe how and where this scenario will be used",
+ "ERROR": "Scenario description is required"
+ },
+ "INSTRUCTION": {
+ "LABEL": "How to handle",
+ "PLACEHOLDER": "Describe how and where this scenario will be handled",
+ "ERROR": "Scenario content is required"
+ },
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "UPDATE": {
+ "CANCEL": "Cancelar",
+ "UPDATE": "Update changes"
+ },
+ "LIST": {
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "EMPTY_MESSAGE": "No scenarios found. Create or add examples to begin.",
+ "SEARCH_EMPTY_MESSAGE": "No scenarios found for this search.",
+ "API": {
+ "ADD": {
+ "SUCCESS": "Scenarios added successfully",
+ "ERROR": "There was an error adding scenarios, please try again."
+ },
+ "UPDATE": {
+ "SUCCESS": "Scenarios updated successfully",
+ "ERROR": "There was an error updating scenarios, please try again."
+ },
+ "DELETE": {
+ "SUCCESS": "Scenarios deleted successfully",
+ "ERROR": "There was an error deleting scenarios, please try again."
+ }
+ }
+ }
+ },
+ "DOCUMENTS": {
+ "HEADER": "Documents",
+ "ADD_NEW": "Create a new document",
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "UNSELECT_ALL": "Desmarcar todas ({count})",
+ "BULK_DELETE_BUTTON": "Excluir",
+ "BULK_SYNC_BUTTON": "Atualizar",
+ "BULK_DELETE": {
+ "TITLE": "Delete documents?",
+ "DESCRIPTION": "Are you sure you want to delete the selected documents? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "Documents deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the documents, please try again."
+ },
+ "BULK_SYNC": {
+ "SUCCESS_MESSAGE_ONE": "Refresh queued for 1 document",
+ "SUCCESS_MESSAGE": "Refresh queued for {count} documents",
+ "ZERO_MESSAGE": "No documents marked for refresh.",
+ "ERROR_MESSAGE": "There was an error queuing the refresh, please try again."
+ },
+ "SYNC": {
+ "QUEUED_MESSAGE": "Refresh queued. We'll update the document shortly.",
+ "ERROR_MESSAGE": "Could not queue refresh, please try again."
+ },
+ "FILTERS": {
+ "SOURCE": {
+ "ALL": "All sources",
+ "WEB": "Web pages",
+ "PDF": "PDFs"
+ },
+ "STATUS": {
+ "ANY": "Any status",
+ "UPDATED": "Updated",
+ "NEEDS_UPDATE": "Needs update",
+ "UPDATING": "Updating",
+ "FAILED": "Failed"
+ },
+ "SORT": {
+ "RECENTLY_UPDATED": "Recently updated",
+ "RECENTLY_CREATED": "Recently created"
+ },
+ "SEARCH_PLACEHOLDER": "Search..."
+ },
+ "SYNC_STATUS": {
+ "SYNCED": "last updated {time}",
+ "SYNCING": "atualizando...",
+ "STALE_SYNC": "update stalled",
+ "FAILED": "Failed to sync",
+ "NEVER_SYNCED": "not updated yet"
+ },
+ "SYNC_ERRORS": {
+ "NOT_FOUND": "Página não encontrada",
+ "ACCESS_DENIED": "Access denied",
+ "TIMEOUT": "Page took too long to respond",
+ "CONTENT_EMPTY": "Page returned empty content",
+ "FETCH_FAILED": "Could not fetch page",
+ "SYNC_ERROR": "Unexpected error",
+ "DEFAULT": "Sync error"
+ },
+ "RELATED_RESPONSES": {
+ "TITLE": "Related FAQs",
+ "DESCRIPTION": "These FAQs are generated directly from the document."
+ },
+ "FORM_DESCRIPTION": "Enter the URL of the document to add it as a knowledge source and choose the assistant to associate it with.",
+ "CREATE": {
+ "TITLE": "Add a document",
+ "SUCCESS_MESSAGE": "The document has been successfully created",
+ "ERROR_MESSAGE": "There was an error creating the document, please try again."
+ },
+ "FORM": {
+ "TYPE": {
+ "LABEL": "Document Type",
+ "URL": "URL",
+ "PDF": "PDF File"
+ },
+ "URL": {
+ "LABEL": "URL",
+ "PLACEHOLDER": "Enter the URL of the document",
+ "ERROR": "Please provide a valid URL for the document"
+ },
+ "PDF_FILE": {
+ "LABEL": "PDF File",
+ "CHOOSE_FILE": "Choose PDF file",
+ "ERROR": "Please select a PDF file",
+ "HELP_TEXT": "Maximum file size: 10MB",
+ "INVALID_TYPE": "Please select a valid PDF file",
+ "TOO_LARGE": "File size exceeds 10MB limit"
+ },
+ "NAME": {
+ "LABEL": "Document Name (Optional)",
+ "PLACEHOLDER": "Enter a name for the document"
+ }
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the document?",
+ "DESCRIPTION": "This action is permanent. Deleting this document will permanently erase all generated knowledge.",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "The document has been successfully deleted",
+ "ERROR_MESSAGE": "There was an error deleting the document, please try again."
+ },
+ "OPTIONS": {
+ "VIEW_RELATED_RESPONSES": "View Related Responses",
+ "SYNC_NOW": "Refresh now",
+ "RETRY_SYNC": "Retry refresh",
+ "DELETE_DOCUMENT": "Delete Document"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No documents available",
+ "SUBTITLE": "Documents are used by your assistant to generate FAQs. You can import documents to provide context for your assistant.",
+ "FILTERED_TITLE": "No matching documents",
+ "FILTERED_SUBTITLE": "Try changing the source, status, or search term.",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "CUSTOM_TOOLS": {
+ "HEADER": "Ferramentas",
+ "ADD_NEW": "Create a new tool",
+ "SOFT_LIMIT_WARNING": "Having more than 10 tools may reduce the assistant's reliability in selecting the right tool. Consider removing unused tools for better results.",
+ "EMPTY_STATE": {
+ "TITLE": "No custom tools available",
+ "SUBTITLE": "Create custom tools to connect your assistant with external APIs and services, enabling it to fetch data and perform actions on your behalf.",
+ "FEATURE_SPOTLIGHT": {
+ "TITLE": "Custom Tools",
+ "NOTE": "Custom tools allow your assistant to interact with external APIs and services. Create tools to fetch data, perform actions, or integrate with your existing systems to enhance your assistant's capabilities."
+ }
+ },
+ "FORM_DESCRIPTION": "Configure your custom tool to connect with external APIs",
+ "OPTIONS": {
+ "EDIT_TOOL": "Edit tool",
+ "DELETE_TOOL": "Delete tool"
+ },
+ "CREATE": {
+ "TITLE": "Create Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool created successfully",
+ "ERROR_MESSAGE": "Failed to create custom tool"
+ },
+ "EDIT": {
+ "TITLE": "Edit Custom Tool",
+ "SUCCESS_MESSAGE": "Custom tool updated successfully",
+ "ERROR_MESSAGE": "Failed to update custom tool"
+ },
+ "DELETE": {
+ "TITLE": "Delete Custom Tool",
+ "DESCRIPTION": "Are you sure you want to delete this custom tool? This action cannot be undone.",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "Custom tool deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete custom tool"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use tools with Captain",
+ "AVAILABLE_ON": "Captain Tools are only available in Business and Enterprise plans. Please upgrade to Business plan to use the feature.",
+ "UPGRADE_PROMPT": "",
+ "UPGRADE_NOW": "Abrir faturação",
+ "CANCEL_ANYTIME": ""
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "Captain Tools are only available in the paid plans.",
+ "UPGRADE_PROMPT": "Please upgrade to a paid plan to use this feature.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ },
+ "TEST": {
+ "BUTTON": "Test connection",
+ "SUCCESS": "Endpoint returned HTTP {status}",
+ "ERROR": "Connection failed",
+ "DISABLED_HINT": "Testing is only available for endpoints without templates or request bodies."
+ },
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Tool Name",
+ "PLACEHOLDER": "Order Lookup",
+ "ERROR": "Tool name is required",
+ "MAX_LENGTH_ERROR": "Tool name must be {max} characters or fewer"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Looks up order details by order ID"
+ },
+ "HTTP_METHOD": {
+ "LABEL": "Method"
+ },
+ "ENDPOINT_URL": {
+ "LABEL": "Endpoint URL",
+ "PLACEHOLDER": "https://api.example.com/orders/{'{{'} order_id {'}}'}",
+ "ERROR": "Valid URL is required"
+ },
+ "AUTH_TYPE": {
+ "LABEL": "Authentication Type"
+ },
+ "AUTH_TYPES": {
+ "NONE": "Nenhuma",
+ "BEARER": "Bearer Token",
+ "BASIC": "Basic Auth",
+ "API_KEY": "Chave da API"
+ },
+ "AUTH_CONFIG": {
+ "BEARER_TOKEN": "Bearer Token",
+ "BEARER_TOKEN_PLACEHOLDER": "Enter your bearer token",
+ "USERNAME": "Username",
+ "USERNAME_PLACEHOLDER": "Enter username",
+ "PASSWORD": "Palavra-passe",
+ "PASSWORD_PLACEHOLDER": "Enter password",
+ "API_KEY": "Header Name",
+ "API_KEY_PLACEHOLDER": "X-API-Key",
+ "API_VALUE": "Header Value",
+ "API_VALUE_PLACEHOLDER": "Enter API key value"
+ },
+ "PARAMETERS": {
+ "LABEL": "Parameters",
+ "HELP_TEXT": "Define the parameters that will be extracted from user queries"
+ },
+ "ADD_PARAMETER": "Add Parameter",
+ "PARAM_NAME": {
+ "PLACEHOLDER": "Parameter name (e.g., order_id)"
+ },
+ "PARAM_TYPE": {
+ "PLACEHOLDER": "Tipo"
+ },
+ "PARAM_TYPES": {
+ "STRING": "String",
+ "NUMBER": "Número",
+ "BOOLEAN": "Boolean",
+ "ARRAY": "Array",
+ "OBJECT": "Object"
+ },
+ "PARAM_DESCRIPTION": {
+ "PLACEHOLDER": "Description of the parameter"
+ },
+ "PARAM_REQUIRED": {
+ "LABEL": "Obrigatório"
+ },
+ "REQUEST_TEMPLATE": {
+ "LABEL": "Request Body Template (Optional)",
+ "PLACEHOLDER": "{'{'}\n \"order_id\": \"{'{{'} order_id {'}}'}\"\n{'}'}"
+ },
+ "RESPONSE_TEMPLATE": {
+ "LABEL": "Response Template (Optional)",
+ "PLACEHOLDER": "Order {'{{'} order_id {'}}'} status: {'{{'} status {'}}'}"
+ },
+ "ERRORS": {
+ "PARAM_NAME_REQUIRED": "Parameter name is required"
+ }
+ }
+ },
+ "RESPONSES": {
+ "HEADER": "FAQs",
+ "PENDING_FAQS": "Pending FAQs",
+ "ADD_NEW": "Create new FAQ",
+ "DOCUMENTABLE": {
+ "CONVERSATION": "Conversation #{id}"
+ },
+ "SELECTED": "{count} selected",
+ "SELECT_ALL": "Selecionar todas ({count})",
+ "UNSELECT_ALL": "Desmarcar todas ({count})",
+ "SEARCH_PLACEHOLDER": "Search FAQs...",
+ "BULK_APPROVE_BUTTON": "Approve",
+ "BULK_DELETE_BUTTON": "Excluir",
+ "BULK_APPROVE": {
+ "SUCCESS_MESSAGE": "FAQs approved successfully",
+ "ERROR_MESSAGE": "There was an error approving the FAQs, please try again."
+ },
+ "BULK_DELETE": {
+ "TITLE": "Delete FAQs?",
+ "DESCRIPTION": "Are you sure you want to delete the selected FAQs? This action cannot be undone.",
+ "CONFIRM": "Yes, delete all",
+ "SUCCESS_MESSAGE": "FAQs deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQs, please try again."
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to delete the FAQ?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "FAQ deleted successfully",
+ "ERROR_MESSAGE": "There was an error deleting the FAQ, please try again."
+ },
+ "FILTER": {
+ "ASSISTANT": "Assistant: {selected}",
+ "STATUS": "Status: {selected}",
+ "ALL_ASSISTANTS": "Todas"
+ },
+ "STATUS": {
+ "TITLE": "Situação",
+ "PENDING": "Pendente",
+ "APPROVED": "Approved",
+ "ALL": "Todas"
+ },
+ "PENDING_BANNER": {
+ "TITLE": "Captain has found some FAQs your customers were looking for.",
+ "ACTION": "Click here to review"
+ },
+ "FORM_DESCRIPTION": "Add a question and its corresponding answer to the knowledge base and select the assistant it should be associated with.",
+ "CREATE": {
+ "TITLE": "Add an FAQ",
+ "SUCCESS_MESSAGE": "The response has been added successfully.",
+ "ERROR_MESSAGE": "An error occurred while adding the response. Please try again."
+ },
+ "FORM": {
+ "QUESTION": {
+ "LABEL": "Question",
+ "PLACEHOLDER": "Enter the question here",
+ "ERROR": "Please provide a valid question."
+ },
+ "ANSWER": {
+ "LABEL": "Answer",
+ "PLACEHOLDER": "Enter the answer here",
+ "ERROR": "Please provide a valid answer."
+ }
+ },
+ "EDIT": {
+ "TITLE": "Update the FAQ",
+ "SUCCESS_MESSAGE": "The FAQ has been successfully updated",
+ "ERROR_MESSAGE": "There was an error updating the FAQ, please try again",
+ "APPROVE_SUCCESS_MESSAGE": "The FAQ was marked as approved"
+ },
+ "OPTIONS": {
+ "APPROVE": "Approve",
+ "EDIT_RESPONSE": "Editar",
+ "DELETE_RESPONSE": "Excluir"
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No FAQs Found",
+ "NO_PENDING_TITLE": "There are no more pending FAQs to review",
+ "SUBTITLE": "FAQs help your assistant provide quick and accurate answers to questions from your customers. They can be generated automatically from your content or can be added manually.",
+ "CLEAR_SEARCH": "Clear active filters",
+ "FEATURE_SPOTLIGHT": {
+ "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."
+ }
+ }
+ },
+ "INBOXES": {
+ "HEADER": "Connected Inboxes",
+ "ADD_NEW": "Connect a new inbox",
+ "OPTIONS": {
+ "DISCONNECT": "Desconectar"
+ },
+ "DELETE": {
+ "TITLE": "Are you sure to disconnect the inbox?",
+ "DESCRIPTION": "",
+ "CONFIRM": "Sim, excluir",
+ "SUCCESS_MESSAGE": "The inbox was successfully disconnected.",
+ "ERROR_MESSAGE": "There was an error disconnecting the inbox, please try again."
+ },
+ "FORM_DESCRIPTION": "Choose an inbox to connect with the assistant.",
+ "CREATE": {
+ "TITLE": "Connect an Inbox",
+ "SUCCESS_MESSAGE": "The inbox was successfully connected.",
+ "ERROR_MESSAGE": "An error occurred while connecting the inbox. Please try again."
+ },
+ "FORM": {
+ "INBOX": {
+ "LABEL": "Caixa de entrada",
+ "PLACEHOLDER": "Choose the inbox to deploy the assistant.",
+ "ERROR": "An inbox selection is required."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "No Connected Inboxes",
+ "SUBTITLE": "Connecting an inbox allows the assistant to handle initial questions from your customers before transferring them to you."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
index 231f32775..8bbb99538 100644
--- a/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt/labelsMgmt.json
@@ -1,27 +1,32 @@
{
"LABEL_MGMT": {
"HEADER": "Etiquetas",
- "HEADER_BTN_TXT": "Adicionar Etiqueta",
- "LOADING": "Buscando etiquetas",
- "SEARCH_404": "Não existem itens correspondentes a esta consulta",
- "SIDEBAR_TXT": "Etiquetas
As etiquetas o ajudam a categorizar as conversas e a priorizá-las. Você pode atribuir a etiqueta a uma conversa a partir do painel lateral.
As etiquetas estão vinculadas à conta e podem ser usadas para criar fluxos de trabalho personalizados em sua organização. Você pode atribuir uma cor personalizada para uma etiqueta, facilitando a identificação da etiqueta. Você será capaz de exibir o rótulo na barra lateral para filtrar as conversas facilmente.
",
+ "HEADER_BTN_TXT": "Adicionar etiqueta",
+ "LOADING": "A procurar etiquetas",
+ "DESCRIPTION": "As etiquetas ajudam-no a categorizar e priorizar conversas e leads. Pode atribuir uma etiqueta a uma conversa ou entrar em contacto usando o painel lateral.",
+ "LEARN_MORE": "Saber mais sobre etiquetas",
+ "COUNT": "{n} label | {n} labels",
+ "SEARCH_PLACEHOLDER": "Procurar etiquetas...",
+ "NO_RESULTS": "No labels found matching your search",
+ "SEARCH_404": "Não existem itens correspondentes à sua pesquisa",
"LIST": {
"404": "Não há etiquetas disponíveis nesta conta.",
"TITLE": "Gerir etiquetas",
- "DESC": "Etiquetas permitem que você agrupe as conversas juntos.",
- "TABLE_HEADER": [
- "Nome:",
- "Descrição",
- "Cor"
- ]
+ "DESC": "As etiquetas permitem agrupar conversas.",
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "DESCRIPTION": "Descrição",
+ "COLOR": "Cor",
+ "ACTION": "Ações"
+ }
},
"FORM": {
"NAME": {
"LABEL": "Nome da etiqueta",
"PLACEHOLDER": "Nome da etiqueta",
- "REQUIRED_ERROR": "O nome da etiqueta é obrigatório",
- "MINIMUM_LENGTH_ERROR": "O tamanho mínimo obrigatório é 2",
- "VALID_ERROR": "Apenas são permitidos Alfabetos, Números, Hífen e Underscores"
+ "REQUIRED_ERROR": "Nome da etiqueta obrigatório",
+ "MINIMUM_LENGTH_ERROR": "A etiqueta deve ter, no mínimo, 2 caracteres",
+ "VALID_ERROR": "Apenas são permitidas letras, números, hífen e underscores"
},
"DESCRIPTION": {
"LABEL": "Descrição",
@@ -33,15 +38,15 @@
"SHOW_ON_SIDEBAR": {
"LABEL": "Mostrar etiqueta na barra lateral"
},
- "EDIT": "Alterar",
+ "EDIT": "Editar",
"CREATE": "Criar",
- "DELETE": "excluir",
- "CANCEL": "cancelar"
+ "DELETE": "Excluir",
+ "CANCEL": "Cancelar"
},
"SUGGESTIONS": {
"TOOLTIP": {
"SINGLE_SUGGESTION": "Adicionar etiqueta à conversa",
- "MULTIPLE_SUGGESTION": "Selecione esta etiqueta",
+ "MULTIPLE_SUGGESTION": "Selecionar esta etiqueta",
"DESELECT": "Desmarcar etiqueta",
"DISMISS": "Descartar sugestão"
},
@@ -49,34 +54,35 @@
"DISMISS": "Descartar",
"ADD_SELECTED_LABELS": "Adicionar etiquetas selecionadas",
"ADD_SELECTED_LABEL": "Adicionar etiqueta selecionada",
- "ADD_ALL_LABELS": "Adicionar todas as etiquetas"
+ "ADD_ALL_LABELS": "Adicionar todas as etiquetas",
+ "SUGGESTED_LABELS": "Etiquetas sugeridas"
},
"ADD": {
- "TITLE": "Adicionar Etiqueta",
- "DESC": "Etiquetas permitem que você agrupe as conversas juntos.",
+ "TITLE": "Adicionar etiqueta",
+ "DESC": "As etiquetas permitem agrupar conversas.",
"API": {
"SUCCESS_MESSAGE": "Etiqueta adicionada com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
}
},
"EDIT": {
"TITLE": "Editar etiqueta",
"API": {
- "SUCCESS_MESSAGE": "Etiqueta adicionada com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ "SUCCESS_MESSAGE": "Etiqueta atualizada com sucesso",
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
}
},
"DELETE": {
- "BUTTON_TEXT": "excluir",
+ "BUTTON_TEXT": "Excluir",
"API": {
- "SUCCESS_MESSAGE": "Etiqueta eliminada com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ "SUCCESS_MESSAGE": "Etiqueta excluída com sucesso",
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor, tente novamente"
},
"CONFIRM": {
- "TITLE": "Confirmar Exclusão",
- "MESSAGE": "Tem certeza que deseja excluir ",
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Tem a certeza que pretende excluir ",
"YES": "Sim, excluir ",
- "NO": "Não, Manter "
+ "NO": "Não, manter "
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/login.json b/app/javascript/dashboard/i18n/locale/pt/login.json
index 499970df5..4149ff527 100644
--- a/app/javascript/dashboard/i18n/locale/pt/login.json
+++ b/app/javascript/dashboard/i18n/locale/pt/login.json
@@ -2,8 +2,8 @@
"LOGIN": {
"TITLE": "Entrar no Chatwoot",
"EMAIL": {
- "LABEL": "e-mail",
- "PLACEHOLDER": "exemplo@nomedaempresa.pt",
+ "LABEL": "E-mail",
+ "PLACEHOLDER": "Empresa{'@'}suaempresa.com.br",
"ERROR": "Por favor, insira um endereço de e-mail válido"
},
"PASSWORD": {
@@ -11,17 +11,31 @@
"PLACEHOLDER": "Palavra-passe"
},
"API": {
- "SUCCESS_MESSAGE": "Login bem sucedido",
+ "SUCCESS_MESSAGE": "Login bem-sucedido",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente.",
- "UNAUTH": "Nome de utilizador ou senha incorretos. Por favor, tente novamente."
+ "UNAUTH": "E-mail ou palavra-passe incorretos. Por favor, tente novamente."
},
"OAUTH": {
- "GOOGLE_LOGIN": "Entrar com o Google",
- "BUSINESS_ACCOUNTS_ONLY": "Use o endereço de e-mail da empresa para fazer login",
- "NO_ACCOUNT_FOUND": "Não encontramos uma conta para seu endereço de e-mail."
+ "GOOGLE_LOGIN": "Iniciar sessão com o Google",
+ "BUSINESS_ACCOUNTS_ONLY": "Por favor, use o endereço de e-mail da empresa para iniciar sessão",
+ "NO_ACCOUNT_FOUND": "Não conseguimos encontrar uma conta com o seu endereço de e-mail."
},
- "FORGOT_PASSWORD": "Esqueceu-se da sua senha?",
+ "FORGOT_PASSWORD": "Esqueceu-se da sua palavra-passe?",
"CREATE_NEW_ACCOUNT": "Criar nova conta",
- "SUBMIT": "Iniciar sessão"
+ "SUBMIT": "Iniciar sessão",
+ "SAML": {
+ "LABEL": "Login via SSO",
+ "TITLE": "Initiate Single Sign-on (SSO)",
+ "SUBTITLE": "Enter your work email to access your organization",
+ "BACK_TO_LOGIN": "Login via Password",
+ "WORK_EMAIL": {
+ "LABEL": "Work Email",
+ "PLACEHOLDER": "Enter your work email"
+ },
+ "SUBMIT": "Continue with SSO",
+ "API": {
+ "ERROR_MESSAGE": "SSO authentication failed. Please check your credentials and try again."
+ }
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/macros.json b/app/javascript/dashboard/i18n/locale/pt/macros.json
index 9576ccaf0..f385bb5cc 100644
--- a/app/javascript/dashboard/i18n/locale/pt/macros.json
+++ b/app/javascript/dashboard/i18n/locale/pt/macros.json
@@ -1,67 +1,77 @@
{
"MACROS": {
"HEADER": "Macros",
- "HEADER_BTN_TXT": "Adicionar uma nova macro",
- "HEADER_BTN_TXT_SAVE": "Salvar macro",
- "LOADING": "Procurando macros",
- "SIDEBAR_TXT": "Macros
Uma macro é um conjunto de ações salvas que ajudam os agentes concluírem facilmente as tarefas. Os agentes podem definir um conjunto de ações como marcar uma conversa com uma tag, enviar uma transcrição de e-mail, atualizando um atributo personalizado, etc. e eles podem executar essas ações com um único clique. Quando os agentes executam a macro, as ações são executadas sequencialmente na ordem em que foram
definidas. Macros melhoram a produtividade e aumentam a consistência em ações. Uma macro pode ser útil de 2 maneiras.
Como um assistente do agente: Se um agente executa um conjunto de ações várias vezes, eles podem salvá-lo como uma macro e executar todas as ações juntas usando um único clique.
Como opção para integrar um membro da equipe: Todos os agentes devem realizar verificações/ações diferentes durante cada conversa. Integrar um novo membro da equipe de suporte será fácil se macros predefinidos estiverem disponíveis na conta. Em vez de descrever cada passo em detalhe, o gerente da equipe pode apontar para as macros usadas em diferentes cenários.
",
- "ERROR": "Algo deu errado. Tente novamente",
- "ORDER_INFO": "As macros serão executadas em ordem. Você pode reorganizá-las arrastando-as.",
+ "DESCRIPTION": "Uma macro é um conjunto de ações guardadas que ajudam os agentes de apoio ao cliente a completarem tarefas facilmente. Os agentes podem definir um conjunto de ações, como adicionar uma etiqueta a uma conversa, enviar uma transcrição de e-mail, atualizar um atributo personalizado, etc., e, posteriormente, executarem essas ações com um único clique.",
+ "LEARN_MORE": "Saber mais sobre macros",
+ "COUNT": "{n} macro | {n} macros",
+ "HEADER_BTN_TXT": "Adicionar nova macro",
+ "HEADER_BTN_TXT_SAVE": "Guardar macro",
+ "LOADING": "A procurar macros",
+ "SEARCH_PLACEHOLDER": "Search macros...",
+ "NO_RESULTS": "No macros found matching your search",
+ "ERROR": "Ocorreu um erro! Por favor, tente novamente",
+ "ORDER_INFO": "As macros serão executadas pela ordem em que adicionar as suas ações. Pode reorganizá-las arrastando-as pelo identificador ao lado de cada nó.",
"ADD": {
"FORM": {
"NAME": {
"LABEL": "Nome da macro",
- "PLACEHOLDER": "Insira um nome para a sua macro",
+ "PLACEHOLDER": "Insira um nome para a macro",
"ERROR": "O nome é obrigatório para criar uma macro"
},
"ACTIONS": {
- "LABEL": "Ações."
+ "LABEL": "Ações"
}
},
"API": {
"SUCCESS_MESSAGE": "Macro adicionada com sucesso",
- "ERROR_MESSAGE": "Não é possível criar a macro, por favor tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível criar a macro. Por favor, tente novamente mais tarde"
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nome:",
- "Criada por",
- "Ultima atualização por",
- "Visibilidade"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome:",
+ "CREATED BY": "Criada por",
+ "LAST_UPDATED_BY": "Ultima atualização por",
+ "VISIBILITY": "Visibilidade",
+ "ACTIONS": "Ações"
+ },
"404": "Nenhuma macro encontrada"
},
"DELETE": {
"TOOLTIP": "Apagar macro",
"CONFIRM": {
- "MESSAGE": "Tem certeza que deseja excluir ",
+ "MESSAGE": "Tem a certeza que pretende excluir ",
"YES": "Sim, excluir",
- "NO": "Não"
+ "NO": "Não, manter"
},
"API": {
- "SUCCESS_MESSAGE": "Macro apagada com sucesso",
+ "SUCCESS_MESSAGE": "Macro excluída com sucesso",
"ERROR_MESSAGE": "Ocorreu um erro ao excluir a macro. Por favor, tente novamente mais tarde"
}
},
+ "VIEW": {
+ "TOOLTIP": "View macro"
+ },
"EDIT": {
"TOOLTIP": "Editar macro",
"API": {
"SUCCESS_MESSAGE": "Macro atualizada com sucesso",
- "ERROR_MESSAGE": "Não foi possível atualizar Macro, por favor, tente novamente mais tarde"
+ "ERROR_MESSAGE": "Não foi possível atualizar a macro. Por favor, tente novamente mais tarde"
}
},
"EDITOR": {
- "START_FLOW": "Inicio do fluxo",
+ "START_FLOW": "Início do fluxo",
"END_FLOW": "Fim do fluxo",
"LOADING": "A obter macro",
"ADD_BTN_TOOLTIP": "Adicionar nova ação",
- "DELETE_BTN_TOOLTIP": "Apagar ação",
+ "DELETE_BTN_TOOLTIP": "Excluir ação",
"VISIBILITY": {
"LABEL": "Visibilidade da macro",
"GLOBAL": {
- "LABEL": "Publica",
- "DESCRIPTION": "Esta macro está disponível publicamente para todos os agentes nesta conta."
+ "LABEL": "Pública",
+ "DESCRIPTION": "Esta macro está disponível publicamente para todos os agentes nesta conta.",
+ "CREATE_DISABLED_DESCRIPTION": "Only administrators can create public macros.",
+ "EDIT_DISABLED_DESCRIPTION": "Only administrators can edit public macros."
},
"PERSONAL": {
"LABEL": "Privada",
@@ -71,8 +81,41 @@
},
"EXECUTE": {
"BUTTON_TOOLTIP": "Executar",
- "PREVIEW": "Pré-visualizar Macro",
+ "PREVIEW": "Pré-visualizar macro",
"EXECUTED_SUCCESSFULLY": "Macro executada com sucesso"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "Chave do atributo necessária",
+ "FILTER_OPERATOR_REQUIRED": "Operador do filtro necessário",
+ "VALUE_REQUIRED": "Valor obrigatório",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998",
+ "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": "Atribuir equipa",
+ "ASSIGN_AGENT": "Atribuir um agente",
+ "ADD_LABEL": "Adicionar um rótulo",
+ "REMOVE_LABEL": "Remover um rótulo",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remover equipa atribuída",
+ "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 webhook"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nenhuma",
+ "LOW": "Baixa",
+ "MEDIUM": "Média",
+ "HIGH": "Elevada",
+ "URGENT": "Urgente"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/mfa.json b/app/javascript/dashboard/i18n/locale/pt/mfa.json
new file mode 100644
index 000000000..750c14085
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/mfa.json
@@ -0,0 +1,110 @@
+{
+ "MFA_SETTINGS": {
+ "TITLE": "Two-Factor Authentication",
+ "SUBTITLE": "Protect your account from unauthorized access with TOTP-based authentication. This adds an extra layer of security to your account.",
+ "DESCRIPTION": "Add an extra layer of security to your account using a time-based one-time password (TOTP)",
+ "STATUS_TITLE": "Authentication Status",
+ "STATUS_DESCRIPTION": "Manage your two-factor authentication settings and backup recovery codes",
+ "ENABLED": "Ativado",
+ "DISABLED": "Inativo",
+ "STATUS_ENABLED": "Two-factor authentication is active",
+ "STATUS_ENABLED_DESC": "Your account is protected with an additional layer of security",
+ "ENABLE_BUTTON": "Enable Two-Factor Authentication",
+ "ENHANCE_SECURITY": "Enhance Your Account Security",
+ "ENHANCE_SECURITY_DESC": "Two-factor authentication adds an extra layer of security by requiring a verification code from your authenticator app in addition to your password.",
+ "SETUP": {
+ "STEP_NUMBER_1": "1",
+ "STEP_NUMBER_2": "2",
+ "STEP1_TITLE": "Scan QR Code with Your Authenticator App",
+ "STEP1_DESCRIPTION": "Use Google Authenticator, Authy, or any TOTP-compatible app",
+ "LOADING_QR": "A carregar...",
+ "MANUAL_ENTRY": "Can't scan? Enter code manually",
+ "SECRET_KEY": "Secret Key",
+ "COPY": "Copiar",
+ "ENTER_CODE": "Enter the 6-digit code from your authenticator app",
+ "ENTER_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify & Continue",
+ "CANCEL": "Cancelar",
+ "ERROR_STARTING": "MFA not enabled. Please contact administrator.",
+ "INVALID_CODE": "Invalid verification code",
+ "SECRET_COPIED": "Secret key copied to clipboard",
+ "SUCCESS": "Two-factor authentication has been enabled successfully"
+ },
+ "BACKUP": {
+ "TITLE": "Save Your Backup Codes",
+ "DESCRIPTION": "Keep these codes safe. Each can be used once if you lose access to your authenticator",
+ "IMPORTANT": "Important:",
+ "IMPORTANT_NOTE": " Save these codes in a secure location. You won't be able to see them again.",
+ "DOWNLOAD": "Descarregar",
+ "COPY_ALL": "Copy All",
+ "CONFIRM": "I have saved my backup codes in a secure location and understand that I won't be able to see them again",
+ "COMPLETE_SETUP": "Complete Setup",
+ "CODES_COPIED": "Backup codes copied to clipboard"
+ },
+ "MANAGEMENT": {
+ "BACKUP_CODES": "Backup Codes",
+ "BACKUP_CODES_DESC": "Generate new codes if you've lost or used your existing ones",
+ "REGENERATE": "Regenerate Backup Codes",
+ "DISABLE_MFA": "Disable 2FA",
+ "DISABLE_MFA_DESC": "Remove two-factor authentication from your account",
+ "DISABLE_BUTTON": "Disable Two-Factor Authentication"
+ },
+ "DISABLE": {
+ "TITLE": "Disable Two-Factor Authentication",
+ "DESCRIPTION": "You'll need to enter your password and a verification code to disable two-factor authentication.",
+ "PASSWORD": "Palavra-passe",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "BACKUP_CODE": "Backup Code",
+ "BACKUP_CODE_PLACEHOLDER": "Enter one of your backup codes",
+ "USE_BACKUP_CODE": "Lost access to your authenticator? Use a backup code instead",
+ "USE_OTP_CODE": "Use a verification code from your authenticator app",
+ "CONFIRM": "Disable 2FA",
+ "CANCEL": "Cancelar",
+ "SUCCESS": "Two-factor authentication has been disabled",
+ "ERROR": "Failed to disable MFA. Please check your credentials."
+ },
+ "REGENERATE": {
+ "TITLE": "Regenerate Backup Codes",
+ "DESCRIPTION": "This will invalidate your existing backup codes and generate new ones. Enter your verification code to continue.",
+ "OTP_CODE": "Verification Code",
+ "OTP_CODE_PLACEHOLDER": "000000",
+ "CONFIRM": "Generate New Codes",
+ "CANCEL": "Cancelar",
+ "NEW_CODES_TITLE": "New Backup Codes Generated",
+ "NEW_CODES_DESC": "Your old backup codes have been invalidated. Save these new codes in a secure location.",
+ "CODES_IMPORTANT": "Important:",
+ "CODES_IMPORTANT_NOTE": " Each code can only be used once. Save them before closing this window.",
+ "DOWNLOAD_CODES": "Download Codes",
+ "COPY_ALL_CODES": "Copy All Codes",
+ "CODES_SAVED": "I've Saved My Codes",
+ "SUCCESS": "New backup codes have been generated",
+ "ERROR": "Failed to regenerate backup codes"
+ }
+ },
+ "MFA_VERIFICATION": {
+ "TITLE": "Two-Factor Authentication",
+ "DESCRIPTION": "Enter your verification code to continue",
+ "AUTHENTICATOR_APP": "Authenticator App",
+ "BACKUP_CODE": "Backup Code",
+ "ENTER_OTP_CODE": "Enter 6-digit code from your authenticator app",
+ "ENTER_BACKUP_CODE": "Enter one of your backup codes",
+ "BACKUP_CODE_PLACEHOLDER": "000000",
+ "VERIFY_BUTTON": "Verify",
+ "TRY_ANOTHER_METHOD": "Try another verification method",
+ "CANCEL_LOGIN": "Cancel and return to login",
+ "HELP_TEXT": "Having trouble signing in?",
+ "LEARN_MORE": "Learn more about 2FA",
+ "HELP_MODAL": {
+ "TITLE": "Two-Factor Authentication Help",
+ "AUTHENTICATOR_TITLE": "Using an Authenticator App",
+ "AUTHENTICATOR_DESC": "Open your authenticator app (Google Authenticator, Authy, etc.) and enter the 6-digit code shown for your account.",
+ "BACKUP_TITLE": "Using a Backup Code",
+ "BACKUP_DESC": "If you don't have access to your authenticator app, you can use one of the backup codes you saved when setting up 2FA. Each code can only be used once.",
+ "CONTACT_TITLE": "Need More Help?",
+ "CONTACT_DESC_CLOUD": "If you've lost access to both your authenticator app and backup codes, please reach out to Chatwoot support for assistance.",
+ "CONTACT_DESC_SELF_HOSTED": "If you've lost access to both your authenticator app and backup codes, please contact your administrator for assistance."
+ },
+ "VERIFICATION_FAILED": "Verification failed. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/onboarding.json b/app/javascript/dashboard/i18n/locale/pt/onboarding.json
new file mode 100644
index 000000000..30fb002a3
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/onboarding.json
@@ -0,0 +1,34 @@
+{
+ "ONBOARDING_NEXT": {
+ "GREETING": "Hello {name}!",
+ "SUBTITLE": "Please review the following details",
+ "YOUR_DETAILS": "Your details",
+ "COMPANY_DETAILS": "Company details",
+ "FIELDS": {
+ "EMAIL": "E-mail",
+ "YOUR_ROLE": "Your Role",
+ "WEBSITE": "Website",
+ "LANGUAGE": "Idioma",
+ "TIMEZONE": "Fuso Horário",
+ "COMPANY_SIZE": "Company Size",
+ "INDUSTRY": "Industry",
+ "REFERRAL_SOURCE": "Where did you find us?"
+ },
+ "PLACEHOLDERS": {
+ "SELECT_ROLE": "Select your role",
+ "ENTER_WEBSITE": "www.example.com",
+ "SELECT_LANGUAGE": "Select language",
+ "SELECT_TIMEZONE": "Selecionar fuso horário",
+ "SELECT_COMPANY_SIZE": "Select company size",
+ "SELECT_INDUSTRY": "Select industry",
+ "SELECT_REFERRAL_SOURCE": "Select source"
+ },
+ "EMAIL_VERIFIED": "Email verified",
+ "SETTING_UP": "Setting up your account...",
+ "CONTINUE": "Continue",
+ "SAVING": "A guardar...",
+ "VALIDATION_ERROR": "Please fill in all required fields",
+ "SUCCESS": "Details saved successfully",
+ "ERROR": "Could not save details. Please try again."
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/report.json b/app/javascript/dashboard/i18n/locale/pt/report.json
index a7da66763..a58b672da 100644
--- a/app/javascript/dashboard/i18n/locale/pt/report.json
+++ b/app/javascript/dashboard/i18n/locale/pt/report.json
@@ -1,10 +1,10 @@
{
"REPORT": {
"HEADER": "Conversas",
- "LOADING_CHART": "Carregando dados da carta...",
+ "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_AGENT_REPORTS": "Descarregar relatórios de agentes",
- "DATA_FETCHING_FAILED": "Não foi possível obter dados, por favor, tente mais tarde.",
+ "DOWNLOAD_CONVERSATION_REPORTS": "Baixar relatórios de conversas",
+ "DATA_FETCHING_FAILED": "Não foi possível obter dados. Por favor, tente mais tarde.",
"SUMMARY_FETCHING_FAILED": "Não foi possível obter o resumo. Por favor, tente mais tarde.",
"METRICS": {
"CONVERSATIONS": {
@@ -12,73 +12,59 @@
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
- "NAME": "Mensagens de entrada",
+ "NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
- "NAME": "Mensagens de saída",
+ "NAME": "Mensagens enviadas",
"DESC": "( Total )"
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
"DESC": "( Total )"
},
+ "BOT_RESOLUTION_COUNT": {
+ "NAME": "Contagem de resolução",
+ "DESC": "( Total )"
+ },
+ "BOT_HANDOFF_COUNT": {
+ "NAME": "Contagem de transferências",
+ "DESC": "( Total )"
+ },
"REPLY_TIME": {
- "NAME": "Tempo espera do cliente",
- "TOOLTIP_TEXT": "O tempo de espera é %{metricValue} (com base em %{conversationCount} conversas)"
+ "NAME": "Tempo de espera do cliente",
+ "TOOLTIP_TEXT": "O tempo de espera é {metricValue} (com base em {conversationCount} conversas)",
+ "DESC": ""
}
},
"DATE_RANGE_OPTIONS": {
"LAST_7_DAYS": "Últimos 7 Dias",
+ "LAST_14_DAYS": "Últimos 14 Dias",
"LAST_30_DAYS": "Últimos 30 Dias",
+ "THIS_MONTH": "This month",
+ "LAST_MONTH": "Last month",
"LAST_3_MONTHS": "Últimos 3 meses",
"LAST_6_MONTHS": "Últimos 6 meses",
"LAST_YEAR": "Último ano",
"CUSTOM_DATE_RANGE": "Intervalo de tempo personalizado"
},
- "DATE_RANGE": [
- {
- "id": 0,
- "name": "Últimos 7 Dias"
- },
- {
- "id": 1,
- "name": "Últimos 30 Dias"
- },
- {
- "id": 2,
- "name": "Últimos 3 meses"
- },
- {
- "id": 3,
- "name": "Últimos 6 meses"
- },
- {
- "id": 4,
- "name": "Último ano"
- },
- {
- "id": 5,
- "name": "Intervalo de tempo personalizado"
- }
- ],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
- "PLACEHOLDER": "Escolher intervalo de tempo"
+ "PLACEHOLDER": "Selecionar intervalo de tempo"
},
- "GROUP_BY_FILTER_DROPDOWN_LABEL": "Agrupar Por",
+ "GROUP_BY_FILTER_DROPDOWN_LABEL": "Agrupar por",
"DURATION_FILTER_LABEL": "Duração",
"GROUPING_OPTIONS": {
"DAY": "Dia",
@@ -117,10 +103,6 @@
}
],
"GROUP_BY_YEAR_OPTIONS": [
- {
- "id": 1,
- "groupBy": "Dia"
- },
{
"id": 2,
"groupBy": "Semana"
@@ -128,23 +110,41 @@
{
"id": 3,
"groupBy": "Mês"
+ },
+ {
+ "id": 4,
+ "groupBy": "Ano"
}
],
- "BUSINESS_HOURS": "Horário comercial"
+ "BUSINESS_HOURS": "Horário comercial",
+ "FILTER_ACTIONS": {
+ "CLEAR_FILTER": "Limpar filtros",
+ "EMPTY_LIST": "Nenhum resultado encontrado"
+ },
+ "PAGINATION": {
+ "RESULTS": "Showing {start} to {end} of {total} results",
+ "PER_PAGE_TEMPLATE": "{size} / page"
+ }
},
"AGENT_REPORTS": {
- "HEADER": "Visão Geral de Agentes",
- "LOADING_CHART": "Carregando dados da carta...",
+ "HEADER": "Visão geral de agentes",
+ "DESCRIPTION": "Easily track agent performance with key metrics such as conversations, response times, resolution times, and resolved cases. Click an agent's name to learn more.",
+ "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_AGENT_REPORTS": "Descarregar relatórios de agentes",
- "FILTER_DROPDOWN_LABEL": "Escolher Agente",
+ "FILTER_DROPDOWN_LABEL": "Selecionar agente",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Procurar agentes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
- "NAME": "Mensagens de entrada",
+ "NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
@@ -153,15 +153,15 @@
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
@@ -196,22 +196,28 @@
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
- "PLACEHOLDER": "Escolher intervalo de tempo"
+ "PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"LABEL_REPORTS": {
- "HEADER": "Visão Geral de Etiquetas",
- "LOADING_CHART": "Carregando dados da carta...",
+ "HEADER": "Visão geral de etiquetas",
+ "DESCRIPTION": "Rastreie o desempenho com métricas-chave, incluindo conversas, tempos de resposta, tempos de resolução e casos resolvidos. Clique num nome de rótulo para informações detalhadas.",
+ "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",
- "FILTER_DROPDOWN_LABEL": "Selecionar Etiqueta",
+ "FILTER_DROPDOWN_LABEL": "Selecionar etiqueta",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "LABELS": "Procurar etiquetas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
- "NAME": "Mensagens de entrada",
+ "NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
@@ -220,15 +226,15 @@
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
@@ -263,22 +269,30 @@
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
- "PLACEHOLDER": "Escolher intervalo de tempo"
+ "PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"INBOX_REPORTS": {
- "HEADER": "Visão Geral da Caixa de Entrada",
- "LOADING_CHART": "Carregando dados da carta...",
+ "HEADER": "Visão geral da caixa de entrada",
+ "DESCRIPTION": "Quickly view your inbox performance with key metrics like conversations, response times, resolution times, and resolved cases—all in one place. Click an inbox name for more details.",
+ "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_INBOX_REPORTS": "Descarregar relatórios de caixa de entrada",
"FILTER_DROPDOWN_LABEL": "Escolher caixa de entrada",
+ "ALL_INBOXES": "All Inboxes",
+ "SEARCH_INBOX": "Search Inbox",
+ "FILTERS": {
+ "INPUT_PLACEHOLDER": {
+ "INBOXES": "Search inboxes"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
- "NAME": "Mensagens de entrada",
+ "NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
@@ -287,15 +301,15 @@
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
@@ -330,22 +344,31 @@
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
- "PLACEHOLDER": "Escolher intervalo de tempo"
+ "PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"TEAM_REPORTS": {
- "HEADER": "Resumo de Equipa",
- "LOADING_CHART": "Carregando dados da carta...",
+ "HEADER": "Visão geral da equipa",
+ "DESCRIPTION": "Get a snapshot of your team's performance with essential metrics, including conversations, response times, resolution times, and resolved cases. Click a team name for more details.",
+ "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_TEAM_REPORTS": "Descarregar relatórios de equipa",
- "FILTER_DROPDOWN_LABEL": "Escolher Equipa",
+ "FILTER_DROPDOWN_LABEL": "Selecionar equipa",
+ "FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Sem filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "TEAMS": "Procurar equipas"
+ }
+ },
"METRICS": {
"CONVERSATIONS": {
"NAME": "Conversas",
"DESC": "( Total )"
},
"INCOMING_MESSAGES": {
- "NAME": "Mensagens de entrada",
+ "NAME": "Mensagens recebidas",
"DESC": "( Total )"
},
"OUTGOING_MESSAGES": {
@@ -354,15 +377,15 @@
},
"FIRST_RESPONSE_TIME": {
"NAME": "Primeiro tempo de resposta",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_TIME": {
"NAME": "Tempo de resolução",
- "DESC": "(Méd. )",
+ "DESC": "( Média )",
"INFO_TEXT": "Número total de conversas utilizadas para cálculo:",
- "TOOLTIP_TEXT": "O tempo da primeira resposta é %{metricValue} (com base em %{conversationCount} conversas)"
+ "TOOLTIP_TEXT": "O tempo da primeira resposta é {metricValue} (com base em {conversationCount} conversas)"
},
"RESOLUTION_COUNT": {
"NAME": "Contagem de resolução",
@@ -397,27 +420,53 @@
],
"CUSTOM_DATE_RANGE": {
"CONFIRM": "Confirmar",
- "PLACEHOLDER": "Escolher intervalo de tempo"
+ "PLACEHOLDER": "Selecionar intervalo de tempo"
}
},
"CSAT_REPORTS": {
"HEADER": "Relatórios CSAT",
- "NO_RECORDS": "Sem dados CSAT disponíveis para reposta.",
- "DOWNLOAD": "Descarregar Relatórios de CSAT",
+ "NO_RECORDS": "No responses yet",
+ "NO_RECORDS_DESCRIPTION": "CSAT survey responses will appear here once customers start providing feedback.",
+ "DOWNLOAD": "Descarregar relatórios CSAT",
"DOWNLOAD_FAILED": "Falha ao descarregar os relatórios CSAT",
"FILTERS": {
+ "ADD_FILTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "NO_FILTER": "Sem filtros disponíveis",
+ "INPUT_PLACEHOLDER": {
+ "AGENTS": "Procurar agentes",
+ "INBOXES": "Search inboxes",
+ "TEAMS": "Procurar equipas",
+ "RATINGS": "Search ratings"
+ },
"AGENTS": {
- "PLACEHOLDER": "Escolher Agentes"
+ "LABEL": "Agente"
+ },
+ "INBOXES": {
+ "LABEL": "Caixa de entrada"
+ },
+ "TEAMS": {
+ "LABEL": "Equipa"
+ },
+ "RATINGS": {
+ "LABEL": "Avaliar"
}
},
"TABLE": {
"HEADER": {
- "CONTACT_NAME": "Contato",
- "AGENT_NAME": "Agente atribuído",
- "RATING": "Avaliar",
- "FEEDBACK_TEXT": "Comentário de feedback"
- }
+ "CONTACT_NAME": "Contacto",
+ "AGENT_NAME": "Agente",
+ "RATING": "Classificação",
+ "FEEDBACK_TEXT": "Comentário de feedback",
+ "CONVERSATION": "Conversa",
+ "CUSTOMER": "Customer",
+ "RESPONSE": "Response",
+ "HANDLED_BY": "Handled by"
+ },
+ "UNKNOWN_CUSTOMER": "Unknown customer"
},
+ "NO_AGENT": "No assigned agent",
+ "NO_FEEDBACK": "No feedback provided",
"METRIC": {
"TOTAL_RESPONSES": {
"LABEL": "Total de respostas",
@@ -429,7 +478,47 @@
},
"RESPONSE_RATE": {
"LABEL": "Taxa de resposta",
- "TOOLTIP": "Número total de respostas / Número total de mensagens CSAT enviadas * 100"
+ "TOOLTIP": "Número total de respostas / Número total de mensagens de questionários CSAT enviadas * 100"
+ },
+ "RATING_DISTRIBUTION": "Rating distribution"
+ },
+ "REVIEW_NOTES": {
+ "TITLE": "Review notes",
+ "PLACEHOLDER": "Add review notes about this rating...",
+ "SAVE": "Guardar",
+ "CANCEL": "Cancelar",
+ "SAVING": "A guardar...",
+ "SAVED": "Notes saved successfully",
+ "SAVE_ERROR": "Failed to save notes",
+ "UPDATED_BY": "Updated by {name} {time}",
+ "UPDATED_BY_LABEL": "Updated by",
+ "PAYWALL": {
+ "TITLE": "Upgrade to add review notes",
+ "AVAILABLE_ON": "The review notes feature is only available in the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Add internal context to every CSAT response with review notes. Capture what really happened, spot patterns faster, and make better decisions from your feedback.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ }
+ }
+ },
+ "BOT_REPORTS": {
+ "HEADER": "Relatórios de bot",
+ "METRIC": {
+ "TOTAL_CONVERSATIONS": {
+ "LABEL": "N.º de conversas",
+ "TOOLTIP": "Número total de conversas tratadas pelo bot"
+ },
+ "TOTAL_RESPONSES": {
+ "LABEL": "Total de respostas",
+ "TOOLTIP": "Número total de respostas enviadas pelo bot"
+ },
+ "RESOLUTION_RATE": {
+ "LABEL": "Taxa de resolução",
+ "TOOLTIP": "Número total de conversas resolvidas pelo bot / Número total de conversas tratadas pelo bot * 100"
+ },
+ "HANDOFF_RATE": {
+ "LABEL": "Taxa de transferência",
+ "TOOLTIP": "Número total de conversas transferidas para agentes / Número total de conversas tratadas pelo bot * 100"
}
}
},
@@ -437,32 +526,52 @@
"HEADER": "Visão geral",
"LIVE": "Disponível",
"ACCOUNT_CONVERSATIONS": {
- "HEADER": "Conversas Abertas",
- "LOADING_MESSAGE": "A importar métricas de conversa...",
+ "HEADER": "Conversas abertas",
+ "LOADING_MESSAGE": "A carregar métricas de conversa...",
"OPEN": "Abertas",
- "UNATTENDED": "Por tratar",
- "UNASSIGNED": "Não atribuído",
+ "UNATTENDED": "Por responder",
+ "UNASSIGNED": "Não atribuída",
"PENDING": "Pendente"
},
"CONVERSATION_HEATMAP": {
"HEADER": "Tráfego de conversa",
"NO_CONVERSATIONS": "Não existem conversas",
- "CONVERSATION": "%{count} conversa",
- "CONVERSATIONS": "%{count} conversas"
+ "CONVERSATION": "{count} conversa",
+ "CONVERSATIONS": "{count} conversas",
+ "DOWNLOAD_REPORT": "Descarregar relatório"
+ },
+ "RESOLUTION_HEATMAP": {
+ "HEADER": "Resolutions",
+ "NO_CONVERSATIONS": "Não existem conversas",
+ "CONVERSATION": "{count} conversa",
+ "CONVERSATIONS": "{count} conversas",
+ "DOWNLOAD_REPORT": "Descarregar relatório"
},
"AGENT_CONVERSATIONS": {
"HEADER": "Conversas por agentes",
"LOADING_MESSAGE": "A gerar métricas dos agentes...",
"NO_AGENTS": "Não existem conversas por agentes",
"TABLE_HEADER": {
- "AGENT": "Representante",
- "OPEN": "ABRIR",
- "UNATTENDED": "Por tratar",
- "STATUS": "SItuação"
+ "AGENT": "Agente",
+ "OPEN": "Abertas",
+ "UNATTENDED": "Por responder",
+ "STATUS": "Estado"
+ }
+ },
+ "TEAM_CONVERSATIONS": {
+ "ALL_TEAMS": "All Teams",
+ "HEADER": "Conversations by teams",
+ "LOADING_MESSAGE": "Loading team metrics...",
+ "NO_TEAMS": "There is no data available",
+ "TABLE_HEADER": {
+ "TEAM": "Equipa",
+ "OPEN": "Abertas",
+ "UNATTENDED": "Por responder",
+ "STATUS": "Situação"
}
},
"AGENT_STATUS": {
- "HEADER": "Status do Operador",
+ "HEADER": "Estado do agente",
"ONLINE": "Disponível",
"BUSY": "Ocupado",
"OFFLINE": "Ausente"
@@ -476,5 +585,66 @@
"THURSDAY": "Quinta-feira",
"FRIDAY": "Sexta-feira",
"SATURDAY": "Sábado"
+ },
+ "SLA_REPORTS": {
+ "HEADER": "Relatórios SLA",
+ "NO_RECORDS": "Conversas com SLA aplicadas não estão disponíveis.",
+ "LOADING": "A carregar dados SLA...",
+ "DOWNLOAD_SLA_REPORTS": "Descarregar relatórios SLA",
+ "DOWNLOAD_FAILED": "Falha ao efetuar download dos relatórios SLA",
+ "DROPDOWN": {
+ "ADD_FIlTER": "Adicionar filtro",
+ "CLEAR_ALL": "Limpar tudo",
+ "CLEAR_FILTER": "Limpar filtros",
+ "EMPTY_LIST": "Nenhum resultado encontrado",
+ "NO_FILTER": "Sem filtros disponíveis",
+ "SEARCH": "Procurar filtros",
+ "INPUT_PLACEHOLDER": {
+ "SLA": "Nome SLA",
+ "AGENTS": "Nome do agente",
+ "INBOXES": "Nome da caixa de entrada",
+ "LABELS": "Nome da etiqueta",
+ "TEAMS": "Nome da equipa"
+ },
+ "SLA": "Política SLA",
+ "INBOXES": "Caixa de entrada",
+ "AGENTS": "Agente",
+ "LABELS": "Etiqueta",
+ "TEAMS": "Equipa"
+ },
+ "WITH": "com",
+ "METRICS": {
+ "HIT_RATE": {
+ "LABEL": "Taxa de sucesso",
+ "TOOLTIP": "Percentagem de SLA criadas foi completada com sucesso"
+ },
+ "NO_OF_MISSES": {
+ "LABEL": "Número de perdas",
+ "TOOLTIP": "Total de SLA perdidas num determinado período"
+ },
+ "NO_OF_CONVERSATIONS": {
+ "LABEL": "Número de conversas",
+ "TOOLTIP": "Número total de conversas com SLA"
+ }
+ },
+ "TABLE": {
+ "HEADER": {
+ "POLICY": "Política",
+ "CONVERSATION": "Conversa",
+ "AGENT": "Agente"
+ },
+ "VIEW_DETAILS": "Ver detalhes"
+ }
+ },
+ "SUMMARY_REPORTS": {
+ "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",
+ "RESOLUTION_COUNT": "Contagem de resolução",
+ "CONVERSATIONS": "Num de conversas"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/resetPassword.json b/app/javascript/dashboard/i18n/locale/pt/resetPassword.json
index d084ba0e4..a842a0795 100644
--- a/app/javascript/dashboard/i18n/locale/pt/resetPassword.json
+++ b/app/javascript/dashboard/i18n/locale/pt/resetPassword.json
@@ -1,17 +1,17 @@
{
"RESET_PASSWORD": {
- "TITLE": "Redefinir senha",
- "DESCRIPTION": "Escreva o endereço de e-mail que usa para aceder ao ChatWoot para obter as instruções de redefinição da senha.",
+ "TITLE": "Redefinir palavra-passe",
+ "DESCRIPTION": "Escreva o endereço de e-mail que usa para aceder ao Wiseteam para obter as instruções de redefinição da palavra-passe.",
"GO_BACK_TO_LOGIN": "Se pretende voltar à página de acesso,",
"EMAIL": {
- "LABEL": "e-mail",
- "PLACEHOLDER": "Por favor, digite seu e-mail.",
+ "LABEL": "E-mail",
+ "PLACEHOLDER": "Por favor, digite o seu e-mail.",
"ERROR": "Por favor, digite um e-mail válido."
},
"API": {
- "SUCCESS_MESSAGE": "Link para redefinir a senha foi enviado para seu e-mail.",
+ "SUCCESS_MESSAGE": "O link para redefinir a palavra-passe foi enviado para o seu e-mail.",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
},
- "SUBMIT": "submeter"
+ "SUBMIT": "Submeter"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/search.json b/app/javascript/dashboard/i18n/locale/pt/search.json
index 118cc0cd1..cf2a44d86 100644
--- a/app/javascript/dashboard/i18n/locale/pt/search.json
+++ b/app/javascript/dashboard/i18n/locale/pt/search.json
@@ -1,25 +1,68 @@
{
"SEARCH": {
"TABS": {
- "ALL": "TODOS",
+ "ALL": "All results",
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Mensagens"
+ "MESSAGES": "Mensagens",
+ "ARTICLES": "Articles"
},
"SECTION": {
"CONTACTS": "Contactos",
"CONVERSATIONS": "Conversas",
- "MESSAGES": "Mensagens"
+ "MESSAGES": "Mensagens",
+ "ARTICLES": "Articles"
},
- "EMPTY_STATE": "Não foi encontrado %{item} para a consulta '%{query}'",
- "EMPTY_STATE_FULL": "Nenhum resultado encontrado para a consulta '%{query}'",
- "PLACEHOLDER_KEYBINDING": "/ para focar",
+ "VIEW_MORE": "View more",
+ "LOAD_MORE": "Load more",
+ "SEARCHING_DATA": "A pesquisar",
+ "LOADING_DATA": "A carregar",
+ "EMPTY_STATE": "Não foi encontrado {item} para a consulta '{query}'",
+ "EMPTY_STATE_FULL": "Nenhum resultado encontrado para a consulta '{query}'",
+ "PLACEHOLDER_KEYBINDING": "/para focar",
"INPUT_PLACEHOLDER": "Digite 3 ou mais caracteres para pesquisar",
+ "RECENT_SEARCHES": "Recent searches",
+ "CLEAR_ALL": "Limpar tudo",
+ "MOST_RECENT": "Most recent",
"EMPTY_STATE_DEFAULT": "Procurar por ID da conversa, email, número de telefone, mensagens para obter melhores resultados. ",
"BOT_LABEL": "Bot",
"READ_MORE": "Ler mais",
+ "READ_LESS": "Read less",
"WROTE": "escreveu:",
- "FROM": "de",
- "EMAIL": "e-mail"
+ "FROM": "De",
+ "EMAIL": "E-mail",
+ "EMAIL_SUBJECT": "Assunto",
+ "PRIVATE": "Private note",
+ "TRANSCRIPT": "Transcript",
+ "CREATED_AT": "created {time}",
+ "UPDATED_AT": "updated {time}",
+ "SORT_BY": {
+ "RELEVANCE": "Relevance"
+ },
+ "DATE_RANGE": {
+ "LAST_7_DAYS": "Últimos 7 Dias",
+ "LAST_30_DAYS": "Últimos 30 Dias",
+ "LAST_60_DAYS": "Últimos 60 Dias",
+ "LAST_90_DAYS": "Últimos 90 Dias",
+ "CUSTOM_RANGE": "Custom range:",
+ "CREATED_BETWEEN": "Created between",
+ "AND": "and",
+ "APPLY": "Confirmar",
+ "BEFORE_DATE": "Before {date}",
+ "AFTER_DATE": "After {date}",
+ "TIME_RANGE": "Filter by time",
+ "CLEAR_FILTER": "Limpar filtros"
+ },
+ "FILTERS": {
+ "FILTER_MESSAGE": "Filter messages by:",
+ "FROM": "Remetente",
+ "IN": "Caixa de entrada",
+ "AGENTS": "Agentes",
+ "CONTACTS": "Contactos",
+ "INBOXES": "Caixas de Entrada",
+ "NO_AGENTS": "Nenhum agente encontrado",
+ "NO_CONTACTS": "Start by searching to see results",
+ "NO_INBOXES": "No inboxes found"
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/settings.json b/app/javascript/dashboard/i18n/locale/pt/settings.json
index 945135d2b..4533315c0 100644
--- a/app/javascript/dashboard/i18n/locale/pt/settings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/settings.json
@@ -10,6 +10,7 @@
"PASSWORD_UPDATE_SUCCESS": "Sua senha foi alterada com sucesso",
"AFTER_EMAIL_CHANGED": "Seu perfil foi atualizado com sucesso, faça o login novamente pois suas credenciais foram alteradas",
"FORM": {
+ "PICTURE": "Imagem de perfil",
"AVATAR": "Imagem do perfil",
"ERROR": "Por favor, corrigir erros de formulário",
"REMOVE_IMAGE": "Excluir",
@@ -34,6 +35,31 @@
}
}
},
+ "INTERFACE_SECTION": {
+ "TITLE": "Interface",
+ "NOTE": "Customize the look and feel of your Chatwoot dashboard.",
+ "FONT_SIZE": {
+ "TITLE": "Font size",
+ "NOTE": "Adjust the text size across the dashboard based on your preference.",
+ "UPDATE_SUCCESS": "Your font settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the font settings, please try again",
+ "OPTIONS": {
+ "SMALLER": "Smaller",
+ "SMALL": "Small",
+ "DEFAULT": "Padrão",
+ "LARGE": "Large",
+ "LARGER": "Larger",
+ "EXTRA_LARGE": "Extra Large"
+ }
+ },
+ "LANGUAGE": {
+ "TITLE": "Preferred Language",
+ "NOTE": "Choose the language you want to use.",
+ "UPDATE_SUCCESS": "Your Language settings have been updated successfully",
+ "UPDATE_ERROR": "There is an error while updating the language settings, please try again",
+ "USE_ACCOUNT_DEFAULT": "Use account default"
+ }
+ },
"MESSAGE_SIGNATURE_SECTION": {
"TITLE": "Assinatura de mensagem pessoal",
"NOTE": "Crie uma assinatura de mensagem única para aparecer no final de todas as mensagens que enviar de qualquer caixa de entrada. Pode incluir uma imagem embutida, que será suportada nos canais de live-chat, e-mail e caixas de entrada API.",
@@ -42,7 +68,8 @@
"API_SUCCESS": "Assinatura salva com sucesso",
"IMAGE_UPLOAD_ERROR": "Não foi possível carregar a imagem! Tente novamente",
"IMAGE_UPLOAD_SUCCESS": "Imagem adicionada. Clique em salvar para salvar a assinatura",
- "IMAGE_UPLOAD_SIZE_ERROR": "O tamanho da imagem deve ser inferior a {size}MB"
+ "IMAGE_UPLOAD_SIZE_ERROR": "O tamanho da imagem deve ser inferior a {size}MB",
+ "INLINE_IMAGE_WARNING": "Pasted inline images were removed. Please use the image upload button to add images to your signature."
},
"MESSAGE_SIGNATURE": {
"LABEL": "Assinatura da mensagem",
@@ -54,15 +81,45 @@
"NOTE": "Atualizar sua senha irá redefinir seus logins em vários dispositivos.",
"BTN_TEXT": "Alterar password"
},
+ "SECURITY_SECTION": {
+ "TITLE": "Security",
+ "NOTE": "Manage additional security features for your account.",
+ "MFA_BUTTON": "Manage Two-Factor Authentication"
+ },
"ACCESS_TOKEN": {
"TITLE": "Token de acesso",
- "NOTE": "Este token pode ser usado se você estiver construindo uma integração baseada em API"
+ "NOTE": "Este token pode ser usado se você estiver construindo uma integração baseada em API",
+ "COPY": "Copiar",
+ "RESET": "Reset",
+ "CONFIRM_RESET": "Tem a certeza?",
+ "CONFIRM_HINT": "Clique novamente para confirmar",
+ "RESET_SUCCESS": "O token de acesso voltou a ser gerado",
+ "RESET_ERROR": "Não foi possível voltar a gerar o token de acesso, por favor tente novamente"
},
"AUDIO_NOTIFICATIONS_SECTION": {
- "TITLE": "Notificações de som",
- "NOTE": "Ativar notificações de som no painel quando surgirem novas mensagens e conversas.",
+ "TITLE": "Audio Alerts",
+ "NOTE": "Enable audio alerts in dashboard for new messages and conversations.",
+ "PLAY": "Play sound",
+ "ALERT_TYPES": {
+ "NONE": "Nenhuma",
+ "MINE": "Atribuída",
+ "ALL": "Todas",
+ "ASSIGNED": "My assigned conversations",
+ "UNASSIGNED": "Unassigned conversations",
+ "NOTME": "Open conversations assigned to others"
+ },
+ "ALERT_COMBINATIONS": {
+ "NONE": "You haven't selected any options, you won't receive any audio alerts.",
+ "ASSIGNED": "You'll receive alerts for conversations assigned to you.",
+ "UNASSIGNED": "You'll receive alerts for any unassigned conversations.",
+ "NOTME": "You'll receive alerts for conversations assigned to others.",
+ "ASSIGNED+UNASSIGNED": "You'll receive alerts for your assigned conversations and any unattended ones.",
+ "ASSIGNED+NOTME": "You'll receive alerts for conversations assigned to you and to others, but not for unassigned ones.",
+ "NOTME+UNASSIGNED": "You'll receive alerts for unattended conversations and those assigned to others.",
+ "ASSIGNED+NOTME+UNASSIGNED": "You'll receive alerts for all conversations."
+ },
"ALERT_TYPE": {
- "TITLE": "Eventos de alerta:",
+ "TITLE": "Eventos de alerta para conversas",
"NONE": "Nenhuma",
"ASSIGNED": "Conversas atribuídas",
"ALL_CONVERSATIONS": "Todas as conversas"
@@ -74,7 +131,9 @@
"TITLE": "Condições de alerta:",
"CONDITION_ONE": "Enviar alertas de áudio apenas quando a janela do navegador não estiver ativa",
"CONDITION_TWO": "Enviar alertas a cada 30 segundos até que todas as conversas atribuídas sejam lidas"
- }
+ },
+ "SOUND_PERMISSION_ERROR": "Autoplay is disabled in your browser. To hear alerts automatically, enable sound permission in your browser settings or interact with the page.",
+ "READ_MORE": "Ler mais"
},
"EMAIL_NOTIFICATIONS_SECTION": {
"TITLE": "Notificações por e-mail",
@@ -83,7 +142,27 @@
"CONVERSATION_CREATION": "Enviar notificações por email quando uma nova conversa é criada",
"CONVERSATION_MENTION": "Enviar notificações por email quando for mencionado numa conversa",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Enviar mensagem de email quando criada uma mensagem ou atribuída uma conversa",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificações por email quando uma nova mensagem é criada numa conversa em que está a participar"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificações por email quando uma nova mensagem é criada numa conversa em que está a participar",
+ "SLA_MISSED_FIRST_RESPONSE": "Enviar notificações por e-mail quando uma conversa perder a primeira resposta SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Enviar notificações por email quando uma conversa falhar a SLA de primeira resposta",
+ "SLA_MISSED_RESOLUTION": "Enviar notificações por email quando uma conversa falhar a SLA de resolução"
+ },
+ "NOTIFICATIONS": {
+ "TITLE": "Preferências de notificação",
+ "TYPE_TITLE": "Tipo de notificação",
+ "EMAIL": "e-mail",
+ "PUSH": "Notificações Push",
+ "TYPES": {
+ "CONVERSATION_CREATED": "Nova conversa criada",
+ "CONVERSATION_ASSIGNED": "Foi-lhe atribuída uma conversa",
+ "CONVERSATION_MENTION": "Foi mencionado numa conversa",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Foi criada uma nova mensagem numa conversa que lhe está atribuída",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Foi criada uma nova mensagem numa conversa em que está a participar",
+ "SLA_MISSED_FIRST_RESPONSE": "Uma conversa perdeu a primeira resposta SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Uma conversa perdeu a a próxima resposta SLA",
+ "SLA_MISSED_RESOLUTION": "Uma conversa falhou a SLA de resolução"
+ },
+ "BROWSER_PERMISSION": "Ative as notificações Push do seu navegador para que as possa receber"
},
"API": {
"UPDATE_SUCCESS": "As suas preferências de notificação foram atualizadas com sucesso",
@@ -98,7 +177,10 @@
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Enviar uma notificação Push quando uma mensagem é criada numa conversa atribuída",
"PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Enviar notificações push quando uma nova mensagem é criada numa conversa em que está a participar",
"HAS_ENABLED_PUSH": "Ativou notificações Push neste navegador.",
- "REQUEST_PUSH": "Ativar notificações Push"
+ "REQUEST_PUSH": "Ativar notificações Push",
+ "SLA_MISSED_FIRST_RESPONSE": "Enviar uma notificação Push quando uma conversa falhar a SLA de primeira resposta",
+ "SLA_MISSED_NEXT_RESPONSE": "Enviar uma notificação Push quando uma conversa falhar a SLA de resposta seguinte",
+ "SLA_MISSED_RESOLUTION": "Enviar uma notificação Push quando uma conversa falhar a SLA de resolução"
},
"PROFILE_IMAGE": {
"LABEL": "Imagem do perfil"
@@ -115,13 +197,14 @@
},
"AVAILABILITY": {
"LABEL": "Disponibilidade",
- "STATUSES_LIST": [
- "Disponível",
- "Ocupado",
- "Ausente"
- ],
+ "STATUS": {
+ "ONLINE": "Disponível",
+ "BUSY": "Ocupado",
+ "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": "Não é possível alterar a disponibilidade enquanto está em modo de representação de um utilizador"
},
"EMAIL": {
"LABEL": "Seu endereço de e-mail",
@@ -147,14 +230,18 @@
},
"SIDEBAR_ITEMS": {
"CHANGE_AVAILABILITY_STATUS": "Trocar",
- "CHANGE_ACCOUNTS": "Trocar de conta",
- "CONTACT_SUPPORT": "Contactar Suporte",
+ "CHANGE_ACCOUNTS": "Switch account",
+ "SWITCH_ACCOUNT": "Switch account",
+ "CONTACT_SUPPORT": "Contact support",
"SELECTOR_SUBTITLE": "Escolha uma conta da lista a seguir",
- "PROFILE_SETTINGS": "Configurações do perfil",
- "KEYBOARD_SHORTCUTS": "Atalhos do teclado",
- "APPEARANCE": "Alterar Aspeto",
- "SUPER_ADMIN_CONSOLE": "Área de Super Administrador",
- "LOGOUT": "Desconectar"
+ "PROFILE_SETTINGS": "Profile settings",
+ "YEAR_IN_REVIEW": "Year in Review",
+ "KEYBOARD_SHORTCUTS": "Keyboard shortcuts",
+ "APPEARANCE": "Change appearance",
+ "SUPER_ADMIN_CONSOLE": "SuperAdmin console",
+ "DOCS": "Read documentation",
+ "CHANGELOG": "Changelog",
+ "LOGOUT": "Log out"
},
"APP_GLOBAL": {
"TRIAL_MESSAGE": "dias de teste restantes.",
@@ -166,6 +253,12 @@
"ACCOUNT_SUSPENDED": {
"TITLE": "Conta Suspensa",
"MESSAGE": "A sua conta está suspensa. Entre em contato com a equipa de suporte para obter mais informações."
+ },
+ "NO_ACCOUNTS": {
+ "TITLE": "No account found",
+ "MESSAGE_CLOUD": "You are not part of any accounts right now. If you think this is a mistake, please reach out to our support team.",
+ "MESSAGE_SELF_HOSTED": "You are not part of any accounts right now. Please reach out to your administrator.",
+ "LOGOUT": "Log out"
}
},
"COMPONENTS": {
@@ -181,13 +274,18 @@
"FILE_BUBBLE": {
"DOWNLOAD": "BAIXAR",
"UPLOADING": "A carregar...",
- "INSTAGRAM_STORY_UNAVAILABLE": "Esta história já não está disponível."
+ "INSTAGRAM_STORY_UNAVAILABLE": "Esta história já não está disponível.",
+ "INSTAGRAM_STORY_REPLY": "Respondeu à sua história:"
},
"LOCATION_BUBBLE": {
"SEE_ON_MAP": "Veja no mapa"
},
"FORM_BUBBLE": {
"SUBMIT": "submeter"
+ },
+ "MEDIA": {
+ "IMAGE_UNAVAILABLE": "This image is no longer available.",
+ "LOADING_FAILED": "Loading failed"
}
},
"CONFIRM_EMAIL": "A verificar...",
@@ -197,17 +295,31 @@
}
},
"SIDEBAR": {
+ "NO_ITEMS": "No items",
"CURRENTLY_VIEWING_ACCOUNT": "Atualmente visualizando:",
"SWITCH": "Alternar",
+ "INBOX_VIEW": "Visualização da Caixa de entrada",
"CONVERSATIONS": "Conversas",
- "INBOX": "Caixa de Entrada",
+ "INBOX": "My Inbox",
"ALL_CONVERSATIONS": "Todas as conversas",
"MENTIONED_CONVERSATIONS": "Menções",
"PARTICIPATING_CONVERSATIONS": "Participando",
- "UNATTENDED_CONVERSATIONS": "Por tratar",
+ "UNATTENDED_CONVERSATIONS": "Por responder",
"REPORTS": "relatórios",
"SETTINGS": "Configurações",
"CONTACTS": "Contactos",
+ "ACTIVE": "Ativa",
+ "COMPANIES": "Companies",
+ "ALL_COMPANIES": "All Companies",
+ "CAPTAIN": "Captain",
+ "CAPTAIN_ASSISTANTS": "Assistants",
+ "CAPTAIN_DOCUMENTS": "Documents",
+ "CAPTAIN_RESPONSES": "FAQs",
+ "CAPTAIN_TOOLS": "Ferramentas",
+ "CAPTAIN_SCENARIOS": "Scenarios",
+ "CAPTAIN_PLAYGROUND": "Playground",
+ "CAPTAIN_INBOXES": "Caixas de Entrada",
+ "CAPTAIN_SETTINGS": "Configurações",
"HOME": "Principal",
"AGENTS": "Agentes",
"AGENT_BOTS": "Bots",
@@ -234,51 +346,269 @@
"NEW_INBOX": "Nova caixa de entrada",
"REPORTS_CONVERSATION": "Conversas",
"CSAT": "CSAT",
+ "LIVE_CHAT": "Live Chat",
+ "SMS": "SMS",
+ "WHATSAPP": "WhatsApp",
"CAMPAIGNS": "Campanhas",
"ONGOING": "Em curso",
"ONE_OFF": "Pontual",
+ "REPORTS_SLA": "SLA",
+ "REPORTS_BOT": "Bot",
"REPORTS_AGENT": "Agentes",
"REPORTS_LABEL": "Etiquetas",
"REPORTS_INBOX": "Caixa de Entrada",
"REPORTS_TEAM": "Equipa",
+ "AGENT_ASSIGNMENT": "Agent Assignment",
"SET_AVAILABILITY_TITLE": "Defina-se como",
+ "SET_YOUR_AVAILABILITY": "Definir disponibilidade",
"SLA": "SLA",
+ "CUSTOM_ROLES": "Funções personalizadas",
"BETA": "Beta",
"REPORTS_OVERVIEW": "Visão geral",
- "FACEBOOK_REAUTHORIZE": "A sua ligação ao Facebook caducou, volte a ligar a página para poder continuar a utilizar os serviços",
+ "REAUTHORIZE": "Your inbox connection has expired, please reconnect\n to continue receiving and sending messages",
"HELP_CENTER": {
"TITLE": "Centro de Suporte",
- "ALL_ARTICLES": "Todos os Artigos",
- "MY_ARTICLES": "Meus Artigos",
- "DRAFT": "Rascunho",
- "ARCHIVED": "Arquivado",
- "CATEGORY": "Categoria",
- "SETTINGS": "Configurações",
- "CATEGORY_EMPTY_MESSAGE": "Nenhuma categoria encontrada"
+ "ARTICLES": "Articles",
+ "CATEGORIES": "Categorias",
+ "LOCALES": "Locais",
+ "SETTINGS": "Configurações"
},
+ "CHANNELS": "Channels",
"SET_AUTO_OFFLINE": {
"TEXT": "Marcar offline automaticamente",
- "INFO_TEXT": "Deixar o sistema alterar automaticamente o seu estado para offline quando não estiver a usar a app ou o painel."
+ "INFO_TEXT": "Deixar o sistema alterar automaticamente o seu estado para offline quando não estiver a usar a app ou o painel.",
+ "INFO_SHORT": "Automatically mark offline when you aren't using the app."
},
- "DOCS": "Ler documentos"
+ "DOCS": "Ler documentos",
+ "SECURITY": "Security",
+ "CAPTAIN_AI": "Captain",
+ "CONVERSATION_WORKFLOW": "Conversation Workflow"
+ },
+ "CAPTAIN_SETTINGS": {
+ "TITLE": "Captain Settings",
+ "DESCRIPTION": "Configure your AI models and features for Captain. Captain follows a credit based billing, you will be charged credits for every action Captain takes based on the model selected.",
+ "LOADING": "Loading Captain configuration...",
+ "LINK_TEXT": "Learn more about Captain Credits",
+ "NOT_ENABLED": "Captain is not enabled for your account. Please upgrade your plan to access Captain features.",
+ "MODEL_CONFIG": {
+ "TITLE": "Model Configuration",
+ "DESCRIPTION": "Select AI models for different features.",
+ "SELECT_MODEL": "Select model",
+ "CREDITS_PER_MESSAGE": "{credits} credit/message",
+ "COMING_SOON": "Coming soon",
+ "EDITOR": {
+ "TITLE": "Editor Features",
+ "DESCRIPTION": "Powers smart compose, grammar corrections, tone adjustments, and content enhancement in your message editor."
+ },
+ "ASSISTANT": {
+ "TITLE": "Assistant",
+ "DESCRIPTION": "Handles automated responses, conversation summaries, and intelligent reply suggestions for customer interactions."
+ },
+ "COPILOT": {
+ "TITLE": "Co-pilot",
+ "DESCRIPTION": "Provides real-time contextual suggestions, knowledge base recommendations, and proactive insights during conversations."
+ }
+ },
+ "FEATURES": {
+ "TITLE": "Características",
+ "DESCRIPTION": "Enable or disable AI-powered features.",
+ "AUDIO_TRANSCRIPTION": {
+ "TITLE": "Audio Transcription",
+ "DESCRIPTION": "Automatically convert voice messages and call recordings into searchable text transcripts."
+ },
+ "HELP_CENTER_SEARCH": {
+ "TITLE": "Help Center Search Indexing",
+ "DESCRIPTION": "Use AI for context aware search inside your help center articles."
+ },
+ "LABEL_SUGGESTION": {
+ "TITLE": "Label Suggestion",
+ "DESCRIPTION": "Automatically suggest relevant labels and tags for conversations based on content analysis and context.",
+ "MODEL_TITLE": "Label Suggestion Model",
+ "MODEL_DESCRIPTION": "Select the AI model to use for analyzing conversations and suggesting appropriate labels"
+ }
+ },
+ "API": {
+ "SUCCESS": "Captain settings updated successfully.",
+ "ERROR": "Failed to update Captain settings. Please try again."
+ }
},
"BILLING_SETTINGS": {
"TITLE": "Cobrança",
+ "DESCRIPTION": "Manage your subscription here, upgrade your plan and get more for your team.",
"CURRENT_PLAN": {
"TITLE": "Plano atual",
- "PLAN_NOTE": "Atualmente tem o **%{plan}* subscrito com **%{quantity}** licenças"
+ "PLAN_NOTE": "Atualmente tem o **{plan}* subscrito com **{quantity}** licenças",
+ "SEAT_COUNT": "Number of seats",
+ "RENEWS_ON": "Renews on"
},
+ "VIEW_PRICING": "View Pricing",
"MANAGE_SUBSCRIPTION": {
"TITLE": "Administrar o seu serviço",
"DESCRIPTION": "Visualize as suas faturas anteriores, edite os seus dados de pagamento, ou cancele o seu serviço.",
"BUTTON_TXT": "Ir para a área de faturação"
},
+ "CAPTAIN": {
+ "TITLE": "Captain",
+ "DESCRIPTION": "Manage usage and credits for Captain AI.",
+ "BUTTON_TXT": "Buy more credits",
+ "DOCUMENTS": "Documents",
+ "RESPONSES": "Responses",
+ "UPGRADE": "Captain is not available on the free plan, upgrade now to get access to assistants, copilot and more.",
+ "REFRESH_CREDITS": "Atualizar"
+ },
"CHAT_WITH_US": {
"TITLE": "Precisa de ajuda?",
"DESCRIPTION": "Está com dificuldade em efetuar o seu pagamento? Estamos aqui para ajudar.",
"BUTTON_TXT": "Fale connosco"
},
- "NO_BILLING_USER": "Os seus dados de pagamento estão a ser configurados. Atualize a página e tente novamente."
+ "NO_BILLING_USER": "Os seus dados de pagamento estão a ser configurados. Atualize a página e tente novamente.",
+ "TOPUP": {
+ "BUY_CREDITS": "Buy more credits",
+ "MODAL_TITLE": "Buy AI Credits",
+ "MODAL_DESCRIPTION": "Purchase additional credits for Captain AI.",
+ "CREDITS": "CREDITS",
+ "ONE_TIME": "one-time",
+ "POPULAR": "Most Popular",
+ "NOTE_TITLE": "Observação:",
+ "NOTE_DESCRIPTION": "Credits are added immediately and expire in 6 months. An active subscription is required to use credits. Purchased credits are consumed after your monthly plan credits.",
+ "CANCEL": "Cancelar",
+ "PURCHASE": "Purchase Credits",
+ "LOADING": "Loading options...",
+ "FETCH_ERROR": "Failed to load credit options. Please try again.",
+ "PURCHASE_ERROR": "Failed to process purchase. Please try again.",
+ "PURCHASE_SUCCESS": "Successfully added {credits} credits to your account",
+ "CONFIRM": {
+ "TITLE": "Confirm Purchase",
+ "DESCRIPTION": "You are about to purchase {credits} credits for {amount}.",
+ "INSTANT_DEDUCTION_NOTE": "Your saved card will be charged immediately upon confirmation.",
+ "GO_BACK": "Voltar",
+ "CONFIRM_PURCHASE": "Confirm Purchase"
+ }
+ }
+ },
+ "SECURITY_SETTINGS": {
+ "TITLE": "Security",
+ "DESCRIPTION": "Manage your account security settings.",
+ "LINK_TEXT": "Learn more about SAML SSO",
+ "SAML_DISABLED_MESSAGE": "SAML SSO is currently disabled. Please contact your administrator to enable this feature.",
+ "SAML": {
+ "TITLE": "SAML SSO",
+ "NOTE": "Configure SAML single sign-on for your account. Users will authenticate through your identity provider instead of using email/password.",
+ "ACS_URL": {
+ "LABEL": "ACS URL",
+ "TOOLTIP": "Assertion Consumer Service URL - Configure this URL in your IdP as the destination for SAML responses"
+ },
+ "SSO_URL": {
+ "LABEL": "SSO URL",
+ "HELP": "The URL where SAML authentication requests will be sent",
+ "PLACEHOLDER": "https://your-idp.com/saml/sso"
+ },
+ "CERTIFICATE": {
+ "LABEL": "Signing certificate in PEM format",
+ "HELP": "The public certificate from your identity provider used to verify SAML responses",
+ "PLACEHOLDER": "-----BEGIN CERTIFICATE-----\nMIIC..."
+ },
+ "FINGERPRINT": {
+ "LABEL": "Fingerprint",
+ "TOOLTIP": "SHA-1 fingerprint of the certificate - Use this to verify the certificate in your IdP configuration"
+ },
+ "COPY_SUCCESS": "Código copiado com sucesso para área de transferência",
+ "SP_ENTITY_ID": {
+ "LABEL": "SP Entity ID",
+ "HELP": "Unique identifier for this application as a service provider (auto-generated).",
+ "TOOLTIP": "Unique identifier for Chatwoot as the Service Provider - Configure this in your IdP settings"
+ },
+ "IDP_ENTITY_ID": {
+ "LABEL": "Identity Provider Entity ID",
+ "HELP": "Unique identifier for your identity provider (usually found in IdP configuration)",
+ "PLACEHOLDER": "https://your-idp.com/saml"
+ },
+ "UPDATE_BUTTON": "Update SAML Settings",
+ "API": {
+ "SUCCESS": "SAML settings updated successfully",
+ "ERROR": "Failed to update SAML settings",
+ "ERROR_LOADING": "Failed to load SAML settings",
+ "DISABLED": "SAML settings disabled successfully"
+ },
+ "VALIDATION": {
+ "REQUIRED_FIELDS": "SSO URL, Identity Provider Entity ID, and Certificate are required fields",
+ "SSO_URL_ERROR": "Please enter a valid SSO URL",
+ "CERTIFICATE_ERROR": "Certificate is required",
+ "IDP_ENTITY_ID_ERROR": "Identity Provider Entity ID is required"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade to an Enterprise plan to access SAML single sign-on and other advanced security features.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to enable SAML SSO",
+ "AVAILABLE_ON": "The SAML SSO feature is only available in the Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to get access to SAML single sign-on and other advanced features.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ATTRIBUTE_MAPPING": {
+ "TITLE": "SAML Attribute Setup",
+ "DESCRIPTION": "The following attribute mappings must be configured in your identity provider"
+ },
+ "INFO_SECTION": {
+ "TITLE": "Service Provider Information",
+ "TOOLTIP": "Copy these values and configure them in your Identity Provider to establish the SAML connection"
+ }
+ }
+ },
+ "CONVERSATION_WORKFLOW": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Conversation Workflows",
+ "DESCRIPTION": "Configure rules and required fields for conversation resolution."
+ }
+ },
+ "REQUIRED_ATTRIBUTES": {
+ "TITLE": "Attributes required on resolution",
+ "DESCRIPTION": "When resolving a conversation, agents will be prompted to fill these attributes if they haven't yet.",
+ "NO_ATTRIBUTES": "No attributes added yet",
+ "ADD": {
+ "TITLE": "Add Attributes",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos"
+ },
+ "SAVE": {
+ "SUCCESS": "Required attributes updated",
+ "ERROR": "Could not update required attributes, please try again"
+ },
+ "MODAL": {
+ "TITLE": "Resolver conversa",
+ "DESCRIPTION": "Please fill in the following custom attributes before resolving this conversation",
+ "ACTIONS": {
+ "RESOLVE": "Resolver conversa",
+ "CANCEL": "Cancelar"
+ },
+ "PLACEHOLDERS": {
+ "TEXT": "Write a note...",
+ "NUMBER": "Enter a number",
+ "LINK": "Add a link",
+ "DATE": "Pick a date",
+ "LIST": "Select an option"
+ },
+ "CHECKBOX": {
+ "YES": "Sim",
+ "NO": "Não"
+ }
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade to use required attributes",
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the Business and Enterprise plans.",
+ "UPGRADE_PROMPT": "Upgrade your plan to prompt agents to fill required attributes before conversation resolution.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "The required conversation attributes feature is available on the paid plans.",
+ "UPGRADE_PROMPT": "Upgrade to a paid plan to enforce required attributes before conversation resolution.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ }
+ }
},
"CREATE_ACCOUNT": {
"NO_ACCOUNT_WARNING": "Não conseguimos encontrar nenhuma conta do Chatwoot. Por favor, crie uma nova conta para continuar.",
@@ -294,7 +624,8 @@
"LABEL": "Nome da empresa",
"PLACEHOLDER": "Wayne Enterprises"
},
- "SUBMIT": "submeter"
+ "SUBMIT": "submeter",
+ "CANCEL": "Cancelar"
}
},
"KEYBOARD_SHORTCUTS": {
@@ -311,15 +642,282 @@
"GO_TO_REPORTS_SIDEBAR": "Ir para barra lateral de Relatórios",
"MOVE_TO_NEXT_TAB": "Mover para próximo separador da lista de conversas",
"GO_TO_SETTINGS": "Ir para as configurações",
- "SWITCH_CONVERSATION_STATUS": "Mudar para o próximo estado de conversa",
"SWITCH_TO_PRIVATE_NOTE": "Alterar para nota privada",
"SWITCH_TO_REPLY": "Mudar para resposta",
"TOGGLE_SNOOZE_DROPDOWN": "Ativar/desativar suspensos"
+ }
+ },
+ "ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent assignment",
+ "DESCRIPTION": "Define policies to effectively manage workload and route conversations based on the needs of inboxes and agents. Learn more here"
+ },
+ "ASSIGNMENT_POLICY": {
+ "TITLE": "Assignment policy",
+ "DESCRIPTION": "Manage how conversations get assigned in inboxes.",
+ "FEATURES": [
+ "Assign by conversations evenly or by available capacity",
+ "Add fair distribution rules to avoid overloading any agent",
+ "Add inboxes to a policy - one policy per inbox"
+ ]
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "TITLE": "Agent capacity policy",
+ "DESCRIPTION": "Manage workload for agents.",
+ "FEATURES": [
+ "Define maximum conversations per inbox",
+ "Create exceptions based on labels and time",
+ "Add agents to a policy - one policy per agent"
+ ]
+ }
},
- "KEYS": {
- "WINDOWS_KEY_AND_COMMAND_KEY": "Win / ⌘",
- "ALT_OR_OPTION_KEY": "Alt / ⌥",
- "FORWARD_SLASH_KEY": "/"
+ "AGENT_ASSIGNMENT_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Assignment policy",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "ORDER": "Order",
+ "PRIORITY": "Prioridade",
+ "ACTIVE": "Ativa",
+ "INACTIVE": "Inactive",
+ "POPOVER": "Added inboxes",
+ "EDIT": "Editar"
+ },
+ "NO_RECORDS_FOUND": "No assignment policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create assignment policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy created successfully",
+ "ERROR_MESSAGE": "Failed to create assignment policy",
+ "INBOX_LINKED": "Inbox has been linked to the policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit assignment policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_INBOX_DIALOG": {
+ "TITLE": "Add inbox",
+ "DESCRIPTION": "{inboxName} inbox is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
+ },
+ "INBOX_LINK_PROMPT": {
+ "TITLE": "Link inbox to policy",
+ "DESCRIPTION": "Would you like to link this inbox to the assignment policy?",
+ "LINK_BUTTON": "Link inbox",
+ "CANCEL_BUTTON": "Skip"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Assignment policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update assignment policy"
+ },
+ "INBOX_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Inbox removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove inbox from policy"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição:",
+ "PLACEHOLDER": "Inserir descrição"
+ },
+ "STATUS": {
+ "LABEL": "Estado:",
+ "PLACEHOLDER": "Selecionar estado",
+ "ACTIVE": "Policy is active",
+ "INACTIVE": "Policy is inactive"
+ },
+ "ASSIGNMENT_ORDER": {
+ "LABEL": "Assignment order",
+ "ROUND_ROBIN": {
+ "LABEL": "Round robin",
+ "DESCRIPTION": "Assign conversations evenly among agents."
+ },
+ "BALANCED": {
+ "LABEL": "Balanced",
+ "DESCRIPTION": "Assign conversations based on available capacity.",
+ "PREMIUM_MESSAGE": "Upgrade to access balanced assignment and agent capacity management.",
+ "PREMIUM_BADGE": "Premium"
+ }
+ },
+ "ASSIGNMENT_PRIORITY": {
+ "LABEL": "Assignment priority",
+ "EARLIEST_CREATED": {
+ "LABEL": "Earliest created",
+ "DESCRIPTION": "The conversation that was created first gets assigned first."
+ },
+ "LONGEST_WAITING": {
+ "LABEL": "Longest waiting",
+ "DESCRIPTION": "The conversation waiting the longest gets assigned first."
+ }
+ },
+ "FAIR_DISTRIBUTION": {
+ "LABEL": "Fair distribution policy",
+ "DESCRIPTION": "Set the maximum number of conversations that can be assigned per agent within a time window to avoid overloading any one agent. This required field defaults to 100 conversations per hour.",
+ "INPUT_MAX": "Assign max",
+ "DURATION": "Conversations per agent in every"
+ },
+ "INBOXES": {
+ "LABEL": "Added inboxes",
+ "DESCRIPTION": "Add inboxes for which this policy will be applicable.",
+ "ADD_BUTTON": "Add inbox",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select inboxes to add",
+ "ADD_BUTTON": "Adicionar"
+ },
+ "EMPTY_STATE": "No inboxes added to this policy, add an inbox to get started",
+ "API": {
+ "SUCCESS_MESSAGE": "Inbox successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add inbox to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Assignment policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete assignment policy"
+ }
+ },
+ "AGENT_CAPACITY_POLICY": {
+ "INDEX": {
+ "HEADER": {
+ "TITLE": "Agent capacity",
+ "CREATE_POLICY": "New policy"
+ },
+ "CARD": {
+ "POPOVER": "Added agents",
+ "EDIT": "Editar"
+ },
+ "NO_RECORDS_FOUND": "No agent capacity policies found"
+ },
+ "CREATE": {
+ "HEADER": {
+ "TITLE": "Create agent capacity policy"
+ },
+ "CREATE_BUTTON": "Create policy",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy created successfully",
+ "ERROR_MESSAGE": "Failed to create agent capacity policy"
+ }
+ },
+ "EDIT": {
+ "HEADER": {
+ "TITLE": "Edit agent capacity policy"
+ },
+ "EDIT_BUTTON": "Update policy",
+ "CONFIRM_ADD_AGENT_DIALOG": {
+ "TITLE": "Add agent",
+ "DESCRIPTION": "{agentName} is already linked to another policy. Are you sure you want to link it to this policy? It will be unlinked from the other policy.",
+ "CONFIRM_BUTTON_LABEL": "Continue",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Agent capacity policy updated successfully",
+ "ERROR_MESSAGE": "Failed to update agent capacity policy"
+ },
+ "AGENT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Agent added to policy successfully",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ },
+ "REMOVE": {
+ "SUCCESS_MESSAGE": "Agent removed from policy successfully",
+ "ERROR_MESSAGE": "Failed to remove agent from policy"
+ }
+ },
+ "INBOX_LIMIT_API": {
+ "ADD": {
+ "SUCCESS_MESSAGE": "Inbox limit added successfully",
+ "ERROR_MESSAGE": "Failed to add inbox limit"
+ },
+ "UPDATE": {
+ "SUCCESS_MESSAGE": "Inbox limit updated successfully",
+ "ERROR_MESSAGE": "Failed to update inbox limit"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Inbox limit deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete inbox limit"
+ }
+ }
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Policy name:",
+ "PLACEHOLDER": "Enter policy name"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição:",
+ "PLACEHOLDER": "Inserir descrição"
+ },
+ "INBOX_CAPACITY_LIMIT": {
+ "LABEL": "Inbox capacity limits",
+ "ADD_BUTTON": "Add inbox",
+ "FIELD": {
+ "SELECT_INBOX": "Select inbox",
+ "MAX_CONVERSATIONS": "Max conversations",
+ "SET_LIMIT": "Set limit"
+ },
+ "EMPTY_STATE": "No inbox limit set"
+ },
+ "EXCLUSION_RULES": {
+ "LABEL": "Exclusion rules",
+ "DESCRIPTION": "Conversations that satisfy the following conditions would not count towards agent capacity",
+ "TAGS": {
+ "LABEL": "Exclude conversations tagged with specific labels",
+ "ADD_TAG": "add tag",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select tags to add"
+ },
+ "EMPTY_STATE": "No tags added to this policy."
+ },
+ "DURATION": {
+ "LABEL": "Exclude conversations older than a specified duration",
+ "PLACEHOLDER": "Set time"
+ }
+ },
+ "USERS": {
+ "LABEL": "Assigned agents",
+ "DESCRIPTION": "Add agents for which this policy will be applicable.",
+ "ADD_BUTTON": "Add agent",
+ "DROPDOWN": {
+ "SEARCH_PLACEHOLDER": "Search and select agents to add",
+ "ADD_BUTTON": "Adicionar"
+ },
+ "EMPTY_STATE": "No agents added",
+ "API": {
+ "SUCCESS_MESSAGE": "Agent successfully added to policy",
+ "ERROR_MESSAGE": "Failed to add agent to policy"
+ }
+ }
+ },
+ "DELETE_POLICY": {
+ "SUCCESS_MESSAGE": "Agent capacity policy deleted successfully",
+ "ERROR_MESSAGE": "Failed to delete agent capacity policy"
+ }
+ },
+ "DELETE_POLICY": {
+ "TITLE": "Delete policy",
+ "DESCRIPTION": "Are you sure you want to delete this policy? This action cannot be undone.",
+ "CONFIRM_BUTTON_LABEL": "Excluir",
+ "CANCEL_BUTTON_LABEL": "Cancelar"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/signup.json b/app/javascript/dashboard/i18n/locale/pt/signup.json
index edaa8e4ba..e2a32c45a 100644
--- a/app/javascript/dashboard/i18n/locale/pt/signup.json
+++ b/app/javascript/dashboard/i18n/locale/pt/signup.json
@@ -1,6 +1,7 @@
{
"REGISTER": {
"TRY_WOOT": "Criar uma conta",
+ "GET_STARTED": "Get started with Chatwoot",
"TITLE": "Cadastrar",
"TESTIMONIAL_HEADER": "Tudo que precisa é um passo para avançar",
"TESTIMONIAL_CONTENT": "Está a um passo de fidelizar os seus clientes, mantê-los e encontrar novos.",
@@ -20,25 +21,37 @@
},
"EMAIL": {
"LABEL": "E-mail de trabalho",
- "PLACEHOLDER": "Digite o seu endereço de e-mail profissional. Por exemplo: geral@informatico.pt",
+ "PLACEHOLDER": "Enter your work email address. E.g., bruce{'@'}wayne{'.'}enterprises",
"ERROR": "Please enter a valid work email address"
},
"PASSWORD": {
"LABEL": "Palavra-passe",
"PLACEHOLDER": "Palavra-passe",
"ERROR": "A senha é muito curta",
- "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character"
+ "IS_INVALID_PASSWORD": "Password should contain atleast 1 uppercase letter, 1 lowercase letter, 1 number and 1 special character",
+ "REQUIREMENTS_LENGTH": "At least 6 characters long",
+ "REQUIREMENTS_UPPERCASE": "At least one uppercase letter",
+ "REQUIREMENTS_LOWERCASE": "At least one lowercase letter",
+ "REQUIREMENTS_NUMBER": "At least one number",
+ "REQUIREMENTS_SPECIAL": "At least one special character"
},
"CONFIRM_PASSWORD": {
"LABEL": "Confirmar senha",
"PLACEHOLDER": "Confirmar senha",
- "ERROR": "As senhas não conferem"
+ "ERROR": "As senhas não coincidem."
},
"API": {
- "SUCCESS_MESSAGE": "Registro Bem Sucedido",
+ "SUCCESS_MESSAGE": "Registration Successful",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
},
"SUBMIT": "Criar conta",
- "HAVE_AN_ACCOUNT": "Já tem uma conta?"
+ "HAVE_AN_ACCOUNT": "Já tem uma conta?",
+ "VERIFY_EMAIL": {
+ "TITLE": "Check your inbox",
+ "DESCRIPTION": "We sent a verification link to {email}. Click the link to verify your email and get started.",
+ "RESEND": "Reenviar e-mail de verificação",
+ "RESEND_SUCCESS": "Verification email sent. Please check your inbox.",
+ "RESEND_ERROR": "Could not send verification email. Please try again."
+ }
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/sla.json b/app/javascript/dashboard/i18n/locale/pt/sla.json
index 54cf6fe4b..ac6a79de6 100644
--- a/app/javascript/dashboard/i18n/locale/pt/sla.json
+++ b/app/javascript/dashboard/i18n/locale/pt/sla.json
@@ -1,22 +1,52 @@
{
"SLA": {
- "HEADER": "SLA",
- "HEADER_BTN_TXT": "Adicionar SLA",
+ "HEADER": "Service Level Agreements",
+ "ADD_ACTION": "Adicionar SLA",
+ "ADD_ACTION_LONG": "Criar uma nova Política de SLA",
+ "DESCRIPTION": "Service Level Agreements (SLA) são contratos que definem expectativas claras entre a sua equipa 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",
+ "COUNT": "{n} SLA | {n} SLAs",
"LOADING": "A carregar SLAs",
- "SEARCH_404": "Não existem itens correspondentes a esta consulta",
- "SIDEBAR_TXT": "SLA
Pense nos Service Level Agreements (SLA) como acordos entre um fornecedor de serviço e um cliente.
Estes acordos definem expectativas claras para parâmetros como a rapidez com que a equipa responderá a pedidos de suporte, garantindo os níveis de qualidade de serviço esperados!
",
+ "SEARCH_PLACEHOLDER": "Search SLA...",
+ "SEARCH": {
+ "NO_RESULTS": "No SLA found matching your search"
+ },
+ "PAYWALL": {
+ "TITLE": "Upgrade para criar SLAs",
+ "AVAILABLE_ON": "O recurso SLA apenas está disponível nos planos Business e Enterprise.",
+ "UPGRADE_PROMPT": "Faça upgrade do seu plano para obter acesso a recursos avançados, como gestão de equipas, automações, atributos personalizados e muito mais.",
+ "UPGRADE_NOW": "Fazer upgrade agora",
+ "CANCEL_ANYTIME": "Pode alterar ou cancelar o plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "O recurso SLA apenas está disponível nos planos pagos.",
+ "UPGRADE_PROMPT": "Faça upgrade para um plano pago para obter recursos avançados, como logs de auditoria, capacidade de agentes e muito mais.",
+ "ASK_ADMIN": "Por favor, entre em contato com o administrador para atualização."
+ },
"LIST": {
"404": "Não há SLAs disponíveis nesta conta.",
- "TITLE": "Gerir SLA",
- "DESC": "SLAS: Acordos para um ótimo serviço!",
- "TABLE_HEADER": [
- "Nome:",
- "Descrição",
- "FRT",
- "NRT",
- "RT",
- "Horário comercial"
- ]
+ "TABLE_HEADER": {
+ "SLA": "SLA",
+ "BUSINESS_HOURS": "Business hours"
+ },
+ "EMPTY": {
+ "TITLE_1": "Empresa P0",
+ "DESC_1": "Questões levantadas pelos clientes empresariais que requerem atenção imediata.",
+ "TITLE_2": "Empresa P1",
+ "DESC_2": "Questões levantadas pelos clientes empresariais, que têm de ser rapidamente reconhecidas."
+ },
+ "BUSINESS_HOURS_ON": "Turned on",
+ "BUSINESS_HOURS_OFF": "Turned off",
+ "RESPONSE_TYPES": {
+ "FRT": "Limite de tempo da primeira resposta",
+ "NRT": "Limite de tempo da próxima resposta",
+ "RT": "Limite de tempo de resolução",
+ "SHORT_HAND": {
+ "FRT": "FRT",
+ "NRT": "NRT",
+ "RT": "RT"
+ }
+ }
},
"FORM": {
"NAME": {
@@ -56,18 +86,32 @@
},
"ADD": {
"TITLE": "Adicionar SLA",
- "DESC": "SLAS: Acordos para um ótimo serviço!",
+ "DESC": "Acordos para um ótimo serviço!",
"API": {
"SUCCESS_MESSAGE": "SLA adicionado",
"ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
}
},
- "EDIT": {
- "TITLE": "Editar SLA",
+ "DELETE": {
+ "TITLE": "Apagar SLA",
"API": {
- "SUCCESS_MESSAGE": "SLA atualizado",
+ "SUCCESS_MESSAGE": "SLA apagado",
"ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmar Exclusão",
+ "MESSAGE": "Tem a certeza que quer apagar ",
+ "YES": "Sim, excluir ",
+ "NO": "Não, Manter "
}
+ },
+ "EVENTS": {
+ "TITLE": "SLA Perdidas",
+ "FRT": "Primeiro tempo de resposta",
+ "NRT": "Tempo para a próxima resposta",
+ "RT": "Tempo de resolução",
+ "SHOW_MORE": "{count} mais",
+ "HIDE": "Ocultar {count} linhas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/snooze.json b/app/javascript/dashboard/i18n/locale/pt/snooze.json
new file mode 100644
index 000000000..eee4ea309
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/snooze.json
@@ -0,0 +1,72 @@
+{
+ "SNOOZE_PARSER": {
+ "UNITS": {
+ "MINUTE": "minute",
+ "MINUTES": "minutos",
+ "HOUR": "hour",
+ "HOURS": "horas",
+ "DAY": "dia",
+ "DAYS": "dias",
+ "WEEK": "semana",
+ "WEEKS": "weeks",
+ "MONTH": "mês",
+ "MONTHS": "months",
+ "YEAR": "ano",
+ "YEARS": "years"
+ },
+ "HALF": "half",
+ "NEXT": "next",
+ "THIS": "this",
+ "AT": "at",
+ "IN": "in",
+ "FROM_NOW": "from now",
+ "NEXT_YEAR": "next year",
+ "MERIDIEM": {
+ "AM": "am",
+ "PM": "pm"
+ },
+ "RELATIVE": {
+ "TOMORROW": "amanhã",
+ "DAY_AFTER_TOMORROW": "day after tomorrow",
+ "NEXT_WEEK": "próxima semana",
+ "NEXT_MONTH": "next month",
+ "THIS_WEEKEND": "this weekend",
+ "NEXT_WEEKEND": "next weekend"
+ },
+ "TIME_OF_DAY": {
+ "MORNING": "morning",
+ "AFTERNOON": "afternoon",
+ "EVENING": "evening",
+ "NIGHT": "night",
+ "NOON": "noon",
+ "MIDNIGHT": "midnight"
+ },
+ "WORD_NUMBERS": {
+ "ONE": "one",
+ "TWO": "two",
+ "THREE": "three",
+ "FOUR": "four",
+ "FIVE": "five",
+ "SIX": "six",
+ "SEVEN": "seven",
+ "EIGHT": "eight",
+ "NINE": "nine",
+ "TEN": "ten",
+ "TWELVE": "twelve",
+ "FIFTEEN": "fifteen",
+ "TWENTY": "twenty",
+ "THIRTY": "thirty"
+ },
+ "ORDINALS": {
+ "FIRST": "first",
+ "SECOND": "second",
+ "THIRD": "third",
+ "FOURTH": "fourth",
+ "FIFTH": "fifth"
+ },
+ "OF": "of",
+ "AFTER": "after",
+ "WEEK": "semana",
+ "DAY": "dia"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
index 6a697fbcd..9fc2ad793 100644
--- a/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt/teamsSettings.json
@@ -2,10 +2,16 @@
"TEAMS_SETTINGS": {
"NEW_TEAM": "Criar nova equipa",
"HEADER": "Equipas",
- "SIDEBAR_TXT": "Equipas
Equipas permite que você organize os seus agentes em grupos baseados nas suas responsabilidades.
Um agente pode fazer parte de várias equipas. Você pode atribuir conversas a uma equipa quando estiverem a trabalhar colaborativamente.
",
+ "LOADING": "Fetching teams",
+ "DESCRIPTION": "Teams allow you to organize agents into groups based on their responsibilities. An agent can belong to multiple teams. When working collaboratively, you can assign conversations to specific teams.",
+ "LEARN_MORE": "Learn more about teams",
+ "COUNT": "{n} team | {n} teams",
+ "SEARCH_PLACEHOLDER": "Procurar equipas...",
+ "NO_RESULTS": "No teams found matching your search",
"LIST": {
"404": "Não há equipas configuradas para esta conta.",
- "EDIT_TEAM": "Editar equipa"
+ "EDIT_TEAM": "Editar equipa",
+ "NONE": "Nenhuma"
},
"CREATE_FLOW": {
"CREATE": {
@@ -14,26 +20,21 @@
},
"AGENTS": {
"BUTTON_TEXT": "Adicionar agentes à equipa",
- "TITLE": "Adicionar agentes à equipa - %{teamName}",
+ "TITLE": "Adicionar agentes à equipa - {teamName}",
"DESC": "Adicione Agentes à sua nova equipa. Isso é importante para que os Agentes consigam colaborar em conversas e para que sejam notificados sobre novos eventos."
},
- "WIZARD": [
- {
- "title": "Criar",
- "route": "configuracoes_nova_equipa",
- "body": "Crie uma nova equipa de agentes."
- },
- {
- "title": "Adicionar Agentes",
- "route": "configuracoes_equipas_agentes",
- "body": "Adicionar agentes à equipa."
- },
- {
- "title": "Terminar",
- "route": "configuracoes_terminar_equipa",
- "body": "Está tudo pronto para começar!"
- }
- ]
+ "WIZARD_CREATE": {
+ "TITLE": "Criar",
+ "BODY": "Crie uma nova equipa de agentes."
+ },
+ "WIZARD_ADD_AGENTS": {
+ "TITLE": "Adicionar agentes",
+ "BODY": "Adicionar agentes à equipa."
+ },
+ "WIZARD_FINISH": {
+ "TITLE": "Terminar",
+ "BODY": "Está tudo preparado para começar!"
+ }
},
"EDIT_FLOW": {
"CREATE": {
@@ -43,45 +44,43 @@
},
"AGENTS": {
"BUTTON_TEXT": "Atualizar agentes da equipa",
- "TITLE": "Adicionar agentes à equipa - %{teamName}",
+ "TITLE": "Adicionar agentes à equipa - {teamName}",
"DESC": "Adicionar agentes à sua nova equipa. Todos os agentes adicionados serão notificados quando uma conversa for atribuída a esta equipa."
},
- "WIZARD": [
- {
- "title": "Detalhes da equipa",
- "route": "configuracoes_editar_equipa",
- "body": "Alterar nome, descrição e outros detalhes."
- },
- {
- "title": "Editar agentes",
- "route": "configuracoes_equipa-editar_menbros",
- "body": "Editar os Agentes da sua equipa."
- },
- {
- "title": "Finalizar",
- "route": "terminar_configuracao_equipas",
- "body": "Está tudo pronto para começar!"
- }
- ]
+ "EDIT_WIZARD_DETAILS": {
+ "TITLE": "Detalhes da equipa",
+ "ROUTE": "configuracoes_editar_equipa",
+ "BODY": "Alterar nome, descrição e outros detalhes."
+ },
+ "EDIT_WIZARD_AGENTS": {
+ "TITLE": "Editar agentes",
+ "ROUTE": "configuracoes_equipa-editar_menbros",
+ "BODY": "Editar os Agentes da sua equipa."
+ },
+ "EDIT_WIZARD_FINISH": {
+ "TITLE": "Terminar",
+ "ROUTE": "terminar_configuracao_equipas",
+ "BODY": "Está tudo preparado para começar!"
+ }
},
"TEAM_FORM": {
"ERROR_MESSAGE": "Não foi possível guardar os detalhes da equipa. Tente novamente."
},
"AGENTS": {
- "AGENT": "AGENTE",
- "EMAIL": "E-mail:",
+ "AGENT": "Agente",
+ "EMAIL": "E-mail",
"BUTTON_TEXT": "Adicionar agentes",
"ADD_AGENTS": "Acrescentando Agentes à sua equipa...",
"SELECT": "escolher",
"SELECT_ALL": "escolher todos os agentes",
- "SELECTED_COUNT": "%{selected} de %{total} agentes escolhidos."
+ "SELECTED_COUNT": "{selected} de {total} agentes escolhidos."
},
"ADD": {
- "TITLE": "Adicionar agentes à equipa - %{teamName}",
+ "TITLE": "Adicionar agentes à equipa - {teamName}",
"DESC": "Acrescente agentes à sua recém-criada equipa. É importante para que os Agentes consigam colaborar em conversas e para que sejam notificados sobre novos eventos.",
"SELECT": "escolher",
"SELECT_ALL": "escolher todos os agentes",
- "SELECTED_COUNT": "%{selected} de %{total} agentes escolhidos.",
+ "SELECTED_COUNT": "{selected} de {total} agentes escolhidos.",
"BUTTON_TEXT": "Adicionar agentes",
"AGENT_VALIDATION_ERROR": "Selecione ao menos um agente."
},
@@ -97,7 +96,7 @@
"ERROR_MESSAGE": "Não foi possível apagar a equipa. Tente novamente."
},
"CONFIRM": {
- "TITLE": "Tem a certeza que quer apagar a equipa - %{teamName}",
+ "TITLE": "Are you sure you want to delete the team?",
"PLACE_HOLDER": "Por favor, digite {teamName} para confirmar",
"MESSAGE": "Ao apagar a equipa irá remover a atribuição de novas conversas a essa equipa.",
"YES": "excluir ",
diff --git a/app/javascript/dashboard/i18n/locale/pt/whatsappTemplates.json b/app/javascript/dashboard/i18n/locale/pt/whatsappTemplates.json
index 946b6f6be..ae6878890 100644
--- a/app/javascript/dashboard/i18n/locale/pt/whatsappTemplates.json
+++ b/app/javascript/dashboard/i18n/locale/pt/whatsappTemplates.json
@@ -1,25 +1,47 @@
{
- "WHATSAPP_TEMPLATES": {
- "MODAL": {
- "TITLE": "Template do Whatsapp",
- "SUBTITLE": "Selecione o template do whatsapp que você deseja enviar",
- "TEMPLATE_SELECTED_SUBTITLE": "Processo %{templateName}"
- },
- "PICKER": {
- "SEARCH_PLACEHOLDER": "Buscar templates",
- "NO_TEMPLATES_FOUND": "Nenhum template encontrado para",
- "LABELS": {
- "LANGUAGE": "Idioma",
- "TEMPLATE_BODY": "Corpo do Template",
- "CATEGORY": "Categoria"
- }
- },
- "PARSER": {
- "VARIABLES_LABEL": "Variáveis",
- "VARIABLE_PLACEHOLDER": "Digite o valor %{variable}",
- "GO_BACK_LABEL": "Voltar",
- "SEND_MESSAGE_LABEL": "Enviar mensagem",
- "FORM_ERROR_MESSAGE": "Preencha todas as variáveis antes de enviar"
- }
+ "WHATSAPP_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Template do WhatsApp",
+ "SUBTITLE": "Selecione o template do whatsapp que você deseja enviar",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configure template: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Buscar templates",
+ "NO_TEMPLATES_FOUND": "Nenhum template encontrado para",
+ "HEADER": "Header",
+ "BODY": "Body",
+ "FOOTER": "Footer",
+ "BUTTONS": "Buttons",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Media Content",
+ "MEDIA_CONTENT_FALLBACK": "media content",
+ "NO_TEMPLATES_AVAILABLE": "No WhatsApp templates available. Click refresh to sync templates from WhatsApp.",
+ "REFRESH_BUTTON": "Refresh templates",
+ "REFRESH_SUCCESS": "Templates refresh initiated. It may take a couple of minutes to update.",
+ "REFRESH_ERROR": "Failed to refresh templates. Please try again.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Corpo do Template",
+ "CATEGORY": "Categoria"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variáveis",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Digite o valor {variable}",
+ "GO_BACK_LABEL": "Voltar",
+ "SEND_MESSAGE_LABEL": "Enviar mensagem",
+ "FORM_ERROR_MESSAGE": "Preencha todas as variáveis antes de enviar",
+ "MEDIA_HEADER_LABEL": "{type} Header",
+ "OTP_CODE": "Enter 4-8 digit OTP",
+ "EXPIRY_MINUTES": "Enter expiry minutes",
+ "BUTTON_PARAMETERS": "Button Parameters",
+ "BUTTON_LABEL": "Button {index}",
+ "COUPON_CODE": "Enter coupon code (max 15 chars)",
+ "MEDIA_URL_LABEL": "Enter {type} URL",
+ "DOCUMENT_NAME_PLACEHOLDER": "Enter document filename (e.g., Invoice_2025.pdf)",
+ "BUTTON_PARAMETER": "Enter button parameter"
}
+ }
}
diff --git a/app/javascript/dashboard/i18n/locale/pt/yearInReview.json b/app/javascript/dashboard/i18n/locale/pt/yearInReview.json
new file mode 100644
index 000000000..c80fb3f84
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt/yearInReview.json
@@ -0,0 +1,64 @@
+{
+ "YEAR_IN_REVIEW": {
+ "TITLE": "Year in Review",
+ "LOADING": "Loading your year in review...",
+ "ERROR": "Failed to load year in review",
+ "CLOSE": "Fechar",
+ "CONVERSATIONS": {
+ "TITLE": "You have handled",
+ "SUBTITLE": "Conversas",
+ "FALLBACK": "This year wasn't about the numbers. It was about showing up.",
+ "COMPARISON": {
+ "0_50": "You showed up, and that's how every good inbox begins.",
+ "50_100": "You kept the replies flowing and the conversations alive.",
+ "100_500": "You handled serious volume and kept everything on track.",
+ "500_2000": "You kept things moving while the volume kept climbing.",
+ "2000_10000": "You ran high traffic through your inbox without breaking a sweat.",
+ "10000_PLUS": "That's a full city of customers knocking on your door. You made it look effortless."
+ }
+ },
+ "BUSIEST_DAY": {
+ "TITLE": "Your busiest day was",
+ "MESSAGE": "{count} conversations that day.",
+ "COMPARISON": {
+ "0_5": "A warm-up lap that barely woke the inbox.",
+ "5_10": "Enough action to justify a second cup of coffee.",
+ "10_25": "Things got busy and the inbox stayed on its toes.",
+ "25_50": "A proper rush that barely broke a sweat.",
+ "50_100": "Controlled chaos, handled like a normal Tuesday.",
+ "100_500": "Absolute dumpster fire, somehow still shipping replies.",
+ "500_PLUS": "The inbox lost all chill and never slowed down."
+ }
+ },
+ "PERSONALITY": {
+ "TITLE": "Your support personality is",
+ "MESSAGES": {
+ "SWIFT_HELPER": "You replied in {time} on average. Faster than most notifications.",
+ "QUICK_RESPONDER": "You replied in {time} on average. The inbox barely waited.",
+ "STEADY_SUPPORT": "You replied in {time} on average. Calm pace, solid replies.",
+ "THOUGHTFUL_ADVISOR": "You replied in {time} on average. Took the time to get it right."
+ }
+ },
+ "THANK_YOU": {
+ "TITLE": "Congratulations on surviving the inbox of {year}.",
+ "MESSAGE": "Thank you for your incredible dedication to supporting customers throughout this year. Your hard work has made a real difference, and we're grateful to have you on this journey. Here's to making {nextYear} even better together!"
+ },
+ "SHARE_MODAL": {
+ "TITLE": "Share Your Year in Review",
+ "PREPARING": "Preparing your image...",
+ "DOWNLOAD": "Descarregar",
+ "SHARE_TITLE": "My {year} Year in Review",
+ "SHARE_TEXT": "Check out my {year} Year in Review with Chatwoot!",
+ "BRANDING": "Made with Chatwoot"
+ },
+ "BANNER": {
+ "TITLE": "Your {year} Year in Review is here",
+ "BUTTON": "See your impact"
+ },
+ "NAVIGATION": {
+ "PREVIOUS": "Previous",
+ "NEXT": "Next",
+ "SHARE": "Share conversation"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
index b79dbf070..7958f4c14 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/advancedFilters.json
@@ -7,7 +7,7 @@
"ADD_NEW_FILTER": "Adicionar filtro",
"FILTER_DELETE_ERROR": "Ops! Parece que não podemos salvar nada! Por favor, adicione pelo menos um filtro para salvá-lo.",
"SUBMIT_BUTTON_LABEL": "Aplicar filtros",
- "UPDATE_BUTTON_LABEL": "Pasta de atualização",
+ "UPDATE_BUTTON_LABEL": "Atualizar pasta",
"CANCEL_BUTTON_LABEL": "Cancelar",
"CLEAR_BUTTON_LABEL": "Limpar filtros",
"FOLDER_LABEL": "Nome da pasta",
@@ -18,30 +18,40 @@
"AND": "E",
"OR": "OU"
},
+ "INPUT_PLACEHOLDER": "Inserir valor",
"OPERATOR_LABELS": {
"equal_to": "Igual a",
"not_equal_to": "Diferente",
- "contains": "Contém",
"does_not_contain": "Não contém",
"is_present": "Está presente",
"is_not_present": "Não está presente",
"is_greater_than": "É maior que",
"is_less_than": "É menor que",
"days_before": "É X dias antes",
- "starts_with": "Começa com"
+ "starts_with": "Começa com",
+ "equalTo": "Igual a",
+ "notEqualTo": "Diferente",
+ "contains": "Contém",
+ "doesNotContain": "Não contém",
+ "isPresent": "Está presente",
+ "isNotPresent": "Não está presente",
+ "isGreaterThan": "É maior que",
+ "isLessThan": "É menor que",
+ "daysBefore": "É X dias antes",
+ "startsWith": "Começa com"
},
"ATTRIBUTE_LABELS": {
"TRUE": "Verdadeiro",
"FALSE": "Falso"
},
"ATTRIBUTES": {
- "STATUS": "SItuação",
- "ASSIGNEE_NAME": "Nome do responsável",
- "INBOX_NAME": "Nome da Caixa de Entrada",
- "TEAM_NAME": "Nome do departamento",
+ "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": "Marcadores",
+ "LABELS": "Etiquetas",
"BROWSER_LANGUAGE": "Idioma do navegador",
"PRIORITY": "Prioridade",
"COUNTRY_NAME": "Nome do País",
@@ -54,6 +64,12 @@
"CREATED_AT": "Criado em",
"LAST_ACTIVITY": "Última atividade"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Valor obrigatório",
+ "ATTRIBUTE_KEY_REQUIRED": "A chave do atributo é necessária",
+ "FILTER_OPERATOR_REQUIRED": "Operador do filtro é necessário",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998"
+ },
"GROUPS": {
"STANDARD_FILTERS": "Filtros padrão",
"ADDITIONAL_FILTERS": "Filtros adicionais",
@@ -62,7 +78,7 @@
"CUSTOM_VIEWS": {
"ADD": {
"TITLE": "Você quer salvar este filtro?",
- "LABEL": "Nomeie este filtro",
+ "LABEL": "Nomear este filtro",
"PLACEHOLDER": "Nomeie seu filtro para referenciá-lo posteriormente.",
"ERROR_MESSAGE": "O nome é obrigatório.",
"SAVE_BUTTON": "Salvar filtro",
@@ -77,7 +93,7 @@
}
},
"EDIT": {
- "EDIT_BUTTON": "Editar Pasta"
+ "EDIT_BUTTON": "Alterar Pasta"
},
"DELETE": {
"DELETE_BUTTON": "Excluir filtro",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
index 66752aa33..c97f23a30 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentBots.json
@@ -1,73 +1,117 @@
{
"AGENT_BOTS": {
- "HEADER": "Bots",
- "LOADING_EDITOR": "Carregando o editor...",
- "HEADER_BTN_TXT": "Adicionar configuração do bot",
- "SIDEBAR_TXT": "Bots Agentes
Bots Agentes são como os melhores membros da sua equipe. Eles podem lidar com coisas pequenas, para que você possa se concentrar no que realmente importa. Experimente-os.
Você pode gerenciar seus bots desta página ou criar novos usando o botão 'Adicionar configuração de bot'.
Abra o Manual do Bot Agente em outra aba para obter ajuda.
",
- "CSML_BOT_EDITOR": {
- "NAME": {
- "LABEL": "Nome do Bot",
- "PLACEHOLDER": "Nomeie seu Bot.",
- "ERROR": "O nome do bot é obrigatório."
- },
- "DESCRIPTION": {
- "LABEL": "Descrição do Bot",
- "PLACEHOLDER": "O que esse bot faz?"
- },
- "BOT_CONFIG": {
- "ERROR": "Por favor, insira a configuração CSML do bot acima.",
- "API_ERROR": "Sua configuração CSML é inválida. Por favor, corrija e tente novamente."
- },
- "SUBMIT": "Validar e salvar"
+ "HEADER": "Robôs",
+ "LOADING_EDITOR": "Carregando Editor...",
+ "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",
+ "COUNT": "{n} robô | {n} robôs",
+ "SEARCH_PLACEHOLDER": "Pesquisar robôs...",
+ "NO_RESULTS": "Nenhum robô encontrado correspondente à sua busca",
+ "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 bot de agente",
- "DESC": "Atribua um Agente Bot à sua caixa de entrada. Eles podem lidar com as conversas iniciais e transferi-las para um agente humano quando necessário.",
+ "TITLE": "Selecione um robô de agente",
+ "DESC": "Atribua um Agente Robô à sua caixa de entrada. Eles podem lidar com as conversas iniciais e transferi-las para um agente humano quando necessário.",
"SUBMIT": "Atualizar",
- "DISCONNECT": "Desconectar Bot",
+ "DISCONNECT": "Desconectar Robô",
"SUCCESS_MESSAGE": "Agente de bot atualizado com sucesso.",
"DISCONNECTED_SUCCESS_MESSAGE": "Bot desconectado com sucesso.",
- "ERROR_MESSAGE": "Não foi possível atualizar o agente bot. Por favor, tente novamente mais tarde.",
- "DISCONNECTED_ERROR_MESSAGE": "Não foi possível desconectar o agente bot. Por favor, tente novamente mais tarde.",
- "SELECT_PLACEHOLDER": "Selecionar Bot"
+ "ERROR_MESSAGE": "Não foi possível atualizar o agente robô. Por favor, tente novamente mais tarde.",
+ "DISCONNECTED_ERROR_MESSAGE": "Não foi possível desconectar o agente robô. Por favor, tente novamente mais tarde.",
+ "SELECT_PLACEHOLDER": "Selecionar Robô"
},
"ADD": {
- "TITLE": "Configurar novo bot",
+ "TITLE": "Criar Robô",
"CANCEL_BUTTON_TEXT": "Cancelar",
"API": {
"SUCCESS_MESSAGE": "Bot adicionado com sucesso.",
- "ERROR_MESSAGE": "Não foi possível adicionar o agente bot! Por favor, tente novamente mais tarde."
+ "ERROR_MESSAGE": "Não foi possível adicionar o agente robô! Por favor, tente novamente mais tarde."
}
},
"LIST": {
- "404": "Nenhum bot encontrado. Você pode criar um bot clicando no botão 'Configurar novo bot' ↗",
- "LOADING": "Buscando bots...",
- "TYPE": "Tipo de Bot"
+ "404": "Nenhum robô encontrado. Você pode criar um robô clicando no botão 'Criar Robô'.",
+ "LOADING": "Buscando robôs...",
+ "TABLE_HEADER": {
+ "DETAILS": "Detalhe do Robô",
+ "URL": "URL do Webhook",
+ "ACTIONS": "Ações"
+ }
},
"DELETE": {
"BUTTON_TEXT": "Excluir",
- "TITLE": "Excluir bot",
- "SUBMIT": "Excluir",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "DESCRIPTION": "Tem certeza que deseja excluir este bot? Esta ação é irreversível.",
+ "TITLE": "Deletar robô",
+ "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 bot. Por favor, tente novamente."
+ "ERROR_MESSAGE": "Não foi possível excluir o robô. Por favor, tente novamente."
}
},
"EDIT": {
"BUTTON_TEXT": "Alterar",
- "LOADING": "Buscando bots...",
- "TITLE": "Editar Bot",
- "CANCEL_BUTTON_TEXT": "Cancelar",
+ "TITLE": "Alterar Robô",
"API": {
- "SUCCESS_MESSAGE": "Bot atualizado com sucesso.",
- "ERROR_MESSAGE": "Não foi possível atualizar o bot. Por favor, tente novamente mais tarde."
+ "SUCCESS_MESSAGE": "Robô atualizado com sucesso.",
+ "ERROR_MESSAGE": "Não foi possível atualizar o robô. Por favor, tente novamente mais tarde."
}
},
+ "SECRET": {
+ "LABEL": "Segredo do Webhook",
+ "COPY": "Copiar segredo para a área de transferência",
+ "COPY_SUCCESS": "Segredo copiado para a área de transferência",
+ "TOGGLE": "Alternar visibilidade do segredo",
+ "CREATED_DESC": "Use o segredo abaixo para verificar as assinaturas do webhook. Copie-o agora, você também poderá encontrá-lo depois nas configurações do robô.",
+ "DONE": "Concluído",
+ "RESET_SUCCESS": "Segredo do webhook regenerado com sucesso",
+ "RESET_ERROR": "Não foi possível regenerar o segredo do webhook. Por favor, tente novamente"
+ },
+ "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 Bot",
- "CSML": "CSML Bot"
+ "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 4ddf9a6bf..7a7dc8c68 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/agentMgmt.json
@@ -3,24 +3,27 @@
"HEADER": "Agentes",
"HEADER_BTN_TXT": "Adicionar Agente",
"LOADING": "Buscando lista de agente",
- "SIDEBAR_TXT": "Agentes
Um Agente é um membro da sua equipe de Suporte ao Cliente.
Os agentes serão capazes de ver e responder as mensagens dos seus usuários. A lista mostra todos os agentes atualmente em sua conta.
Clique em Adicionar Agente para adicionar um novo agente. O agente que você adicionar receberá um e-mail com um link de confirmação para ativar sua conta, para acessar o Chatwoot e responder às mensagens.
O acesso aos recursos do Chatwoot são baseados nas seguintes funções.
Agentes - Agentes com essa função só podem acessar caixas de entrada, relatórios e conversas. Eles podem atribuir conversas a outros agentes ou a eles próprios e resolver conversas.
Administrador - Administrador terá acesso a todos os recursos do Chatwoot ativados para sua conta, incluindo configurações e todos os privilégios de agentes normais.
",
+ "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",
"AGENT": "Agente"
},
+ "COUNT": "{n} agente | {n} agentes",
"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"
+ "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": {
@@ -29,9 +32,9 @@
"PLACEHOLDER": "Por favor, insira o nome do agente"
},
"AGENT_TYPE": {
- "LABEL": "Tipo de Agente",
- "PLACEHOLDER": "Selecione um tipo",
- "ERROR": "É necessário o tipo de agente"
+ "LABEL": "Função",
+ "PLACEHOLDER": "Selecione uma função",
+ "ERROR": "É necessária uma função"
},
"EMAIL": {
"LABEL": "Endereço de e-mail",
@@ -66,9 +69,9 @@
"PLACEHOLDER": "Por favor, insira um nome do agente"
},
"AGENT_TYPE": {
- "LABEL": "Tipo de Agente",
- "PLACEHOLDER": "Selecione um tipo",
- "ERROR": "É necessário o tipo de agente"
+ "LABEL": "Função",
+ "PLACEHOLDER": "Selecione uma função",
+ "ERROR": "É necessária uma função"
},
"EMAIL": {
"LABEL": "Endereço de email",
@@ -94,15 +97,20 @@
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
}
},
+ "SEARCH_PLACEHOLDER": "Pesquisar agentes...",
+ "NO_RESULTS": "Nenhum agente encontrado correspondente à sua busca",
"SEARCH": {
"NO_RESULTS": "Nenhum resultado encontrado."
},
"MULTI_SELECTOR": {
- "PLACEHOLDER": "Nenhuma",
+ "PLACEHOLDER": "Nenhum",
"TITLE": {
"AGENT": "Selecionar agente",
"TEAM": "Selecionar time"
},
+ "LIST": {
+ "NONE": "Nenhum"
+ },
"SEARCH": {
"NO_RESULTS": {
"AGENT": "Nenhum agente encontrado",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
index 5e462550f..de939a396 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/attributesMgmt.json
@@ -2,8 +2,25 @@
"ATTRIBUTES_MGMT": {
"HEADER": "Atributos Personalizados",
"HEADER_BTN_TXT": "Criar atributo personalizado",
- "LOADING": "Buscando atributos",
- "SIDEBAR_TXT": "Atributos personalizados
Um atributo personalizado rastreia fatos sobre seus contatos/conversas — como o plano de inscrição, ou quando eles compraram o primeiro item, etc.
Para criar um atributo personalizado, basta clicar em \"Criar atributo\" Você também pode editar ou apagar um atributo já criado.
",
+ "LOADING": "Buscando atributos personalizados",
+ "DESCRIPTION": "Um atributo personalizado controla detalhes adicionais sobre seus contatos ou conversas — como o plano de assinatura ou a data de sua primeira compra. Você pode adicionar diferentes tipos de atributos personalizados, como texto, listas ou números, para capturar as informações específicas que você precisa.",
+ "LEARN_MORE": "Saiba mais sobre atributos personalizados",
+ "COUNT": "{n} atributo | {n} atributos",
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "NO_RESULTS": "Nenhum atributo encontrado correspondente à sua busca",
+ "ATTRIBUTE_MODELS": {
+ "CONVERSATION": "Conversas",
+ "CONTACT": "Contato",
+ "COMPANY": "Empresa"
+ },
+ "ATTRIBUTE_TYPES": {
+ "TEXT": "Texto",
+ "NUMBER": "Número",
+ "LINK": "Link",
+ "DATE": "Data",
+ "LIST": "Lista",
+ "CHECKBOX": "Caixa de seleção"
+ },
"ADD": {
"TITLE": "Adicionar atributo personalizado",
"SUBMIT": "Criar",
@@ -41,15 +58,19 @@
"IN_VALID": "Chave inválida"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
+ "LABEL": "Expressão Regex",
"PLACEHOLDER": "Por favor, insira o padrão de expressão regular para atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
+ "LABEL": "Orientação de validação Regex",
"PLACEHOLDER": "Por favor, insira uma dica para o padrão de expressão regular. (Opcional)"
},
"ENABLE_REGEX": {
"LABEL": "Habilitar validação do regex"
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pré-chat",
+ "RESOLUTION": "Resolução"
}
},
"API": {
@@ -64,7 +85,7 @@
"ERROR_MESSAGE": "Não foi possível excluir o atributo personalizado. Tente novamente."
},
"CONFIRM": {
- "TITLE": "Tem certeza que deseja excluir - %{attributeName}",
+ "TITLE": "Tem certeza que deseja excluir - {attributeName}",
"PLACE_HOLDER": "Digite {attributeName} para confirmar",
"MESSAGE": "Excluindo removerá o atributo personalizado",
"YES": "Excluir ",
@@ -88,15 +109,16 @@
"TABS": {
"HEADER": "Atributos Personalizados",
"CONVERSATION": "Conversas",
- "CONTACT": "Contato"
+ "CONTACT": "Contato",
+ "COMPANY": "Empresa"
},
"LIST": {
- "TABLE_HEADER": [
- "Nome",
- "Descrição",
- "Tipo",
- "Chave"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "DESCRIPTION": "Descrição",
+ "TYPE": "Tipo",
+ "KEY": "Chave"
+ },
"BUTTONS": {
"EDIT": "Alterar",
"DELETE": "Excluir"
@@ -106,16 +128,20 @@
"NOT_FOUND": "Não há atributos personalizados configurados"
},
"REGEX_PATTERN": {
- "LABEL": "Regex Pattern",
+ "LABEL": "Expressão Regex",
"PLACEHOLDER": "Por favor, insira o padrão de expressão regular para atributo personalizado. (Opcional)"
},
"REGEX_CUE": {
- "LABEL": "Regex Cue",
+ "LABEL": "Orientação de validação Regex",
"PLACEHOLDER": "Por favor, insira uma dica para o padrão de expressão regular. (Opcional)"
},
"ENABLE_REGEX": {
- "LABEL": "Habilitar validação do regex"
+ "LABEL": "Habilitar validação da expressão regular"
}
+ },
+ "BADGES": {
+ "PRE_CHAT": "Pré-chat",
+ "RESOLUTION": "Resolução"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
index cc46dcdae..9112729c4 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/auditLogs.json
@@ -1,71 +1,77 @@
{
"AUDIT_LOGS": {
- "HEADER": "Registros de Auditoria",
- "HEADER_BTN_TXT": "Adicionar Registros de Auditoria",
+ "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, 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": "Registros de Auditoria
Registros de Auditoria são trilhas para eventos e ações em um Sistema Chatwoot.
",
+ "SIDEBAR_TXT": "Logs de Auditoria
Os Logs de Auditoria são rastros para eventos e ações em um Sistema Chatwoot.
",
"LIST": {
- "404": "Não há Registros de Auditoria disponíveis nesta conta.",
- "TITLE": "Gerenciar Registros de Auditoria",
- "DESC": "Registros de Auditoria são trilhas para eventos e ações em um Sistema Chatwoot.",
- "TABLE_HEADER": [
- "Usuário",
- "Ação",
- "Endereço IP"
- ]
+ "404": "Não há Logs de Auditoria disponíveis nesta conta.",
+ "TITLE": "Gerenciar Logs de Auditoria",
+ "DESC": "Logs de auditoria são rastros para eventos e ações em um Sistema de Chatwoot.",
+ "TABLE_HEADER": {
+ "ACTIVITY": "Usuário",
+ "TIME": "Ação",
+ "IP_ADDRESS": "Endereço IP"
+ }
},
"API": {
- "SUCCESS_MESSAGE": "AuditLogs recuperados com sucesso",
+ "SUCCESS_MESSAGE": "Logs de auditoria recuperados com sucesso",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot, por favor tente novamente mais tarde"
},
"DEFAULT_USER": "Sistema",
"AUTOMATION_RULE": {
- "ADD": "%{agentName} Nova regra de automação criada (#%{id})",
- "EDIT": "%{agentName} Atualizada regra de automação (#%{id})",
- "DELETE": "%{agentName} excluida regra de automação (#%{id})"
+ "ADD": "{agentName} nova regra de automação criada (#{id})",
+ "EDIT": "{agentName} atualizou regra de automação (#{id})",
+ "DELETE": "{agentName} excluiu uma regra de automação (#{id})"
},
"ACCOUNT_USER": {
- "ADD": "%{agentName} convidou %{invitee} para sua conta como %{role}",
+ "ADD": "{agentName} Convidou {invitee} para sua conta como {role}",
"EDIT": {
- "SELF": "%{agentName} alterado de %{attributes} para %{values}",
- "OTHER": "%{agentName} alterado %{attributes} por %{user} para %{values}"
+ "SELF": "{agentName} Alterou seu {attributes} para {values}",
+ "OTHER": "{agentName} Alterou {attributes} de {user} para {values}",
+ "DELETED": "{agentName} alterou {attributes} de um usuário excluído para {values}"
}
},
"INBOX": {
- "ADD": "%{agentName} criou uma nova caixa de entrada (#%{id})",
- "EDIT": "%{agentName} atualizou uma caixa de entrada (#%{id})",
- "DELETE": "%{agentName} excluiu uma caixa de entrada (#%{id})"
+ "ADD": "{agentName} criou uma caixa de entrada (#{id})",
+ "EDIT": "{agentName} atualizou uma caixa de entrada (#{id})",
+ "DELETE": "{agentName} excluiu uma caixa de entrada (#{id})"
},
"WEBHOOK": {
- "ADD": "%{agentName} criou um novo webhook (#%{id})",
- "EDIT": "%{agentName} atualizou um webhook (#%{id})",
- "DELETE": "%{agentName} excluiu um webhook (#%{id})"
+ "ADD": "{agentName} criou um webhook (#{id})",
+ "EDIT": "{agentName} atualizou um webhook (#{id})",
+ "DELETE": "{agentName} excluiu um webhook (#{id})"
},
"USER_ACTION": {
- "SIGN_IN": "%{agentName} se conectou",
- "SIGN_OUT": "%{agentName} se desconectou"
+ "SIGN_IN": "{agentName} Se conectou",
+ "SIGN_OUT": "{agentName} Se desconectou"
},
"TEAM": {
- "ADD": "%{agentName} criou uma nova 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 um novo macro (#%{id})",
- "EDIT": "%{agentName} atualizou uma macro (#%{id})",
- "DELETE": "%{agentName} excluiu uma macro (#%{id})"
+ "ADD": "{agentName} criou uma nova macro (#{id})",
+ "EDIT": "{agentName} atualizou uma macro (#{id})",
+ "DELETE": "{agentName} excluiu uma macro (#{id})"
},
"INBOX_MEMBER": {
- "ADD": "%{agentName} adicionou %{user} para a caixa de entrada (#%{inbox_id})",
- "REMOVE": "%{agentName} removeu %{user} da caixa de entrada (#%{inbox_id})"
+ "ADD": "{agentName} adicionou {user} à caixa de entrada (#{inbox_id})",
+ "REMOVE": "{agentName} removeu {user} da caixa de entrada (#{inbox_id})"
},
"TEAM_MEMBER": {
- "ADD": "%{agentName} adicionou %{user} para a 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": "%{agentName} atualizou a configuração de conta (#%{id})"
+ "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 57d5c2243..e3e315a61 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/automation.json
@@ -1,9 +1,13 @@
{
"AUTOMATION": {
- "HEADER": "Automações",
- "HEADER_BTN_TXT": "Adicionar regra de automação",
+ "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 o time se concentre em seus pontos fortes e reduza o tempo gasto em tarefas rotineiras.",
+ "LEARN_MORE": "Aprenda mais sobre automação",
+ "COUNT": "{n} automação | {n} automações",
+ "HEADER_BTN_TXT": "Criar Automação",
"LOADING": "Buscando regras de automação",
- "SIDEBAR_TXT": "Regras de automação
A automação pode substituir e agilizar processos existentes que requerem esforço manual. Você pode fazer muitas coisas automatizadas, como adicionar marcadores e atribuir a conversa ao melhor agente, enquanto a equipe se concentra no que saber fazer de melhor, que é atender, sem se preocupar com tarefas manuais.
",
+ "SEARCH_PLACEHOLDER": "Pesquisar regras de automação...",
+ "NO_RESULTS": "Nenhuma regra de automação encontrada correspondente à sua busca",
"ADD": {
"TITLE": "Adicionar regra de automação",
"SUBMIT": "Criar",
@@ -39,12 +43,12 @@
}
},
"LIST": {
- "TABLE_HEADER": [
- "Nome",
- "Descrição",
- "Ativo",
- "Criado em"
- ],
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "ACTIVE": "Ativo",
+ "CREATED_ON": "Criado em",
+ "ACTIONS": "Ações"
+ },
"404": "Nenhuma regra de automação encontrada"
},
"DELETE": {
@@ -93,7 +97,9 @@
"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 o time"
+ "TEAM_DROPDOWN_PLACEHOLDER": "Selecione times",
+ "EMAIL_INPUT_PLACEHOLDER": "Insira o e-mail",
+ "URL_INPUT_PLACEHOLDER": "Insira a URL"
},
"TOGGLE": {
"ACTIVATION_TITLE": "Ativar regra de automação",
@@ -113,6 +119,75 @@
"LABEL_UPLOADING": "Enviando...",
"LABEL_UPLOADED": "Upload feito com sucesso",
"LABEL_UPLOAD_FAILED": "Faha no envio"
+ },
+ "ERRORS": {
+ "ATTRIBUTE_KEY_REQUIRED": "A chave do atributo é necessária",
+ "FILTER_OPERATOR_REQUIRED": "Operador do filtro é necessário",
+ "VALUE_REQUIRED": "Valor obrigatório",
+ "VALUE_MUST_BE_BETWEEN_1_AND_998": "O valor deve ser entre 1 e 998",
+ "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"
+ },
+ "NONE_OPTION": "Nenhuma",
+ "LAST_RESPONDING_AGENT": "Último Agente que Respondeu",
+ "EVENTS": {
+ "CONVERSATION_CREATED": "Conversa Criada",
+ "CONVERSATION_UPDATED": "Conversa Atualizada",
+ "MESSAGE_CREATED": "Mensagem Criada",
+ "CONVERSATION_RESOLVED": "Conversa Resolvida",
+ "CONVERSATION_OPENED": "Conversa Aberta"
+ },
+ "ACTIONS": {
+ "ASSIGN_AGENT": "Atribuir ao Agente",
+ "ASSIGN_TEAM": "Atribuir um Time",
+ "REMOVE_ASSIGNED_AGENT": "Remove Assigned Agent",
+ "REMOVE_ASSIGNED_TEAM": "Remover Time Atribuído",
+ "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",
+ "ADD_PRIVATE_NOTE": "Adicionar uma Nota Privada",
+ "CHANGE_PRIORITY": "Alterar Prioridade",
+ "ADD_SLA": "Adicionar SLA",
+ "OPEN_CONVERSATION": "Abrir conversa",
+ "PENDING_CONVERSATION": "Marcar conversa como pendente"
+ },
+ "MESSAGE_TYPES": {
+ "INCOMING": "Mensagem Recebida",
+ "OUTGOING": "Mensagem de Saída"
+ },
+ "PRIORITY_TYPES": {
+ "NONE": "Nenhuma",
+ "LOW": "Baixa",
+ "MEDIUM": "Média",
+ "HIGH": "Alta",
+ "URGENT": "Urgente"
+ },
+ "ATTRIBUTES": {
+ "MESSAGE_TYPE": "Tipo da Mensagem",
+ "PRIVATE_NOTE": "Mensagem Privada",
+ "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",
+ "COMPANY_NAME": "Empresa",
+ "REFERER_LINK": "Link de origem",
+ "ASSIGNEE_NAME": "Agente atribuído",
+ "TEAM_NAME": "Time",
+ "PRIORITY": "Prioridade",
+ "LABELS": "Etiquetas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
index c1b1d53da..0ec37a322 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/bulkActions.json
@@ -1,40 +1,46 @@
{
"BULK_ACTION": {
- "CONVERSATIONS_SELECTED": "%{conversationCount} conversas selecionadas",
- "AGENT_SELECT_LABEL": "Selecionar agente",
- "ASSIGN_CONFIRMATION_LABEL": "Você tem certeza que quer atribuir %{conversationCount} %{conversationLabel} para",
- "UNASSIGN_CONFIRMATION_LABEL": "Você tem certeza que quer remover a atribuição de %{conversationCount} %{conversationLabel}?",
- "GO_BACK_LABEL": "Voltar atrás",
- "ASSIGN_LABEL": "Atribua",
+ "CONVERSATIONS_SELECTED": "{conversationCount} conversas selecionadas",
+ "NONE": "Nenhuma",
+ "CLEAR_SELECTION": "Limpar",
+ "ASSIGN_AGENT_CONFIRMATION_LABEL": "Tem certeza de que deseja atribuir {n} conversa para {agentName}? | Tem certeza de que deseja atribuir {n} conversas para {agentName}?",
+ "UNASSIGN_AGENT_CONFIRMATION_LABEL": "Tem certeza de que deseja remover a atribuição de {n} conversa? | Tem certeza de que deseja remover a atribuição de {n} conversas?",
"YES": "Sim",
+ "CANCEL": "Cancelar",
+ "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.",
"RESOLVE_FAILED": "Falha ao resolver conversas. Por favor, tente novamente.",
"ALL_CONVERSATIONS_SELECTED_ALERT": "Conversas visíveis nesta página só estão selecionadas.",
- "AGENT_LIST_LOADING": "Carregando agentes",
"UPDATE": {
"CHANGE_STATUS": "Alterar status",
- "SNOOZE_UNTIL_NEXT_REPLY": "Adiar até a próxima resposta.",
+ "SNOOZE_UNTIL": "Adiar",
"UPDATE_SUCCESFUL": "Status da conversa atualizado com sucesso.",
"UPDATE_FAILED": "Falha ao atualizar conversas. Por favor, tente novamente."
},
+ "RESOLVE": {
+ "ALL_MISSING_ATTRIBUTES": "Não é possível resolver a conversa devido à ausência de atributos obrigatórios",
+ "PARTIAL_SUCCESS": "Algumas conversas exigem atributos obrigatórios antes da resolução e foram ignoradas"
+ },
"LABELS": {
"ASSIGN_LABELS": "Atribuir rótulo",
- "NO_LABELS_FOUND": "Não há rótulos encontrados para",
- "ASSIGN_SELECTED_LABELS": "Atribuir rótulos selecionados",
+ "REMOVE_LABELS": "Remover etiquetas",
+ "ASSIGN_SELECTED_LABELS": "Atribuir etiquetas selecionadas",
+ "REMOVE_SELECTED_LABELS": "Remover etiquetas selecionadas",
"ASSIGN_SUCCESFUL": "Rótulos atribuídos com sucesso.",
- "ASSIGN_FAILED": "Falha ao atribuir rótulos. Por favor, tente novamente."
+ "ASSIGN_FAILED": "Falha ao atribuir etiquetas. Por favor, tente novamente.",
+ "REMOVE_SUCCESFUL": "Etiquetas removidas com sucesso.",
+ "REMOVE_FAILED": "Falha ao remover etiquetas. Por favor, tente novamente."
},
"TEAMS": {
- "TEAM_SELECT_LABEL": "Selecionar time",
- "NONE": "Nenhuma",
- "NO_TEAMS_AVAILABLE": "Ainda não há equipes adicionadas a esta conta ainda.",
- "ASSIGN_SELECTED_TEAMS": "Atribuir equipe selecionada.",
- "ASSIGN_SUCCESFUL": "Equipes atribuídos com sucesso.",
- "ASSIGN_FAILED": "Falha ao atribuir equipe. Por favor, tente novamente."
+ "NONE": "Nenhum",
+ "ASSIGN_TEAM_CONFIRMATION_LABEL": "Tem certeza de que deseja atribuir {n} conversa ao time {teamName}? | Tem certeza de que deseja atribuir {n} conversas ao time {teamName}?",
+ "UNASSIGN_TEAM_CONFIRMATION_LABEL": "Tem certeza de que deseja remover a atribuição de {n} conversa? | Tem certeza de que deseja remover a atribuição de {n} conversas?",
+ "ASSIGN_SUCCESFUL": "Times atribuídos com sucesso.",
+ "ASSIGN_FAILED": "Falha ao atribuir time. Por favor, tente novamente."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/campaign.json b/app/javascript/dashboard/i18n/locale/pt_BR/campaign.json
index f8b1ac71c..740cb2545 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/campaign.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/campaign.json
@@ -1,126 +1,216 @@
{
"CAMPAIGN": {
- "HEADER": "Campanhas",
- "SIDEBAR_TXT": "As mensagens proativas permitem ao cliente enviar mensagens de saída para seus contatos, o que acionaria mais conversas. Clique em Adicionar Campanha para criar uma nova campanha. Também pode editar ou apagar uma campanha existente clicando no botão Editar ou Excluir.",
- "HEADER_BTN_TXT": {
- "ONE_OFF": "Criar uma campanha única",
- "ONGOING": "Criar uma campanha recorrente"
- },
- "ADD": {
- "TITLE": "Criar uma campanha",
- "DESC": "Mensagens proativas permitem ao cliente enviar mensagens de saída para seus contatos, o que acionaria mais conversas.",
- "CANCEL_BUTTON_TEXT": "Cancelar",
- "CREATE_BUTTON_TEXT": "Criar",
- "FORM": {
- "TITLE": {
- "LABEL": "Título",
- "PLACEHOLDER": "Por favor, digite o título da campanha",
- "ERROR": "Título é obrigatório"
+ "LIVE_CHAT": {
+ "HEADER_TITLE": "Campanhas de chat ao vivo",
+ "NEW_CAMPAIGN": "Criar campanha",
+ "CARD": {
+ "STATUS": {
+ "ENABLED": "Ativado",
+ "DISABLED": "Desativado"
},
- "SCHEDULED_AT": {
- "LABEL": "Horário agendado",
- "PLACEHOLDER": "Por favor insira a hora",
- "CONFIRM": "Confirmar",
- "ERROR": "Horário agendado é necessário"
- },
- "AUDIENCE": {
- "LABEL": "Público",
- "PLACEHOLDER": "Selecionar marcadores dos clientes",
- "ERROR": "Público é necessário"
- },
- "INBOX": {
- "LABEL": "Selecionar caixa de entrada",
- "PLACEHOLDER": "Selecionar caixa de entrada",
- "ERROR": "Caixa de entrada obrigatória"
- },
- "MESSAGE": {
- "LABEL": "Messagem",
- "PLACEHOLDER": "Por favor, insira a mensagem da campanha",
- "ERROR": "A mensagem é obrigatória"
- },
- "SENT_BY": {
- "LABEL": "Enviado por",
- "PLACEHOLDER": "Por favor, selecione o conteúdo da campanha",
- "ERROR": "Remetente é obrigatório"
- },
- "END_POINT": {
- "LABEL": "URL:",
- "PLACEHOLDER": "Por favor, insira a URL",
- "ERROR": "Por favor, insira uma URL válida"
- },
- "TIME_ON_PAGE": {
- "LABEL": "Tempo na página (segundos)",
- "PLACEHOLDER": "Por favor insira a hora",
- "ERROR": "Tempo na página é necessário"
- },
- "ENABLED": "Ativar campanha",
- "TRIGGER_ONLY_BUSINESS_HOURS": "Ativar somente durante o horário comercial",
- "SUBMIT": "Adicionar Campanha"
+ "CAMPAIGN_DETAILS": {
+ "SENT_BY": "Enviado por",
+ "BOT": "Robôs",
+ "FROM": "De",
+ "URL": "URL:"
+ }
},
- "API": {
- "SUCCESS_MESSAGE": "Campanha criada com sucesso",
- "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
+ "EMPTY_STATE": {
+ "TITLE": "Não há campanhas de chat ao vivo disponíveis",
+ "SUBTITLE": "Conecte-se com seus clientes usando mensagens proativas. Clique em 'Criar campanha' para começar."
+ },
+ "CREATE": {
+ "TITLE": "Criar uma campanha de chat ao vivo",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, digite o título da campanha",
+ "ERROR": "Título é obrigatório"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensagem",
+ "PLACEHOLDER": "Por favor, insira a mensagem da campanha",
+ "ERROR": "A mensagem é obrigatória"
+ },
+ "INBOX": {
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "SENT_BY": {
+ "LABEL": "Enviado por",
+ "PLACEHOLDER": "Por favor, selecione o remetente",
+ "ERROR": "Remetente é obrigatório"
+ },
+ "END_POINT": {
+ "LABEL": "URL:",
+ "PLACEHOLDER": "Por favor, insira a URL",
+ "ERROR": "Por favor, insira uma URL válida"
+ },
+ "TIME_ON_PAGE": {
+ "LABEL": "Tempo na página (segundos)",
+ "PLACEHOLDER": "Por favor insira a hora",
+ "ERROR": "Tempo na página é necessário"
+ },
+ "OTHER_PREFERENCES": {
+ "TITLE": "Outras preferências",
+ "ENABLED": "Ativar campanha",
+ "TRIGGER_ONLY_BUSINESS_HOURS": "Ativar somente durante o horário comercial"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campanha do chat ao vivo criada com sucesso",
+ "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
+ }
+ }
+ },
+ "EDIT": {
+ "TITLE": "Editar campanha de chat ao vivo",
+ "FORM": {
+ "API": {
+ "SUCCESS_MESSAGE": "Campanha do chat ao vivo atualizada com sucesso",
+ "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
+ }
+ }
}
},
- "DELETE": {
- "BUTTON_TEXT": "Excluir",
- "CONFIRM": {
- "TITLE": "Confirmar exclusão",
- "MESSAGE": "Você tem certeza que deseja excluir?",
- "YES": "Sim, excluir ",
- "NO": "Não, Mantenha "
+ "SMS": {
+ "HEADER_TITLE": "Campanhas SMS",
+ "NEW_CAMPAIGN": "Criar campanha",
+ "EMPTY_STATE": {
+ "TITLE": "Não há campanhas SMS disponíveis",
+ "SUBTITLE": "Lance uma campanha de SMS para chegar diretamente aos seus clientes. Envie ofertas ou faça anúncios com facilidade. Clique em 'Criar campanha' para começar."
},
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processando",
+ "COMPLETED": "Concluído",
+ "SCHEDULED": "Agendada"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Enviado de",
+ "ON": "ativado"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Criar uma campanha de SMS",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, digite o título da campanha",
+ "ERROR": "Título é obrigatório"
+ },
+ "MESSAGE": {
+ "LABEL": "Mensagem",
+ "PLACEHOLDER": "Por favor, insira a mensagem da campanha",
+ "ERROR": "A mensagem é obrigatória"
+ },
+ "INBOX": {
+ "LABEL": "Selecionar caixa de entrada",
+ "PLACEHOLDER": "Selecionar caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "AUDIENCE": {
+ "LABEL": "Público",
+ "PLACEHOLDER": "Selecionar etiquetas dos clientes",
+ "ERROR": "Público é necessário"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Horário agendado",
+ "PLACEHOLDER": "Por favor insira a hora",
+ "ERROR": "Horário agendado é necessário"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campanha SMS criada com sucesso",
+ "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
+ }
+ }
+ }
+ },
+ "WHATSAPP": {
+ "HEADER_TITLE": "Campanhas do WhatsApp",
+ "NEW_CAMPAIGN": "Criar campanha",
+ "EMPTY_STATE": {
+ "TITLE": "Nenhuma campanha do WhatsApp está disponível",
+ "SUBTITLE": "Inicie uma campanha do WhatsApp para atingir seus clientes diretamente. Envie ofertas ou faça anúncios facilmente. Clique em \"Criar campanha\" para começar."
+ },
+ "CARD": {
+ "STATUS": {
+ "PROCESSING": "Processando",
+ "COMPLETED": "Concluído",
+ "SCHEDULED": "Agendada"
+ },
+ "CAMPAIGN_DETAILS": {
+ "SENT_FROM": "Enviado de",
+ "ON": "ativado"
+ }
+ },
+ "CREATE": {
+ "TITLE": "Criar campanha do WhatsApp",
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "CREATE_BUTTON_TEXT": "Criar",
+ "FORM": {
+ "TITLE": {
+ "LABEL": "Título",
+ "PLACEHOLDER": "Por favor, digite o título da campanha",
+ "ERROR": "Título é obrigatório"
+ },
+ "INBOX": {
+ "LABEL": "Selecione uma caixa de entrada",
+ "PLACEHOLDER": "Selecione uma caixa de entrada",
+ "ERROR": "Caixa de entrada obrigatória"
+ },
+ "TEMPLATE": {
+ "LABEL": "Modelo do WhatsApp",
+ "PLACEHOLDER": "Selecione um modelo",
+ "INFO": "Selecione um modelo para usar para esta campanha.",
+ "ERROR": "Modelo é obrigatório",
+ "PREVIEW_TITLE": "Processar {templateName}",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categorias",
+ "VARIABLES_LABEL": "Variáveis",
+ "VARIABLE_PLACEHOLDER": "Digite um valor para {variable}"
+ },
+ "AUDIENCE": {
+ "LABEL": "Público",
+ "PLACEHOLDER": "Selecionar etiquetas dos clientes",
+ "ERROR": "Público é necessário"
+ },
+ "SCHEDULED_AT": {
+ "LABEL": "Horário agendado",
+ "PLACEHOLDER": "Por favor insira a hora",
+ "ERROR": "Horário agendado é necessário"
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "CANCEL": "Cancelar"
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Campanha do WhatsApp criada com sucesso",
+ "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
+ }
+ }
+ }
+ },
+ "CONFIRM_DELETE": {
+ "TITLE": "Você tem certeza que deseja excluir?",
+ "DESCRIPTION": "A ação de exclusão é permanente e não pode ser revertida.",
+ "CONFIRM": "Excluir",
"API": {
"SUCCESS_MESSAGE": "Campanha excluída com sucesso",
- "ERROR_MESSAGE": "Não foi possível excluir a campanha. Tente novamente mais tarde."
+ "ERROR_MESSAGE": "Houve um erro. Por favor, tente novamente."
}
- },
- "EDIT": {
- "TITLE": "Campanha Editar",
- "UPDATE_BUTTON_TEXT": "Atualizar",
- "API": {
- "SUCCESS_MESSAGE": "Campanha atualizada com sucesso",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
- }
- },
- "LIST": {
- "LOADING_MESSAGE": "Carregando campanhas...",
- "404": "Não há campanhas criadas para esta caixa de entrada.",
- "TABLE_HEADER": {
- "TITLE": "Título",
- "MESSAGE": "Messagem",
- "INBOX": "Caixa de Entrada",
- "STATUS": "SItuação",
- "SENDER": "Remetente",
- "URL": "URL:",
- "SCHEDULED_AT": "Horário agendado",
- "TIME_ON_PAGE": "Horário(segundos)",
- "CREATED_AT": "Criado em"
- },
- "BUTTONS": {
- "ADD": "Adicionar",
- "EDIT": "Alterar",
- "DELETE": "Excluir"
- },
- "STATUS": {
- "ENABLED": "Ativado",
- "DISABLED": "Desativado",
- "COMPLETED": "Concluído",
- "ACTIVE": "Ativo"
- },
- "SENDER": {
- "BOT": "Bot"
- }
- },
- "ONE_OFF": {
- "HEADER": "Campanhas únicas",
- "404": "Não há nenhuma campanha única criada",
- "INBOXES_NOT_FOUND": "Por favor, crie uma caixa de entrada SMS e comece a adicionar campanhas"
- },
- "ONGOING": {
- "HEADER": "Campanhas recorrentes",
- "404": "Não há campanhas recorrentes criadas",
- "INBOXES_NOT_FOUND": "Por favor, crie uma caixa de entrada de website e comece a adicionar campanhas"
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
index 897304aa4..e2809f511 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/cannedMgmt.json
@@ -1,19 +1,23 @@
{
"CANNED_MGMT": {
- "HEADER": "Atalhos",
+ "HEADER": "Respostas Prontas",
+ "LEARN_MORE": "Saiba mais sobre respostas prontas",
+ "DESCRIPTION": "Respostas prontas são modelos de resposta pré-escritas que te ajudam a responder rapidamente a uma conversa. Os agentes podem digitar o caractere ' /' seguido pelo atalho para inserir uma resposta pronta durante uma conversa. ",
+ "COUNT": "{n} resposta pronta | {n} respostas prontas",
"HEADER_BTN_TXT": "Adicionar resposta pronta",
"LOADING": "Buscando respostas prontas...",
- "SEARCH_404": "Não existem itens correspondentes a esta consulta.",
- "SIDEBAR_TXT": "Respostas Prontas
As Respostas Prontas são modelos de respostas predefinidas que ajudam você a responder rapidamente a uma conversa. Para inserir uma resposta pronta durante um chat, os agentes podem digitar um código curto precedido por uma barra '/'.
Você pode gerenciar suas respostas prontas desta página ou criar novas usando o botão \"Adicionar resposta pronta\".
Abra o Manual de Respostas Prontas em outra aba para obter ajuda.
Além disso, confira a nova Biblioteca de Respostas Prontas.
",
+ "SEARCH_PLACEHOLDER": "Pesquisar respostas prontas...",
+ "NO_RESULTS": "Nenhuma resposta pronta encontrada correspondente à sua busca",
+ "SEARCH_404": "Não há itens correspondentes a esta consulta.",
"LIST": {
- "404": "Não há atalhos disponíveis nesta conta.",
- "TITLE": "Gerenciar Atalhos",
+ "404": "Não há respostas prontas disponíveis nesta conta.",
+ "TITLE": "Gerenciar Respostas Prontas",
"DESC": "Respostas Prontas são modelos de resposta predefinidas que podem ser usados para enviar respostas rapidamente durante conversas.",
- "TABLE_HEADER": [
- "Atalho",
- "Conteúdo",
- "Ações"
- ]
+ "TABLE_HEADER": {
+ "SHORT_CODE": "Atalho",
+ "CONTENT": "Conteúdo",
+ "ACTIONS": "Ações"
+ }
},
"ADD": {
"TITLE": "Adicionar resposta pronta",
@@ -23,10 +27,10 @@
"SHORT_CODE": {
"LABEL": "Atalho",
"PLACEHOLDER": "Por favor, insira um atalho.",
- "ERROR": "O Atalho é obrigatório."
+ "ERROR": "O atalho é obrigatório."
},
"CONTENT": {
- "LABEL": "Messagem",
+ "LABEL": "Mensagem",
"PLACEHOLDER": "Por favor, escreva a mensagem que deseja salvar como um modelo para usar posteriormente.",
"ERROR": "A mensagem é obrigatória."
},
@@ -44,10 +48,10 @@
"SHORT_CODE": {
"LABEL": "Atalho",
"PLACEHOLDER": "Por favor, insira um atalho.",
- "ERROR": "O Atalho é obrigatório."
+ "ERROR": "O atalho é obrigatório."
},
"CONTENT": {
- "LABEL": "Messagem",
+ "LABEL": "Mensagem",
"PLACEHOLDER": "Por favor, escreva a mensagem que deseja salvar como um modelo para usar posteriormente.",
"ERROR": "A mensagem é obrigatória."
},
@@ -62,7 +66,7 @@
"DELETE": {
"BUTTON_TEXT": "Excluir",
"API": {
- "SUCCESS_MESSAGE": "Resposta pronta deletada com sucesso.",
+ "SUCCESS_MESSAGE": "Resposta pronta excluída com sucesso.",
"ERROR_MESSAGE": "Não foi possível conectar ao servidor Woot. Por favor, tente novamente."
},
"CONFIRM": {
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
index 28d7542ee..eb71ba81e 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/chatlist.json
@@ -6,6 +6,7 @@
"LIST": {
"404": "Não há conversas ativas neste grupo."
},
+ "FAILED_TO_SEND": "Falha ao enviar",
"TAB_HEADING": "Conversas",
"MENTION_HEADING": "Menções",
"UNATTENDED_HEADING": "Não Atendidas",
@@ -14,8 +15,8 @@
},
"FILTER_ALL": "Todos",
"ASSIGNEE_TYPE_TABS": {
- "me": "Minha",
- "unassigned": "Não atribuída",
+ "me": "Minhas",
+ "unassigned": "Não atribuídas",
"all": "Todos"
},
"CHAT_STATUS_FILTER_ITEMS": {
@@ -23,22 +24,22 @@
"TEXT": "Abertas"
},
"resolved": {
- "TEXT": "Resolvida"
+ "TEXT": "Resolvidas"
},
"pending": {
- "TEXT": "Pendente"
+ "TEXT": "Pendentes"
},
"snoozed": {
- "TEXT": "Adiado"
+ "TEXT": "Adiadas"
},
"all": {
- "TEXT": "Todos"
+ "TEXT": "Todas"
}
},
"VIEW_FILTER": "Visualizar",
- "SORT_TOOLTIP_LABEL": "Classificar conversas",
+ "SORT_TOOLTIP_LABEL": "Ordenar conversas",
"CHAT_SORT": {
- "STATUS": "Situação",
+ "STATUS": "Status",
"ORDER_BY": "Ordenar por"
},
"CHAT_TIME_STAMP": {
@@ -53,7 +54,7 @@
},
"SORT_ORDER_ITEMS": {
"last_activity_at_asc": {
- "TEXT": ""
+ "TEXT": "Última atividade: Mais antigas primeiro"
},
"last_activity_at_desc": {
"TEXT": "Última atividade: Recentes primeiro"
@@ -75,6 +76,9 @@
},
"waiting_since_desc": {
"TEXT": "Resposta pendente: Curtas primeiro"
+ },
+ "priority_desc_created_at_asc": {
+ "TEXT": "Prioridade: Maior primeiro, Criação: Mais antiga primeiro"
}
},
"ATTACHMENTS": {
@@ -93,12 +97,21 @@
"location": {
"CONTENT": "Localização"
},
+ "ig_reel": {
+ "CONTENT": "Reels do Instagram"
+ },
"fallback": {
"CONTENT": "compartilhou uma URL"
+ },
+ "contact": {
+ "CONTENT": "Contato compartilhado"
+ },
+ "embed": {
+ "CONTENT": "Conteúdo incorporado"
}
},
"CHAT_SORT_BY_FILTER": {
- "TITLE": "Classificar conversas",
+ "TITLE": "Ordenar conversas",
"DROPDOWN_TITLE": "Ordenar por",
"ITEMS": {
"LATEST": {
@@ -118,7 +131,7 @@
"RECEIVED_VIA_EMAIL": "Recebido por e-mail",
"VIEW_TWEET_IN_TWITTER": "Ver tweet no Twitter",
"REPLY_TO_TWEET": "Responder a este tweet",
- "LINK_TO_STORY": "Vá para o Story do Instagram",
+ "LINK_TO_STORY": "Ir para o Story do Instagram",
"SENT": "Enviado com sucesso",
"READ": "Lido com sucesso",
"DELIVERED": "Entregue com sucesso",
@@ -126,6 +139,8 @@
"NO_CONTENT": "Nenhum conteúdo disponível",
"HIDE_QUOTED_TEXT": "Ocultar Texto Citado",
"SHOW_QUOTED_TEXT": "Mostrar Texto Citado",
- "MESSAGE_READ": "Lida"
+ "MESSAGE_READ": "Lida",
+ "SENDING": "Enviando",
+ "UNREAD_COUNT_OVERFLOW": "9+"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/companies.json b/app/javascript/dashboard/i18n/locale/pt_BR/companies.json
new file mode 100644
index 000000000..0bb46e60f
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/companies.json
@@ -0,0 +1,149 @@
+{
+ "COMPANIES": {
+ "HEADER": "Empresas",
+ "SORT_BY": {
+ "LABEL": "Classificar por",
+ "OPTIONS": {
+ "NAME": "Nome",
+ "DOMAIN": "Domínio",
+ "CREATED_AT": "Criado em",
+ "LAST_ACTIVITY_AT": "Última atividade",
+ "CONTACTS_COUNT": "Quantidade de contatos"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordem",
+ "OPTIONS": {
+ "ASCENDING": "Crescente",
+ "DESCENDING": "Decrescente"
+ }
+ },
+ "SEARCH_PLACEHOLDER": "Buscar empresas...",
+ "LOADING": "Carregando empresas...",
+ "UNNAMED": "Empresa sem nome",
+ "CONTACTS_COUNT": "{n} contato | {n} contatos",
+ "ACTIONS": {
+ "CREATE": "Adicionar empresa"
+ },
+ "CREATE": {
+ "TITLE": "Adicionar detalhes da empresa",
+ "ACTIONS": {
+ "SAVE": "Adicionar empresa"
+ },
+ "MESSAGES": {
+ "SUCCESS": "Empresa criada.",
+ "ERROR": "Não foi possível criar a empresa."
+ }
+ },
+ "DETAIL": {
+ "LOADING": "Carregando detalhes da empresa...",
+ "EMPTY_STATE": {
+ "TITLE": "Empresa não encontrada",
+ "SUBTITLE": "Esta empresa pode ter sido removida ou não está mais disponível nesta conta."
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atributos",
+ "CONTACTS": "Contatos",
+ "HISTORY": "Histórico",
+ "NOTES": "Notas"
+ }
+ },
+ "HISTORY": {
+ "EMPTY": "Nenhuma conversa encontrada para os contatos desta empresa ainda."
+ },
+ "NOTES": {
+ "EMPTY": "Nenhuma nota encontrada para os contatos desta empresa ainda."
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos...",
+ "EMPTY_STATE": "Não há atributos personalizados da empresa configurados ainda.",
+ "NO_ATTRIBUTES": "Nenhum atributo correspondente encontrado.",
+ "UNUSED_ATTRIBUTES": "{count} atributo não utilizado | {count} atributos não utilizados",
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Atributo da empresa atualizado.",
+ "UPDATE_ERROR": "Não foi possível atualizar o atributo da empresa.",
+ "DELETE_SUCCESS": "Atributo da empresa removido.",
+ "DELETE_ERROR": "Não foi possível remover o atributo da empresa."
+ }
+ },
+ "CONTACTS": {
+ "LOADING": "Carregando contatos...",
+ "EMPTY": "Nenhum contato está vinculado a esta empresa ainda.",
+ "UNNAMED_CONTACT": "Contato sem nome",
+ "ACTIONS": {
+ "ADD": "Adicionar contato",
+ "REMOVE": "Remover contato"
+ },
+ "DIALOGS": {
+ "ADD": {
+ "DESCRIPTION": "Procurar um contato existente e vinculá-lo a esta empresa.",
+ "SEARCH_PLACEHOLDER": "Pesquisar contatos...",
+ "INITIAL": "Comece a digitar para procurar contatos.",
+ "EMPTY": "Nenhum contato encontrado.",
+ "CONFIRM_TITLE": "Vincular contato",
+ "CONFIRM_DESCRIPTION": "Confirme a empresa e o contato antes de vinculá-los.",
+ "COMPANY_LABEL": "Empresa",
+ "CONTACT_LABEL": "Contato",
+ "CURRENT_COMPANY": "Atualmente vinculado a {companyName}",
+ "ADD": "Vincular contato",
+ "CANCEL": "Cancelar"
+ }
+ },
+ "MESSAGES": {
+ "ADD_SUCCESS": "Contato vinculado à empresa.",
+ "ADD_ERROR": "Não foi possível vincular o contato à empresa.",
+ "REASSIGN_SUCCESS": "Contato reatribuído à empresa.",
+ "REASSIGN_ERROR": "Não foi possível reatribuir o contato à empresa.",
+ "REMOVE_SUCCESS": "Contato removido da empresa.",
+ "REMOVE_ERROR": "Não foi possível remover o contato da empresa."
+ }
+ },
+ "AVATAR": {
+ "UPDATING": "Atualizando avatar de empresa...",
+ "UPLOAD_SUCCESS": "Avatar da empresa atualizado.",
+ "UPLOAD_ERROR": "Não foi possível atualizar o avatar da empresa.",
+ "DELETE_SUCCESS": "Avatar da empresa removido.",
+ "DELETE_ERROR": "Não foi possível remover o avatar da empresa."
+ },
+ "PROFILE": {
+ "TITLE": "Editar detalhes da empresa",
+ "CREATED_AT": "Criado {date}",
+ "LAST_ACTIVE": "Última atividade {date}",
+ "DESCRIPTION_PLACEHOLDER": "Adicionar uma breve descrição para esta empresa",
+ "ACTIONS": {
+ "SAVE": "Atualizar empresa"
+ },
+ "MESSAGES": {
+ "UPDATE_SUCCESS": "Empresa atualizada.",
+ "UPDATE_ERROR": "Não foi possível atualizar a empresa."
+ },
+ "FIELDS": {
+ "NAME": "Nome",
+ "DOMAIN": "Domínio"
+ }
+ },
+ "DELETE": {
+ "SECTION_TITLE": "Zona perigosa",
+ "SECTION_DESCRIPTION": "Exclua esta empresa e desvincule seus contatos. Os contatos permanecerão na conta.",
+ "BUTTON": "Excluir empresa",
+ "TITLE": "Excluir empresa?",
+ "DESCRIPTION": "Isso removerá a empresa e desvinculará todos os contatos associados. Os próprios contatos serão preservados.",
+ "DESCRIPTION_WITH_NAME": "Isso removerá {companyName} e desvinculará todos os contatos associados. Os próprios contatos serão preservados.",
+ "CONFIRM": "Excluir empresa",
+ "MESSAGES": {
+ "SUCCESS": "Empresa excluída.",
+ "ERROR": "Não foi possível excluir a empresa."
+ }
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nenhuma empresa encontrada"
+ }
+ },
+ "COMPANIES_LAYOUT": {
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Mostrando {startItem} – {endItem} de {totalItems} empresa | Mostrando {startItem} – {endItem} de {totalItems} empresas"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/components.json b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
new file mode 100644
index 000000000..bcc44413b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/components.json
@@ -0,0 +1,69 @@
+{
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Exibindo {startItem} - {endItem} de {totalItems} itens",
+ "CURRENT_PAGE_INFO": "{currentPage} de {totalPages} páginas"
+ },
+ "COMBOBOX": {
+ "PLACEHOLDER": "Selecione uma opção...",
+ "EMPTY_SEARCH_RESULTS": "Nenhum item encontrado para o termo de pesquisa `{searchTerm}`",
+ "EMPTY_STATE": "Nenhum resultado encontrado.",
+ "SEARCH_PLACEHOLDER": "Pesquisar...",
+ "MORE": "+{count} mais"
+ },
+ "DROPDOWN_MENU": {
+ "SEARCH_PLACEHOLDER": "Pesquisar...",
+ "EMPTY_STATE": "Nenhum resultado encontrado.",
+ "SEARCHING": "Procurando..."
+ },
+ "DIALOG": {
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Confirmar"
+ }
+ },
+ "PHONE_INPUT": {
+ "SEARCH_PLACEHOLDER": "Selecione o país",
+ "ERROR": "O número de telefone deve estar vazio ou no formato E.164",
+ "DIAL_CODE_ERROR": "Por favor, selecione um código de discagem da lista"
+ },
+ "THUMBNAIL": {
+ "AUTHOR": {
+ "NOT_AVAILABLE": "Autor indisponível"
+ }
+ },
+ "BREADCRUMB": {
+ "ARIA_LABEL": "Mapa"
+ },
+ "SWITCH": {
+ "TOGGLE": "Alternar botão"
+ },
+ "LABEL": {
+ "TAG_BUTTON": "etiqueta"
+ },
+ "FEATURE_SPOTLIGHT": {
+ "LEARN_MORE": "Saiba mais",
+ "WATCH_VIDEO": "Assistir ao vídeo"
+ },
+ "DURATION_INPUT": {
+ "MINUTES": "Minutos",
+ "HOURS": "Horas",
+ "DAYS": "Dias",
+ "PLACEHOLDER": "Insira a duração"
+ },
+ "CHANNEL_SELECTOR": {
+ "COMING_SOON": "Em breve!"
+ },
+ "SLASH_COMMANDS": {
+ "HEADING_1": "Heading 1",
+ "HEADING_2": "Heading 2",
+ "HEADING_3": "Heading 3",
+ "BOLD": "Bold",
+ "ITALIC": "Italic",
+ "STRIKETHROUGH": "Strikethrough",
+ "CODE": "Code",
+ "BULLET_LIST": "Bullet List",
+ "ORDERED_LIST": "Ordered List",
+ "TABLE": "Table",
+ "IMAGE": "Imagem"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
index ddee25f99..a4b168805 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/contact.json
@@ -17,6 +17,15 @@
"IP_ADDRESS": "Endereço IP",
"CREATED_AT_LABEL": "Criado",
"NEW_MESSAGE": "Nova Mensagem",
+ "CALL": "Chamada",
+ "CALL_INITIATED": "Efetuando chamada…",
+ "CALL_FAILED": "Não foi possível iniciar a chamada. Tente novamente.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Solicitação de permissão de chamada enviada ao contato. Tente novamente após a aceitação.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Uma solicitação de permissão de chamada já foi enviada recentemente. Tente novamente após o contato aceitar.",
+ "CLICK_TO_EDIT": "Click to edit",
+ "VOICE_INBOX_PICKER": {
+ "TITLE": "Escolha uma caixa de entrada de voz"
+ },
"CONVERSATIONS": {
"NO_RECORDS_FOUND": "Não há conversas anteriores associadas a este contato.",
"TITLE": "Conversas anteriores"
@@ -27,82 +36,44 @@
"ERROR": "Falha ao atualizar etiquetas"
},
"CONVERSATION": {
- "TITLE": "Marcador da conversa",
- "ADD_BUTTON": "Adicionar marcador"
+ "TITLE": "Etiquetas da conversa",
+ "ADD_BUTTON": "Adicionar etiquetas"
},
"LABEL_SELECT": {
- "TITLE": "Adicionar marcador",
- "PLACEHOLDER": "Pesquisar marcador ",
- "NO_RESULT": "Nenhum rótulo encontrado",
+ "TITLE": "Adicionar etiquetas",
+ "PLACEHOLDER": "Pesquisar etiquetas",
+ "NO_RESULT": "Nenhuma etiqueta encontrada",
"CREATE_LABEL": "Criar etiqueta"
}
},
"MERGE_CONTACT": "Mesclar contatos",
"CONTACT_ACTIONS": "Ações de contatos",
- "MUTE_CONTACT": "Block Contact",
- "UNMUTE_CONTACT": "Unblock Contact",
- "MUTED_SUCCESS": "This contact is blocked successfully. You will not be notified of any future conversations.",
- "UNMUTED_SUCCESS": "This contact is unblocked successfully.",
+ "MUTE_CONTACT": "Bloquear Contato",
+ "UNMUTE_CONTACT": "Desbloquear Contato",
+ "MUTED_SUCCESS": "Este contato foi bloqueado com sucesso. Você não será notificado por nenhuma conversação futura.",
+ "UNMUTED_SUCCESS": "Este contato foi desbloqueado com sucesso.",
"SEND_TRANSCRIPT": "Enviar Transcrição",
"EDIT_LABEL": "Alterar",
"SIDEBAR_SECTIONS": {
"CUSTOM_ATTRIBUTES": "Atributos Personalizados",
"CONTACT_LABELS": "Etiquetas de contato",
- "PREVIOUS_CONVERSATIONS": "Conversas anteriores"
+ "PREVIOUS_CONVERSATIONS": "Conversas anteriores",
+ "NO_RECORDS_FOUND": "Nenhum atributo encontrado"
}
},
"EDIT_CONTACT": {
- "BUTTON_LABEL": "Alterar Contato",
- "TITLE": "Alterar contato",
+ "BUTTON_LABEL": "Editar Contato",
+ "TITLE": "Editar contato",
"DESC": "Alterar detalhes do contato"
},
- "CREATE_CONTACT": {
- "BUTTON_LABEL": "Novo contato",
- "TITLE": "Criar novo contato",
- "DESC": "Adicione informações básicas sobre o contato."
- },
- "IMPORT_CONTACTS": {
- "BUTTON_LABEL": "Importar",
- "TITLE": "Importar Contatos",
- "DESC": "Importar contatos através de um arquivo CSV.",
- "DOWNLOAD_LABEL": "Baixar um exemplo de csv.",
- "FORM": {
- "LABEL": "Arquivo CSV",
- "SUBMIT": "Importar",
- "CANCEL": "Cancelar"
- },
- "SUCCESS_MESSAGE": "Você será notificado por e-mail quando a importação for concluída.",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
- },
- "EXPORT_CONTACTS": {
- "BUTTON_LABEL": "Exportar",
- "TITLE": "Exportar contatos",
- "DESC": "Exportar contatos para arquivo CSV.",
- "SUCCESS_MESSAGE": "Export is in progress, You will be notified via email when export file is ready to dowanlod.",
- "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente",
- "CONFIRM": {
- "TITLE": "Exportar contatos",
- "MESSAGE": "Are you sure you want to export all contacts?",
- "YES": "Yes, Export",
- "NO": "No, Cancel"
- }
- },
- "DELETE_NOTE": {
- "CONFIRM": {
- "TITLE": "Confirmar exclusão",
- "MESSAGE": "Tem certeza que deseja excluir esta nota?",
- "YES": "Sim, exclua",
- "NO": "Não, mantenha"
- }
- },
"DELETE_CONTACT": {
"BUTTON_LABEL": "Excluir Contato",
"TITLE": "Excluir contato",
"DESC": "Excluir detalhes do contato",
"CONFIRM": {
- "TITLE": "Confirmar exclusão",
+ "TITLE": "Confirmar Exclusão",
"MESSAGE": "Você tem certeza que deseja excluir ",
- "YES": "Sim, excluir",
+ "YES": "Sim, Excluir",
"NO": "Não, Mantenha"
},
"API": {
@@ -140,7 +111,7 @@
"DUPLICATE": "Este número de telefone está em uso para outro contato."
},
"LOCATION": {
- "PLACEHOLDER": "Enter the location of the contact",
+ "PLACEHOLDER": "Insira a localização do contato",
"LABEL": "Localização"
},
"COMPANY_NAME": {
@@ -148,10 +119,10 @@
"LABEL": "Nome da empresa"
},
"COUNTRY": {
- "PLACEHOLDER": "Digite o nome do país",
+ "PLACEHOLDER": "Digite o nome do país ",
"LABEL": "Nome do País",
"SELECT_PLACEHOLDER": "Selecionar",
- "REMOVE": "Excluir",
+ "REMOVE": "Remover",
"SELECT_COUNTRY": "Selecione o país"
},
"CITY": {
@@ -187,7 +158,7 @@
"ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
},
"NEW_CONVERSATION": {
- "BUTTON_LABEL": "Iniciar Conversa",
+ "BUTTON_LABEL": "Iniciar conversa",
"TITLE": "Nova conversa",
"DESC": "Iniciar uma nova conversa enviando uma nova mensagem.",
"NO_INBOX": "Não foi possível encontrar uma caixa de entrada para iniciar uma nova conversa com este contato.",
@@ -222,84 +193,21 @@
}
},
"CONTACTS_PAGE": {
- "HEADER": "Contato",
- "FIELDS": "Campos de contatos",
- "SEARCH_BUTTON": "Pesquisar",
- "SEARCH_INPUT_PLACEHOLDER": "Procurar contatos",
- "FILTER_CONTACTS": "Filtro",
- "FILTER_CONTACTS_SAVE": "Salvar filtro",
- "FILTER_CONTACTS_DELETE": "Excluir filtro",
- "FILTER_CONTACTS_EDIT": "Editar segmento",
"LIST": {
- "LOADING_MESSAGE": "Carregando contatos...",
- "404": "Nenhum contato corresponde à sua pesquisa 🔍",
- "NO_CONTACTS": "Não há contatos disponíveis",
"TABLE_HEADER": {
- "NAME": "Nome",
- "PHONE_NUMBER": "Número de Telefone",
- "CONVERSATIONS": "Conversas",
- "LAST_ACTIVITY": "Última atividade",
- "CREATED_AT": "Criado em",
- "COUNTRY": "País/região",
- "CITY": "Cidade",
- "SOCIAL_PROFILES": "Social Profiles",
- "COMPANY": "Empresa",
- "EMAIL_ADDRESS": "Endereço de e-mail"
- },
- "VIEW_DETAILS": "Ver detalhes"
- }
- },
- "CONTACT_PROFILE": {
- "BACK_BUTTON": "Contato",
- "LOADING": "Carregando o perfil do contato..."
- },
- "REMINDER": {
- "ADD_BUTTON": {
- "BUTTON": "Adicionar",
- "TITLE": "Shift + Enter para criar uma nota"
- },
- "FOOTER": {
- "DUE_DATE": "Data de vencimento",
- "LABEL_TITLE": "Definir tipo"
- }
- },
- "NOTES": {
- "FETCHING_NOTES": "Buscando anotações...",
- "NOT_AVAILABLE": "Não há notas criadas para este contato",
- "HEADER": {
- "TITLE": "Observações"
- },
- "LIST": {
- "LABEL": "adicionou uma anotação"
- },
- "ADD": {
- "BUTTON": "Adicionar",
- "PLACEHOLDER": "Adicionar uma nota",
- "TITLE": "Shift + Enter para criar uma nota"
- },
- "CONTENT_HEADER": {
- "DELETE": "Excluir anotação"
- }
- },
- "EVENTS": {
- "HEADER": {
- "TITLE": "Atividades"
- },
- "BUTTON": {
- "PILL_BUTTON_NOTES": "observações",
- "PILL_BUTTON_EVENTS": "Eventos",
- "PILL_BUTTON_CONVO": "conversas"
+ "SOCIAL_PROFILES": "Perfis Sociais"
+ }
}
},
"CUSTOM_ATTRIBUTES": {
- "ADD_BUTTON_TEXT": "Adicionar atributos",
"BUTTON": "Criar atributo personalizado",
- "NOT_AVAILABLE": "Não há atributos personalizados para este contato.",
"COPY_SUCCESSFUL": "Copiado para área de transferência com sucesso",
+ "SHOW_MORE": "Mostrar todos os atributos",
+ "SHOW_LESS": "Mostrar menos atributos",
"ACTIONS": {
"COPY": "Copiar atributo",
"DELETE": "Excluir atributo",
- "EDIT": "Editar atributo"
+ "EDIT": "Alterar atributo"
},
"ADD": {
"TITLE": "Criar atributo personalizado",
@@ -309,13 +217,13 @@
"CREATE": "Adicionar atributo",
"CANCEL": "Cancelar",
"NAME": {
- "LABEL": "Atributos Personalizados",
+ "LABEL": "Nome do Atributo Personalizado",
"PLACEHOLDER": "Por exemplo: ID shopify",
"ERROR": "Nome de atributo personalizado inválido"
},
"VALUE": {
"LABEL": "Valor do atributo",
- "PLACEHOLDER": "Eg: 11901 "
+ "PLACEHOLDER": "Ex: 11901 "
},
"ADD": {
"TITLE": "Criar novo atributo ",
@@ -332,7 +240,7 @@
},
"ATTRIBUTE_SELECT": {
"TITLE": "Adicionar atributos",
- "PLACEHOLDER": "Procurar atributos",
+ "PLACEHOLDER": "Pesquisar atributos",
"NO_RESULT": "Nenhum atributo encontrado"
},
"ATTRIBUTE_TYPE": {
@@ -358,16 +266,16 @@
},
"PARENT": {
"TITLE": "Contato para mesclar",
- "PLACEHOLDER": "Procurar um contato",
+ "PLACEHOLDER": "Pesquisar um contato",
"HELP_LABEL": "Para ser mantido"
},
"SUMMARY": {
"TITLE": "Sumário",
- "DELETE_WARNING": "Contato de %{primaryContactName} será excluído.",
- "ATTRIBUTE_WARNING": "Detalhes de contato de %{primaryContactName} serão copiados para %{parentContactName}."
+ "DELETE_WARNING": "Contato de {primaryContactName} será excluído.",
+ "ATTRIBUTE_WARNING": "Detalhes de contato de {primaryContactName} serão copiados para {parentContactName}."
},
"SEARCH": {
- "ERROR": "Mensagem de erro"
+ "ERROR_MESSAGE": "Algo deu errado. Por favor, tente novamente mais tarde."
},
"FORM": {
"SUBMIT": " Mesclar contatos",
@@ -377,6 +285,382 @@
},
"SUCCESS_MESSAGE": "Contato mesclado com sucesso",
"ERROR_MESSAGE": "Não foi possível mesclar contatos, tente novamente!"
+ },
+ "DROPDOWN_ITEM": {
+ "ID": "(ID: {identifier})"
+ }
+ },
+ "CONTACTS_LAYOUT": {
+ "HEADER": {
+ "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": "Contatos"
+ },
+ "ACTIONS": {
+ "CONTACT_CREATION": {
+ "ADD_CONTACT": "Adicionar contato",
+ "EXPORT_CONTACT": "Exportar contatos",
+ "IMPORT_CONTACT": "Importar contatos",
+ "SAVE_CONTACT": "Salvar contato",
+ "EMAIL_ADDRESS_DUPLICATE": "Esse endereço de e-mail já está sendo usado para outro contato.",
+ "PHONE_NUMBER_DUPLICATE": "Este número de telefone está em uso para outro contato.",
+ "SUCCESS_MESSAGE": "Contato salvo com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar o contato. Por favor, tente mais tarde."
+ },
+ "BLOCK_SUCCESS_MESSAGE": "Este contato foi bloqueado com sucesso",
+ "BLOCK_ERROR_MESSAGE": "Não foi possível bloquear o contato. Tente novamente mais tarde.",
+ "UNBLOCK_SUCCESS_MESSAGE": "Este contato foi desbloqueado com sucesso",
+ "UNBLOCK_ERROR_MESSAGE": "Não foi possível desbloquear o contato. Tente novamente mais tarde.",
+ "IMPORT_CONTACT": {
+ "TITLE": "Importar contatos",
+ "DESCRIPTION": "Importar contatos através de um arquivo CSV.",
+ "DOWNLOAD_LABEL": "Baixar um exemplo de csv.",
+ "LABEL": "Arquivo CSV:",
+ "CHOOSE_FILE": "Escolher arquivo",
+ "CHANGE": "Trocar",
+ "CANCEL": "Cancelar",
+ "IMPORT": "Importar",
+ "SUCCESS_MESSAGE": "Você será notificado por e-mail quando a importação estiver concluída.",
+ "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",
+ "CONFIRM": "Exportar",
+ "SUCCESS_MESSAGE": "Exportando. Você será notificado por e-mail quando o arquivo estiver pronto para ser baixado.",
+ "ERROR_MESSAGE": "Ocorreu um erro, por favor tente novamente"
+ },
+ "SORT_BY": {
+ "LABEL": "Classificar por",
+ "OPTIONS": {
+ "NAME": "Nome",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de telefone",
+ "COMPANY": "Empresa",
+ "COUNTRY": "País/região",
+ "CITY": "Cidade",
+ "LAST_ACTIVITY": "Última atividade",
+ "CREATED_AT": "Criado em"
+ }
+ },
+ "ORDER": {
+ "LABEL": "Ordenação",
+ "OPTIONS": {
+ "ASCENDING": "Crescente",
+ "DESCENDING": "Decrescente"
+ }
+ },
+ "FILTERS": {
+ "CREATE_SEGMENT": {
+ "TITLE": "Você quer salvar este filtro?",
+ "CONFIRM": "Salvar filtro",
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Informe o nome para esse filtro",
+ "ERROR": "Informe um nome válido",
+ "SUCCESS_MESSAGE": "Filtro salvo com sucesso",
+ "ERROR_MESSAGE": "Não foi possível salvar o filtro. Por favor, tente mais tarde."
+ },
+ "DELETE_SEGMENT": {
+ "TITLE": "Confirmar exclusão",
+ "DESCRIPTION": "Tem certeza de que deseja excluir este filtro?",
+ "CONFIRM": "Sim, Excluir",
+ "CANCEL": "Não, Cancelar",
+ "SUCCESS_MESSAGE": "Filtro excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível excluir o filtro. Por favor, tente mais tarde."
+ }
+ }
+ }
+ },
+ "PAGINATION_FOOTER": {
+ "SHOWING": "Exibindo {startItem} - {endItem} de {totalItems} contatos"
+ },
+ "FILTER": {
+ "NAME": "Nome",
+ "EMAIL": "E-mail",
+ "PHONE_NUMBER": "Número de telefone",
+ "IDENTIFIER": "Identificador",
+ "COUNTRY": "País/região",
+ "CITY": "Cidade",
+ "COMPANY": "Empresa",
+ "CREATED_AT": "Criado em",
+ "LAST_ACTIVITY": "Última atividade",
+ "REFERER_LINK": "Link de origem",
+ "BLOCKED": "Bloqueado",
+ "BLOCKED_TRUE": "Verdadeiro",
+ "BLOCKED_FALSE": "Falso",
+ "BUTTONS": {
+ "CLEAR_FILTERS": "Limpar filtros",
+ "UPDATE_SEGMENT": "Atualizar segmento",
+ "APPLY_FILTERS": "Aplicar filtros",
+ "ADD_FILTER": "Adicionar filtro"
+ },
+ "TITLE": "Filtrar contatos",
+ "EDIT_SEGMENT": "Alterar segmento",
+ "SEGMENT": {
+ "LABEL": "Nome do segmento",
+ "INPUT_PLACEHOLDER": "Digite o nome do segmento"
+ },
+ "ACTIVE_FILTERS": {
+ "MORE_FILTERS": "+ {count} mais filtros",
+ "CLEAR_FILTERS": "Limpar filtros"
+ }
+ },
+ "CARD": {
+ "OF": "de",
+ "VIEW_DETAILS": "Ver detalhes",
+ "EDIT_DETAILS_FORM": {
+ "TITLE": "Alterar detalhes do contato",
+ "FORM": {
+ "FIRST_NAME": {
+ "PLACEHOLDER": "Digite o primeiro nome"
+ },
+ "LAST_NAME": {
+ "PLACEHOLDER": "Digite o sobrenome"
+ },
+ "EMAIL_ADDRESS": {
+ "PLACEHOLDER": "Digite o endereço de e-mail",
+ "DUPLICATE": "Esse endereço de e-mail já está sendo usado para outro contato."
+ },
+ "PHONE_NUMBER": {
+ "PLACEHOLDER": "Digite o número de telefone",
+ "DUPLICATE": "Este número de telefone está em uso para outro contato."
+ },
+ "CITY": {
+ "PLACEHOLDER": "Digite o nome da cidade"
+ },
+ "COUNTRY": {
+ "PLACEHOLDER": "Selecione o país"
+ },
+ "BIO": {
+ "PLACEHOLDER": "Digite uma biografia"
+ },
+ "COMPANY_NAME": {
+ "PLACEHOLDER": "Digite 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."
+ },
+ "SOCIAL_MEDIA": {
+ "TITLE": "Editar redes sociais",
+ "FORM": {
+ "FACEBOOK": {
+ "PLACEHOLDER": "Adicionar Facebook"
+ },
+ "GITHUB": {
+ "PLACEHOLDER": "Adicionar Github"
+ },
+ "INSTAGRAM": {
+ "PLACEHOLDER": "Adicionar Instagram"
+ },
+ "TELEGRAM": {
+ "PLACEHOLDER": "Adicionar Telegram"
+ },
+ "TIKTOK": {
+ "PLACEHOLDER": "Adicionar TikTok"
+ },
+ "LINKEDIN": {
+ "PLACEHOLDER": "Adicionar LinkedIn"
+ },
+ "TWITTER": {
+ "PLACEHOLDER": "Adicionar Twitter"
+ }
+ }
+ },
+ "DELETE_CONTACT": {
+ "MESSAGE": "Esta ação é permanente e irreversível.",
+ "BUTTON": "Excluir agora"
+ }
+ },
+ "DETAILS": {
+ "CREATED_AT": "Criado {date}",
+ "LAST_ACTIVITY": "Última atividade {date}",
+ "DELETE_CONTACT_DESCRIPTION": "Excluir permanentemente este contato. Esta ação é irreversível",
+ "DELETE_CONTACT": "Excluir contato",
+ "DELETE_DIALOG": {
+ "TITLE": "Confirmar exclusão",
+ "DESCRIPTION": "Tem certeza de que deseja excluir este contato?",
+ "CONFIRM": "Sim, excluir",
+ "API": {
+ "SUCCESS_MESSAGE": "Contato excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível excluir o contato. Por favor, tente novamente mais tarde."
+ }
+ },
+ "AVATAR": {
+ "UPLOAD": {
+ "ERROR_MESSAGE": "Não foi possível enviar o avatar. Por favor, tente novamente mais tarde.",
+ "SUCCESS_MESSAGE": "Avatar enviado com sucesso"
+ },
+ "DELETE": {
+ "SUCCESS_MESSAGE": "Avatar excluído com sucesso",
+ "ERROR_MESSAGE": "Não foi possível excluir o avatar. Por favor, tente novamente mais tarde."
+ }
+ }
+ },
+ "SIDEBAR": {
+ "TABS": {
+ "ATTRIBUTES": "Atributos",
+ "HISTORY": "Histórico",
+ "NOTES": "Notas",
+ "MERGE": "Mesclar"
+ },
+ "HISTORY": {
+ "EMPTY_STATE": "Não há conversas anteriores associadas a este contato"
+ },
+ "ATTRIBUTES": {
+ "SEARCH_PLACEHOLDER": "Pesquisar atributos",
+ "UNUSED_ATTRIBUTES": "{count} atributos utilizados | {count} atributos não utilizados",
+ "EMPTY_STATE": "Não há atributos personalizados de contatos disponíveis nesta conta. Você pode criar um atributo personalizado nas configurações.",
+ "YES": "Sim",
+ "NO": "Não",
+ "TRIGGER": {
+ "SELECT": "Selecione o valor",
+ "INPUT": "Inserir valor"
+ },
+ "VALIDATIONS": {
+ "INVALID_NUMBER": "Número inválido",
+ "REQUIRED": "Um valor válido é obrigatório",
+ "INVALID_INPUT": "Campo inválido",
+ "INVALID_URL": "URL inválida",
+ "INVALID_DATE": "Data inválida"
+ },
+ "NO_ATTRIBUTES": "Nenhum atributo encontrado",
+ "API": {
+ "SUCCESS_MESSAGE": "Atributo atualizado com sucesso",
+ "DELETE_SUCCESS_MESSAGE": "Atributo excluído com sucesso",
+ "UPDATE_ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde",
+ "DELETE_ERROR": "Não foi possível excluir o atributo. Por favor, tente mais tarde"
+ }
+ },
+ "MERGE": {
+ "TITLE": "Mesclar contatos",
+ "DESCRIPTION": "Mescle contatos para combinar dois perfis em um, incluindo todos os atributos e conversas. Em caso de conflito, os atributos do contato principal terão prioridade.",
+ "PRIMARY": "Contato principal",
+ "PRIMARY_HELP_LABEL": "A ser salvo",
+ "PRIMARY_REQUIRED_ERROR": "Por favor, selecione um contato para mesclar com este antes de prosseguir",
+ "PARENT": "Para ser mesclado",
+ "PARENT_HELP_LABEL": "Para ser excluído",
+ "EMPTY_STATE": "Nenhum contato encontrado",
+ "PLACEHOLDER": "Pesquisar contato principal",
+ "SEARCH_PLACEHOLDER": "Pesquisar um contato",
+ "SEARCH_ERROR_MESSAGE": "Não foi possível pesquisar pelo contato. Por favor, tente mais tarde.",
+ "SUCCESS_MESSAGE": "Contato mesclado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível mesclar contatos, tente novamente!",
+ "IS_SEARCHING": "Pesquisando...",
+ "BUTTONS": {
+ "CANCEL": "Cancelar",
+ "CONFIRM": "Mesclar contatos"
+ }
+ },
+ "NOTES": {
+ "PLACEHOLDER": "Adicionar uma nota",
+ "WROTE": "escreveu",
+ "YOU": "Você",
+ "SAVE": "Salvar nota",
+ "ADD_NOTE": "Adicionar nota de contato",
+ "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.",
+ "CONVERSATION_EMPTY_STATE": "Ainda não há notas. Use o botão Adicionar nota para criar uma."
+ }
+ },
+ "EMPTY_STATE": {
+ "TITLE": "Nenhum contato encontrado nesta conta",
+ "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 📋",
+ "ACTIVE_EMPTY_STATE_TITLE": "Nenhum contato está ativo no momento 🌙"
+ },
+ "LOAD_MORE": "Carregar mais"
+ },
+ "CONTACTS_BULK_ACTIONS": {
+ "ASSIGN_LABELS": "Atribuir rótulo",
+ "REMOVE_LABELS": "Remover Etiquetas",
+ "ASSIGN_LABELS_SUCCESS": "Rótulos atribuídos com sucesso.",
+ "ASSIGN_LABELS_FAILED": "Falha ao atribuir etiquetas",
+ "REMOVE_LABELS_SUCCESS": "Etiquetas removidas com sucesso.",
+ "REMOVE_LABELS_FAILED": "Falha ao remover etiquetas",
+ "DESCRIPTION": "Selecione as etiquetas que deseja adicionar aos contatos selecionados.",
+ "NO_LABELS_FOUND": "Nenhuma etiqueta disponível ainda.",
+ "SELECTED_COUNT": "{count} selecionado",
+ "CLEAR_SELECTION": "Limpar seleção",
+ "SELECT_ALL": "Selecionar todos ({count})",
+ "DELETE_CONTACTS": "Excluir",
+ "DELETE_SUCCESS": "Contatos excluídos com sucesso.",
+ "DELETE_FAILED": "Falha ao excluir os contatos.",
+ "DELETE_DIALOG": {
+ "TITLE": "Excluir os contatos selecionados",
+ "SINGULAR_TITLE": "Excluir o contato selecionado",
+ "DESCRIPTION": "Isso excluirá permanentemente {count} contatos selecionados. Esta ação não pode ser desfeita.",
+ "SINGULAR_DESCRIPTION": "Isso excluirá permanentemente o contato selecionado. Esta ação não pode ser desfeita.",
+ "CONFIRM_MULTIPLE": "Excluir contatos",
+ "CONFIRM_SINGLE": "Excluir contato"
+ }
+ },
+ "COMPOSE_NEW_CONVERSATION": {
+ "CONTACT_SEARCH": {
+ "ERROR_MESSAGE": "Não foi possível completar a pesquisa. Por favor, tente novamente."
+ },
+ "FORM": {
+ "GO_TO_CONVERSATION": "Visualizar",
+ "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.",
+ "CONTACT_SELECTOR": {
+ "LABEL": "Para:",
+ "TAG_INPUT_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por nome, e-mail ou número de telefone",
+ "CONTACT_CREATING": "Criando contato..."
+ },
+ "INBOX_SELECTOR": {
+ "LABEL": "Via:",
+ "BUTTON": "Mostrar Caixas de Entrada"
+ },
+ "EMAIL_OPTIONS": {
+ "SUBJECT_LABEL": "Assunto:",
+ "SUBJECT_PLACEHOLDER": "Digite o assunto do seu e-mail aqui",
+ "CC_LABEL": "Cc:",
+ "CC_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por e-mail",
+ "BCC_LABEL": "CCO:",
+ "BCC_PLACEHOLDER": "Digite pelo menos 2 caracteres para pesquisar por e-mail",
+ "BCC_BUTTON": "CCO"
+ },
+ "MESSAGE_EDITOR": {
+ "PLACEHOLDER": "Escreva sua mensagem aqui..."
+ },
+ "WHATSAPP_OPTIONS": {
+ "LABEL": "Selecione o modelo",
+ "SEARCH_PLACEHOLDER": "Pesquisar modelos",
+ "EMPTY_STATE": "Nenhum modelo encontrado",
+ "TEMPLATE_PARSER": {
+ "TEMPLATE_NAME": "Modelo do WhatsApp: {templateName}",
+ "VARIABLES": "Variáveis",
+ "BACK": "Voltar atrás",
+ "SEND_MESSAGE": "Enviar mensagem"
+ }
+ },
+ "TWILIO_OPTIONS": {
+ "LABEL": "Selecione o modelo",
+ "SEARCH_PLACEHOLDER": "Pesquisar modelos",
+ "EMPTY_STATE": "Nenhum modelo encontrado",
+ "TEMPLATE_PARSER": {
+ "BACK": "Voltar",
+ "SEND_MESSAGE": "Enviar mensagem"
+ }
+ },
+ "ACTION_BUTTONS": {
+ "DISCARD": "Descartar",
+ "SEND": "Enviar ({keyCode})"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contactFilters.json b/app/javascript/dashboard/i18n/locale/pt_BR/contactFilters.json
index 6e835e894..c2c363a6f 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/contactFilters.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/contactFilters.json
@@ -1,8 +1,8 @@
{
"CONTACTS_FILTER": {
- "TITLE": "Filtrar contatos",
+ "TITLE": "Filtrar Contatos",
"SUBTITLE": "Adicione filtros abaixo e clique em 'Enviar' para filtrar conversas.",
- "EDIT_CUSTOM_SEGMENT": "Editar segmento",
+ "EDIT_CUSTOM_SEGMENT": "Alterar segmento",
"CUSTOM_VIEWS_SUBTITLE": "Adicione ou remova filtros e atualize seu segmento.",
"ADD_NEW_FILTER": "Adicionar filtro",
"CLEAR_ALL_FILTERS": "Limpar Filtros",
@@ -16,8 +16,8 @@
"SEGMENT_QUERY_LABEL": "Consulta de Segmento",
"TOOLTIP_LABEL": "Filtrar contatos",
"QUERY_DROPDOWN_LABELS": {
- "AND": "OU",
- "OR": "ou"
+ "AND": "E",
+ "OR": "OU"
},
"OPERATOR_LABELS": {
"equal_to": "Igual a",
@@ -30,9 +30,12 @@
"is_lesser_than": "É menor que",
"days_before": "É x dias antes"
},
+ "ERRORS": {
+ "VALUE_REQUIRED": "Valor obrigatório"
+ },
"ATTRIBUTES": {
"NAME": "Nome",
- "EMAIL": "e-mail",
+ "EMAIL": "E-mail",
"PHONE_NUMBER": "Número de telefone",
"IDENTIFIER": "Identificador",
"CITY": "Cidade",
@@ -44,7 +47,9 @@
"CUSTOM_ATTRIBUTE_CHECKBOX": "Checkbox",
"CREATED_AT": "Criado em",
"LAST_ACTIVITY": "Última atividade",
- "REFERER_LINK": "Link de origem"
+ "REFERER_LINK": "Link de origem",
+ "BLOCKED": "Bloqueado",
+ "LABELS": "Etiquetas"
},
"GROUPS": {
"STANDARD_FILTERS": "Filtros Padrão",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/contentTemplates.json b/app/javascript/dashboard/i18n/locale/pt_BR/contentTemplates.json
new file mode 100644
index 000000000..478fb164b
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/contentTemplates.json
@@ -0,0 +1,52 @@
+{
+ "CONTENT_TEMPLATES": {
+ "MODAL": {
+ "TITLE": "Modelos Twilio",
+ "SUBTITLE": "Selecione um modelo Twilio que você deseja enviar",
+ "TEMPLATE_SELECTED_SUBTITLE": "Configurar modelo: {templateName}"
+ },
+ "PICKER": {
+ "SEARCH_PLACEHOLDER": "Pesquisar modelos",
+ "NO_TEMPLATES_FOUND": "Não há modelos encontrados para",
+ "NO_CONTENT": "Sem conteúdo",
+ "HEADER": "Cabeçalho",
+ "BODY": "Corpo",
+ "FOOTER": "Rodapé",
+ "BUTTONS": "Botões",
+ "CATEGORY": "Categoria",
+ "MEDIA_CONTENT": "Conteúdo de Mídia",
+ "MEDIA_CONTENT_FALLBACK": "conteúdo de mídia",
+ "NO_TEMPLATES_AVAILABLE": "Não há modelos Twilio disponíveis. Clique em Atualizar para sincronizar os modelos do Twilio.",
+ "REFRESH_BUTTON": "Atualizar modelos",
+ "REFRESH_SUCCESS": "Atualização de modelos iniciada. Pode levar alguns minutos para atualizar.",
+ "REFRESH_ERROR": "Falha ao atualizar os modelos. Por favor, tente novamente.",
+ "LABELS": {
+ "LANGUAGE": "Idioma",
+ "TEMPLATE_BODY": "Conteúdo do Modelo",
+ "CATEGORY": "Categoria"
+ },
+ "TYPES": {
+ "MEDIA": "Mídia",
+ "QUICK_REPLY": "Resposta Rápida",
+ "CALL_TO_ACTION": "Chamada para Ação",
+ "TEXT": "Texto"
+ }
+ },
+ "PARSER": {
+ "VARIABLES_LABEL": "Variáveis",
+ "LANGUAGE": "Idioma",
+ "CATEGORY": "Categoria",
+ "VARIABLE_PLACEHOLDER": "Insira o valor para {variable}",
+ "GO_BACK_LABEL": "Voltar",
+ "SEND_MESSAGE_LABEL": "Enviar Mensagem",
+ "FORM_ERROR_MESSAGE": "Por favor, preencha todas as variáveis antes de enviar",
+ "MEDIA_HEADER_LABEL": "Cabeçalho {type}",
+ "MEDIA_URL_LABEL": "Digite a URL completa da mídia",
+ "MEDIA_URL_PLACEHOLDER": "https://exemplo.com.br/imagem.jpg"
+ },
+ "FORM": {
+ "BACK_BUTTON": "Anterior",
+ "SEND_MESSAGE_BUTTON": "Enviar Mensagem"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
index 5fbeae55c..8a6702eaa 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/conversation.json
@@ -11,14 +11,16 @@
"NO_INBOX_1": "Hola! Parece que você não adicionou nenhuma caixa de entrada ainda.",
"NO_INBOX_2": " para começar",
"NO_INBOX_AGENT": "Uh Oh! Parece que você não faz parte de nenhuma caixa de entrada. Por favor, contate seu administrador",
- "SEARCH_MESSAGES": "Procurar por mensagens nas conversas",
+ "SEARCH_MESSAGES": "Pesquisar por mensagens nas conversas",
+ "VIEW_ORIGINAL": "Ver original",
+ "VIEW_TRANSLATED": "Ver traduzido",
"EMPTY_STATE": {
"CMD_BAR": "para abrir o menu de comando",
"KEYBOARD_SHORTCUTS": "para ver os atalhos de teclado"
},
"SEARCH": {
- "TITLE": "Procurar mensagens",
- "RESULT_TITLE": "Resultados da pesquisa",
+ "TITLE": "Pesquisar mensagens",
+ "RESULT_TITLE": "Resultados da Pesquisa",
"LOADING_MESSAGE": "Preparando dados...",
"PLACEHOLDER": "Digite qualquer texto para pesquisar mensagens",
"NO_MATCHING_RESULTS": "Nenhum resultado encontrado."
@@ -30,44 +32,100 @@
"LOADING_CONVERSATIONS": "Carregando conversas",
"CANNOT_REPLY": "Você não pode responder porque",
"24_HOURS_WINDOW": "Restrições de janela de mensagem de 24 horas",
+ "48_HOURS_WINDOW": "Restrição da janela de mensagens de 48 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",
+ "BOT_HANDOFF_MESSAGE": "Você está respondendo a uma conversa que é atualmente tratada por um assistente ou um robô.",
+ "BOT_HANDOFF_ACTION": "Marcar como aberta e atribuir a você",
+ "BOT_HANDOFF_REOPEN_ACTION": "Marcar conversa como aberta",
+ "BOT_HANDOFF_SUCCESS": "Uma conversa foi atribuída a você",
+ "BOT_HANDOFF_ERROR": "Falha ao resolver conversas. Por favor, tente novamente.",
"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",
+ "REMOVE_SELECTION": "Remover seleção",
"DOWNLOAD": "Baixar",
- "UNKNOWN_FILE_TYPE": "Arquivo Desconhecido",
- "SAVE_CONTACT": "Salvar",
+ "UNKNOWN_FILE_TYPE": "Arquivo desconhecido",
+ "SAVE_CONTACT": "Salvar contato",
+ "NO_CONTENT": "Nenhum conteúdo a ser exibido",
+ "SHARED_ATTACHMENT": {
+ "CONTACT": "{sender} compartilhou um contato",
+ "LOCATION": "{sender} compartilhou uma localização",
+ "FILE": "{sender} compartilhou um arquivo",
+ "MEETING": "{sender} começou a reunião"
+ },
"UPLOADING_ATTACHMENTS": "Enviando anexos...",
"REPLIED_TO_STORY": "Respondido ao seu story",
- "UNSUPPORTED_MESSAGE": "Esta mensagem não é suportada.",
+ "UNSUPPORTED_MESSAGE": "Esta mensagem não é suportada. Para visualizá-la, por favor, abra-a na plataforma original.",
"UNSUPPORTED_MESSAGE_FACEBOOK": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo Facebook Messenger.",
"UNSUPPORTED_MESSAGE_INSTAGRAM": "Esta mensagem não é suportada. Você pode ver esta mensagem no aplicativo do Instagram.",
+ "UNSUPPORTED_MESSAGE_TIKTOK": "Esta mensagem não é compatível. Você pode visualizá-la no aplicativo do TikTok.",
+ "UNSUPPORTED_MESSAGE_WHATSAPP": "Esta mensagem não é suportada. Você pode visualizar esta mensagem no aplicativo do WhatsApp.",
"SUCCESS_DELETE_MESSAGE": "Mensagem excluída com sucesso",
"FAIL_DELETE_MESSSAGE": "Não foi possível excluir a mensagem! Tente novamente",
"NO_RESPONSE": "Sem resposta",
+ "RESPONSE": "Resposta",
"RATING_TITLE": "Classificação",
"FEEDBACK_TITLE": "Feedback",
"REPLY_MESSAGE_NOT_FOUND": "Mensagem não disponível",
"CARD": {
- "SHOW_LABELS": "Mostrar rótulos",
- "HIDE_LABELS": "Ocultar os rótulos"
+ "SHOW_LABELS": "Mostrar etiquetas",
+ "HIDE_LABELS": "Ocultar as etiquetas",
+ "LABELS_COUNT": "{count} etiquetas"
+ },
+ "VOICE_CALL": {
+ "INCOMING_CALL": "Chamada recebida",
+ "OUTGOING_CALL": "Chamada realizada",
+ "CALL_IN_PROGRESS": "Chamada em andamento",
+ "NO_ANSWER": "Sem resposta",
+ "NO_ANSWER_OUTBOUND_LABEL": "Sem resposta",
+ "NO_ANSWER_OUTBOUND_SUBTEXT": "O contato não atendeu",
+ "MISSED_CALL": "Chamada perdida",
+ "MISSED_CALL_INBOUND_SUBTEXT": "Nenhum atendente atendeu",
+ "MISSED_CALL_DECLINED_BY": "Recusado por {agentName}",
+ "CALL_ENDED": "Chamada encerrada",
+ "HANDLED_BY": "Atendido por {agentName}",
+ "NOT_ANSWERED_YET": "Ainda não respondido",
+ "CALLING": "Chamando…",
+ "THEY_ANSWERED": "Eles responderam",
+ "YOU_ANSWERED": "Você respondeu",
+ "AGENT_ANSWERED": "{agentName} respondeu",
+ "JOIN_CALL": "Entrar na chamada",
+ "CALL_BACK": "Retornar chamada",
+ "TRANSCRIPT_SHOW_MORE": "Ver mais",
+ "TRANSCRIPT_SHOW_LESS": "Mostrar menos"
},
"HEADER": {
"RESOLVE_ACTION": "Resolver",
"REOPEN_ACTION": "Reabrir",
"OPEN_ACTION": "Abrir",
+ "MORE_ACTIONS": "Mais ações",
"OPEN": "Mais",
"CLOSE": "Fechar",
"DETAILS": "detalhes",
- "SNOOZED_UNTIL": "Suspender até",
+ "COPY_ID_SUCCESS": "ID da conversa copiado para área de transferência",
+ "SNOOZED_UNTIL": "Adiar até",
"SNOOZED_UNTIL_TOMORROW": "Adiado até amanhã",
"SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana",
- "SNOOZED_UNTIL_NEXT_REPLY": "Adiado até a próxima resposta"
+ "SNOOZED_UNTIL_NEXT_REPLY": "Adiado até a próxima resposta",
+ "WHATSAPP_CALL": "Iniciar chamada no WhatsApp",
+ "WHATSAPP_CALL_FAILED": "Não foi possível iniciar a chamada no WhatsApp.",
+ "VOICE_CALL": "Iniciar chamada",
+ "VOICE_CALL_FAILED": "Não foi possível iniciar a chamada.",
+ "WHATSAPP_CALL_PERMISSION_REQUESTED": "Solicitação de permissão de chamada enviada ao contato. Tente novamente após a aceitação.",
+ "WHATSAPP_CALL_PERMISSION_PENDING": "Uma solicitação de permissão de chamada já foi enviada recentemente. Tente novamente após o contato aceitar.",
+ "SLA_STATUS": {
+ "FRT": "FRT {status}",
+ "NRT": "NRT {status}",
+ "RT": "RT {status}",
+ "MISSED": "perdidas",
+ "DUE": "venceu"
+ }
},
"RESOLVE_DROPDOWN": {
- "MARK_PENDING": "Marcar como pendente",
+ "MARK_PENDING": "Deixar pendente",
"SNOOZE_UNTIL": "Adiar",
"SNOOZE": {
"TITLE": "Suspender até",
@@ -76,8 +134,12 @@
"NEXT_WEEK": "Próxima semana"
}
},
+ "MENTION": {
+ "AGENTS": "Agentes",
+ "TEAMS": "Times"
+ },
"CUSTOM_SNOOZE": {
- "TITLE": "Suspender até",
+ "TITLE": "Adiar até",
"APPLY": "Adiar",
"CANCEL": "Cancelar"
},
@@ -94,14 +156,20 @@
"SELECT_PLACEHOLDER": "Nenhuma",
"INPUT_PLACEHOLDER": "Selecionar prioridade",
"NO_RESULTS": "Nenhum resultado encontrado",
- "SUCCESSFUL": "Alterada a prioridade do ID da conversa %{conversationId} para %{priority}",
+ "SUCCESSFUL": "Alterada a prioridade do ID da conversa {conversationId} para {priority}",
"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": "Marcar como pendente",
- "RESOLVED": "Marcar como resolvido",
+ "PENDING": "Deixar pendente",
+ "RESOLVED": "Marcar como resolvida",
"MARK_AS_UNREAD": "Marcar como não lida",
+ "MARK_AS_READ": "Marcar como lida",
"REOPEN": "Reabrir conversa",
"SNOOZE": {
"TITLE": "Adiar",
@@ -112,19 +180,27 @@
"ASSIGN_AGENT": "Atribuir Agente",
"ASSIGN_LABEL": "Atribuir etiqueta",
"AGENTS_LOADING": "Carregando agentes...",
- "ASSIGN_TEAM": "Atribuir equipe",
+ "ASSIGN_TEAM": "Atribuir time",
+ "DELETE": "Excluir conversa",
+ "OPEN_IN_NEW_TAB": "Abrir em nova aba",
+ "COPY_LINK": "Copiar link da conversa",
+ "COPY_LINK_SUCCESS": "Link da conversa copiado",
"API": {
"AGENT_ASSIGNMENT": {
- "SUCCESFUL": "ID da conversa %{conversationId} atribuído para \"%{agentName}\"",
+ "SUCCESFUL": "ID da conversa {conversationId} atribuído para \"{agentName}\"",
"FAILED": "Não foi possível atribuir agente. Por favor, tente novamente."
},
"LABEL_ASSIGNMENT": {
- "SUCCESFUL": "Etiqueta #%{labelName} atribuída para o id de conversa %{conversationId}",
+ "SUCCESFUL": "Etiqueta #{labelName} atribuída para a conversa {conversationId}",
"FAILED": "Não foi possível atribuir etiqueta. Por favor, tente novamente."
},
+ "LABEL_REMOVAL": {
+ "SUCCESFUL": "Etiqueta #{labelName} removida da conversa com id {conversationId}",
+ "FAILED": "Não foi possível remover a 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."
}
}
},
@@ -132,10 +208,15 @@
"MESSAGE_SIGN_TOOLTIP": "Assinatura de mensagem",
"ENABLE_SIGN_TOOLTIP": "Ativar assinatura",
"DISABLE_SIGN_TOOLTIP": "Desativar assinatura",
- "MSG_INPUT": "Shift + enter para nova linha. Digite '/' para atalhos.",
+ "MSG_INPUT": "Shift + enter para nova linha. Digite '/' para selecionar uma Resposta Pronta.",
"PRIVATE_MSG_INPUT": "A mensagem será visível apenas para agentes",
+ "MESSAGING_RESTRICTED": "Você não pode responder esta conversa",
+ "MESSAGING_RESTRICTED_WHATSAPP": "Você só pode responder usando uma mensagem de modelo devido à restrição da janela de 24 horas",
+ "MESSAGING_RESTRICTED_API": "Você só pode responder usando uma mensagem de template devido à restrição da janela de mensagens",
"MESSAGE_SIGNATURE_NOT_CONFIGURED": "A assinatura da mensagem não está configurada. Por favor, configure-a nas configurações do perfil.",
- "CLICK_HERE": "Clique aqui para atualizar"
+ "COPILOT_MSG_INPUT": "Forneça instruções adicionais ao Copiloto ou pergunte algo mais... Pressione Enter para enviar",
+ "CLICK_HERE": "Clique aqui para atualizar",
+ "WHATSAPP_TEMPLATES": "Modelos do Whatsapp"
},
"REPLYBOX": {
"REPLY": "Responder",
@@ -145,16 +226,16 @@
"INSERT_READ_MORE": "Saiba mais",
"DISMISS_REPLY": "Dispensar resposta",
"REPLYING_TO": "Respondendo a:",
- "TIP_FORMAT_ICON": "Mostrar editor de texto completo",
"TIP_EMOJI_ICON": "Mostrar seletor de emoji",
"TIP_ATTACH_ICON": "Anexar arquivos",
"TIP_AUDIORECORDER_ICON": "Gravar áudio",
"TIP_AUDIORECORDER_PERMISSION": "Permitir acesso ao áudio",
"TIP_AUDIORECORDER_ERROR": "Não foi possível abrir o áudio",
+ "AUDIO_CONVERSION_FAILED": "Audio conversion failed. Please try again.",
"DRAG_DROP": "Arraste e solte aqui para anexar",
"START_AUDIO_RECORDING": "Iniciar gravação de áudio",
"STOP_AUDIO_RECORDING": "Parar gravação de áudio",
- "": "",
+ "COPILOT_THINKING": "O Copiloto está pensando",
"EMAIL_HEAD": {
"TO": "Para",
"ADD_BCC": "Adicionar cco",
@@ -176,26 +257,38 @@
"YES": "Enviar",
"CANCEL": "Cancelar"
}
+ },
+ "QUOTED_REPLY": {
+ "ENABLE_TOOLTIP": "Incluir o encadeamento de e-mails citado",
+ "DISABLE_TOOLTIP": "Não incluir o encadeamento de e-mails citado",
+ "REMOVE_PREVIEW": "Remover o encadeamento de e-mails citado",
+ "COLLAPSE": "Recolher a prévia",
+ "EXPAND": "Expandir a prévia"
}
},
- "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 status da conversa falhou",
- "CHANGE_AGENT": "Responsável da conversa alterado",
+ "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": "Estado 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",
+ "FILE_TYPE_NOT_SUPPORTED": "O tipo de arquivo {fileName} não é suportado nesta conversa",
"MESSAGE_ERROR": "Não foi possível enviar esta mensagem, por favor, tente novamente mais tarde",
"SENT_BY": "Enviado por:",
- "BOT": "Bot",
+ "BOT": "Robôs",
+ "NATIVE_APP": "Aplicativo nativo",
+ "NATIVE_APP_ADVISORY": "Esta mensagem foi enviada a partir do aplicativo nativo. Responda pelo Chatwoot para manter a janela de mensagens ativa.",
"SEND_FAILED": "Não foi possível enviar a mensagem! Tente novamente",
- "TRY_AGAIN": "Tentar novamente",
+ "TRY_AGAIN": "tentar novamente",
"ASSIGNMENT": {
- "SELECT_AGENT": "Selecione Agente",
+ "SELECT_AGENT": "selecionar Agente",
"REMOVE": "Excluir",
- "ASSIGN": "Atribua"
+ "ASSIGN": "Atribuir"
},
"CONTEXT_MENU": {
"COPY": "Copiar",
@@ -211,6 +304,25 @@
"DELETE": "Excluir",
"CANCEL": "Cancelar"
}
+ },
+ "SIDEBAR": {
+ "CONTACT": "Contatos",
+ "COPILOT": "Copiloto"
+ },
+ "VOICE_WIDGET": {
+ "INCOMING_CALL": "Chamada recebida",
+ "OUTGOING_CALL": "Chamada realizada",
+ "CALL_IN_PROGRESS": "Chamada em andamento",
+ "NOT_ANSWERED_YET": "Ainda não respondido",
+ "HANDLED_IN_ANOTHER_TAB": "Sendo atendida em outra aba",
+ "REJECT_CALL": "Recusar",
+ "DISMISS_CALL": "Recusar",
+ "JOIN_CALL": "Entrar na chamada",
+ "END_CALL": "Encerrar chamada",
+ "MUTE": "Silenciar microfone",
+ "UNMUTE": "Desilenciar microfone",
+ "VIEW_CHAT_HISTORY": "Ver histórico da conversa",
+ "GO_TO_CONVERSATION": "Ir para a conversa"
}
},
"EMAIL_TRANSCRIPT": {
@@ -220,6 +332,7 @@
"CANCEL": "Cancelar",
"SEND_EMAIL_SUCCESS": "A transcrição do chat foi enviada com sucesso",
"SEND_EMAIL_ERROR": "Ocorreu um erro, por favor tente novamente",
+ "SEND_EMAIL_PAYMENT_REQUIRED": "A transcrição de e-mail não está disponível no seu plano atual. Por favor, atualize para usar este recurso.",
"FORM": {
"SEND_TO_CONTACT": "Envie a transcrição para o cliente",
"SEND_TO_AGENT": "Envie a transcrição para o agente designado",
@@ -231,48 +344,87 @@
}
},
"ONBOARDING": {
- "TITLE": "Olá, 👋. Bem-vindo ao %{installationName}!",
- "DESCRIPTION": "Obrigado por se inscrever. Queremos que você aproveite o máximo de %{installationName}. Aqui estão algumas coisas que você consegue fazer no(a) %{installationName} para que tenha uma experiência agradável.",
+ "TITLE": "Olá, 👋. Bem-vindo ao {installationName}!",
+ "DESCRIPTION": "Obrigado por se inscrever. Queremos que você aproveite o máximo de {installationName}. Aqui estão algumas coisas que você consegue fazer em {installationName} para que tenha uma experiência agradável.",
+ "GREETING_MORNING": "👋 Bom dia, {name}. Bem-vindo a {installationName}.",
+ "GREETING_AFTERNOON": "👋 Boa tarde, {name}. Bem-vindo a {installationName}.",
+ "GREETING_EVENING": "👋 Boa noite, {name}. Bem-vindo a {installationName}.",
"READ_LATEST_UPDATES": "Leia as últimas atualizações",
"ALL_CONVERSATION": {
"TITLE": "Todas as suas conversas em um só lugar",
- "DESCRIPTION": "Veja todas as conversas dos seus clientes em um único painel. Você pode filtrar as conversas pelo canal de entrada, rótulo e status."
- },
- "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"
- },
- "INBOXES": {
- "TITLE": "Conectar caixas de entrada",
- "DESCRIPTION": "Conecte vários canais através dos quais seus clientes estariam conversando com você. Podendo ser a partir de um chat ao vivo no seu website, sua página do Facebook ou Twitter ou até mesmo seu número do WhatsApp.",
+ "DESCRIPTION": "Veja todas as conversas dos seus clientes em um único painel. Você pode filtrar as conversas pelo canal de entrada, rótulo e status.",
"NEW_LINK": "Clique aqui para criar uma caixa de entrada"
},
+ "TEAM_MEMBERS": {
+ "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 marcadores",
- "DESCRIPTION": "Etiquetas fornecem uma forma mais fácil de organizar a sua conversa. Criar algumas estiquetas como #solicitação-suporte, #fatura-assunto etc., assim você poderá futuramente utiliza-las em uma conversa posteriormente.",
- "NEW_LINK": "Clique aqui para criar marcadores"
+ "TITLE": "Organizar conversas com etiquetas",
+ "DESCRIPTION": "Etiquetas fornecem uma forma mais fácil de organizar a sua conversa. Criar algumas etiquetas como #solicitação-suporte, #fatura-assunto etc., assim você poderá futuramente utiliza-las em uma conversa posteriormente.",
+ "NEW_LINK": "Clique aqui para criar etiquetas"
+ },
+ "CANNED_RESPONSES": {
+ "TITLE": "Criar respostas prontas",
+ "DESCRIPTION": "Os modelos de respostas prontas ajudam você a responder rapidamente a uma conversa. Os agentes podem digitar o caractere '/' seguido pelo atalho para inserir uma resposta.",
+ "NEW_LINK": "Clique aqui para criar uma resposta pronta"
}
},
"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"
},
"ACCORDION": {
"CONTACT_DETAILS": "Detalhes do contato",
"CONVERSATION_ACTIONS": "Ações da conversa",
- "CONVERSATION_LABELS": "Marcador 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"
+ "MACROS": "Macros",
+ "LINEAR_ISSUES": "Problemas do Linear vinculados",
+ "SHOPIFY_ORDERS": "Pedidos do Shopify",
+ "SHARED_FILES": "Anexos"
+ },
+ "SHARED_FILES": {
+ "EMPTY": "Nenhum anexo ainda",
+ "DOWNLOAD": "Baixar arquivo",
+ "DOWNLOAD_ERROR": "Não foi possível baixar o arquivo. Por favor, tente novamente.",
+ "MEDIA_HEADING": "Mídia",
+ "FILES_HEADING": "Arquivos",
+ "VIEW_ALL": "Visualizar tudo",
+ "SHOW_LESS": "Mostrar menos",
+ "MORE_COUNT": "+{count}",
+ "UNTITLED_FILE": "Arquivo sem nome"
+ },
+ "SHOPIFY": {
+ "ORDER_ID": "Pedido #{id}",
+ "ERROR": "Erro ao carregar pedidos",
+ "NO_SHOPIFY_ORDERS": "Nenhum pedido encontrado",
+ "FINANCIAL_STATUS": {
+ "PENDING": "Pendentes",
+ "AUTHORIZED": "Autorizado",
+ "PARTIALLY_PAID": "Parcialmente pago",
+ "PAID": "Pago",
+ "PARTIALLY_REFUNDED": "Parcialmente Reembolsado",
+ "REFUNDED": "Reembolsado",
+ "VOIDED": "Anulado"
+ },
+ "FULFILLMENT_STATUS": {
+ "FULFILLED": "Concluído",
+ "PARTIALLY_FULFILLED": "Parcialmente Concluído",
+ "UNFULFILLED": "Não concluído"
+ }
}
},
"CONVERSATION_CUSTOM_ATTRIBUTES": {
"ADD_BUTTON_TEXT": "Criar atributo",
+ "NO_RECORDS_FOUND": "Nenhum atributo encontrado",
"UPDATE": {
"SUCCESS": "Atributo atualizado com sucesso",
"ERROR": "Não foi possível atualizar o atributo. Por favor, tente mais tarde"
@@ -287,7 +439,7 @@
"ERROR": "Não foi possível excluir o atributo. Por favor, tente mais tarde"
},
"ATTRIBUTE_SELECT": {
- "TITLE": "Adicionar atributo",
+ "TITLE": "Adicionar atributos",
"PLACEHOLDER": "Procurar atributos",
"NO_RESULT": "Nenhum atributo encontrado"
}
@@ -297,17 +449,18 @@
"TO": "Para",
"BCC": "CCO",
"CC": "Cc",
- "SUBJECT": "Assunto"
+ "SUBJECT": "Assunto",
+ "EXPAND": "Expandir e-mail"
},
"CONVERSATION_PARTICIPANTS": {
"SIDEBAR_MENU_TITLE": "Participantes",
"SIDEBAR_TITLE": "Participantes da conversa",
"NO_RECORDS_FOUND": "Nenhum resultado encontrado",
"ADD_PARTICIPANTS": "Selecionar participantes",
- "REMANING_PARTICIPANTS_TEXT": "+%{count} participantes",
- "REMANING_PARTICIPANT_TEXT": "+%{count} participante",
- "TOTAL_PARTICIPANTS_TEXT": "%{count} pessoas estão participando.",
- "TOTAL_PARTICIPANT_TEXT": "%{count} pessoa está participando.",
+ "REMANING_PARTICIPANTS_TEXT": "+{count} participantes",
+ "REMANING_PARTICIPANT_TEXT": "+{count} participante",
+ "TOTAL_PARTICIPANTS_TEXT": "{count} pessoas estão participando.",
+ "TOTAL_PARTICIPANT_TEXT": "{count} pessoa está participando.",
"NO_PARTICIPANTS_TEXT": "Ninguém está participando!",
"WATCH_CONVERSATION": "Participar da conversa",
"YOU_ARE_WATCHING": "Você está participando",
@@ -320,7 +473,18 @@
"TITLE": "Ver conteúdo traduzido",
"DESC": "Você pode visualizar o conteúdo traduzido em cada idioma.",
"ORIGINAL_CONTENT": "Conteúdo original",
- "TRANSLATED_CONTENT": "Conteúdo Traduzido",
+ "TRANSLATED_CONTENT": "Conteúdo traduzido",
"NO_TRANSLATIONS_AVAILABLE": "Nenhuma tradução está disponível para este conteúdo"
+ },
+ "TYPING": {
+ "ONE": "{user} está digitando",
+ "TWO": "{user} e {secondUser} estão digitando",
+ "MULTIPLE": "{user} e {count} outros estão digitando"
+ },
+ "COPILOT": {
+ "TRY_THESE_PROMPTS": "Experimente estes comandos"
+ },
+ "GALLERY_VIEW": {
+ "ERROR_DOWNLOADING": "Não foi possível baixar o anexo. Por favor, tente novamente"
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
new file mode 100644
index 000000000..954a906de
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/customRole.json
@@ -0,0 +1,94 @@
+{
+ "CUSTOM_ROLE": {
+ "HEADER": "Funções Personalizadas",
+ "LEARN_MORE": "Aprenda mais sobre funções personalizadas",
+ "DESCRIPTION": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "COUNT": "{n} função personalizada | {n} funções personalizadas",
+ "HEADER_BTN_TXT": "Adicionar função personalizada",
+ "LOADING": "Buscando funções personalizadas...",
+ "SEARCH_PLACEHOLDER": "Pesquisar funções personalizadas...",
+ "NO_RESULTS": "Nenhuma função personalizada encontrada correspondente à sua busca",
+ "SEARCH_404": "Não há itens correspondentes a esta consulta.",
+ "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 time, automações, atributos personalizados e muito mais.",
+ "UPGRADE_NOW": "Atualizar agora",
+ "CANCEL_ANYTIME": "Você pode alterar ou cancelar seu plano a qualquer momento"
+ },
+ "ENTERPRISE_PAYWALL": {
+ "AVAILABLE_ON": "O recurso de função personalizada está disponível apenas nos planos pagos.",
+ "UPGRADE_PROMPT": "Atualize para um plano pago para acessar recursos avançados como logs de auditoria, capacidade do agente e muito mais.",
+ "ASK_ADMIN": "Entre em contato com seu administrador para fazer a atualização."
+ },
+ "LIST": {
+ "404": "Não há funções personalizadas disponíveis nesta conta.",
+ "TITLE": "Gerenciar funções personalizadas",
+ "DESC": "Funções personalizadas são funções criadas pelo proprietário ou administrador da conta. Essas funções podem ser atribuídas a agentes para definir seu acesso e permissões dentro da conta. Funções personalizadas podem ser criadas com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "TABLE_HEADER": {
+ "NAME": "Nome",
+ "DESCRIPTION": "Descrição",
+ "PERMISSIONS": "Permissões",
+ "ACTIONS": "Ações"
+ }
+ },
+ "PERMISSIONS": {
+ "CONVERSATION_MANAGE": "Gerenciar todas conversas",
+ "CONVERSATION_UNASSIGNED_MANAGE": "Gerenciar conversas não atribuídas e aquelas atribuídas a elas",
+ "CONVERSATION_PARTICIPATING_MANAGE": "Gerenciar conversas que participa e aquelas atribuídas a elas",
+ "CONTACT_MANAGE": "Gerenciar contatos",
+ "REPORT_MANAGE": "Gerenciar relatórios",
+ "KNOWLEDGE_BASE_MANAGE": "Gerenciar base de conhecimento"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Por favor, insira um nome.",
+ "ERROR": "O nome é obrigatório."
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Por favor, insira uma descrição.",
+ "ERROR": "A descrição é obrigatória."
+ },
+ "PERMISSIONS": {
+ "LABEL": "Permissões",
+ "ERROR": "Permissões são necessárias."
+ },
+ "CANCEL_BUTTON_TEXT": "Cancelar",
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível desconectar o agente robô. Por favor, tente novamente mais tarde."
+ }
+ },
+ "ADD": {
+ "TITLE": "Adicionar função personalizada",
+ "DESC": " Funções personalizadas permitem criar funções com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "SUBMIT": "Enviar",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada adicionada com sucesso."
+ }
+ },
+ "EDIT": {
+ "BUTTON_TEXT": "Alterar",
+ "TITLE": "Editar função personalizada",
+ "DESC": " Funções personalizadas permitem criar funções com permissões e níveis de acesso específicos para atender aos requisitos da organização.",
+ "SUBMIT": "Atualizar",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada atualizada com sucesso."
+ }
+ },
+ "DELETE": {
+ "BUTTON_TEXT": "Excluir",
+ "API": {
+ "SUCCESS_MESSAGE": "Função personalizada excluída com sucesso.",
+ "ERROR_MESSAGE": "Não foi possível desconectar o agente robô. Por favor, tente novamente mais tarde."
+ },
+ "CONFIRM": {
+ "TITLE": "Confirmar exclusão",
+ "MESSAGE": "Você tem certeza que deseja excluir ",
+ "YES": "Sim, excluir ",
+ "NO": "Não, manter "
+ }
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json b/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json
new file mode 100644
index 000000000..e08507c5c
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/datePicker.json
@@ -0,0 +1,24 @@
+{
+ "DATE_PICKER": {
+ "PREVIOUS_PERIOD": "Período anterior",
+ "NEXT_PERIOD": "Próximo período",
+ "WEEK_NUMBER": "Semana #{weekNumber}",
+ "APPLY_BUTTON": "Aplicar",
+ "CLEAR_BUTTON": "Limpar",
+ "DATE_RANGE_INPUT": {
+ "START": "Data de início",
+ "END": "Data final"
+ },
+ "DATE_RANGE_OPTIONS": {
+ "TITLE": "Intervalo de data",
+ "LAST_7_DAYS": "Últimos 7 dias",
+ "LAST_30_DAYS": "Últimos 30 dias",
+ "LAST_3_MONTHS": "Últimos 3 meses",
+ "LAST_6_MONTHS": "Últimos 6 meses",
+ "LAST_YEAR": "Ano passado",
+ "THIS_WEEK": "Esta semana",
+ "MONTH_TO_DATE": "Este mês",
+ "CUSTOM_RANGE": "Intervalo de tempo personalizado"
+ }
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/general.json b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
new file mode 100644
index 000000000..0a97e6220
--- /dev/null
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/general.json
@@ -0,0 +1,19 @@
+{
+ "GENERAL": {
+ "SHOWING_RESULTS": "Mostrando {firstIndex}—{lastIndex} de {totalCount} itens",
+ "PHONE_INPUT": {
+ "PLACEHOLDER": "Pesquisar",
+ "EMPTY_STATE": "Nenhum resultado encontrado"
+ },
+ "CLOSE": "Fechar",
+ "BETA": "Beta",
+ "BETA_DESCRIPTION": "Este recurso está em fase BETA e deve sofre alterações assim que Nós melhorarmos ele.",
+ "ACCEPT": "Aceitar",
+ "DISCARD": "Descartar",
+ "PREFERRED": "Preferido"
+ },
+ "CHOICE_TOGGLE": {
+ "YES": "Sim",
+ "NO": "Não"
+ }
+}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
index 39ed2564a..0376c205f 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/generalSettings.json
@@ -1,6 +1,12 @@
{
"GENERAL_SETTINGS": {
- "TITLE": "Configurações da conta",
+ "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 do agente. Seu plano permite apenas {allowedAgents} 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",
"DISMISS": "Recusar",
@@ -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",
@@ -29,7 +83,7 @@
"ERROR": ""
},
"DOMAIN": {
- "LABEL": "Domínio de recebimento de emails",
+ "LABEL": "Domínio de recebimento de e-mails",
"PLACEHOLDER": "O domínio onde você receberá os e-mails",
"ERROR": ""
},
@@ -38,19 +92,41 @@
"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 resolver a si 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.",
"CUSTOM_EMAIL_DOMAIN_ENABLED": "Você pode receber e-mails em seu domínio personalizado agora."
}
},
- "UPDATE_CHATWOOT": "Uma atualização %{latestChatwootVersion} para o Chatwoot está disponível. Por favor, atualize sua instância.",
+ "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"
},
@@ -58,6 +134,7 @@
"MULTISELECT": {
"ENTER_TO_SELECT": "Digite enter para selecionar",
"ENTER_TO_REMOVE": "Digite enter para remover",
+ "NO_OPTIONS": "Lista vazia",
"SELECT_ONE": "Selecione um",
"SELECT": "Selecionar"
}
@@ -79,7 +156,7 @@
"Nome",
"Número de Telefone",
"Conversas",
- "Último contato"
+ "Último Contactado"
]
},
"TYPE_LABEL": {
@@ -87,12 +164,17 @@
"conversation_assignment": "Conversa Atribuída",
"assigned_conversation_new_message": "Nova Mensagem",
"participating_conversation_new_message": "Nova Mensagem",
- "conversation_mention": "Menção"
+ "conversation_mention": "Menção",
+ "sla_missed_first_response": "SLA não alcançado",
+ "sla_missed_next_response": "SLA não alcançado",
+ "sla_missed_resolution": "SLA não alcançado"
}
},
"NETWORK": {
"NOTIFICATION": {
- "OFFLINE": "Desconectado"
+ "OFFLINE": "Desconectado",
+ "RECONNECTING": "Reconectando...",
+ "RECONNECT_SUCCESS": "Reconectado"
},
"BUTTON": {
"REFRESH": "Atualizar"
@@ -100,18 +182,20 @@
},
"COMMAND_BAR": {
"SEARCH_PLACEHOLDER": "Pesquisar ou pular para",
+ "SNOOZE_PLACEHOLDER": "Digite um horário, por exemplo: amanhã, 2 horas, próxima sexta-feira, 15 de jan...",
"SECTIONS": {
"GENERAL": "Geral",
"REPORTS": "Relatórios",
"CONVERSATION": "Conversas",
- "CHANGE_ASSIGNEE": "Alterar Responsável",
+ "BULK_ACTIONS": "Ações em massa",
+ "CHANGE_ASSIGNEE": "Atribuir novo agente",
"CHANGE_PRIORITY": "Alterar Prioridade",
- "CHANGE_TEAM": "Alterar a Equipe",
- "SNOOZE_CONVERSATION": "Adiar conversa",
+ "CHANGE_TEAM": "Alterar o Time",
+ "SNOOZE_CONVERSATION": "Adiar Conversa",
"ADD_LABEL": "Adicionar etiqueta à conversa",
"REMOVE_LABEL": "Remover etiqueta da conversa",
- "SETTINGS": "Confirgurações",
- "AI_ASSIST": "Assistente Open AI",
+ "SETTINGS": "Configurações",
+ "AI_ASSIST": "Assistente IA",
"APPEARANCE": "Tema",
"SNOOZE_NOTIFICATION": "Adiar Notificação"
},
@@ -121,36 +205,36 @@
"GO_TO_REPORTS_OVERVIEW": "Ir para Resumo de Relatórios",
"GO_TO_CONVERSATION_REPORTS": "Ir para Relatórios das Conversas",
"GO_TO_AGENT_REPORTS": "Ir para Relatórios do Agente",
- "GO_TO_LABEL_REPORTS": "Ir para Relatórios de Rótulos",
+ "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_SETTINGS_AGENTS": "Ir para Configurações do Agente",
- "GO_TO_SETTINGS_TEAMS": "Ir para as configurações de equipe",
- "GO_TO_SETTINGS_INBOXES": "Ir para as configurações da caixa de entrada",
- "GO_TO_SETTINGS_LABELS": "Ir para as configurações do Rótulo",
- "GO_TO_SETTINGS_CANNED_RESPONSES": "Ir para as configurações de resposta pronta",
+ "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 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",
"GO_TO_SETTINGS_APPLICATIONS": "Vá para Configurações do Aplicativo",
- "GO_TO_SETTINGS_ACCOUNT": "Ir para as configurações da conta",
+ "GO_TO_SETTINGS_ACCOUNT": "Ir para as Configurações da Conta",
"GO_TO_SETTINGS_PROFILE": "Ir para as Configurações do Perfil",
"GO_TO_NOTIFICATIONS": "Ir para Notificações",
"ADD_LABELS_TO_CONVERSATION": "Adicionar etiqueta à conversa",
"ASSIGN_AN_AGENT": "Atribuir um agente",
- "AI_ASSIST": "Assistente Open AI",
+ "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": "Não silenciar conversa",
+ "UNMUTE_CONVERSATION": "Reativar conversa",
"REMOVE_LABEL_FROM_CONVERSATION": "Remover etiqueta da conversa",
"REOPEN_CONVERSATION": "Reabrir conversa",
- "RESOLVE_CONVERSATION": "Reabrir conversa",
+ "RESOLVE_CONVERSATION": "Resolver conversa",
"SEND_TRANSCRIPT": "Enviar uma transcrição por e-mail",
- "SNOOZE_CONVERSATION": "Adiar conversa",
+ "SNOOZE_CONVERSATION": "Adiar Conversa",
"UNTIL_NEXT_REPLY": "Até a próxima resposta",
"UNTIL_NEXT_WEEK": "Até a próxima semana",
"UNTIL_TOMORROW": "Até amanhã",
"UNTIL_NEXT_MONTH": "Até o próximo mês",
"AN_HOUR_FROM_NOW": "Até daqui a uma hora",
- "CUSTOM": "Personalizar...",
+ "UNTIL_CUSTOM_TIME": "Personalizar...",
"CHANGE_APPEARANCE": "Alterar Tema",
"LIGHT_MODE": "Claro",
"DARK_MODE": "Escuro",
@@ -159,7 +243,7 @@
}
},
"DASHBOARD_APPS": {
- "LOADING_MESSAGE": "Carregando Dashboard App..."
+ "LOADING_MESSAGE": "Carregando Aplicativo..."
},
"COMMON": {
"OR": "Ou",
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
index 7bcd76fd5..558651b9f 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/helpCenter.json
@@ -1,10 +1,15 @@
{
"HELP_CENTER": {
+ "TITLE": "Centro de Ajuda",
+ "NEW_PAGE": {
+ "DESCRIPTION": "Crie portais centrais de ajuda de auto-serviço para seus clientes. Ajude-os a encontrar respostas rapidamente, sem esperar. Agilize dúvidas, aumente a eficiência dos agentes e eleve o suporte ao cliente.",
+ "CREATE_PORTAL_BUTTON": "Criar portal"
+ },
"HEADER": {
"FILTER": "Filtrar por",
- "SORT": "Ordenar por",
+ "SORT": "Classificar por",
"LOCALE": "Localidade",
- "SETTINGS_BUTTON": "Confirgurações",
+ "SETTINGS_BUTTON": "Configurações",
"NEW_BUTTON": "Novo artigo",
"DROPDOWN_OPTIONS": {
"PUBLISHED": "Publicado",
@@ -21,7 +26,7 @@
"TITLE": "Selecionar local",
"PLACEHOLDER": "Selecionar local",
"NO_RESULT": "Nenhum local encontrado",
- "SEARCH_PLACEHOLDER": "Selecionar local"
+ "SEARCH_PLACEHOLDER": "Pesquisar idioma"
}
},
"EDIT_HEADER": {
@@ -41,6 +46,7 @@
"UPLOADING": "Enviando...",
"SUCCESS": "Imagem enviada com sucesso",
"ERROR": "Erro ao fazer upload da imagem",
+ "UN_AUTHORIZED_ERROR": "Você não está autorizado a enviar imagens",
"ERROR_FILE_SIZE": "O tamanho da imagem deve ser menor que {size}MB",
"ERROR_FILE_FORMAT": "O formato da imagem deve ser jpg, jpeg ou png",
"ERROR_FILE_DIMENSIONS": "Dimensões da imagem devem ser menores que 2000 x 2000"
@@ -64,11 +70,11 @@
"SEARCH_PLACEHOLDER": "Pesquisar autor"
},
"META_TITLE": {
- "LABEL": "Meta title",
+ "LABEL": "Meta título",
"PLACEHOLDER": "Adicionar um meta title"
},
"META_DESCRIPTION": {
- "LABEL": "Meta description",
+ "LABEL": "Meta descrição",
"PLACEHOLDER": "Adicione suas meta descriptions para melhorar os resultados de SEO..."
},
"META_TAGS": {
@@ -83,7 +89,7 @@
},
"ARTICLE_SEARCH_RESULT": {
"UNCATEGORIZED": "Não categorizado",
- "SEARCH_RESULTS": "Resultados da pesquisa para %{query}",
+ "SEARCH_RESULTS": "Resultados da pesquisa para {query}",
"EMPTY_TEXT": "Procurar artigos para inserir em respostas.",
"SEARCH_LOADER": "Procurando...",
"INSERT_ARTICLE": "Inserir",
@@ -115,7 +121,7 @@
"COUNT_LABEL": "artigos",
"ADD": "Adicionar localidade",
"VISIT": "Visitar site",
- "SETTINGS": "Confirgurações",
+ "SETTINGS": "Configurações",
"DELETE": "Excluir"
},
"PORTAL_CONFIG": {
@@ -151,10 +157,16 @@
"DELETE_SUCCESS": "Portal excluído com sucesso",
"DELETE_ERROR": "Erro enquanto excluía o portal"
}
+ },
+ "SEND_CNAME_INSTRUCTIONS": {
+ "API": {
+ "SUCCESS_MESSAGE": "Instruções do CNAME enviadas com sucesso",
+ "ERROR_MESSAGE": "Erro ao enviar as instruções CNAME"
+ }
}
},
"EDIT": {
- "HEADER_TEXT": "Editar portal",
+ "HEADER_TEXT": "Alterar portal",
"TABS": {
"BASIC_SETTINGS": {
"TITLE": "Informação Básica"
@@ -178,7 +190,7 @@
"LOCALE": "Localidade",
"ARTICLE_COUNT": "No. de artigos",
"ACTION_BUTTON": {
- "EDIT": "Editar categoria",
+ "EDIT": "Alterar categoria",
"DELETE": "Excluir categoria"
},
"EMPTY_TEXT": "Nenhuma categoria encontrada"
@@ -189,26 +201,20 @@
}
},
"ADD": {
- "CREATE_FLOW": [
- {
- "title": "Informações da central de ajuda",
- "route": "nova_informação_de_portal",
- "body": "Informações básicas sobre o portal",
- "CREATE_BASIC_SETTING_BUTTON": "Criar configurações básicas do portal"
+ "CREATE_FLOW": {
+ "BASIC": {
+ "TITLE": "Informações da central de ajuda",
+ "BODY": "Informações básicas sobre o portal"
},
- {
- "title": "Personalização da central de ajuda",
- "route": "personalização_portal",
- "body": "Personalizar portal",
- "UPDATE_PORTAL_BUTTON": "Atualizar configurações do portal"
+ "CUSTOMIZATION": {
+ "TITLE": "Personalização da central de ajuda",
+ "BODY": "Personalizar portal"
},
- {
- "title": "Pronto! 🎉",
- "route": "fim_portal",
- "body": "Está tudo pronto!",
- "FINISH": "Finalizar"
+ "FINISH": {
+ "TITLE": "Pronto! 🎉",
+ "BODY": "Está tudo pronto!"
}
- ],
+ },
"CREATE_FLOW_PAGE": {
"BACK_BUTTON": "Anterior",
"BASIC_SETTINGS_PAGE": {
@@ -249,13 +255,13 @@
"DOMAIN": {
"LABEL": "Domínio personalizado",
"PLACEHOLDER": "Domínio personalizado do portal",
- "HELP_TEXT": "Adicione somente se você quiser usar um domínio personalizado para seus portais. Por exemplo: https://example.com",
+ "HELP_TEXT": "Adicione somente se você quiser usar um domínio personalizado para seus portais. Por exemplo: {exampleURL}",
"ERROR": "Insira uma URL de domínio válida"
},
"HOME_PAGE_LINK": {
"LABEL": "Link da Página Inicial",
"PLACEHOLDER": "Link da página inicial do portal",
- "HELP_TEXT": "O link usado para retornar do portal para a página inicial. Ex: https://example.com",
+ "HELP_TEXT": "O link usado para retornar do portal para a página inicial. Ex: {exampleURL}",
"ERROR": "Digite uma URL de página inicial válida"
},
"THEME_COLOR": {
@@ -310,6 +316,18 @@
"SUCCESS_MESSAGE": "Localização removida do portal com sucesso",
"ERROR_MESSAGE": "Não é possível remover a localidade do portal. Tente novamente."
}
+ },
+ "DRAFT_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Localidade movida para rascunho com sucesso",
+ "ERROR_MESSAGE": "Não foi possível mover a localidade para rascunho. Tente novamente."
+ }
+ },
+ "PUBLISH_LOCALE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Localidade publicada com sucesso",
+ "ERROR_MESSAGE": "Não foi possível publicar a localidade. Tente novamente."
+ }
}
},
"TABLE": {
@@ -319,8 +337,8 @@
"HEADERS": {
"TITLE": "Título",
"CATEGORY": "Categoria",
- "READ_COUNT": "Views",
- "STATUS": "SItuação",
+ "READ_COUNT": "Visualizações",
+ "STATUS": "Status",
"LAST_EDITED": "Última edição"
},
"COLUMNS": {
@@ -348,6 +366,12 @@
"SUCCESS": "Artigo arquivado com sucesso"
}
},
+ "DRAFT_ARTICLE": {
+ "API": {
+ "ERROR": "Ocorreu um erro enquanto redigia o artigo",
+ "SUCCESS": "Artigo redigido com sucesso"
+ }
+ },
"DELETE_ARTICLE": {
"MODAL": {
"CONFIRM": {
@@ -362,6 +386,16 @@
"ERROR_MESSAGE": "Erro enquanto excluía o artigo"
}
},
+ "REORDER_ARTICLE": {
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível reordenar os artigos. Por favor, tente novamente."
+ }
+ },
+ "REORDER_CATEGORY": {
+ "API": {
+ "ERROR_MESSAGE": "Não foi possível reordenar as categorias. Por favor, tente novamente."
+ }
+ },
"CREATE_ARTICLE": {
"ERROR_MESSAGE": "Por favor, adicione o cabeçalho e o conteúdo do artigo, só então você pode atualizar as configurações"
},
@@ -403,8 +437,8 @@
}
},
"EDIT": {
- "TITLE": "Editar uma categoria",
- "SUB_TITLE": "Editar uma categoria atualizará a categoria no portal voltado ao público.",
+ "TITLE": "Alterar uma categoria",
+ "SUB_TITLE": "Alterar uma categoria atualizará a categoria no portal voltado ao público.",
"PORTAL": "Portal",
"LOCALE": "Localidade",
"NAME": {
@@ -481,6 +515,444 @@
"DESCRIPTION": "Use o portal como um CMS sem interface gráfica com frameworks front-end de terceiros usando nossas APIs."
}
}
+ },
+ "LOADING": "Carregando...",
+ "ARTICLES_PAGE": {
+ "ARTICLE_CARD": {
+ "CARD": {
+ "VIEWS": "Visualização {count} de {count} visualizações",
+ "DROPDOWN_MENU": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Arquivar",
+ "TRANSLATE": "Traduzir",
+ "DELETE": "Excluir"
+ },
+ "STATUS": {
+ "DRAFT": "Rascunho",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Arquivado"
+ },
+ "CATEGORY": {
+ "UNCATEGORISED": "Sem categoria"
+ }
+ }
+ },
+ "ARTICLES_HEADER": {
+ "TABS": {
+ "ALL": "Todos os artigos",
+ "MINE": "Minhas",
+ "DRAFT": "Rascunho",
+ "PUBLISHED": "Publicado",
+ "ARCHIVED": "Arquivado"
+ },
+ "CATEGORY": {
+ "ALL": "Todas as categorias"
+ },
+ "LOCALE": {
+ "ALL": "Todos os Idioma"
+ },
+ "NEW_ARTICLE": "Novo artigo"
+ },
+ "EMPTY_STATE": {
+ "ALL": {
+ "TITLE": "Escreva um artigo",
+ "SUBTITLE": "Escreva um artigo rico, vamos começar!",
+ "BUTTON_LABEL": "Novo artigo"
+ },
+ "MINE": {
+ "TITLE": "Você não escreveu nenhum artigo aqui",
+ "SUBTITLE": "Todos os artigos escritos por você aparecem aqui para acesso rápido."
+ },
+ "DRAFT": {
+ "TITLE": "Não há artigos nos rascunhos",
+ "SUBTITLE": "Artigos do rascunho aparecerão aqui"
+ },
+ "PUBLISHED": {
+ "TITLE": "Não há artigos publicados",
+ "SUBTITLE": "Artigos publicados aparecerão aqui"
+ },
+ "ARCHIVED": {
+ "TITLE": "Não há artigos no arquivo",
+ "SUBTITLE": "Artigos arquivados não aparecem no portal, você pode usá-lo para marcar páginas obsoletas ou desatualizadas"
+ },
+ "CATEGORY": {
+ "TITLE": "Não há artigos nesta categoria",
+ "SUBTITLE": "Os artigos nesta categoria aparecerão aqui"
+ }
+ },
+ "BULK_TRANSLATE": {
+ "TITLE": "Traduzir artigo | Traduzir {count} artigos",
+ "DESCRIPTION": "Traduza o artigo selecionado para outro idioma. | Traduza os artigos selecionados para outro idioma.",
+ "LOCALE_LABEL": "Idioma alvo",
+ "LOCALE_PLACEHOLDER": "Selecione um idioma",
+ "CATEGORY_LABEL": "Categoria alvo",
+ "CATEGORY_PLACEHOLDER": "Selecione uma categoria",
+ "OPTIONAL": "(opcional)",
+ "CONFIRM": "Traduzir",
+ "SELECT_ALL": "Selecionar todos ({count})",
+ "SELECTED_COUNT": "{count} selecionado",
+ "CLEAR_SELECTION": "Limpar seleção",
+ "TRANSLATE_BUTTON": "Traduzir",
+ "CONFIRM_OVERWRITE": "Sobrescrever e traduzir",
+ "DUPLICATE_WARNING": "Uma tradução deste artigo já existe no idioma selecionado. | As traduções já existem para {count} artigos no idioma selecionado.",
+ "DUPLICATE_CONFIRM_HINT": "Clique em traduzir novamente para substituir a tradução existente.",
+ "API": {
+ "SUCCESS_MESSAGE": "Tradução em andamento. O artigo aparecerá como rascunho uma vez pronto.",
+ "ERROR_MESSAGE": "Falha ao iniciar a tradução. Por favor, tente novamente."
+ }
+ },
+ "BULK_ACTIONS": {
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Arquivar",
+ "TRANSLATE": "Traduzir",
+ "MOVE_TO_CATEGORY": "Categoria",
+ "DELETE": "Excluir",
+ "STATUS_SUCCESS": "Artigos atualizados com sucesso",
+ "STATUS_ERROR": "Falha ao atualizar artigos",
+ "CATEGORY_SUCCESS": "Artigos movidos com sucesso",
+ "CATEGORY_ERROR": "Falha ao mover artigos",
+ "DELETE_CONFIRM_TITLE": "Excluir artigo | Excluir {count} artigos",
+ "DELETE_CONFIRM_DESCRIPTION": "Isto irá apagar o artigo selecionado permanentemente. Esta ação não pode ser desfeita. | Isso irá apagar permanentemente {count} artigos selecionados. Esta ação não pode ser desfeita.",
+ "DELETE_CONFIRM": "Excluir",
+ "DELETE_SUCCESS": "Artigos excluídos com sucesso",
+ "DELETE_ERROR": "Falha ao excluir artigos"
+ }
+ },
+ "CATEGORY_PAGE": {
+ "CATEGORY_HEADER": {
+ "NEW_CATEGORY": "Nova categoria",
+ "EDIT_CATEGORY": "Alterar categoria",
+ "CATEGORIES_COUNT": "categoria {n} | {n} categorias",
+ "BREADCRUMB": {
+ "CATEGORY_LOCALE": "Categorias ({localeCode})",
+ "ACTIVE_CATEGORY": "{categoryName} ({categoryCount} artigos) | {categoryName} ({categoryCount} artigo)"
+ }
+ },
+ "CATEGORY_EMPTY_STATE": {
+ "TITLE": "Nenhuma categoria encontrada",
+ "SUBTITLE": "Categorias aparecerão aqui. Você pode adicionar uma categoria clicando no botão 'Nova Categoria'."
+ },
+ "CATEGORY_CARD": {
+ "ARTICLES_COUNT": "artigo {count} | {count} artigos"
+ },
+ "CATEGORY_DIALOG": {
+ "CREATE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria criada com sucesso",
+ "ERROR_MESSAGE": "Não é possível criar categoria"
+ }
+ },
+ "EDIT": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria atualizada com sucesso",
+ "ERROR_MESSAGE": "Não é possível atualizar categoria"
+ }
+ },
+ "DELETE": {
+ "API": {
+ "SUCCESS_MESSAGE": "Categoria excluída com sucesso",
+ "ERROR_MESSAGE": "Não é possível excluir a categoria"
+ }
+ },
+ "HEADER": {
+ "CREATE": "Criar categoria",
+ "EDIT": "Alterar categoria",
+ "DESCRIPTION": "Alterar uma categoria atualizará a categoria no portal voltado ao público.",
+ "PORTAL": "Portal",
+ "LOCALE": "Localidade"
+ },
+ "FORM": {
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Nome da categoria",
+ "ERROR": "O nome é obrigatório"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Categoria de slug para URLs",
+ "ERROR": "Slug é obrigatório",
+ "HELP_TEXT": "app.dominio.com/hc/{portalSlug}/{localeCode}/categories/{categorySlug}"
+ },
+ "DESCRIPTION": {
+ "LABEL": "Descrição",
+ "PLACEHOLDER": "Forneça uma breve descrição sobre a categoria.",
+ "ERROR": "Descrição obrigatória"
+ }
+ },
+ "BUTTONS": {
+ "CREATE": "Criar",
+ "EDIT": "Atualizar",
+ "CANCEL": "Cancelar"
+ }
+ }
+ },
+ "LOCALES_PAGE": {
+ "LOCALES_COUNT": "Localizações não disponíveis | {n} local | {n} localidades",
+ "NEW_LOCALE_BUTTON_TEXT": "Nova localização",
+ "LOCALE_CARD": {
+ "ARTICLES_COUNT": "artigo {count} | {count} artigos",
+ "CATEGORIES_COUNT": "categoria {count} | {count} categorias",
+ "DEFAULT": "Padrão",
+ "DRAFT": "Rascunho",
+ "DROPDOWN_MENU": {
+ "MAKE_DEFAULT": "Tornar padrão",
+ "MOVE_TO_DRAFT": "Mover para rascunho",
+ "PUBLISH_LOCALE": "Publicar localidade",
+ "DELETE": "Excluir"
+ }
+ },
+ "ADD_LOCALE_DIALOG": {
+ "TITLE": "Adicionar uma nova localidade",
+ "DESCRIPTION": "Selecione o idioma em que este artigo será escrito. Isto será adicionado à sua lista de traduções, e você pode adicionar mais tarde.",
+ "COMBOBOX": {
+ "PLACEHOLDER": "Selecionar local..."
+ },
+ "STATUS": {
+ "LABEL": "Status",
+ "OPTIONS": {
+ "LIVE": "Publicado",
+ "DRAFT": "Rascunho"
+ }
+ },
+ "API": {
+ "SUCCESS_MESSAGE": "Localidade adicionada com sucesso",
+ "ERROR_MESSAGE": "Não foi possível adicionar a localidade. Tente novamente."
+ }
+ }
+ },
+ "EDIT_ARTICLE_PAGE": {
+ "HEADER": {
+ "STATUS": {
+ "SAVING": "Salvando...",
+ "SAVED": "Salvo"
+ },
+ "PREVIEW": "Pré-visualizar",
+ "PUBLISH": "Publicar",
+ "DRAFT": "Rascunho",
+ "ARCHIVE": "Arquivar",
+ "BACK_TO_ARTICLES": "Voltar aos artigos"
+ },
+ "EDIT_ARTICLE": {
+ "MORE_PROPERTIES": "Mais propriedades",
+ "UNCATEGORIZED": "Não categorizado",
+ "EDITOR_PLACEHOLDER": "Write your content here. Type '/' for formatting options."
+ },
+ "ARTICLE_PROPERTIES": {
+ "ARTICLE_PROPERTIES": "Propriedades do artigo",
+ "META_DESCRIPTION": "Meta descrição",
+ "META_DESCRIPTION_PLACEHOLDER": "Adicionar meta descrição",
+ "META_TITLE": "Meta título",
+ "META_TITLE_PLACEHOLDER": "Adicionar meta título",
+ "META_TAGS": "Meta tags",
+ "META_TAGS_PLACEHOLDER": "Adicionar meta tags"
+ },
+ "API": {
+ "ERROR": "Erro ao salvar artigo"
+ }
+ },
+ "PORTAL_SWITCHER": {
+ "NEW_PORTAL": "Novo portal",
+ "PORTALS": "Portais",
+ "CREATE_PORTAL": "Crie e gerencie vários portais",
+ "ARTICLES": "artigos",
+ "DOMAIN": "domínio",
+ "PORTAL_NAME": "Nome do portal"
+ },
+ "CREATE_PORTAL_DIALOG": {
+ "TITLE": "Criar novo portal",
+ "DESCRIPTION": "Dê um nome ao seu portal e crie uma URL fácil de usar. Você pode modificar as duas configurações posteriormente.",
+ "CONFIRM_BUTTON_LABEL": "Criar",
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Guia do Usuário | Chatwoot",
+ "MESSAGE": "Escolha um nome para o seu portal.",
+ "ERROR": "O nome é obrigatório"
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "user-guide",
+ "ERROR": "Slug é obrigatório",
+ "FORMAT_ERROR": "Por favor, insira um slug válido, por exemplo: guia do usuário"
+ }
+ },
+ "PORTAL_SETTINGS": {
+ "FORM": {
+ "AVATAR": {
+ "LABEL": "Logotipo",
+ "IMAGE_UPLOAD_ERROR": "Não foi possível fazer o upload da imagem! Tente novamente",
+ "IMAGE_UPLOAD_SUCCESS": "Imagem adicionada com sucesso. Por favor, clique em salvar as alterações para salvar o logotipo",
+ "IMAGE_DELETE_SUCCESS": "Logo deletada com sucesso",
+ "IMAGE_DELETE_ERROR": "Não foi possível excluir o logotipo",
+ "IMAGE_UPLOAD_SIZE_ERROR": "O tamanho da imagem deve ser menor que {size}MB"
+ },
+ "NAME": {
+ "LABEL": "Nome",
+ "PLACEHOLDER": "Nome do portal",
+ "ERROR": "O nome é obrigatório"
+ },
+ "HEADER_TEXT": {
+ "LABEL": "Texto do Cabeçalho",
+ "PLACEHOLDER": "Texto do cabeçalho do portal"
+ },
+ "PAGE_TITLE": {
+ "LABEL": "Título da Página",
+ "PLACEHOLDER": "Título da página do portal"
+ },
+ "HOME_PAGE_LINK": {
+ "LABEL": "Link da Página Inicial",
+ "PLACEHOLDER": "Link da página inicial do portal",
+ "ERROR": "Digite uma URL válida. O link da página inicial deve começar com 'http://' ou 'https://'."
+ },
+ "SLUG": {
+ "LABEL": "Slug",
+ "PLACEHOLDER": "Slug do portal"
+ },
+ "LIVE_CHAT_WIDGET": {
+ "LABEL": "Widget de chat ao vivo",
+ "PLACEHOLDER": "Selecionar widget de chat ao vivo",
+ "HELP_TEXT": "Selecione um widget de chat ao vivo que aparecerá no centro de ajuda",
+ "NONE_OPTION": "Sem widget"
+ },
+ "BRAND_COLOR": {
+ "LABEL": "Cor da Marca"
+ },
+ "SAVE_CHANGES": "Salvar Alterações"
+ },
+ "CONFIGURATION_FORM": {
+ "CUSTOM_DOMAIN": {
+ "HEADER": "Domínio personalizado",
+ "LABEL": "Domínio personalizado:",
+ "DESCRIPTION": "Você pode hospedar seu portal em um domínio personalizado. Por exemplo, se seu site for meudominio.com e você quer o seu portal disponível em docs.meudominio.com, basta digitar isso neste campo.",
+ "STATUS_DESCRIPTION": "Seu portal personalizado começará a funcionar assim que for verificado.",
+ "PLACEHOLDER": "Domínio personalizado do portal",
+ "EDIT_BUTTON": "Alterar",
+ "ADD_BUTTON": "Adicionar domínio personalizado",
+ "STATUS": {
+ "LIVE": "Em tempo real",
+ "PENDING": "Aguardando verificação",
+ "ERROR": "Verificação falhou"
+ },
+ "DIALOG": {
+ "ADD_HEADER": "Adicionar domínio personalizado",
+ "EDIT_HEADER": "Editar domínio personalizado",
+ "ADD_CONFIRM_BUTTON_LABEL": "Adicionar domínio",
+ "EDIT_CONFIRM_BUTTON_LABEL": "Atualizar domínio",
+ "LABEL": "Domínio personalizado",
+ "PLACEHOLDER": "Domínio personalizado do portal",
+ "ERROR": "Domínio personalizado é obrigatório",
+ "FORMAT_ERROR": "Por favor, insira um domínio de URL válido, ex.: docs.seudominio.com"
+ },
+ "DNS_CONFIGURATION_DIALOG": {
+ "HEADER": "Configuração de DNS",
+ "DESCRIPTION": "Faça o login na conta que você tem com seu provedor DNS e adicione um registro CNAME para subdomínio apontando para chatwoot.help",
+ "COPY": "CNAME copiado com sucesso",
+ "SEND_INSTRUCTIONS": {
+ "HEADER": "Enviar instruções",
+ "DESCRIPTION": "Se você preferir que alguém da sua equipe de desenvolvimento lide com essa etapa, você pode digitar o endereço de e-mail abaixo e nós enviaremos as instruções necessárias.",
+ "PLACEHOLDER": "Insira o e-mail dele",
+ "ERROR": "Insira um endereço de e-mail válido",
+ "SEND_BUTTON": "Enviar"
+ }
+ }
+ },
+ "DELETE_PORTAL": {
+ "BUTTON": "Excluir {portalName}",
+ "HEADER": "Excluir portal",
+ "DESCRIPTION": "Excluir permanentemente este portal. Esta ação é irreversível",
+ "DIALOG": {
+ "HEADER": "Tem certeza que deseja excluir {portalName}?",
+ "DESCRIPTION": "Esta é uma ação permanente que não pode ser revertida.",
+ "CONFIRM_BUTTON_LABEL": "Excluir"
+ }
+ },
+ "EDIT_CONFIGURATION": "Alterar configuração"
+ },
+ "LAYOUT_CONTENT": {
+ "HEADER": "Tema",
+ "DESCRIPTION": "Escolha o leiaute adequado à leitura de seus visitantes.",
+ "LAYOUT": {
+ "CLASSIC": {
+ "TITLE": "Clássico",
+ "DESCRIPTION": "Uma página inicial acolhedora com busca e tópicos em destaque."
+ },
+ "SIDEBAR": {
+ "TITLE": "Documentação",
+ "DESCRIPTION": "Navegação lado a lado que mantém todos os guias a um clique de distância."
+ }
+ },
+ "SOCIAL_LINKS": {
+ "HEADER": "Links sociais",
+ "DESCRIPTION": "Adicione o identificador de cada rede e sua central de ajuda criará o link completo automaticamente. Exibido no rodapé do leiaute da documentação.",
+ "PLACEHOLDER": "@usuario",
+ "ADD": "Adicionar link social",
+ "REMOVE": "Excluir"
+ },
+ "SAVE": "Salvar Alterações"
+ },
+ "API": {
+ "CREATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal criado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível criar o portal"
+ },
+ "UPDATE_PORTAL": {
+ "SUCCESS_MESSAGE": "Portal atualizado com sucesso",
+ "ERROR_MESSAGE": "Não foi possível atualizar o portal"
+ }
+ }
+ },
+ "PDF_UPLOAD": {
+ "TITLE": "Enviar Documento PDF",
+ "DESCRIPTION": "Envie um documento PDF para gerar FAQs automaticamente com IA",
+ "DRAG_DROP_TEXT": "Arraste e solte seu arquivo PDF aqui, clique para selecionar",
+ "SELECT_FILE": "Selecionar Arquivo PDF",
+ "ADDITIONAL_CONTEXT_LABEL": "Contexto Adicional (Opcional)",
+ "ADDITIONAL_CONTEXT_PLACEHOLDER": "Forneça qualquer contexto ou instruções adicionais para a geração de FAQs...",
+ "UPLOADING": "Enviando...",
+ "UPLOAD": "Enviar e Processar",
+ "CANCEL": "Cancelar",
+ "ERROR_INVALID_TYPE": "Por favor, selecione um arquivo PDF válido",
+ "ERROR_FILE_TOO_LARGE": "O tamanho do arquivo deve ser menor que 512MB",
+ "ERROR_UPLOAD_FAILED": "Falha ao carregar o arquivo PDF. Por favor, tente novamente."
+ },
+ "PDF_DOCUMENTS": {
+ "TITLE": "Documentos PDF",
+ "DESCRIPTION": "Gerencie os documentos PDF enviados e gere FAQs a partir deles",
+ "UPLOAD_PDF": "Enviar PDF",
+ "UPLOAD_FIRST_PDF": "Envie seu primeiro PDF",
+ "UPLOADED_BY": "Enviado por",
+ "GENERATE_FAQS": "Gerar FAQs",
+ "GENERATING": "Gerando...",
+ "CONFIRM_DELETE": "Tem certeza que deseja excluir {filename}?",
+ "EMPTY_STATE": {
+ "TITLE": "Nenhum documento PDF ainda",
+ "DESCRIPTION": "Envie documentos PDF para gerar FAQs automaticamente com IA"
+ },
+ "STATUS": {
+ "UPLOADED": "Pronto",
+ "PROCESSING": "Processando",
+ "PROCESSED": "Concluído",
+ "FAILED": "Falha"
+ }
+ },
+ "CONTENT_GENERATION": {
+ "TITLE": "Geração de Conteúdo",
+ "DESCRIPTION": "Envie documentos PDF para gerar conteúdo de FAQ automaticamente com IA",
+ "UPLOAD_TITLE": "Enviar Documento PDF",
+ "DRAG_DROP": "Arraste e solte seu arquivo PDF aqui, clique para selecionar",
+ "SELECT_FILE": "Selecionar Arquivo PDF",
+ "UPLOADING": "Processando documento...",
+ "UPLOAD_SUCCESS": "Documento processado com sucesso!",
+ "UPLOAD_ERROR": "Falha ao enviar o documento. Tente novamente.",
+ "INVALID_FILE_TYPE": "Por favor, selecione um arquivo PDF válido",
+ "FILE_TOO_LARGE": "O tamanho do arquivo deve ser menor que 512MB",
+ "GENERATED_CONTENT": "Conteúdo gerado do FAQ",
+ "PUBLISH_SELECTED": "Publicar Selecionados",
+ "PUBLISHING": "Publicando...",
+ "FROM_DOCUMENT": "A partir do documento",
+ "NO_CONTENT": "Nenhum conteúdo gerado disponível. Envie um documento PDF para começar.",
+ "LOADING": "Carregando conteúdo gerado..."
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inbox.json b/app/javascript/dashboard/i18n/locale/pt_BR/inbox.json
index 263de41e6..dc0ba7834 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/inbox.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/inbox.json
@@ -4,47 +4,64 @@
"TITLE": "Caixa de Entrada",
"DISPLAY_DROPDOWN": "Exibir",
"LOADING": "Carregando notificações",
- "EOF": "Todas as notificações carregadas 🎉",
"404": "Não há conversas ativas neste grupo.",
"NO_NOTIFICATIONS": "Nenhuma notificação",
"NOTE": "Notificações de todas as caixas inscritas",
- "SNOOZED_UNTIL": "Suspender até",
+ "NO_MESSAGES_AVAILABLE": "Ops! Não é possível obter mensagens",
+ "SNOOZED_UNTIL": "Adiar até",
"SNOOZED_UNTIL_TOMORROW": "Adiado até amanhã",
"SNOOZED_UNTIL_NEXT_WEEK": "Adiada até a próxima semana"
},
"ACTION_HEADER": {
"SNOOZE": "Adiar notificação",
- "DELETE": "Excluir notificação"
+ "DELETE": "Excluir notificação",
+ "BACK": "Anterior"
},
"TYPES": {
"CONVERSATION_MENTION": "Você foi mencionado em uma conversa",
"CONVERSATION_CREATION": "Nova conversa criada",
"CONVERSATION_ASSIGNMENT": "Uma conversa foi atribuída a você",
"ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nova mensagem em uma conversa atribuída",
- "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova mensagem em uma conversa na qual você participa"
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova mensagem em uma conversa na qual você participa",
+ "SLA_MISSED_FIRST_RESPONSE": "Primeira resposta da meta de SLA perdida na conversa",
+ "SLA_MISSED_NEXT_RESPONSE": "Próxima resposta da meta de SLA perdida na conversa",
+ "SLA_MISSED_RESOLUTION": "A resolução da meta de SLA foi perdida na conversa"
},
+ "TYPES_NEXT": {
+ "CONVERSATION_MENTION": "Mencionado",
+ "CONVERSATION_ASSIGNMENT": "Atribuídas a você",
+ "CONVERSATION_CREATION": "Nova conversa",
+ "SLA_MISSED_FIRST_RESPONSE": "Quebra SLA",
+ "SLA_MISSED_NEXT_RESPONSE": "Quebra SLA",
+ "SLA_MISSED_RESOLUTION": "Quebra SLA",
+ "PARTICIPATING_CONVERSATION_NEW_MESSAGE": "Nova Mensagem",
+ "ASSIGNED_CONVERSATION_NEW_MESSAGE": "Nova Mensagem",
+ "SNOOZED_UNTIL": "Adiado para {time}",
+ "SNOOZED_ENDS": "Adiamento encerrado"
+ },
+ "NO_CONTENT": "Nenhum conteúdo disponível",
"MENU_ITEM": {
- "MARK_AS_READ": "Marcar como lido",
+ "MARK_AS_READ": "Marcar como lida",
"MARK_AS_UNREAD": "Marcar como não lida",
"SNOOZE": "Adiar",
"DELETE": "Excluir",
"MARK_ALL_READ": "Marcar todas como lidas",
- "DELETE_ALL": "Excluir todos",
- "DELETE_ALL_READ": "Excluir todos os lidos"
+ "DELETE_ALL": "Excluir todas",
+ "DELETE_ALL_READ": "Excluir todas as lidas"
},
"DISPLAY_MENU": {
"SORT": "Ordenar",
- "DISPLAY": "Exibir :",
+ "DISPLAY": "Exibir:",
"SORT_OPTIONS": {
- "NEWEST": "Mais recente",
- "OLDEST": "Mais antigo",
+ "NEWEST": "Recentes",
+ "OLDEST": "Antigas",
"PRIORITY": "Prioridade"
},
"DISPLAY_OPTIONS": {
- "SNOOZED": "Adiado",
+ "SNOOZED": "Adiadas",
"READ": "Lida",
- "LABELS": "Marcadores",
- "CONVERSATION_ID": "Conversas"
+ "LABELS": "Etiquetas",
+ "CONVERSATION_ID": "ID da conversa"
}
},
"ALERTS": {
@@ -55,6 +72,24 @@
"MARK_ALL_READ": "Todas as notificações marcadas como lidas",
"DELETE_ALL": "Todas as notificações excluídas",
"DELETE_ALL_READ": "Todas as notificações lidas foram excluídas"
+ },
+ "REAUTHORIZE": {
+ "TITLE": "Reautenticação necessária",
+ "DESCRIPTION": "Sua conexão com o WhatsApp expirou. Por favor, reconecte para continuar recebendo e enviando mensagens.",
+ "BUTTON_TEXT": "Reconectar WhatsApp",
+ "LOADING_FACEBOOK": "Carregando SDK do Facebook...",
+ "SUCCESS": "WhatsApp reconectado com sucesso",
+ "ERROR": "Falha ao reconectar o WhatsApp. Por favor, tente novamente.",
+ "WHATSAPP_APP_ID_MISSING": "WhatsApp App ID não está configurado. Por favor, contate seu administrador.",
+ "WHATSAPP_CONFIG_ID_MISSING": "WhatsApp Configuration ID não está configurado. Por favor, contate seu administrador.",
+ "CONFIGURATION_ERROR": "Ocorreu um erro de configuração ao reautenticar.",
+ "FACEBOOK_LOAD_ERROR": "Falha para carregar o SDK do Facebook. Por favor, tente novamente.",
+ "TROUBLESHOOTING": {
+ "TITLE": "Solucionar problemas",
+ "POPUP_BLOCKED": "Certifique-se de que os pop-ups são permitidos para este site",
+ "COOKIES": "_Cookies_ de terceiros devem estar habilitados",
+ "ADMIN_ACCESS": "Você precisa de acesso de administrador na conta do WhatsApp Business"
+ }
}
}
}
diff --git a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
index 029226416..4331fade0 100644
--- a/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
+++ b/app/javascript/dashboard/i18n/locale/pt_BR/inboxMgmt.json
@@ -1,32 +1,36 @@
{
"INBOX_MGMT": {
"HEADER": "Caixas de Entrada",
- "SIDEBAR_TXT": "Caixa de entrada
Quando você conectar um site ou uma página de Facebook ao Chatwoot, é chamado de caixa de entrada. Você pode ter caixas de entrada ilimitadas na sua conta de Chatwoot.
Clique em Adicionar caixa de entrada para conectar um site ou uma página do Facebook.
No Painel, você pode ver todas as conversas de todas as suas caixas de entrada em um único lugar e responder a elas sob a guia `Conversations`.
Você também pode ver conversas específicas para uma caixa de entrada clicando no nome da caixa de entrada no painel esquerdo do painel.
",
+ "DESCRIPTION": "Um canal é o modo de comunicação que seu cliente escolhe para interagir com você. Uma caixa de entrada é onde você gerencia interações para um canal específico. Pode incluir comunicações de várias fontes, como e-mail, chat ao vivo e mídia social.",
+ "LEARN_MORE": "Saiba mais sobre as caixas de entrada",
+ "COUNT": "{n} caixa de entrada | {n} caixas de entrada",
+ "SEARCH_PLACEHOLDER": "Pesquisar caixas de entrada...",
+ "NO_RESULTS": "Nenhuma caixa de entrada encontrada correspondente à sua busca",
+ "RECONNECTION_REQUIRED": "Sua caixa de entrada está desconectada. Você não receberá novas mensagens até reautorizar.",
+ "CLICK_TO_RECONNECT": "Clique aqui para reconectar.",
+ "WHATSAPP_REGISTRATION_INCOMPLETE": "Seu registro no WhatsApp Business não foi concluído. Verifique o status do seu nome de exibição no Meta Business Manager antes de reconectar.",
+ "COMPLETE_REGISTRATION": "Concluir registro",
"LIST": {
"404": "Não há caixas de entrada anexadas a esta conta."
},
- "CREATE_FLOW": [
- {
- "title": "Escolha o canal",
- "route": "settings_inbox_new",
- "body": "Escolha o provedor que você deseja integrar com o Chatwoot."
+ "CREATE_FLOW": {
+ "CHANNEL": {
+ "TITLE": "Escolha o Canal",
+ "BODY": "Escolha o provedor que você deseja integrar com o Chatwoot."
},
- {
- "title": "Criar Caixa de Entrada",
- "route": "settings_inboxes_page_channel",
- "body": "Autenticar sua conta e criar uma caixa de entrada."
+ "INBOX": {
+ "TITLE": "Criar Caixa de Entrada",
+ "BODY": "Autenticar sua conta e criar uma caixa de entrada."
},
- {
- "title": "Adicionar Agentes",
- "route": "settings_inboxes_add_agents",
- "body": "Adicionar agentes à caixa de entrada criada."
+ "AGENT": {
+ "TITLE": "Adicionar Agentes",
+ "BODY": "Adicionar agentes à caixa de entrada criada."
},
- {
- "title": "Voila!",
- "route": "settings_inbox_finish",
- "body": "Está tudo pronto para começar!"
+ "FINISH": {
+ "TITLE": "Então!",
+ "BODY": "Está tudo pronto para começar!"
}
- ],
+ },
"ADD": {
"CHANNEL_NAME": {
"LABEL": "Nome da Caixa de Entrada",
@@ -43,8 +47,25 @@
"CHOOSE_PLACEHOLDER": "Selecione uma página da lista",
"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_NAME": "Escolha um nome para sua caixa de entrada",
+ "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."
+ },
+ "TIKTOK": {
+ "CONTINUE_WITH_TIKTOK": "Continuar com TikTok",
+ "CONNECT_YOUR_TIKTOK_PROFILE": "Conecte seu perfil do TikTok",
+ "HELP": "Para adicionar seu perfil do TikTok como um canal, é necessário autenticar seu perfil clicando em 'Continuar com TikTok'. ",
+ "ERROR_MESSAGE": "Ocorreu um erro ao conectar com o TikTok, por favor, tente novamente",
+ "ERROR_AUTH": "Ocorreu um erro ao conectar com o TikTok, por favor, tente novamente"
},
"TWITTER": {
"HELP": "Para adicionar seu perfil do Twitter como um canal, você precisa autenticar seu perfil do Twitter clicando em 'Entrar com o Twitter' ",
@@ -62,9 +83,17 @@
},
"CHANNEL_WEBHOOK_URL": {
"LABEL": "URL do webhook",
- "PLACEHOLDER": "Digite a URL do Webhook",
+ "PLACEHOLDER": "Insira o URL do seu webhook",
"ERROR": "Por favor, insira uma URL válida"
},
+ "CHANNEL_WEBHOOK_SECRET": {
+ "LABEL": "Segredo do Webhook",
+ "COPY": "Copiar segredo para a área de transferência",
+ "COPY_SUCCESS": "Segredo copiado para a área de transferência",
+ "TOGGLE": "Alternar visibilidade do segredo",
+ "RESET_SUCCESS": "Segredo do webhook regenerado com sucesso",
+ "RESET_ERROR": "Não foi possível regenerar o segredo do webhook. Por favor, tente novamente"
+ },
"CHANNEL_DOMAIN": {
"LABEL": "Domínio do website",
"PLACEHOLDER": "Informe o domínio do seu site (por exemplo: acme.com)"
@@ -79,7 +108,7 @@
},
"CHANNEL_GREETING_MESSAGE": {
"LABEL": "Mensagem de saudação do canal",
- "PLACEHOLDER": "Acme Inc tipicamente retorna em algumas horas."
+ "PLACEHOLDER": "Acme Inc normalmente responde em algumas horas."
},
"CHANNEL_GREETING_TOGGLE": {
"LABEL": "Ativar saudação do canal",
@@ -143,13 +172,13 @@
"ERROR": "Este campo é obrigatório"
},
"PHONE_NUMBER": {
- "LABEL": "Número de telefone",
+ "LABEL": "Número de Telefone",
"PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
"ERROR": "Por favor, forneça um número de telefone válido que comece com o símbolo \"+\" e não contenha espaços."
},
"API_CALLBACK": {
- "TITLE": "URL de retorno",
- "SUBTITLE": "Você precisa configurar o URL de retorno de mensagem no Twilio com a URL mencionada aqui."
+ "TITLE": "URL de Callback",
+ "SUBTITLE": "Você precisa configurar a URL de Callback de mensagem no Twilio com a URL mencionada aqui."
},
"SUBMIT_BUTTON": "Criar canal Twilio",
"API": {
@@ -158,9 +187,9 @@
},
"SMS": {
"TITLE": "Canal SMS",
- "DESC": "Comece a apoiar seus clientes via SMS.",
+ "DESC": "Comece a oferecer suporte a seus clientes por SMS.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Provedor de API",
"TWILIO": "Twilio",
"BANDWIDTH": "Bandwidth"
},
@@ -175,12 +204,12 @@
},
"API_KEY": {
"LABEL": "Chave API",
- "PLACEHOLDER": "Por favor, digite a sua chave da Bandwith API",
+ "PLACEHOLDER": "Insira sua chave API Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"API_SECRET": {
"LABEL": "Chave secreta API",
- "PLACEHOLDER": "Por favor, insira a sua chave da API Bandwith",
+ "PLACEHOLDER": "Insira sua API Secret do Bandwidth",
"ERROR": "Este campo é obrigatório"
},
"APPLICATION_ID": {
@@ -203,20 +232,27 @@
"ERROR_MESSAGE": "Não pudemos autenticar as credenciais de Bandwidth, por favor, tente novamente"
},
"API_CALLBACK": {
- "TITLE": "URL de retorno",
- "SUBTITLE": "Você precisa configurar o URL de retorno de mensagem na banda com a URL mencionada aqui."
+ "TITLE": "URL de Callback",
+ "SUBTITLE": "Você precisa configurar a URL de callback de mensagem no Bandwidth com a URL mencionada aqui."
}
}
},
"WHATSAPP": {
"TITLE": "Canal do WhatsApp",
- "DESC": "Comece a apoiar seus clientes via WhatsApp.",
+ "DESC": "Comece a oferecer suporte a seus clientes pelo WhatsApp.",
"PROVIDERS": {
- "LABEL": "API Provider",
+ "LABEL": "Provedor de API",
+ "WHATSAPP_EMBEDDED": "WhatsApp Business",
"TWILIO": "Twilio",
"WHATSAPP_CLOUD": "Cloud do WhatsApp",
+ "WHATSAPP_CLOUD_DESC": "Configuração rápida via Meta",
+ "TWILIO_DESC": "Conectar através de credenciais Twilio",
"360_DIALOG": "360Dialog"
},
+ "SELECT_PROVIDER": {
+ "TITLE": "Selecione seu provedor de API",
+ "DESCRIPTION": "Escolha seu provedor do WhatsApp. Você pode se conectar diretamente através de metade, que não requer nenhuma configuração ou se conectar pelo Twilio usando as credenciais da sua conta."
+ },
"INBOX_NAME": {
"LABEL": "Nome da Caixa de Entrada",
"PLACEHOLDER": "Por favor, digite um nome para caixa de entrada",
@@ -225,7 +261,7 @@
"PHONE_NUMBER": {
"LABEL": "Número de telefone",
"PLACEHOLDER": "Por favor, insira o número de telefone do qual a mensagem será enviada.",
- "ERROR": "Por favor, forneça um número de telefone válido que começa com uma placa `+` e não contém quaisquer espaços."
+ "ERROR": "Por favor, forneça um número de telefone válido que comece com o símbolo \"+\" e não contém quaisquer espaços."
},
"PHONE_NUMBER_ID": {
"LABEL": "ID do número de telefone",
@@ -233,13 +269,13 @@
"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": {
"LABEL": "Token de verificação do Webhook",
- "PLACEHOLDER": "Digite um token de verificação que você deseja configurar para webhooks do Facebook.",
+ "PLACEHOLDER": "Insira um token de verificação que você deseja configurar para webhooks do Facebook.",
"ERROR": "Por favor, insira um valor válido."
},
"API_KEY": {
@@ -249,16 +285,87 @@
"ERROR": "Por favor, insira um valor válido."
},
"API_CALLBACK": {
- "TITLE": "URL de retorno",
+ "TITLE": "URL de callback",
"SUBTITLE": "Você deve configurar a URL do webhook e o token de verificação no portal do desenvolvedor do Facebook com os valores mostrados abaixo.",
"WEBHOOK_URL": "URL do Webhook",
"WEBHOOK_VERIFICATION_TOKEN": "Token de verificação Webhook"
},
"SUBMIT_BUTTON": "Criar canal do WhatsApp",
+ "EMBEDDED_SIGNUP": {
+ "TITLE": "Configuração rápida com Meta",
+ "DESC": "Use o fluxo de inscrição incorporada do WhatsApp para conectar rapidamente novos números. Você será redirecionado para a Meta para entrar na sua conta do WhatsApp Business. Ter acesso de administrador ajudará a tornar a configuração simples e fácil.",
+ "BENEFITS": {
+ "TITLE": "Benefícios do Cadastro Incorporado:",
+ "EASY_SETUP": "Nenhuma configuração manual é necessária",
+ "SECURE_AUTH": "Autenticação segura baseada em OAuth",
+ "AUTO_CONFIG": "Configuração automática de webhook e número de telefone"
+ },
+ "LEARN_MORE": {
+ "TEXT": "Para saber mais sobre a inscrição integrada, preços e limitações, visite {link}.",
+ "LINK_TEXT": "este link"
+ },
+ "SUBMIT_BUTTON": "Conecte-se com WhatsApp Business",
+ "AUTH_PROCESSING": "Autenticando com Meta",
+ "WAITING_FOR_BUSINESS_INFO": "Por favor, complete a configuração do negócio na janela da Meta...",
+ "PROCESSING": "Configurando sua conta do WhatsApp Business",
+ "ENABLING_CALLING": "Ativando chamadas do WhatsApp no seu número…",
+ "LOADING_SDK": "Carregando SDK do Facebook...",
+ "CANCELLED": "O cadastro do WhatsApp foi cancelado",
+ "SUCCESS_TITLE": "Conta do WhatsApp Business conectada!",
+ "WAITING_FOR_AUTH": "Aguardando autenticação...",
+ "INVALID_BUSINESS_DATA": "Dados de negócio inválidos recebidos do Facebook. Por favor, tente novamente.",
+ "SIGNUP_ERROR": "Ocorreu um erro no cadastro",
+ "AUTH_NOT_COMPLETED": "Autenticação não concluída. Por favor, reinicie o processo.",
+ "SUCCESS_FALLBACK": "A conta do WhatsApp Business foi configurada com sucesso",
+ "MANUAL_FALLBACK": "Se o seu número já estiver conectado à Plataforma WhatsApp Business (API) ou se você for um provedor de tecnologia integrando o seu próprio número, use o fluxo de {link}",
+ "MANUAL_LINK_TEXT": "fluxo de configuração manual",
+ "CALLING_ENABLE_FAILED": "Sua caixa de entrada do WhatsApp está pronta, mas as chamadas de voz não puderam ser ativadas — este número ainda não está cadastrado na API de Chamadas do WhatsApp Business. Entre em contato com a Meta ou com seu provedor de soluções WhatsApp Business para realizar o cadastro e, depois, ative as chamadas nas configurações de Chamadas da caixa de entrada."
+ },
"API": {
"ERROR_MESSAGE": "Não foi possível salvar o canal do WhatsApp"
}
},
+ "VOICE": {
+ "TITLE": "Canal de Voz",
+ "DESC": "Integre o Twilio Voice e comece a oferecer suporte a seus clientes através de chamadas telefônicas.",
+ "PHONE_NUMBER": {
+ "LABEL": "Número de Telefone",
+ "PLACEHOLDER": "Digite seu número de telefone (por exemplo, +551234567890)",
+ "ERROR": "Por favor, forneça um número de telefone válido no formato E.164 (por exemplo, +551234567890)"
+ },
+ "TWILIO": {
+ "ACCOUNT_SID": {
+ "LABEL": "SID da Conta",
+ "PLACEHOLDER": "Insira o SID da sua Conta Twilio",
+ "REQUIRED": "O SID da conta é necessário"
+ },
+ "AUTH_TOKEN": {
+ "LABEL": "Token de autenticação",
+ "PLACEHOLDER": "Por favor, digite seu Token de Autenticação do Twilio",
+ "REQUIRED": "Um Token de autenticação é necessário"
+ },
+ "API_KEY_SID": {
+ "LABEL": "Chave da API SID",
+ "PLACEHOLDER": "Insira sua chave de API do Twilio SID",
+ "REQUIRED": "API Key SID é obrigatório"
+ },
+ "API_KEY_SECRET": {
+ "LABEL": "Segredo da Chave API",
+ "PLACEHOLDER": "Digite o segredo da sua chave de API do Twilio",
+ "REQUIRED": "Segredo da chave da API é obrigatório"
+ }
+ },
+ "CONFIGURATION": {
+ "TWILIO_VOICE_URL_TITLE": "URL do Twilio Voice",
+ "TWILIO_VOICE_URL_SUBTITLE": "Configure este URL como a Voice URL no seu número de telefone da Twilio e no aplicativo TwiML.",
+ "TWILIO_STATUS_URL_TITLE": "Status Callback URL da Twilio",
+ "TWILIO_STATUS_URL_SUBTITLE": "Configure este URL como a Status Callback URL no seu número de telefone da Twilio."
+ },
+ "SUBMIT_BUTTON": "Criar Canal de Voz",
+ "API": {
+ "ERROR_MESSAGE": "Não conseguimos criar o canal de voz"
+ }
+ },
"API_CHANNEL": {
"TITLE": "Canal da API",
"DESC": "Integre com canal API e comece a ajudar seus clientes.",
@@ -269,7 +376,7 @@
},
"WEBHOOK_URL": {
"LABEL": "URL do Webhook",
- "SUBTITLE": "Configure a URL onde deseja receber chamadas em eventos.",
+ "SUBTITLE": "Configure a URL onde você deseja receber callbacks em eventos.",
"PLACEHOLDER": "URL do Webhook"
},
"SUBMIT_BUTTON": "Criar canal de API",
@@ -279,22 +386,26 @@
},
"EMAIL_CHANNEL": {
"TITLE": "Canal de e-mail",
- "DESC": "Integre sua caixa de email.",
+ "DESC": "Integre sua caixa de entrada de e-mail.",
"CHANNEL_NAME": {
"LABEL": "Nome do Canal",
"PLACEHOLDER": "Por favor, insira um nome de canal",
"ERROR": "Este campo é obrigatório"
},
"EMAIL": {
- "LABEL": "e-mail",
+ "LABEL": "E-mail",
"SUBTITLE": "E-mail para onde os seus clientes lhe enviam tickets de suporte",
- "PLACEHOLDER": "e-mail"
+ "PLACEHOLDER": "E-mail"
},
"SUBMIT_BUTTON": "Criar canal de e-mail",
"API": {
"ERROR_MESSAGE": "Não foi possível salvar o canal de e-mail"
},
- "FINISH_MESSAGE": "Comece a encaminhar seus e-mails para o seguinte endereço de e-mail."
+ "FINISH_MESSAGE": "Comece a encaminhar seus e-mails para o seguinte endereço de e-mail.",
+ "FINISH_MESSAGE_NO_FORWARDING": "Sua caixa de entrada de e-mail foi criada com sucesso! É necessário configurar as credenciais de SMTP e IMAP para enviar e receber e-mails. Sem essas configurações, nenhum e-mail será processado.",
+ "FORWARDING_ADDRESS_LABEL": "Encaminhar e-mails para este endereço:",
+ "CONFIGURE_SMTP_IMAP_LINK": "Clique aqui",
+ "CONFIGURE_SMTP_IMAP_TEXT": " para configurar IMAP e SMTP"
},
"LINE_CHANNEL": {
"TITLE": "Canal LINE",
@@ -340,12 +451,64 @@
},
"AUTH": {
"TITLE": "Escolha um canal",
- "DESC": "O Chatwoot suporta widgets de chats ao vivo, Facebook Messenger, perfis do Twitter, WhatsApp, E-mails, etc., como canais. Se você quiser criar um canal personalizado, você pode criá-lo usando o canal API. Para começar, escolha um dos canais abaixo."
+ "DESC": "O Chatwoot suporta widgets de chats ao vivo, Facebook Messenger, perfis do Twitter, WhatsApp, E-mails, etc., como canais. Se você quiser criar um canal personalizado, você pode criá-lo usando o canal API. Para começar, escolha um dos canais abaixo.",
+ "TITLE_NEXT": "Concluir a configuração",
+ "TITLE_FINISH": "Então!",
+ "CHANNEL": {
+ "WEBSITE": {
+ "TITLE": "Site",
+ "DESCRIPTION": "Criar um widget de chat ao vivo"
+ },
+ "FACEBOOK": {
+ "TITLE": "Facebook",
+ "DESCRIPTION": "Conectar sua página do Facebook"
+ },
+ "WHATSAPP": {
+ "TITLE": "WhatsApp",
+ "DESCRIPTION": "Atenda seus clientes no WhatsApp"
+ },
+ "WHATSAPP_CALL": {
+ "TITLE": "Chamada do WhatsApp",
+ "DESCRIPTION": "Receba chamadas de voz no seu número do WhatsApp"
+ },
+ "EMAIL": {
+ "TITLE": "E-mail",
+ "DESCRIPTION": "Conectar com Gmail, Outlook ou outros provedores"
+ },
+ "SMS": {
+ "TITLE": "SMS",
+ "DESCRIPTION": "Integrar o canal SMS com Twilio ou Bandwidth"
+ },
+ "API": {
+ "TITLE": "API",
+ "DESCRIPTION": "Crie um canal personalizado usando nossa API"
+ },
+ "TELEGRAM": {
+ "TITLE": "Telegram",
+ "DESCRIPTION": "Configure o canal do Telegram usando o token do bot"
+ },
+ "LINE": {
+ "TITLE": "Line",
+ "DESCRIPTION": "Integre seu canal do LINE"
+ },
+ "INSTAGRAM": {
+ "TITLE": "Instagram",
+ "DESCRIPTION": "Conecte sua conta do Instagram"
+ },
+ "TIKTOK": {
+ "TITLE": "TikTok",
+ "DESCRIPTION": "Conecte sua conta do TikTok"
+ },
+ "VOICE": {
+ "TITLE": "Voz",
+ "DESCRIPTION": "Integre com o Twilio Voice"
+ }
+ }
},
"AGENTS": {
"TITLE": "Agentes",
"DESC": "Aqui você pode adicionar agentes para gerenciar sua caixa de entrada recém-criada. Somente esses agentes selecionados terão acesso à sua caixa de entrada. Os agentes que não fazem parte desta caixa de entrada não poderão ver ou responder a mensagens nessa caixa de entrada quando fizerem login.
PS: Como administrador, se você precisar acessar todas as caixas de entrada, adicione-se como agente a todas as caixas de entrada criadas.",
- "VALIDATION_ERROR": "Adicione ao menos um agente a sua nova caixa de entrada",
+ "VALIDATION_ERROR": "Adicione pelo menos um agente à sua nova caixa de entrada",
"PICK_AGENTS": "Escolha agentes para a caixa de entrada"
},
"DETAILS": {
@@ -364,12 +527,20 @@
"TITLE": "Microsoft Email",
"DESCRIPTION": "Clique no botão Entrar com a Microsoft para começar. Você será redirecionado para o login do e-mail. Após aceitar as permissões solicitadas, você será redirecionado de volta para a etapa de criação da caixa de entrada.",
"EMAIL_PLACEHOLDER": "Digite o endereço de e-mail",
- "HELP": "Para adicionar sua conta da Microsoft como um canal, você precisa autenticar em sua conta clicando em 'Entrar com a Microsoft' ",
+ "SIGN_IN": "Entre com uma conta Microsoft",
"ERROR_MESSAGE": "Ocorreu um erro ao conectar com a Microsoft, por favor, tente novamente"
+ },
+ "GOOGLE": {
+ "TITLE": "E-mail do Google",
+ "DESCRIPTION": "Clique no botão Entrar com o Google para começar. Você será redirecionado para o login do e-mail. Depois que você aceitar as permissões solicitadas, você será redirecionado de volta para a etapa de criação da caixa de entrada.",
+ "SIGN_IN": "Entrar com o Google",
+ "EMAIL_PLACEHOLDER": "Digite o endereço de e-mail",
+ "ERROR_MESSAGE": "Houve um erro ao conectar com o Google, por favor, tente novamente"
}
},
"DETAILS": {
"LOADING_FB": "Autenticando você com o Facebook...",
+ "ERROR_FB_LOADING": "Erro ao carregar o SDK do Facebook. Por favor, desative qualquer bloqueador de anúncios e tente novamente de um navegador diferente.",
"ERROR_FB_AUTH": "Algo deu errado, por favor, atualize a página...",
"ERROR_FB_UNAUTHORIZED": "Você não está autorizado a realizar esta ação. ",
"ERROR_FB_UNAUTHORIZED_HELP": "A tradução é:\n\nPor favor, certifique-se de que você tem acesso à página do Facebook com controle total. Você pode ler mais sobre as funções do Facebook aqui.",
@@ -386,7 +557,10 @@
"MESSAGE": "Agora você ja pode oferecer uma excelente experiência no atendimento de seus clientes através do seu novo Canal",
"BUTTON_TEXT": "Leva-me lá",
"MORE_SETTINGS": "Mais configurações",
- "WEBSITE_SUCCESS": "Você concluiu a criação de um canal de site. Copie o código mostrado abaixo e cole-o no seu site. Na próxima vez que um cliente usar o bate-papo ao vivo, a conversa aparecerá automaticamente na sua caixa de entrada."
+ "WEBSITE_SUCCESS": "Você concluiu a criação de um canal de site. Copie o código mostrado abaixo e cole-o no seu site. Na próxima vez que um cliente usar o bate-papo ao vivo, a conversa aparecerá automaticamente na sua caixa de entrada.",
+ "WHATSAPP_QR_INSTRUCTION": "Escaneie o código QR acima para testar rapidamente sua caixa de entrada do WhatsApp",
+ "MESSENGER_QR_INSTRUCTION": "Escaneie o código QR acima para testar rapidamente sua caixa de entrada do Facebook Messenger",
+ "TELEGRAM_QR_INSTRUCTION": "Escaneie o código QR acima para testar rapidamente sua caixa de entrada do Telegram"
},
"REAUTH": "Reautorizar",
"VIEW": "Visualizar",
@@ -406,11 +580,11 @@
},
"SENDER_NAME_SECTION": {
"TITLE": "Nome do remetente",
- "SUB_TEXT": "Selecione o nome a ser exibido para o seu cliente quando ele receber e-mails de seus agentes.",
+ "SUB_TEXT": "Selecione o nome mostrado ao seu cliente quando ele recebe e-mails dos seus agentes.",
"FOR_EG": "Por ex:",
"FRIENDLY": {
"TITLE": "Amigável",
- "FROM": "De",
+ "FROM": "de",
"SUBTITLE": "Adicione o nome do agente que enviou a resposta ao nome do remetente para torná-la amigável."
},
"PROFESSIONAL": {
@@ -432,11 +606,13 @@
"DISABLED": "Desativado"
},
"LOCK_TO_SINGLE_CONVERSATION": {
- "ENABLED": "Ativado",
- "DISABLED": "Desativado"
+ "ENABLED": "Reabrir a mesma conversa",
+ "DISABLED": "Criar novas conversas",
+ "ENABLED_DESCRIPTION": "Quando um contado enviar mensagem novamente, a conversa anterior será reaberta.",
+ "DISABLED_DESCRIPTION": "Uma nova conversa será criada toda vez que a anterior estiver resolvida."
},
"ENABLE_HMAC": {
- "LABEL": "Habilitado"
+ "LABEL": "Ativar"
}
},
"DELETE": {
@@ -458,15 +634,115 @@
},
"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",
+ "ACCOUNT_HEALTH": "Saúde da conta",
+ "CSAT": "CSAT",
+ "VOICE": "Voz",
+ "CALLS": "Chamadas"
},
- "SETTINGS": "Confirgurações",
+ "VOICE_CONFIGURATION": {
+ "ENABLE_VOICE": {
+ "LABEL": "Habilitar Chamada de Voz",
+ "DESCRIPTION": "Habilite chamadas de voz nesta caixa de entrada. Agentes poderão fazer e receber chamadas telefônicas."
+ },
+ "CREDENTIALS": {
+ "DESCRIPTION": "Chamada de voz requer credenciais de chave da API Twilio. Elas são usadas para gerar tokens para conexões de voz do agente."
+ }
+ },
+ "WHATSAPP_CALLING": {
+ "ENABLE": {
+ "LABEL": "Ativar chamadas do WhatsApp",
+ "DESCRIPTION": "Permita que os atendentes recebam e realizem chamadas do WhatsApp Cloud nesta caixa de entrada. Os clientes poderão ligar diretamente para este número comercial pelo WhatsApp."
+ },
+ "ENABLE_FAILED": "As chamadas de voz não puderam ser ativadas para este número — ele ainda não está cadastrado na API de Chamadas do WhatsApp Business. Entre em contato com a Meta ou com seu provedor de soluções WhatsApp Business para realizar o cadastro e tente novamente depois.",
+ "PHONE_NUMBER": {
+ "LABEL": "Número de telefone comercial",
+ "HELP_TEXT": "Número do WhatsApp para o qual os clientes poderão ligar."
+ },
+ "HOW_IT_WORKS": {
+ "LABEL": "Como funciona",
+ "DESCRIPTION": "As chamadas são realizadas ponto a ponto entre o navegador do atendente e a Meta — nenhuma credencial adicional é necessária. Certifique-se de que o navegador do atendente tenha permissão para usar o microfone neste site."
+ },
+ "PERMISSION_REQUEST_BODY": {
+ "LABEL": "Mensagem de solicitação de permissão de chamada",
+ "HELP_TEXT": "Exibido ao contato quando ele ainda não consentiu em receber chamadas. Deixe em branco para usar a mensagem padrão.",
+ "PLACEHOLDER": "Gostaríamos de ligar para você em relação à sua conversa."
+ }
+ },
+ "CHANNEL_PREFERENCES": "Preferências do Canal",
+ "WIDGET_FEATURES": "Recursos do widget",
+ "ACCOUNT_HEALTH": {
+ "TITLE": "Gerencie sua conta do WhatsApp",
+ "DESCRIPTION": "Revise o status da sua conta do WhatsApp, os limites de mensagens e a qualidade. Atualize as configurações ou resolva problemas, se necessário",
+ "GO_TO_SETTINGS": "Ir para o Meta Business Manager",
+ "NO_DATA": "Dados de saúde não estão disponíveis",
+ "FIELDS": {
+ "DISPLAY_PHONE_NUMBER": {
+ "LABEL": "Número de telefone exibido",
+ "TOOLTIP": "Número de telefone exibido aos clientes"
+ },
+ "VERIFIED_NAME": {
+ "LABEL": "Nome da empresa",
+ "TOOLTIP": "Nome da empresa verificado pelo WhatsApp"
+ },
+ "DISPLAY_NAME_STATUS": {
+ "LABEL": "Status do nome de exibição",
+ "TOOLTIP": "Status da verificação do nome da sua empresa"
+ },
+ "QUALITY_RATING": {
+ "LABEL": "Classificação de qualidade",
+ "TOOLTIP": "Classificação de qualidade do WhatsApp para sua conta"
+ },
+ "MESSAGING_LIMIT_TIER": {
+ "LABEL": "Nível de limite de mensagens",
+ "TOOLTIP": "Limite diário de mensagens da sua conta"
+ },
+ "ACCOUNT_MODE": {
+ "LABEL": "Modo da conta",
+ "TOOLTIP": "Modo de operação atual da sua conta do WhatsApp"
+ }
+ },
+ "VALUES": {
+ "TIERS": {
+ "TIER_250": "250 clientes por 24 h",
+ "TIER_1000": "1 mil clientes por 24 h",
+ "TIER_1K": "1 mil clientes por 24 h",
+ "TIER_10K": "10K clientes a cada 24h",
+ "TIER_100K": "100K clientes a cada 24h",
+ "TIER_UNLIMITED": "Clientes ilimitados a cada 24h",
+ "UNKNOWN": "Classificação não disponível"
+ },
+ "STATUSES": {
+ "APPROVED": "Aceito",
+ "PENDING_REVIEW": "Revisão pendente",
+ "AVAILABLE_WITHOUT_REVIEW": "Disponível sem revisão",
+ "REJECTED": "Rejeitado",
+ "DECLINED": "Sandbox",
+ "NON_EXISTS": "Não existe"
+ },
+ "MODES": {
+ "SANDBOX": "Sandbox",
+ "LIVE": "Em tempo real"
+ }
+ },
+ "WEBHOOK": {
+ "TITLE": "Configuração do Webhook",
+ "DESCRIPTION": "A URL do webhook é obrigatória para que sua conta do WhatsApp Business receba mensagens dos clientes",
+ "ACTION_REQUIRED": "Webhook não configurado",
+ "REGISTER_BUTTON": "Cadastrar Webhook",
+ "REGISTER_SUCCESS": "Webhook cadastrado com sucesso",
+ "REGISTER_ERROR": "Falha ao cadastrar webhook. Por favor, tente novamente.",
+ "CONFIGURED_SUCCESS": "Webhook configurado com sucesso",
+ "URL_MISMATCH": "Incompatibilidade na URL do webhook"
+ }
+ },
+ "SETTINGS": "Configurações",
"FEATURES": {
"LABEL": "Funcionalidades",
"DISPLAY_FILE_PICKER": "Exibir seletor de arquivos no widget",
@@ -477,6 +753,23 @@
"SETTINGS_POPUP": {
"MESSENGER_HEADING": "Código Menssageiro ",
"MESSENGER_SUB_HEAD": "Favor, insira essse código
+
+
+
+
+
+
+
+
+ {{ $t('DELETE_CONTACT.CONFIRM.TITLE') }}
+
+
+ {{ confirmMessage }}
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/contact/ContactMergeModal.vue b/app/javascript/dashboard/modules/contact/ContactMergeModal.vue
index b513cb1fd..be06581a6 100644
--- a/app/javascript/dashboard/modules/contact/ContactMergeModal.vue
+++ b/app/javascript/dashboard/modules/contact/ContactMergeModal.vue
@@ -1,92 +1,97 @@
-
-
-
-
+
-
+
+
+
+
+
+
+
+
+ {{ $t('MERGE_CONTACTS.TITLE') }}
+
+
+ {{ $t('MERGE_CONTACTS.DESCRIPTION') }}
+
+
+
onMergeContacts(id, hide)"
+ />
+
+
+
+
diff --git a/app/javascript/dashboard/modules/contact/components/AddCustomAttribute.vue b/app/javascript/dashboard/modules/contact/components/AddCustomAttribute.vue
deleted file mode 100644
index 7fe4a3321..000000000
--- a/app/javascript/dashboard/modules/contact/components/AddCustomAttribute.vue
+++ /dev/null
@@ -1,98 +0,0 @@
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/ContactAttribute.vue b/app/javascript/dashboard/modules/contact/components/ContactAttribute.vue
deleted file mode 100644
index 5dcfd568a..000000000
--- a/app/javascript/dashboard/modules/contact/components/ContactAttribute.vue
+++ /dev/null
@@ -1,130 +0,0 @@
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/ContactDropdownItem.vue b/app/javascript/dashboard/modules/contact/components/ContactDropdownItem.vue
deleted file mode 100644
index a45c5fe2c..000000000
--- a/app/javascript/dashboard/modules/contact/components/ContactDropdownItem.vue
+++ /dev/null
@@ -1,92 +0,0 @@
-
-
-
-
-
- {{ name }}
-
- (ID: {{ identifier }})
-
-
-
-
-
- {{ email }}
-
-
-
- {{ phoneNumber }}
-
- {{ '---' }}
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/ContactFields.vue b/app/javascript/dashboard/modules/contact/components/ContactFields.vue
deleted file mode 100644
index b600b3185..000000000
--- a/app/javascript/dashboard/modules/contact/components/ContactFields.vue
+++ /dev/null
@@ -1,113 +0,0 @@
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/ContactIntro.vue b/app/javascript/dashboard/modules/contact/components/ContactIntro.vue
deleted file mode 100644
index 3d1b7222a..000000000
--- a/app/javascript/dashboard/modules/contact/components/ContactIntro.vue
+++ /dev/null
@@ -1,121 +0,0 @@
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/ContactPanel.vue b/app/javascript/dashboard/modules/contact/components/ContactPanel.vue
deleted file mode 100644
index f9e7a99b4..000000000
--- a/app/javascript/dashboard/modules/contact/components/ContactPanel.vue
+++ /dev/null
@@ -1,105 +0,0 @@
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/contact/components/MergeContact.vue b/app/javascript/dashboard/modules/contact/components/MergeContact.vue
index 8f09a4754..29dc6b62d 100644
--- a/app/javascript/dashboard/modules/contact/components/MergeContact.vue
+++ b/app/javascript/dashboard/modules/contact/components/MergeContact.vue
@@ -1,204 +1,122 @@
-
-
-
-
-
-
+
+
+
diff --git a/app/javascript/dashboard/modules/contact/components/MergeContactSummary.vue b/app/javascript/dashboard/modules/contact/components/MergeContactSummary.vue
index 83c588da7..058021dd5 100644
--- a/app/javascript/dashboard/modules/contact/components/MergeContactSummary.vue
+++ b/app/javascript/dashboard/modules/contact/components/MergeContactSummary.vue
@@ -1,9 +1,25 @@
+
+
+
-
+
{{ $t('MERGE_CONTACTS.SUMMARY.TITLE') }}
-
-
diff --git a/app/javascript/dashboard/modules/contact/stories/AddCustomAttribute.stories.js b/app/javascript/dashboard/modules/contact/stories/AddCustomAttribute.stories.js
deleted file mode 100644
index 603cb5167..000000000
--- a/app/javascript/dashboard/modules/contact/stories/AddCustomAttribute.stories.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import AddCustomAttribute from '../components/AddCustomAttribute';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Components/Contact/AddCustomAttribute',
- component: AddCustomAttribute,
- argTypes: {
- show: {
- defaultValue: true,
- control: {
- type: 'boolean',
- },
- },
- isCreating: {
- defaultValue: false,
- control: {
- type: 'boolean',
- },
- },
- },
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { AddCustomAttribute },
- template: '',
-});
-
-export const DefaultAttribute = Template.bind({});
-DefaultAttribute.args = {
- onCreate: action('edit'),
-};
diff --git a/app/javascript/dashboard/modules/contact/stories/ContactAttribute.stories.js b/app/javascript/dashboard/modules/contact/stories/ContactAttribute.stories.js
deleted file mode 100644
index 4deab66f2..000000000
--- a/app/javascript/dashboard/modules/contact/stories/ContactAttribute.stories.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import ContactAttribute from '../components/ContactAttribute';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Components/Contact/ContactAttribute',
- component: ContactAttribute,
- argTypes: {
- label: {
- defaultValue: 'Email',
- control: {
- type: 'text',
- },
- },
- value: {
- defaultValue: 'dwight@schrute.farms',
- control: {
- type: 'text',
- },
- },
- icon: {
- defaultValue: 'ion-email',
- control: {
- type: 'text',
- },
- },
- showEdit: {
- control: {
- type: 'boolean',
- },
- },
- },
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { ContactAttribute },
- template: '',
-});
-
-export const DefaultAttribute = Template.bind({});
-DefaultAttribute.args = {
- onEdit: action('edit'),
-};
diff --git a/app/javascript/dashboard/modules/contact/stories/ContactFields.stories.js b/app/javascript/dashboard/modules/contact/stories/ContactFields.stories.js
deleted file mode 100644
index 3b0b02be5..000000000
--- a/app/javascript/dashboard/modules/contact/stories/ContactFields.stories.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import ContactFields from '../components/ContactFields';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Components/Contact/ContactFields',
- component: ContactFields,
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { ContactFields },
- template:
- '',
-});
-
-export const DefaultContactFields = Template.bind({});
-DefaultContactFields.args = {
- contact: {
- id: 979442,
- name: 'Eden Hazard',
- title: 'Playmaker',
- thumbnail: 'https://randomuser.me/api/portraits/men/19.jpg',
- company: {
- id: 10,
- name: 'Chelsea',
- },
- email: 'hazard@chelsea.com',
- availability_status: 'offline',
- phone_number: '',
- custom_attributes: {},
- additional_attributes: {
- description:
- 'Known for his dribbling, he is considered to be one of the best players in the world.',
- social_profiles: {
- twitter: 'hazardeden10',
- facebook: 'hazardeden10',
- linkedin: 'hazardeden10',
- },
- },
- },
- onUpdate: action('update'),
- onCreate: action('create'),
-};
diff --git a/app/javascript/dashboard/modules/contact/stories/ContactIntro.stories.js b/app/javascript/dashboard/modules/contact/stories/ContactIntro.stories.js
deleted file mode 100644
index 8c860ebd0..000000000
--- a/app/javascript/dashboard/modules/contact/stories/ContactIntro.stories.js
+++ /dev/null
@@ -1,43 +0,0 @@
-import ContactIntro from '../components/ContactIntro';
-import { action } from '@storybook/addon-actions';
-
-export default {
- title: 'Components/Contact/ContactIntro',
- component: ContactIntro,
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { ContactIntro },
- template:
- '',
-});
-
-export const DefaultContactIntro = Template.bind({});
-DefaultContactIntro.args = {
- contact: {
- id: 979442,
- name: 'Eden Hazard',
- title: 'Playmaker',
- thumbnail: 'https://randomuser.me/api/portraits/men/19.jpg',
- company: {
- id: 10,
- name: 'Chelsea',
- },
- email: 'hazard@chelsea.com',
- availability_status: 'offline',
- phone_number: '',
- custom_attributes: {},
- additional_attributes: {
- description:
- 'Known for his dribbling, he is considered to be one of the best players in the world.',
- social_profiles: {
- twitter: 'hazardeden10',
- facebook: 'hazardeden10',
- linkedin: 'hazardeden10',
- },
- },
- },
- onEdit: action('edit'),
- onNewMessage: action('new message 💬'),
-};
diff --git a/app/javascript/dashboard/modules/contact/stories/MergeContact.stories.js b/app/javascript/dashboard/modules/contact/stories/MergeContact.stories.js
deleted file mode 100644
index 3700ba0f1..000000000
--- a/app/javascript/dashboard/modules/contact/stories/MergeContact.stories.js
+++ /dev/null
@@ -1,32 +0,0 @@
-import { action } from '@storybook/addon-actions';
-import MergeContact from 'dashboard/modules/contact/components/MergeContact';
-
-export default {
- title: 'Components/Contact/MergeContacts',
- component: MergeContact,
- argTypes: {
- 'primary-contact': {
- defaultValue: '{}',
- control: {
- type: 'object',
- },
- },
- },
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { MergeContact },
- template:
- '',
-});
-
-export const List = Template.bind({});
-List.args = {
- primaryContact: {
- id: 12,
- name: 'Mason Mount',
- },
- onSearch: action('Search'),
- onSubmit: action('Submit'),
-};
diff --git a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
index 9adb9b2eb..a100b379f 100644
--- a/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
+++ b/app/javascript/dashboard/modules/conversations/components/MessageContextMenu.vue
@@ -1,130 +1,27 @@
-
-
-
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/notes/components/ContactNote.vue b/app/javascript/dashboard/modules/notes/components/ContactNote.vue
deleted file mode 100644
index d4d199b94..000000000
--- a/app/javascript/dashboard/modules/notes/components/ContactNote.vue
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-
-
-
-
-
- {{ noteAuthorName }}
-
-
- {{ $t('NOTES.LIST.LABEL') }}
-
-
- {{ readableTime }}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/notes/components/NoteList.vue b/app/javascript/dashboard/modules/notes/components/NoteList.vue
deleted file mode 100644
index 6061fc769..000000000
--- a/app/javascript/dashboard/modules/notes/components/NoteList.vue
+++ /dev/null
@@ -1,60 +0,0 @@
-
-
-
-
-
-
-
- {{ $t('NOTES.FETCHING_NOTES') }}
-
-
- {{ $t('NOTES.NOT_AVAILABLE') }}
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/notes/stories/AddNote.stories.js b/app/javascript/dashboard/modules/notes/stories/AddNote.stories.js
deleted file mode 100644
index 1f547d59e..000000000
--- a/app/javascript/dashboard/modules/notes/stories/AddNote.stories.js
+++ /dev/null
@@ -1,19 +0,0 @@
-import { action } from '@storybook/addon-actions';
-import AddNote from '../components/AddNote.vue';
-
-export default {
- title: 'Components/Notes/Add',
- component: AddNote,
- argTypes: {},
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { AddNote },
- template: '',
-});
-
-export const Add = Template.bind({});
-Add.args = {
- onAdd: action('Added'),
-};
diff --git a/app/javascript/dashboard/modules/notes/stories/ContactNote.stories.js b/app/javascript/dashboard/modules/notes/stories/ContactNote.stories.js
deleted file mode 100644
index 71c3abd81..000000000
--- a/app/javascript/dashboard/modules/notes/stories/ContactNote.stories.js
+++ /dev/null
@@ -1,52 +0,0 @@
-import { action } from '@storybook/addon-actions';
-import ContactNote from '../components/ContactNote.vue';
-
-export default {
- title: 'Components/Notes/Note',
- component: ContactNote,
- argTypes: {
- id: {
- control: {
- type: 'number',
- },
- },
- note: {
- defaultValue:
- 'A copy and paste musical notes symbols & music symbols collection for easy access.',
- control: {
- type: 'text',
- },
- },
- userName: {
- defaultValue: 'John Doe',
- control: {
- type: 'text',
- },
- },
- timeStamp: {
- defaultValue: 1618046084,
- control: {
- type: 'number',
- },
- },
- thumbnail: {
- defaultValue: 'https://randomuser.me/api/portraits/men/62.jpg',
- control: {
- type: 'text',
- },
- },
- },
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { ContactNote },
- template:
- '',
-});
-
-export const Note = Template.bind({});
-Note.args = {
- onEdit: action('Edit'),
- onDelete: action('Delete'),
-};
diff --git a/app/javascript/dashboard/modules/notes/stories/NoteList.stories.js b/app/javascript/dashboard/modules/notes/stories/NoteList.stories.js
deleted file mode 100644
index c9b8d6345..000000000
--- a/app/javascript/dashboard/modules/notes/stories/NoteList.stories.js
+++ /dev/null
@@ -1,45 +0,0 @@
-import { action } from '@storybook/addon-actions';
-import NoteList from '../components/NoteList';
-
-export default {
- title: 'Components/Notes/List',
- component: NoteList,
- argTypes: {},
-};
-
-const Template = (args, { argTypes }) => ({
- props: Object.keys(argTypes),
- components: { NoteList },
- template:
- '',
-});
-
-export const List = Template.bind({});
-List.args = {
- onClick: action('show'),
- onAddNote: action('added'),
- onEditNote: action('edit'),
- onDeleteNote: action('deleted'),
- notes: [
- {
- id: '12345',
- content:
- 'It is a long established fact that a reader will be distracted.',
- user: {
- name: 'John Doe',
- thumbnail: 'https://randomuser.me/api/portraits/men/69.jpg',
- },
- created_at: 1618046084,
- },
- {
- id: '12346',
- content:
- 'It is simply dummy text of the printing and typesetting industry.',
- user: {
- name: 'Pearl Cruz',
- thumbnail: 'https://randomuser.me/api/portraits/women/29.jpg',
- },
- created_at: 1616046076,
- },
- ],
-};
diff --git a/app/javascript/dashboard/modules/search/components/MessageContent.vue b/app/javascript/dashboard/modules/search/components/MessageContent.vue
index 4c86862f5..c75998771 100644
--- a/app/javascript/dashboard/modules/search/components/MessageContent.vue
+++ b/app/javascript/dashboard/modules/search/components/MessageContent.vue
@@ -1,104 +1,115 @@
-
-
-
-
-
-
-
-
+
+
+
+
+ {{
+ authorText
+ }}
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/ReadMore.vue b/app/javascript/dashboard/modules/search/components/ReadMore.vue
deleted file mode 100644
index f94af7b5f..000000000
--- a/app/javascript/dashboard/modules/search/components/ReadMore.vue
+++ /dev/null
@@ -1,64 +0,0 @@
-
-
-
-
-
- {{ $t('SEARCH.READ_MORE') }}
-
-
-
-
-
-
-
-
diff --git a/app/javascript/dashboard/modules/search/components/RecentSearches.vue b/app/javascript/dashboard/modules/search/components/RecentSearches.vue
new file mode 100644
index 000000000..0c52ea3ac
--- /dev/null
+++ b/app/javascript/dashboard/modules/search/components/RecentSearches.vue
@@ -0,0 +1,116 @@
+
+
+
+
+
+
+
+
+ {{ $t('SEARCH.RECENT_SEARCHES') }}
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue b/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue
new file mode 100644
index 000000000..0f4119f6f
--- /dev/null
+++ b/app/javascript/dashboard/modules/search/components/SearchContactAgentSelector.vue
@@ -0,0 +1,240 @@
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchDateRangeSelector.vue b/app/javascript/dashboard/modules/search/components/SearchDateRangeSelector.vue
new file mode 100644
index 000000000..19aa3c8e6
--- /dev/null
+++ b/app/javascript/dashboard/modules/search/components/SearchDateRangeSelector.vue
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('SEARCH.DATE_RANGE.CUSTOM_RANGE') }}
+
+
+ {{ t('SEARCH.DATE_RANGE.CREATED_BETWEEN') }}
+
+
+
+
+
+
+
+
+ {{ t('SEARCH.DATE_RANGE.AND') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchFilters.vue b/app/javascript/dashboard/modules/search/components/SearchFilters.vue
new file mode 100644
index 000000000..2a44494ea
--- /dev/null
+++ b/app/javascript/dashboard/modules/search/components/SearchFilters.vue
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ t('SEARCH.FILTERS.FILTER_MESSAGE') }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchHeader.vue b/app/javascript/dashboard/modules/search/components/SearchHeader.vue
index c828f8b0a..08d4c0c7a 100644
--- a/app/javascript/dashboard/modules/search/components/SearchHeader.vue
+++ b/app/javascript/dashboard/modules/search/components/SearchHeader.vue
@@ -1,102 +1,69 @@
-
-
-
+
-
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchInboxSelector.vue b/app/javascript/dashboard/modules/search/components/SearchInboxSelector.vue
new file mode 100644
index 000000000..581942183
--- /dev/null
+++ b/app/javascript/dashboard/modules/search/components/SearchInboxSelector.vue
@@ -0,0 +1,125 @@
+
+
+
+
+
+
+
+
diff --git a/app/javascript/dashboard/modules/search/components/SearchInput.vue b/app/javascript/dashboard/modules/search/components/SearchInput.vue
index cfddfcfe6..3edd79fe0 100644
--- a/app/javascript/dashboard/modules/search/components/SearchInput.vue
+++ b/app/javascript/dashboard/modules/search/components/SearchInput.vue
@@ -1,49 +1,136 @@
+
+
-